@titan-design/react-ui 0.9.3 → 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/dist/bodymap.js +78 -24
- package/dist/bodymap.js.map +1 -1
- package/dist/bodymap.mjs +78 -24
- package/dist/bodymap.mjs.map +1 -1
- package/dist/index.d.mts +429 -11
- package/dist/index.d.ts +429 -11
- package/dist/index.js +2386 -885
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2306 -836
- package/dist/index.mjs.map +1 -1
- package/dist/{pages-DyEx-lBf.d.ts → pages-B1hqnGIC.d.ts} +149 -15
- package/dist/{pages-D7hOD4Vj.d.mts → pages-CvsFqNtx.d.mts} +149 -15
- package/dist/pages.d.mts +1 -1
- package/dist/pages.d.ts +1 -1
- package/dist/pages.js +1900 -1609
- package/dist/pages.js.map +1 -1
- package/dist/pages.mjs +1901 -1610
- package/dist/pages.mjs.map +1 -1
- package/dist/theme/index.d.mts +129 -34
- package/dist/theme/index.d.ts +129 -34
- package/dist/theme/index.js +95 -19
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/index.mjs +92 -20
- package/dist/theme/index.mjs.map +1 -1
- package/dist/theme/tokens-css.js +88 -24
- package/dist/theme/tokens-css.js.map +1 -1
- package/dist/theme/tokens-css.mjs +88 -24
- package/dist/theme/tokens-css.mjs.map +1 -1
- package/package.json +8 -3
- package/src/components/custom/Fatigue/DualGhostSpark.stories.tsx +258 -0
- package/src/components/custom/Fatigue/DualGhostSpark.test.tsx +138 -0
- package/src/components/custom/Fatigue/DualGhostSpark.tsx +208 -0
- package/src/components/custom/Fatigue/FatigueLights.stories.tsx +74 -0
- package/src/components/custom/Fatigue/FatigueLights.test.tsx +33 -0
- package/src/components/custom/Fatigue/FatigueLights.tsx +83 -0
- package/src/components/custom/Fatigue/GhostBand.test.tsx +235 -0
- package/src/components/custom/Fatigue/GhostBand.tsx +246 -0
- package/src/components/custom/Fatigue/GhostBloom.tsx +132 -0
- package/src/components/custom/Fatigue/GhostSpark.stories.tsx +175 -0
- package/src/components/custom/Fatigue/GhostSpark.test.tsx +45 -0
- package/src/components/custom/Fatigue/GhostSpark.tsx +126 -0
- package/src/components/custom/Fatigue/LiveFatigueCard.stories.tsx +126 -0
- package/src/components/custom/Fatigue/LiveFatigueCard.test.tsx +28 -0
- package/src/components/custom/Fatigue/LiveFatigueCard.tsx +86 -0
- package/src/components/custom/Fatigue/LiveFatiguePanel.stories.tsx +95 -0
- package/src/components/custom/Fatigue/LiveFatiguePanel.tsx +151 -0
- package/src/components/custom/Fatigue/README.md +93 -0
- package/src/components/custom/Fatigue/RomProgressionChart.stories.tsx +94 -0
- package/src/components/custom/Fatigue/RomProgressionChart.test.tsx +31 -0
- package/src/components/custom/Fatigue/RomProgressionChart.tsx +132 -0
- package/src/components/custom/Fatigue/SilverRedPalette.stories.tsx +226 -0
- package/src/components/custom/Fatigue/VelocityHero.stories.tsx +70 -0
- package/src/components/custom/Fatigue/VelocityHero.test.tsx +26 -0
- package/src/components/custom/Fatigue/VelocityHero.tsx +46 -0
- package/src/components/custom/Fatigue/VerdictHero.stories.tsx +59 -0
- package/src/components/custom/Fatigue/VerdictHero.test.tsx +49 -0
- package/src/components/custom/Fatigue/VerdictHero.tsx +79 -0
- package/src/components/custom/Fatigue/fatigue-mock.test.ts +59 -0
- package/src/components/custom/Fatigue/fatigue-mock.ts +268 -0
- package/src/components/custom/Fatigue/fatigue-model.ts +129 -0
- package/src/components/custom/Fatigue/fatigue-tokens.test.ts +70 -0
- package/src/components/custom/Fatigue/fatigue-tokens.ts +180 -0
- package/src/components/custom/Fatigue/index.ts +41 -0
- package/src/components/custom/Fatigue/tempo-pacing.test.ts +176 -0
- package/src/components/custom/Fatigue/tempo-pacing.ts +112 -0
- package/src/components/custom/Workout/BaseBadge.tsx +5 -5
- package/src/components/custom/Workout/DualVelocityStrip.test.tsx +685 -0
- package/src/components/custom/Workout/ExerciseCard.test.tsx +4 -4
- package/src/components/custom/Workout/ExerciseCard.tsx +3 -1
- package/src/components/custom/Workout/ExerciseDetailPage.tsx +7 -1
- package/src/components/custom/Workout/README.md +62 -16
- package/src/components/custom/Workout/RowInventory.stories.tsx +5 -2
- package/src/components/custom/Workout/S3FullRail.stories.tsx +13 -1
- package/src/components/custom/Workout/SegmentedBar.stories.tsx +3 -3
- package/src/components/custom/Workout/SessionHeader.tsx +2 -2
- package/src/components/custom/Workout/SessionRail.stories.tsx +4 -1
- package/src/components/custom/Workout/SessionRail.test.tsx +43 -0
- package/src/components/custom/Workout/SessionRail.tsx +55 -18
- package/src/components/custom/Workout/SetRow.test.tsx +6 -6
- package/src/components/custom/Workout/SetRow.tsx +9 -2
- package/src/components/custom/Workout/SupersetWrapper.stories.tsx +16 -25
- package/src/components/custom/Workout/SupersetWrapper.tsx +1 -1
- package/src/components/custom/Workout/TempoDisplay.tsx +3 -7
- package/src/components/custom/Workout/VelocityStrip.compact.stories.tsx +191 -0
- package/src/components/custom/Workout/VelocityStrip.dual.stories.tsx +186 -0
- package/src/components/custom/Workout/VelocityStrip.expanded.stories.tsx +296 -0
- package/src/components/custom/Workout/VelocityStrip.hero.stories.tsx +259 -0
- package/src/components/custom/Workout/VelocityStrip.stories.tsx +217 -250
- package/src/components/custom/Workout/VelocityStrip.test.tsx +196 -79
- package/src/components/custom/Workout/VelocityStrip.tsx +953 -609
- package/src/components/custom/Workout/VolumeLandmarkBar.stories.tsx +4 -1
- package/src/components/custom/Workout/WorkoutPill.tsx +2 -2
- package/src/components/custom/Workout/index.ts +3 -0
- package/src/components/custom/Workout/velocity-story-kit.tsx +438 -0
- package/src/components/custom/charts/SetBarChart.test.tsx +275 -0
- package/src/components/custom/charts/SetBarChart.tsx +651 -0
- package/src/components/custom/charts/live-rep-growth.ts +91 -0
- package/src/components/custom/index.ts +1 -0
- package/src/components/ui/surface/Surface.stories.tsx +195 -1
- package/src/components/ui/surface/Surface.test.tsx +148 -9
- package/src/components/ui/surface/Surface.tsx +37 -9
- package/src/components/ui/surface/SurfaceContext.ts +48 -8
- package/src/components/ui/surface/index.ts +1 -0
- package/src/components/ui/surface/surface.contract.test.ts +283 -0
- package/src/test/raw-color-patterns.test.ts +71 -0
- package/src/theme/ColorPalettes.stories.tsx +871 -0
- package/src/theme/ColorPrimitives.stories.tsx +300 -0
- package/src/theme/bar-paper.ts +59 -0
- package/src/theme/color-stories.coverage.test.ts +130 -0
- package/src/theme/color-story-kit.tsx +170 -0
- package/src/theme/config.ts +12 -0
- package/src/theme/elevation.ts +90 -67
- package/src/theme/global.css +35 -9
- package/src/theme/tokens/primitives.ts +40 -0
- package/src/theme/tokens/semantic.ts +63 -14
- package/tailwind.config.js +8 -0
- package/src/components/custom/Workout/VelocityStrip.modalities.stories.tsx +0 -254
- package/src/components/custom/Workout/VelocityStrip.responsive.stories.tsx +0 -145
- package/src/theme/ColorSystem.stories.tsx +0 -323
- package/src/theme/Colors.stories.tsx +0 -323
package/dist/theme/index.d.mts
CHANGED
|
@@ -93,9 +93,11 @@ declare const semanticColorsLight: {
|
|
|
93
93
|
readonly 'surface-raised': "#F3F4F6";
|
|
94
94
|
readonly 'surface-overlay': "#FFFFFF";
|
|
95
95
|
readonly 'surface-input': "#FAFAFA";
|
|
96
|
+
readonly 'surface-inset': "#D1D5DB";
|
|
96
97
|
readonly 'background-base': "#EBEBEB";
|
|
97
98
|
readonly 'background-default': "#FFFFFF";
|
|
98
99
|
readonly 'background-subtle': "#FAFAFA";
|
|
100
|
+
readonly 'background-frame': "#9CA3AF";
|
|
99
101
|
readonly 'border-default': "#E8E9EB";
|
|
100
102
|
readonly 'border-subtle': "#F3F4F6";
|
|
101
103
|
readonly 'border-strong': "#D1D5DB";
|
|
@@ -105,6 +107,9 @@ declare const semanticColorsLight: {
|
|
|
105
107
|
readonly 'border-input-hover': "#9CA3AF";
|
|
106
108
|
readonly 'border-input-focus': "#5048E5";
|
|
107
109
|
readonly 'border-input-error': "#D14343";
|
|
110
|
+
readonly 'hairline-subtle': "rgba(0, 0, 0, 0.06)";
|
|
111
|
+
readonly 'hairline-default': "rgba(0, 0, 0, 0.09)";
|
|
112
|
+
readonly 'hairline-strong': "rgba(0, 0, 0, 0.14)";
|
|
108
113
|
readonly 'interactive-hover': "rgba(55, 65, 81, 0.04)";
|
|
109
114
|
readonly 'interactive-focus': "rgba(55, 65, 81, 0.12)";
|
|
110
115
|
readonly 'interactive-active': "rgba(55, 65, 81, 0.16)";
|
|
@@ -185,14 +190,16 @@ declare const semanticColorsDark: {
|
|
|
185
190
|
readonly 'text-inverse': "#111827";
|
|
186
191
|
readonly 'text-link': "#828DF8";
|
|
187
192
|
readonly 'text-link-hover': "#60A5FA";
|
|
188
|
-
readonly 'surface-base': "#
|
|
189
|
-
readonly 'surface-elevated': "#
|
|
190
|
-
readonly 'surface-raised': "#
|
|
191
|
-
readonly 'surface-overlay': "#
|
|
192
|
-
readonly 'surface-input': "#
|
|
193
|
-
readonly '
|
|
194
|
-
readonly 'background-
|
|
195
|
-
readonly 'background-
|
|
193
|
+
readonly 'surface-base': "#252321";
|
|
194
|
+
readonly 'surface-elevated': "#2C2A28";
|
|
195
|
+
readonly 'surface-raised': "#31302F";
|
|
196
|
+
readonly 'surface-overlay': "#373635";
|
|
197
|
+
readonly 'surface-input': "#2C2A28";
|
|
198
|
+
readonly 'surface-inset': "#13100D";
|
|
199
|
+
readonly 'background-base': "#1C1916";
|
|
200
|
+
readonly 'background-default': "#252321";
|
|
201
|
+
readonly 'background-subtle': "#2C2A28";
|
|
202
|
+
readonly 'background-frame': "#100D0A";
|
|
196
203
|
readonly 'border-default': "#1F1F1F";
|
|
197
204
|
readonly 'border-subtle': "#1C1C1C";
|
|
198
205
|
readonly 'border-strong': "#2C2C2C";
|
|
@@ -202,6 +209,9 @@ declare const semanticColorsDark: {
|
|
|
202
209
|
readonly 'border-input-hover': "#6B7280";
|
|
203
210
|
readonly 'border-input-focus': "#828DF8";
|
|
204
211
|
readonly 'border-input-error': "#EF4444";
|
|
212
|
+
readonly 'hairline-subtle': "rgba(255, 255, 255, 0.06)";
|
|
213
|
+
readonly 'hairline-default': "rgba(255, 255, 255, 0.09)";
|
|
214
|
+
readonly 'hairline-strong': "rgba(255, 255, 255, 0.14)";
|
|
205
215
|
readonly 'interactive-hover': "rgba(255, 255, 255, 0.04)";
|
|
206
216
|
readonly 'interactive-focus': "rgba(255, 255, 255, 0.12)";
|
|
207
217
|
readonly 'interactive-active': "rgba(255, 255, 255, 0.16)";
|
|
@@ -387,9 +397,11 @@ declare function getSemanticColors(mode: ThemeMode): {
|
|
|
387
397
|
readonly 'surface-raised': "#F3F4F6";
|
|
388
398
|
readonly 'surface-overlay': "#FFFFFF";
|
|
389
399
|
readonly 'surface-input': "#FAFAFA";
|
|
400
|
+
readonly 'surface-inset': "#D1D5DB";
|
|
390
401
|
readonly 'background-base': "#EBEBEB";
|
|
391
402
|
readonly 'background-default': "#FFFFFF";
|
|
392
403
|
readonly 'background-subtle': "#FAFAFA";
|
|
404
|
+
readonly 'background-frame': "#9CA3AF";
|
|
393
405
|
readonly 'border-default': "#E8E9EB";
|
|
394
406
|
readonly 'border-subtle': "#F3F4F6";
|
|
395
407
|
readonly 'border-strong': "#D1D5DB";
|
|
@@ -399,6 +411,9 @@ declare function getSemanticColors(mode: ThemeMode): {
|
|
|
399
411
|
readonly 'border-input-hover': "#9CA3AF";
|
|
400
412
|
readonly 'border-input-focus': "#5048E5";
|
|
401
413
|
readonly 'border-input-error': "#D14343";
|
|
414
|
+
readonly 'hairline-subtle': "rgba(0, 0, 0, 0.06)";
|
|
415
|
+
readonly 'hairline-default': "rgba(0, 0, 0, 0.09)";
|
|
416
|
+
readonly 'hairline-strong': "rgba(0, 0, 0, 0.14)";
|
|
402
417
|
readonly 'interactive-hover': "rgba(55, 65, 81, 0.04)";
|
|
403
418
|
readonly 'interactive-focus': "rgba(55, 65, 81, 0.12)";
|
|
404
419
|
readonly 'interactive-active': "rgba(55, 65, 81, 0.16)";
|
|
@@ -478,14 +493,16 @@ declare function getSemanticColors(mode: ThemeMode): {
|
|
|
478
493
|
readonly 'text-inverse': "#111827";
|
|
479
494
|
readonly 'text-link': "#828DF8";
|
|
480
495
|
readonly 'text-link-hover': "#60A5FA";
|
|
481
|
-
readonly 'surface-base': "#
|
|
482
|
-
readonly 'surface-elevated': "#
|
|
483
|
-
readonly 'surface-raised': "#
|
|
484
|
-
readonly 'surface-overlay': "#
|
|
485
|
-
readonly 'surface-input': "#
|
|
486
|
-
readonly '
|
|
487
|
-
readonly 'background-
|
|
488
|
-
readonly 'background-
|
|
496
|
+
readonly 'surface-base': "#252321";
|
|
497
|
+
readonly 'surface-elevated': "#2C2A28";
|
|
498
|
+
readonly 'surface-raised': "#31302F";
|
|
499
|
+
readonly 'surface-overlay': "#373635";
|
|
500
|
+
readonly 'surface-input': "#2C2A28";
|
|
501
|
+
readonly 'surface-inset': "#13100D";
|
|
502
|
+
readonly 'background-base': "#1C1916";
|
|
503
|
+
readonly 'background-default': "#252321";
|
|
504
|
+
readonly 'background-subtle': "#2C2A28";
|
|
505
|
+
readonly 'background-frame': "#100D0A";
|
|
489
506
|
readonly 'border-default': "#1F1F1F";
|
|
490
507
|
readonly 'border-subtle': "#1C1C1C";
|
|
491
508
|
readonly 'border-strong': "#2C2C2C";
|
|
@@ -495,6 +512,9 @@ declare function getSemanticColors(mode: ThemeMode): {
|
|
|
495
512
|
readonly 'border-input-hover': "#6B7280";
|
|
496
513
|
readonly 'border-input-focus': "#828DF8";
|
|
497
514
|
readonly 'border-input-error': "#EF4444";
|
|
515
|
+
readonly 'hairline-subtle': "rgba(255, 255, 255, 0.06)";
|
|
516
|
+
readonly 'hairline-default': "rgba(255, 255, 255, 0.09)";
|
|
517
|
+
readonly 'hairline-strong': "rgba(255, 255, 255, 0.14)";
|
|
498
518
|
readonly 'interactive-hover': "rgba(255, 255, 255, 0.04)";
|
|
499
519
|
readonly 'interactive-focus': "rgba(255, 255, 255, 0.12)";
|
|
500
520
|
readonly 'interactive-active': "rgba(255, 255, 255, 0.16)";
|
|
@@ -568,6 +588,23 @@ declare function getElevationSurface(baseColor: string, level: ElevationLevel, t
|
|
|
568
588
|
* @returns ViewStyle with shadow properties
|
|
569
589
|
*/
|
|
570
590
|
declare function getElevationShadow(baseColor: string, level: ElevationLevel, theme: 'light' | 'dark', isHovered?: boolean): ViewStyle;
|
|
591
|
+
/**
|
|
592
|
+
* Elevation level backing a `<Surface pressed>` recess: the shallow `inset`
|
|
593
|
+
* (-1) step. Pressed exposes ONE level of depth — pressed-2 is intentionally
|
|
594
|
+
* not surfaced (the deeper `-2` deep-inset stays available to `elevation`).
|
|
595
|
+
*/
|
|
596
|
+
declare const PRESSED_ELEVATION_LEVEL: ElevationLevel;
|
|
597
|
+
/**
|
|
598
|
+
* Inner-shadow recess for a pressed (sunken) surface, tuned to the well's own
|
|
599
|
+
* fill colour so the rim/shadow tints track the darker fill. Composes WITH the
|
|
600
|
+
* darker pressed fill: on web it adds an inset boxShadow; on the native path
|
|
601
|
+
* (no inset-shadow support) it's a no-op and the recess reads via the fill
|
|
602
|
+
* alone — so a pressed surface stays legibly sunken with or without the shadow.
|
|
603
|
+
*
|
|
604
|
+
* @param fillColor - The pressed surface's own fill (one ramp step down).
|
|
605
|
+
* @param theme - Current theme ('light' or 'dark').
|
|
606
|
+
*/
|
|
607
|
+
declare function getPressedRecessShadow(fillColor: string, theme: 'light' | 'dark'): ViewStyle;
|
|
571
608
|
/**
|
|
572
609
|
* Get base surface color from theme.
|
|
573
610
|
* This is the foundation color that all elevations are calculated from.
|
|
@@ -579,7 +616,7 @@ declare function getElevationShadow(baseColor: string, level: ElevationLevel, th
|
|
|
579
616
|
* - This allows raised elevations to be lighter (closer to white)
|
|
580
617
|
*
|
|
581
618
|
* **Dark Mode**: Need lighter base to allow sufficient lightening
|
|
582
|
-
* - Use
|
|
619
|
+
* - Use `surface-elevated` (#2A2827, TD-surface-tokens ramp) - allows further lightening
|
|
583
620
|
*
|
|
584
621
|
* Can be overridden to use custom base colors for special cases.
|
|
585
622
|
*/
|
|
@@ -702,6 +739,44 @@ declare const primitiveColors: {
|
|
|
702
739
|
readonly black: "#000000";
|
|
703
740
|
readonly transparent: "transparent";
|
|
704
741
|
};
|
|
742
|
+
/**
|
|
743
|
+
* Surface ramp — dark mode (TD-surface-tokens, S-1, re-spaced S-3)
|
|
744
|
+
*
|
|
745
|
+
* Warm-tapered, DERIVED ramp — NOT hand-picked. Shipped verbatim as the output of
|
|
746
|
+
* `deriveSurfaceRamp(shellL=9, steps=[4.5,3.5,3,2.5], rbShadow=6, rbHilite=1.5)`
|
|
747
|
+
* (see `packages/ui/src/components/ui/surface/surface-lab-shared.tsx` on branch
|
|
748
|
+
* `feat/TD-unified-lab`, story `Lab/Surface Exploration -> Surface Ramp System`
|
|
749
|
+
* — that lab default is `[4.5,2.5,2,1.5]` as of this writing and should be
|
|
750
|
+
* updated to match on that branch, follow-up, not done here).
|
|
751
|
+
* Lightness is CIELAB L* off the shell, with DIMINISHING steps (4.5/3.5/3/2.5) —
|
|
752
|
+
* the frame->content jump is biggest, each plane above adds less, but the top
|
|
753
|
+
* three planes (elevated/raised/overlay) were re-spaced WIDER (S-3) than the
|
|
754
|
+
* original 2.5/2/1.5 taper so they read as distinct planes without leaning on
|
|
755
|
+
* the hairline alone. `background`/`base`/`inset` are unchanged by the re-space.
|
|
756
|
+
* Warmth (R-B) tapers 6 -> 1.5 from frame to hero so bright content planes stay
|
|
757
|
+
* near-neutral.
|
|
758
|
+
* Kept separate from the `charcoal` scale above (which several existing
|
|
759
|
+
* components reference directly for unrelated shadow/track tints) so this
|
|
760
|
+
* change is additive and doesn't ripple into those consumers.
|
|
761
|
+
* See coordination/design-explorations/surface-system-north-star.md.
|
|
762
|
+
*/
|
|
763
|
+
declare const surfaceRampDark: {
|
|
764
|
+
readonly inset: "#13100D";
|
|
765
|
+
readonly background: "#1C1916";
|
|
766
|
+
readonly base: "#252321";
|
|
767
|
+
readonly elevated: "#2C2A28";
|
|
768
|
+
readonly raised: "#31302F";
|
|
769
|
+
readonly overlay: "#373635";
|
|
770
|
+
};
|
|
771
|
+
/**
|
|
772
|
+
* Frame/bezel primitive — dark mode (TD-surface-tokens, S-3)
|
|
773
|
+
*
|
|
774
|
+
* The chrome that "exits the content ramp" entirely: the top bar + side nav
|
|
775
|
+
* shell. Sits ONE STEP BELOW `surfaceRampDark.background` (L*9), darker even
|
|
776
|
+
* than `surfaceRampDark.inset` (L*4.5) — it isn't a plane IN the ramp, it's
|
|
777
|
+
* the bezel the ramp sits inside. Literal, not `deriveSurfaceRamp()` output.
|
|
778
|
+
*/
|
|
779
|
+
declare const backgroundFrameDark = "#100D0A";
|
|
705
780
|
/**
|
|
706
781
|
* Derived tonal ramps (TD-05.09 color foundations)
|
|
707
782
|
*
|
|
@@ -1058,9 +1133,11 @@ declare const lightThemeCSSVars: {
|
|
|
1058
1133
|
readonly '--color-surface-base': "#FFFFFF";
|
|
1059
1134
|
readonly '--color-surface-elevated': "#FAFAFA";
|
|
1060
1135
|
readonly '--color-surface-raised': "#F3F4F6";
|
|
1136
|
+
readonly '--color-surface-inset': "#D1D5DB";
|
|
1061
1137
|
readonly '--color-background-base': "#EBEBEB";
|
|
1062
1138
|
readonly '--color-background-default': "#FFFFFF";
|
|
1063
1139
|
readonly '--color-background-subtle': "#FAFAFA";
|
|
1140
|
+
readonly '--color-background-frame': "#9CA3AF";
|
|
1064
1141
|
readonly '--color-border-default': "#E8E9EB";
|
|
1065
1142
|
readonly '--color-border-subtle': "#F3F4F6";
|
|
1066
1143
|
readonly '--color-border-strong': "#D1D5DB";
|
|
@@ -1117,6 +1194,9 @@ declare const lightThemeCSSVars: {
|
|
|
1117
1194
|
readonly '--color-border-input-hover': "#9CA3AF";
|
|
1118
1195
|
readonly '--color-border-input-focus': "#5048E5";
|
|
1119
1196
|
readonly '--color-border-input-error': "#D14343";
|
|
1197
|
+
readonly '--color-hairline-subtle': "rgba(0, 0, 0, 0.06)";
|
|
1198
|
+
readonly '--color-hairline-default': "rgba(0, 0, 0, 0.09)";
|
|
1199
|
+
readonly '--color-hairline-strong': "rgba(0, 0, 0, 0.14)";
|
|
1120
1200
|
readonly '--color-interactive-disabled-text': "rgba(55, 65, 81, 0.26)";
|
|
1121
1201
|
readonly '--color-avatar-background': "#6B7280";
|
|
1122
1202
|
readonly '--color-avatar-text': "#FFFFFF";
|
|
@@ -1170,12 +1250,14 @@ declare const darkThemeCSSVars: {
|
|
|
1170
1250
|
readonly '--color-text-disabled': "rgba(255, 255, 255, 0.38)";
|
|
1171
1251
|
readonly '--color-text-inverse': "#111827";
|
|
1172
1252
|
readonly '--color-text-link': "#828DF8";
|
|
1173
|
-
readonly '--color-surface-base': "#
|
|
1174
|
-
readonly '--color-surface-elevated': "#
|
|
1175
|
-
readonly '--color-surface-raised': "#
|
|
1176
|
-
readonly '--color-
|
|
1177
|
-
readonly '--color-background-
|
|
1178
|
-
readonly '--color-background-
|
|
1253
|
+
readonly '--color-surface-base': "#252321";
|
|
1254
|
+
readonly '--color-surface-elevated': "#2C2A28";
|
|
1255
|
+
readonly '--color-surface-raised': "#31302F";
|
|
1256
|
+
readonly '--color-surface-inset': "#13100D";
|
|
1257
|
+
readonly '--color-background-base': "#1C1916";
|
|
1258
|
+
readonly '--color-background-default': "#252321";
|
|
1259
|
+
readonly '--color-background-subtle': "#2C2A28";
|
|
1260
|
+
readonly '--color-background-frame': "#100D0A";
|
|
1179
1261
|
readonly '--color-border-default': "#1F1F1F";
|
|
1180
1262
|
readonly '--color-border-subtle': "#1C1C1C";
|
|
1181
1263
|
readonly '--color-border-strong': "#2C2C2C";
|
|
@@ -1226,12 +1308,15 @@ declare const darkThemeCSSVars: {
|
|
|
1226
1308
|
readonly '--color-data-9': "#CAACCB";
|
|
1227
1309
|
readonly '--color-data-10': "#EE8026";
|
|
1228
1310
|
readonly '--color-text-link-hover': "#60A5FA";
|
|
1229
|
-
readonly '--color-surface-overlay': "#
|
|
1230
|
-
readonly '--color-surface-input': "#
|
|
1311
|
+
readonly '--color-surface-overlay': "#373635";
|
|
1312
|
+
readonly '--color-surface-input': "#2C2A28";
|
|
1231
1313
|
readonly '--color-border-input': "#4B5563";
|
|
1232
1314
|
readonly '--color-border-input-hover': "#6B7280";
|
|
1233
1315
|
readonly '--color-border-input-focus': "#828DF8";
|
|
1234
1316
|
readonly '--color-border-input-error': "#EF4444";
|
|
1317
|
+
readonly '--color-hairline-subtle': "rgba(255, 255, 255, 0.06)";
|
|
1318
|
+
readonly '--color-hairline-default': "rgba(255, 255, 255, 0.09)";
|
|
1319
|
+
readonly '--color-hairline-strong': "rgba(255, 255, 255, 0.14)";
|
|
1235
1320
|
readonly '--color-interactive-disabled-text': "rgba(255, 255, 255, 0.26)";
|
|
1236
1321
|
readonly '--color-avatar-background': "#4B5563";
|
|
1237
1322
|
readonly '--color-avatar-text': "#FFFFFF";
|
|
@@ -1288,9 +1373,11 @@ declare function getThemeCSSVars(mode: ThemeMode): {
|
|
|
1288
1373
|
readonly '--color-surface-base': "#FFFFFF";
|
|
1289
1374
|
readonly '--color-surface-elevated': "#FAFAFA";
|
|
1290
1375
|
readonly '--color-surface-raised': "#F3F4F6";
|
|
1376
|
+
readonly '--color-surface-inset': "#D1D5DB";
|
|
1291
1377
|
readonly '--color-background-base': "#EBEBEB";
|
|
1292
1378
|
readonly '--color-background-default': "#FFFFFF";
|
|
1293
1379
|
readonly '--color-background-subtle': "#FAFAFA";
|
|
1380
|
+
readonly '--color-background-frame': "#9CA3AF";
|
|
1294
1381
|
readonly '--color-border-default': "#E8E9EB";
|
|
1295
1382
|
readonly '--color-border-subtle': "#F3F4F6";
|
|
1296
1383
|
readonly '--color-border-strong': "#D1D5DB";
|
|
@@ -1347,6 +1434,9 @@ declare function getThemeCSSVars(mode: ThemeMode): {
|
|
|
1347
1434
|
readonly '--color-border-input-hover': "#9CA3AF";
|
|
1348
1435
|
readonly '--color-border-input-focus': "#5048E5";
|
|
1349
1436
|
readonly '--color-border-input-error': "#D14343";
|
|
1437
|
+
readonly '--color-hairline-subtle': "rgba(0, 0, 0, 0.06)";
|
|
1438
|
+
readonly '--color-hairline-default': "rgba(0, 0, 0, 0.09)";
|
|
1439
|
+
readonly '--color-hairline-strong': "rgba(0, 0, 0, 0.14)";
|
|
1350
1440
|
readonly '--color-interactive-disabled-text': "rgba(55, 65, 81, 0.26)";
|
|
1351
1441
|
readonly '--color-avatar-background': "#6B7280";
|
|
1352
1442
|
readonly '--color-avatar-text': "#FFFFFF";
|
|
@@ -1399,12 +1489,14 @@ declare function getThemeCSSVars(mode: ThemeMode): {
|
|
|
1399
1489
|
readonly '--color-text-disabled': "rgba(255, 255, 255, 0.38)";
|
|
1400
1490
|
readonly '--color-text-inverse': "#111827";
|
|
1401
1491
|
readonly '--color-text-link': "#828DF8";
|
|
1402
|
-
readonly '--color-surface-base': "#
|
|
1403
|
-
readonly '--color-surface-elevated': "#
|
|
1404
|
-
readonly '--color-surface-raised': "#
|
|
1405
|
-
readonly '--color-
|
|
1406
|
-
readonly '--color-background-
|
|
1407
|
-
readonly '--color-background-
|
|
1492
|
+
readonly '--color-surface-base': "#252321";
|
|
1493
|
+
readonly '--color-surface-elevated': "#2C2A28";
|
|
1494
|
+
readonly '--color-surface-raised': "#31302F";
|
|
1495
|
+
readonly '--color-surface-inset': "#13100D";
|
|
1496
|
+
readonly '--color-background-base': "#1C1916";
|
|
1497
|
+
readonly '--color-background-default': "#252321";
|
|
1498
|
+
readonly '--color-background-subtle': "#2C2A28";
|
|
1499
|
+
readonly '--color-background-frame': "#100D0A";
|
|
1408
1500
|
readonly '--color-border-default': "#1F1F1F";
|
|
1409
1501
|
readonly '--color-border-subtle': "#1C1C1C";
|
|
1410
1502
|
readonly '--color-border-strong': "#2C2C2C";
|
|
@@ -1455,12 +1547,15 @@ declare function getThemeCSSVars(mode: ThemeMode): {
|
|
|
1455
1547
|
readonly '--color-data-9': "#CAACCB";
|
|
1456
1548
|
readonly '--color-data-10': "#EE8026";
|
|
1457
1549
|
readonly '--color-text-link-hover': "#60A5FA";
|
|
1458
|
-
readonly '--color-surface-overlay': "#
|
|
1459
|
-
readonly '--color-surface-input': "#
|
|
1550
|
+
readonly '--color-surface-overlay': "#373635";
|
|
1551
|
+
readonly '--color-surface-input': "#2C2A28";
|
|
1460
1552
|
readonly '--color-border-input': "#4B5563";
|
|
1461
1553
|
readonly '--color-border-input-hover': "#6B7280";
|
|
1462
1554
|
readonly '--color-border-input-focus': "#828DF8";
|
|
1463
1555
|
readonly '--color-border-input-error': "#EF4444";
|
|
1556
|
+
readonly '--color-hairline-subtle': "rgba(255, 255, 255, 0.06)";
|
|
1557
|
+
readonly '--color-hairline-default': "rgba(255, 255, 255, 0.09)";
|
|
1558
|
+
readonly '--color-hairline-strong': "rgba(255, 255, 255, 0.14)";
|
|
1464
1559
|
readonly '--color-interactive-disabled-text': "rgba(255, 255, 255, 0.26)";
|
|
1465
1560
|
readonly '--color-avatar-background': "#4B5563";
|
|
1466
1561
|
readonly '--color-avatar-text': "#FFFFFF";
|
|
@@ -1927,4 +2022,4 @@ declare const defaultPreset: ThemePreset;
|
|
|
1927
2022
|
*/
|
|
1928
2023
|
declare const audiobookPreset: ThemePreset;
|
|
1929
2024
|
|
|
1930
|
-
export { CATEGORICAL_CVD_SAFE_MAX, type CategoricalVariant, type ComponentType, type CssPropertyEntry, type CssPropertyManifest, type ElevationConfig, type ElevationLevel, type GlowIntensity, type GradientStyle, type ManifestValidationResult, type ShadowIntensity, type ShadowSurface, type ThemeConfig, type ThemeMode, type ThemePreset, type ThemePresetColors, type ThemePresetFonts, type ThemePresetRadii, type ThemePresetShadows, ThemeProvider, type ThemeProviderMode, type ThemeProviderProps, type VariantAxes, type VariantOverride, applyThemePreset, audiobookPreset, bestTextColor, buttonSizes, categoricalPalette, componentElevationRanges, createFlatShadow, createPressedHoverShadow, createPressedShadow, createRaisedHoverShadow, createRaisedShadow, darkThemeCSSVars, darken, defaultPreset, discreteRainbow, divergingScale, elevationSystem, getBaseSurfaceColor, getCategoricalColor, getDiscreteRainbowColor, getElevationConfig, getElevationShadow, getElevationSurface, getGlowShadow, getHoverColors, getSemanticColors, getThemeCSSVars, getValidatedElevation, gluestackConfig, hexToRgb, hsvToRgb, isCssPropertyManifest, isDark, lightThemeCSSVars, lighten, linearGradient, neumorphicShadows, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveRamps, primitiveShadows, primitiveSpacing, primitiveTypography, primitiveZIndex, resolveColor, rgbToHex, rgbToHsv, semanticColorsDark, semanticColorsLight, semanticTypography, sequentialEffort, shadowColors, surfaceGradient, validateCssPropertyManifest };
|
|
2025
|
+
export { CATEGORICAL_CVD_SAFE_MAX, type CategoricalVariant, type ComponentType, type CssPropertyEntry, type CssPropertyManifest, type ElevationConfig, type ElevationLevel, type GlowIntensity, type GradientStyle, type ManifestValidationResult, PRESSED_ELEVATION_LEVEL, type ShadowIntensity, type ShadowSurface, type ThemeConfig, type ThemeMode, type ThemePreset, type ThemePresetColors, type ThemePresetFonts, type ThemePresetRadii, type ThemePresetShadows, ThemeProvider, type ThemeProviderMode, type ThemeProviderProps, type VariantAxes, type VariantOverride, applyThemePreset, audiobookPreset, backgroundFrameDark, bestTextColor, buttonSizes, categoricalPalette, componentElevationRanges, createFlatShadow, createPressedHoverShadow, createPressedShadow, createRaisedHoverShadow, createRaisedShadow, darkThemeCSSVars, darken, defaultPreset, discreteRainbow, divergingScale, elevationSystem, getBaseSurfaceColor, getCategoricalColor, getDiscreteRainbowColor, getElevationConfig, getElevationShadow, getElevationSurface, getGlowShadow, getHoverColors, getPressedRecessShadow, getSemanticColors, getThemeCSSVars, getValidatedElevation, gluestackConfig, hexToRgb, hsvToRgb, isCssPropertyManifest, isDark, lightThemeCSSVars, lighten, linearGradient, neumorphicShadows, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveRamps, primitiveShadows, primitiveSpacing, primitiveTypography, primitiveZIndex, resolveColor, rgbToHex, rgbToHsv, semanticColorsDark, semanticColorsLight, semanticTypography, sequentialEffort, shadowColors, surfaceGradient, surfaceRampDark, validateCssPropertyManifest };
|
package/dist/theme/index.d.ts
CHANGED
|
@@ -93,9 +93,11 @@ declare const semanticColorsLight: {
|
|
|
93
93
|
readonly 'surface-raised': "#F3F4F6";
|
|
94
94
|
readonly 'surface-overlay': "#FFFFFF";
|
|
95
95
|
readonly 'surface-input': "#FAFAFA";
|
|
96
|
+
readonly 'surface-inset': "#D1D5DB";
|
|
96
97
|
readonly 'background-base': "#EBEBEB";
|
|
97
98
|
readonly 'background-default': "#FFFFFF";
|
|
98
99
|
readonly 'background-subtle': "#FAFAFA";
|
|
100
|
+
readonly 'background-frame': "#9CA3AF";
|
|
99
101
|
readonly 'border-default': "#E8E9EB";
|
|
100
102
|
readonly 'border-subtle': "#F3F4F6";
|
|
101
103
|
readonly 'border-strong': "#D1D5DB";
|
|
@@ -105,6 +107,9 @@ declare const semanticColorsLight: {
|
|
|
105
107
|
readonly 'border-input-hover': "#9CA3AF";
|
|
106
108
|
readonly 'border-input-focus': "#5048E5";
|
|
107
109
|
readonly 'border-input-error': "#D14343";
|
|
110
|
+
readonly 'hairline-subtle': "rgba(0, 0, 0, 0.06)";
|
|
111
|
+
readonly 'hairline-default': "rgba(0, 0, 0, 0.09)";
|
|
112
|
+
readonly 'hairline-strong': "rgba(0, 0, 0, 0.14)";
|
|
108
113
|
readonly 'interactive-hover': "rgba(55, 65, 81, 0.04)";
|
|
109
114
|
readonly 'interactive-focus': "rgba(55, 65, 81, 0.12)";
|
|
110
115
|
readonly 'interactive-active': "rgba(55, 65, 81, 0.16)";
|
|
@@ -185,14 +190,16 @@ declare const semanticColorsDark: {
|
|
|
185
190
|
readonly 'text-inverse': "#111827";
|
|
186
191
|
readonly 'text-link': "#828DF8";
|
|
187
192
|
readonly 'text-link-hover': "#60A5FA";
|
|
188
|
-
readonly 'surface-base': "#
|
|
189
|
-
readonly 'surface-elevated': "#
|
|
190
|
-
readonly 'surface-raised': "#
|
|
191
|
-
readonly 'surface-overlay': "#
|
|
192
|
-
readonly 'surface-input': "#
|
|
193
|
-
readonly '
|
|
194
|
-
readonly 'background-
|
|
195
|
-
readonly 'background-
|
|
193
|
+
readonly 'surface-base': "#252321";
|
|
194
|
+
readonly 'surface-elevated': "#2C2A28";
|
|
195
|
+
readonly 'surface-raised': "#31302F";
|
|
196
|
+
readonly 'surface-overlay': "#373635";
|
|
197
|
+
readonly 'surface-input': "#2C2A28";
|
|
198
|
+
readonly 'surface-inset': "#13100D";
|
|
199
|
+
readonly 'background-base': "#1C1916";
|
|
200
|
+
readonly 'background-default': "#252321";
|
|
201
|
+
readonly 'background-subtle': "#2C2A28";
|
|
202
|
+
readonly 'background-frame': "#100D0A";
|
|
196
203
|
readonly 'border-default': "#1F1F1F";
|
|
197
204
|
readonly 'border-subtle': "#1C1C1C";
|
|
198
205
|
readonly 'border-strong': "#2C2C2C";
|
|
@@ -202,6 +209,9 @@ declare const semanticColorsDark: {
|
|
|
202
209
|
readonly 'border-input-hover': "#6B7280";
|
|
203
210
|
readonly 'border-input-focus': "#828DF8";
|
|
204
211
|
readonly 'border-input-error': "#EF4444";
|
|
212
|
+
readonly 'hairline-subtle': "rgba(255, 255, 255, 0.06)";
|
|
213
|
+
readonly 'hairline-default': "rgba(255, 255, 255, 0.09)";
|
|
214
|
+
readonly 'hairline-strong': "rgba(255, 255, 255, 0.14)";
|
|
205
215
|
readonly 'interactive-hover': "rgba(255, 255, 255, 0.04)";
|
|
206
216
|
readonly 'interactive-focus': "rgba(255, 255, 255, 0.12)";
|
|
207
217
|
readonly 'interactive-active': "rgba(255, 255, 255, 0.16)";
|
|
@@ -387,9 +397,11 @@ declare function getSemanticColors(mode: ThemeMode): {
|
|
|
387
397
|
readonly 'surface-raised': "#F3F4F6";
|
|
388
398
|
readonly 'surface-overlay': "#FFFFFF";
|
|
389
399
|
readonly 'surface-input': "#FAFAFA";
|
|
400
|
+
readonly 'surface-inset': "#D1D5DB";
|
|
390
401
|
readonly 'background-base': "#EBEBEB";
|
|
391
402
|
readonly 'background-default': "#FFFFFF";
|
|
392
403
|
readonly 'background-subtle': "#FAFAFA";
|
|
404
|
+
readonly 'background-frame': "#9CA3AF";
|
|
393
405
|
readonly 'border-default': "#E8E9EB";
|
|
394
406
|
readonly 'border-subtle': "#F3F4F6";
|
|
395
407
|
readonly 'border-strong': "#D1D5DB";
|
|
@@ -399,6 +411,9 @@ declare function getSemanticColors(mode: ThemeMode): {
|
|
|
399
411
|
readonly 'border-input-hover': "#9CA3AF";
|
|
400
412
|
readonly 'border-input-focus': "#5048E5";
|
|
401
413
|
readonly 'border-input-error': "#D14343";
|
|
414
|
+
readonly 'hairline-subtle': "rgba(0, 0, 0, 0.06)";
|
|
415
|
+
readonly 'hairline-default': "rgba(0, 0, 0, 0.09)";
|
|
416
|
+
readonly 'hairline-strong': "rgba(0, 0, 0, 0.14)";
|
|
402
417
|
readonly 'interactive-hover': "rgba(55, 65, 81, 0.04)";
|
|
403
418
|
readonly 'interactive-focus': "rgba(55, 65, 81, 0.12)";
|
|
404
419
|
readonly 'interactive-active': "rgba(55, 65, 81, 0.16)";
|
|
@@ -478,14 +493,16 @@ declare function getSemanticColors(mode: ThemeMode): {
|
|
|
478
493
|
readonly 'text-inverse': "#111827";
|
|
479
494
|
readonly 'text-link': "#828DF8";
|
|
480
495
|
readonly 'text-link-hover': "#60A5FA";
|
|
481
|
-
readonly 'surface-base': "#
|
|
482
|
-
readonly 'surface-elevated': "#
|
|
483
|
-
readonly 'surface-raised': "#
|
|
484
|
-
readonly 'surface-overlay': "#
|
|
485
|
-
readonly 'surface-input': "#
|
|
486
|
-
readonly '
|
|
487
|
-
readonly 'background-
|
|
488
|
-
readonly 'background-
|
|
496
|
+
readonly 'surface-base': "#252321";
|
|
497
|
+
readonly 'surface-elevated': "#2C2A28";
|
|
498
|
+
readonly 'surface-raised': "#31302F";
|
|
499
|
+
readonly 'surface-overlay': "#373635";
|
|
500
|
+
readonly 'surface-input': "#2C2A28";
|
|
501
|
+
readonly 'surface-inset': "#13100D";
|
|
502
|
+
readonly 'background-base': "#1C1916";
|
|
503
|
+
readonly 'background-default': "#252321";
|
|
504
|
+
readonly 'background-subtle': "#2C2A28";
|
|
505
|
+
readonly 'background-frame': "#100D0A";
|
|
489
506
|
readonly 'border-default': "#1F1F1F";
|
|
490
507
|
readonly 'border-subtle': "#1C1C1C";
|
|
491
508
|
readonly 'border-strong': "#2C2C2C";
|
|
@@ -495,6 +512,9 @@ declare function getSemanticColors(mode: ThemeMode): {
|
|
|
495
512
|
readonly 'border-input-hover': "#6B7280";
|
|
496
513
|
readonly 'border-input-focus': "#828DF8";
|
|
497
514
|
readonly 'border-input-error': "#EF4444";
|
|
515
|
+
readonly 'hairline-subtle': "rgba(255, 255, 255, 0.06)";
|
|
516
|
+
readonly 'hairline-default': "rgba(255, 255, 255, 0.09)";
|
|
517
|
+
readonly 'hairline-strong': "rgba(255, 255, 255, 0.14)";
|
|
498
518
|
readonly 'interactive-hover': "rgba(255, 255, 255, 0.04)";
|
|
499
519
|
readonly 'interactive-focus': "rgba(255, 255, 255, 0.12)";
|
|
500
520
|
readonly 'interactive-active': "rgba(255, 255, 255, 0.16)";
|
|
@@ -568,6 +588,23 @@ declare function getElevationSurface(baseColor: string, level: ElevationLevel, t
|
|
|
568
588
|
* @returns ViewStyle with shadow properties
|
|
569
589
|
*/
|
|
570
590
|
declare function getElevationShadow(baseColor: string, level: ElevationLevel, theme: 'light' | 'dark', isHovered?: boolean): ViewStyle;
|
|
591
|
+
/**
|
|
592
|
+
* Elevation level backing a `<Surface pressed>` recess: the shallow `inset`
|
|
593
|
+
* (-1) step. Pressed exposes ONE level of depth — pressed-2 is intentionally
|
|
594
|
+
* not surfaced (the deeper `-2` deep-inset stays available to `elevation`).
|
|
595
|
+
*/
|
|
596
|
+
declare const PRESSED_ELEVATION_LEVEL: ElevationLevel;
|
|
597
|
+
/**
|
|
598
|
+
* Inner-shadow recess for a pressed (sunken) surface, tuned to the well's own
|
|
599
|
+
* fill colour so the rim/shadow tints track the darker fill. Composes WITH the
|
|
600
|
+
* darker pressed fill: on web it adds an inset boxShadow; on the native path
|
|
601
|
+
* (no inset-shadow support) it's a no-op and the recess reads via the fill
|
|
602
|
+
* alone — so a pressed surface stays legibly sunken with or without the shadow.
|
|
603
|
+
*
|
|
604
|
+
* @param fillColor - The pressed surface's own fill (one ramp step down).
|
|
605
|
+
* @param theme - Current theme ('light' or 'dark').
|
|
606
|
+
*/
|
|
607
|
+
declare function getPressedRecessShadow(fillColor: string, theme: 'light' | 'dark'): ViewStyle;
|
|
571
608
|
/**
|
|
572
609
|
* Get base surface color from theme.
|
|
573
610
|
* This is the foundation color that all elevations are calculated from.
|
|
@@ -579,7 +616,7 @@ declare function getElevationShadow(baseColor: string, level: ElevationLevel, th
|
|
|
579
616
|
* - This allows raised elevations to be lighter (closer to white)
|
|
580
617
|
*
|
|
581
618
|
* **Dark Mode**: Need lighter base to allow sufficient lightening
|
|
582
|
-
* - Use
|
|
619
|
+
* - Use `surface-elevated` (#2A2827, TD-surface-tokens ramp) - allows further lightening
|
|
583
620
|
*
|
|
584
621
|
* Can be overridden to use custom base colors for special cases.
|
|
585
622
|
*/
|
|
@@ -702,6 +739,44 @@ declare const primitiveColors: {
|
|
|
702
739
|
readonly black: "#000000";
|
|
703
740
|
readonly transparent: "transparent";
|
|
704
741
|
};
|
|
742
|
+
/**
|
|
743
|
+
* Surface ramp — dark mode (TD-surface-tokens, S-1, re-spaced S-3)
|
|
744
|
+
*
|
|
745
|
+
* Warm-tapered, DERIVED ramp — NOT hand-picked. Shipped verbatim as the output of
|
|
746
|
+
* `deriveSurfaceRamp(shellL=9, steps=[4.5,3.5,3,2.5], rbShadow=6, rbHilite=1.5)`
|
|
747
|
+
* (see `packages/ui/src/components/ui/surface/surface-lab-shared.tsx` on branch
|
|
748
|
+
* `feat/TD-unified-lab`, story `Lab/Surface Exploration -> Surface Ramp System`
|
|
749
|
+
* — that lab default is `[4.5,2.5,2,1.5]` as of this writing and should be
|
|
750
|
+
* updated to match on that branch, follow-up, not done here).
|
|
751
|
+
* Lightness is CIELAB L* off the shell, with DIMINISHING steps (4.5/3.5/3/2.5) —
|
|
752
|
+
* the frame->content jump is biggest, each plane above adds less, but the top
|
|
753
|
+
* three planes (elevated/raised/overlay) were re-spaced WIDER (S-3) than the
|
|
754
|
+
* original 2.5/2/1.5 taper so they read as distinct planes without leaning on
|
|
755
|
+
* the hairline alone. `background`/`base`/`inset` are unchanged by the re-space.
|
|
756
|
+
* Warmth (R-B) tapers 6 -> 1.5 from frame to hero so bright content planes stay
|
|
757
|
+
* near-neutral.
|
|
758
|
+
* Kept separate from the `charcoal` scale above (which several existing
|
|
759
|
+
* components reference directly for unrelated shadow/track tints) so this
|
|
760
|
+
* change is additive and doesn't ripple into those consumers.
|
|
761
|
+
* See coordination/design-explorations/surface-system-north-star.md.
|
|
762
|
+
*/
|
|
763
|
+
declare const surfaceRampDark: {
|
|
764
|
+
readonly inset: "#13100D";
|
|
765
|
+
readonly background: "#1C1916";
|
|
766
|
+
readonly base: "#252321";
|
|
767
|
+
readonly elevated: "#2C2A28";
|
|
768
|
+
readonly raised: "#31302F";
|
|
769
|
+
readonly overlay: "#373635";
|
|
770
|
+
};
|
|
771
|
+
/**
|
|
772
|
+
* Frame/bezel primitive — dark mode (TD-surface-tokens, S-3)
|
|
773
|
+
*
|
|
774
|
+
* The chrome that "exits the content ramp" entirely: the top bar + side nav
|
|
775
|
+
* shell. Sits ONE STEP BELOW `surfaceRampDark.background` (L*9), darker even
|
|
776
|
+
* than `surfaceRampDark.inset` (L*4.5) — it isn't a plane IN the ramp, it's
|
|
777
|
+
* the bezel the ramp sits inside. Literal, not `deriveSurfaceRamp()` output.
|
|
778
|
+
*/
|
|
779
|
+
declare const backgroundFrameDark = "#100D0A";
|
|
705
780
|
/**
|
|
706
781
|
* Derived tonal ramps (TD-05.09 color foundations)
|
|
707
782
|
*
|
|
@@ -1058,9 +1133,11 @@ declare const lightThemeCSSVars: {
|
|
|
1058
1133
|
readonly '--color-surface-base': "#FFFFFF";
|
|
1059
1134
|
readonly '--color-surface-elevated': "#FAFAFA";
|
|
1060
1135
|
readonly '--color-surface-raised': "#F3F4F6";
|
|
1136
|
+
readonly '--color-surface-inset': "#D1D5DB";
|
|
1061
1137
|
readonly '--color-background-base': "#EBEBEB";
|
|
1062
1138
|
readonly '--color-background-default': "#FFFFFF";
|
|
1063
1139
|
readonly '--color-background-subtle': "#FAFAFA";
|
|
1140
|
+
readonly '--color-background-frame': "#9CA3AF";
|
|
1064
1141
|
readonly '--color-border-default': "#E8E9EB";
|
|
1065
1142
|
readonly '--color-border-subtle': "#F3F4F6";
|
|
1066
1143
|
readonly '--color-border-strong': "#D1D5DB";
|
|
@@ -1117,6 +1194,9 @@ declare const lightThemeCSSVars: {
|
|
|
1117
1194
|
readonly '--color-border-input-hover': "#9CA3AF";
|
|
1118
1195
|
readonly '--color-border-input-focus': "#5048E5";
|
|
1119
1196
|
readonly '--color-border-input-error': "#D14343";
|
|
1197
|
+
readonly '--color-hairline-subtle': "rgba(0, 0, 0, 0.06)";
|
|
1198
|
+
readonly '--color-hairline-default': "rgba(0, 0, 0, 0.09)";
|
|
1199
|
+
readonly '--color-hairline-strong': "rgba(0, 0, 0, 0.14)";
|
|
1120
1200
|
readonly '--color-interactive-disabled-text': "rgba(55, 65, 81, 0.26)";
|
|
1121
1201
|
readonly '--color-avatar-background': "#6B7280";
|
|
1122
1202
|
readonly '--color-avatar-text': "#FFFFFF";
|
|
@@ -1170,12 +1250,14 @@ declare const darkThemeCSSVars: {
|
|
|
1170
1250
|
readonly '--color-text-disabled': "rgba(255, 255, 255, 0.38)";
|
|
1171
1251
|
readonly '--color-text-inverse': "#111827";
|
|
1172
1252
|
readonly '--color-text-link': "#828DF8";
|
|
1173
|
-
readonly '--color-surface-base': "#
|
|
1174
|
-
readonly '--color-surface-elevated': "#
|
|
1175
|
-
readonly '--color-surface-raised': "#
|
|
1176
|
-
readonly '--color-
|
|
1177
|
-
readonly '--color-background-
|
|
1178
|
-
readonly '--color-background-
|
|
1253
|
+
readonly '--color-surface-base': "#252321";
|
|
1254
|
+
readonly '--color-surface-elevated': "#2C2A28";
|
|
1255
|
+
readonly '--color-surface-raised': "#31302F";
|
|
1256
|
+
readonly '--color-surface-inset': "#13100D";
|
|
1257
|
+
readonly '--color-background-base': "#1C1916";
|
|
1258
|
+
readonly '--color-background-default': "#252321";
|
|
1259
|
+
readonly '--color-background-subtle': "#2C2A28";
|
|
1260
|
+
readonly '--color-background-frame': "#100D0A";
|
|
1179
1261
|
readonly '--color-border-default': "#1F1F1F";
|
|
1180
1262
|
readonly '--color-border-subtle': "#1C1C1C";
|
|
1181
1263
|
readonly '--color-border-strong': "#2C2C2C";
|
|
@@ -1226,12 +1308,15 @@ declare const darkThemeCSSVars: {
|
|
|
1226
1308
|
readonly '--color-data-9': "#CAACCB";
|
|
1227
1309
|
readonly '--color-data-10': "#EE8026";
|
|
1228
1310
|
readonly '--color-text-link-hover': "#60A5FA";
|
|
1229
|
-
readonly '--color-surface-overlay': "#
|
|
1230
|
-
readonly '--color-surface-input': "#
|
|
1311
|
+
readonly '--color-surface-overlay': "#373635";
|
|
1312
|
+
readonly '--color-surface-input': "#2C2A28";
|
|
1231
1313
|
readonly '--color-border-input': "#4B5563";
|
|
1232
1314
|
readonly '--color-border-input-hover': "#6B7280";
|
|
1233
1315
|
readonly '--color-border-input-focus': "#828DF8";
|
|
1234
1316
|
readonly '--color-border-input-error': "#EF4444";
|
|
1317
|
+
readonly '--color-hairline-subtle': "rgba(255, 255, 255, 0.06)";
|
|
1318
|
+
readonly '--color-hairline-default': "rgba(255, 255, 255, 0.09)";
|
|
1319
|
+
readonly '--color-hairline-strong': "rgba(255, 255, 255, 0.14)";
|
|
1235
1320
|
readonly '--color-interactive-disabled-text': "rgba(255, 255, 255, 0.26)";
|
|
1236
1321
|
readonly '--color-avatar-background': "#4B5563";
|
|
1237
1322
|
readonly '--color-avatar-text': "#FFFFFF";
|
|
@@ -1288,9 +1373,11 @@ declare function getThemeCSSVars(mode: ThemeMode): {
|
|
|
1288
1373
|
readonly '--color-surface-base': "#FFFFFF";
|
|
1289
1374
|
readonly '--color-surface-elevated': "#FAFAFA";
|
|
1290
1375
|
readonly '--color-surface-raised': "#F3F4F6";
|
|
1376
|
+
readonly '--color-surface-inset': "#D1D5DB";
|
|
1291
1377
|
readonly '--color-background-base': "#EBEBEB";
|
|
1292
1378
|
readonly '--color-background-default': "#FFFFFF";
|
|
1293
1379
|
readonly '--color-background-subtle': "#FAFAFA";
|
|
1380
|
+
readonly '--color-background-frame': "#9CA3AF";
|
|
1294
1381
|
readonly '--color-border-default': "#E8E9EB";
|
|
1295
1382
|
readonly '--color-border-subtle': "#F3F4F6";
|
|
1296
1383
|
readonly '--color-border-strong': "#D1D5DB";
|
|
@@ -1347,6 +1434,9 @@ declare function getThemeCSSVars(mode: ThemeMode): {
|
|
|
1347
1434
|
readonly '--color-border-input-hover': "#9CA3AF";
|
|
1348
1435
|
readonly '--color-border-input-focus': "#5048E5";
|
|
1349
1436
|
readonly '--color-border-input-error': "#D14343";
|
|
1437
|
+
readonly '--color-hairline-subtle': "rgba(0, 0, 0, 0.06)";
|
|
1438
|
+
readonly '--color-hairline-default': "rgba(0, 0, 0, 0.09)";
|
|
1439
|
+
readonly '--color-hairline-strong': "rgba(0, 0, 0, 0.14)";
|
|
1350
1440
|
readonly '--color-interactive-disabled-text': "rgba(55, 65, 81, 0.26)";
|
|
1351
1441
|
readonly '--color-avatar-background': "#6B7280";
|
|
1352
1442
|
readonly '--color-avatar-text': "#FFFFFF";
|
|
@@ -1399,12 +1489,14 @@ declare function getThemeCSSVars(mode: ThemeMode): {
|
|
|
1399
1489
|
readonly '--color-text-disabled': "rgba(255, 255, 255, 0.38)";
|
|
1400
1490
|
readonly '--color-text-inverse': "#111827";
|
|
1401
1491
|
readonly '--color-text-link': "#828DF8";
|
|
1402
|
-
readonly '--color-surface-base': "#
|
|
1403
|
-
readonly '--color-surface-elevated': "#
|
|
1404
|
-
readonly '--color-surface-raised': "#
|
|
1405
|
-
readonly '--color-
|
|
1406
|
-
readonly '--color-background-
|
|
1407
|
-
readonly '--color-background-
|
|
1492
|
+
readonly '--color-surface-base': "#252321";
|
|
1493
|
+
readonly '--color-surface-elevated': "#2C2A28";
|
|
1494
|
+
readonly '--color-surface-raised': "#31302F";
|
|
1495
|
+
readonly '--color-surface-inset': "#13100D";
|
|
1496
|
+
readonly '--color-background-base': "#1C1916";
|
|
1497
|
+
readonly '--color-background-default': "#252321";
|
|
1498
|
+
readonly '--color-background-subtle': "#2C2A28";
|
|
1499
|
+
readonly '--color-background-frame': "#100D0A";
|
|
1408
1500
|
readonly '--color-border-default': "#1F1F1F";
|
|
1409
1501
|
readonly '--color-border-subtle': "#1C1C1C";
|
|
1410
1502
|
readonly '--color-border-strong': "#2C2C2C";
|
|
@@ -1455,12 +1547,15 @@ declare function getThemeCSSVars(mode: ThemeMode): {
|
|
|
1455
1547
|
readonly '--color-data-9': "#CAACCB";
|
|
1456
1548
|
readonly '--color-data-10': "#EE8026";
|
|
1457
1549
|
readonly '--color-text-link-hover': "#60A5FA";
|
|
1458
|
-
readonly '--color-surface-overlay': "#
|
|
1459
|
-
readonly '--color-surface-input': "#
|
|
1550
|
+
readonly '--color-surface-overlay': "#373635";
|
|
1551
|
+
readonly '--color-surface-input': "#2C2A28";
|
|
1460
1552
|
readonly '--color-border-input': "#4B5563";
|
|
1461
1553
|
readonly '--color-border-input-hover': "#6B7280";
|
|
1462
1554
|
readonly '--color-border-input-focus': "#828DF8";
|
|
1463
1555
|
readonly '--color-border-input-error': "#EF4444";
|
|
1556
|
+
readonly '--color-hairline-subtle': "rgba(255, 255, 255, 0.06)";
|
|
1557
|
+
readonly '--color-hairline-default': "rgba(255, 255, 255, 0.09)";
|
|
1558
|
+
readonly '--color-hairline-strong': "rgba(255, 255, 255, 0.14)";
|
|
1464
1559
|
readonly '--color-interactive-disabled-text': "rgba(255, 255, 255, 0.26)";
|
|
1465
1560
|
readonly '--color-avatar-background': "#4B5563";
|
|
1466
1561
|
readonly '--color-avatar-text': "#FFFFFF";
|
|
@@ -1927,4 +2022,4 @@ declare const defaultPreset: ThemePreset;
|
|
|
1927
2022
|
*/
|
|
1928
2023
|
declare const audiobookPreset: ThemePreset;
|
|
1929
2024
|
|
|
1930
|
-
export { CATEGORICAL_CVD_SAFE_MAX, type CategoricalVariant, type ComponentType, type CssPropertyEntry, type CssPropertyManifest, type ElevationConfig, type ElevationLevel, type GlowIntensity, type GradientStyle, type ManifestValidationResult, type ShadowIntensity, type ShadowSurface, type ThemeConfig, type ThemeMode, type ThemePreset, type ThemePresetColors, type ThemePresetFonts, type ThemePresetRadii, type ThemePresetShadows, ThemeProvider, type ThemeProviderMode, type ThemeProviderProps, type VariantAxes, type VariantOverride, applyThemePreset, audiobookPreset, bestTextColor, buttonSizes, categoricalPalette, componentElevationRanges, createFlatShadow, createPressedHoverShadow, createPressedShadow, createRaisedHoverShadow, createRaisedShadow, darkThemeCSSVars, darken, defaultPreset, discreteRainbow, divergingScale, elevationSystem, getBaseSurfaceColor, getCategoricalColor, getDiscreteRainbowColor, getElevationConfig, getElevationShadow, getElevationSurface, getGlowShadow, getHoverColors, getSemanticColors, getThemeCSSVars, getValidatedElevation, gluestackConfig, hexToRgb, hsvToRgb, isCssPropertyManifest, isDark, lightThemeCSSVars, lighten, linearGradient, neumorphicShadows, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveRamps, primitiveShadows, primitiveSpacing, primitiveTypography, primitiveZIndex, resolveColor, rgbToHex, rgbToHsv, semanticColorsDark, semanticColorsLight, semanticTypography, sequentialEffort, shadowColors, surfaceGradient, validateCssPropertyManifest };
|
|
2025
|
+
export { CATEGORICAL_CVD_SAFE_MAX, type CategoricalVariant, type ComponentType, type CssPropertyEntry, type CssPropertyManifest, type ElevationConfig, type ElevationLevel, type GlowIntensity, type GradientStyle, type ManifestValidationResult, PRESSED_ELEVATION_LEVEL, type ShadowIntensity, type ShadowSurface, type ThemeConfig, type ThemeMode, type ThemePreset, type ThemePresetColors, type ThemePresetFonts, type ThemePresetRadii, type ThemePresetShadows, ThemeProvider, type ThemeProviderMode, type ThemeProviderProps, type VariantAxes, type VariantOverride, applyThemePreset, audiobookPreset, backgroundFrameDark, bestTextColor, buttonSizes, categoricalPalette, componentElevationRanges, createFlatShadow, createPressedHoverShadow, createPressedShadow, createRaisedHoverShadow, createRaisedShadow, darkThemeCSSVars, darken, defaultPreset, discreteRainbow, divergingScale, elevationSystem, getBaseSurfaceColor, getCategoricalColor, getDiscreteRainbowColor, getElevationConfig, getElevationShadow, getElevationSurface, getGlowShadow, getHoverColors, getPressedRecessShadow, getSemanticColors, getThemeCSSVars, getValidatedElevation, gluestackConfig, hexToRgb, hsvToRgb, isCssPropertyManifest, isDark, lightThemeCSSVars, lighten, linearGradient, neumorphicShadows, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveRamps, primitiveShadows, primitiveSpacing, primitiveTypography, primitiveZIndex, resolveColor, rgbToHex, rgbToHsv, semanticColorsDark, semanticColorsLight, semanticTypography, sequentialEffort, shadowColors, surfaceGradient, surfaceRampDark, validateCssPropertyManifest };
|