@refineui/tokens 1.0.1 → 1.0.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @refineui/tokens
2
2
 
3
+ ## 1.0.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Add Collapsible and Context Menu, frosted floating panels with blur tokens, SidebarPeek glass, and control polish (SegmentedControl, Breadcrumb, InputOTP).
8
+
9
+ ## 1.0.2
10
+
11
+ ### Patch Changes
12
+
13
+ - Skip Segmented Control/Tabs mount animation, align Toast/Tooltip/PopOver with Menu semantic colors, and match Tooltip beak to the PopOver SVG pattern.
14
+
3
15
  ## 1.0.1
4
16
 
5
17
  ### Patch Changes
package/README.md CHANGED
@@ -30,8 +30,8 @@ bun run build # or npm/yarn/pnpm run build — builds utilities → tokens →
30
30
 
31
31
  ## Layers
32
32
 
33
- 1. **Primitive / Foundation** (`src/global`) — palette, spacing, radius, shadows, foundation sizes, opacities, icon sizes, **`typographys`**, **`motion`** (raw duration / easing / scale / distance steps)
34
- 2. **Semantic** (`src/semantic`) — color aliases, **`semanticInteraction`** (motion roles → Foundation steps), elevation pairs, **`SEMANTIC_TEXT`** (bodyMd, labelSm, … → Foundation keys)
33
+ 1. **Primitive / Foundation** (`src/global`) — palette, spacing, radius, **blurs**, shadows, foundation sizes, opacities, icon sizes, **`typographys`**, **`motion`** (raw duration / easing / scale / distance steps)
34
+ 2. **Semantic** (`src/semantic`) — color aliases, **`semanticInteraction`** (motion roles → Foundation steps), **`semanticBlur`** (overlay/surface blur roles → Foundation steps), elevation pairs, **`SEMANTIC_TEXT`** (bodyMd, labelSm, … → Foundation keys)
35
35
  3. **Component** — colors/sizes/typography/state role maps in `@refineui/react` (`componentColorTokens`, `componentTypographyTokens`)
36
36
  4. **Recipe** — `packages/react/src/recipes/` (base, variants, compoundVariants; slot recipes for Alert/Dialog/…)
37
37
  5. **Interaction** — `refineui.css` + `data-state` contract
@@ -146,6 +146,7 @@
146
146
  --refineui-size-foundation-size-20: 2px;
147
147
  --refineui-size-foundation-size-30: 3px;
148
148
  --refineui-size-foundation-size-40: 4px;
149
+ --refineui-size-foundation-size-50: 5px;
149
150
  --refineui-size-foundation-size-60: 6px;
150
151
  --refineui-size-foundation-size-80: 8px;
151
152
  --refineui-size-foundation-size-100: 10px;
@@ -195,10 +196,11 @@
195
196
  --refineui-size-popover-panel-width: var(--refineui-size-foundation-size-3250);
196
197
  --refineui-size-popover-beak-inset-from-start-edge: var(--refineui-size-foundation-size-340);
197
198
  --refineui-size-popover-beak-inset-from-end-edge: var(--refineui-size-foundation-size-300);
198
- --refineui-size-menu-panel-width: var(--refineui-size-foundation-size-2440);
199
- --refineui-size-dropdown-menu-width: var(--refineui-size-foundation-size-2440);
199
+ --refineui-size-navigation-menu-item-min-width: var(--refineui-size-foundation-size-400);
200
+ --refineui-size-menu-panel-width: var(--refineui-size-foundation-size-2000);
201
+ --refineui-size-dropdown-menu-width: var(--refineui-size-foundation-size-2000);
200
202
  --refineui-size-sidebar-width: var(--refineui-size-foundation-size-2560);
201
- --refineui-size-toast-min-width: var(--refineui-size-foundation-size-3250);
203
+ --refineui-size-toast-min-width: var(--refineui-size-foundation-size-2000);
202
204
  --refineui-size-toast-max-width: var(--refineui-size-foundation-size-3250);
203
205
  --refineui-size-dialog-max-width: var(--refineui-size-foundation-size-6000);
204
206
  --refineui-size-dialog-width-sm: var(--refineui-size-foundation-size-3000);
@@ -251,6 +253,15 @@
251
253
  --refineui-opacity-full: 1;
252
254
  --refineui-opacity-disabled: 0.5;
253
255
  --refineui-opacity-ghost-hover: 0.08;
256
+ /* Blur — Foundation steps + Semantic role aliases */
257
+ --refineui-foundation-blur-none: 0;
258
+ --refineui-foundation-blur-2: 2px;
259
+ --refineui-foundation-blur-4: 4px;
260
+ --refineui-foundation-blur-8: 8px;
261
+ --refineui-foundation-blur-12: 12px;
262
+ --refineui-foundation-blur-16: 16px;
263
+ --refineui-blur-overlay-scrim: var(--refineui-foundation-blur-2);
264
+ --refineui-blur-surface-frost: var(--refineui-foundation-blur-16);
254
265
  /* Motion — Foundation steps + Semantic role aliases */
255
266
  --refineui-foundation-motion-duration-0: 0ms;
256
267
  --refineui-foundation-motion-duration-150: 150ms;
@@ -476,6 +487,12 @@
476
487
  --refineui-elevation-64light: 0 24px 24px 0 rgba(33, 33, 33, 0.05), 0 48px 96px 0 rgba(33, 33, 33, 0.04);
477
488
  --refineui-elevation-64dark: 0 24px 24px 0 rgba(0, 0, 0, 0.2), 0 48px 96px 0 rgba(0, 0, 0, 0.15);
478
489
  --refineui-elevation-64: var(--refineui-elevation-64light);
490
+ --refineui-elevation-surface: 0 1px 2px 0 rgba(33, 33, 33, 0.05), 0 2px 4px 0 rgba(33, 33, 33, 0.04);
491
+ --refineui-elevation-raised: 0 2px 2px 0 rgba(33, 33, 33, 0.05), 0 4px 8px 0 rgba(33, 33, 33, 0.04);
492
+ --refineui-elevation-floating: 0 4px 4px 0 rgba(33, 33, 33, 0.05), 0 8px 16px 0 rgba(33, 33, 33, 0.04);
493
+ --refineui-elevation-overlay: 0 8px 8px 0 rgba(33, 33, 33, 0.05), 0 16px 32px 0 rgba(33, 33, 33, 0.04);
494
+ --refineui-elevation-modal: 0 12px 12px 0 rgba(33, 33, 33, 0.05), 0 24px 48px 0 rgba(33, 33, 33, 0.04);
495
+ --refineui-elevation-toast: 0 8px 8px 0 rgba(33, 33, 33, 0.05), 0 16px 32px 0 rgba(33, 33, 33, 0.04);
479
496
  --refineui-elevation-2lighter: 0 1px 2px 0 rgba(33, 33, 33, 0.02), 0 2px 4px 0 rgba(33, 33, 33, 0.02);
480
497
  /* Z-index */
481
498
  --refineui-z-background: 0;
@@ -557,6 +574,7 @@
557
574
  --refineui-color-alias-surface-sunken: var(--refineui-color-neutral-150);
558
575
  --refineui-color-alias-surface-tooltip: var(--refineui-color-neutral-750);
559
576
  --refineui-color-alias-surface-overlay: rgba(0, 0, 0, 0.2);
577
+ --refineui-color-alias-surface-frosted: rgba(255, 255, 255, 0.55);
560
578
  /* Focus ring — :focus-visible contract */
561
579
  --refineui-focus-ring-color: var(--refineui-color-neutral-750);
562
580
  --refineui-focus-ring-width: 2px;
@@ -637,6 +655,7 @@
637
655
  --refineui-color-alias-surface-sunken: var(--refineui-color-neutral-800);
638
656
  --refineui-color-alias-surface-tooltip: var(--refineui-color-neutral-300);
639
657
  --refineui-color-alias-surface-overlay: rgba(0, 0, 0, 0.6);
658
+ --refineui-color-alias-surface-frosted: rgba(26, 26, 26, 0.55);
640
659
  /* Theme-aware elevation */
641
660
  --refineui-elevation-2: var(--refineui-elevation-2dark);
642
661
  --refineui-elevation-4: var(--refineui-elevation-4dark);
