@refineui/tokens 1.0.2 → 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,11 @@
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
+
3
9
  ## 1.0.2
4
10
 
5
11
  ### 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
@@ -197,8 +197,8 @@
197
197
  --refineui-size-popover-beak-inset-from-start-edge: var(--refineui-size-foundation-size-340);
198
198
  --refineui-size-popover-beak-inset-from-end-edge: var(--refineui-size-foundation-size-300);
199
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-2440);
201
- --refineui-size-dropdown-menu-width: var(--refineui-size-foundation-size-2440);
200
+ --refineui-size-menu-panel-width: var(--refineui-size-foundation-size-2000);
201
+ --refineui-size-dropdown-menu-width: var(--refineui-size-foundation-size-2000);
202
202
  --refineui-size-sidebar-width: var(--refineui-size-foundation-size-2560);
203
203
  --refineui-size-toast-min-width: var(--refineui-size-foundation-size-2000);
204
204
  --refineui-size-toast-max-width: var(--refineui-size-foundation-size-3250);
@@ -253,6 +253,15 @@
253
253
  --refineui-opacity-full: 1;
254
254
  --refineui-opacity-disabled: 0.5;
255
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);
256
265
  /* Motion — Foundation steps + Semantic role aliases */
257
266
  --refineui-foundation-motion-duration-0: 0ms;
258
267
  --refineui-foundation-motion-duration-150: 150ms;
@@ -565,6 +574,7 @@
565
574
  --refineui-color-alias-surface-sunken: var(--refineui-color-neutral-150);
566
575
  --refineui-color-alias-surface-tooltip: var(--refineui-color-neutral-750);
567
576
  --refineui-color-alias-surface-overlay: rgba(0, 0, 0, 0.2);
577
+ --refineui-color-alias-surface-frosted: rgba(255, 255, 255, 0.55);
568
578
  /* Focus ring — :focus-visible contract */
569
579
  --refineui-focus-ring-color: var(--refineui-color-neutral-750);
570
580
  --refineui-focus-ring-width: 2px;
@@ -645,6 +655,7 @@
645
655
  --refineui-color-alias-surface-sunken: var(--refineui-color-neutral-800);
646
656
  --refineui-color-alias-surface-tooltip: var(--refineui-color-neutral-300);
647
657
  --refineui-color-alias-surface-overlay: rgba(0, 0, 0, 0.6);
658
+ --refineui-color-alias-surface-frosted: rgba(26, 26, 26, 0.55);
648
659
  /* Theme-aware elevation */
649
660
  --refineui-elevation-2: var(--refineui-elevation-2dark);
650
661
  --refineui-elevation-4: var(--refineui-elevation-4dark);
package/dist/index.d.mts CHANGED
@@ -246,6 +246,27 @@ type BorderRadiusTokens = {
246
246
  roundedXXLarge: string;
247
247
  roundedCircle: string;
248
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
+ };
249
270
  /**
250
271
  * Design tokens for spacing size
251
272
  */
@@ -708,14 +729,22 @@ declare const SEMANTIC_PALETTE_PAIRS: {
708
729
  };
709
730
  };
710
731
  type SemanticPaletteName = keyof typeof SEMANTIC_PALETTE_PAIRS;
711
- /** Legacy row shape: [aliasTail, lightKey, darkKey | "__RGBA__"] (surfaceOverlay only) */
712
- 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__"]];
713
- 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";
714
735
  /** Foundation surfaceOverlay (Overlay and Modal) — raw RGBA */
715
736
  declare const surfaceOverlayRgba: {
716
737
  readonly light: "rgba(0, 0, 0, 0.2)";
717
738
  readonly dark: "rgba(0, 0, 0, 0.6)";
718
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
+ };
719
748
  /** Semantic colors — values are CSS var(--refineui-color-*) or rgba(...) */
720
749
  declare const semanticColors: Record<SemanticColorName, SemanticColorModePair>;
721
750
 
