@conduction/docusaurus-preset 2.10.0 → 2.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -6,6 +6,14 @@ Brand-default Docusaurus 3 config for Conduction sites. Tokens, theme, navbar, f
|
|
|
6
6
|
|
|
7
7
|
Source lives inside the [design-system monorepo](https://github.com/ConductionNL/design-system); published to npm under the `@conduction` scope as a single package. Install in any product site with `npm i @conduction/docusaurus-preset`. The diagram web-component runtime (`<cn-hex>`, `<cn-platform>`, etc.) ships inside this same package under `@conduction/docusaurus-preset/diagrams` — no separate install needed.
|
|
8
8
|
|
|
9
|
+
## Brand rules
|
|
10
|
+
|
|
11
|
+
A few non-negotiables encoded by the package CSS and worth knowing about:
|
|
12
|
+
|
|
13
|
+
- **App Builder hex is always KNVB orange.** The hex in `<PlatformDiagram/>` representing the "compose your own app" pathway carries `var(--c-orange-knvb)` regardless of whether the cluster ships a `COMING SOON` badge. It is the proposition the eye should land on. Don't gate it on app state.
|
|
14
|
+
- **Pointy-top hexes only, no rotation.** Every `<cn-*>` hex shape is pointy-top by design. Flat-top hexes belong to other brands.
|
|
15
|
+
- **One orange accent per scene.** KNVB orange is the highlight, used once per diagram. The new `<Pair/>` and `<ArchFlow hex>` components own that budget when present.
|
|
16
|
+
|
|
9
17
|
## What it gives you
|
|
10
18
|
|
|
11
19
|
- **Brand CSS** — tokens (cobalt palette, KNVB orange, Plex Mono, hex clip-paths, Common Ground yellow) auto-applied to Docusaurus's Infima theme variables. Navbar, footer, sidebar, buttons, code blocks all inherit the brand without a single swizzle.
|
package/package.json
CHANGED
|
@@ -144,6 +144,12 @@ platform-diagram .row .name {
|
|
|
144
144
|
platform-diagram .row + .row { border-top: 1px solid var(--c-cobalt-50); }
|
|
145
145
|
platform-diagram a.row { text-decoration: none; color: inherit; cursor: pointer; }
|
|
146
146
|
platform-diagram a.row:hover { text-decoration: none; }
|
|
147
|
+
/* Hovered row escapes its own overflow:hidden clip and creates a
|
|
148
|
+
stacking context so the .desc tooltip can extend below the row AND
|
|
149
|
+
paint above later-DOM-order siblings. Without overflow:visible the
|
|
150
|
+
absolute-positioned .desc gets cropped to the row's bounding box;
|
|
151
|
+
without z-index the .desc has no stacking context to escape. */
|
|
152
|
+
platform-diagram .row:hover { overflow: visible; z-index: 10; }
|
|
147
153
|
|
|
148
154
|
/* Multi-column box: rows are wrapped in <.col> so the .row+.row border only
|
|
149
155
|
draws within a single column. The columns sit side by side with a thin
|
|
@@ -254,9 +260,11 @@ platform-diagram .workspace-corner-hex.fam-solutions { background: #E34234; }
|
|
|
254
260
|
platform-diagram .fam-integrate .glyph,
|
|
255
261
|
platform-diagram .workspace-corner-hex.fam-integrate { background: var(--c-cobalt-400); }
|
|
256
262
|
platform-diagram .fam-builder .glyph,
|
|
257
|
-
platform-diagram .workspace-corner-hex.fam-builder { background: var(--c-
|
|
258
|
-
/* App Builder hex: KNVB orange
|
|
259
|
-
|
|
263
|
+
platform-diagram .workspace-corner-hex.fam-builder { background: var(--c-orange-knvb); }
|
|
264
|
+
/* App Builder hex: KNVB orange across the board. The hex represents
|
|
265
|
+
the "compose your own app" pathway — that's the proposition we want
|
|
266
|
+
the eye to land on, badge or no badge. */
|
|
267
|
+
platform-diagram .workspace-corner-hex.app-builder { background: var(--c-orange-knvb); }
|
|
260
268
|
platform-diagram .fam-nextcloud .glyph,
|
|
261
269
|
platform-diagram .workspace-corner-hex.fam-nextcloud { background: var(--c-nextcloud-blue); }
|
|
262
270
|
|
|
@@ -233,8 +233,9 @@
|
|
|
233
233
|
if (!list.label || list.position === 'top') return null;
|
|
234
234
|
const positionClass = POSITION_CLASS[list.position] || list.position;
|
|
235
235
|
const familyClass = list.family ? `fam-${list.family}` : '';
|
|
236
|
+
const badgeClass = list.badge ? 'has-badge' : '';
|
|
236
237
|
const hex = document.createElement('div');
|
|
237
|
-
hex.className = `workspace-corner-hex ${positionClass} ${familyClass}`.trim();
|
|
238
|
+
hex.className = `workspace-corner-hex ${positionClass} ${familyClass} ${badgeClass}`.trim();
|
|
238
239
|
// Allow newline in label to render a <br>; otherwise straight text.
|
|
239
240
|
if (list.label.includes('\n')) {
|
|
240
241
|
list.label.split('\n').forEach((line, i) => {
|