@@ -645,6 +664,12 @@
645
664
  --refineui-elevation-24: var(--refineui-elevation-24dark);
646
665
  --refineui-elevation-32: var(--refineui-elevation-32dark);
647
666
  --refineui-elevation-64: var(--refineui-elevation-64dark);
667
+ --refineui-elevation-surface: 0 1px 2px 0 rgba(0, 0, 0, 0.2), 0 2px 4px 0 rgba(0, 0, 0, 0.15);
668
+ --refineui-elevation-raised: 0 2px 2px 0 rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.15);
669
+ --refineui-elevation-floating: 0 4px 4px 0 rgba(0, 0, 0, 0.2), 0 8px 16px 0 rgba(0, 0, 0, 0.15);
670
+ --refineui-elevation-overlay: 0 8px 8px 0 rgba(0, 0, 0, 0.2), 0 16px 32px 0 rgba(0, 0, 0, 0.15);
671
+ --refineui-elevation-modal: 0 12px 12px 0 rgba(0, 0, 0, 0.2), 0 24px 48px 0 rgba(0, 0, 0, 0.15);
672
+ --refineui-elevation-toast: 0 8px 8px 0 rgba(0, 0, 0, 0.2), 0 16px 32px 0 rgba(0, 0, 0, 0.15);
648
673
  /* Focus ring — dark */
649
674
  --refineui-focus-ring-color: var(--refineui-color-neutral-350);
650
675
  }
package/dist/index.d.mts CHANGED
@@ -215,6 +215,13 @@ type SemanticShadowElevationPair = {
215
215
  type SemanticShadowElevationName = "shadow2" | "shadow4" | "shadow8" | "shadow16" | "shadow24" | "shadow32" | "shadow64";
216
216
  /** Semantic elevation name → per-theme ShadowLevel (`semanticShadows`) */
217
217
  type SemanticShadowElevationTokens = Record<SemanticShadowElevationName, SemanticShadowElevationPair>;
218
+ /**
219
+ * Intent-level elevation roles. Components consume these names rather than
220
+ * choosing a numbered shadow step, while the mapping remains traceable to the
221
+ * Foundation elevation scale.
222
+ */
223
+ type SemanticElevationName = "surface" | "raised" | "floating" | "overlay" | "modal" | "toast";
224
+ type SemanticElevationTokens = Record<SemanticElevationName, SemanticShadowElevationPair>;
218
225
  /**
219
226
  * Design tokens for stroke width
220
227
  */
@@ -239,6 +246,27 @@ type BorderRadiusTokens = {
239
246
  roundedXXLarge: string;
240
247
  roundedCircle: string;
241
248
  };
249
+ /**
250
+ * Foundation blur primitives (`global/blurs.ts`).
251
+ * Value-based steps only — no UI role names.
252
+ */
253
+ type FoundationBlurTokens = {
254
+ blurNone: string;
255
+ blur2: string;
256
+ blur4: string;
257
+ blur8: string;
258
+ blur12: string;
259
+ blur16: string;
260
+ };
261
+ type FoundationBlurName = keyof FoundationBlurTokens;
262
+ /**
263
+ * Semantic blur roles (`semantic/blur.ts`) — resolved Foundation strings.
264
+ * Prefer role keys (`overlayScrim`, `surfaceFrost`) in component / CSS code.
265
+ */
266
+ type SemanticBlurTokens = {
267
+ overlayScrim: string;
268
+ surfaceFrost: string;
269
+ };
242
270
  /**
243
271
  * Design tokens for spacing size
244
272
  */
@@ -701,14 +729,22 @@ declare const SEMANTIC_PALETTE_PAIRS: {
701
729
  };
702
730
  };
703
731
  type SemanticPaletteName = keyof typeof SEMANTIC_PALETTE_PAIRS;
704
- /** Legacy row shape: [aliasTail, lightKey, darkKey | "__RGBA__"] (surfaceOverlay only) */
705
- declare const SEMANTIC_COLOR_ROWS: readonly [...(readonly ["backgroundBrandActive" | "backgroundBrandDisabled" | "backgroundBrandHover" | "backgroundBrandStrong" | "backgroundBrandSubtle" | "backgroundBrand" | "backgroundDiscoveryHover" | "backgroundDiscoverySubtle" | "backgroundDiscovery" | "backgroundErrorHover" | "backgroundErrorSubtle" | "backgroundError" | "backgroundInfoHover" | "backgroundInfoSubtle" | "backgroundInfo" | "backgroundPrimaryActive" | "backgroundPrimaryHover" | "backgroundPrimary" | "backgroundSuccessHover" | "backgroundSuccessSubtle" | "backgroundSuccess" | "backgroundSurfaceActive" | "backgroundSurfaceDisabled" | "backgroundSurfaceHover" | "backgroundSurfaceSelected" | "backgroundSurface" | "backgroundWarningHover" | "backgroundWarningSubtle" | "backgroundWarning" | "borderDefault" | "borderDisabled" | "borderDiscovery" | "borderError" | "borderFocus" | "borderHover" | "borderInfo" | "borderStrong" | "borderSubtle" | "borderSuccess" | "borderWarning" | "foregroundBrandStrong" | "foregroundBrand" | "foregroundDisabled" | "foregroundDiscovery" | "foregroundError" | "foregroundInfo" | "foregroundInversed" | "foregroundLinkActive" | "foregroundLinkHover" | "foregroundLinkVisited" | "foregroundLink" | "foregroundOnBrand" | "foregroundOnDiscovery" | "foregroundOnError" | "foregroundOnInfo" | "foregroundOnSuccess" | "foregroundOnWarning" | "foregroundPlaceholder" | "foregroundPrimaryHover" | "foregroundPrimary" | "foregroundSecondary" | "foregroundSuccess" | "foregroundTertiary" | "foregroundWarning" | "surfaceElevated" | "surfaceInverse" | "surfacePopover" | "surfaceSunken" | "surfaceTooltip", keyof PaletteColors, keyof PaletteColors])[], readonly ["surfaceOverlay", "__RGBA__", "__RGBA__"]];
706
- type SemanticColorName = SemanticPaletteName | "surfaceOverlay";
732
+ /** Legacy row shape: [aliasTail, lightKey, darkKey | "__RGBA__"] (RGBA aliases) */
733
+ declare const SEMANTIC_COLOR_ROWS: readonly [...(readonly ["backgroundBrandActive" | "backgroundBrandDisabled" | "backgroundBrandHover" | "backgroundBrandStrong" | "backgroundBrandSubtle" | "backgroundBrand" | "backgroundDiscoveryHover" | "backgroundDiscoverySubtle" | "backgroundDiscovery" | "backgroundErrorHover" | "backgroundErrorSubtle" | "backgroundError" | "backgroundInfoHover" | "backgroundInfoSubtle" | "backgroundInfo" | "backgroundPrimaryActive" | "backgroundPrimaryHover" | "backgroundPrimary" | "backgroundSuccessHover" | "backgroundSuccessSubtle" | "backgroundSuccess" | "backgroundSurfaceActive" | "backgroundSurfaceDisabled" | "backgroundSurfaceHover" | "backgroundSurfaceSelected" | "backgroundSurface" | "backgroundWarningHover" | "backgroundWarningSubtle" | "backgroundWarning" | "borderDefault" | "borderDisabled" | "borderDiscovery" | "borderError" | "borderFocus" | "borderHover" | "borderInfo" | "borderStrong" | "borderSubtle" | "borderSuccess" | "borderWarning" | "foregroundBrandStrong" | "foregroundBrand" | "foregroundDisabled" | "foregroundDiscovery" | "foregroundError" | "foregroundInfo" | "foregroundInversed" | "foregroundLinkActive" | "foregroundLinkHover" | "foregroundLinkVisited" | "foregroundLink" | "foregroundOnBrand" | "foregroundOnDiscovery" | "foregroundOnError" | "foregroundOnInfo" | "foregroundOnSuccess" | "foregroundOnWarning" | "foregroundPlaceholder" | "foregroundPrimaryHover" | "foregroundPrimary" | "foregroundSecondary" | "foregroundSuccess" | "foregroundTertiary" | "foregroundWarning" | "surfaceElevated" | "surfaceInverse" | "surfacePopover" | "surfaceSunken" | "surfaceTooltip", keyof PaletteColors, keyof PaletteColors])[], readonly ["surfaceOverlay", "__RGBA__", "__RGBA__"], readonly ["surfaceFrosted", "__RGBA__", "__RGBA__"]];
734
+ type SemanticColorName = SemanticPaletteName | "surfaceOverlay" | "surfaceFrosted";
707
735
  /** Foundation surfaceOverlay (Overlay and Modal) — raw RGBA */
