Skip to content
RefineUI

Blur

Backdrop and surface blur steps for frosted chrome.

Prefer semantic roles (overlayScrim, surfaceFrost) — CSS --refineui-blur-overlay-scrim. Do not invent a one-off blur(2px) in components.

TokenCSS variableFoundationUse
overlayScrim--refineui-blur-overlay-scrimblur2Dialog / Drawer scrim backdrop-filter
surfaceFrost--refineui-blur-surface-frostblur16Menu / Dropdown / Select / Context Menu / SidebarPeek frosted panels
scrollEdge--refineui-blur-scroll-edgeblur2Rows crossing a ScrollArea edge (data-scroll-edge-item), e.g. Command, Select, Dropdown

Pair the blur with translucent fill surfaceFrosted (--refineui-color-alias-surface-frosted). Opaque backgroundPrimary alone will hide the blur.

Value-based keys only — extend here before adding new semantic roles.

TokenValue
blurNone0
blur22px
blur44px
blur88px
blur1212px
blur1616px

Scrim tint stays on surfaceOverlay / --refineui-overlay-backdrop (see Opacity and Color). Blur is the filter radius only.

prefers-reduced-transparency: reduce collapses Dialog/Drawer backdrop-filter to none in refineui.css.

.menu-panel {
background: var(--refineui-color-alias-surface-frosted);
backdrop-filter: blur(var(--refineui-blur-surface-frost));
}
.scrim {
background: var(--refineui-overlay-backdrop);
backdrop-filter: blur(var(--refineui-blur-overlay-scrim));
}