@nadicodeai/design-system 5.3.7 → 6.0.1
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/DESIGN.md +82 -95
- package/dist/css/index.css +6 -7
- package/dist/css/tokens.css +5 -6
- package/dist/tailwind/nadicode.tailwind.json +5 -6
- package/dist/tokens/nadicode.dtcg-resolved.json +55 -88
- package/dist/tokens/nadicode.dtcg.json +56 -73
- package/package.json +2 -14
- package/dist/assets/nadia-02-ordered-points.png +0 -0
- package/dist/assets/nadia-03-triangulated-wire.png +0 -0
- package/dist/assets/nadia-04-irregular-particles.png +0 -0
package/DESIGN.md
CHANGED
|
@@ -44,7 +44,6 @@ colors:
|
|
|
44
44
|
warning: "#ffc220"
|
|
45
45
|
warning-soft: "#fff3d1"
|
|
46
46
|
warning-deep: "#7a5800"
|
|
47
|
-
flag-red: "#d3302f"
|
|
48
47
|
verde-vivo: "#008c45"
|
|
49
48
|
selection-bg: "#111111"
|
|
50
49
|
selection-fg: "#fafafa"
|
|
@@ -56,8 +55,6 @@ colors:
|
|
|
56
55
|
state-review: "#ffc220"
|
|
57
56
|
state-blocked: "#d3302f"
|
|
58
57
|
state-complete: "#00a85a"
|
|
59
|
-
background-100: "#ffffff"
|
|
60
|
-
background-200: "#fafafa"
|
|
61
58
|
identity-verde: "#00a85a"
|
|
62
59
|
identity-rosso: "#d3302f"
|
|
63
60
|
identity-arancio: "#ff5a1f"
|
|
@@ -65,6 +62,11 @@ colors:
|
|
|
65
62
|
identity-cobalto: "#1e3cff"
|
|
66
63
|
identity-ink: "#000000"
|
|
67
64
|
identity-white: "#ffffff"
|
|
65
|
+
forma-visor: "#061410"
|
|
66
|
+
forma-bezel: "#273a33"
|
|
67
|
+
forma-eye: "#c1e0d3"
|
|
68
|
+
forma-avorio: "#e9e7db"
|
|
69
|
+
forma-sabbia: "#c4aa83"
|
|
68
70
|
chart-1: "#1e3cff"
|
|
69
71
|
chart-2: "#00a85a"
|
|
70
72
|
chart-3: "#ddaa00"
|
|
@@ -110,9 +112,6 @@ colors:
|
|
|
110
112
|
dark-info: "#8098ff"
|
|
111
113
|
dark-info-soft: "#070f47"
|
|
112
114
|
dark-info-deep: "#b3c1ff"
|
|
113
|
-
dark-cyan: "#33d1cb"
|
|
114
|
-
dark-cyan-soft: "#7ee8de"
|
|
115
|
-
dark-cyan-deep: "#1f9e9a"
|
|
116
115
|
dark-success: "#17bd68"
|
|
117
116
|
dark-success-soft: "#00351c"
|
|
118
117
|
dark-success-deep: "#93e3b8"
|
|
@@ -296,7 +295,7 @@ One foundation, three registers. The foundation is every `core` value in this co
|
|
|
296
295
|
|
|
297
296
|
A register decides where a foundation value appears and adds rules of its own. It never redefines a foundation value and never mints one: a value its physics need and the foundation lacks is authored in this contract under `register.<name>`.
|
|
298
297
|
|
|
299
|
-
|
|
298
|
+
`DESIGN.md` defines the reusable contract and exported scalar tokens; the `@nadicodeai/design-system/css` bundle (`src/css/**`) realises that contract. Homepage copy, page-specific ordering, and temporary prototypes do not belong in this file.
|
|
300
299
|
|
|
301
300
|
## Colors
|
|
302
301
|
|
|
@@ -304,7 +303,7 @@ Neutrals carry the interface: grounds, chrome, hierarchy, and every control come
|
|
|
304
303
|
|
|
305
304
|
Interaction states are material, not meaning: focus, hover, and selection read as contrast steps on the neutral spine. A hover ground is a neutral step; the only change a control hover carries is a step inside its own family, as `{colors.action-hover}` does on the action control. Cobalto stays on info and running.
|
|
306
305
|
|
|
307
|
-
Every value a role needs is carried by the role token itself;
|
|
306
|
+
Every value a role needs is carried by the role token itself; there is no numeric scale family. The neutral spine — `{colors.ink}`, `{colors.body}`, `{colors.muted}`, `{colors.canvas}`, `{colors.canvas-soft}`, `{colors.canvas-soft-2}`, `{colors.line}`, `{colors.seam}` — is strictly achromatic: every neutral is an equal-channel gray (OKLCH chroma 0) in both themes. The five identity-palette hues are cross-spectrum equals, so any neutral bias would flatter one and dirty another; hue arrives full-strength through the chromatic roles or not at all, and no tint ever paints an app surface. Colours are authored as sRGB hex here and emitted as `oklch()` in the generated CSS.
|
|
308
307
|
|
|
309
308
|
### Semantic roles (functional tier)
|
|
310
309
|
|
|
@@ -318,8 +317,7 @@ Every value a role needs is carried by the role token itself; the ten-step numer
|
|
|
318
317
|
- **Navigation selection** (`{colors.navigation-selection-bg}`, `{colors.navigation-selection-fg}`, `{colors.navigation-selection-hover}`): the selected destination in persistent product navigation, a neutral ink pill. Selection is a place, not a meaning, so it holds by contrast on the neutral spine; cobalto belongs to the semantic info and running roles only. The dark counterparts are tuned independently for the black console. Resting and hover pairs clear AA for text, and the offset focus outline stays visible against both the pill fill and the adjacent canvas.
|
|
319
318
|
- **Semantic feedback** (`{colors.success}` = verde with `{colors.success-soft}`/`{colors.success-deep}`; `{colors.error}` = rosso funzionale `#d3302f` with `{colors.error-soft}`/`{colors.error-deep}`; `{colors.warning}` = giallo `#ffc220` with `{colors.warning-soft}`/`{colors.warning-deep}`; `{colors.info}` = cobalto `#1e3cff` with `{colors.info-soft}`/`{colors.info-deep}`): validation, caution, approval, and operational feedback. In each pair the `-soft` value is the tinted tag/banner ground and the `-deep` value is the AA-clearing text on it. On a solid `error` fill (the shadcn `destructive` role) text is white; on a solid `warning` or `success` fill text is ink. The success pair intentionally reuses the link pair's AA-safe verde values; its feedback meaning remains distinct from inline navigation and entity-status semantics.
|
|
320
319
|
- **Accent** (`{colors.accent}` = arancio `#ff5a1f`): a small emphasis mark for exception flags and highlights; it appears as a mark, carries no text, and paints no fill or background. The identically-named shadcn surface role is a different thing — a neutral (`{colors.canvas-soft-2}` light, `{colors.dark-canvas-soft-2}` dark) with no hue.
|
|
321
|
-
- **
|
|
322
|
-
- **Verde vivo** (`{colors.verde-vivo}` = `#008c45`, dark `{colors.dark-verde-vivo}` = `#62d494`): Nadia's presence accent. It paints the marks that say *Nadia herself is here*: the first-run medallion, a live-presence indicator beside her portrait. It is a mark colour, never a control fill, a text colour, a link, or a status; `action`, `link`, and `success` keep their jobs. It clears the 3:1 non-text floor on `{colors.canvas}` (4.3:1) and `{colors.dark-canvas}` (11.4:1) and carries no text of its own. White on it is 4.34:1, below AA for normal text, so a label never sits on a `verde-vivo` fill; the ring, halo, or portrait sits on it and the words sit on the canvas.
|
|
320
|
+
- **Verde vivo** (`{colors.verde-vivo}` = `#008c45`, dark `{colors.dark-verde-vivo}` = `#62d494`): Nadia's presence accent. It paints the marks that say *Nadia herself is here*, such as the success beat over her silhouette at a threshold (`@nadicodeai/ui/threshold`). It is a mark colour, never a control fill, a text colour, a link, or a status; `action`, `link`, and `success` keep their jobs. It clears the 3:1 non-text floor on `{colors.canvas}` (4.3:1) and `{colors.dark-canvas}` (11.4:1) and carries no text of its own. White on it is 4.34:1, below AA for normal text, so a label never sits on a `verde-vivo` fill; the ring, halo, or portrait sits on it and the words sit on the canvas.
|
|
323
321
|
- **Workflow States** (`{colors.state-ready}` neutral, `{colors.state-running}` cobalto, `{colors.state-review}` giallo, `{colors.state-blocked}` rosso, `{colors.state-complete}` verde): the left-border/state vocabulary for agentic work surfaces — cobalto means in motion, verde means done. The dark counterparts (`{colors.dark-state-ready}`, `{colors.dark-state-running}`, `{colors.dark-state-review}`, `{colors.dark-state-blocked}`, `{colors.dark-state-complete}`) keep the same functional identity. These colours are carried by non-text state accents only — meter and bullet segments, delta marks, and the brand book's own rails; label text stays on the neutral foreground roles for contrast in both themes. Status is not one of their jobs: every status the product renders is the Badge status vocabulary (see `## Status Vocabulary`), which reads from the semantic feedback and link pairs, and the two token sets never cross.
|
|
324
322
|
|
|
325
323
|
### Chart categoricals (functional tier)
|
|
@@ -331,14 +329,16 @@ Every value a role needs is carried by the role token itself; the ten-step numer
|
|
|
331
329
|
|
|
332
330
|
Five full-strength hues are the system's expressive chromatic range: verde `{colors.identity-verde}`, rosso `{colors.identity-rosso}`, cobalto `{colors.identity-cobalto}`, arancio `{colors.identity-arancio}`, and giallo `{colors.identity-giallo}`, with `{colors.identity-white}` and `{colors.identity-ink}` as the white and ink poles that carry type beside them. The family emits under the `identity-*` spelling, and that is the one name every consumer uses. They live in exactly three places: the Agent identity visuals (the metaball recipes in [`packages/ui/docs/agent-visual.md`](../ui/docs/agent-visual.md)), the brand book's identity planes, and generated editorial imagery (`skills/marketing/blog-imagegen/references/editorial-register.md` reads these tokens and keeps no private palette). They appear at full strength with no tints, steps, or hover variants; interface states come from the semantic roles.
|
|
333
331
|
|
|
332
|
+
### Forma avatar colours
|
|
333
|
+
|
|
334
|
+
The Forma avatars (`packages/ui/docs/forma-avatar.md`) paint their shells in the Agent identity palette and carry five values of their own, adopted with the approved artwork: `{colors.forma-visor}`, the near-black glass of the visor; `{colors.forma-bezel}`, its metal rim; `{colors.forma-eye}`, the mint light of Nadia's signature eyes; `{colors.forma-avorio}`, the ivory that is both the sixth shell colour a customer may pick and the white band of Nadia's tricolour; and `{colors.forma-sabbia}`, the sand her white band drains toward while she is blocked. They are artwork values, not interface roles: no control, text, or surface takes them, and the forms' own eyes use `{colors.identity-white}` or `{colors.identity-ink}`.
|
|
335
|
+
|
|
334
336
|
### Dark primitives
|
|
335
337
|
|
|
336
338
|
**Dark Primitives** (`{colors.dark-canvas}`, `{colors.dark-ink}`, `{colors.dark-line}`, and siblings) are the source tokens for the generated shadcn `.dark` role map — mode-bearing primitives, not a separate palette; consuming apps opt in by applying a `.dark` ancestor through their runtime theme provider. `dark-canvas` is true black: the only base plane for dark product shells. The remaining dark neutrals (`dark-canvas-soft`, `dark-canvas-soft-2`, `dark-ink`, `dark-body`, `dark-muted`, `dark-line`, `dark-input`, `dark-seam`, `dark-on-primary`, `dark-scrim`, and the neutral `dark-selection`/`dark-cross` marks) are exact equal-channel grays (OKLCH chroma 0), so no hue paints a surface. The soft canvas steps belong only to bounded interaction states such as hover, selection, keycaps, and inline controls; they never replace true black as a page, section, card, popover, sidebar, or large-panel ground. `dark-input` is the resting-control boundary, held brighter than the decorative `dark-line` border so a field edge clears the non-text floor before `{colors.dark-focus-ring}` appears. The `dark-action` family is a white control stepping through light grays, ink-labelled — the primary control stays neutral on black. Chroma lives only in the intentional accents: `dark-primary` is the brightened brand verde for identity marks, `dark-link`/`dark-link-deep` a lighter verde for links, and `dark-error`/`dark-error-deep`, `dark-warning`/`dark-warning-deep`, `dark-info`/`dark-info-deep`, `dark-success`/`dark-success-deep` the brightened feedback hues, each `*-soft` a deep tinted ground. `dark-navigation-selection-*` and `dark-focus-ring` sit on the neutral spine: selection and focus are material states, not meanings. The `dark-state-*` workflow family is not a text role; it preserves the matching ready/running/review/blocked/complete rail colours for 3 px state accents while text stays on neutral foreground roles. `dark-selection-bg`/`dark-selection-fg` invert the light selection, `dark-scrim` supplies the modal foreground, and `dark-cross` is the visible mark gray, brighter than the decorative `dark-line`. Never reintroduce chroma into the neutral set.
|
|
337
339
|
|
|
338
340
|
This achromatic-neutral discipline is not dark-specific: it governs the generated shadcn surface-role bridge in both the light `:root` and dark `.dark` maps. The neutral surface family — `background`, `card`, `popover`, `muted`, `secondary`, `sidebar`, `sidebar-accent`, their neutral foreground/border variants, plus `border` and `input` — resolves only to exact equal-channel grays (OKLCH chroma 0) in both themes. Hue in the role bridge is reserved for the explicit semantic roles `destructive`, `success`, and `warning`; `primary` resolves to the neutral action family. The focus rings (`ring`/`sidebar-ring`) and the `sidebar-primary*` navigation-selection family resolve to equal-channel grays like the surface family: focus and selection are material states, and no interaction state carries a hue. In dark product shells, `background`, `card`, `popover`, and `sidebar` share `{colors.dark-canvas}` so page chrome, cards, tables, overlays, and nav rails read as one console. `muted`, `secondary`, and `accent` retain the `dark-canvas-soft` steps for small interaction states such as hover, selected rows, keycaps, and inline controls. Large product surfaces never take a tinted or soft-panel fill by default.
|
|
339
341
|
|
|
340
|
-
A colour leaves this contract only through an explicit palette migration decision; what the current website kernel happens to consume is not palette authority.
|
|
341
|
-
|
|
342
342
|
## Data Visualization
|
|
343
343
|
|
|
344
344
|
### Entity-color assignment
|
|
@@ -352,7 +352,7 @@ A colour leaves this contract only through an explicit palette migration decisio
|
|
|
352
352
|
|
|
353
353
|
### Meter and bullet grammar
|
|
354
354
|
|
|
355
|
-
- **Meter and bullet grammar**: cap and included-usage bars carry a positional threshold tick at the product-configured warning fraction (80% is the common default; the fraction is a consumer input, never a constant of this contract) and a cap tick at 100%. Overflow renders as a distinct segment continuing past the cap tick, never clamped away. Severity state tokens (`{colors.state-*}`) reinforce position, never act as the sole signal. The current value reads at the bar tip. Every meter carries an accessible name, and its `aria` values clamp to the meter maximum. A meter has two scales. At panel scale the grammar above holds whole. At row scale — a meter inside a
|
|
355
|
+
- **Meter and bullet grammar**: cap and included-usage bars carry a positional threshold tick at the product-configured warning fraction (80% is the common default; the fraction is a consumer input, never a constant of this contract) and a cap tick at 100%. Overflow renders as a distinct segment continuing past the cap tick, never clamped away. Severity state tokens (`{colors.state-*}`) reinforce position, never act as the sole signal. The current value reads at the bar tip. Every meter carries an accessible name, and its `aria` values clamp to the meter maximum. A meter has two scales. At panel scale the grammar above holds whole. At row scale — a meter inside a list row, shown only once the value is already past the warning rung — it is a warning rather than a gauge: it drops both ticks and the tip value for a percent and a thin bar on one line, because a row cannot encode position legibly and the reader is asking how close the wall is, not how many. The overflow segment and the accessible name survive at both scales; the words a caption would have printed live in that name.
|
|
356
356
|
|
|
357
357
|
### Mark specs
|
|
358
358
|
|
|
@@ -378,11 +378,11 @@ All body, title, caption, and code typography uses `letterSpacing: 0px`. Do not
|
|
|
378
378
|
|
|
379
379
|
| Token | Size | Weight | Line Height | Use |
|
|
380
380
|
| ----------------------------- | ---- | ------ | ----------- | -------------------------------------------------------------------------- |
|
|
381
|
-
| `{typography.display-xl}` | 72px | 600 | 74px |
|
|
381
|
+
| `{typography.display-xl}` | 72px | 600 | 74px | Hero headline at the widest breakpoint. |
|
|
382
382
|
| `{typography.display-lg}` | 52px | 600 | 54px | Compact hero and major landing headlines. |
|
|
383
|
-
| `{typography.display-md}` | 24px | 600 | 32px |
|
|
384
|
-
| `{typography.display-sm}` | 20px | 600 | 28px |
|
|
385
|
-
| `{typography.title-lg}` | 40px | 600 | 41px |
|
|
383
|
+
| `{typography.display-md}` | 24px | 600 | 32px | Compact display tier: action bands, plan names, a threshold's sentence. |
|
|
384
|
+
| `{typography.display-sm}` | 20px | 600 | 28px | Small display tier for inline display headings. |
|
|
385
|
+
| `{typography.title-lg}` | 40px | 600 | 41px | Major section headings. |
|
|
386
386
|
| `{typography.title-md}` | 30px | 600 | 32px | Standard section title. |
|
|
387
387
|
| `{typography.title-sm}` | 22px | 600 | 25px | Cell and artifact titles. |
|
|
388
388
|
| `{typography.body-lg}` | 18px | 400 | 27px | Hero/lead paragraphs. |
|
|
@@ -394,7 +394,7 @@ All body, title, caption, and code typography uses `letterSpacing: 0px`. Do not
|
|
|
394
394
|
| `{typography.caption-strong}` | 12px | 500 | 16px | Compact emphasised labels on chrome and chips. |
|
|
395
395
|
| `{typography.caption-mono}` | 12px | 500 | 16px | Eyebrows, identifiers and code. |
|
|
396
396
|
| `{typography.code}` | 13px | 400 | 20px | Tool calls, snippets, traces. |
|
|
397
|
-
| `{typography.button-lg}` | 16px | 500 | 24px |
|
|
397
|
+
| `{typography.button-lg}` | 16px | 500 | 24px | Large button labels. |
|
|
398
398
|
| `{typography.button-md}` | 14px | 500 | 18px | Standard button and control labels. |
|
|
399
399
|
|
|
400
400
|
## Layout
|
|
@@ -473,7 +473,7 @@ Height tokens are fixed by component family and breakpoint. Components may grow
|
|
|
473
473
|
|
|
474
474
|
Page shells must prevent horizontal scrollbars when a mathematically aligned full-bleed surface uses viewport width. Clip horizontal overflow at the shell/root level; do not hide overflow on structural cells to mask bad seam math.
|
|
475
475
|
|
|
476
|
-
|
|
476
|
+
Compositions arrange approved primitives for a content role. They must not redefine page-frame math, row seams, marker placement, side-fill ownership, active-lane spans, or global guide primitives. If a composition needs new structural geometry, promote that geometry into the page grammar or a real component first.
|
|
477
477
|
|
|
478
478
|
### Delivery Tiers
|
|
479
479
|
|
|
@@ -513,16 +513,14 @@ Page grammar is the NadicodeAI structural system. It defines how pages are built
|
|
|
513
513
|
|
|
514
514
|
**`rule-svg`** — bounded dashed connector rule. Uses `{colors.seam}` and never overlaps a cell seam.
|
|
515
515
|
|
|
516
|
-
|
|
516
|
+
Reusable section compositions ship as React components from `@nadicodeai/ui`, composed over the page grammar above; the page grammar is the framework-agnostic foundation they assemble.
|
|
517
517
|
|
|
518
518
|
### Related Layout Helpers
|
|
519
519
|
|
|
520
|
-
|
|
520
|
+
This live helper is part of the kept page-grammar layout layer. It supports index-style page assemblies rather than naming an interface component.
|
|
521
521
|
|
|
522
522
|
**`index-grid`** — layout helper for index-style page assemblies (blog, learn, and case-study rows whose guide layer owns the dividers).
|
|
523
523
|
|
|
524
|
-
**`article-frame`** — layout helper for the long-form reading companion in article/index page assemblies.
|
|
525
|
-
|
|
526
524
|
`index-card` is the repeated item class inside `index-grid`, not a standalone contract key.
|
|
527
525
|
|
|
528
526
|
## Elevation & Depth
|
|
@@ -531,7 +529,7 @@ Product UI uses one shared material ladder. The workspace is one continuous grou
|
|
|
531
529
|
|
|
532
530
|
Glass is a material variant, not an elevation step. Floating chrome may be glass: menus, popovers, selects, comboboxes, the command palette, and bars, the surfaces that stand over the room and show it through themselves. Content surfaces stay solid: cards, KPIs, tables, inspectors, and dialog, sheet, and drawer bodies, because glass floats but never carries content. Inside the window, glass composites only over our own content; a product whose window the operating system composites states its window material in its register. Glass keeps exactly one separator, the integrated edge ring of its elevation falloff, never ring plus shadow plus border stacked. Reduced-transparency mode replaces glass with the same solid material at the same elevation.
|
|
533
531
|
|
|
534
|
-
The
|
|
532
|
+
The material and elevation values are authored in the one `json design-tokens` fence under "CSS Architecture & Token Pipeline", "Authored token extension". `core.material` holds the four values this section applies and emits them as `--nc-material-*`: `scrim-opacity` becomes the theme layer's `--opacity-scrim`, and the three glass values are consumed by `@nadicodeai/ui/globals.css`. `core.elevation` holds the four rungs and emits `--nc-elevation-resting`, `-raised`, `-floating`, and `-modal`.
|
|
535
533
|
|
|
536
534
|
| Material role | Construction | Use |
|
|
537
535
|
| ------------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
@@ -568,7 +566,7 @@ Public page-grammar cells are not cards and remain square because their parent f
|
|
|
568
566
|
|
|
569
567
|
Motion reports state: things move when something changes, briefly, and settle. Continuous, ambient motion is scarce and purposeful — the Agent identity visuals are its natural carrier — and repeated interactions stay fast and quiet. Motion preserves meaning when movement is reduced.
|
|
570
568
|
|
|
571
|
-
The durations and easings live in `core.motion` of the authored token extension ("CSS Architecture & Token Pipeline")
|
|
569
|
+
The durations and easings live in `core.motion` of the authored token extension ("CSS Architecture & Token Pipeline"). The build emits every duration as `--nc-duration-*` and every easing as `--nc-ease-*`. `src/css/motion.css` owns the keyframes, the `nc-anim-*` and `nc-transition-*` classes, and the reduced-motion law, and references those names; it declares no duration, easing, or alias of its own. A register decides where motion appears; it never picks a duration outside this list.
|
|
572
570
|
|
|
573
571
|
| Token | Use |
|
|
574
572
|
| --- | --- |
|
|
@@ -596,7 +594,7 @@ A register adds rules. It never redefines a foundation value. A value one regist
|
|
|
596
594
|
| Portal | `apps/portal/docs/design-doctrine.md` | `register.portal.density`: `filter-chip-gap`, `filter-chip-height`, `filter-chip-icon` | System, light, dark, on the `.dark` class |
|
|
597
595
|
| Nadia desktop app | `apps/nadia/docs/design-doctrine.md` | `register.nadia.*`: colour-role and radius aliases; six deprecated elevation recipes and the legacy overlay border remain as compatibility data. New surfaces consume the foundation's material roles | Follows the operating system, on the `.dark` class |
|
|
598
596
|
|
|
599
|
-
The website's depth is flat and architectural: hairlines, contrast, dotted fields, diagonal fills, and dark action bands make hierarchy, and the page frame and row grid stay dominant. It uses no rung of the material ladder and no floating card stack as page structure. Marketing bands may use `register.website.layout.section`, emitted as `--nc-section`, when they need the broader inherited hero rhythm. The website
|
|
597
|
+
The website's depth is flat and architectural: hairlines, contrast, dotted fields, diagonal fills, and dark action bands make hierarchy, and the page frame and row grid stay dominant. It uses no rung of the material ladder and no floating card stack as page structure. Marketing bands may use `register.website.layout.section`, emitted as `--nc-section`, when they need the broader inherited hero rhythm. The website uses no negative letter spacing outside the two display tiers.
|
|
600
598
|
|
|
601
599
|
The Portal and the desktop are product shells on the material ladder above, each by its rulebook. The desktop's window material is the operating system's where the OS composites the window; inside the window the foundation's glass law holds.
|
|
602
600
|
|
|
@@ -614,7 +612,7 @@ Keyboard focus has one owner: the kit's foundation layer draws the full-opacity
|
|
|
614
612
|
|
|
615
613
|
**`badge-secondary`** — small rounded metadata badge for "New", "Beta", "Live", or similar labels.
|
|
616
614
|
|
|
617
|
-
**`filter-chip`** — removable selected-filter label. Neutral chrome only: `{colors.line}` border, muted/background fill, foreground text, compact radius, and an inline remove icon with a visible `:focus-visible` ring. It names the active facet/value pair and clears that facet; it does not carry lifecycle, workflow, product-tier, or feature-state color.
|
|
615
|
+
**`filter-chip`** — removable selected-filter label. Neutral chrome only: `{colors.line}` border, muted/background fill, foreground text, compact radius, and an inline remove icon with a visible `:focus-visible` ring. It names the active facet/value pair and clears that facet; it does not carry lifecycle, workflow, product-tier, or feature-state color.
|
|
618
616
|
|
|
619
617
|
**`link-inline`** — inline body link. Uses `{colors.link}` and normal body rhythm.
|
|
620
618
|
|
|
@@ -643,46 +641,38 @@ Agent identity is decorative product identity, not a work artifact or a status s
|
|
|
643
641
|
## Status Vocabulary
|
|
644
642
|
|
|
645
643
|
Status is the one thing every surface in the product says: an agent is active, a
|
|
646
|
-
key is revoked, an invitation is waiting, a run is blocked. It is said one way
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
terminal, no-action state; green on the link pair for healthy and complete; red
|
|
664
|
-
on the error pair for unusable and failed; amber on the warning pair for waiting
|
|
665
|
-
on a decision; blue on the info pair for a step in motion. One mark per tone, so
|
|
666
|
-
the shape repeats the tone rather than adding a second axis. The families —
|
|
667
|
-
which statuses exist and which tone each value takes — belong to the consuming
|
|
668
|
-
app, because they are its domain, not this contract's; the Portal keeps its
|
|
669
|
-
whole map in one module and no surface picks a status colour anywhere else.
|
|
644
|
+
key is revoked, an invitation is waiting, a run is blocked. It is said one way:
|
|
645
|
+
one badge carrying an icon and a word, in one of five semantic tones that only
|
|
646
|
+
reinforce both, so a status is legible without colour and no surface invents a
|
|
647
|
+
second grammar.
|
|
648
|
+
|
|
649
|
+
Each tone pairs a soft ground with its deep label from an existing semantic
|
|
650
|
+
pair: gray on the neutral spine for the default and every terminal, no-action
|
|
651
|
+
state; green on the link pair for healthy and complete; red on the error pair
|
|
652
|
+
for unusable and failed; amber on the warning pair for waiting on a decision;
|
|
653
|
+
blue on the info pair for a step in motion. One mark per tone, so the shape
|
|
654
|
+
repeats the tone rather than adding a second axis.
|
|
655
|
+
|
|
656
|
+
The carrier is the React `Badge` in `@nadicodeai/ui`, contracted in
|
|
657
|
+
[`packages/ui/docs/contract.md`](../ui/docs/contract.md). This package ships no
|
|
658
|
+
status class; a static surface shows a status as ordinary text. Which statuses
|
|
659
|
+
exist and which tone each takes belong to the consuming app, which keeps its
|
|
660
|
+
whole map in one module.
|
|
670
661
|
|
|
671
662
|
## System activity
|
|
672
663
|
|
|
673
|
-
System activity, measured progress and settled status share
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
664
|
+
System activity, measured progress and settled status share one visual
|
|
665
|
+
language. Activity is transient: it communicates ongoing work, then gives way
|
|
666
|
+
to content or outcome feedback. The activity family uses neutral ink for its
|
|
667
|
+
structure and the cobalto info role for moving foreground particles; success,
|
|
668
|
+
warning and error keep their meanings. Measurable completion uses progress,
|
|
669
|
+
and waiting for a person or a failed operation uses the feedback treatment.
|
|
678
670
|
|
|
679
|
-
`ActivityOrb` in `@nadicodeai/ui
|
|
680
|
-
connecting and processing. Its
|
|
671
|
+
The renderer is `ActivityOrb` in `@nadicodeai/ui`, with three activities:
|
|
672
|
+
loading, connecting and processing. Its motion recipes, operation mapping,
|
|
681
673
|
sizes and runtime behaviour are owned by
|
|
682
|
-
[`packages/ui/docs/activity.md`](../ui/docs/activity.md)
|
|
683
|
-
chooses the
|
|
684
|
-
completion uses progress, and waiting for a person or a failed operation uses
|
|
685
|
-
the existing feedback treatment.
|
|
674
|
+
[`packages/ui/docs/activity.md`](../ui/docs/activity.md); a consuming app
|
|
675
|
+
chooses the activity and supplies its readable meaning.
|
|
686
676
|
|
|
687
677
|
## Do's and Don'ts
|
|
688
678
|
|
|
@@ -692,7 +682,6 @@ This section states the correct form; a complete positive definition is the whol
|
|
|
692
682
|
- Every visible line has one owner: ordinary seams are `{spacing.guide}` at `{colors.line}`, tuned only at the token contract; control boundaries are `{colors.input}` / `{colors.dark-input}`; keyboard focus is the dedicated focus-ring roles; crosshairs are `{colors.cross}` at `{spacing.guide}` weight.
|
|
693
683
|
- Page structure is architectural: hairlines, luminance, spacing, and the grammar above. One material role per product container; structural page-grammar cells are border-only; the four `nc-elevation-*` rungs are the complete shadow vocabulary; modal scrims stay unblurred.
|
|
694
684
|
- Typography uses fixed token sizes stepped by breakpoint; components take their default heights from the exported height tokens and grow only when real content requires it.
|
|
695
|
-
- Each row carries one story beat; the full-lane `stage` presents one major use-case story; pricing, logo, banner, and showcase compositions appear when the page truly contains that content, with real, approved material.
|
|
696
685
|
- Agent identity visuals identify an Agent or its explicit type; conversations, artifacts, review states, and work output belong to assistant-ui and the agentic work surfaces. Text beside `{colors.verde-vivo}` sits on the canvas.
|
|
697
686
|
- Components are named as NadicodeAI-owned primitives, and this file carries contract only: tokens, semantics, and application rules — component prop APIs, state matrices, screenshots, and page-specific material live with their owners.
|
|
698
687
|
- Each register keeps its own structure and chrome: the page grammar on the website, the material ladder in the Portal and the desktop, the desktop window following the operating system.
|
|
@@ -715,9 +704,35 @@ complete the treatment. Static and React icon sources stay version-aligned so a
|
|
|
715
704
|
glyph has one silhouette everywhere. Text-paired icons are decorative; icon-only
|
|
716
705
|
controls carry an accessible name.
|
|
717
706
|
|
|
707
|
+
## Brand media authority
|
|
708
|
+
|
|
709
|
+
The NadicodeAI logo has three approved forms:
|
|
710
|
+
|
|
711
|
+
1. **Horizontal lockup.** One interlocked-link mark followed by one NadicodeAI wordmark. The mark sits on the left, is scaled to the wordmark's capital height, and shares its baseline. Use this form when a company identifier needs both the mark and the readable name.
|
|
712
|
+
2. **Mark.** The two interlocked rounded-square links may stand alone where space is tight: favicons, app icons, avatars, watermarks, stamps, and compact navigation. A containing link or control names NadicodeAI when the mark is used without visible text.
|
|
713
|
+
3. **Wordmark.** The NadicodeAI letterforms may stand alone where the name must read by itself, including document headers and editorial layouts.
|
|
714
|
+
|
|
715
|
+
Other companies' marks are not NadicodeAI company logos and are not governed by anything in this section. They are generated identity images owned by `@nadicodeai/ui/components/brand-icons`; [`packages/ui/docs/contract.md`](../ui/docs/contract.md) carries their rules. A third-party mark never enters a NadicodeAI logo form, composition, or clear-space measurement.
|
|
716
|
+
|
|
717
|
+
Nadia's portrait, Agent identity visuals, and generated imagery are not NadicodeAI company logos. Nadia's identity and selection rules live in [`brand/AGENTS.md`](../../brand/AGENTS.md); the Agent identity system lives in [`packages/ui/docs/agent-visual.md`](../ui/docs/agent-visual.md); editorial imagery routes through [`skills/marketing/blog-imagegen/references/editorial-register.md`](../../skills/marketing/blog-imagegen/references/editorial-register.md). This contract owns only the package delivery interface.
|
|
718
|
+
|
|
719
|
+
The approved transparent Nadia master ships at `assets/nadia-solid-surface`. Package delivery does not grant brand approval; which Nadia image a surface may use stays with the identity document named above.
|
|
720
|
+
|
|
721
|
+
All three forms derive from one authored, framework-neutral geometry source exported as `@nadicodeai/design-system/assets/logo-geometry`. The lockup combines the shared mark and wordmark geometry at the established proportion and spacing. No SVG, React component, favicon, document, or app re-authors, traces, typesets, or rearranges those shapes.
|
|
722
|
+
|
|
723
|
+
Use the positive form on `{colors.canvas}` and the soft neutral canvases: ink letterforms and link with the primary verde link and `AI` suffix. Use the inverse form on `{colors.identity-ink}`: `{colors.identity-white}` letterforms and link with the dark-primary verde link and `AI` suffix. On `{colors.identity-verde}`, use the supplied on-verde form with one ink link and one white link. On photography, place the logo in a quiet area or over a scrim that keeps every part legible; when neither is available, mount it on an approved solid field. One surface uses one treatment.
|
|
724
|
+
|
|
725
|
+
The clear-space unit is the rendered width of one link stroke in the mark. Keep at least one unit free on every side of the mark and lockup, with no text, rule, image, or container edge inside it. A wordmark used alone keeps the same unit that the mark would have at the wordmark's capital height. Minimum rendered sizes are 16 CSS pixels or 5 mm for the mark, 130 CSS pixels or 32 mm wide for the lockup, and 96 CSS pixels or 25 mm wide for the wordmark. Browser and operating-system icon slots use the supplied favicon or app-icon files at the platform's required size and are exempt from the screen minimum. Never compress, crop, or distort a logo to fit.
|
|
726
|
+
|
|
727
|
+
For a meaningful standalone image, use the accessible name `NadicodeAI`; the accessible name is the label that identifies an image, link, or control to assistive technology. When a containing link or control already has that accessible name, hide the logo image from assistive technology with empty alt text. Never repeat the same accessible name on both the container and the image.
|
|
728
|
+
|
|
729
|
+
Do not redraw, retype, reorder, stretch, crop, rotate, recolor, outline, shadow, animate, or add effects or gradients to a logo form. Do not flatten the over-under interlock, add a third link, alter the proportions or lockup spacing, stack the forms, embed the mark inside the wordmark, place the mark after the wordmark, combine it with another mark, or substitute Nadia imagery for it.
|
|
730
|
+
|
|
731
|
+
The package build renders and publicly exports full-colour, mono-ink, inverse, and on-verde SVG and transparent PNG files for the lockup, mark, and wordmark from the geometry and current `colors.*` contract. React consumers use `BrandLockup`, `BrandMark`, or `BrandWordmark` according to the roles above. The operator-only favicon generator wraps the same mark geometry in the platform tile and may adapt tile radius, output size, and fixed-tile paint roles; it does not substitute another mark. Private geometry templates do not ship. A contract or geometry change is completed by regeneration, never by repainting an output or updating a fallback by hand.
|
|
732
|
+
|
|
718
733
|
## CSS Architecture & Token Pipeline
|
|
719
734
|
|
|
720
|
-
How this contract becomes shipped CSS. The private CSS authoring graph lives in `src/css/`; the build flattens that graph and inlines its component icon dependencies into the single public `dist/css/index.css` artifact exported as `@nadicodeai/design-system/css`. Generated files and partials never ship as package subpaths. The cascade is `@layer tokens, theme, reset, foundation, motion, layout, primitives, components;` with no `sections` layer.
|
|
735
|
+
How this contract becomes shipped CSS. The private CSS authoring graph lives in `src/css/`; the build flattens that graph and inlines its component icon dependencies into the single public `dist/css/index.css` artifact exported as `@nadicodeai/design-system/css`. Generated files and partials never ship as package subpaths. The cascade is `@layer tokens, theme, reset, foundation, motion, layout, primitives, components;` with no `sections` layer. The bundle ships only framework-agnostic brand and display CSS components; generic marketing and SaaS components ship as React components from `@nadicodeai/ui`.
|
|
721
736
|
|
|
722
737
|
### Public style interfaces
|
|
723
738
|
|
|
@@ -957,8 +972,7 @@ An alias is written in the short `{core.color.canvas}` form here; the build rewr
|
|
|
957
972
|
"sidebar-background": {"$value":"{core.color.canvas-soft}"},
|
|
958
973
|
"sidebar-border": {"$value":"{core.color.line}"},
|
|
959
974
|
"user-bubble": {"$value":"{core.color.canvas-soft-2}"},
|
|
960
|
-
"user-bubble-border": {"$value":"{core.color.line}"}
|
|
961
|
-
"medallion": {"$value":"{core.color.verde-vivo}"}
|
|
975
|
+
"user-bubble-border": {"$value":"{core.color.line}"}
|
|
962
976
|
},
|
|
963
977
|
"dark": {
|
|
964
978
|
"$type": "color",
|
|
@@ -981,13 +995,12 @@ An alias is written in the short `{core.color.canvas}` form here; the build rewr
|
|
|
981
995
|
"ring": {"$value":"{core.color.dark-focus-ring}"},
|
|
982
996
|
"midground": {"$value":"{core.color.dark-muted}"},
|
|
983
997
|
"composer-ring": {"$value":"{core.color.dark-focus-ring}"},
|
|
984
|
-
"destructive": {"$value":"{core.color.
|
|
998
|
+
"destructive": {"$value":"{core.color.error}"},
|
|
985
999
|
"destructive-foreground": {"$value":"{core.color.on-primary}"},
|
|
986
1000
|
"sidebar-background": {"$value":"{core.color.dark-canvas}"},
|
|
987
1001
|
"sidebar-border": {"$value":"{core.color.dark-seam}"},
|
|
988
1002
|
"user-bubble": {"$value":"{core.color.dark-canvas-soft-2}"},
|
|
989
|
-
"user-bubble-border": {"$value":"{core.color.dark-line}"}
|
|
990
|
-
"medallion": {"$value":"{core.color.dark-verde-vivo}"}
|
|
1003
|
+
"user-bubble-border": {"$value":"{core.color.dark-line}"}
|
|
991
1004
|
}
|
|
992
1005
|
},
|
|
993
1006
|
"radius": {
|
|
@@ -1111,32 +1124,6 @@ The private source entry imports all three generated files, and the package buil
|
|
|
1111
1124
|
|
|
1112
1125
|
`npm run build` also writes the two DTCG artifacts above and `dist/tailwind/nadicode.tailwind.json` as generated, tracked data artifacts, and bakes `dist/icons/` from the pinned `lucide-static` dependency. The Tailwind export stays for what it uniquely supplies: the typography line-height with its declared unit, which the DTCG composite normaliser strips, and the logo paint lookup.
|
|
1113
1126
|
|
|
1114
|
-
#### Brand media authority
|
|
1115
|
-
|
|
1116
|
-
The NadicodeAI logo has three approved forms:
|
|
1117
|
-
|
|
1118
|
-
1. **Horizontal lockup.** One interlocked-link mark followed by one NadicodeAI wordmark. The mark sits on the left, is scaled to the wordmark's capital height, and shares its baseline. Use this form when a company identifier needs both the mark and the readable name.
|
|
1119
|
-
2. **Mark.** The two interlocked rounded-square links may stand alone where space is tight: favicons, app icons, avatars, watermarks, stamps, and compact navigation. A containing link or control names NadicodeAI when the mark is used without visible text.
|
|
1120
|
-
3. **Wordmark.** The NadicodeAI letterforms may stand alone where the name must read by itself, including document headers and editorial layouts.
|
|
1121
|
-
|
|
1122
|
-
Other companies' marks are not NadicodeAI company logos and are not governed by anything in this section. They are generated identity images owned by `@nadicodeai/ui/components/brand-icons`; [`packages/ui/docs/contract.md`](../ui/docs/contract.md) carries their rules. A third-party mark never enters a NadicodeAI logo form, composition, or clear-space measurement.
|
|
1123
|
-
|
|
1124
|
-
Nadia's portrait, Agent identity visuals, and generated imagery are not NadicodeAI company logos. Nadia's identity and selection rules live in [`brand/AGENTS.md`](../../brand/AGENTS.md); the Agent identity system lives in [`packages/ui/docs/agent-visual.md`](../ui/docs/agent-visual.md); editorial imagery routes through [`skills/marketing/blog-imagegen/references/editorial-register.md`](../../skills/marketing/blog-imagegen/references/editorial-register.md). This contract owns only the package delivery interface.
|
|
1125
|
-
|
|
1126
|
-
The approved transparent Nadia master ships at `assets/nadia-solid-surface`. The package also delivers the three remaining material states as compatibility routes: `assets/nadia-ordered-points`, `assets/nadia-triangulated-wire`, and `assets/nadia-irregular-particles`. Package delivery does not grant brand approval; which Nadia image a surface may use stays with the identity document named above.
|
|
1127
|
-
|
|
1128
|
-
All three forms derive from one authored, framework-neutral geometry source exported as `@nadicodeai/design-system/assets/logo-geometry`. The lockup combines the shared mark and wordmark geometry at the established proportion and spacing. No SVG, React component, favicon, document, or app re-authors, traces, typesets, or rearranges those shapes.
|
|
1129
|
-
|
|
1130
|
-
Use the positive form on `{colors.canvas}` and the soft neutral canvases: ink letterforms and link with the primary verde link and `AI` suffix. Use the inverse form on `{colors.identity-ink}`: `{colors.identity-white}` letterforms and link with the dark-primary verde link and `AI` suffix. On `{colors.identity-verde}`, use the supplied on-verde form with one ink link and one white link. On photography, place the logo in a quiet area or over a scrim that keeps every part legible; when neither is available, mount it on an approved solid field. One surface uses one treatment.
|
|
1131
|
-
|
|
1132
|
-
The clear-space unit is the rendered width of one link stroke in the mark. Keep at least one unit free on every side of the mark and lockup, with no text, rule, image, or container edge inside it. A wordmark used alone keeps the same unit that the mark would have at the wordmark's capital height. Minimum rendered sizes are 16 CSS pixels or 5 mm for the mark, 130 CSS pixels or 32 mm wide for the lockup, and 96 CSS pixels or 25 mm wide for the wordmark. Browser and operating-system icon slots use the supplied favicon or app-icon files at the platform's required size and are exempt from the screen minimum. Never compress, crop, or distort a logo to fit.
|
|
1133
|
-
|
|
1134
|
-
For a meaningful standalone image, use the accessible name `NadicodeAI`; the accessible name is the label that identifies an image, link, or control to assistive technology. When a containing link or control already has that accessible name, hide the logo image from assistive technology with empty alt text. Never repeat the same accessible name on both the container and the image.
|
|
1135
|
-
|
|
1136
|
-
Do not redraw, retype, reorder, stretch, crop, rotate, recolor, outline, shadow, animate, or add effects or gradients to a logo form. Do not flatten the over-under interlock, add a third link, alter the proportions or lockup spacing, stack the forms, embed the mark inside the wordmark, place the mark after the wordmark, combine it with another mark, or substitute Nadia imagery for it.
|
|
1137
|
-
|
|
1138
|
-
The package build renders and publicly exports full-colour, mono-ink, inverse, and on-verde SVG and transparent PNG files for the lockup, mark, and wordmark from the geometry and current `colors.*` contract. React consumers use `BrandLockup`, `BrandMark`, or `BrandWordmark` according to the roles above. The operator-only favicon generator wraps the same mark geometry in the platform tile and may adapt tile radius, output size, and fixed-tile paint roles; it does not substitute another mark. Private geometry templates do not ship. A contract or geometry change is completed by regeneration, never by repainting an output or updating a fallback by hand.
|
|
1139
|
-
|
|
1140
1127
|
### Enforcement
|
|
1141
1128
|
|
|
1142
1129
|
Correctness is structural, not a byte snapshot: `scripts/sd/design-tokens-fence.test.ts` verifies the fence reader, one fence, strict JSON, typed leaves, legal names; `scripts/sd/compose-token-graph.test.ts` verifies the composition, one construction of the root, alias rewriting, ownership and reference direction, extension preservation, and the CSS projection; `tests/guards/dtcg-shape.test.ts` verifies both published artifacts against the vendored DTCG schema and the Nadicode profile; `tests/guards/token-structural-parity.test.ts` verifies the complete `--nc-*` projection; `tests/guards/tailwind-v4-theme.test.ts` verifies mode-pair derivation, `@theme` values, and light/dark role integrity; `tests/guards/component-contract-matches-css.test.ts` verifies the retained CSS component surface against this contract; `tests/guards/css-bundle.test.ts` verifies the public artifact is flat, complete, and contains no shipped partials; and `tests/guards/consumer-css-discipline.test.ts` verifies reference integrity, the absence of raw color literals in the hand-authored kit CSS and of raw color and radius literals in `examples/`, second value sources, and DTCG drift. These guards read freshly built output (the test global-setup rebuilds before any of them run), so they prove the generator; a hand-edited or stale committed generated file is caught by the CI cleanliness step in the `design-system` job, which requires a fresh build to reproduce the committed bytes exactly, with `dist/favicon/**` outside it, regenerated only by `generate:favicons` and fenced by review rather than machinery. Cross-package guards verify that React callers use only the React stylesheet interface.
|
package/dist/css/index.css
CHANGED
|
@@ -77,7 +77,6 @@
|
|
|
77
77
|
--nc-warning: oklch(0.8466 0.1678 84.63);
|
|
78
78
|
--nc-warning-soft: oklch(0.9649 0.0461 90.87);
|
|
79
79
|
--nc-warning-deep: oklch(0.4834 0.0995 82.44);
|
|
80
|
-
--nc-flag-red: oklch(0.5688 0.1995 26.59);
|
|
81
80
|
--nc-verde-vivo: oklch(0.5604 0.1485 151.68);
|
|
82
81
|
--nc-selection-bg: oklch(0.1776 0.0000 0.00);
|
|
83
82
|
--nc-selection-fg: oklch(0.9851 0.0000 0.00);
|
|
@@ -89,8 +88,6 @@
|
|
|
89
88
|
--nc-state-review: oklch(0.8466 0.1678 84.63);
|
|
90
89
|
--nc-state-blocked: oklch(0.5688 0.1995 26.59);
|
|
91
90
|
--nc-state-complete: oklch(0.6415 0.1644 153.23);
|
|
92
|
-
--nc-background-100: oklch(1.0000 0.0000 0.00);
|
|
93
|
-
--nc-background-200: oklch(0.9851 0.0000 0.00);
|
|
94
91
|
--nc-identity-verde: oklch(0.6415 0.1644 153.23);
|
|
95
92
|
--nc-identity-rosso: oklch(0.5688 0.1995 26.59);
|
|
96
93
|
--nc-identity-arancio: oklch(0.6824 0.2108 37.70);
|
|
@@ -98,6 +95,11 @@
|
|
|
98
95
|
--nc-identity-cobalto: oklch(0.5005 0.2804 266.17);
|
|
99
96
|
--nc-identity-ink: oklch(0.0000 0.0000 0.00);
|
|
100
97
|
--nc-identity-white: oklch(1.0000 0.0000 0.00);
|
|
98
|
+
--nc-forma-visor: oklch(0.1765 0.0221 173.80);
|
|
99
|
+
--nc-forma-bezel: oklch(0.3296 0.0275 169.76);
|
|
100
|
+
--nc-forma-eye: oklch(0.8804 0.0372 168.27);
|
|
101
|
+
--nc-forma-avorio: oklch(0.9262 0.0161 99.01);
|
|
102
|
+
--nc-forma-sabbia: oklch(0.7511 0.0609 77.67);
|
|
101
103
|
--nc-chart-1: oklch(0.5005 0.2804 266.17);
|
|
102
104
|
--nc-chart-2: oklch(0.6415 0.1644 153.23);
|
|
103
105
|
--nc-chart-3: oklch(0.7638 0.1562 86.86);
|
|
@@ -143,9 +145,6 @@
|
|
|
143
145
|
--nc-dark-info: oklch(0.7067 0.1528 272.08);
|
|
144
146
|
--nc-dark-info-soft: oklch(0.2118 0.1033 268.28);
|
|
145
147
|
--nc-dark-info-deep: oklch(0.8222 0.0888 274.44);
|
|
146
|
-
--nc-dark-cyan: oklch(0.7820 0.1247 190.99);
|
|
147
|
-
--nc-dark-cyan-soft: oklch(0.8646 0.1000 187.55);
|
|
148
|
-
--nc-dark-cyan-deep: oklch(0.6347 0.1029 191.54);
|
|
149
148
|
--nc-dark-success: oklch(0.7019 0.1753 153.20);
|
|
150
149
|
--nc-dark-success-soft: oklch(0.2893 0.0697 156.32);
|
|
151
150
|
--nc-dark-success-deep: oklch(0.8524 0.0996 159.83);
|
|
@@ -670,7 +669,7 @@
|
|
|
670
669
|
--sidebar-border: var(--nc-dark-line);
|
|
671
670
|
--sidebar-ring: var(--nc-dark-focus-ring);
|
|
672
671
|
}
|
|
673
|
-
@theme { --color-*: initial; --color-nc-primary: oklch(0.5075 0.1338 151.91); --color-nc-on-primary: oklch(1.0000 0.0000 0.00); --color-nc-action: oklch(0.1776 0.0000 0.00); --color-nc-action-foreground: oklch(1.0000 0.0000 0.00); --color-nc-action-hover: oklch(0.3012 0.0000 0.00); --color-nc-action-active: oklch(0.0000 0.0000 0.00); --color-nc-ink: oklch(0.1776 0.0000 0.00); --color-nc-body: oklch(0.3867 0.0000 0.00); --color-nc-muted: oklch(0.5278 0.0000 0.00); --color-nc-canvas: oklch(1.0000 0.0000 0.00); --color-nc-canvas-soft: oklch(0.9851 0.0000 0.00); --color-nc-canvas-soft-2: oklch(0.9702 0.0000 0.00); --color-nc-material-workspace: oklch(0.9761 0.0000 0.00); --color-nc-material-solid: oklch(1.0000 0.0000 0.00); --color-nc-line: oklch(0.9219 0.0000 0.00); --color-nc-input: oklch(0.5624 0.0000 0.00); --color-nc-seam: oklch(0.8699 0.0000 0.00); --color-nc-cross: oklch(0.6830 0.0000 0.00); --color-nc-focus-ring: oklch(0.1776 0.0000 0.00); --color-nc-scrim: oklch(0.1776 0.0000 0.00); --color-nc-link: oklch(0.4815 0.1209 154.24); --color-nc-link-deep: oklch(0.3852 0.0953 154.99); --color-nc-link-bg-soft: oklch(0.9170 0.0519 161.77); --color-nc-accent: oklch(0.6824 0.2108 37.70); --color-nc-info: oklch(0.5005 0.2804 266.17); --color-nc-info-soft: oklch(0.9457 0.0259 276.40); --color-nc-info-deep: oklch(0.3197 0.1758 266.79); --color-nc-success: oklch(0.6415 0.1644 153.23); --color-nc-success-soft: oklch(0.9170 0.0519 161.77); --color-nc-success-deep: oklch(0.3852 0.0953 154.99); --color-nc-error: oklch(0.5688 0.1995 26.59); --color-nc-error-soft: oklch(0.9522 0.0207 17.52); --color-nc-error-deep: oklch(0.4235 0.1525 27.08); --color-nc-warning: oklch(0.8466 0.1678 84.63); --color-nc-warning-soft: oklch(0.9649 0.0461 90.87); --color-nc-warning-deep: oklch(0.4834 0.0995 82.44); --color-nc-flag-red: oklch(0.5688 0.1995 26.59); --color-nc-verde-vivo: oklch(0.5604 0.1485 151.68); --color-nc-selection-bg: oklch(0.1776 0.0000 0.00); --color-nc-selection-fg: oklch(0.9851 0.0000 0.00); --color-nc-navigation-selection-bg: oklch(0.9461 0.0000 0.00); --color-nc-navigation-selection-fg: oklch(0.1776 0.0000 0.00); --color-nc-navigation-selection-hover: oklch(0.9219 0.0000 0.00); --color-nc-state-ready: oklch(0.5278 0.0000 0.00); --color-nc-state-running: oklch(0.5005 0.2804 266.17); --color-nc-state-review: oklch(0.8466 0.1678 84.63); --color-nc-state-blocked: oklch(0.5688 0.1995 26.59); --color-nc-state-complete: oklch(0.6415 0.1644 153.23); --color-nc-background-100: oklch(1.0000 0.0000 0.00); --color-nc-background-200: oklch(0.9851 0.0000 0.00); --color-nc-identity-verde: oklch(0.6415 0.1644 153.23); --color-nc-identity-rosso: oklch(0.5688 0.1995 26.59); --color-nc-identity-arancio: oklch(0.6824 0.2108 37.70); --color-nc-identity-giallo: oklch(0.8466 0.1678 84.63); --color-nc-identity-cobalto: oklch(0.5005 0.2804 266.17); --color-nc-identity-ink: oklch(0.0000 0.0000 0.00); --color-nc-identity-white: oklch(1.0000 0.0000 0.00); --color-nc-chart-1: oklch(0.5005 0.2804 266.17); --color-nc-chart-2: oklch(0.6415 0.1644 153.23); --color-nc-chart-3: oklch(0.7638 0.1562 86.86); --color-nc-chart-4: oklch(0.5688 0.1995 26.59); --color-nc-chart-5: oklch(0.6161 0.1062 208.85); --color-nc-chart-6: oklch(0.5015 0.1883 294.99); --color-nc-chart-seq-1: oklch(0.6998 0.1347 269.48); --color-nc-chart-seq-2: oklch(0.5724 0.1897 270.11); --color-nc-chart-seq-3: oklch(0.4725 0.2271 267.41); --color-nc-chart-seq-4: oklch(0.3989 0.1934 267.50); --color-nc-chart-seq-5: oklch(0.3270 0.1487 267.91); --color-nc-chart-div-warm: oklch(0.7592 0.1560 83.30); --color-nc-chart-div-mid: oklch(0.5278 0.0000 0.00); --color-nc-chart-div-cool: oklch(0.5923 0.2215 269.61); --color-nc-dark-canvas: oklch(0.0000 0.0000 0.00); --color-nc-dark-canvas-soft: oklch(0.1776 0.0000 0.00); --color-nc-dark-canvas-soft-2: oklch(0.2178 0.0000 0.00); --color-nc-dark-material-workspace: oklch(0.0000 0.0000 0.00); --color-nc-dark-material-solid: oklch(0.0000 0.0000 0.00); --color-nc-dark-ink: oklch(0.9461 0.0000 0.00); --color-nc-dark-body: oklch(0.8297 0.0000 0.00); --color-nc-dark-muted: oklch(0.6500 0.0000 0.00); --color-nc-dark-line: oklch(0.2686 0.0000 0.00); --color-nc-dark-input: oklch(0.5208 0.0000 0.00); --color-nc-dark-seam: oklch(0.2178 0.0000 0.00); --color-nc-dark-primary: oklch(0.7727 0.1753 155.96); --color-nc-dark-on-primary: oklch(0.1448 0.0000 0.00); --color-nc-dark-action: oklch(1.0000 0.0000 0.00); --color-nc-dark-action-foreground: oklch(0.1448 0.0000 0.00); --color-nc-dark-action-hover: oklch(0.9189 0.0000 0.00); --color-nc-dark-action-active: oklch(0.8761 0.0000 0.00); --color-nc-dark-link: oklch(0.7661 0.1498 157.10); --color-nc-dark-link-deep: oklch(0.8524 0.0996 159.83); --color-nc-dark-link-bg-soft: oklch(0.2893 0.0697 156.32); --color-nc-dark-focus-ring: oklch(0.9461 0.0000 0.00); --color-nc-dark-scrim: oklch(0.9461 0.0000 0.00); --color-nc-dark-error: oklch(0.7955 0.0980 21.02); --color-nc-dark-error-soft: oklch(0.2296 0.0728 26.06); --color-nc-dark-error-deep: oklch(0.8856 0.0534 19.64); --color-nc-dark-warning: oklch(0.8939 0.1387 90.47); --color-nc-dark-warning-soft: oklch(0.3135 0.0643 85.04); --color-nc-dark-warning-deep: oklch(0.9320 0.0896 90.86); --color-nc-dark-info: oklch(0.7067 0.1528 272.08); --color-nc-dark-info-soft: oklch(0.2118 0.1033 268.28); --color-nc-dark-info-deep: oklch(0.8222 0.0888 274.44); --color-nc-dark-cyan: oklch(0.7820 0.1247 190.99); --color-nc-dark-cyan-soft: oklch(0.8646 0.1000 187.55); --color-nc-dark-cyan-deep: oklch(0.6347 0.1029 191.54); --color-nc-dark-success: oklch(0.7019 0.1753 153.20); --color-nc-dark-success-soft: oklch(0.2893 0.0697 156.32); --color-nc-dark-success-deep: oklch(0.8524 0.0996 159.83); --color-nc-dark-state-ready: oklch(0.5624 0.0000 0.00); --color-nc-dark-state-running: oklch(0.5923 0.2215 269.61); --color-nc-dark-state-review: oklch(0.8466 0.1678 84.63); --color-nc-dark-state-blocked: oklch(0.5688 0.1995 26.59); --color-nc-dark-state-complete: oklch(0.6415 0.1644 153.23); --color-nc-dark-selection-bg: oklch(0.9461 0.0000 0.00); --color-nc-dark-selection-fg: oklch(0.1448 0.0000 0.00); --color-nc-dark-navigation-selection-bg: oklch(0.2178 0.0000 0.00); --color-nc-dark-navigation-selection-fg: oklch(0.9461 0.0000 0.00); --color-nc-dark-navigation-selection-hover: oklch(0.2686 0.0000 0.00); --color-nc-dark-cross: oklch(0.4495 0.0000 0.00); --color-nc-dark-verde-vivo: oklch(0.7868 0.1398 156.43); --color-nc-dark-chart-1: oklch(0.5923 0.2215 269.61); --color-nc-dark-chart-2: oklch(0.6415 0.1644 153.23); --color-nc-dark-chart-3: oklch(0.8939 0.1387 90.47); --color-nc-dark-chart-4: oklch(0.6627 0.1685 23.66); --color-nc-dark-chart-5: oklch(0.7820 0.1247 190.99); --color-nc-dark-chart-6: oklch(0.6297 0.1321 299.36); --color-nc-dark-chart-seq-1: oklch(0.5724 0.1897 270.11); --color-nc-dark-chart-seq-2: oklch(0.6998 0.1347 269.48); --color-nc-dark-chart-seq-3: oklch(0.8072 0.0884 269.44); --color-nc-dark-chart-seq-4: oklch(0.8877 0.0514 270.78); --color-nc-dark-chart-seq-5: oklch(0.9619 0.0179 272.31); --color-nc-dark-chart-div-warm: oklch(0.8939 0.1387 90.47); --color-nc-dark-chart-div-mid: oklch(0.9219 0.0000 0.00); --color-nc-dark-chart-div-cool: oklch(0.8222 0.0888 274.44); --font-display-xl: Geist, Inter, system-ui, -apple-system, sans-serif; --font-display-lg: Geist, Inter, system-ui, -apple-system, sans-serif; --font-display-md: Geist, Inter, system-ui, -apple-system, sans-serif; --font-display-sm: Geist, Inter, system-ui, -apple-system, sans-serif; --font-title-lg: Geist, Inter, system-ui, -apple-system, sans-serif; --font-title-md: Geist, Inter, system-ui, -apple-system, sans-serif; --font-title-sm: Geist, Inter, system-ui, -apple-system, sans-serif; --font-body-lg: Geist, Inter, system-ui, -apple-system, sans-serif; --font-body-md: Geist, Inter, system-ui, -apple-system, sans-serif; --font-body-md-strong: Geist, Inter, system-ui, -apple-system, sans-serif; --font-body-sm: Geist, Inter, system-ui, -apple-system, sans-serif; --font-body-sm-strong: Geist, Inter, system-ui, -apple-system, sans-serif; --font-caption: Geist, Inter, system-ui, -apple-system, sans-serif; --font-caption-strong: Geist, Inter, system-ui, -apple-system, sans-serif; --font-caption-mono: Geist Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, monospace; --font-code: Geist Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, monospace; --font-button-md: Geist, Inter, system-ui, -apple-system, sans-serif; --font-button-lg: Geist, Inter, system-ui, -apple-system, sans-serif; --text-display-xl: 72px; --text-display-xl--line-height: 74px; --leading-display-xl: 74px; --text-display-xl--letter-spacing: -1.5px; --tracking-display-xl: -1.5px; --text-display-xl--font-weight: 600; --font-weight-display-xl: 600; --text-display-lg: 52px; --text-display-lg--line-height: 54px; --leading-display-lg: 54px; --text-display-lg--letter-spacing: -1px; --tracking-display-lg: -1px; --text-display-lg--font-weight: 600; --font-weight-display-lg: 600; --text-display-md: 24px; --text-display-md--line-height: 32px; --leading-display-md: 32px; --text-display-md--letter-spacing: 0px; --tracking-display-md: 0px; --text-display-md--font-weight: 600; --font-weight-display-md: 600; --text-display-sm: 20px; --text-display-sm--line-height: 28px; --leading-display-sm: 28px; --text-display-sm--letter-spacing: 0px; --tracking-display-sm: 0px; --text-display-sm--font-weight: 600; --font-weight-display-sm: 600; --text-title-lg: 40px; --text-title-lg--line-height: 41px; --leading-title-lg: 41px; --text-title-lg--letter-spacing: 0px; --tracking-title-lg: 0px; --text-title-lg--font-weight: 600; --font-weight-title-lg: 600; --text-title-md: 30px; --text-title-md--line-height: 32px; --leading-title-md: 32px; --text-title-md--letter-spacing: 0px; --tracking-title-md: 0px; --text-title-md--font-weight: 600; --font-weight-title-md: 600; --text-title-sm: 22px; --text-title-sm--line-height: 25px; --leading-title-sm: 25px; --text-title-sm--letter-spacing: 0px; --tracking-title-sm: 0px; --text-title-sm--font-weight: 600; --font-weight-title-sm: 600; --text-body-lg: 18px; --text-body-lg--line-height: 27px; --leading-body-lg: 27px; --text-body-lg--letter-spacing: 0px; --tracking-body-lg: 0px; --text-body-lg--font-weight: 400; --font-weight-body-lg: 400; --text-body-md: 16px; --text-body-md--line-height: 25px; --leading-body-md: 25px; --text-body-md--letter-spacing: 0px; --tracking-body-md: 0px; --text-body-md--font-weight: 400; --font-weight-body-md: 400; --text-body-md-strong: 16px; --text-body-md-strong--line-height: 24px; --leading-body-md-strong: 24px; --text-body-md-strong--letter-spacing: 0px; --tracking-body-md-strong: 0px; --text-body-md-strong--font-weight: 500; --font-weight-body-md-strong: 500; --text-body-sm: 14px; --text-body-sm--line-height: 20px; --leading-body-sm: 20px; --text-body-sm--letter-spacing: 0px; --tracking-body-sm: 0px; --text-body-sm--font-weight: 400; --font-weight-body-sm: 400; --text-body-sm-strong: 14px; --text-body-sm-strong--line-height: 20px; --leading-body-sm-strong: 20px; --text-body-sm-strong--letter-spacing: 0px; --tracking-body-sm-strong: 0px; --text-body-sm-strong--font-weight: 500; --font-weight-body-sm-strong: 500; --text-caption: 12px; --text-caption--line-height: 16px; --leading-caption: 16px; --text-caption--letter-spacing: 0px; --tracking-caption: 0px; --text-caption--font-weight: 400; --font-weight-caption: 400; --text-caption-strong: 12px; --text-caption-strong--line-height: 16px; --leading-caption-strong: 16px; --text-caption-strong--letter-spacing: 0px; --tracking-caption-strong: 0px; --text-caption-strong--font-weight: 500; --font-weight-caption-strong: 500; --text-caption-mono: 12px; --text-caption-mono--line-height: 16px; --leading-caption-mono: 16px; --text-caption-mono--letter-spacing: 0px; --tracking-caption-mono: 0px; --text-caption-mono--font-weight: 500; --font-weight-caption-mono: 500; --text-code: 13px; --text-code--line-height: 20px; --leading-code: 20px; --text-code--letter-spacing: 0px; --tracking-code: 0px; --text-code--font-weight: 400; --font-weight-code: 400; --text-button-md: 14px; --text-button-md--line-height: 18px; --leading-button-md: 18px; --text-button-md--letter-spacing: 0px; --tracking-button-md: 0px; --text-button-md--font-weight: 500; --font-weight-button-md: 500; --text-button-lg: 16px; --text-button-lg--line-height: 24px; --leading-button-lg: 24px; --text-button-lg--letter-spacing: 0px; --tracking-button-lg: 0px; --text-button-lg--font-weight: 500; --font-weight-button-lg: 500; --radius-none: 0px; --radius-xs: 2px; --radius-sm: 4px; --radius-md: 6px; --radius-lg: 8px; --radius-xl: 10px; --radius-2xl: 12px; --radius-3xl: 16px; --radius-pill-sm: 64px; --radius-pill: 100px; --radius-full: 9999px; --ease-nc-emphasized: cubic-bezier(0.3, 0.7, 0.2, 1); --ease-nc-out-strong: cubic-bezier(0.23, 1, 0.32, 1); --ease-nc-in-out-strong: cubic-bezier(0.77, 0, 0.175, 1); --ease-nc-drawer: cubic-bezier(0.32, 0.72, 0, 1); --outline-width-focus: var(--spacing-nadicode-focus-outline-width); --outline-offset-focus: var(--spacing-nadicode-focus-outline-offset); --opacity-scrim: var(--nc-material-scrim-opacity); --spacing-nadicode-xxs: 4px; --spacing-nadicode-xs: 8px; --spacing-nadicode-sm: 12px; --spacing-nadicode-md: 16px; --spacing-nadicode-lg: 24px; --spacing-nadicode-xl: 32px; --spacing-nadicode-2xl: 40px; --spacing-nadicode-3xl: 48px; --spacing-nadicode-4xl: 64px; --spacing-nadicode-5xl: 96px; --spacing-nadicode-6xl: 128px; --spacing-nadicode-guide: 1px; --spacing-nadicode-icon-stroke: 1.6px; --spacing-nadicode-focus-outline-width: 2px; --spacing-nadicode-focus-outline-offset: 2px; --spacing-nadicode-control-height: 32px; --spacing-nadicode-control-padding-inline: 10px; --spacing-nadicode-touch-target: 44px; --spacing-nadicode-section: 192px; --spacing-nadicode-page-pad: 24px; --spacing-nadicode-page-max-mobile: 448px; --spacing-nadicode-page-max-tablet: 624px; --spacing-nadicode-page-max-desktop: 1440px; --spacing-nadicode-frame-max: 1392px; --spacing-nadicode-frame-gap: 24px; --spacing-nadicode-cell-padding: 24px; --spacing-nadicode-section-gap: 48px; --spacing-nadicode-cross-size-mobile: 11px; --spacing-nadicode-cross-size-tablet: 15px; --spacing-nadicode-cross-size-desktop: 21px; --spacing-nadicode-h-strip-mobile: 72px; --spacing-nadicode-h-strip-tablet: 80px; --spacing-nadicode-h-strip-desktop: 88px; --spacing-nadicode-h-cell-sm: 120px; --spacing-nadicode-h-cell-md-mobile: 144px; --spacing-nadicode-h-cell-md-tablet: 160px; --spacing-nadicode-h-cell-md-desktop: 168px; --spacing-nadicode-h-cell-lg-mobile: 220px; --spacing-nadicode-h-cell-lg-desktop: 240px; --spacing-nadicode-h-visual-mobile: 276px; --spacing-nadicode-h-visual-tablet: 318px; --spacing-nadicode-h-visual-desktop: 360px; --spacing-nadicode-h-precision-mobile: 276px; --spacing-nadicode-h-precision-tablet: 480px; --spacing-nadicode-h-precision-desktop: 720px; --spacing-nadicode-h-hero-mobile: 560px; --spacing-nadicode-h-hero-desktop: 720px; --spacing-nadicode-h-action-strip-mobile: 20px; --spacing-nadicode-h-action-strip-desktop: 32px; --spacing-nadicode-h-action-body-mobile: 320px; --spacing-nadicode-h-action-body-tablet: 338px; --spacing-nadicode-h-action-band: 260px; --spacing-nadicode-h-feature-mobile: 360px; --spacing-nadicode-h-feature-tablet: 400px; --spacing-nadicode-h-feature-desktop: 456px; --spacing-nadicode-h-editorial-feature-mobile: 360px; --spacing-nadicode-h-editorial-feature-tablet: 440px; --spacing-nadicode-h-editorial-feature-desktop: 560px; --spacing-nadicode-h-bento-primary: 384px; --spacing-nadicode-h-bento-secondary: 240px; --spacing-nadicode-h-bento-mobile-copy: 248px; --spacing-nadicode-h-bento-mobile-main: 537px; --spacing-nadicode-h-bento-strip: 20px; --spacing-nadicode-filter-chip-gap: 6px; --spacing-nadicode-filter-chip-height: 28px; --spacing-nadicode-filter-chip-icon: 14px; --spacing-control-height: var(--spacing-nadicode-control-height); --spacing-control-padding-inline: var(--spacing-nadicode-control-padding-inline); --spacing-touch-target: var(--spacing-nadicode-touch-target); }
|
|
672
|
+
@theme { --color-*: initial; --color-nc-primary: oklch(0.5075 0.1338 151.91); --color-nc-on-primary: oklch(1.0000 0.0000 0.00); --color-nc-action: oklch(0.1776 0.0000 0.00); --color-nc-action-foreground: oklch(1.0000 0.0000 0.00); --color-nc-action-hover: oklch(0.3012 0.0000 0.00); --color-nc-action-active: oklch(0.0000 0.0000 0.00); --color-nc-ink: oklch(0.1776 0.0000 0.00); --color-nc-body: oklch(0.3867 0.0000 0.00); --color-nc-muted: oklch(0.5278 0.0000 0.00); --color-nc-canvas: oklch(1.0000 0.0000 0.00); --color-nc-canvas-soft: oklch(0.9851 0.0000 0.00); --color-nc-canvas-soft-2: oklch(0.9702 0.0000 0.00); --color-nc-material-workspace: oklch(0.9761 0.0000 0.00); --color-nc-material-solid: oklch(1.0000 0.0000 0.00); --color-nc-line: oklch(0.9219 0.0000 0.00); --color-nc-input: oklch(0.5624 0.0000 0.00); --color-nc-seam: oklch(0.8699 0.0000 0.00); --color-nc-cross: oklch(0.6830 0.0000 0.00); --color-nc-focus-ring: oklch(0.1776 0.0000 0.00); --color-nc-scrim: oklch(0.1776 0.0000 0.00); --color-nc-link: oklch(0.4815 0.1209 154.24); --color-nc-link-deep: oklch(0.3852 0.0953 154.99); --color-nc-link-bg-soft: oklch(0.9170 0.0519 161.77); --color-nc-accent: oklch(0.6824 0.2108 37.70); --color-nc-info: oklch(0.5005 0.2804 266.17); --color-nc-info-soft: oklch(0.9457 0.0259 276.40); --color-nc-info-deep: oklch(0.3197 0.1758 266.79); --color-nc-success: oklch(0.6415 0.1644 153.23); --color-nc-success-soft: oklch(0.9170 0.0519 161.77); --color-nc-success-deep: oklch(0.3852 0.0953 154.99); --color-nc-error: oklch(0.5688 0.1995 26.59); --color-nc-error-soft: oklch(0.9522 0.0207 17.52); --color-nc-error-deep: oklch(0.4235 0.1525 27.08); --color-nc-warning: oklch(0.8466 0.1678 84.63); --color-nc-warning-soft: oklch(0.9649 0.0461 90.87); --color-nc-warning-deep: oklch(0.4834 0.0995 82.44); --color-nc-verde-vivo: oklch(0.5604 0.1485 151.68); --color-nc-selection-bg: oklch(0.1776 0.0000 0.00); --color-nc-selection-fg: oklch(0.9851 0.0000 0.00); --color-nc-navigation-selection-bg: oklch(0.9461 0.0000 0.00); --color-nc-navigation-selection-fg: oklch(0.1776 0.0000 0.00); --color-nc-navigation-selection-hover: oklch(0.9219 0.0000 0.00); --color-nc-state-ready: oklch(0.5278 0.0000 0.00); --color-nc-state-running: oklch(0.5005 0.2804 266.17); --color-nc-state-review: oklch(0.8466 0.1678 84.63); --color-nc-state-blocked: oklch(0.5688 0.1995 26.59); --color-nc-state-complete: oklch(0.6415 0.1644 153.23); --color-nc-identity-verde: oklch(0.6415 0.1644 153.23); --color-nc-identity-rosso: oklch(0.5688 0.1995 26.59); --color-nc-identity-arancio: oklch(0.6824 0.2108 37.70); --color-nc-identity-giallo: oklch(0.8466 0.1678 84.63); --color-nc-identity-cobalto: oklch(0.5005 0.2804 266.17); --color-nc-identity-ink: oklch(0.0000 0.0000 0.00); --color-nc-identity-white: oklch(1.0000 0.0000 0.00); --color-nc-forma-visor: oklch(0.1765 0.0221 173.80); --color-nc-forma-bezel: oklch(0.3296 0.0275 169.76); --color-nc-forma-eye: oklch(0.8804 0.0372 168.27); --color-nc-forma-avorio: oklch(0.9262 0.0161 99.01); --color-nc-forma-sabbia: oklch(0.7511 0.0609 77.67); --color-nc-chart-1: oklch(0.5005 0.2804 266.17); --color-nc-chart-2: oklch(0.6415 0.1644 153.23); --color-nc-chart-3: oklch(0.7638 0.1562 86.86); --color-nc-chart-4: oklch(0.5688 0.1995 26.59); --color-nc-chart-5: oklch(0.6161 0.1062 208.85); --color-nc-chart-6: oklch(0.5015 0.1883 294.99); --color-nc-chart-seq-1: oklch(0.6998 0.1347 269.48); --color-nc-chart-seq-2: oklch(0.5724 0.1897 270.11); --color-nc-chart-seq-3: oklch(0.4725 0.2271 267.41); --color-nc-chart-seq-4: oklch(0.3989 0.1934 267.50); --color-nc-chart-seq-5: oklch(0.3270 0.1487 267.91); --color-nc-chart-div-warm: oklch(0.7592 0.1560 83.30); --color-nc-chart-div-mid: oklch(0.5278 0.0000 0.00); --color-nc-chart-div-cool: oklch(0.5923 0.2215 269.61); --color-nc-dark-canvas: oklch(0.0000 0.0000 0.00); --color-nc-dark-canvas-soft: oklch(0.1776 0.0000 0.00); --color-nc-dark-canvas-soft-2: oklch(0.2178 0.0000 0.00); --color-nc-dark-material-workspace: oklch(0.0000 0.0000 0.00); --color-nc-dark-material-solid: oklch(0.0000 0.0000 0.00); --color-nc-dark-ink: oklch(0.9461 0.0000 0.00); --color-nc-dark-body: oklch(0.8297 0.0000 0.00); --color-nc-dark-muted: oklch(0.6500 0.0000 0.00); --color-nc-dark-line: oklch(0.2686 0.0000 0.00); --color-nc-dark-input: oklch(0.5208 0.0000 0.00); --color-nc-dark-seam: oklch(0.2178 0.0000 0.00); --color-nc-dark-primary: oklch(0.7727 0.1753 155.96); --color-nc-dark-on-primary: oklch(0.1448 0.0000 0.00); --color-nc-dark-action: oklch(1.0000 0.0000 0.00); --color-nc-dark-action-foreground: oklch(0.1448 0.0000 0.00); --color-nc-dark-action-hover: oklch(0.9189 0.0000 0.00); --color-nc-dark-action-active: oklch(0.8761 0.0000 0.00); --color-nc-dark-link: oklch(0.7661 0.1498 157.10); --color-nc-dark-link-deep: oklch(0.8524 0.0996 159.83); --color-nc-dark-link-bg-soft: oklch(0.2893 0.0697 156.32); --color-nc-dark-focus-ring: oklch(0.9461 0.0000 0.00); --color-nc-dark-scrim: oklch(0.9461 0.0000 0.00); --color-nc-dark-error: oklch(0.7955 0.0980 21.02); --color-nc-dark-error-soft: oklch(0.2296 0.0728 26.06); --color-nc-dark-error-deep: oklch(0.8856 0.0534 19.64); --color-nc-dark-warning: oklch(0.8939 0.1387 90.47); --color-nc-dark-warning-soft: oklch(0.3135 0.0643 85.04); --color-nc-dark-warning-deep: oklch(0.9320 0.0896 90.86); --color-nc-dark-info: oklch(0.7067 0.1528 272.08); --color-nc-dark-info-soft: oklch(0.2118 0.1033 268.28); --color-nc-dark-info-deep: oklch(0.8222 0.0888 274.44); --color-nc-dark-success: oklch(0.7019 0.1753 153.20); --color-nc-dark-success-soft: oklch(0.2893 0.0697 156.32); --color-nc-dark-success-deep: oklch(0.8524 0.0996 159.83); --color-nc-dark-state-ready: oklch(0.5624 0.0000 0.00); --color-nc-dark-state-running: oklch(0.5923 0.2215 269.61); --color-nc-dark-state-review: oklch(0.8466 0.1678 84.63); --color-nc-dark-state-blocked: oklch(0.5688 0.1995 26.59); --color-nc-dark-state-complete: oklch(0.6415 0.1644 153.23); --color-nc-dark-selection-bg: oklch(0.9461 0.0000 0.00); --color-nc-dark-selection-fg: oklch(0.1448 0.0000 0.00); --color-nc-dark-navigation-selection-bg: oklch(0.2178 0.0000 0.00); --color-nc-dark-navigation-selection-fg: oklch(0.9461 0.0000 0.00); --color-nc-dark-navigation-selection-hover: oklch(0.2686 0.0000 0.00); --color-nc-dark-cross: oklch(0.4495 0.0000 0.00); --color-nc-dark-verde-vivo: oklch(0.7868 0.1398 156.43); --color-nc-dark-chart-1: oklch(0.5923 0.2215 269.61); --color-nc-dark-chart-2: oklch(0.6415 0.1644 153.23); --color-nc-dark-chart-3: oklch(0.8939 0.1387 90.47); --color-nc-dark-chart-4: oklch(0.6627 0.1685 23.66); --color-nc-dark-chart-5: oklch(0.7820 0.1247 190.99); --color-nc-dark-chart-6: oklch(0.6297 0.1321 299.36); --color-nc-dark-chart-seq-1: oklch(0.5724 0.1897 270.11); --color-nc-dark-chart-seq-2: oklch(0.6998 0.1347 269.48); --color-nc-dark-chart-seq-3: oklch(0.8072 0.0884 269.44); --color-nc-dark-chart-seq-4: oklch(0.8877 0.0514 270.78); --color-nc-dark-chart-seq-5: oklch(0.9619 0.0179 272.31); --color-nc-dark-chart-div-warm: oklch(0.8939 0.1387 90.47); --color-nc-dark-chart-div-mid: oklch(0.9219 0.0000 0.00); --color-nc-dark-chart-div-cool: oklch(0.8222 0.0888 274.44); --font-display-xl: Geist, Inter, system-ui, -apple-system, sans-serif; --font-display-lg: Geist, Inter, system-ui, -apple-system, sans-serif; --font-display-md: Geist, Inter, system-ui, -apple-system, sans-serif; --font-display-sm: Geist, Inter, system-ui, -apple-system, sans-serif; --font-title-lg: Geist, Inter, system-ui, -apple-system, sans-serif; --font-title-md: Geist, Inter, system-ui, -apple-system, sans-serif; --font-title-sm: Geist, Inter, system-ui, -apple-system, sans-serif; --font-body-lg: Geist, Inter, system-ui, -apple-system, sans-serif; --font-body-md: Geist, Inter, system-ui, -apple-system, sans-serif; --font-body-md-strong: Geist, Inter, system-ui, -apple-system, sans-serif; --font-body-sm: Geist, Inter, system-ui, -apple-system, sans-serif; --font-body-sm-strong: Geist, Inter, system-ui, -apple-system, sans-serif; --font-caption: Geist, Inter, system-ui, -apple-system, sans-serif; --font-caption-strong: Geist, Inter, system-ui, -apple-system, sans-serif; --font-caption-mono: Geist Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, monospace; --font-code: Geist Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, monospace; --font-button-md: Geist, Inter, system-ui, -apple-system, sans-serif; --font-button-lg: Geist, Inter, system-ui, -apple-system, sans-serif; --text-display-xl: 72px; --text-display-xl--line-height: 74px; --leading-display-xl: 74px; --text-display-xl--letter-spacing: -1.5px; --tracking-display-xl: -1.5px; --text-display-xl--font-weight: 600; --font-weight-display-xl: 600; --text-display-lg: 52px; --text-display-lg--line-height: 54px; --leading-display-lg: 54px; --text-display-lg--letter-spacing: -1px; --tracking-display-lg: -1px; --text-display-lg--font-weight: 600; --font-weight-display-lg: 600; --text-display-md: 24px; --text-display-md--line-height: 32px; --leading-display-md: 32px; --text-display-md--letter-spacing: 0px; --tracking-display-md: 0px; --text-display-md--font-weight: 600; --font-weight-display-md: 600; --text-display-sm: 20px; --text-display-sm--line-height: 28px; --leading-display-sm: 28px; --text-display-sm--letter-spacing: 0px; --tracking-display-sm: 0px; --text-display-sm--font-weight: 600; --font-weight-display-sm: 600; --text-title-lg: 40px; --text-title-lg--line-height: 41px; --leading-title-lg: 41px; --text-title-lg--letter-spacing: 0px; --tracking-title-lg: 0px; --text-title-lg--font-weight: 600; --font-weight-title-lg: 600; --text-title-md: 30px; --text-title-md--line-height: 32px; --leading-title-md: 32px; --text-title-md--letter-spacing: 0px; --tracking-title-md: 0px; --text-title-md--font-weight: 600; --font-weight-title-md: 600; --text-title-sm: 22px; --text-title-sm--line-height: 25px; --leading-title-sm: 25px; --text-title-sm--letter-spacing: 0px; --tracking-title-sm: 0px; --text-title-sm--font-weight: 600; --font-weight-title-sm: 600; --text-body-lg: 18px; --text-body-lg--line-height: 27px; --leading-body-lg: 27px; --text-body-lg--letter-spacing: 0px; --tracking-body-lg: 0px; --text-body-lg--font-weight: 400; --font-weight-body-lg: 400; --text-body-md: 16px; --text-body-md--line-height: 25px; --leading-body-md: 25px; --text-body-md--letter-spacing: 0px; --tracking-body-md: 0px; --text-body-md--font-weight: 400; --font-weight-body-md: 400; --text-body-md-strong: 16px; --text-body-md-strong--line-height: 24px; --leading-body-md-strong: 24px; --text-body-md-strong--letter-spacing: 0px; --tracking-body-md-strong: 0px; --text-body-md-strong--font-weight: 500; --font-weight-body-md-strong: 500; --text-body-sm: 14px; --text-body-sm--line-height: 20px; --leading-body-sm: 20px; --text-body-sm--letter-spacing: 0px; --tracking-body-sm: 0px; --text-body-sm--font-weight: 400; --font-weight-body-sm: 400; --text-body-sm-strong: 14px; --text-body-sm-strong--line-height: 20px; --leading-body-sm-strong: 20px; --text-body-sm-strong--letter-spacing: 0px; --tracking-body-sm-strong: 0px; --text-body-sm-strong--font-weight: 500; --font-weight-body-sm-strong: 500; --text-caption: 12px; --text-caption--line-height: 16px; --leading-caption: 16px; --text-caption--letter-spacing: 0px; --tracking-caption: 0px; --text-caption--font-weight: 400; --font-weight-caption: 400; --text-caption-strong: 12px; --text-caption-strong--line-height: 16px; --leading-caption-strong: 16px; --text-caption-strong--letter-spacing: 0px; --tracking-caption-strong: 0px; --text-caption-strong--font-weight: 500; --font-weight-caption-strong: 500; --text-caption-mono: 12px; --text-caption-mono--line-height: 16px; --leading-caption-mono: 16px; --text-caption-mono--letter-spacing: 0px; --tracking-caption-mono: 0px; --text-caption-mono--font-weight: 500; --font-weight-caption-mono: 500; --text-code: 13px; --text-code--line-height: 20px; --leading-code: 20px; --text-code--letter-spacing: 0px; --tracking-code: 0px; --text-code--font-weight: 400; --font-weight-code: 400; --text-button-md: 14px; --text-button-md--line-height: 18px; --leading-button-md: 18px; --text-button-md--letter-spacing: 0px; --tracking-button-md: 0px; --text-button-md--font-weight: 500; --font-weight-button-md: 500; --text-button-lg: 16px; --text-button-lg--line-height: 24px; --leading-button-lg: 24px; --text-button-lg--letter-spacing: 0px; --tracking-button-lg: 0px; --text-button-lg--font-weight: 500; --font-weight-button-lg: 500; --radius-none: 0px; --radius-xs: 2px; --radius-sm: 4px; --radius-md: 6px; --radius-lg: 8px; --radius-xl: 10px; --radius-2xl: 12px; --radius-3xl: 16px; --radius-pill-sm: 64px; --radius-pill: 100px; --radius-full: 9999px; --ease-nc-emphasized: cubic-bezier(0.3, 0.7, 0.2, 1); --ease-nc-out-strong: cubic-bezier(0.23, 1, 0.32, 1); --ease-nc-in-out-strong: cubic-bezier(0.77, 0, 0.175, 1); --ease-nc-drawer: cubic-bezier(0.32, 0.72, 0, 1); --outline-width-focus: var(--spacing-nadicode-focus-outline-width); --outline-offset-focus: var(--spacing-nadicode-focus-outline-offset); --opacity-scrim: var(--nc-material-scrim-opacity); --spacing-nadicode-xxs: 4px; --spacing-nadicode-xs: 8px; --spacing-nadicode-sm: 12px; --spacing-nadicode-md: 16px; --spacing-nadicode-lg: 24px; --spacing-nadicode-xl: 32px; --spacing-nadicode-2xl: 40px; --spacing-nadicode-3xl: 48px; --spacing-nadicode-4xl: 64px; --spacing-nadicode-5xl: 96px; --spacing-nadicode-6xl: 128px; --spacing-nadicode-guide: 1px; --spacing-nadicode-icon-stroke: 1.6px; --spacing-nadicode-focus-outline-width: 2px; --spacing-nadicode-focus-outline-offset: 2px; --spacing-nadicode-control-height: 32px; --spacing-nadicode-control-padding-inline: 10px; --spacing-nadicode-touch-target: 44px; --spacing-nadicode-section: 192px; --spacing-nadicode-page-pad: 24px; --spacing-nadicode-page-max-mobile: 448px; --spacing-nadicode-page-max-tablet: 624px; --spacing-nadicode-page-max-desktop: 1440px; --spacing-nadicode-frame-max: 1392px; --spacing-nadicode-frame-gap: 24px; --spacing-nadicode-cell-padding: 24px; --spacing-nadicode-section-gap: 48px; --spacing-nadicode-cross-size-mobile: 11px; --spacing-nadicode-cross-size-tablet: 15px; --spacing-nadicode-cross-size-desktop: 21px; --spacing-nadicode-h-strip-mobile: 72px; --spacing-nadicode-h-strip-tablet: 80px; --spacing-nadicode-h-strip-desktop: 88px; --spacing-nadicode-h-cell-sm: 120px; --spacing-nadicode-h-cell-md-mobile: 144px; --spacing-nadicode-h-cell-md-tablet: 160px; --spacing-nadicode-h-cell-md-desktop: 168px; --spacing-nadicode-h-cell-lg-mobile: 220px; --spacing-nadicode-h-cell-lg-desktop: 240px; --spacing-nadicode-h-visual-mobile: 276px; --spacing-nadicode-h-visual-tablet: 318px; --spacing-nadicode-h-visual-desktop: 360px; --spacing-nadicode-h-precision-mobile: 276px; --spacing-nadicode-h-precision-tablet: 480px; --spacing-nadicode-h-precision-desktop: 720px; --spacing-nadicode-h-hero-mobile: 560px; --spacing-nadicode-h-hero-desktop: 720px; --spacing-nadicode-h-action-strip-mobile: 20px; --spacing-nadicode-h-action-strip-desktop: 32px; --spacing-nadicode-h-action-body-mobile: 320px; --spacing-nadicode-h-action-body-tablet: 338px; --spacing-nadicode-h-action-band: 260px; --spacing-nadicode-h-feature-mobile: 360px; --spacing-nadicode-h-feature-tablet: 400px; --spacing-nadicode-h-feature-desktop: 456px; --spacing-nadicode-h-editorial-feature-mobile: 360px; --spacing-nadicode-h-editorial-feature-tablet: 440px; --spacing-nadicode-h-editorial-feature-desktop: 560px; --spacing-nadicode-h-bento-primary: 384px; --spacing-nadicode-h-bento-secondary: 240px; --spacing-nadicode-h-bento-mobile-copy: 248px; --spacing-nadicode-h-bento-mobile-main: 537px; --spacing-nadicode-h-bento-strip: 20px; --spacing-nadicode-filter-chip-gap: 6px; --spacing-nadicode-filter-chip-height: 28px; --spacing-nadicode-filter-chip-icon: 14px; --spacing-control-height: var(--spacing-nadicode-control-height); --spacing-control-padding-inline: var(--spacing-nadicode-control-padding-inline); --spacing-touch-target: var(--spacing-nadicode-touch-target); }
|
|
674
673
|
@theme inline { --color-background: var(--background); --color-foreground: var(--foreground); --color-card: var(--card); --color-card-foreground: var(--card-foreground); --color-popover: var(--popover); --color-popover-foreground: var(--popover-foreground); --color-primary: var(--primary); --color-primary-foreground: var(--primary-foreground); --color-primary-hover: var(--primary-hover); --color-primary-active: var(--primary-active); --color-secondary: var(--secondary); --color-secondary-foreground: var(--secondary-foreground); --color-muted: var(--muted); --color-muted-foreground: var(--muted-foreground); --color-placeholder: var(--placeholder); --color-accent: var(--accent); --color-accent-foreground: var(--accent-foreground); --color-destructive: var(--destructive); --color-destructive-foreground: var(--destructive-foreground); --color-warning: var(--warning); --color-warning-foreground: var(--warning-foreground); --color-success: var(--success); --color-success-foreground: var(--success-foreground); --color-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); --color-scrim: var(--scrim); --color-chart-1: var(--chart-1); --color-chart-2: var(--chart-2); --color-chart-3: var(--chart-3); --color-chart-4: var(--chart-4); --color-chart-5: var(--chart-5); --color-sidebar: var(--sidebar); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); --color-sidebar-primary-hover: var(--sidebar-primary-hover); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-border: var(--sidebar-border); --color-sidebar-ring: var(--sidebar-ring); }
|
|
675
674
|
}
|
|
676
675
|
|
package/dist/css/tokens.css
CHANGED
|
@@ -77,7 +77,6 @@
|
|
|
77
77
|
--nc-warning: oklch(0.8466 0.1678 84.63);
|
|
78
78
|
--nc-warning-soft: oklch(0.9649 0.0461 90.87);
|
|
79
79
|
--nc-warning-deep: oklch(0.4834 0.0995 82.44);
|
|
80
|
-
--nc-flag-red: oklch(0.5688 0.1995 26.59);
|
|
81
80
|
--nc-verde-vivo: oklch(0.5604 0.1485 151.68);
|
|
82
81
|
--nc-selection-bg: oklch(0.1776 0.0000 0.00);
|
|
83
82
|
--nc-selection-fg: oklch(0.9851 0.0000 0.00);
|
|
@@ -89,8 +88,6 @@
|
|
|
89
88
|
--nc-state-review: oklch(0.8466 0.1678 84.63);
|
|
90
89
|
--nc-state-blocked: oklch(0.5688 0.1995 26.59);
|
|
91
90
|
--nc-state-complete: oklch(0.6415 0.1644 153.23);
|
|
92
|
-
--nc-background-100: oklch(1.0000 0.0000 0.00);
|
|
93
|
-
--nc-background-200: oklch(0.9851 0.0000 0.00);
|
|
94
91
|
--nc-identity-verde: oklch(0.6415 0.1644 153.23);
|
|
95
92
|
--nc-identity-rosso: oklch(0.5688 0.1995 26.59);
|
|
96
93
|
--nc-identity-arancio: oklch(0.6824 0.2108 37.70);
|
|
@@ -98,6 +95,11 @@
|
|
|
98
95
|
--nc-identity-cobalto: oklch(0.5005 0.2804 266.17);
|
|
99
96
|
--nc-identity-ink: oklch(0.0000 0.0000 0.00);
|
|
100
97
|
--nc-identity-white: oklch(1.0000 0.0000 0.00);
|
|
98
|
+
--nc-forma-visor: oklch(0.1765 0.0221 173.80);
|
|
99
|
+
--nc-forma-bezel: oklch(0.3296 0.0275 169.76);
|
|
100
|
+
--nc-forma-eye: oklch(0.8804 0.0372 168.27);
|
|
101
|
+
--nc-forma-avorio: oklch(0.9262 0.0161 99.01);
|
|
102
|
+
--nc-forma-sabbia: oklch(0.7511 0.0609 77.67);
|
|
101
103
|
--nc-chart-1: oklch(0.5005 0.2804 266.17);
|
|
102
104
|
--nc-chart-2: oklch(0.6415 0.1644 153.23);
|
|
103
105
|
--nc-chart-3: oklch(0.7638 0.1562 86.86);
|
|
@@ -143,9 +145,6 @@
|
|
|
143
145
|
--nc-dark-info: oklch(0.7067 0.1528 272.08);
|
|
144
146
|
--nc-dark-info-soft: oklch(0.2118 0.1033 268.28);
|
|
145
147
|
--nc-dark-info-deep: oklch(0.8222 0.0888 274.44);
|
|
146
|
-
--nc-dark-cyan: oklch(0.7820 0.1247 190.99);
|
|
147
|
-
--nc-dark-cyan-soft: oklch(0.8646 0.1000 187.55);
|
|
148
|
-
--nc-dark-cyan-deep: oklch(0.6347 0.1029 191.54);
|
|
149
148
|
--nc-dark-success: oklch(0.7019 0.1753 153.20);
|
|
150
149
|
--nc-dark-success-soft: oklch(0.2893 0.0697 156.32);
|
|
151
150
|
--nc-dark-success-deep: oklch(0.8524 0.0996 159.83);
|
|
@@ -38,7 +38,6 @@
|
|
|
38
38
|
"warning": "#ffc220",
|
|
39
39
|
"warning-soft": "#fff3d1",
|
|
40
40
|
"warning-deep": "#7a5800",
|
|
41
|
-
"flag-red": "#d3302f",
|
|
42
41
|
"verde-vivo": "#008c45",
|
|
43
42
|
"selection-bg": "#111111",
|
|
44
43
|
"selection-fg": "#fafafa",
|
|
@@ -50,8 +49,6 @@
|
|
|
50
49
|
"state-review": "#ffc220",
|
|
51
50
|
"state-blocked": "#d3302f",
|
|
52
51
|
"state-complete": "#00a85a",
|
|
53
|
-
"background-100": "#ffffff",
|
|
54
|
-
"background-200": "#fafafa",
|
|
55
52
|
"identity-verde": "#00a85a",
|
|
56
53
|
"identity-rosso": "#d3302f",
|
|
57
54
|
"identity-arancio": "#ff5a1f",
|
|
@@ -59,6 +56,11 @@
|
|
|
59
56
|
"identity-cobalto": "#1e3cff",
|
|
60
57
|
"identity-ink": "#000000",
|
|
61
58
|
"identity-white": "#ffffff",
|
|
59
|
+
"forma-visor": "#061410",
|
|
60
|
+
"forma-bezel": "#273a33",
|
|
61
|
+
"forma-eye": "#c1e0d3",
|
|
62
|
+
"forma-avorio": "#e9e7db",
|
|
63
|
+
"forma-sabbia": "#c4aa83",
|
|
62
64
|
"chart-1": "#1e3cff",
|
|
63
65
|
"chart-2": "#00a85a",
|
|
64
66
|
"chart-3": "#ddaa00",
|
|
@@ -104,9 +106,6 @@
|
|
|
104
106
|
"dark-info": "#8098ff",
|
|
105
107
|
"dark-info-soft": "#070f47",
|
|
106
108
|
"dark-info-deep": "#b3c1ff",
|
|
107
|
-
"dark-cyan": "#33d1cb",
|
|
108
|
-
"dark-cyan-soft": "#7ee8de",
|
|
109
|
-
"dark-cyan-deep": "#1f9e9a",
|
|
110
109
|
"dark-success": "#17bd68",
|
|
111
110
|
"dark-success-soft": "#00351c",
|
|
112
111
|
"dark-success-deep": "#93e3b8",
|
|
@@ -401,17 +401,6 @@
|
|
|
401
401
|
"hex": "#7a5800"
|
|
402
402
|
}
|
|
403
403
|
},
|
|
404
|
-
"flag-red": {
|
|
405
|
-
"$value": {
|
|
406
|
-
"colorSpace": "srgb",
|
|
407
|
-
"components": [
|
|
408
|
-
0.827,
|
|
409
|
-
0.188,
|
|
410
|
-
0.184
|
|
411
|
-
],
|
|
412
|
-
"hex": "#d3302f"
|
|
413
|
-
}
|
|
414
|
-
},
|
|
415
404
|
"verde-vivo": {
|
|
416
405
|
"$value": {
|
|
417
406
|
"colorSpace": "srgb",
|
|
@@ -533,28 +522,6 @@
|
|
|
533
522
|
"hex": "#00a85a"
|
|
534
523
|
}
|
|
535
524
|
},
|
|
536
|
-
"background-100": {
|
|
537
|
-
"$value": {
|
|
538
|
-
"colorSpace": "srgb",
|
|
539
|
-
"components": [
|
|
540
|
-
1,
|
|
541
|
-
1,
|
|
542
|
-
1
|
|
543
|
-
],
|
|
544
|
-
"hex": "#ffffff"
|
|
545
|
-
}
|
|
546
|
-
},
|
|
547
|
-
"background-200": {
|
|
548
|
-
"$value": {
|
|
549
|
-
"colorSpace": "srgb",
|
|
550
|
-
"components": [
|
|
551
|
-
0.98,
|
|
552
|
-
0.98,
|
|
553
|
-
0.98
|
|
554
|
-
],
|
|
555
|
-
"hex": "#fafafa"
|
|
556
|
-
}
|
|
557
|
-
},
|
|
558
525
|
"identity-verde": {
|
|
559
526
|
"$value": {
|
|
560
527
|
"colorSpace": "srgb",
|
|
@@ -632,6 +599,61 @@
|
|
|
632
599
|
"hex": "#ffffff"
|
|
633
600
|
}
|
|
634
601
|
},
|
|
602
|
+
"forma-visor": {
|
|
603
|
+
"$value": {
|
|
604
|
+
"colorSpace": "srgb",
|
|
605
|
+
"components": [
|
|
606
|
+
0.024,
|
|
607
|
+
0.078,
|
|
608
|
+
0.063
|
|
609
|
+
],
|
|
610
|
+
"hex": "#061410"
|
|
611
|
+
}
|
|
612
|
+
},
|
|
613
|
+
"forma-bezel": {
|
|
614
|
+
"$value": {
|
|
615
|
+
"colorSpace": "srgb",
|
|
616
|
+
"components": [
|
|
617
|
+
0.153,
|
|
618
|
+
0.227,
|
|
619
|
+
0.2
|
|
620
|
+
],
|
|
621
|
+
"hex": "#273a33"
|
|
622
|
+
}
|
|
623
|
+
},
|
|
624
|
+
"forma-eye": {
|
|
625
|
+
"$value": {
|
|
626
|
+
"colorSpace": "srgb",
|
|
627
|
+
"components": [
|
|
628
|
+
0.757,
|
|
629
|
+
0.878,
|
|
630
|
+
0.827
|
|
631
|
+
],
|
|
632
|
+
"hex": "#c1e0d3"
|
|
633
|
+
}
|
|
634
|
+
},
|
|
635
|
+
"forma-avorio": {
|
|
636
|
+
"$value": {
|
|
637
|
+
"colorSpace": "srgb",
|
|
638
|
+
"components": [
|
|
639
|
+
0.914,
|
|
640
|
+
0.906,
|
|
641
|
+
0.859
|
|
642
|
+
],
|
|
643
|
+
"hex": "#e9e7db"
|
|
644
|
+
}
|
|
645
|
+
},
|
|
646
|
+
"forma-sabbia": {
|
|
647
|
+
"$value": {
|
|
648
|
+
"colorSpace": "srgb",
|
|
649
|
+
"components": [
|
|
650
|
+
0.769,
|
|
651
|
+
0.667,
|
|
652
|
+
0.514
|
|
653
|
+
],
|
|
654
|
+
"hex": "#c4aa83"
|
|
655
|
+
}
|
|
656
|
+
},
|
|
635
657
|
"chart-1": {
|
|
636
658
|
"$value": {
|
|
637
659
|
"colorSpace": "srgb",
|
|
@@ -1127,39 +1149,6 @@
|
|
|
1127
1149
|
"hex": "#b3c1ff"
|
|
1128
1150
|
}
|
|
1129
1151
|
},
|
|
1130
|
-
"dark-cyan": {
|
|
1131
|
-
"$value": {
|
|
1132
|
-
"colorSpace": "srgb",
|
|
1133
|
-
"components": [
|
|
1134
|
-
0.2,
|
|
1135
|
-
0.82,
|
|
1136
|
-
0.796
|
|
1137
|
-
],
|
|
1138
|
-
"hex": "#33d1cb"
|
|
1139
|
-
}
|
|
1140
|
-
},
|
|
1141
|
-
"dark-cyan-soft": {
|
|
1142
|
-
"$value": {
|
|
1143
|
-
"colorSpace": "srgb",
|
|
1144
|
-
"components": [
|
|
1145
|
-
0.494,
|
|
1146
|
-
0.91,
|
|
1147
|
-
0.871
|
|
1148
|
-
],
|
|
1149
|
-
"hex": "#7ee8de"
|
|
1150
|
-
}
|
|
1151
|
-
},
|
|
1152
|
-
"dark-cyan-deep": {
|
|
1153
|
-
"$value": {
|
|
1154
|
-
"colorSpace": "srgb",
|
|
1155
|
-
"components": [
|
|
1156
|
-
0.122,
|
|
1157
|
-
0.62,
|
|
1158
|
-
0.604
|
|
1159
|
-
],
|
|
1160
|
-
"hex": "#1f9e9a"
|
|
1161
|
-
}
|
|
1162
|
-
},
|
|
1163
1152
|
"dark-success": {
|
|
1164
1153
|
"$value": {
|
|
1165
1154
|
"colorSpace": "srgb",
|
|
@@ -4017,17 +4006,6 @@
|
|
|
4017
4006
|
],
|
|
4018
4007
|
"hex": "#e5e5e5"
|
|
4019
4008
|
}
|
|
4020
|
-
},
|
|
4021
|
-
"medallion": {
|
|
4022
|
-
"$value": {
|
|
4023
|
-
"colorSpace": "srgb",
|
|
4024
|
-
"components": [
|
|
4025
|
-
0,
|
|
4026
|
-
0.549,
|
|
4027
|
-
0.271
|
|
4028
|
-
],
|
|
4029
|
-
"hex": "#008c45"
|
|
4030
|
-
}
|
|
4031
4009
|
}
|
|
4032
4010
|
},
|
|
4033
4011
|
"dark": {
|
|
@@ -4306,17 +4284,6 @@
|
|
|
4306
4284
|
],
|
|
4307
4285
|
"hex": "#262626"
|
|
4308
4286
|
}
|
|
4309
|
-
},
|
|
4310
|
-
"medallion": {
|
|
4311
|
-
"$value": {
|
|
4312
|
-
"colorSpace": "srgb",
|
|
4313
|
-
"components": [
|
|
4314
|
-
0.384,
|
|
4315
|
-
0.831,
|
|
4316
|
-
0.58
|
|
4317
|
-
],
|
|
4318
|
-
"hex": "#62d494"
|
|
4319
|
-
}
|
|
4320
4287
|
}
|
|
4321
4288
|
}
|
|
4322
4289
|
},
|
|
@@ -401,17 +401,6 @@
|
|
|
401
401
|
"hex": "#7a5800"
|
|
402
402
|
}
|
|
403
403
|
},
|
|
404
|
-
"flag-red": {
|
|
405
|
-
"$value": {
|
|
406
|
-
"colorSpace": "srgb",
|
|
407
|
-
"components": [
|
|
408
|
-
0.827,
|
|
409
|
-
0.188,
|
|
410
|
-
0.184
|
|
411
|
-
],
|
|
412
|
-
"hex": "#d3302f"
|
|
413
|
-
}
|
|
414
|
-
},
|
|
415
404
|
"verde-vivo": {
|
|
416
405
|
"$value": {
|
|
417
406
|
"colorSpace": "srgb",
|
|
@@ -533,28 +522,6 @@
|
|
|
533
522
|
"hex": "#00a85a"
|
|
534
523
|
}
|
|
535
524
|
},
|
|
536
|
-
"background-100": {
|
|
537
|
-
"$value": {
|
|
538
|
-
"colorSpace": "srgb",
|
|
539
|
-
"components": [
|
|
540
|
-
1,
|
|
541
|
-
1,
|
|
542
|
-
1
|
|
543
|
-
],
|
|
544
|
-
"hex": "#ffffff"
|
|
545
|
-
}
|
|
546
|
-
},
|
|
547
|
-
"background-200": {
|
|
548
|
-
"$value": {
|
|
549
|
-
"colorSpace": "srgb",
|
|
550
|
-
"components": [
|
|
551
|
-
0.98,
|
|
552
|
-
0.98,
|
|
553
|
-
0.98
|
|
554
|
-
],
|
|
555
|
-
"hex": "#fafafa"
|
|
556
|
-
}
|
|
557
|
-
},
|
|
558
525
|
"identity-verde": {
|
|
559
526
|
"$value": {
|
|
560
527
|
"colorSpace": "srgb",
|
|
@@ -632,6 +599,61 @@
|
|
|
632
599
|
"hex": "#ffffff"
|
|
633
600
|
}
|
|
634
601
|
},
|
|
602
|
+
"forma-visor": {
|
|
603
|
+
"$value": {
|
|
604
|
+
"colorSpace": "srgb",
|
|
605
|
+
"components": [
|
|
606
|
+
0.024,
|
|
607
|
+
0.078,
|
|
608
|
+
0.063
|
|
609
|
+
],
|
|
610
|
+
"hex": "#061410"
|
|
611
|
+
}
|
|
612
|
+
},
|
|
613
|
+
"forma-bezel": {
|
|
614
|
+
"$value": {
|
|
615
|
+
"colorSpace": "srgb",
|
|
616
|
+
"components": [
|
|
617
|
+
0.153,
|
|
618
|
+
0.227,
|
|
619
|
+
0.2
|
|
620
|
+
],
|
|
621
|
+
"hex": "#273a33"
|
|
622
|
+
}
|
|
623
|
+
},
|
|
624
|
+
"forma-eye": {
|
|
625
|
+
"$value": {
|
|
626
|
+
"colorSpace": "srgb",
|
|
627
|
+
"components": [
|
|
628
|
+
0.757,
|
|
629
|
+
0.878,
|
|
630
|
+
0.827
|
|
631
|
+
],
|
|
632
|
+
"hex": "#c1e0d3"
|
|
633
|
+
}
|
|
634
|
+
},
|
|
635
|
+
"forma-avorio": {
|
|
636
|
+
"$value": {
|
|
637
|
+
"colorSpace": "srgb",
|
|
638
|
+
"components": [
|
|
639
|
+
0.914,
|
|
640
|
+
0.906,
|
|
641
|
+
0.859
|
|
642
|
+
],
|
|
643
|
+
"hex": "#e9e7db"
|
|
644
|
+
}
|
|
645
|
+
},
|
|
646
|
+
"forma-sabbia": {
|
|
647
|
+
"$value": {
|
|
648
|
+
"colorSpace": "srgb",
|
|
649
|
+
"components": [
|
|
650
|
+
0.769,
|
|
651
|
+
0.667,
|
|
652
|
+
0.514
|
|
653
|
+
],
|
|
654
|
+
"hex": "#c4aa83"
|
|
655
|
+
}
|
|
656
|
+
},
|
|
635
657
|
"chart-1": {
|
|
636
658
|
"$value": {
|
|
637
659
|
"colorSpace": "srgb",
|
|
@@ -1127,39 +1149,6 @@
|
|
|
1127
1149
|
"hex": "#b3c1ff"
|
|
1128
1150
|
}
|
|
1129
1151
|
},
|
|
1130
|
-
"dark-cyan": {
|
|
1131
|
-
"$value": {
|
|
1132
|
-
"colorSpace": "srgb",
|
|
1133
|
-
"components": [
|
|
1134
|
-
0.2,
|
|
1135
|
-
0.82,
|
|
1136
|
-
0.796
|
|
1137
|
-
],
|
|
1138
|
-
"hex": "#33d1cb"
|
|
1139
|
-
}
|
|
1140
|
-
},
|
|
1141
|
-
"dark-cyan-soft": {
|
|
1142
|
-
"$value": {
|
|
1143
|
-
"colorSpace": "srgb",
|
|
1144
|
-
"components": [
|
|
1145
|
-
0.494,
|
|
1146
|
-
0.91,
|
|
1147
|
-
0.871
|
|
1148
|
-
],
|
|
1149
|
-
"hex": "#7ee8de"
|
|
1150
|
-
}
|
|
1151
|
-
},
|
|
1152
|
-
"dark-cyan-deep": {
|
|
1153
|
-
"$value": {
|
|
1154
|
-
"colorSpace": "srgb",
|
|
1155
|
-
"components": [
|
|
1156
|
-
0.122,
|
|
1157
|
-
0.62,
|
|
1158
|
-
0.604
|
|
1159
|
-
],
|
|
1160
|
-
"hex": "#1f9e9a"
|
|
1161
|
-
}
|
|
1162
|
-
},
|
|
1163
1152
|
"dark-success": {
|
|
1164
1153
|
"$value": {
|
|
1165
1154
|
"colorSpace": "srgb",
|
|
@@ -3817,9 +3806,6 @@
|
|
|
3817
3806
|
},
|
|
3818
3807
|
"user-bubble-border": {
|
|
3819
3808
|
"$value": "{nadicode.core.color.line}"
|
|
3820
|
-
},
|
|
3821
|
-
"medallion": {
|
|
3822
|
-
"$value": "{nadicode.core.color.verde-vivo}"
|
|
3823
3809
|
}
|
|
3824
3810
|
},
|
|
3825
3811
|
"dark": {
|
|
@@ -3882,7 +3868,7 @@
|
|
|
3882
3868
|
"$value": "{nadicode.core.color.dark-focus-ring}"
|
|
3883
3869
|
},
|
|
3884
3870
|
"destructive": {
|
|
3885
|
-
"$value": "{nadicode.core.color.
|
|
3871
|
+
"$value": "{nadicode.core.color.error}"
|
|
3886
3872
|
},
|
|
3887
3873
|
"destructive-foreground": {
|
|
3888
3874
|
"$value": "{nadicode.core.color.on-primary}"
|
|
@@ -3898,9 +3884,6 @@
|
|
|
3898
3884
|
},
|
|
3899
3885
|
"user-bubble-border": {
|
|
3900
3886
|
"$value": "{nadicode.core.color.dark-line}"
|
|
3901
|
-
},
|
|
3902
|
-
"medallion": {
|
|
3903
|
-
"$value": "{nadicode.core.color.dark-verde-vivo}"
|
|
3904
3887
|
}
|
|
3905
3888
|
}
|
|
3906
3889
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nadicodeai/design-system",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -121,18 +121,6 @@
|
|
|
121
121
|
"types": "./src/assets/nadia-asset.d.ts",
|
|
122
122
|
"default": "./dist/assets/nadia-01-solid-surface.png"
|
|
123
123
|
},
|
|
124
|
-
"./assets/nadia-ordered-points": {
|
|
125
|
-
"types": "./src/assets/nadia-asset.d.ts",
|
|
126
|
-
"default": "./dist/assets/nadia-02-ordered-points.png"
|
|
127
|
-
},
|
|
128
|
-
"./assets/nadia-triangulated-wire": {
|
|
129
|
-
"types": "./src/assets/nadia-asset.d.ts",
|
|
130
|
-
"default": "./dist/assets/nadia-03-triangulated-wire.png"
|
|
131
|
-
},
|
|
132
|
-
"./assets/nadia-irregular-particles": {
|
|
133
|
-
"types": "./src/assets/nadia-asset.d.ts",
|
|
134
|
-
"default": "./dist/assets/nadia-04-irregular-particles.png"
|
|
135
|
-
},
|
|
136
124
|
"./assets/fonts/geist.css": "./src/assets/fonts/geist.css",
|
|
137
125
|
"./assets/fonts/*": "./src/assets/fonts/*"
|
|
138
126
|
},
|
|
@@ -167,7 +155,7 @@
|
|
|
167
155
|
"@google/design.md": "0.4.0",
|
|
168
156
|
"@nadicodeai/eslint-plugin": "*",
|
|
169
157
|
"@playwright/test": "^1.63.0",
|
|
170
|
-
"@types/node": "^
|
|
158
|
+
"@types/node": "^24",
|
|
171
159
|
"ajv": "8.20.0",
|
|
172
160
|
"ajv-formats": "3.0.1",
|
|
173
161
|
"esbuild": "^0.28.2",
|
|
Binary file
|
|
Binary file
|
|
Binary file
|