左侧调整主题配置,下方组件实时跟随。面板即真实的 SThemeCustomizer:颜色、圆角、尺寸、间距、字体、表面、描边与逐 token 覆盖都会即时作用于当前页面。
primary、由中性基调派生的填充,以及角色色阶
SButton
SButton · SLink · SBadge · STag
SSwitch · SCheckbox · SSlider · SProgress · SRating · SPagination · SAvatar
primary-50 → primary-950
feedback 方案:destructive、success、warning、info
SAlert
Feedback scheme role
Feedback scheme role
Feedback scheme role
Feedback scheme role
SBadge · STag · SProgress
toast · SPopconfirm
destructive · destructive-foreground
细线 token、控件填充与焦点环
SInput · SSelect · STextarea · SInputNumber
SCheckbox · SRadioGroup · SSwitch · SRating · SSlider
SSegment · SToggleGroup · STagsInput · SCheckboxGroup
Focus ring · disabled — press Tab to walk the ring token
表面、弱化填充与表格描边
Surface, border, radius and shadow tokens
| Invoice | Status | Amount |
|---|---|---|
| INV-001 | Paid | $250.00 |
| INV-002 | Pending | $150.00 |
| INV-003 | Paid | $350.00 |
| INV-004 | Refunded | $450.00 |
Empty state icons and copy follow the text ladder.
层次阶梯、嵌套的 card / popover 表面与 surfaceStyle
Elevation ladder — background → card → popover → carbon
Nesting — a surface inside a surface
Surface panel
Shadow ladder
Text roles on the page surface
--foreground — the quick brown fox
--muted-foreground — the quick brown fox
muted-foreground/70 — the quick brown fox
细线 token、焦点环与模态遮罩
Hairline tokens
Control outlines — SInput · SSelect · STextarea
SCheckbox · SRadioGroup · SSwitch · STag
SSeparator
Card outlines read the same hairline tokens
Horizontal and vertical separators
Focus rings
Border opacity and ring width are global: the hairline tiles above are the same token at different alpha.
对话框与弹层所在的 popover 表面,以及遮罩
SDialog · SDrawer · SSheet · SDropdownMenu · SPopover · STooltip · SPopconfirm
Popup surface tokens
控件与文字档位共用的 size 刻度
SButton · SBadge · STag
SInput · SSelect · STextarea · SInputNumber
SCheckbox · SSwitch · SSlider · SRadioGroup · SSegment
SProgress · SAvatar
Type rungs — 4xs / 3xs / 2xs (ours) then xs → 9xl (UnoCSS)
text-4xs
text-3xs
text-2xs
text-xs
text-sm
text-base
text-lg
text-xl
text-2xl
一个种子驱动整条圆角刻度
Rung ladder — every rung is a multiple of --radius
SButton · SInput · STag · STextarea at five rungs
Nesting — inner radius derived from the outer panel
Card and controls inside it share the seed
一个变量驱动内外边距与 gap
Padding ladder — the inner block is fixed, the frame moves
Gap ladder — SButtonGroup · SToolbar · SKbd
SButtonGroup · SToolbar · SSeparator
SAlert stack · SCard padding
space-y-2 between rows
space-y-2 between rows
Cards pad their body with the same grid
三套字族角色:无衬线、标题与等宽 stack
Live stacks — read from `--font-*` on `:root`
ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serifui-serif, Georgia, Cambria, "Times New Roman", Times, serifui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospaceui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-seriffont-sans — body & controls
The sans stack drives paragraphs, labels and form chrome
font-heading — titles
Headings and display text use --font-heading
font-serif — serif copy
Prose that opts into the serif stack reads --font-serif
font-mono — code & tokens
Code, kbd and token chips read --font-mono
镜像全局角色的区域皮肤
SLayout · STreeMenu — the region skin in place
Region tokens — the sidebar mirrors the global roles
由 primary 派生的 chart-1 至 chart-5
Grouped bars
Stacked bar · legend
填充与其前景的配对一览
Solid fills — SButton on every role
Fill ↔ foreground pairs — every fill with its declared text
Text roles on the page surface
text-foreground — body copy at 14px
text-muted-foreground — body copy at 14px
text-muted-foreground/70 — body copy at 14px
In dark mode the guard re-picks a fill level or flips the foreground; the AAA policy widens the thresholds.