708
736
  declare const surfaceOverlayRgba: {
709
737
  readonly light: "rgba(0, 0, 0, 0.2)";
710
738
  readonly dark: "rgba(0, 0, 0, 0.6)";
711
739
  };
740
+ /**
741
+ * Frosted panel fill (Menu / Dropdown / Select) — translucent so `surfaceFrost` blur shows.
742
+ * Keep alpha low enough that page content reads through; pair with `--refineui-blur-surface-frost`.
743
+ */
744
+ declare const surfaceFrostedRgba: {
745
+ readonly light: string;
746
+ readonly dark: string;
747
+ };
712
748
  /** Semantic colors — values are CSS var(--refineui-color-*) or rgba(...) */
713
749
  declare const semanticColors: Record<SemanticColorName, SemanticColorModePair>;
714
750
 
@@ -745,6 +781,11 @@ declare const semanticFocus: {
745
781
 
746
782
  /** `semanticShadows.shadow2.light` / `.dark` — pick global `shadows` per theme */
747
783
  declare const semanticShadows: SemanticShadowElevationTokens;
784
+ /**
785
+ * Component-facing elevation roles. Keep the numeric `semanticShadows` scale
786
+ * for Foundation traceability; use these roles in component recipes and CSS.
787
+ */
788
+ declare const semanticElevations: SemanticElevationTokens;
748
789
 
749
790
  /**
750
791
  * Semantic text roles — M3/Polaris-style meaning layer over Foundation `typographys`.
@@ -818,6 +859,7 @@ declare const foundationSizes: {
818
859
  readonly foundationSize20: "2px";
819
860
  readonly foundationSize30: "3px";
820
861
  readonly foundationSize40: "4px";
862
+ readonly foundationSize50: "5px";
821
863
  readonly foundationSize60: "6px";
822
864
  readonly foundationSize80: "8px";
823
865
  readonly foundationSize100: "10px";
@@ -875,10 +917,11 @@ declare const componentSizeFoundationKeys: {
875
917
  readonly popoverPanelWidth: "foundationSize3250";
876
918
  readonly popoverBeakInsetFromStartEdge: "foundationSize340";
877
919
  readonly popoverBeakInsetFromEndEdge: "foundationSize300";
878
- readonly menuPanelWidth: "foundationSize2440";
879
- readonly dropdownMenuWidth: "foundationSize2440";
920
+ readonly navigationMenuItemMinWidth: "foundationSize400";
921
+ readonly menuPanelWidth: "foundationSize2000";
922
+ readonly dropdownMenuWidth: "foundationSize2000";
880
923
  readonly sidebarWidth: "foundationSize2560";
881
- readonly toastMinWidth: "foundationSize3250";
924
+ readonly toastMinWidth: "foundationSize2000";
882
925
  readonly toastMaxWidth: "foundationSize3250";
883
926
  readonly dialogMaxWidth: "foundationSize6000";
884
927
  readonly dialogWidthSm: "foundationSize3000";
@@ -942,11 +985,12 @@ declare const componentSizes: {
942
985
  readonly popoverPanelWidth: "325px";
943
986
  readonly popoverBeakInsetFromStartEdge: "34px";
944
987
  readonly popoverBeakInsetFromEndEdge: "30px";
945
- readonly menuPanelWidth: "244px";
988
+ readonly navigationMenuItemMinWidth: "40px";
989
+ readonly menuPanelWidth: "200px";
946
990
  /** @deprecated Same as `menuPanelWidth` */
947
- readonly dropdownMenuWidth: "244px";
991
+ readonly dropdownMenuWidth: "200px";
948
992
  readonly sidebarWidth: "256px";
949
- readonly toastMinWidth: "325px";
993
+ readonly toastMinWidth: "200px";
950
994
  readonly toastMaxWidth: "325px";
951
995
  readonly dialogMaxWidth: "600px";
952
996
  /** Viewport-relative — not a Foundation px step */
@@ -1011,6 +1055,33 @@ declare const overlays: {
1011
1055
  readonly ghostButtonHoverDark: "rgba(255, 255, 255, 0.08)";
1012
1056
  };
1013
1057
 
1058
+ /**
1059
+ * Foundation blur primitives — raw `backdrop-filter` / filter blur steps.
1060
+ * Semantic roles live in `semantic/blur.ts` and must reference these values
1061
+ * (do not invent px at the semantic or component layer).
1062
+ *
1063
+ * Naming: value-based keys (`blur2`, `blur8`), same idea as `foundationSize160`.
1064
+ */
1065
+
1066
+ declare const blurs: FoundationBlurTokens;
1067
+
1068
+ /**
1069
+ * Maps each semantic blur role → Foundation blur key for CSS
1070
+ * `--refineui-blur-*` → `var(--refineui-foundation-blur-*)`.
1071
+ */
1072
+ declare const semanticBlurFoundationKeys: {
1073
+ /** Dialog / Drawer scrim — light frosted dim behind modal chrome */
1074
+ readonly overlayScrim: "blur2";
1075
+ /** Frosted glass surfaces (menus, toast plate, …) */
1076
+ readonly surfaceFrost: "blur16";
1077
+ };
1078
+ type SemanticBlurName = keyof typeof semanticBlurFoundationKeys;
1079
+ /** Resolved blur strings for JS layout math. Source of truth is Foundation. */
1080
+ declare const semanticBlur: {
1081
+ readonly overlayScrim: string;
1082
+ readonly surfaceFrost: string;
1083
+ };
1084
+
1014
1085
  /**
1015
1086
  * Foundation motion primitives — raw duration / easing / scale / distance steps.
1016
1087
  * Semantic roles live in `semantic/interaction.ts` and must reference these values
@@ -1046,4 +1117,4 @@ declare const zIndex: ZIndexTokens;
1046
1117
 
1047
1118
  declare const textAlignments: TextAlignments;
1048
1119
 
1049
- export { type BorderRadiusTokens, type ComponentSizeName, type FontFamilyTokens, type FontSizeTokens, type FontWeightTokens, type FoundationMotionTokens, type FoundationSizeName, type FoundationTypographyName, type LineHeightTokens, type MotionTokens, type PaletteColors, SEMANTIC_COLOR_ROWS, SEMANTIC_FOCUS_PAIRS, SEMANTIC_PALETTE_PAIRS, SEMANTIC_TEXT, type SemanticColorModePair, type SemanticColorName, type SemanticFocusName, type SemanticInteractionTokens, type SemanticPaletteName, type SemanticPalettePair, type SemanticPalettePairFor, type SemanticPalettePairsOf, type SemanticShadowElevationName, type SemanticShadowElevationPair, type SemanticShadowElevationTokens, type SemanticTextName, type SemanticThemeMap, type ShadowColorTokens, type ShadowLevel, type ShadowTokens, type SpacingTokens, type StrokeWidthTokens, type TextAlignment, type TextAlignments, type Theme, type ThemeContextKey, type TokenMeta, type TokenStatus, type TypographyStyle, type TypographyStyles, type ZIndexTokens, borderRadii, colors, componentSizeFoundationKeys, componentSizes, fontFamilies, fontSizes, fontWeights, foundationSizes, iconSizes, lineHeights, motion, opacities, overlays, semanticColors, semanticFocus, semanticInteraction, semanticShadows, shadow2Lighter, shadowColors, shadows, spacings, strokeWidths, surfaceOverlayRgba, textAlignments, toBoxShadow, typographys, zIndex };
1120
+ export { type BorderRadiusTokens, type ComponentSizeName, type FontFamilyTokens, type FontSizeTokens, type FontWeightTokens, type FoundationBlurName, type FoundationBlurTokens, type FoundationMotionTokens, type FoundationSizeName, type FoundationTypographyName, type LineHeightTokens, type MotionTokens, type PaletteColors, SEMANTIC_COLOR_ROWS, SEMANTIC_FOCUS_PAIRS, SEMANTIC_PALETTE_PAIRS, SEMANTIC_TEXT, type SemanticBlurName, type SemanticBlurTokens, type SemanticColorModePair, type SemanticColorName, type SemanticElevationName, type SemanticElevationTokens, type SemanticFocusName, type SemanticInteractionTokens, type SemanticPaletteName, type SemanticPalettePair, type SemanticPalettePairFor, type SemanticPalettePairsOf, type SemanticShadowElevationName, type SemanticShadowElevationPair, type SemanticShadowElevationTokens, type SemanticTextName, type SemanticThemeMap, type ShadowColorTokens, type ShadowLevel, type ShadowTokens, type SpacingTokens, type StrokeWidthTokens, type TextAlignment, type TextAlignments, type Theme, type ThemeContextKey, type TokenMeta, type TokenStatus, type TypographyStyle, type TypographyStyles, type ZIndexTokens, blurs, borderRadii, colors, componentSizeFoundationKeys, componentSizes, fontFamilies, fontSizes, fontWeights, foundationSizes, iconSizes, lineHeights, motion, opacities, overlays, semanticBlur, semanticBlurFoundationKeys, semanticColors, semanticElevations, semanticFocus, semanticInteraction, semanticShadows, shadow2Lighter, shadowColors, shadows, spacings, strokeWidths, surfaceFrostedRgba, surfaceOverlayRgba, textAlignments, toBoxShadow, typographys, zIndex };
package/dist/index.d.ts CHANGED
@@ -215,6 +215,13 @@ type SemanticShadowElevationPair = {
215
215
  type SemanticShadowElevationName = "shadow2" | "shadow4" | "shadow8" | "shadow16" | "shadow24" | "shadow32" | "shadow64";
216
216
  /** Semantic elevation name → per-theme ShadowLevel (`semanticShadows`) */
217
217
  type SemanticShadowElevationTokens = Record<SemanticShadowElevationName, SemanticShadowElevationPair>;
218
+ /**
219
+ * Intent-level elevation roles. Components consume these names rather than
220
+ * choosing a numbered shadow step, while the mapping remains traceable to the
221
+ * Foundation elevation scale.
222
+ */
223
+ type SemanticElevationName = "surface" | "raised" | "floating" | "overlay" | "modal" | "toast";
224
+ type SemanticElevationTokens = Record<SemanticElevationName, SemanticShadowElevationPair>;
218
225
  /**
219
226
  * Design tokens for stroke width
220
227
  */
@@ -239,6 +246,27 @@ type BorderRadiusTokens = {
239
246
  roundedXXLarge: string;
240
247
  roundedCircle: string;
241
248
  };
249
+ /**
250
+ * Foundation blur primitives (`global/blurs.ts`).
251
+ * Value-based steps only — no UI role names.
252
+ */
253
+ type FoundationBlurTokens = {
254
+ blurNone: string;
255
+ blur2: string;
256
+ blur4: string;
257
+ blur8: string;
258
+ blur12: string;
259
+ blur16: string;
260
+ };
261
+ type FoundationBlurName = keyof FoundationBlurTokens;
262
+ /**
263
+ * Semantic blur roles (`semantic/blur.ts`) — resolved Foundation strings.
264
+ * Prefer role keys (`overlayScrim`, `surfaceFrost`) in component / CSS code.
265
+ */
266
+ type SemanticBlurTokens = {
267
+ overlayScrim: string;
268
+ surfaceFrost: string;
269
+ };
242
270
  /**
243
271
  * Design tokens for spacing size
244
272
  */
@@ -701,14 +729,22 @@ declare const SEMANTIC_PALETTE_PAIRS: {
701
729
  };
702
730
  };