@@ -889,8 +918,8 @@ declare const componentSizeFoundationKeys: {
889
918
  readonly popoverBeakInsetFromStartEdge: "foundationSize340";
890
919
  readonly popoverBeakInsetFromEndEdge: "foundationSize300";
891
920
  readonly navigationMenuItemMinWidth: "foundationSize400";
892
- readonly menuPanelWidth: "foundationSize2440";
893
- readonly dropdownMenuWidth: "foundationSize2440";
921
+ readonly menuPanelWidth: "foundationSize2000";
922
+ readonly dropdownMenuWidth: "foundationSize2000";
894
923
  readonly sidebarWidth: "foundationSize2560";
895
924
  readonly toastMinWidth: "foundationSize2000";
896
925
  readonly toastMaxWidth: "foundationSize3250";
@@ -957,9 +986,9 @@ declare const componentSizes: {
957
986
  readonly popoverBeakInsetFromStartEdge: "34px";
958
987
  readonly popoverBeakInsetFromEndEdge: "30px";
959
988
  readonly navigationMenuItemMinWidth: "40px";
960
- readonly menuPanelWidth: "244px";
989
+ readonly menuPanelWidth: "200px";
961
990
  /** @deprecated Same as `menuPanelWidth` */
962
- readonly dropdownMenuWidth: "244px";
991
+ readonly dropdownMenuWidth: "200px";
963
992
  readonly sidebarWidth: "256px";
964
993
  readonly toastMinWidth: "200px";
965
994
  readonly toastMaxWidth: "325px";
@@ -1026,6 +1055,33 @@ declare const overlays: {
1026
1055
  readonly ghostButtonHoverDark: "rgba(255, 255, 255, 0.08)";
1027
1056
  };
1028
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
+
1029
1085
  /**
1030
1086
  * Foundation motion primitives — raw duration / easing / scale / distance steps.
1031
1087
  * Semantic roles live in `semantic/interaction.ts` and must reference these values
@@ -1061,4 +1117,4 @@ declare const zIndex: ZIndexTokens;
1061
1117
 
1062
1118
  declare const textAlignments: TextAlignments;
1063
1119
 
1064
- 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 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, borderRadii, colors, componentSizeFoundationKeys, componentSizes, fontFamilies, fontSizes, fontWeights, foundationSizes, iconSizes, lineHeights, motion, opacities, overlays, semanticColors, semanticElevations, 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
@@ -246,6 +246,27 @@ type BorderRadiusTokens = {
246
246
  roundedXXLarge: string;
247
247
  roundedCircle: string;
248
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
+ };
249
270
  /**
250
271
  * Design tokens for spacing size
251
272
  */
@@ -708,14 +729,22 @@ declare const SEMANTIC_PALETTE_PAIRS: {
708
729
  };
709
730
  };
710
731
  type SemanticPaletteName = keyof typeof SEMANTIC_PALETTE_PAIRS;
711
- /** Legacy row shape: [aliasTail, lightKey, darkKey | "__RGBA__"] (surfaceOverlay only) */
712
- 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__"]];
713
- 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";
714
735
  /** Foundation surfaceOverlay (Overlay and Modal) — raw RGBA */
715
736
  declare const surfaceOverlayRgba: {
716
737
  readonly light: "rgba(0, 0, 0, 0.2)";
717
738
  readonly dark: "rgba(0, 0, 0, 0.6)";
718
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
+ };
719
748
  /** Semantic colors — values are CSS var(--refineui-color-*) or rgba(...) */
720
749
  declare const semanticColors: Record<SemanticColorName, SemanticColorModePair>;
721
750
 
@@ -889,8 +918,8 @@ declare const componentSizeFoundationKeys: {
889
918
  readonly popoverBeakInsetFromStartEdge: "foundationSize340";
890
919
  readonly popoverBeakInsetFromEndEdge: "foundationSize300";
891
920
  readonly navigationMenuItemMinWidth: "foundationSize400";
892
- readonly menuPanelWidth: "foundationSize2440";
893
- readonly dropdownMenuWidth: "foundationSize2440";
921
+ readonly menuPanelWidth: "foundationSize2000";
922
+ readonly dropdownMenuWidth: "foundationSize2000";
894
923
  readonly sidebarWidth: "foundationSize2560";
895
924
  readonly toastMinWidth: "foundationSize2000";
896
925
  readonly toastMaxWidth: "foundationSize3250";
@@ -957,9 +986,9 @@ declare const componentSizes: {
957
986
  readonly popoverBeakInsetFromStartEdge: "34px";
958
987
  readonly popoverBeakInsetFromEndEdge: "30px";
959
988
  readonly navigationMenuItemMinWidth: "40px";
960
- readonly menuPanelWidth: "244px";
989
+ readonly menuPanelWidth: "200px";
961
990
  /** @deprecated Same as `menuPanelWidth` */
962
- readonly dropdownMenuWidth: "244px";
991
+ readonly dropdownMenuWidth: "200px";
963
992
  readonly sidebarWidth: "256px";
964
993
  readonly toastMinWidth: "200px";
965
994
  readonly toastMaxWidth: "325px";
@@ -1026,6 +1055,33 @@ declare const overlays: {
1026
1055
  readonly ghostButtonHoverDark: "rgba(255, 255, 255, 0.08)";
1027
1056
  };
1028
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
+
1029
1085
  /**
1030
1086
  * Foundation motion primitives — raw duration / easing / scale / distance steps.
1031
1087
  * Semantic roles live in `semantic/interaction.ts` and must reference these values
@@ -1061,4 +1117,4 @@ declare const zIndex: ZIndexTokens;
1061
1117
 
1062
1118
  declare const textAlignments: TextAlignments;
1063
1119
 
1064
- 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 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, borderRadii, colors, componentSizeFoundationKeys, componentSizes, fontFamilies, fontSizes, fontWeights, foundationSizes, iconSizes, lineHeights, motion, opacities, overlays, semanticColors, semanticElevations, 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,6 +38,8 @@ __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,
41
44
  semanticElevations: () => semanticElevations,
42
45
  semanticFocus: () => semanticFocus,
@@ -47,6 +50,7 @@ __export(index_exports, {
47
50
  shadows: () => shadows,
48
51
  spacings: () => spacings,
49
52
  strokeWidths: () => strokeWidths,
53
+ surfaceFrostedRgba: () => surfaceFrostedRgba,
50
54
  surfaceOverlayRgba: () => surfaceOverlayRgba,
51
55
  textAlignments: () => textAlignments,
52
56
  toBoxShadow: () => toBoxShadow,
@@ -262,12 +266,17 @@ var SEMANTIC_PALETTE_PAIRS = {
262
266
  };
263
267
  var SEMANTIC_COLOR_ROWS = [
264
268
  ...Object.entries(SEMANTIC_PALETTE_PAIRS).map(([name, { light, dark }]) => [name, light, dark]),
265
- ["surfaceOverlay", "__RGBA__", "__RGBA__"]
269
+ ["surfaceOverlay", "__RGBA__", "__RGBA__"],
270
+ ["surfaceFrosted", "__RGBA__", "__RGBA__"]
266
271
  ];
267
272
  var surfaceOverlayRgba = {
268
273
  light: "rgba(0, 0, 0, 0.2)",
269
274
  dark: "rgba(0, 0, 0, 0.6)"
270
275
  };
276
+ var surfaceFrostedRgba = {
277
+ light: hexToRgba(colors.neutralWhite, 0.55),
278
+ dark: hexToRgba(colors.neutral900, 0.55)
279
+ };
271
280
  function buildSemanticColors() {
272
281
  const out = {};
273
282
  for (const name of Object.keys(SEMANTIC_PALETTE_PAIRS)) {
@@ -278,6 +287,7 @@ function buildSemanticColors() {
278
287
  };
279
288
  }
280
289
  out.surfaceOverlay = { light: surfaceOverlayRgba.light, dark: surfaceOverlayRgba.dark };
290
+ out.surfaceFrosted = { light: surfaceFrostedRgba.light, dark: surfaceFrostedRgba.dark };
281
291
  return out;
282
292
  }
283
293
  var semanticColors = buildSemanticColors();
@@ -691,8 +701,8 @@ var componentSizeFoundationKeys = {
691
701
  popoverBeakInsetFromStartEdge: "foundationSize340",
692
702
  popoverBeakInsetFromEndEdge: "foundationSize300",
693
703
  navigationMenuItemMinWidth: "foundationSize400",
694
- menuPanelWidth: "foundationSize2440",
695
- dropdownMenuWidth: "foundationSize2440",
704
+ menuPanelWidth: "foundationSize2000",
705
+ dropdownMenuWidth: "foundationSize2000",
696
706
  sidebarWidth: "foundationSize2560",
697
707
  toastMinWidth: "foundationSize2000",
698
708
  toastMaxWidth: "foundationSize3250",
@@ -821,6 +831,31 @@ var overlays = {
821
831
  ghostButtonHoverDark: `rgba(255, 255, 255, ${opacities.opacityGhostHover})`
822
832
  };
823
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
+
824
859
  // src/global/borderRadii.ts
825
860
  var borderRadii = {
826
861
  roundedNone: "0",
@@ -960,6 +995,7 @@ var textAlignments = {
960
995
  SEMANTIC_FOCUS_PAIRS,
961
996
  SEMANTIC_PALETTE_PAIRS,
962
997
  SEMANTIC_TEXT,
998
+ blurs,
963
999
  borderRadii,
964
1000
  colors,
965
1001
  componentSizeFoundationKeys,
@@ -973,6 +1009,8 @@ var textAlignments = {
973
1009
  motion,
974
1010
  opacities,
975
1011
  overlays,
1012
+ semanticBlur,
1013
+ semanticBlurFoundationKeys,
976
1014
  semanticColors,
977
1015
  semanticElevations,
978
1016
  semanticFocus,
@@ -983,6 +1021,7 @@ var textAlignments = {
983
1021
  shadows,
984
1022
  spacings,
985
1023
  strokeWidths,
1024
+ surfaceFrostedRgba,
986
1025
  surfaceOverlayRgba,
987
1026
  textAlignments,
988
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();
@@ -634,8 +640,8 @@ var componentSizeFoundationKeys = {
634
640
  popoverBeakInsetFromStartEdge: "foundationSize340",
635
641
  popoverBeakInsetFromEndEdge: "foundationSize300",
636
642
  navigationMenuItemMinWidth: "foundationSize400",
637
- menuPanelWidth: "foundationSize2440",
638
- dropdownMenuWidth: "foundationSize2440",
643
+ menuPanelWidth: "foundationSize2000",
644
+ dropdownMenuWidth: "foundationSize2000",
639
645
  sidebarWidth: "foundationSize2560",
640
646
  toastMinWidth: "foundationSize2000",
641
647
  toastMaxWidth: "foundationSize3250",
@@ -764,6 +770,31 @@ var overlays = {
764
770
  ghostButtonHoverDark: `rgba(255, 255, 255, ${opacities.opacityGhostHover})`
765
771
  };
766
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
+
767
798
  // src/global/borderRadii.ts
768
799
  var borderRadii = {
769
800
  roundedNone: "0",
@@ -902,6 +933,7 @@ export {
902
933
  SEMANTIC_FOCUS_PAIRS,
903
934
  SEMANTIC_PALETTE_PAIRS,
904
935
  SEMANTIC_TEXT,
936
+ blurs,
905
937
  borderRadii,
906
938
  colors,
907
939
  componentSizeFoundationKeys,
@@ -915,6 +947,8 @@ export {
915
947
  motion,
916
948
  opacities,
917
949
  overlays,
950
+ semanticBlur,
951
+ semanticBlurFoundationKeys,
918
952
  semanticColors,
919
953
  semanticElevations,
920
954
  semanticFocus,
@@ -925,6 +959,7 @@ export {
925
959
  shadows,
926
960
  spacings,
927
961
  strokeWidths,
962
+ surfaceFrostedRgba,
928
963
  surfaceOverlayRgba,
929
964
  textAlignments,
930
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
+ }
@@ -149,7 +149,7 @@
149
149
  "name": "menuPanelWidth",
150
150
  "cssVar": "--refineui-size-menu-panel-width",
151
151
  "references": [
152
- "foundation.foundationSize2440"
152
+ "foundation.foundationSize2000"
153
153
  ],
154
154
  "status": "stable"
155
155
  },
@@ -157,7 +157,7 @@
157
157
  "name": "dropdownMenuWidth",
158
158
  "cssVar": "--refineui-size-dropdown-menu-width",
159
159
  "references": [
160
- "foundation.foundationSize2440"
160
+ "foundation.foundationSize2000"
161
161
  ],
162
162
  "status": "stable"
163
163
  },
@@ -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",
@@ -87,5 +88,13 @@
87
88
  "distance": {
88
89
  "distance4": "4px"
89
90
  }
91
+ },
92
+ "blurs": {
93
+ "blurNone": "0",
94
+ "blur2": "2px",
95
+ "blur4": "4px",
96
+ "blur8": "8px",
97
+ "blur12": "12px",
98
+ "blur16": "16px"
90
99
  }
91
100
  }
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "generatedAt": "2026-09-17T18:54:05.896Z",
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-17T18:54:05.899Z",
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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@refineui/tokens",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "RefineUI Theme Tokens",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",