banhaten 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +177 -139
- package/CONTRIBUTING.md +46 -46
- package/README.md +192 -192
- package/SECURITY.md +15 -15
- package/banhaten.config.example.json +11 -11
- package/docs/design-spacing.md +13 -13
- package/docs/design-system/README.md +22 -22
- package/docs/design-system/adoption-quality-remediation.md +87 -87
- package/docs/design-system/agent-usage.md +13 -13
- package/docs/design-system/appearance-presets.md +189 -189
- package/docs/design-system/appearances/default.md +94 -94
- package/docs/design-system/appearances/rounded.md +95 -95
- package/docs/design-system/appearances/sharp.md +95 -95
- package/docs/design-system/component-docs-pattern.md +81 -81
- package/docs/design-system/component-implementation-ownership-audit.md +245 -245
- package/docs/design-system/component-quality-audit-2026-08-20.md +225 -225
- package/docs/design-system/component-showcase-consistency-report.md +219 -219
- package/docs/design-system/component-token-consistency-audit.md +173 -173
- package/docs/design-system/components/README.md +91 -90
- package/docs/design-system/components/accordion.md +52 -52
- package/docs/design-system/components/activity-feed.md +93 -93
- package/docs/design-system/components/activity-heatmap.md +56 -56
- package/docs/design-system/components/alert-dialog.md +71 -71
- package/docs/design-system/components/alert.md +103 -97
- package/docs/design-system/components/app-header.md +97 -0
- package/docs/design-system/components/aspect-ratio.md +45 -45
- package/docs/design-system/components/attribute.md +101 -89
- package/docs/design-system/components/autocomplete.md +75 -75
- package/docs/design-system/components/avatar.md +53 -53
- package/docs/design-system/components/badge.md +55 -55
- package/docs/design-system/components/banner.md +86 -86
- package/docs/design-system/components/breadcrumbs.md +181 -177
- package/docs/design-system/components/button-group.md +97 -97
- package/docs/design-system/components/button.md +80 -80
- package/docs/design-system/components/card.md +102 -88
- package/docs/design-system/components/carousel.md +46 -46
- package/docs/design-system/components/catalog-components.md +46 -46
- package/docs/design-system/components/checkbox.md +53 -53
- package/docs/design-system/components/collapsible.md +63 -63
- package/docs/design-system/components/command.md +61 -61
- package/docs/design-system/components/context-menu.md +45 -45
- package/docs/design-system/components/date-picker.md +80 -80
- package/docs/design-system/components/divider.md +102 -102
- package/docs/design-system/components/empty-state.md +56 -56
- package/docs/design-system/components/field.md +70 -70
- package/docs/design-system/components/file-upload.md +186 -186
- package/docs/design-system/components/hover-card.md +47 -47
- package/docs/design-system/components/icons.md +48 -48
- package/docs/design-system/components/input-group.md +57 -57
- package/docs/design-system/components/input-otp.md +56 -56
- package/docs/design-system/components/input.md +111 -109
- package/docs/design-system/components/item.md +58 -58
- package/docs/design-system/components/kbd.md +49 -49
- package/docs/design-system/components/label.md +49 -49
- package/docs/design-system/components/menu.md +94 -73
- package/docs/design-system/components/menubar.md +46 -46
- package/docs/design-system/components/modal.md +104 -104
- package/docs/design-system/components/native-select.md +53 -53
- package/docs/design-system/components/navigation-menu.md +49 -49
- package/docs/design-system/components/onboarding-step-list-item.md +81 -81
- package/docs/design-system/components/page-header.md +127 -93
- package/docs/design-system/components/pagination.md +56 -56
- package/docs/design-system/components/popover.md +59 -59
- package/docs/design-system/components/progress-slider.md +49 -49
- package/docs/design-system/components/progress.md +76 -76
- package/docs/design-system/components/radio-card.md +50 -50
- package/docs/design-system/components/radio-group.md +56 -56
- package/docs/design-system/components/resizable.md +43 -43
- package/docs/design-system/components/scroll-area.md +50 -50
- package/docs/design-system/components/segmented-control.md +54 -54
- package/docs/design-system/components/select.md +68 -64
- package/docs/design-system/components/sheet.md +66 -66
- package/docs/design-system/components/sidebar.md +167 -111
- package/docs/design-system/components/skeleton.md +74 -74
- package/docs/design-system/components/slideout.md +64 -64
- package/docs/design-system/components/slider.md +62 -62
- package/docs/design-system/components/social-button.md +49 -49
- package/docs/design-system/components/spinner.md +62 -62
- package/docs/design-system/components/steps.md +65 -65
- package/docs/design-system/components/table.md +499 -422
- package/docs/design-system/components/tabs.md +74 -59
- package/docs/design-system/components/tag.md +79 -79
- package/docs/design-system/components/textarea.md +49 -49
- package/docs/design-system/components/timeline.md +82 -82
- package/docs/design-system/components/toast.md +57 -57
- package/docs/design-system/components/toggle.md +80 -80
- package/docs/design-system/components/toolbar.md +89 -89
- package/docs/design-system/components/tooltip.md +92 -92
- package/docs/design-system/components/typography.md +18 -18
- package/docs/design-system/density-and-elevation.md +65 -65
- package/docs/design-system/design-system-test-missing-items.md +368 -368
- package/docs/design-system/direction-and-localization.md +23 -23
- package/docs/design-system/form-recipes.md +73 -73
- package/docs/design-system/gap-promotion-policy.md +21 -21
- package/docs/design-system/icons.md +74 -74
- package/docs/design-system/installation.md +70 -70
- package/docs/design-system/launch-comparison-shadcn.md +98 -98
- package/docs/design-system/registry-and-cli.md +64 -64
- package/docs/design-system/release-policy.md +30 -30
- package/docs/design-system/roadmap.md +14 -14
- package/docs/design-system/support-matrix.md +23 -23
- package/docs/design-system/tabs.md +54 -54
- package/docs/design-system/template-gap-audit.md +32 -32
- package/docs/design-system/templates.md +59 -59
- package/docs/design-system/token-governance.md +72 -72
- package/package.json +98 -98
- package/registry/component-contract.json +40 -40
- package/registry/components/accordion.tsx +155 -155
- package/registry/components/alert-dialog.tsx +297 -297
- package/registry/components/alert.tsx +309 -293
- package/registry/components/app-header.tsx +151 -0
- package/registry/components/aspect-ratio.tsx +30 -30
- package/registry/components/attribute.tsx +489 -454
- package/registry/components/autocomplete.tsx +598 -598
- package/registry/components/avatar.tsx +385 -385
- package/registry/components/badge.tsx +630 -629
- package/registry/components/button-group.tsx +565 -565
- package/registry/components/button.tsx +128 -127
- package/registry/components/card.tsx +651 -638
- package/registry/components/carousel.tsx +296 -296
- package/registry/components/chart.tsx +203 -203
- package/registry/components/checkbox.tsx +247 -247
- package/registry/components/collapsible.tsx +109 -109
- package/registry/components/command.tsx +208 -208
- package/registry/components/context-menu.tsx +236 -236
- package/registry/components/date-picker.tsx +1289 -1289
- package/registry/components/expanded/ActivityFeed.tsx +227 -227
- package/registry/components/expanded/ActivityHeatmap.tsx +64 -64
- package/registry/components/expanded/Banner.tsx +179 -179
- package/registry/components/expanded/Breadcrumbs.tsx +135 -131
- package/registry/components/expanded/CatalogComponentsShowcase.tsx +205 -205
- package/registry/components/expanded/CatalogDivider.tsx +49 -49
- package/registry/components/expanded/EmptyState.tsx +155 -155
- package/registry/components/expanded/FileUpload.tsx +543 -543
- package/registry/components/expanded/OnboardingStepListItem.tsx +60 -60
- package/registry/components/expanded/PageHeader.tsx +209 -179
- package/registry/components/expanded/Slideout.tsx +108 -108
- package/registry/components/expanded/Steps.tsx +402 -402
- package/registry/components/expanded/Table.tsx +1109 -1092
- package/registry/components/expanded/Timeline.tsx +203 -203
- package/registry/components/expanded/activityFeed.css +248 -248
- package/registry/components/expanded/activityHeatmap.css +66 -66
- package/registry/components/expanded/banner.css +260 -260
- package/registry/components/expanded/breadcrumbs.css +157 -140
- package/registry/components/expanded/catalogComponentsShowcase.css +87 -87
- package/registry/components/expanded/divider.css +75 -75
- package/registry/components/expanded/emptyState.css +111 -111
- package/registry/components/expanded/fileUpload.css +457 -457
- package/registry/components/expanded/onboardingStepListItem.css +135 -135
- package/registry/components/expanded/pageHeader.css +284 -248
- package/registry/components/expanded/slideout.css +276 -276
- package/registry/components/expanded/steps.css +356 -356
- package/registry/components/expanded/table.css +655 -606
- package/registry/components/expanded/timeline.css +286 -286
- package/registry/components/field.tsx +283 -283
- package/registry/components/hover-card.tsx +48 -48
- package/registry/components/input-content.ts +107 -107
- package/registry/components/input-group.tsx +130 -130
- package/registry/components/input-otp.tsx +584 -584
- package/registry/components/input.tsx +992 -990
- package/registry/components/item.tsx +189 -189
- package/registry/components/kbd.tsx +246 -246
- package/registry/components/label.tsx +78 -78
- package/registry/components/menu.tsx +1091 -978
- package/registry/components/menubar.tsx +226 -226
- package/registry/components/modal.tsx +872 -872
- package/registry/components/native-select.tsx +205 -205
- package/registry/components/navigation-menu.tsx +171 -171
- package/registry/components/pagination.css +36 -36
- package/registry/components/pagination.tsx +560 -560
- package/registry/components/popover.tsx +338 -338
- package/registry/components/progress-slider.tsx +216 -216
- package/registry/components/radio-card.tsx +676 -676
- package/registry/components/radio-group.tsx +570 -570
- package/registry/components/resizable.tsx +108 -108
- package/registry/components/scroll-area.tsx +91 -91
- package/registry/components/segmented-control.tsx +87 -87
- package/registry/components/select-content.tsx +218 -218
- package/registry/components/select.tsx +937 -937
- package/registry/components/sheet.tsx +305 -305
- package/registry/components/sidebar.tsx +1535 -1433
- package/registry/components/skeleton.css +54 -54
- package/registry/components/skeleton.tsx +482 -482
- package/registry/components/slider.tsx +380 -380
- package/registry/components/social-button.tsx +387 -387
- package/registry/components/spinner.tsx +78 -78
- package/registry/components/table-elements.tsx +287 -128
- package/registry/components/tabs.css +246 -222
- package/registry/components/tabs.tsx +245 -241
- package/registry/components/tag.tsx +423 -423
- package/registry/components/textarea.tsx +610 -610
- package/registry/components/toast.tsx +136 -136
- package/registry/components/toggle.tsx +256 -256
- package/registry/components/toolbar.tsx +539 -539
- package/registry/components/tooltip.tsx +433 -433
- package/registry/examples/alert-demo.tsx +34 -34
- package/registry/examples/alert-dialog-demo.tsx +42 -42
- package/registry/examples/app-header-demo.tsx +40 -0
- package/registry/examples/aspect-ratio-demo.tsx +11 -11
- package/registry/examples/attribute-demo.tsx +65 -65
- package/registry/examples/autocomplete-demo.tsx +109 -109
- package/registry/examples/avatar-demo.tsx +132 -132
- package/registry/examples/badge-demo.tsx +69 -69
- package/registry/examples/button-demo.tsx +86 -86
- package/registry/examples/button-group-demo.tsx +63 -63
- package/registry/examples/card-demo.tsx +86 -86
- package/registry/examples/carousel-demo.tsx +43 -43
- package/registry/examples/chart-demo.tsx +18 -18
- package/registry/examples/checkbox-demo.tsx +62 -62
- package/registry/examples/collapsible-demo.tsx +16 -16
- package/registry/examples/collection-filter-bar-demo.tsx +135 -135
- package/registry/examples/command-demo.tsx +42 -42
- package/registry/examples/command-palette-demo.tsx +235 -235
- package/registry/examples/context-menu-demo.tsx +29 -29
- package/registry/examples/control-density-contract-demo.tsx +65 -65
- package/registry/examples/date-picker-demo.tsx +127 -127
- package/registry/examples/divider-demo.tsx +17 -17
- package/registry/examples/expanded/activity-heatmap-demo.tsx +29 -29
- package/registry/examples/expanded/banner-demo.tsx +48 -48
- package/registry/examples/expanded/breadcrumbs-demo.tsx +59 -59
- package/registry/examples/expanded/empty-state-demo.tsx +39 -39
- package/registry/examples/expanded/file-upload-demo.tsx +60 -60
- package/registry/examples/expanded/onboarding-step-demo.tsx +11 -11
- package/registry/examples/expanded/slideout-demo.tsx +15 -15
- package/registry/examples/expanded/steps-demo.tsx +29 -29
- package/registry/examples/expanded/tabs-demo.tsx +13 -13
- package/registry/examples/expanded/timeline-demo.tsx +18 -18
- package/registry/examples/field-demo.tsx +51 -51
- package/registry/examples/hover-card-demo.tsx +23 -23
- package/registry/examples/input-actions-demo.tsx +36 -36
- package/registry/examples/input-demo.tsx +87 -87
- package/registry/examples/input-group-demo.tsx +16 -16
- package/registry/examples/input-otp-demo.tsx +72 -72
- package/registry/examples/item-demo.tsx +46 -46
- package/registry/examples/kbd-demo.tsx +12 -12
- package/registry/examples/label-demo.tsx +20 -20
- package/registry/examples/menu-demo.tsx +122 -122
- package/registry/examples/menubar-demo.tsx +34 -34
- package/registry/examples/modal-demo.tsx +74 -74
- package/registry/examples/native-select-demo.tsx +16 -16
- package/registry/examples/navigation-menu-demo.tsx +29 -29
- package/registry/examples/pagination-demo.tsx +20 -20
- package/registry/examples/popover-demo.tsx +547 -547
- package/registry/examples/progress-demo.tsx +37 -37
- package/registry/examples/progress-slider-demo.tsx +29 -29
- package/registry/examples/radio-card-demo.tsx +51 -51
- package/registry/examples/radio-group-demo.tsx +62 -62
- package/registry/examples/resizable-demo.tsx +22 -22
- package/registry/examples/results-toolbar-demo.tsx +44 -44
- package/registry/examples/scroll-area-demo.tsx +15 -15
- package/registry/examples/segmented-control-demo.tsx +39 -39
- package/registry/examples/select-demo.tsx +87 -87
- package/registry/examples/sheet-demo.tsx +47 -47
- package/registry/examples/sidebar-demo.tsx +101 -101
- package/registry/examples/slider-demo.tsx +31 -31
- package/registry/examples/social-button-demo.tsx +61 -61
- package/registry/examples/spinner-demo.tsx +59 -59
- package/registry/examples/tabs-demo.tsx +13 -13
- package/registry/examples/tag-demo.tsx +29 -29
- package/registry/examples/textarea-demo.tsx +79 -79
- package/registry/examples/toast-demo.tsx +35 -35
- package/registry/examples/toggle-demo.tsx +59 -59
- package/registry/examples/tooltip-demo.tsx +115 -115
- package/registry/guidance/USAGE.md +27 -27
- package/registry/hooks/use-direction.ts +207 -207
- package/registry/index.json +387 -17
- package/registry/styles/globals.css +46 -0
- package/registry.json +24 -2
- package/schema/config.schema.json +51 -51
- package/schema/registry.schema.json +194 -194
- package/schema/tokens.schema.json +167 -167
- package/src/cli/command-line.js +194 -194
- package/src/cli/config-editors.js +9 -9
- package/src/cli/doctor.js +399 -399
- package/src/cli/file-transaction.js +302 -302
- package/src/cli/global-css.js +153 -153
- package/src/cli/index.js +1002 -1002
- package/src/cli/install-plan.js +592 -592
- package/src/cli/install-receipt.js +171 -171
- package/src/cli/jsonc.js +203 -203
- package/src/cli/package-install-state.js +254 -254
- package/src/cli/package-manager.js +238 -238
- package/src/cli/package-plan.js +185 -185
- package/src/cli/package-version.js +97 -97
- package/src/cli/registry-query.js +207 -207
- package/src/cli/reporting.js +55 -55
- package/src/cli/schema-validation.js +19 -19
- package/src/cli/source-scanner.js +686 -686
- package/src/cli/vite-config.js +478 -478
- package/tokens/banhaten.tokens.json +184 -0
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
# Typography
|
|
2
|
-
|
|
3
|
-
Banhaten exposes text utility classes generated from the design token contract. Use `.bh-text-*` classes when you need token-exact typography without pulling in a React component.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
```html
|
|
8
|
-
<h1 class="bh-text-heading-lg-semibold">Workspace overview</h1>
|
|
9
|
-
<p class="bh-text-body-md-regular">Review project status and owners.</p>
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
## Families
|
|
13
|
-
|
|
14
|
-
The classes mirror token names across Display, Heading, and Body styles. Each class applies font size, line height, font weight, and letter spacing from `registry/styles/globals.css`.
|
|
15
|
-
|
|
16
|
-
## RTL
|
|
17
|
-
|
|
18
|
-
Typography classes do not set direction. Use `dir`, `lang`, and logical text alignment on the surrounding element.
|
|
1
|
+
# Typography
|
|
2
|
+
|
|
3
|
+
Banhaten exposes text utility classes generated from the design token contract. Use `.bh-text-*` classes when you need token-exact typography without pulling in a React component.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<h1 class="bh-text-heading-lg-semibold">Workspace overview</h1>
|
|
9
|
+
<p class="bh-text-body-md-regular">Review project status and owners.</p>
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Families
|
|
13
|
+
|
|
14
|
+
The classes mirror token names across Display, Heading, and Body styles. Each class applies font size, line height, font weight, and letter spacing from `registry/styles/globals.css`.
|
|
15
|
+
|
|
16
|
+
## RTL
|
|
17
|
+
|
|
18
|
+
Typography classes do not set direction. Use `dir`, `lang`, and logical text alignment on the surrounding element.
|
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
# Density and Elevation
|
|
2
|
-
|
|
3
|
-
## Density
|
|
4
|
-
|
|
5
|
-
Banhaten exposes one semantic density contract for controls that must align in a
|
|
6
|
-
product surface:
|
|
7
|
-
|
|
8
|
-
| Density | Height | Typical use |
|
|
9
|
-
| --- | ---: | --- |
|
|
10
|
-
| `compact` | 32px | Dense desktop tables and constrained toolbars |
|
|
11
|
-
| `default` | 36px | Standard forms, search, filters, and actions |
|
|
12
|
-
| `comfortable` | 40px | Prominent forms and less dense product areas |
|
|
13
|
-
|
|
14
|
-
Use `density` when Input, Select, Date Picker, Button, Button Group, Segmented
|
|
15
|
-
Control, or Toolbar controls sit in the same row. The semantic prop overrides
|
|
16
|
-
the component's legacy `size` prop. Existing `size` values remain supported for
|
|
17
|
-
compatibility and for component-specific variants outside the shared 32/36/40
|
|
18
|
-
control family.
|
|
19
|
-
|
|
20
|
-
```tsx
|
|
21
|
-
<Input density="default" />
|
|
22
|
-
<Select density="default" />
|
|
23
|
-
<DatePicker density="default" />
|
|
24
|
-
<Button density="default">Apply</Button>
|
|
25
|
-
<ToggleGroup density="default" />
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Do not align controls by adding raw `h-*`, padding, radius, or font-size
|
|
29
|
-
utilities. Choose one semantic density at the containing form or toolbar and
|
|
30
|
-
pass it to every control. Compact controls are intended for pointer-led desktop
|
|
31
|
-
interfaces; products with touch requirements should prefer `comfortable` or
|
|
32
|
-
provide a larger interaction target around the control.
|
|
33
|
-
|
|
34
|
-
This is a component composition contract, not a global scale transform. It does
|
|
35
|
-
not silently resize navigation, cards, typography, or unrelated layout spacing.
|
|
36
|
-
|
|
37
|
-
## Elevation
|
|
38
|
-
|
|
39
|
-
Elevation uses two layers in one public namespace:
|
|
40
|
-
|
|
41
|
-
- General steps: `--elevation-01` through `--elevation-07`.
|
|
42
|
-
- Semantic aliases: `--elevation-component-*`, focus/danger rings, menus, controls, and component-specific treatments.
|
|
43
|
-
|
|
44
|
-
The seven general steps mirror the current Figma `elevation/01` through
|
|
45
|
-
`elevation/07` effect styles in [Shadow tests → With Variables](https://www.figma.com/design/LVAWtr5A5oEcAvsBmk6vdt/Banhaten-Design-system-3.0?node-id=6436-13190).
|
|
46
|
-
The geometry is shared across modes. Figma's bound shadow color variables make
|
|
47
|
-
the dark-mode drops, rings, and highlights stronger, so Banhaten publishes a
|
|
48
|
-
separate exact recipe for each mode.
|
|
49
|
-
|
|
50
|
-
| CSS token | Figma style | Current component roles |
|
|
51
|
-
| --- | --- | --- |
|
|
52
|
-
| `--elevation-01` | `elevation/01` | Flat surfaces with an ambient ring only |
|
|
53
|
-
| `--elevation-02` | `elevation/02` | Subtle lift for inner cards, inset panels, and compact raised details |
|
|
54
|
-
| `--elevation-03` | `elevation/03` | Cards, surfaces, slider thumbs, and toggle handles |
|
|
55
|
-
| `--elevation-04` | `elevation/04` | Menus, select menus, popovers, tooltips, and date surfaces |
|
|
56
|
-
| `--elevation-05` | `elevation/05` | Sticky and floating surfaces, including floating banners |
|
|
57
|
-
| `--elevation-06` | `elevation/06` | Modals and dialogs |
|
|
58
|
-
| `--elevation-07` | `elevation/07` | Full-overlay surfaces that require maximum depth |
|
|
59
|
-
|
|
60
|
-
Components consume the semantic alias that describes purpose rather than
|
|
61
|
-
selecting a visual step directly. Focus rings and inset borders remain distinct
|
|
62
|
-
effect recipes, but they share the `--elevation-*` public namespace so there is
|
|
63
|
-
no parallel shadow-token API. CSS `box-shadow` is only the browser rendering
|
|
64
|
-
mechanism. The Elevation documentation distinguishes surface depth, control
|
|
65
|
-
strokes, focus rings, overlay elevation, and intentional `none` values.
|
|
1
|
+
# Density and Elevation
|
|
2
|
+
|
|
3
|
+
## Density
|
|
4
|
+
|
|
5
|
+
Banhaten exposes one semantic density contract for controls that must align in a
|
|
6
|
+
product surface:
|
|
7
|
+
|
|
8
|
+
| Density | Height | Typical use |
|
|
9
|
+
| --- | ---: | --- |
|
|
10
|
+
| `compact` | 32px | Dense desktop tables and constrained toolbars |
|
|
11
|
+
| `default` | 36px | Standard forms, search, filters, and actions |
|
|
12
|
+
| `comfortable` | 40px | Prominent forms and less dense product areas |
|
|
13
|
+
|
|
14
|
+
Use `density` when Input, Select, Date Picker, Button, Button Group, Segmented
|
|
15
|
+
Control, or Toolbar controls sit in the same row. The semantic prop overrides
|
|
16
|
+
the component's legacy `size` prop. Existing `size` values remain supported for
|
|
17
|
+
compatibility and for component-specific variants outside the shared 32/36/40
|
|
18
|
+
control family.
|
|
19
|
+
|
|
20
|
+
```tsx
|
|
21
|
+
<Input density="default" />
|
|
22
|
+
<Select density="default" />
|
|
23
|
+
<DatePicker density="default" />
|
|
24
|
+
<Button density="default">Apply</Button>
|
|
25
|
+
<ToggleGroup density="default" />
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Do not align controls by adding raw `h-*`, padding, radius, or font-size
|
|
29
|
+
utilities. Choose one semantic density at the containing form or toolbar and
|
|
30
|
+
pass it to every control. Compact controls are intended for pointer-led desktop
|
|
31
|
+
interfaces; products with touch requirements should prefer `comfortable` or
|
|
32
|
+
provide a larger interaction target around the control.
|
|
33
|
+
|
|
34
|
+
This is a component composition contract, not a global scale transform. It does
|
|
35
|
+
not silently resize navigation, cards, typography, or unrelated layout spacing.
|
|
36
|
+
|
|
37
|
+
## Elevation
|
|
38
|
+
|
|
39
|
+
Elevation uses two layers in one public namespace:
|
|
40
|
+
|
|
41
|
+
- General steps: `--elevation-01` through `--elevation-07`.
|
|
42
|
+
- Semantic aliases: `--elevation-component-*`, focus/danger rings, menus, controls, and component-specific treatments.
|
|
43
|
+
|
|
44
|
+
The seven general steps mirror the current Figma `elevation/01` through
|
|
45
|
+
`elevation/07` effect styles in [Shadow tests → With Variables](https://www.figma.com/design/LVAWtr5A5oEcAvsBmk6vdt/Banhaten-Design-system-3.0?node-id=6436-13190).
|
|
46
|
+
The geometry is shared across modes. Figma's bound shadow color variables make
|
|
47
|
+
the dark-mode drops, rings, and highlights stronger, so Banhaten publishes a
|
|
48
|
+
separate exact recipe for each mode.
|
|
49
|
+
|
|
50
|
+
| CSS token | Figma style | Current component roles |
|
|
51
|
+
| --- | --- | --- |
|
|
52
|
+
| `--elevation-01` | `elevation/01` | Flat surfaces with an ambient ring only |
|
|
53
|
+
| `--elevation-02` | `elevation/02` | Subtle lift for inner cards, inset panels, and compact raised details |
|
|
54
|
+
| `--elevation-03` | `elevation/03` | Cards, surfaces, slider thumbs, and toggle handles |
|
|
55
|
+
| `--elevation-04` | `elevation/04` | Menus, select menus, popovers, tooltips, and date surfaces |
|
|
56
|
+
| `--elevation-05` | `elevation/05` | Sticky and floating surfaces, including floating banners |
|
|
57
|
+
| `--elevation-06` | `elevation/06` | Modals and dialogs |
|
|
58
|
+
| `--elevation-07` | `elevation/07` | Full-overlay surfaces that require maximum depth |
|
|
59
|
+
|
|
60
|
+
Components consume the semantic alias that describes purpose rather than
|
|
61
|
+
selecting a visual step directly. Focus rings and inset borders remain distinct
|
|
62
|
+
effect recipes, but they share the `--elevation-*` public namespace so there is
|
|
63
|
+
no parallel shadow-token API. CSS `box-shadow` is only the browser rendering
|
|
64
|
+
mechanism. The Elevation documentation distinguishes surface depth, control
|
|
65
|
+
strokes, focus rings, overlay elevation, and intentional `none` values.
|