703
731
  type SemanticPaletteName = keyof typeof SEMANTIC_PALETTE_PAIRS;
704
- /** Legacy row shape: [aliasTail, lightKey, darkKey | "__RGBA__"] (surfaceOverlay only) */
705
- declare const SEMANTIC_COLOR_ROWS: readonly [...(readonly ["backgroundBrandActive" | "backgroundBrandDisabled" | "backgroundBrandHover" | "backgroundBrandStrong" | "backgroundBrandSubtle" | "backgroundBrand" | "backgroundDiscoveryHover" | "backgroundDiscoverySubtle" | "backgroundDiscovery" | "backgroundErrorHover" | "backgroundErrorSubtle" | "backgroundError" | "backgroundInfoHover" | "backgroundInfoSubtle" | "backgroundInfo" | "backgroundPrimaryActive" | "backgroundPrimaryHover" | "backgroundPrimary" | "backgroundSuccessHover" | "backgroundSuccessSubtle" | "backgroundSuccess" | "backgroundSurfaceActive" | "backgroundSurfaceDisabled" | "backgroundSurfaceHover" | "backgroundSurfaceSelected" | "backgroundSurface" | "backgroundWarningHover" | "backgroundWarningSubtle" | "backgroundWarning" | "borderDefault" | "borderDisabled" | "borderDiscovery" | "borderError" | "borderFocus" | "borderHover" | "borderInfo" | "borderStrong" | "borderSubtle" | "borderSuccess" | "borderWarning" | "foregroundBrandStrong" | "foregroundBrand" | "foregroundDisabled" | "foregroundDiscovery" | "foregroundError" | "foregroundInfo" | "foregroundInversed" | "foregroundLinkActive" | "foregroundLinkHover" | "foregroundLinkVisited" | "foregroundLink" | "foregroundOnBrand" | "foregroundOnDiscovery" | "foregroundOnError" | "foregroundOnInfo" | "foregroundOnSuccess" | "foregroundOnWarning" | "foregroundPlaceholder" | "foregroundPrimaryHover" | "foregroundPrimary" | "foregroundSecondary" | "foregroundSuccess" | "foregroundTertiary" | "foregroundWarning" | "surfaceElevated" | "surfaceInverse" | "surfacePopover" | "surfaceSunken" | "surfaceTooltip", keyof PaletteColors, keyof PaletteColors])[], readonly ["surfaceOverlay", "__RGBA__", "__RGBA__"]];
706
- type SemanticColorName = SemanticPaletteName | "surfaceOverlay";
732
+ /** Legacy row shape: [aliasTail, lightKey, darkKey | "__RGBA__"] (RGBA aliases) */
733
+ declare const SEMANTIC_COLOR_ROWS: readonly [...(readonly ["backgroundBrandActive" | "backgroundBrandDisabled" | "backgroundBrandHover" | "backgroundBrandStrong" | "backgroundBrandSubtle" | "backgroundBrand" | "backgroundDiscoveryHover" | "backgroundDiscoverySubtle" | "backgroundDiscovery" | "backgroundErrorHover" | "backgroundErrorSubtle" | "backgroundError" | "backgroundInfoHover" | "backgroundInfoSubtle" | "backgroundInfo" | "backgroundPrimaryActive" | "backgroundPrimaryHover" | "backgroundPrimary" | "backgroundSuccessHover" | "backgroundSuccessSubtle" | "backgroundSuccess" | "backgroundSurfaceActive" | "backgroundSurfaceDisabled" | "backgroundSurfaceHover" | "backgroundSurfaceSelected" | "backgroundSurface" | "backgroundWarningHover" | "backgroundWarningSubtle" | "backgroundWarning" | "borderDefault" | "borderDisabled" | "borderDiscovery" | "borderError" | "borderFocus" | "borderHover" | "borderInfo" | "borderStrong" | "borderSubtle" | "borderSuccess" | "borderWarning" | "foregroundBrandStrong" | "foregroundBrand" | "foregroundDisabled" | "foregroundDiscovery" | "foregroundError" | "foregroundInfo" | "foregroundInversed" | "foregroundLinkActive" | "foregroundLinkHover" | "foregroundLinkVisited" | "foregroundLink" | "foregroundOnBrand" | "foregroundOnDiscovery" | "foregroundOnError" | "foregroundOnInfo" | "foregroundOnSuccess" | "foregroundOnWarning" | "foregroundPlaceholder" | "foregroundPrimaryHover" | "foregroundPrimary" | "foregroundSecondary" | "foregroundSuccess" | "foregroundTertiary" | "foregroundWarning" | "surfaceElevated" | "surfaceInverse" | "surfacePopover" | "surfaceSunken" | "surfaceTooltip", keyof PaletteColors, keyof PaletteColors])[], readonly ["surfaceOverlay", "__RGBA__", "__RGBA__"], readonly ["surfaceFrosted", "__RGBA__", "__RGBA__"]];
734
+ type SemanticColorName = SemanticPaletteName | "surfaceOverlay" | "surfaceFrosted";
707
735
  /** Foundation surfaceOverlay (Overlay and Modal) — raw RGBA */
