@sableui/react 0.9.1 → 0.11.0
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/AGENTS.md +1 -1
- package/CHANGELOG.md +109 -0
- package/CONTRIBUTING.md +2 -2
- package/DESIGN.md +55 -16
- package/README.md +12 -0
- package/dist/{_contract-C2M1SjBf.d.ts → _contract-CkqXDVww.d.ts} +25 -2
- package/dist/blocks/danger-zone-block.js +3 -3
- package/dist/blocks/danger-zone-block.meta.js +1 -1
- package/dist/blocks/faq-block.js +3 -3
- package/dist/blocks/goal-progress-block.js +1 -1
- package/dist/blocks/notification-list-block.js +1 -1
- package/dist/blocks/pricing-table-block.js +12 -12
- package/dist/blocks/product-card-block.js +3 -3
- package/dist/blocks/product-card-block.meta.js +3 -3
- package/dist/blocks/profile-card-block.js +1 -1
- package/dist/blocks/profile-form-block.js +3 -3
- package/dist/blocks/revenue-breakdown-block.js +5 -5
- package/dist/blocks/stat-row-block.js +3 -3
- package/dist/blocks/task-list-block.js +2 -2
- package/dist/blocks/team-members-block.js +1 -1
- package/dist/blocks/wallet-block.js +4 -4
- package/dist/blocks/wallet-block.meta.js +3 -3
- package/dist/components/accordion/accordion.meta.js +2 -2
- package/dist/components/app-header/app-header.meta.js +1 -1
- package/dist/components/app-shell/app-shell.meta.js +2 -2
- package/dist/components/area-chart/area-chart.meta.js +3 -3
- package/dist/components/badge/badge.js +13 -4
- package/dist/components/badge/badge.meta.js +24 -13
- package/dist/components/badge/badge.variants.js +37 -23
- package/dist/components/banner/banner.meta.js +8 -8
- package/dist/components/banner/banner.variants.js +3 -3
- package/dist/components/bar-chart/bar-chart.meta.js +4 -4
- package/dist/components/breadcrumbs/breadcrumbs.meta.js +1 -1
- package/dist/components/button/button.meta.js +3 -3
- package/dist/components/card/card.js +16 -7
- package/dist/components/card/card.meta.js +4 -4
- package/dist/components/checkbox-card/checkbox-card.meta.js +10 -10
- package/dist/components/checkbox-card/checkbox-card.variants.js +15 -15
- package/dist/components/code-block/code-block.meta.js +1 -1
- package/dist/components/command-menu/command-menu.meta.js +1 -1
- package/dist/components/context-card/context-card.meta.js +2 -2
- package/dist/components/destructive-action-modal/destructive-action-modal.meta.js +1 -1
- package/dist/components/dialog/dialog.meta.js +2 -2
- package/dist/components/disclosure-picker/disclosure-picker.js +48 -2
- package/dist/components/disclosure-picker/disclosure-picker.meta.js +3 -2
- package/dist/components/empty-state/empty-state.meta.js +4 -4
- package/dist/components/gradient-art/gradient-art.meta.js +3 -3
- package/dist/components/label/label.meta.js +1 -1
- package/dist/components/line-chart/line-chart.meta.js +3 -3
- package/dist/components/meter/meter.js +1 -1
- package/dist/components/meter/meter.meta.js +2 -2
- package/dist/components/meter/meter.variants.js +1 -1
- package/dist/components/middle-truncate/middle-truncate.meta.js +4 -4
- package/dist/components/note/note.meta.js +3 -3
- package/dist/components/page-header/page-header.js +1 -1
- package/dist/components/pagination/pagination.meta.js +2 -2
- package/dist/components/panel-section/index.js +2 -1
- package/dist/components/panel-section/panel-section.js +15 -0
- package/dist/components/panel-section/panel-section.meta.js +32 -0
- package/dist/components/phone/phone.meta.js +1 -1
- package/dist/components/pie-chart/pie-chart.meta.js +3 -3
- package/dist/components/pill/pill.js +4 -2
- package/dist/components/pill/pill.meta.js +19 -2
- package/dist/components/pill/pill.variants.js +23 -2
- package/dist/components/popover/popover.meta.js +2 -2
- package/dist/components/radar-chart/radar-chart.meta.js +3 -3
- package/dist/components/radial-chart/radial-chart.meta.js +3 -3
- package/dist/components/radio/radio.meta.js +2 -2
- package/dist/components/radio-card/radio-card.meta.js +6 -6
- package/dist/components/radio-card/radio-card.variants.js +15 -15
- package/dist/components/scroller/scroller.meta.js +1 -1
- package/dist/components/search-input/search-input.meta.js +1 -1
- package/dist/components/section-header/section-header.js +1 -1
- package/dist/components/segmented-bar/segmented-bar.js +1 -1
- package/dist/components/segmented-bar/segmented-bar.meta.js +6 -6
- package/dist/components/segmented-bar/segmented-bar.variants.js +4 -4
- package/dist/components/select/select.meta.js +2 -2
- package/dist/components/sheet/sheet.meta.js +1 -1
- package/dist/components/side-nav/side-nav.meta.js +1 -1
- package/dist/components/sidebar/sidebar.meta.js +1 -1
- package/dist/components/sparkline/sparkline.meta.js +4 -4
- package/dist/components/spinner/spinner.meta.js +1 -1
- package/dist/components/status-dot/status-dot.js +4 -1
- package/dist/components/status-dot/status-dot.meta.js +8 -16
- package/dist/components/status-dot/status-dot.variants.js +13 -4
- package/dist/components/table/table.meta.js +4 -4
- package/dist/components/tabs/tabs.meta.js +1 -1
- package/dist/components/textarea/textarea.meta.js +2 -2
- package/dist/components/toast/toast.meta.js +1 -1
- package/dist/components/tooltip/tooltip.meta.js +2 -2
- package/dist/file-hashes.json +123 -121
- package/dist/foundations/spacing.js +8 -8
- package/dist/index.d.ts +171 -76
- package/dist/index.js +12 -1
- package/dist/lib/chart/types.js +3 -3
- package/dist/lib/palette.js +103 -0
- package/dist/lib/selection-card.js +4 -4
- package/dist/palette.css +669 -0
- package/dist/patterns/auth-page.js +6 -6
- package/dist/patterns/auth-page.meta.js +3 -3
- package/dist/patterns/brand-landing-page.js +2 -2
- package/dist/patterns/chat-panel.js +2 -2
- package/dist/patterns/dashboard-page.js +71 -71
- package/dist/patterns/dashboard-page.meta.js +5 -5
- package/dist/patterns/feed-page.js +25 -25
- package/dist/patterns/feed-page.meta.js +3 -3
- package/dist/patterns/landing-page.js +1 -1
- package/dist/patterns/list-detail-page.js +17 -17
- package/dist/patterns/settings-page.js +17 -17
- package/dist/presets/index.d.ts +1 -1
- package/dist/presets/index.js +17 -2
- package/dist/styles.css +115 -50
- package/dist/{theme-provider-S0NVJs2Y.d.ts → theme-provider-CdSicAad.d.ts} +1 -1
- package/dist/themes/_contract.js +22 -8
- package/dist/themes/atelier/atelier.css +13 -13
- package/dist/themes/atelier/index.d.ts +1 -1
- package/dist/themes/ember/ember.css +13 -13
- package/dist/themes/ember/index.d.ts +1 -1
- package/dist/themes/index.d.ts +2 -2
- package/dist/themes/meridian/index.d.ts +1 -1
- package/dist/themes/meridian/meridian.css +13 -13
- package/dist/themes/poppy/index.d.ts +1 -1
- package/dist/themes/poppy/poppy.css +19 -16
- package/dist/themes/prism/index.d.ts +1 -1
- package/dist/themes/prism/prism.css +18 -15
- package/dist/themes/sable/index.d.ts +1 -1
- package/dist/themes/sable/sable.css +18 -22
- package/dist/themes/verdant/index.d.ts +1 -1
- package/dist/themes/verdant/verdant.css +15 -15
- package/llms/blocks/danger-zone-block.md +4 -4
- package/llms/blocks/faq-block.md +3 -3
- package/llms/blocks/goal-progress-block.md +1 -1
- package/llms/blocks/notification-list-block.md +1 -1
- package/llms/blocks/pricing-table-block.md +12 -12
- package/llms/blocks/product-card-block.md +6 -6
- package/llms/blocks/profile-card-block.md +1 -1
- package/llms/blocks/profile-form-block.md +3 -3
- package/llms/blocks/revenue-breakdown-block.md +5 -5
- package/llms/blocks/stat-row-block.md +3 -3
- package/llms/blocks/task-list-block.md +2 -2
- package/llms/blocks/team-members-block.md +1 -1
- package/llms/blocks/wallet-block.md +7 -7
- package/llms/components/accordion.md +2 -2
- package/llms/components/app-header.md +1 -1
- package/llms/components/app-shell.md +2 -2
- package/llms/components/area-chart.md +1 -1
- package/llms/components/badge.md +15 -7
- package/llms/components/banner.md +6 -6
- package/llms/components/bar-chart.md +2 -2
- package/llms/components/breadcrumbs.md +1 -1
- package/llms/components/button.md +3 -3
- package/llms/components/card.md +4 -4
- package/llms/components/checkbox-card.md +5 -5
- package/llms/components/code-block.md +1 -1
- package/llms/components/command-menu.md +1 -1
- package/llms/components/context-card.md +2 -2
- package/llms/components/destructive-action-modal.md +1 -1
- package/llms/components/dialog.md +2 -2
- package/llms/components/disclosure-picker.md +2 -1
- package/llms/components/empty-state.md +4 -4
- package/llms/components/gradient-art.md +3 -3
- package/llms/components/label.md +1 -1
- package/llms/components/line-chart.md +1 -1
- package/llms/components/meter.md +2 -2
- package/llms/components/middle-truncate.md +5 -5
- package/llms/components/note.md +3 -3
- package/llms/components/pagination.md +2 -2
- package/llms/components/panel-section.md +28 -0
- package/llms/components/phone.md +1 -1
- package/llms/components/pie-chart.md +1 -1
- package/llms/components/pill.md +12 -2
- package/llms/components/popover.md +2 -2
- package/llms/components/radar-chart.md +1 -1
- package/llms/components/radial-chart.md +1 -1
- package/llms/components/radio-card.md +4 -4
- package/llms/components/radio.md +2 -2
- package/llms/components/scroller.md +1 -1
- package/llms/components/search-input.md +1 -1
- package/llms/components/segmented-bar.md +7 -7
- package/llms/components/select.md +2 -2
- package/llms/components/sheet.md +1 -1
- package/llms/components/side-nav.md +1 -1
- package/llms/components/sidebar.md +1 -1
- package/llms/components/sparkline.md +2 -2
- package/llms/components/spinner.md +1 -1
- package/llms/components/status-dot.md +4 -4
- package/llms/components/table.md +8 -8
- package/llms/components/tabs.md +1 -1
- package/llms/components/textarea.md +2 -2
- package/llms/components/toast.md +1 -1
- package/llms/components/tooltip.md +2 -2
- package/llms/foundations/spacing.md +7 -7
- package/llms/layout/grid.md +1 -1
- package/llms/layout/page.md +1 -1
- package/llms/layout/region.md +1 -1
- package/llms/layout/split-pane.md +1 -1
- package/llms/patterns/auth-page.md +11 -11
- package/llms/patterns/brand-landing-page.md +2 -2
- package/llms/patterns/chat-panel.md +2 -2
- package/llms/patterns/dashboard-page.md +78 -78
- package/llms/patterns/feed-page.md +31 -31
- package/llms/patterns/landing-page.md +1 -1
- package/llms/patterns/list-detail-page.md +18 -18
- package/llms/patterns/settings-page.md +18 -18
- package/llms/reference/token-intent.md +25 -11
- package/llms/reference/utilities.md +1 -1
- package/llms/tasks/adding-a-component.md +4 -1
- package/llms/tasks/building-a-page.md +40 -0
- package/llms/tasks/converting-an-app.md +3 -1
- package/llms/tasks/using-presets.md +4 -0
- package/llms-full.txt +457 -347
- package/llms.txt +8 -8
- package/package.json +4 -4
- package/registry.json +397 -233
- package/scripts/lint-rules.mjs +26 -5
- package/skills/sable/SKILL.md +14 -3
package/dist/styles.css
CHANGED
|
@@ -35,6 +35,11 @@
|
|
|
35
35
|
to check. */
|
|
36
36
|
@import "./themes/sable/sable.css";
|
|
37
37
|
|
|
38
|
+
/* The palette: nine colour families and a scale under every tone, generated
|
|
39
|
+
from whatever theme is painting (bg-blue-500, text-tone-1-700,
|
|
40
|
+
border-neutral-200). Generated; see src/lib/palette.ts. */
|
|
41
|
+
@import "./palette.css";
|
|
42
|
+
|
|
38
43
|
/* Scan the package for utility classes (path is relative to THIS file). Covers
|
|
39
44
|
both workspace source (.ts/.tsx next to this file in src/) and the compiled
|
|
40
45
|
dist (.js next to the copied styles.css), so the same file works in both. */
|
|
@@ -95,18 +100,18 @@
|
|
|
95
100
|
--color-sidebar-ring: var(--sidebar-ring);
|
|
96
101
|
|
|
97
102
|
/* Post-type tones + highlight (semantic — carry meaning) */
|
|
98
|
-
--color-tone-
|
|
99
|
-
--color-tone-
|
|
100
|
-
--color-tone-
|
|
103
|
+
--color-tone-3: var(--tone-3);
|
|
104
|
+
--color-tone-2: var(--tone-2);
|
|
105
|
+
--color-tone-1: var(--tone-1);
|
|
101
106
|
--color-tone-warning: var(--tone-warning);
|
|
102
107
|
--color-tone-info: var(--tone-info);
|
|
103
108
|
--color-highlight: var(--highlight);
|
|
104
109
|
|
|
105
110
|
/* Tone ink — theme-adaptive legible text/icon color ON a tone fill, so a
|
|
106
|
-
component writes `text-tone-
|
|
107
|
-
--color-tone-
|
|
108
|
-
--color-tone-
|
|
109
|
-
--color-tone-
|
|
111
|
+
component writes `text-tone-1-foreground` (no palette name, no dark:). */
|
|
112
|
+
--color-tone-3-foreground: var(--tone-3-foreground);
|
|
113
|
+
--color-tone-2-foreground: var(--tone-2-foreground);
|
|
114
|
+
--color-tone-1-foreground: var(--tone-1-foreground);
|
|
110
115
|
--color-tone-warning-foreground: var(--tone-warning-foreground);
|
|
111
116
|
--color-tone-info-foreground: var(--tone-info-foreground);
|
|
112
117
|
/* Status text: a status colour drawn on a surface. Tailwind resolves each
|
|
@@ -404,9 +409,9 @@
|
|
|
404
409
|
neutral (black/white buttons): then the art must keep the brand, or Ember's
|
|
405
410
|
embers go grey. Set the hook to the brand wherever --primary stops being it. */
|
|
406
411
|
--art-1: var(--theme-art-1, oklch(from var(--tone-info) clamp(0.5, calc(l + 0.16), 0.9) max(calc(c * 1.25), 0.1) h));
|
|
407
|
-
--art-2: var(--theme-art-2, oklch(from var(--tone-
|
|
408
|
-
--art-3: var(--theme-art-3, oklch(from var(--tone-
|
|
409
|
-
--art-4: var(--theme-art-4, oklch(from var(--tone-
|
|
412
|
+
--art-2: var(--theme-art-2, oklch(from var(--tone-2) clamp(0.5, calc(l + 0.16), 0.9) max(calc(c * 1.25), 0.1) h));
|
|
413
|
+
--art-3: var(--theme-art-3, oklch(from var(--tone-1) clamp(0.5, calc(l + 0.16), 0.9) max(calc(c * 1.25), 0.1) h));
|
|
414
|
+
--art-4: var(--theme-art-4, oklch(from var(--tone-3) clamp(0.5, calc(l + 0.16), 0.9) max(calc(c * 1.25), 0.1) h));
|
|
410
415
|
--art-5: var(--theme-art-5, transparent);
|
|
411
416
|
--art-6: var(--theme-art-6, transparent);
|
|
412
417
|
--art-ground: var(--theme-art-ground, color-mix(in oklab, var(--theme-art-brand, var(--primary)) 55%, oklch(from var(--tone-info) 0.3 c h)));
|
|
@@ -415,54 +420,111 @@
|
|
|
415
420
|
--art-grain: var(--theme-art-grain, 0);
|
|
416
421
|
}
|
|
417
422
|
|
|
423
|
+
/* ==========================================================================
|
|
424
|
+
Vertical rhythm — the baseline is DERIVED from the body text, the way a
|
|
425
|
+
page is set in print: one line of body copy (size × leading) is the unit,
|
|
426
|
+
divided into a few equal steps that everything else lands on. See
|
|
427
|
+
DESIGN.md → Vertical rhythm.
|
|
428
|
+
|
|
429
|
+
--baseline one line of body text, rounded so it divides evenly
|
|
430
|
+
--baseline-split how many steps a line divides into. A theme picks it with
|
|
431
|
+
--theme-baseline-split; thirds (8px at 15/24) by default.
|
|
432
|
+
Halves read calmer and more editorial; finer than thirds
|
|
433
|
+
stops giving structure unless every value is chosen by eye.
|
|
434
|
+
--baseline-step the step: line heights round to it, and the spacing scale
|
|
435
|
+
is half of it (so `p-4` is two steps)
|
|
436
|
+
--leading-scale how open the reading text is set. This is what makes a
|
|
437
|
+
look Airy or Compact: more leading is a longer line, so a
|
|
438
|
+
bigger step, so every gap grows with the text it spaces.
|
|
439
|
+
A theme sets --theme-leading-scale; the customizer sets it.
|
|
440
|
+
|
|
441
|
+
The step is whole px (rounded with `round(…, 1px)`), so a rule on the step
|
|
442
|
+
is never a fraction that drifts. --spacing derives from it — at Sable's
|
|
443
|
+
defaults that is exactly Tailwind's 0.25rem at any root size, so nothing
|
|
444
|
+
moves until the type does.
|
|
445
|
+
|
|
446
|
+
Declared on every element that can re-declare the type tokens, not just
|
|
447
|
+
:root: a custom property resolves where it is declared, so a preset-scoped
|
|
448
|
+
preview would otherwise keep the page's step.
|
|
449
|
+
========================================================================== */
|
|
450
|
+
|
|
451
|
+
:root,
|
|
452
|
+
[data-sable-theme] {
|
|
453
|
+
--leading-scale: var(--theme-leading-scale, 1);
|
|
454
|
+
--baseline-split: var(--theme-baseline-split, 3);
|
|
455
|
+
--baseline-step: max(
|
|
456
|
+
2px,
|
|
457
|
+
round(
|
|
458
|
+
nearest,
|
|
459
|
+
calc(var(--type-body-md-size, 0.9375rem) * var(--type-body-md-leading, 1.55) * var(--leading-scale) / var(--baseline-split)),
|
|
460
|
+
1px
|
|
461
|
+
)
|
|
462
|
+
);
|
|
463
|
+
--baseline: calc(var(--baseline-step) * var(--baseline-split));
|
|
464
|
+
--spacing: calc(var(--baseline-step) / 2);
|
|
465
|
+
/* Every Stack/Row/Grid gap number is in steps. */
|
|
466
|
+
--rhythm-unit: calc(var(--spacing) * 2);
|
|
467
|
+
/* Gutters are in steps too: a Grid's row gap is vertical space. 2 steps on
|
|
468
|
+
phones, 3 on desktop, snapped in between rather than fluid. */
|
|
469
|
+
--grid-gutter: round(
|
|
470
|
+
nearest,
|
|
471
|
+
clamp(calc(var(--rhythm-unit) * 2), calc(var(--rhythm-unit) * 1.6 + 1vw), calc(var(--rhythm-unit) * 3)),
|
|
472
|
+
var(--rhythm-unit)
|
|
473
|
+
);
|
|
474
|
+
}
|
|
475
|
+
|
|
418
476
|
/* ==========================================================================
|
|
419
477
|
Typography — six tiers. Each utility bundles size + weight + line-height +
|
|
420
478
|
tracking. Compose with color/margin only; never override the four paired
|
|
421
479
|
properties individually. Mono uses the theme's --font-mono.
|
|
422
480
|
|
|
423
481
|
Leading is authored as a RATIO (the `--type-*-leading` hooks every theme
|
|
424
|
-
tunes) and rendered on the
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
482
|
+
tunes) and rendered on the baseline step: `round(nearest, ratio × 1em,
|
|
483
|
+
var(--baseline-step))`. Ratios alone landed almost nowhere on a grid (15px
|
|
484
|
+
body at 1.55 = 23.25px, a 36px h1 at 1.15 = 41.4px), so stacked text
|
|
485
|
+
drifted off the rhythm a fraction of a pixel per line. Rounding keeps each
|
|
486
|
+
tier's (and each theme's) intended proportion and snaps the result — 24px
|
|
487
|
+
and 40px there at the default 8px step.
|
|
488
|
+
|
|
489
|
+
The reading tiers (body, title, caption, mono-md) also take
|
|
490
|
+
--leading-scale, so Airy opens the text itself; display, heading and label
|
|
491
|
+
leading is a shape the theme chose and only snaps. The `ui-*` tier is
|
|
492
|
+
already whole px on its own 4px grid (the workspace register).
|
|
431
493
|
========================================================================== */
|
|
432
494
|
|
|
433
495
|
@utility text-display-4xl {
|
|
434
496
|
font-family: var(--font-display, var(--font-sans));
|
|
435
497
|
font-size: var(--type-display-4xl-size, clamp(4.5rem, 12vw, 12rem));
|
|
436
498
|
font-weight: var(--type-display-4xl-weight, 800);
|
|
437
|
-
line-height: round(nearest, calc(var(--type-display-4xl-leading, 0.9) * 1em), 0.25rem);
|
|
499
|
+
line-height: round(nearest, calc(var(--type-display-4xl-leading, 0.9) * 1em), var(--baseline-step, 0.25rem));
|
|
438
500
|
letter-spacing: var(--type-display-4xl-tracking, -0.05em);
|
|
439
501
|
}
|
|
440
502
|
@utility text-display-3xl {
|
|
441
503
|
font-family: var(--font-display, var(--font-sans));
|
|
442
504
|
font-size: var(--type-display-3xl-size, 6rem);
|
|
443
505
|
font-weight: var(--type-display-3xl-weight, 700);
|
|
444
|
-
line-height: round(nearest, calc(var(--type-display-3xl-leading, 0.95) * 1em), 0.25rem);
|
|
506
|
+
line-height: round(nearest, calc(var(--type-display-3xl-leading, 0.95) * 1em), var(--baseline-step, 0.25rem));
|
|
445
507
|
letter-spacing: var(--type-display-3xl-tracking, -0.045em);
|
|
446
508
|
}
|
|
447
509
|
@utility text-display-2xl {
|
|
448
510
|
font-family: var(--font-display, var(--font-sans));
|
|
449
511
|
font-size: var(--type-display-2xl-size, 4.5rem);
|
|
450
512
|
font-weight: var(--type-display-2xl-weight, 700);
|
|
451
|
-
line-height: round(nearest, calc(var(--type-display-2xl-leading, 1) * 1em), 0.25rem);
|
|
513
|
+
line-height: round(nearest, calc(var(--type-display-2xl-leading, 1) * 1em), var(--baseline-step, 0.25rem));
|
|
452
514
|
letter-spacing: var(--type-display-2xl-tracking, -0.04em);
|
|
453
515
|
}
|
|
454
516
|
@utility text-display-xl {
|
|
455
517
|
font-family: var(--font-display, var(--font-sans));
|
|
456
518
|
font-size: var(--type-display-xl-size, 3.75rem);
|
|
457
519
|
font-weight: var(--type-display-xl-weight, 700);
|
|
458
|
-
line-height: round(nearest, calc(var(--type-display-xl-leading, 1.05) * 1em), 0.25rem);
|
|
520
|
+
line-height: round(nearest, calc(var(--type-display-xl-leading, 1.05) * 1em), var(--baseline-step, 0.25rem));
|
|
459
521
|
letter-spacing: var(--type-display-xl-tracking, -0.035em);
|
|
460
522
|
}
|
|
461
523
|
@utility text-display-lg {
|
|
462
524
|
font-family: var(--font-display, var(--font-sans));
|
|
463
525
|
font-size: var(--type-display-lg-size, 3rem);
|
|
464
526
|
font-weight: var(--type-display-lg-weight, 700);
|
|
465
|
-
line-height: round(nearest, calc(var(--type-display-lg-leading, 1.1) * 1em), 0.25rem);
|
|
527
|
+
line-height: round(nearest, calc(var(--type-display-lg-leading, 1.1) * 1em), var(--baseline-step, 0.25rem));
|
|
466
528
|
letter-spacing: var(--type-display-lg-tracking, -0.03em);
|
|
467
529
|
}
|
|
468
530
|
|
|
@@ -470,28 +532,28 @@
|
|
|
470
532
|
font-family: var(--font-display, var(--font-sans));
|
|
471
533
|
font-size: var(--type-heading-1-size, 2.25rem);
|
|
472
534
|
font-weight: var(--type-heading-weight, 600);
|
|
473
|
-
line-height: round(nearest, calc(var(--type-heading-1-leading, 1.15) * 1em), 0.25rem);
|
|
535
|
+
line-height: round(nearest, calc(var(--type-heading-1-leading, 1.15) * 1em), var(--baseline-step, 0.25rem));
|
|
474
536
|
letter-spacing: var(--type-heading-1-tracking, -0.025em);
|
|
475
537
|
}
|
|
476
538
|
@utility text-heading-2 {
|
|
477
539
|
font-family: var(--font-display, var(--font-sans));
|
|
478
540
|
font-size: var(--type-heading-2-size, 1.75rem);
|
|
479
541
|
font-weight: var(--type-heading-weight, 600);
|
|
480
|
-
line-height: round(nearest, calc(var(--type-heading-2-leading, 1.2) * 1em), 0.25rem);
|
|
542
|
+
line-height: round(nearest, calc(var(--type-heading-2-leading, 1.2) * 1em), var(--baseline-step, 0.25rem));
|
|
481
543
|
letter-spacing: var(--type-heading-2-tracking, -0.02em);
|
|
482
544
|
}
|
|
483
545
|
@utility text-heading-3 {
|
|
484
546
|
font-family: var(--font-display, var(--font-sans));
|
|
485
547
|
font-size: var(--type-heading-3-size, 1.375rem);
|
|
486
548
|
font-weight: var(--type-heading-weight, 600);
|
|
487
|
-
line-height: round(nearest, calc(var(--type-heading-3-leading, 1.25) * 1em), 0.25rem);
|
|
549
|
+
line-height: round(nearest, calc(var(--type-heading-3-leading, 1.25) * 1em), var(--baseline-step, 0.25rem));
|
|
488
550
|
letter-spacing: var(--type-heading-3-tracking, -0.015em);
|
|
489
551
|
}
|
|
490
552
|
@utility text-heading-4 {
|
|
491
553
|
font-family: var(--font-display, var(--font-sans));
|
|
492
554
|
font-size: var(--type-heading-4-size, 1.125rem);
|
|
493
555
|
font-weight: var(--type-heading-weight, 600);
|
|
494
|
-
line-height: round(nearest, calc(var(--type-heading-4-leading, 1.3) * 1em), 0.25rem);
|
|
556
|
+
line-height: round(nearest, calc(var(--type-heading-4-leading, 1.3) * 1em), var(--baseline-step, 0.25rem));
|
|
495
557
|
letter-spacing: var(--type-heading-4-tracking, -0.01em);
|
|
496
558
|
}
|
|
497
559
|
|
|
@@ -506,13 +568,13 @@
|
|
|
506
568
|
@utility text-title-lg {
|
|
507
569
|
font-size: var(--type-title-lg-size, 1rem);
|
|
508
570
|
font-weight: var(--type-title-weight, 600);
|
|
509
|
-
line-height: round(nearest, calc(var(--type-title-leading, 1.4) * 1em), 0.25rem);
|
|
571
|
+
line-height: round(nearest, calc(var(--type-title-leading, 1.4) * var(--leading-scale, 1) * 1em), var(--baseline-step, 0.25rem));
|
|
510
572
|
letter-spacing: var(--type-title-tracking, -0.01em);
|
|
511
573
|
}
|
|
512
574
|
@utility text-title-sm {
|
|
513
575
|
font-size: var(--type-title-sm-size, 0.875rem);
|
|
514
576
|
font-weight: var(--type-title-weight, 600);
|
|
515
|
-
line-height: round(nearest, calc(var(--type-title-leading, 1.4) * 1em), 0.25rem);
|
|
577
|
+
line-height: round(nearest, calc(var(--type-title-leading, 1.4) * var(--leading-scale, 1) * 1em), var(--baseline-step, 0.25rem));
|
|
516
578
|
letter-spacing: var(--type-title-sm-tracking, -0.005em);
|
|
517
579
|
}
|
|
518
580
|
|
|
@@ -531,20 +593,20 @@
|
|
|
531
593
|
@utility text-body-lg {
|
|
532
594
|
font-size: var(--type-body-lg-size, 1.0625rem);
|
|
533
595
|
font-weight: var(--type-body-lg-weight, 400);
|
|
534
|
-
line-height: round(nearest, calc(var(--type-body-lg-leading, 1.6) * 1em), 0.25rem);
|
|
596
|
+
line-height: round(nearest, calc(var(--type-body-lg-leading, 1.6) * var(--leading-scale, 1) * 1em), var(--baseline-step, 0.25rem));
|
|
535
597
|
letter-spacing: var(--type-body-lg-tracking, -0.005em);
|
|
536
598
|
text-wrap: pretty;
|
|
537
599
|
}
|
|
538
600
|
@utility text-body-md {
|
|
539
601
|
font-size: var(--type-body-md-size, 0.9375rem);
|
|
540
602
|
font-weight: var(--type-body-md-weight, 400);
|
|
541
|
-
line-height: round(nearest, calc(var(--type-body-md-leading, 1.55) * 1em), 0.25rem);
|
|
603
|
+
line-height: round(nearest, calc(var(--type-body-md-leading, 1.55) * var(--leading-scale, 1) * 1em), var(--baseline-step, 0.25rem));
|
|
542
604
|
letter-spacing: var(--type-body-md-tracking, -0.005em);
|
|
543
605
|
}
|
|
544
606
|
@utility text-body-sm {
|
|
545
607
|
font-size: var(--type-body-sm-size, 0.8125rem);
|
|
546
608
|
font-weight: var(--type-body-sm-weight, 400);
|
|
547
|
-
line-height: round(nearest, calc(var(--type-body-sm-leading, 1.5) * 1em), 0.25rem);
|
|
609
|
+
line-height: round(nearest, calc(var(--type-body-sm-leading, 1.5) * var(--leading-scale, 1) * 1em), var(--baseline-step, 0.25rem));
|
|
548
610
|
letter-spacing: var(--type-body-sm-tracking, 0);
|
|
549
611
|
}
|
|
550
612
|
/* The dense floor of the body ramp — running text in operator consoles,
|
|
@@ -553,7 +615,7 @@
|
|
|
553
615
|
@utility text-body-xs {
|
|
554
616
|
font-size: var(--type-body-xs-size, 0.75rem);
|
|
555
617
|
font-weight: var(--type-body-xs-weight, 400);
|
|
556
|
-
line-height: round(nearest, calc(var(--type-body-xs-leading, 1.5) * 1em), 0.25rem);
|
|
618
|
+
line-height: round(nearest, calc(var(--type-body-xs-leading, 1.5) * var(--leading-scale, 1) * 1em), var(--baseline-step, 0.25rem));
|
|
557
619
|
letter-spacing: var(--type-body-xs-tracking, 0);
|
|
558
620
|
}
|
|
559
621
|
|
|
@@ -580,10 +642,11 @@
|
|
|
580
642
|
list-style: disc;
|
|
581
643
|
padding-inline-start: 1.25em;
|
|
582
644
|
font-size: var(--type-body-md-size, 0.9375rem);
|
|
583
|
-
line-height: round(nearest, calc(var(--type-body-md-leading, 1.55) * 1em), 0.25rem);
|
|
645
|
+
line-height: round(nearest, calc(var(--type-body-md-leading, 1.55) * var(--leading-scale, 1) * 1em), var(--baseline-step, 0.25rem));
|
|
584
646
|
color: var(--foreground);
|
|
585
647
|
& > li + li {
|
|
586
|
-
|
|
648
|
+
/* One baseline step: items stay on the rhythm. */
|
|
649
|
+
margin-block-start: --spacing(2);
|
|
587
650
|
}
|
|
588
651
|
& > li::marker {
|
|
589
652
|
color: var(--muted-foreground);
|
|
@@ -593,10 +656,11 @@
|
|
|
593
656
|
list-style: decimal;
|
|
594
657
|
padding-inline-start: 1.5em;
|
|
595
658
|
font-size: var(--type-body-md-size, 0.9375rem);
|
|
596
|
-
line-height: round(nearest, calc(var(--type-body-md-leading, 1.55) * 1em), 0.25rem);
|
|
659
|
+
line-height: round(nearest, calc(var(--type-body-md-leading, 1.55) * var(--leading-scale, 1) * 1em), var(--baseline-step, 0.25rem));
|
|
597
660
|
color: var(--foreground);
|
|
598
661
|
& > li + li {
|
|
599
|
-
|
|
662
|
+
/* One baseline step: items stay on the rhythm. */
|
|
663
|
+
margin-block-start: --spacing(2);
|
|
600
664
|
}
|
|
601
665
|
& > li::marker {
|
|
602
666
|
color: var(--muted-foreground);
|
|
@@ -608,18 +672,19 @@
|
|
|
608
672
|
grid-template-columns: max-content minmax(0, 1fr);
|
|
609
673
|
align-items: baseline;
|
|
610
674
|
column-gap: --spacing(6);
|
|
611
|
-
row
|
|
675
|
+
/* Two baseline steps between pairs, so each row starts on the rhythm. */
|
|
676
|
+
row-gap: --spacing(4);
|
|
612
677
|
/* The values' type and ink live on the list and the <dd>s inherit them, so a
|
|
613
678
|
text-* utility on a <dd> (text-success, text-mono-md) simply wins. The term
|
|
614
679
|
and the wrapping rules sit in :where(), which adds no specificity. */
|
|
615
680
|
font-size: var(--type-body-md-size, 0.9375rem);
|
|
616
|
-
line-height: round(nearest, calc(var(--type-body-md-leading, 1.55) * 1em), 0.25rem);
|
|
681
|
+
line-height: round(nearest, calc(var(--type-body-md-leading, 1.55) * var(--leading-scale, 1) * 1em), var(--baseline-step, 0.25rem));
|
|
617
682
|
letter-spacing: var(--type-body-md-tracking, -0.005em);
|
|
618
683
|
color: var(--foreground);
|
|
619
684
|
& > :where(dt) {
|
|
620
685
|
font-size: var(--type-label-md-size, 0.75rem);
|
|
621
686
|
font-weight: var(--type-label-md-weight, 600);
|
|
622
|
-
line-height: round(nearest, calc(var(--type-label-md-leading, 1.2) * 1em), 0.25rem);
|
|
687
|
+
line-height: round(nearest, calc(var(--type-label-md-leading, 1.2) * 1em), var(--baseline-step, 0.25rem));
|
|
623
688
|
letter-spacing: var(--type-label-md-tracking, 0);
|
|
624
689
|
color: var(--muted-foreground);
|
|
625
690
|
}
|
|
@@ -638,19 +703,19 @@
|
|
|
638
703
|
@utility text-label-lg {
|
|
639
704
|
font-size: var(--type-label-lg-size, 0.875rem);
|
|
640
705
|
font-weight: var(--type-label-lg-weight, 600);
|
|
641
|
-
line-height: round(nearest, calc(var(--type-label-lg-leading, 1.25) * 1em), 0.25rem);
|
|
706
|
+
line-height: round(nearest, calc(var(--type-label-lg-leading, 1.25) * 1em), var(--baseline-step, 0.25rem));
|
|
642
707
|
letter-spacing: var(--type-label-lg-tracking, -0.005em);
|
|
643
708
|
}
|
|
644
709
|
@utility text-label-md {
|
|
645
710
|
font-size: var(--type-label-md-size, 0.75rem);
|
|
646
711
|
font-weight: var(--type-label-md-weight, 600);
|
|
647
|
-
line-height: round(nearest, calc(var(--type-label-md-leading, 1.2) * 1em), 0.25rem);
|
|
712
|
+
line-height: round(nearest, calc(var(--type-label-md-leading, 1.2) * 1em), var(--baseline-step, 0.25rem));
|
|
648
713
|
letter-spacing: var(--type-label-md-tracking, 0);
|
|
649
714
|
}
|
|
650
715
|
@utility text-label-sm {
|
|
651
716
|
font-size: var(--type-label-sm-size, 0.6875rem);
|
|
652
717
|
font-weight: var(--type-label-sm-weight, 600);
|
|
653
|
-
line-height: round(nearest, calc(var(--type-label-sm-leading, 1.2) * 1em), 0.25rem);
|
|
718
|
+
line-height: round(nearest, calc(var(--type-label-sm-leading, 1.2) * 1em), var(--baseline-step, 0.25rem));
|
|
654
719
|
letter-spacing: var(--type-label-sm-tracking, 0);
|
|
655
720
|
}
|
|
656
721
|
/* Sentence case like every other label (UI text is sentence case). The
|
|
@@ -660,14 +725,14 @@
|
|
|
660
725
|
@utility text-label-xs {
|
|
661
726
|
font-size: var(--type-label-xs-size, 0.6875rem);
|
|
662
727
|
font-weight: var(--type-label-xs-weight, 600);
|
|
663
|
-
line-height: round(nearest, calc(var(--type-label-xs-leading, 1.2) * 1em), 0.25rem);
|
|
728
|
+
line-height: round(nearest, calc(var(--type-label-xs-leading, 1.2) * 1em), var(--baseline-step, 0.25rem));
|
|
664
729
|
letter-spacing: var(--type-label-xs-tracking, 0.01em);
|
|
665
730
|
text-transform: var(--type-label-xs-transform, none);
|
|
666
731
|
}
|
|
667
732
|
@utility text-caption {
|
|
668
733
|
font-size: var(--type-caption-size, 0.75rem);
|
|
669
734
|
font-weight: var(--type-caption-weight, 400);
|
|
670
|
-
line-height: round(nearest, calc(var(--type-caption-leading, 1.4) * 1em), 0.25rem);
|
|
735
|
+
line-height: round(nearest, calc(var(--type-caption-leading, 1.4) * var(--leading-scale, 1) * 1em), var(--baseline-step, 0.25rem));
|
|
671
736
|
letter-spacing: var(--type-caption-tracking, 0);
|
|
672
737
|
}
|
|
673
738
|
|
|
@@ -678,7 +743,7 @@
|
|
|
678
743
|
@utility text-overline {
|
|
679
744
|
font-size: var(--type-overline-size, 0.75rem);
|
|
680
745
|
font-weight: var(--type-overline-weight, 600);
|
|
681
|
-
line-height: round(nearest, calc(var(--type-overline-leading, 1.2) * 1em), 0.25rem);
|
|
746
|
+
line-height: round(nearest, calc(var(--type-overline-leading, 1.2) * 1em), var(--baseline-step, 0.25rem));
|
|
682
747
|
letter-spacing: var(--type-overline-tracking, 0.08em);
|
|
683
748
|
text-transform: var(--type-overline-transform, uppercase);
|
|
684
749
|
}
|
|
@@ -690,7 +755,7 @@
|
|
|
690
755
|
font-family: var(--font-mono);
|
|
691
756
|
font-size: var(--type-mono-xl-size, 1.75rem);
|
|
692
757
|
font-weight: var(--type-mono-xl-weight, 500);
|
|
693
|
-
line-height: round(nearest, calc(var(--type-mono-xl-leading, 1.15) * 1em), 0.25rem);
|
|
758
|
+
line-height: round(nearest, calc(var(--type-mono-xl-leading, 1.15) * 1em), var(--baseline-step, 0.25rem));
|
|
694
759
|
letter-spacing: var(--type-mono-xl-tracking, -0.01em);
|
|
695
760
|
font-variant-numeric: tabular-nums;
|
|
696
761
|
}
|
|
@@ -698,7 +763,7 @@
|
|
|
698
763
|
font-family: var(--font-mono);
|
|
699
764
|
font-size: var(--type-mono-lg-size, 1.25rem);
|
|
700
765
|
font-weight: var(--type-mono-lg-weight, 500);
|
|
701
|
-
line-height: round(nearest, calc(var(--type-mono-lg-leading, 1.25) * 1em), 0.25rem);
|
|
766
|
+
line-height: round(nearest, calc(var(--type-mono-lg-leading, 1.25) * 1em), var(--baseline-step, 0.25rem));
|
|
702
767
|
letter-spacing: var(--type-mono-lg-tracking, 0);
|
|
703
768
|
font-variant-numeric: tabular-nums;
|
|
704
769
|
}
|
|
@@ -706,7 +771,7 @@
|
|
|
706
771
|
font-family: var(--font-mono);
|
|
707
772
|
font-size: var(--type-mono-md-size, 0.8125rem);
|
|
708
773
|
font-weight: var(--type-mono-md-weight, 400);
|
|
709
|
-
line-height: round(nearest, calc(var(--type-mono-md-leading, 1.5) * 1em), 0.25rem);
|
|
774
|
+
line-height: round(nearest, calc(var(--type-mono-md-leading, 1.5) * var(--leading-scale, 1) * 1em), var(--baseline-step, 0.25rem));
|
|
710
775
|
letter-spacing: var(--type-mono-md-tracking, 0);
|
|
711
776
|
font-variant-numeric: tabular-nums;
|
|
712
777
|
}
|
|
@@ -717,7 +782,7 @@
|
|
|
717
782
|
font-family: var(--font-mono);
|
|
718
783
|
font-size: var(--type-mono-caption-size, 0.75rem);
|
|
719
784
|
font-weight: var(--type-mono-caption-weight, 400);
|
|
720
|
-
line-height: round(nearest, calc(var(--type-mono-caption-leading, 1.4) * 1em), 0.25rem);
|
|
785
|
+
line-height: round(nearest, calc(var(--type-mono-caption-leading, 1.4) * var(--leading-scale, 1) * 1em), var(--baseline-step, 0.25rem));
|
|
721
786
|
letter-spacing: var(--type-mono-caption-tracking, 0);
|
|
722
787
|
font-variant-numeric: tabular-nums;
|
|
723
788
|
}
|
|
@@ -725,7 +790,7 @@
|
|
|
725
790
|
font-family: var(--font-mono);
|
|
726
791
|
font-size: var(--type-mono-sm-size, 0.6875rem);
|
|
727
792
|
font-weight: var(--type-mono-sm-weight, 500);
|
|
728
|
-
line-height: round(nearest, calc(var(--type-mono-sm-leading, 1.2) * 1em), 0.25rem);
|
|
793
|
+
line-height: round(nearest, calc(var(--type-mono-sm-leading, 1.2) * 1em), var(--baseline-step, 0.25rem));
|
|
729
794
|
letter-spacing: var(--type-mono-sm-tracking, 0.02em);
|
|
730
795
|
font-variant-numeric: tabular-nums;
|
|
731
796
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
-
import { T as ThemeManifest } from './_contract-
|
|
3
|
+
import { T as ThemeManifest } from './_contract-CkqXDVww.js';
|
|
4
4
|
|
|
5
5
|
declare const SABLE_THEME_ATTRIBUTE: "data-sable-theme";
|
|
6
6
|
declare const DEFAULT_THEME_ID: string;
|
package/dist/themes/_contract.js
CHANGED
|
@@ -32,25 +32,25 @@ var SEMANTIC_TOKENS = [
|
|
|
32
32
|
"destructive",
|
|
33
33
|
"destructive-foreground",
|
|
34
34
|
// Success — the positive-state counterpart to destructive (mirrors it 1:1).
|
|
35
|
-
// Backed by caribbean-green; a SEPARATE token from the `tone-
|
|
35
|
+
// Backed by caribbean-green; a SEPARATE token from the `tone-3`
|
|
36
36
|
// post-type so success-as-state can be retuned without moving the post tone.
|
|
37
37
|
"success",
|
|
38
38
|
"success-foreground",
|
|
39
39
|
// Tones (semantic — carry meaning, not decoration)
|
|
40
|
-
"tone-
|
|
41
|
-
"tone-
|
|
42
|
-
"tone-
|
|
40
|
+
"tone-3",
|
|
41
|
+
"tone-2",
|
|
42
|
+
"tone-1",
|
|
43
43
|
"tone-info",
|
|
44
44
|
"tone-warning",
|
|
45
45
|
"highlight",
|
|
46
46
|
// Tone ink — the legible text/icon color ON a tone fill. Theme-adaptive:
|
|
47
47
|
// because a tone fill flips lightness with the mode (dark 600/700 in light
|
|
48
48
|
// mode, lighter dark-tuned values in dark mode), its ink must flip too. These
|
|
49
|
-
// let a component write `text-tone-
|
|
49
|
+
// let a component write `text-tone-1-foreground` — an intent token with
|
|
50
50
|
// no palette name and no `dark:` variant — instead of naming palette steps.
|
|
51
|
-
"tone-
|
|
52
|
-
"tone-
|
|
53
|
-
"tone-
|
|
51
|
+
"tone-3-foreground",
|
|
52
|
+
"tone-2-foreground",
|
|
53
|
+
"tone-1-foreground",
|
|
54
54
|
"tone-info-foreground",
|
|
55
55
|
"tone-warning-foreground",
|
|
56
56
|
"highlight-foreground",
|
|
@@ -218,6 +218,7 @@ var TYPE_OVERLINE_TOKENS = [
|
|
|
218
218
|
"type-overline-tracking",
|
|
219
219
|
"type-overline-transform"
|
|
220
220
|
];
|
|
221
|
+
var RHYTHM_TOKENS = ["theme-leading-scale", "theme-baseline-split"];
|
|
221
222
|
var DENSITY_TOKENS = [
|
|
222
223
|
"control-xs",
|
|
223
224
|
"control-sm",
|
|
@@ -300,6 +301,16 @@ var ART_TOKENS = [
|
|
|
300
301
|
"art-softness",
|
|
301
302
|
"art-grain"
|
|
302
303
|
];
|
|
304
|
+
var PALETTE_TOKENS = ["palette-harmony"];
|
|
305
|
+
var PALETTE_SLOT_TOKENS = [
|
|
306
|
+
"palette-wash",
|
|
307
|
+
"palette-wash-strong",
|
|
308
|
+
"palette-edge",
|
|
309
|
+
"palette-dot",
|
|
310
|
+
"palette-solid",
|
|
311
|
+
"palette-text",
|
|
312
|
+
"palette-solid-ink"
|
|
313
|
+
];
|
|
303
314
|
var DERIVED_EDGE_TOKENS = ["border-floating"];
|
|
304
315
|
var TYPE_UI_TOKENS = [
|
|
305
316
|
"type-ui-md-size",
|
|
@@ -317,7 +328,10 @@ export {
|
|
|
317
328
|
DERIVED_EDGE_TOKENS,
|
|
318
329
|
LAYERING_TOKENS,
|
|
319
330
|
MOTION_TOKENS,
|
|
331
|
+
PALETTE_SLOT_TOKENS,
|
|
332
|
+
PALETTE_TOKENS,
|
|
320
333
|
RADIUS_TOKENS,
|
|
334
|
+
RHYTHM_TOKENS,
|
|
321
335
|
SEMANTIC_TOKENS,
|
|
322
336
|
TYPE_OVERLINE_TOKENS,
|
|
323
337
|
TYPE_REFINEMENT_TOKENS,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Mono Editorial — a Sable theme, developed from reference analysis.
|
|
3
3
|
|
|
4
4
|
Components must reference the SEMANTIC tokens (--background, --primary,
|
|
5
|
-
--tone-
|
|
5
|
+
--tone-1, …), never any palette ramp directly. See themes/_contract.ts.
|
|
6
6
|
========================================================================== */
|
|
7
7
|
|
|
8
8
|
[data-sable-theme="atelier"] {
|
|
@@ -115,17 +115,17 @@
|
|
|
115
115
|
--success: oklch(50% 0.10 173);
|
|
116
116
|
--success-text: oklch(50% 0.10 173);
|
|
117
117
|
--success-foreground: #ffffff;
|
|
118
|
-
--tone-
|
|
119
|
-
--tone-
|
|
120
|
-
--tone-
|
|
118
|
+
--tone-3: oklch(45% 0 0);
|
|
119
|
+
--tone-2: oklch(46% 0.11 300);
|
|
120
|
+
--tone-1: oklch(46% 0.09 173);
|
|
121
121
|
--tone-info: oklch(47% 0.10 250);
|
|
122
122
|
--tone-info-text: oklch(47% 0.10 250);
|
|
123
123
|
--tone-warning: oklch(52% 0.12 52);
|
|
124
124
|
--tone-warning-text: oklch(52% 0.12 52);
|
|
125
125
|
--highlight: oklch(93% 0 0);
|
|
126
|
-
--tone-
|
|
127
|
-
--tone-
|
|
128
|
-
--tone-
|
|
126
|
+
--tone-3-foreground: #ffffff;
|
|
127
|
+
--tone-2-foreground: #ffffff;
|
|
128
|
+
--tone-1-foreground: #ffffff;
|
|
129
129
|
--tone-info-foreground: #ffffff;
|
|
130
130
|
--tone-warning-foreground: #ffffff;
|
|
131
131
|
--highlight-foreground: #000000;
|
|
@@ -198,17 +198,17 @@
|
|
|
198
198
|
--success: oklch(74% 0.12 173);
|
|
199
199
|
--success-text: oklch(74% 0.12 173);
|
|
200
200
|
--success-foreground: oklch(13% 0 0);
|
|
201
|
-
--tone-
|
|
202
|
-
--tone-
|
|
203
|
-
--tone-
|
|
201
|
+
--tone-3: oklch(80% 0 0);
|
|
202
|
+
--tone-2: oklch(76% 0.12 300);
|
|
203
|
+
--tone-1: oklch(76% 0.10 173);
|
|
204
204
|
--tone-info: oklch(76% 0.10 250);
|
|
205
205
|
--tone-info-text: oklch(76% 0.10 250);
|
|
206
206
|
--tone-warning: oklch(80% 0.13 52);
|
|
207
207
|
--tone-warning-text: oklch(80% 0.13 52);
|
|
208
208
|
--highlight: oklch(26% 0 0);
|
|
209
|
-
--tone-
|
|
210
|
-
--tone-
|
|
211
|
-
--tone-
|
|
209
|
+
--tone-3-foreground: oklch(13% 0 0);
|
|
210
|
+
--tone-2-foreground: oklch(13% 0 0);
|
|
211
|
+
--tone-1-foreground: oklch(13% 0 0);
|
|
212
212
|
--tone-info-foreground: oklch(13% 0 0);
|
|
213
213
|
--tone-warning-foreground: oklch(13% 0 0);
|
|
214
214
|
--highlight-foreground: #ffffff;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Ember — a Sable theme, developed from reference analysis.
|
|
3
3
|
|
|
4
4
|
Components must reference the SEMANTIC tokens (--background, --primary,
|
|
5
|
-
--tone-
|
|
5
|
+
--tone-1, …), never any palette ramp directly. See themes/_contract.ts.
|
|
6
6
|
========================================================================== */
|
|
7
7
|
|
|
8
8
|
/* Scoped only — never a bare `:root`. The Sable theme alone owns `:root` as the
|
|
@@ -171,17 +171,17 @@
|
|
|
171
171
|
--success: oklch(43% 0.10 165);
|
|
172
172
|
--success-text: oklch(43% 0.10 165);
|
|
173
173
|
--success-foreground: oklch(100% 0 0);
|
|
174
|
-
--tone-
|
|
175
|
-
--tone-
|
|
176
|
-
--tone-
|
|
174
|
+
--tone-3: oklch(40% 0.07 130);
|
|
175
|
+
--tone-2: oklch(46% 0.14 285);
|
|
176
|
+
--tone-1: oklch(45% 0.15 309);
|
|
177
177
|
--tone-info: oklch(48% 0.13 250);
|
|
178
178
|
--tone-info-text: oklch(48% 0.13 250);
|
|
179
179
|
--tone-warning: oklch(50% 0.12 52);
|
|
180
180
|
--tone-warning-text: oklch(50% 0.12 52);
|
|
181
181
|
--highlight: oklch(58% 0.245 32.9);
|
|
182
|
-
--tone-
|
|
183
|
-
--tone-
|
|
184
|
-
--tone-
|
|
182
|
+
--tone-3-foreground: oklch(100% 0 0);
|
|
183
|
+
--tone-2-foreground: oklch(100% 0 0);
|
|
184
|
+
--tone-1-foreground: oklch(100% 0 0);
|
|
185
185
|
--tone-info-foreground: oklch(100% 0 0);
|
|
186
186
|
--tone-warning-foreground: oklch(100% 0 0);
|
|
187
187
|
--highlight-foreground: oklch(100% 0 0);
|
|
@@ -259,17 +259,17 @@
|
|
|
259
259
|
--success: oklch(74% 0.12 165);
|
|
260
260
|
--success-text: oklch(74% 0.12 165);
|
|
261
261
|
--success-foreground: oklch(14.1% 0.018 70.5);
|
|
262
|
-
--tone-
|
|
263
|
-
--tone-
|
|
264
|
-
--tone-
|
|
262
|
+
--tone-3: oklch(70% 0.09 130);
|
|
263
|
+
--tone-2: oklch(70% 0.12 285);
|
|
264
|
+
--tone-1: oklch(68% 0.14 309);
|
|
265
265
|
--tone-info: oklch(75.5% 0.11 250);
|
|
266
266
|
--tone-info-text: oklch(75.5% 0.11 250);
|
|
267
267
|
--tone-warning: oklch(78% 0.13 60);
|
|
268
268
|
--tone-warning-text: oklch(78% 0.13 60);
|
|
269
269
|
--highlight: oklch(58% 0.245 32.9);
|
|
270
|
-
--tone-
|
|
271
|
-
--tone-
|
|
272
|
-
--tone-
|
|
270
|
+
--tone-3-foreground: oklch(14.1% 0.018 70.5);
|
|
271
|
+
--tone-2-foreground: oklch(14.1% 0.018 70.5);
|
|
272
|
+
--tone-1-foreground: oklch(14.1% 0.018 70.5);
|
|
273
273
|
--tone-info-foreground: oklch(14.1% 0.018 70.5);
|
|
274
274
|
--tone-warning-foreground: oklch(14.1% 0.018 70.5);
|
|
275
275
|
--highlight-foreground: oklch(100% 0 0);
|
package/dist/themes/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as AnyThemeId, D as DEFAULT_THEME_ID, S as SABLE_COLOR_STORAGE_KEY, a as SABLE_THEME_ATTRIBUTE, b as SABLE_THEME_STORAGE_KEY, c as SableColorMode, d as SableThemeContextValue, e as SableThemePreference, f as SableThemeProvider, g as SableThemeProviderProps, T as ThemeId, h as applySableColorMode, i as applySableTheme, j as buildThemeManifestById, k as defaultThemeId, l as featuredThemeManifests, m as getThemeManifest, n as isKnownThemeId, o as isThemeId, t as themeIds, p as themeManifestById, q as themeManifests, u as useSableTheme } from '../theme-provider-
|
|
1
|
+
export { A as AnyThemeId, D as DEFAULT_THEME_ID, S as SABLE_COLOR_STORAGE_KEY, a as SABLE_THEME_ATTRIBUTE, b as SABLE_THEME_STORAGE_KEY, c as SableColorMode, d as SableThemeContextValue, e as SableThemePreference, f as SableThemeProvider, g as SableThemeProviderProps, T as ThemeId, h as applySableColorMode, i as applySableTheme, j as buildThemeManifestById, k as defaultThemeId, l as featuredThemeManifests, m as getThemeManifest, n as isKnownThemeId, o as isThemeId, t as themeIds, p as themeManifestById, q as themeManifests, u as useSableTheme } from '../theme-provider-CdSicAad.js';
|
|
2
2
|
export { atelierTheme } from './atelier/index.js';
|
|
3
3
|
export { default as emberTheme } from './ember/index.js';
|
|
4
4
|
export { default as meridianTheme } from './meridian/index.js';
|
|
@@ -7,4 +7,4 @@ export { default as prismTheme } from './prism/index.js';
|
|
|
7
7
|
export { default as sableTheme } from './sable/index.js';
|
|
8
8
|
export { default as verdantTheme } from './verdant/index.js';
|
|
9
9
|
import 'react';
|
|
10
|
-
import '../_contract-
|
|
10
|
+
import '../_contract-CkqXDVww.js';
|