@nadicodeai/design-system 0.4.1 → 0.5.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 +39 -27
- package/dist/css/primitives.css +36 -0
- package/dist/css/tokens.generated.css +8 -5
- package/dist/icons/--full-page +0 -0
- package/dist/tailwind/nadicode.tailwind.json +9 -6
- package/dist/tailwind/nadicode.theme.css +14 -8
- package/dist/tokens/nadicode.dtcg.json +38 -20
- package/package.json +1 -1
package/DESIGN.md
CHANGED
|
@@ -128,11 +128,11 @@ colors:
|
|
|
128
128
|
dark-cyan-soft: "#7ee8de"
|
|
129
129
|
dark-cyan-deep: "#1f9e9a"
|
|
130
130
|
dark-success: "#62d494"
|
|
131
|
-
dark-state-ready: "#
|
|
132
|
-
dark-state-running: "#
|
|
133
|
-
dark-state-review: "#
|
|
134
|
-
dark-state-blocked: "#
|
|
135
|
-
dark-state-complete: "#
|
|
131
|
+
dark-state-ready: "#8f8f8f"
|
|
132
|
+
dark-state-running: "#4f6ae6"
|
|
133
|
+
dark-state-review: "#f5a623"
|
|
134
|
+
dark-state-blocked: "#cd212a"
|
|
135
|
+
dark-state-complete: "#008c45"
|
|
136
136
|
dark-selection-bg: "#ededed"
|
|
137
137
|
dark-selection-fg: "#0a0a0a"
|
|
138
138
|
dark-cross: "#6e6e6e"
|
|
@@ -256,6 +256,7 @@ rounded:
|
|
|
256
256
|
|
|
257
257
|
spacing:
|
|
258
258
|
xxs: 4px
|
|
259
|
+
filter-chip-gap: 6px
|
|
259
260
|
xs: 8px
|
|
260
261
|
sm: 12px
|
|
261
262
|
md: 16px
|
|
@@ -312,6 +313,8 @@ spacing:
|
|
|
312
313
|
h-bento-mobile-copy: 248px
|
|
313
314
|
h-bento-mobile-main: 537px
|
|
314
315
|
h-bento-strip: 20px
|
|
316
|
+
filter-chip-height: 28px
|
|
317
|
+
filter-chip-icon: 14px
|
|
315
318
|
|
|
316
319
|
components:
|
|
317
320
|
label-mono:
|
|
@@ -348,6 +351,13 @@ components:
|
|
|
348
351
|
typography: "{typography.caption}"
|
|
349
352
|
rounded: "{rounded.full}"
|
|
350
353
|
padding: "0px {spacing.xs}"
|
|
354
|
+
filter-chip:
|
|
355
|
+
backgroundColor: "{colors.canvas-soft}"
|
|
356
|
+
textColor: "{colors.body}"
|
|
357
|
+
typography: "{typography.caption}"
|
|
358
|
+
rounded: "{rounded.sm}"
|
|
359
|
+
padding: "0px {spacing.xs}"
|
|
360
|
+
height: "{spacing.filter-chip-height}"
|
|
351
361
|
state-tag-ready:
|
|
352
362
|
backgroundColor: "{colors.canvas}"
|
|
353
363
|
textColor: "{colors.ink}"
|
|
@@ -479,7 +489,7 @@ Backgrounds are `{colors.background-100}` (page default, white) and `{colors.bac
|
|
|
479
489
|
- **Semantic feedback** (`{colors.success}`, `{colors.error}` + `{colors.error-soft}`/`{colors.error-deep}`, `{colors.warning}` + `{colors.warning-soft}`/`{colors.warning-deep}`, `{colors.info}`): validation, caution, approval, and operational feedback. `success` uses `green-italia-700`; `error` uses `red-italia-800` with soft/deep on `red-italia-200`/`red-italia-900`; `warning` uses `amber-600` with soft/deep on `amber-200`/`amber-900`; `info` (`blue-cobalto-700`) is the new informational role.
|
|
480
490
|
- **Accent** (`{colors.accent}` = `red-italia-700`): UI highlights, badges, and selected markers. Flag red is now an active accent — the former "decoration-only" restriction on flag red is retired. Do not conflate this functional Italia `accent` with the identically-named shadcn surface role `accent`: the latter is a neutral (mapped to `{colors.canvas-soft-2}` in light and `{colors.dark-canvas-soft-2}` in dark) and carries no flag-red hue despite the shared word.
|
|
481
491
|
- **Flag Red** (`{colors.flag-red}`): kept as a stable alias at the same value as `{colors.accent}` (`red-italia-700`, `#cd212a`). `accent` and `flag-red` are two roles at one hex: `accent` is the interface-highlight role, `flag-red` is the identity-mark alias. `error` (`red-italia-800`) stays a distinct, deeper red; never use it as an accent.
|
|
482
|
-
- **Workflow States** (`{colors.state-ready}`, `{colors.state-running}`, `{colors.state-review}`, `{colors.state-blocked}`, `{colors.state-complete}`): the left-border/state vocabulary for agentic work surfaces. `state-running` is
|
|
492
|
+
- **Workflow States** (`{colors.state-ready}`, `{colors.state-running}`, `{colors.state-review}`, `{colors.state-blocked}`, `{colors.state-complete}`): the left-border/state vocabulary for agentic work surfaces. `state-running` is `blue-cobalto-700` and `state-complete` is `green-italia-700` — blue means in motion, green means done; `state-ready` is `gray-900`. The dark counterparts (`{colors.dark-state-ready}`, `{colors.dark-state-running}`, `{colors.dark-state-review}`, `{colors.dark-state-blocked}`, `{colors.dark-state-complete}`) preserve the same functional identity instead of shifting to pastel labels: ready uses `gray-700`, running uses `blue-cobalto-600`, review reuses `amber-600`, blocked uses `red-italia-700`, and complete reuses `green-italia-700`. These state colors are carried only by the `state-tag` 3 px `border-left` rail and related non-text state accents; label text stays on the neutral foreground roles for contrast in both light and dark.
|
|
483
493
|
|
|
484
494
|
### Chart categoricals (functional tier)
|
|
485
495
|
|
|
@@ -503,9 +513,9 @@ Four campo rules govern their use:
|
|
|
503
513
|
|
|
504
514
|
### Dark primitives
|
|
505
515
|
|
|
506
|
-
**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. The dark neutrals (`dark-canvas`, `dark-canvas-soft`, `dark-canvas-soft-2`, `dark-ink`, `dark-body`, `dark-muted`, `dark-line`, `dark-input`, `dark-seam`, `dark-primary`, `dark-on-primary`) are true neutrals: each is a pure gray (equal channels) so the interface carries no ambient tint, and they step in clear elevation planes (`dark-canvas` → `dark-canvas-soft` → `dark-canvas-soft-2`). `dark-input` is the resting text-input boundary, held one gray brighter than the decorative `dark-line` border so a field edge clears non-text contrast before the focus ring appears. Chroma lives only in the intentional accents: the dark semantic ramps ride the same Italia scales as their light counterparts, moved to lighter steps
|
|
516
|
+
**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. The dark neutrals (`dark-canvas`, `dark-canvas-soft`, `dark-canvas-soft-2`, `dark-ink`, `dark-body`, `dark-muted`, `dark-line`, `dark-input`, `dark-seam`, `dark-primary`, `dark-on-primary`) are true neutrals: each is a pure gray (equal channels) so the interface carries no ambient tint, and they step in clear elevation planes (`dark-canvas` → `dark-canvas-soft` → `dark-canvas-soft-2`). `dark-input` is the resting text-input boundary, held one gray brighter than the decorative `dark-line` border so a field edge clears non-text contrast before the focus ring appears. Chroma lives only in the intentional accents: the dark semantic ramps ride the same Italia scales as their light counterparts, moved to lighter steps where they are text-bearing — `dark-link`/`dark-link-deep` on `green-italia-400`/`green-italia-300`, `dark-error`/`dark-error-deep` on `red-italia-400`/`red-italia-300`, `dark-warning`/`dark-warning-deep` on `amber-400`/`amber-300`, with the `*-soft` tinted grounds on each scale's `1000` step, plus `dark-success` on `green-italia-500` for the positive-feedback green. The `dark-state-*` workflow family is not a text role; it preserves the matching ready/running/review/blocked/complete rail colors for 3 px state accents while text stays on neutral foreground roles. The remaining dark-ramp members stay true-neutral: `dark-selection-bg`/`dark-selection-fg` invert the light selection (a bright neutral ground with dark text) and `dark-cross` is the visible mark gray, brighter than the decorative `dark-line`. Never reintroduce hue into the neutral set.
|
|
507
517
|
|
|
508
|
-
This grayscale-only discipline is not dark-specific: it governs the whole generated shadcn surface-role bridge in both the light `:root` and dark `.dark` maps. The surface-role family — `background`, `card`, `popover`, `muted`, `secondary`, the `sidebar` roles and their `-foreground`/`-border` variants, plus `border` and `input` — resolves only to pure grays (equal channels) in both themes; hue in the role bridge is reserved for `primary`, `destructive`, and the focus rings (`ring`/`sidebar-ring`). Large product surfaces never take a tinted fill.
|
|
518
|
+
This grayscale-only discipline is not dark-specific: it governs the whole generated shadcn surface-role bridge in both the light `:root` and dark `.dark` maps. The surface-role family — `background`, `card`, `popover`, `muted`, `secondary`, the `sidebar` roles and their `-foreground`/`-border` variants, plus `border` and `input` — resolves only to pure grays (equal channels) in both themes; hue in the role bridge is reserved for `primary`, `destructive`, and the focus rings (`ring`/`sidebar-ring`). 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 black 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.
|
|
509
519
|
|
|
510
520
|
Do not delete a color because the current website kernel does not consume it. Prototype usage is not palette authority; removals require an explicit palette migration decision.
|
|
511
521
|
|
|
@@ -515,25 +525,25 @@ Geist Sans carries all narrative and interface copy. Geist Mono is reserved for
|
|
|
515
525
|
|
|
516
526
|
All body, title, caption, and code typography uses `letterSpacing: 0px`. Do not use viewport-scaled type (no `vw`/`vh` font sizing): use fixed token sizes stepped by breakpoint-specific rules when a headline must grow. The two large display tiers carry a small negative tracking — `display-xl` at `-1.5px` and `display-lg` at `-1px` — so large type reads optically tight; this is a display-heading-only exception and every non-display tier stays at `0px`.
|
|
517
527
|
|
|
518
|
-
| Token
|
|
519
|
-
|
|
|
520
|
-
| `{typography.display-xl}`
|
|
521
|
-
| `{typography.display-lg}`
|
|
522
|
-
| `{typography.display-md}`
|
|
523
|
-
| `{typography.display-sm}`
|
|
524
|
-
| `{typography.title-lg}`
|
|
525
|
-
| `{typography.title-md}`
|
|
526
|
-
| `{typography.title-sm}`
|
|
527
|
-
| `{typography.body-lg}`
|
|
528
|
-
| `{typography.body-md}`
|
|
529
|
-
| `{typography.body-md-strong}` | 16px | 500
|
|
530
|
-
| `{typography.body-sm}`
|
|
531
|
-
| `{typography.body-sm-strong}` | 14px | 500
|
|
532
|
-
| `{typography.caption}`
|
|
533
|
-
| `{typography.caption-mono}`
|
|
534
|
-
| `{typography.code}`
|
|
535
|
-
| `{typography.button-lg}`
|
|
536
|
-
| `{typography.button-md}`
|
|
528
|
+
| Token | Size | Weight | Line Height | Use |
|
|
529
|
+
| ----------------------------- | ---- | ------ | ----------- | -------------------------------------------------------------------------- |
|
|
530
|
+
| `{typography.display-xl}` | 72px | 600 | 74px | Large desktop homepage hero only. |
|
|
531
|
+
| `{typography.display-lg}` | 52px | 600 | 54px | Compact hero and major landing headlines. |
|
|
532
|
+
| `{typography.display-md}` | 24px | 600 | 32px | Recovered display tier for compact cards, pricing names, and asset labels. |
|
|
533
|
+
| `{typography.display-sm}` | 20px | 600 | 28px | Recovered small display tier for inline display micro-headings. |
|
|
534
|
+
| `{typography.title-lg}` | 40px | 600 | 41px | Kernel specimen headings and major section headings. |
|
|
535
|
+
| `{typography.title-md}` | 30px | 600 | 32px | Standard section title. |
|
|
536
|
+
| `{typography.title-sm}` | 22px | 600 | 25px | Cell and artifact titles. |
|
|
537
|
+
| `{typography.body-lg}` | 18px | 400 | 27px | Hero/lead paragraphs. |
|
|
538
|
+
| `{typography.body-md}` | 16px | 400 | 25px | Default body copy. |
|
|
539
|
+
| `{typography.body-md-strong}` | 16px | 500 | 24px | Emphasised body copy at the default size. |
|
|
540
|
+
| `{typography.body-sm}` | 14px | 400 | 20px | Secondary copy, nav, compact cell copy. |
|
|
541
|
+
| `{typography.body-sm-strong}` | 14px | 500 | 20px | Emphasised secondary copy and compact labels. |
|
|
542
|
+
| `{typography.caption}` | 12px | 400 | 16px | Footer secondary lines and badge labels. |
|
|
543
|
+
| `{typography.caption-mono}` | 12px | 500 | 16px | Eyebrows, labels, status tags. |
|
|
544
|
+
| `{typography.code}` | 13px | 400 | 20px | Tool calls, snippets, traces. |
|
|
545
|
+
| `{typography.button-lg}` | 16px | 500 | 24px | Marketing-scale button labels. |
|
|
546
|
+
| `{typography.button-md}` | 14px | 500 | 18px | Standard button and control labels. |
|
|
537
547
|
|
|
538
548
|
## Layout
|
|
539
549
|
|
|
@@ -648,6 +658,8 @@ Interactive CSS components must expose a visible `:focus-visible` state using th
|
|
|
648
658
|
|
|
649
659
|
**`badge-secondary`** — small rounded metadata badge for "New", "Beta", "Live", or similar labels.
|
|
650
660
|
|
|
661
|
+
**`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. Use this for table/search filters after a shadcn `Select`, `Popover`, or command filter is applied.
|
|
662
|
+
|
|
651
663
|
**`link-inline`** — inline body link. Uses `{colors.link}` and normal body rhythm.
|
|
652
664
|
|
|
653
665
|
### Content Surfaces
|
package/dist/css/primitives.css
CHANGED
|
@@ -273,6 +273,42 @@
|
|
|
273
273
|
color: var(--nc-body);
|
|
274
274
|
}
|
|
275
275
|
|
|
276
|
+
/* nc-filter-chip — removable selected-filter label (DESIGN.md filter-chip).
|
|
277
|
+
It uses neutral chrome only: applied filter state is not workflow, lifecycle,
|
|
278
|
+
or taxonomy state, so color is reserved for the remove affordance focus ring. */
|
|
279
|
+
.nc-filter-chip {
|
|
280
|
+
display: inline-flex;
|
|
281
|
+
width: fit-content;
|
|
282
|
+
min-height: var(--nc-filter-chip-height);
|
|
283
|
+
align-items: center;
|
|
284
|
+
justify-content: center;
|
|
285
|
+
gap: var(--nc-filter-chip-gap);
|
|
286
|
+
border: var(--nc-guide) solid var(--nc-line);
|
|
287
|
+
border-radius: var(--nc-rounded-sm);
|
|
288
|
+
padding: 0 var(--nc-xs);
|
|
289
|
+
background: var(--nc-canvas-soft);
|
|
290
|
+
color: var(--nc-body);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
.nc-filter-chip svg {
|
|
294
|
+
width: var(--nc-filter-chip-icon);
|
|
295
|
+
height: var(--nc-filter-chip-icon);
|
|
296
|
+
flex: none;
|
|
297
|
+
stroke: currentColor;
|
|
298
|
+
stroke-width: 1.5;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
.dark .nc-filter-chip {
|
|
302
|
+
border-color: var(--nc-dark-line);
|
|
303
|
+
background: var(--nc-dark-canvas-soft);
|
|
304
|
+
color: var(--nc-dark-body);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
.nc-filter-chip:focus-visible {
|
|
308
|
+
outline: 2px solid var(--nc-link);
|
|
309
|
+
outline-offset: 2px;
|
|
310
|
+
}
|
|
311
|
+
|
|
276
312
|
/* nc-link-inline — the inline body link style (DESIGN.md link-inline). It reads
|
|
277
313
|
in the {colors.link} accent against the body rhythm (the body type is applied
|
|
278
314
|
in markup via .nc-type-body-md), keeps the natural underline so it stays
|
|
@@ -125,11 +125,11 @@
|
|
|
125
125
|
--nc-dark-cyan-soft: #7ee8de;
|
|
126
126
|
--nc-dark-cyan-deep: #1f9e9a;
|
|
127
127
|
--nc-dark-success: #62d494;
|
|
128
|
-
--nc-dark-state-ready: #
|
|
129
|
-
--nc-dark-state-running: #
|
|
130
|
-
--nc-dark-state-review: #
|
|
131
|
-
--nc-dark-state-blocked: #
|
|
132
|
-
--nc-dark-state-complete: #
|
|
128
|
+
--nc-dark-state-ready: #8f8f8f;
|
|
129
|
+
--nc-dark-state-running: #4f6ae6;
|
|
130
|
+
--nc-dark-state-review: #f5a623;
|
|
131
|
+
--nc-dark-state-blocked: #cd212a;
|
|
132
|
+
--nc-dark-state-complete: #008c45;
|
|
133
133
|
--nc-dark-selection-bg: #ededed;
|
|
134
134
|
--nc-dark-selection-fg: #0a0a0a;
|
|
135
135
|
--nc-dark-cross: #6e6e6e;
|
|
@@ -138,6 +138,7 @@
|
|
|
138
138
|
|
|
139
139
|
/* Spacing */
|
|
140
140
|
--nc-xxs: 4px;
|
|
141
|
+
--nc-filter-chip-gap: 6px;
|
|
141
142
|
--nc-xs: 8px;
|
|
142
143
|
--nc-sm: 12px;
|
|
143
144
|
--nc-md: 16px;
|
|
@@ -194,6 +195,8 @@
|
|
|
194
195
|
--nc-h-bento-mobile-copy: 248px;
|
|
195
196
|
--nc-h-bento-mobile-main: 537px;
|
|
196
197
|
--nc-h-bento-strip: 20px;
|
|
198
|
+
--nc-filter-chip-height: 28px;
|
|
199
|
+
--nc-filter-chip-icon: 14px;
|
|
197
200
|
|
|
198
201
|
/* Radii */
|
|
199
202
|
--nc-rounded-none: 0px;
|
|
Binary file
|
|
@@ -122,11 +122,11 @@
|
|
|
122
122
|
"dark-cyan-soft": "#7ee8de",
|
|
123
123
|
"dark-cyan-deep": "#1f9e9a",
|
|
124
124
|
"dark-success": "#62d494",
|
|
125
|
-
"dark-state-ready": "#
|
|
126
|
-
"dark-state-running": "#
|
|
127
|
-
"dark-state-review": "#
|
|
128
|
-
"dark-state-blocked": "#
|
|
129
|
-
"dark-state-complete": "#
|
|
125
|
+
"dark-state-ready": "#8f8f8f",
|
|
126
|
+
"dark-state-running": "#4f6ae6",
|
|
127
|
+
"dark-state-review": "#f5a623",
|
|
128
|
+
"dark-state-blocked": "#cd212a",
|
|
129
|
+
"dark-state-complete": "#008c45",
|
|
130
130
|
"dark-selection-bg": "#ededed",
|
|
131
131
|
"dark-selection-fg": "#0a0a0a",
|
|
132
132
|
"dark-cross": "#6e6e6e",
|
|
@@ -337,6 +337,7 @@
|
|
|
337
337
|
},
|
|
338
338
|
"spacing": {
|
|
339
339
|
"xxs": "4px",
|
|
340
|
+
"filter-chip-gap": "6px",
|
|
340
341
|
"xs": "8px",
|
|
341
342
|
"sm": "12px",
|
|
342
343
|
"md": "16px",
|
|
@@ -392,7 +393,9 @@
|
|
|
392
393
|
"h-bento-secondary": "240px",
|
|
393
394
|
"h-bento-mobile-copy": "248px",
|
|
394
395
|
"h-bento-mobile-main": "537px",
|
|
395
|
-
"h-bento-strip": "20px"
|
|
396
|
+
"h-bento-strip": "20px",
|
|
397
|
+
"filter-chip-height": "28px",
|
|
398
|
+
"filter-chip-icon": "14px"
|
|
396
399
|
}
|
|
397
400
|
}
|
|
398
401
|
}
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
--radius: var(--radius-md);
|
|
43
43
|
--background: var(--color-dark-canvas);
|
|
44
44
|
--foreground: var(--color-dark-ink);
|
|
45
|
-
--card: var(--color-dark-canvas
|
|
45
|
+
--card: var(--color-dark-canvas);
|
|
46
46
|
--card-foreground: var(--color-dark-ink);
|
|
47
|
-
--popover: var(--color-dark-canvas
|
|
47
|
+
--popover: var(--color-dark-canvas);
|
|
48
48
|
--popover-foreground: var(--color-dark-ink);
|
|
49
49
|
--primary: var(--color-dark-primary);
|
|
50
50
|
--primary-foreground: var(--color-dark-on-primary);
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
--chart-3: var(--color-nadicode-chart-3);
|
|
65
65
|
--chart-4: var(--color-nadicode-chart-4);
|
|
66
66
|
--chart-5: var(--color-nadicode-chart-5);
|
|
67
|
-
--sidebar: var(--color-dark-canvas
|
|
67
|
+
--sidebar: var(--color-dark-canvas);
|
|
68
68
|
--sidebar-foreground: var(--color-dark-ink);
|
|
69
69
|
--sidebar-primary: var(--color-dark-primary);
|
|
70
70
|
--sidebar-primary-foreground: var(--color-dark-on-primary);
|
|
@@ -84,6 +84,7 @@
|
|
|
84
84
|
|
|
85
85
|
:root {
|
|
86
86
|
--nadicode-spacing-xxs: var(--spacing-nadicode-xxs);
|
|
87
|
+
--nadicode-spacing-filter-chip-gap: var(--spacing-nadicode-filter-chip-gap);
|
|
87
88
|
--nadicode-spacing-xs: var(--spacing-nadicode-xs);
|
|
88
89
|
--nadicode-spacing-sm: var(--spacing-nadicode-sm);
|
|
89
90
|
--nadicode-spacing-md: var(--spacing-nadicode-md);
|
|
@@ -140,6 +141,8 @@
|
|
|
140
141
|
--nadicode-spacing-h-bento-mobile-copy: var(--spacing-nadicode-h-bento-mobile-copy);
|
|
141
142
|
--nadicode-spacing-h-bento-mobile-main: var(--spacing-nadicode-h-bento-mobile-main);
|
|
142
143
|
--nadicode-spacing-h-bento-strip: var(--spacing-nadicode-h-bento-strip);
|
|
144
|
+
--nadicode-spacing-filter-chip-height: var(--spacing-nadicode-filter-chip-height);
|
|
145
|
+
--nadicode-spacing-filter-chip-icon: var(--spacing-nadicode-filter-chip-icon);
|
|
143
146
|
}
|
|
144
147
|
|
|
145
148
|
/* === FAITHFUL PROJECTION of the @google/design.md Tailwind export. === */
|
|
@@ -264,11 +267,11 @@
|
|
|
264
267
|
--color-dark-cyan-soft: #7ee8de;
|
|
265
268
|
--color-dark-cyan-deep: #1f9e9a;
|
|
266
269
|
--color-dark-success: #62d494;
|
|
267
|
-
--color-dark-state-ready: #
|
|
268
|
-
--color-dark-state-running: #
|
|
269
|
-
--color-dark-state-review: #
|
|
270
|
-
--color-dark-state-blocked: #
|
|
271
|
-
--color-dark-state-complete: #
|
|
270
|
+
--color-dark-state-ready: #8f8f8f;
|
|
271
|
+
--color-dark-state-running: #4f6ae6;
|
|
272
|
+
--color-dark-state-review: #f5a623;
|
|
273
|
+
--color-dark-state-blocked: #cd212a;
|
|
274
|
+
--color-dark-state-complete: #008c45;
|
|
272
275
|
--color-dark-selection-bg: #ededed;
|
|
273
276
|
--color-dark-selection-fg: #0a0a0a;
|
|
274
277
|
--color-dark-cross: #6e6e6e;
|
|
@@ -427,6 +430,7 @@
|
|
|
427
430
|
--radius-pill: 100px;
|
|
428
431
|
--radius-full: 9999px;
|
|
429
432
|
--spacing-nadicode-xxs: 4px;
|
|
433
|
+
--spacing-nadicode-filter-chip-gap: 6px;
|
|
430
434
|
--spacing-nadicode-xs: 8px;
|
|
431
435
|
--spacing-nadicode-sm: 12px;
|
|
432
436
|
--spacing-nadicode-md: 16px;
|
|
@@ -483,4 +487,6 @@
|
|
|
483
487
|
--spacing-nadicode-h-bento-mobile-copy: 248px;
|
|
484
488
|
--spacing-nadicode-h-bento-mobile-main: 537px;
|
|
485
489
|
--spacing-nadicode-h-bento-strip: 20px;
|
|
490
|
+
--spacing-nadicode-filter-chip-height: 28px;
|
|
491
|
+
--spacing-nadicode-filter-chip-icon: 14px;
|
|
486
492
|
}
|
|
@@ -1328,55 +1328,55 @@
|
|
|
1328
1328
|
"$value": {
|
|
1329
1329
|
"colorSpace": "srgb",
|
|
1330
1330
|
"components": [
|
|
1331
|
-
0.
|
|
1332
|
-
0.
|
|
1333
|
-
0.
|
|
1331
|
+
0.561,
|
|
1332
|
+
0.561,
|
|
1333
|
+
0.561
|
|
1334
1334
|
],
|
|
1335
|
-
"hex": "#
|
|
1335
|
+
"hex": "#8f8f8f"
|
|
1336
1336
|
}
|
|
1337
1337
|
},
|
|
1338
1338
|
"dark-state-running": {
|
|
1339
1339
|
"$value": {
|
|
1340
1340
|
"colorSpace": "srgb",
|
|
1341
1341
|
"components": [
|
|
1342
|
-
0.
|
|
1343
|
-
0.
|
|
1344
|
-
0.
|
|
1342
|
+
0.31,
|
|
1343
|
+
0.416,
|
|
1344
|
+
0.902
|
|
1345
1345
|
],
|
|
1346
|
-
"hex": "#
|
|
1346
|
+
"hex": "#4f6ae6"
|
|
1347
1347
|
}
|
|
1348
1348
|
},
|
|
1349
1349
|
"dark-state-review": {
|
|
1350
1350
|
"$value": {
|
|
1351
1351
|
"colorSpace": "srgb",
|
|
1352
1352
|
"components": [
|
|
1353
|
-
|
|
1354
|
-
0.
|
|
1355
|
-
0.
|
|
1353
|
+
0.961,
|
|
1354
|
+
0.651,
|
|
1355
|
+
0.137
|
|
1356
1356
|
],
|
|
1357
|
-
"hex": "#
|
|
1357
|
+
"hex": "#f5a623"
|
|
1358
1358
|
}
|
|
1359
1359
|
},
|
|
1360
1360
|
"dark-state-blocked": {
|
|
1361
1361
|
"$value": {
|
|
1362
1362
|
"colorSpace": "srgb",
|
|
1363
1363
|
"components": [
|
|
1364
|
-
0.
|
|
1365
|
-
0.
|
|
1366
|
-
0.
|
|
1364
|
+
0.804,
|
|
1365
|
+
0.129,
|
|
1366
|
+
0.165
|
|
1367
1367
|
],
|
|
1368
|
-
"hex": "#
|
|
1368
|
+
"hex": "#cd212a"
|
|
1369
1369
|
}
|
|
1370
1370
|
},
|
|
1371
1371
|
"dark-state-complete": {
|
|
1372
1372
|
"$value": {
|
|
1373
1373
|
"colorSpace": "srgb",
|
|
1374
1374
|
"components": [
|
|
1375
|
-
0
|
|
1376
|
-
0.
|
|
1377
|
-
0.
|
|
1375
|
+
0,
|
|
1376
|
+
0.549,
|
|
1377
|
+
0.271
|
|
1378
1378
|
],
|
|
1379
|
-
"hex": "#
|
|
1379
|
+
"hex": "#008c45"
|
|
1380
1380
|
}
|
|
1381
1381
|
},
|
|
1382
1382
|
"dark-selection-bg": {
|
|
@@ -1443,6 +1443,12 @@
|
|
|
1443
1443
|
"unit": "px"
|
|
1444
1444
|
}
|
|
1445
1445
|
},
|
|
1446
|
+
"filter-chip-gap": {
|
|
1447
|
+
"$value": {
|
|
1448
|
+
"value": 6,
|
|
1449
|
+
"unit": "px"
|
|
1450
|
+
}
|
|
1451
|
+
},
|
|
1446
1452
|
"xs": {
|
|
1447
1453
|
"$value": {
|
|
1448
1454
|
"value": 8,
|
|
@@ -1778,6 +1784,18 @@
|
|
|
1778
1784
|
"value": 20,
|
|
1779
1785
|
"unit": "px"
|
|
1780
1786
|
}
|
|
1787
|
+
},
|
|
1788
|
+
"filter-chip-height": {
|
|
1789
|
+
"$value": {
|
|
1790
|
+
"value": 28,
|
|
1791
|
+
"unit": "px"
|
|
1792
|
+
}
|
|
1793
|
+
},
|
|
1794
|
+
"filter-chip-icon": {
|
|
1795
|
+
"$value": {
|
|
1796
|
+
"value": 14,
|
|
1797
|
+
"unit": "px"
|
|
1798
|
+
}
|
|
1781
1799
|
}
|
|
1782
1800
|
},
|
|
1783
1801
|
"rounded": {
|