708
736
  declare const surfaceOverlayRgba: {
709
737
  readonly light: "rgba(0, 0, 0, 0.2)";
710
738
  readonly dark: "rgba(0, 0, 0, 0.6)";
711
739
  };
740
+ /**
741
+ * Frosted panel fill (Menu / Dropdown / Select) — translucent so `surfaceFrost` blur shows.
742
+ * Keep alpha low enough that page content reads through; pair with `--refineui-blur-surface-frost`.
743
+ */
744
+ declare const surfaceFrostedRgba: {
745
+ readonly light: string;
746
+ readonly dark: string;
747
+ };
712
748
  /** Semantic colors — values are CSS var(--refineui-color-*) or rgba(...) */
713
749
  declare const semanticColors: Record<SemanticColorName, SemanticColorModePair>;
714
750
 
@@ -745,6 +781,11 @@ declare const semanticFocus: {
745
781
 
746
782
  /** `semanticShadows.shadow2.light` / `.dark` — pick global `shadows` per theme */
747
783
  declare const semanticShadows: SemanticShadowElevationTokens;
784
+ /**
785
+ * Component-facing elevation roles. Keep the numeric `semanticShadows` scale
786
+ * for Foundation traceability; use these roles in component recipes and CSS.
787
+ */
788
+ declare const semanticElevations: SemanticElevationTokens;
748
789
 
749
790
  /**
750
791
  * Semantic text roles — M3/Polaris-style meaning layer over Foundation `typographys`.
@@ -818,6 +859,7 @@ declare const foundationSizes: {
818
859
  readonly foundationSize20: "2px";
819
860
  readonly foundationSize30: "3px";
820
861
  readonly foundationSize40: "4px";
862
+ readonly foundationSize50: "5px";
821
863
  readonly foundationSize60: "6px";
822
864
  readonly foundationSize80: "8px";
823
865
  readonly foundationSize100: "10px";
@@ -875,10 +917,11 @@ declare const componentSizeFoundationKeys: {
875
917
  readonly popoverPanelWidth: "foundationSize3250";
876
918
  readonly popoverBeakInsetFromStartEdge: "foundationSize340";
877
919
  readonly popoverBeakInsetFromEndEdge: "foundationSize300";
878
- readonly menuPanelWidth: "foundationSize2440";
879
- readonly dropdownMenuWidth: "foundationSize2440";
920
+ readonly navigationMenuItemMinWidth: "foundationSize400";
921
+ readonly menuPanelWidth: "foundationSize2000";
922
+ readonly dropdownMenuWidth: "foundationSize2000";
880
923
  readonly sidebarWidth: "foundationSize2560";
881
- readonly toastMinWidth: "foundationSize3250";
924
+ readonly toastMinWidth: "foundationSize2000";
882
925
  readonly toastMaxWidth: "foundationSize3250";
883
926
  readonly dialogMaxWidth: "foundationSize6000";
884
927
  readonly dialogWidthSm: "foundationSize3000";
@@ -942,11 +985,12 @@ declare const componentSizes: {
942
985
  readonly popoverPanelWidth: "325px";
943
986
  readonly popoverBeakInsetFromStartEdge: "34px";
944
987
  readonly popoverBeakInsetFromEndEdge: "30px";
945
- readonly menuPanelWidth: "244px";
988
+ readonly navigationMenuItemMinWidth: "40px";
989
+ readonly menuPanelWidth: "200px";
946
990
  /** @deprecated Same as `menuPanelWidth` */
947
- readonly dropdownMenuWidth: "244px";
991
+ readonly dropdownMenuWidth: "200px";
948
992
  readonly sidebarWidth: "256px";
949
- readonly toastMinWidth: "325px";
993
+ readonly toastMinWidth: "200px";
950
994
  readonly toastMaxWidth: "325px";
951
995
  readonly dialogMaxWidth: "600px";
952
996
  /** Viewport-relative — not a Foundation px step */
@@ -1011,6 +1055,33 @@ declare const overlays: {
1011
1055
  readonly ghostButtonHoverDark: "rgba(255, 255, 255, 0.08)";
1012
1056
  };
1013
1057
 
1058
+ /**
1059
+ * Foundation blur primitives — raw `backdrop-filter` / filter blur steps.
1060
+ * Semantic roles live in `semantic/blur.ts` and must reference these values
1061
+ * (do not invent px at the semantic or component layer).
1062
+ *
1063
+ * Naming: value-based keys (`blur2`, `blur8`), same idea as `foundationSize160`.
1064
+ */
1065
+
1066
+ declare const blurs: FoundationBlurTokens;
1067
+
1068
+ /**
1069
+ * Maps each semantic blur role → Foundation blur key for CSS
1070
+ * `--refineui-blur-*` → `var(--refineui-foundation-blur-*)`.
1071
+ */
1072
+ declare const semanticBlurFoundationKeys: {
1073
+ /** Dialog / Drawer scrim — light frosted dim behind modal chrome */
1074
+ readonly overlayScrim: "blur2";
1075
+ /** Frosted glass surfaces (menus, toast plate, …) */
1076
+ readonly surfaceFrost: "blur16";
1077
+ };
1078
+ type SemanticBlurName = keyof typeof semanticBlurFoundationKeys;
1079
+ /** Resolved blur strings for JS layout math. Source of truth is Foundation. */
1080
+ declare const semanticBlur: {
1081
+ readonly overlayScrim: string;
1082
+ readonly surfaceFrost: string;
1083
+ };
1084
+
1014
1085
  /**
1015
1086
  * Foundation motion primitives — raw duration / easing / scale / distance steps.
1016
1087
  * Semantic roles live in `semantic/interaction.ts` and must reference these values
@@ -1046,4 +1117,4 @@ declare const zIndex: ZIndexTokens;
1046
1117
 
1047
1118
  declare const textAlignments: TextAlignments;
1048
1119
 
1049
- export { type BorderRadiusTokens, type ComponentSizeName, type FontFamilyTokens, type FontSizeTokens, type FontWeightTokens, type FoundationMotionTokens, type FoundationSizeName, type FoundationTypographyName, type LineHeightTokens, type MotionTokens, type PaletteColors, SEMANTIC_COLOR_ROWS, SEMANTIC_FOCUS_PAIRS, SEMANTIC_PALETTE_PAIRS, SEMANTIC_TEXT, type SemanticColorModePair, type SemanticColorName, type SemanticFocusName, type SemanticInteractionTokens, type SemanticPaletteName, type SemanticPalettePair, type SemanticPalettePairFor, type SemanticPalettePairsOf, type SemanticShadowElevationName, type SemanticShadowElevationPair, type SemanticShadowElevationTokens, type SemanticTextName, type SemanticThemeMap, type ShadowColorTokens, type ShadowLevel, type ShadowTokens, type SpacingTokens, type StrokeWidthTokens, type TextAlignment, type TextAlignments, type Theme, type ThemeContextKey, type TokenMeta, type TokenStatus, type TypographyStyle, type TypographyStyles, type ZIndexTokens, borderRadii, colors, componentSizeFoundationKeys, componentSizes, fontFamilies, fontSizes, fontWeights, foundationSizes, iconSizes, lineHeights, motion, opacities, overlays, semanticColors, semanticFocus, semanticInteraction, semanticShadows, shadow2Lighter, shadowColors, shadows, spacings, strokeWidths, surfaceOverlayRgba, textAlignments, toBoxShadow, typographys, zIndex };
1120
+ export { type BorderRadiusTokens, type ComponentSizeName, type FontFamilyTokens, type FontSizeTokens, type FontWeightTokens, type FoundationBlurName, type FoundationBlurTokens, type FoundationMotionTokens, type FoundationSizeName, type FoundationTypographyName, type LineHeightTokens, type MotionTokens, type PaletteColors, SEMANTIC_COLOR_ROWS, SEMANTIC_FOCUS_PAIRS, SEMANTIC_PALETTE_PAIRS, SEMANTIC_TEXT, type SemanticBlurName, type SemanticBlurTokens, type SemanticColorModePair, type SemanticColorName, type SemanticElevationName, type SemanticElevationTokens, type SemanticFocusName, type SemanticInteractionTokens, type SemanticPaletteName, type SemanticPalettePair, type SemanticPalettePairFor, type SemanticPalettePairsOf, type SemanticShadowElevationName, type SemanticShadowElevationPair, type SemanticShadowElevationTokens, type SemanticTextName, type SemanticThemeMap, type ShadowColorTokens, type ShadowLevel, type ShadowTokens, type SpacingTokens, type StrokeWidthTokens, type TextAlignment, type TextAlignments, type Theme, type ThemeContextKey, type TokenMeta, type TokenStatus, type TypographyStyle, type TypographyStyles, type ZIndexTokens, blurs, borderRadii, colors, componentSizeFoundationKeys, componentSizes, fontFamilies, fontSizes, fontWeights, foundationSizes, iconSizes, lineHeights, motion, opacities, overlays, semanticBlur, semanticBlurFoundationKeys, semanticColors, semanticElevations, semanticFocus, semanticInteraction, semanticShadows, shadow2Lighter, shadowColors, shadows, spacings, strokeWidths, surfaceFrostedRgba, surfaceOverlayRgba, textAlignments, toBoxShadow, typographys, zIndex };
package/dist/index.js CHANGED
@@ -24,6 +24,7 @@ __export(index_exports, {
24
24
  SEMANTIC_FOCUS_PAIRS: () => SEMANTIC_FOCUS_PAIRS,
25
25
  SEMANTIC_PALETTE_PAIRS: () => SEMANTIC_PALETTE_PAIRS,
26
26
  SEMANTIC_TEXT: () => SEMANTIC_TEXT,
27
+ blurs: () => blurs,
27
28
  borderRadii: () => borderRadii,
28
29
  colors: () => colors,
29
30
  componentSizeFoundationKeys: () => componentSizeFoundationKeys,
@@ -37,7 +38,10 @@ __export(index_exports, {
37
38
  motion: () => motion,
38
39
  opacities: () => opacities,
39
40
  overlays: () => overlays,
41
+ semanticBlur: () => semanticBlur,
42
+ semanticBlurFoundationKeys: () => semanticBlurFoundationKeys,
40
43
  semanticColors: () => semanticColors,
44
+ semanticElevations: () => semanticElevations,
41
45
  semanticFocus: () => semanticFocus,
42
46
  semanticInteraction: () => semanticInteraction,
43
47
  semanticShadows: () => semanticShadows,
@@ -46,6 +50,7 @@ __export(index_exports, {
46
50
  shadows: () => shadows,
47
51
  spacings: () => spacings,
48
52
  strokeWidths: () => strokeWidths,
53
+ surfaceFrostedRgba: () => surfaceFrostedRgba,
49
54
  surfaceOverlayRgba: () => surfaceOverlayRgba,
50
55
  textAlignments: () => textAlignments,
51
56
  toBoxShadow: () => toBoxShadow,
@@ -261,12 +266,17 @@ var SEMANTIC_PALETTE_PAIRS = {
261
266
  };
262
267
  var SEMANTIC_COLOR_ROWS = [
263
268
  ...Object.entries(SEMANTIC_PALETTE_PAIRS).map(([name, { light, dark }]) => [name, light, dark]),
264
- ["surfaceOverlay", "__RGBA__", "__RGBA__"]
269
+ ["surfaceOverlay", "__RGBA__", "__RGBA__"],
270
+ ["surfaceFrosted", "__RGBA__", "__RGBA__"]
265
271
  ];
266
272
  var surfaceOverlayRgba = {
267
273
  light: "rgba(0, 0, 0, 0.2)",
268
274
  dark: "rgba(0, 0, 0, 0.6)"
269
275
  };
276
+ var surfaceFrostedRgba = {
277
+ light: hexToRgba(colors.neutralWhite, 0.55),
278
+ dark: hexToRgba(colors.neutral900, 0.55)
279
+ };
270
280
  function buildSemanticColors() {
271
281
  const out = {};
272
282
  for (const name of Object.keys(SEMANTIC_PALETTE_PAIRS)) {
@@ -277,6 +287,7 @@ function buildSemanticColors() {
277
287
  };
278
288
  }
279
289
  out.surfaceOverlay = { light: surfaceOverlayRgba.light, dark: surfaceOverlayRgba.dark };
290
+ out.surfaceFrosted = { light: surfaceFrostedRgba.light, dark: surfaceFrostedRgba.dark };
280
291
  return out;
281
292
  }
282
293
  var semanticColors = buildSemanticColors();
@@ -540,6 +551,14 @@ var semanticShadows = {
540
551
  shadow32: { light: shadows.shadow32Light, dark: shadows.shadow32Dark },
541
552
  shadow64: { light: shadows.shadow64Light, dark: shadows.shadow64Dark }
542
553
  };
554
+ var semanticElevations = {
555
+ surface: semanticShadows.shadow2,
556
+ raised: semanticShadows.shadow4,
557
+ floating: semanticShadows.shadow8,
558
+ overlay: semanticShadows.shadow16,
559
+ modal: semanticShadows.shadow24,
560
+ toast: semanticShadows.shadow16
561
+ };
543
562
 
544
563
  // src/semantic/text.ts
545
564
  var SEMANTIC_TEXT = {
@@ -626,6 +645,7 @@ var foundationSizes = {
626
645
  foundationSize20: "2px",
627
646
  foundationSize30: "3px",
628
647
  foundationSize40: "4px",
648
+ foundationSize50: "5px",
629
649
  foundationSize60: "6px",
630
650
  foundationSize80: "8px",
631
651
  foundationSize100: "10px",
@@ -680,10 +700,11 @@ var componentSizeFoundationKeys = {
680
700
  popoverPanelWidth: "foundationSize3250",
681
701
  popoverBeakInsetFromStartEdge: "foundationSize340",
682
702
  popoverBeakInsetFromEndEdge: "foundationSize300",
683
- menuPanelWidth: "foundationSize2440",
684
- dropdownMenuWidth: "foundationSize2440",
703
+ navigationMenuItemMinWidth: "foundationSize400",
704
+ menuPanelWidth: "foundationSize2000",
705
+ dropdownMenuWidth: "foundationSize2000",
685
706
  sidebarWidth: "foundationSize2560",
686
- toastMinWidth: "foundationSize3250",
707
+ toastMinWidth: "foundationSize2000",
687
708
  toastMaxWidth: "foundationSize3250",
688
709
  dialogMaxWidth: "foundationSize6000",
689
710
  dialogWidthSm: "foundationSize3000",
@@ -745,6 +766,7 @@ var componentSizes = {
745
766
  popoverPanelWidth: fromFoundation("popoverPanelWidth"),
746
767
  popoverBeakInsetFromStartEdge: fromFoundation("popoverBeakInsetFromStartEdge"),
747
768
  popoverBeakInsetFromEndEdge: fromFoundation("popoverBeakInsetFromEndEdge"),
769
+ navigationMenuItemMinWidth: fromFoundation("navigationMenuItemMinWidth"),
748
770
  menuPanelWidth: fromFoundation("menuPanelWidth"),
749
771
  /** @deprecated Same as `menuPanelWidth` */
750
772
  dropdownMenuWidth: fromFoundation("dropdownMenuWidth"),
@@ -809,6 +831,31 @@ var overlays = {
809
831
  ghostButtonHoverDark: `rgba(255, 255, 255, ${opacities.opacityGhostHover})`
810
832
  };
811
833
 
834
+ // src/global/blurs.ts
835
+ var blurs = {
836
+ blurNone: "0",
837
+ blur2: "2px",
838
+ blur4: "4px",
839
+ blur8: "8px",
840
+ blur12: "12px",
841
+ blur16: "16px"
842
+ };
843
+
844
+ // src/semantic/blur.ts
845
+ var semanticBlurFoundationKeys = {
846
+ /** Dialog / Drawer scrim — light frosted dim behind modal chrome */
847
+ overlayScrim: "blur2",
848
+ /** Frosted glass surfaces (menus, toast plate, …) */
849
+ surfaceFrost: "blur16"
850
+ };
851
+ function fromFoundation2(key) {
852
+ return blurs[semanticBlurFoundationKeys[key]];
853
+ }
854
+ var semanticBlur = {
855
+ overlayScrim: fromFoundation2("overlayScrim"),
856
+ surfaceFrost: fromFoundation2("surfaceFrost")
857
+ };
858
+
812
859
  // src/global/borderRadii.ts
813
860
  var borderRadii = {
814
861
  roundedNone: "0",
@@ -948,6 +995,7 @@ var textAlignments = {
948
995
  SEMANTIC_FOCUS_PAIRS,
949
996
  SEMANTIC_PALETTE_PAIRS,
950
997
  SEMANTIC_TEXT,
998
+ blurs,
951
999
  borderRadii,
952
1000
  colors,
953
1001
  componentSizeFoundationKeys,
@@ -961,7 +1009,10 @@ var textAlignments = {
961
1009
  motion,
962
1010
  opacities,
963
1011
  overlays,
1012
+ semanticBlur,
1013
+ semanticBlurFoundationKeys,
964
1014
  semanticColors,
1015
+ semanticElevations,
965
1016
  semanticFocus,
966
1017
  semanticInteraction,
967
1018
  semanticShadows,
@@ -970,6 +1021,7 @@ var textAlignments = {
970
1021
  shadows,
971
1022
  spacings,
972
1023
  strokeWidths,
1024
+ surfaceFrostedRgba,
973
1025
  surfaceOverlayRgba,
974
1026
  textAlignments,
975
1027
  toBoxShadow,
package/dist/index.mjs CHANGED
@@ -205,12 +205,17 @@ var SEMANTIC_PALETTE_PAIRS = {
205
205
  };
206
206
  var SEMANTIC_COLOR_ROWS = [
207
207
  ...Object.entries(SEMANTIC_PALETTE_PAIRS).map(([name, { light, dark }]) => [name, light, dark]),
208
- ["surfaceOverlay", "__RGBA__", "__RGBA__"]
208
+ ["surfaceOverlay", "__RGBA__", "__RGBA__"],
209
+ ["surfaceFrosted", "__RGBA__", "__RGBA__"]
209
210
  ];
210
211
  var surfaceOverlayRgba = {
211
212
  light: "rgba(0, 0, 0, 0.2)",
212
213
  dark: "rgba(0, 0, 0, 0.6)"
213
214
  };
215
+ var surfaceFrostedRgba = {
216
+ light: hexToRgba(colors.neutralWhite, 0.55),
217
+ dark: hexToRgba(colors.neutral900, 0.55)
218
+ };
214
219
  function buildSemanticColors() {
215
220
  const out = {};
216
221
  for (const name of Object.keys(SEMANTIC_PALETTE_PAIRS)) {
@@ -221,6 +226,7 @@ function buildSemanticColors() {
221
226
  };
222
227
  }
223
228
  out.surfaceOverlay = { light: surfaceOverlayRgba.light, dark: surfaceOverlayRgba.dark };
229
+ out.surfaceFrosted = { light: surfaceFrostedRgba.light, dark: surfaceFrostedRgba.dark };
224
230
  return out;
225
231
  }
226
232
  var semanticColors = buildSemanticColors();
@@ -484,6 +490,14 @@ var semanticShadows = {
484
490
  shadow32: { light: shadows.shadow32Light, dark: shadows.shadow32Dark },
485
491
  shadow64: { light: shadows.shadow64Light, dark: shadows.shadow64Dark }
486
492
  };
493
+ var semanticElevations = {
494
+ surface: semanticShadows.shadow2,
495
+ raised: semanticShadows.shadow4,
496
+ floating: semanticShadows.shadow8,
497
+ overlay: semanticShadows.shadow16,
498
+ modal: semanticShadows.shadow24,
499
+ toast: semanticShadows.shadow16
500
+ };
487
501
 
488
502
  // src/semantic/text.ts
489
503
  var SEMANTIC_TEXT = {
@@ -570,6 +584,7 @@ var foundationSizes = {
570
584
  foundationSize20: "2px",
571
585
  foundationSize30: "3px",
572
586
  foundationSize40: "4px",
587
+ foundationSize50: "5px",
573
588
  foundationSize60: "6px",
574
589
  foundationSize80: "8px",
575
590
  foundationSize100: "10px",
@@ -624,10 +639,11 @@ var componentSizeFoundationKeys = {
624
639
  popoverPanelWidth: "foundationSize3250",
625
640
  popoverBeakInsetFromStartEdge: "foundationSize340",
626
641
  popoverBeakInsetFromEndEdge: "foundationSize300",
627
- menuPanelWidth: "foundationSize2440",
628
- dropdownMenuWidth: "foundationSize2440",
642
+ navigationMenuItemMinWidth: "foundationSize400",
643
+ menuPanelWidth: "foundationSize2000",
644
+ dropdownMenuWidth: "foundationSize2000",
629
645
  sidebarWidth: "foundationSize2560",
630
- toastMinWidth: "foundationSize3250",
646
+ toastMinWidth: "foundationSize2000",
631
647
  toastMaxWidth: "foundationSize3250",
632
648
  dialogMaxWidth: "foundationSize6000",
633
649
  dialogWidthSm: "foundationSize3000",
@@ -689,6 +705,7 @@ var componentSizes = {
689
705
  popoverPanelWidth: fromFoundation("popoverPanelWidth"),
690
706
  popoverBeakInsetFromStartEdge: fromFoundation("popoverBeakInsetFromStartEdge"),
691
707
  popoverBeakInsetFromEndEdge: fromFoundation("popoverBeakInsetFromEndEdge"),
708
+ navigationMenuItemMinWidth: fromFoundation("navigationMenuItemMinWidth"),
692
709
  menuPanelWidth: fromFoundation("menuPanelWidth"),
693
710
  /** @deprecated Same as `menuPanelWidth` */
694
711
  dropdownMenuWidth: fromFoundation("dropdownMenuWidth"),
@@ -753,6 +770,31 @@ var overlays = {
753
770
  ghostButtonHoverDark: `rgba(255, 255, 255, ${opacities.opacityGhostHover})`
754
771
  };
755
772
 
773
+ // src/global/blurs.ts
774
+ var blurs = {
775
+ blurNone: "0",
776
+ blur2: "2px",
777
+ blur4: "4px",
778
+ blur8: "8px",
779
+ blur12: "12px",
780
+ blur16: "16px"
781
+ };
782
+
783
+ // src/semantic/blur.ts
784
+ var semanticBlurFoundationKeys = {
785
+ /** Dialog / Drawer scrim — light frosted dim behind modal chrome */
786
+ overlayScrim: "blur2",
787
+ /** Frosted glass surfaces (menus, toast plate, …) */
788
+ surfaceFrost: "blur16"
789
+ };
790
+ function fromFoundation2(key) {
791
+ return blurs[semanticBlurFoundationKeys[key]];
792
+ }
793
+ var semanticBlur = {
794
+ overlayScrim: fromFoundation2("overlayScrim"),
795
+ surfaceFrost: fromFoundation2("surfaceFrost")
796
+ };
797
+
756
798
  // src/global/borderRadii.ts
757
799
  var borderRadii = {
758
800
  roundedNone: "0",
@@ -891,6 +933,7 @@ export {
891
933
  SEMANTIC_FOCUS_PAIRS,
892
934
  SEMANTIC_PALETTE_PAIRS,
893
935
  SEMANTIC_TEXT,
936
+ blurs,
894
937
  borderRadii,
895
938
  colors,
896
939
  componentSizeFoundationKeys,
@@ -904,7 +947,10 @@ export {
904
947
  motion,
905
948
  opacities,
906
949
  overlays,
950
+ semanticBlur,
951
+ semanticBlurFoundationKeys,
907
952
  semanticColors,
953
+ semanticElevations,
908
954
  semanticFocus,
909
955
  semanticInteraction,
910
956
  semanticShadows,
@@ -913,6 +959,7 @@ export {
913
959
  shadows,
914
960
  spacings,
915
961
  strokeWidths,
962
+ surfaceFrostedRgba,
916
963
  surfaceOverlayRgba,
917
964
  textAlignments,
918
965
  toBoxShadow,
@@ -0,0 +1,29 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "foundation": {
4
+ "blurNone": "0",
5
+ "blur2": "2px",
6
+ "blur4": "4px",
7
+ "blur8": "8px",
8
+ "blur12": "12px",
9
+ "blur16": "16px"
10
+ },
11
+ "semantic": {
12
+ "overlayScrim": {
13
+ "foundation": "blur2",
14
+ "resolved": "2px",
15
+ "cssVar": "--refineui-blur-overlay-scrim"
16
+ },
17
+ "surfaceFrost": {
18
+ "foundation": "blur16",
19
+ "resolved": "16px",
20
+ "cssVar": "--refineui-blur-surface-frost"
21
+ }
22
+ },
23
+ "accessibility": {
24
+ "reducedTransparency": {
25
+ "mediaQuery": "(prefers-reduced-transparency: reduce)",
26
+ "contract": "Backdrop-filter blur collapses to none on Dialog/Drawer scrims (refineui.css)."
27
+ }
28
+ }
29
+ }
@@ -137,11 +137,19 @@
137
137
  ],
138
138
  "status": "stable"
139
139
  },
140
+ {
141
+ "name": "navigationMenuItemMinWidth",
142
+ "cssVar": "--refineui-size-navigation-menu-item-min-width",
143
+ "references": [
144
+ "foundation.foundationSize400"
145
+ ],
146
+ "status": "stable"
147
+ },
140
148
  {
141
149
  "name": "menuPanelWidth",
142
150
  "cssVar": "--refineui-size-menu-panel-width",
143
151
  "references": [
144
- "foundation.foundationSize2440"
152
+ "foundation.foundationSize2000"
145
153
  ],
146
154
  "status": "stable"
147
155
  },
@@ -149,7 +157,7 @@
149
157
  "name": "dropdownMenuWidth",
150
158
  "cssVar": "--refineui-size-dropdown-menu-width",
151
159
  "references": [
152
- "foundation.foundationSize2440"
160
+ "foundation.foundationSize2000"
153
161
  ],
154
162
  "status": "stable"
155
163
  },
@@ -165,7 +173,7 @@
165
173
  "name": "toastMinWidth",
166
174
  "cssVar": "--refineui-size-toast-min-width",
167
175
  "references": [
168
- "foundation.foundationSize3250"
176
+ "foundation.foundationSize2000"
169
177
  ],
170
178
  "status": "stable"
171
179
  },
@@ -4,7 +4,8 @@
4
4
  "colors",
5
5
  "spacings",
6
6
  "foundationSizes",
7
- "motion"
7
+ "motion",
8
+ "blurs"
8
9
  ],
9
10
  "spacings": {
10
11
  "sizeNone": "0",
@@ -23,6 +24,7 @@
23
24
  "foundationSize20": "2px",
24
25
  "foundationSize30": "3px",
25
26
  "foundationSize40": "4px",
27
+ "foundationSize50": "5px",
26
28
  "foundationSize60": "6px",
27
29
  "foundationSize80": "8px",
28
30
  "foundationSize100": "10px",
@@ -86,5 +88,13 @@
86
88
  "distance": {
87
89
  "distance4": "4px"
88
90
  }
91
+ },
92
+ "blurs": {
93
+ "blurNone": "0",
94
+ "blur2": "2px",
95
+ "blur4": "4px",
96
+ "blur8": "8px",
97
+ "blur12": "12px",
98
+ "blur16": "16px"
89
99
  }
90
100
  }
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "generatedAt": "2026-09-08T17:24:28.239Z",
3
+ "generatedAt": "2026-09-23T05:49:28.780Z",
4
4
  "files": {
5
5
  "foundation": "./foundation.json",
6
6
  "semanticColors": "./semantic-colors.json",
7
7
  "semanticText": "./semantic-text.json",
8
8
  "motion": "./motion.json",
9
+ "blur": "./blur.json",
9
10
  "componentSizes": "./component-sizes.json",
10
11
  "focus": "./focus.json",
11
12
  "traceV2": "./trace-v2.json",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "contractLayer": "semantic-token-trace",
4
- "generatedAt": "2026-09-08T17:24:28.244Z",
4
+ "generatedAt": "2026-09-23T05:49:28.785Z",
5
5
  "tokens": {
6
6
  "backgroundBrandActive": {
7
7
  "type": "semantic",
@@ -1,4 +1,6 @@
1
1
  @theme {
2
+ --blur-refineui-overlay-scrim: var(--refineui-blur-overlay-scrim);
3
+ --blur-refineui-surface-frost: var(--refineui-blur-surface-frost);
2
4
  --border-width-refineui-hairline: var(--refineui-stroke-width-hairline);
3
5
  --border-width-refineui-none: var(--refineui-stroke-width-none);
4
6
  --border-width-refineui-thick: var(--refineui-stroke-width-thick);
@@ -70,6 +72,7 @@
70
72
  --color-refineui-alias-foreground-tertiary: var(--refineui-color-alias-foreground-tertiary);
71
73
  --color-refineui-alias-foreground-warning: var(--refineui-color-alias-foreground-warning);
72
74
  --color-refineui-alias-surface-elevated: var(--refineui-color-alias-surface-elevated);
75
+ --color-refineui-alias-surface-frosted: var(--refineui-color-alias-surface-frosted);
73
76
  --color-refineui-alias-surface-inverse: var(--refineui-color-alias-surface-inverse);
74
77
  --color-refineui-alias-surface-overlay: var(--refineui-color-alias-surface-overlay);
75
78
  --color-refineui-alias-surface-popover: var(--refineui-color-alias-surface-popover);
@@ -224,6 +227,12 @@
224
227
  --shadow-refineui-8: var(--refineui-elevation-8);
225
228
  --shadow-refineui-8dark: var(--refineui-elevation-8dark);
226
229
  --shadow-refineui-8light: var(--refineui-elevation-8light);
230
+ --shadow-refineui-floating: var(--refineui-elevation-floating);
231
+ --shadow-refineui-modal: var(--refineui-elevation-modal);
232
+ --shadow-refineui-overlay: var(--refineui-elevation-overlay);
233
+ --shadow-refineui-raised: var(--refineui-elevation-raised);
234
+ --shadow-refineui-surface: var(--refineui-elevation-surface);
235
+ --shadow-refineui-toast: var(--refineui-elevation-toast);
227
236
  --spacing-refineui-accessible-clip: var(--refineui-size-accessible-clip);
228
237
  --spacing-refineui-avatar-status-xxxlarge: var(--refineui-size-avatar-status-xxxlarge);
229
238
  --spacing-refineui-button-min-height-lg: var(--refineui-size-button-min-height-lg);
@@ -278,6 +287,7 @@
278
287
  --spacing-refineui-foundation-size-440: var(--refineui-size-foundation-size-440);
279
288
  --spacing-refineui-foundation-size-4500: var(--refineui-size-foundation-size-4500);
280
289
  --spacing-refineui-foundation-size-480: var(--refineui-size-foundation-size-480);
290
+ --spacing-refineui-foundation-size-50: var(--refineui-size-foundation-size-50);
281
291
  --spacing-refineui-foundation-size-520: var(--refineui-size-foundation-size-520);
282
292
  --spacing-refineui-foundation-size-540: var(--refineui-size-foundation-size-540);
283
293
  --spacing-refineui-foundation-size-5750: var(--refineui-size-foundation-size-5750);
@@ -295,6 +305,7 @@
295
305
  --spacing-refineui-icon-xxlarge: var(--refineui-icon-size-xxlarge);
296
306
  --spacing-refineui-icon-xxsmall: var(--refineui-icon-size-xxsmall);
297
307
  --spacing-refineui-menu-panel-width: var(--refineui-size-menu-panel-width);
308
+ --spacing-refineui-navigation-menu-item-min-width: var(--refineui-size-navigation-menu-item-min-width);
298
309
  --spacing-refineui-pagination-button-min-width: var(--refineui-size-pagination-button-min-width);
299
310
  --spacing-refineui-popover-beak-inset-from-end-edge: var(--refineui-size-popover-beak-inset-from-end-edge);
300
311
  --spacing-refineui-popover-beak-inset-from-start-edge: var(--refineui-size-popover-beak-inset-from-start-edge);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@refineui/tokens",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "RefineUI Theme Tokens",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",