@hyvnt/hyvui 0.2.0 → 0.4.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.
Files changed (181) hide show
  1. package/README.md +294 -253
  2. package/dist/components/ambient/ArcaneVein.svelte +151 -0
  3. package/dist/components/ambient/ArcaneVein.svelte.d.ts +31 -0
  4. package/dist/components/ambient/BrassFiligree.svelte +109 -0
  5. package/dist/components/ambient/BrassFiligree.svelte.d.ts +20 -0
  6. package/dist/components/ambient/CornerBrackets.svelte +91 -87
  7. package/dist/components/ambient/CornerBrackets.svelte.d.ts +8 -0
  8. package/dist/components/ambient/CrystalShard.svelte +151 -0
  9. package/dist/components/ambient/CrystalShard.svelte.d.ts +19 -0
  10. package/dist/components/ambient/DataStream.svelte +117 -94
  11. package/dist/components/ambient/DataStream.svelte.d.ts +6 -0
  12. package/dist/components/ambient/EnergyArc.svelte +189 -0
  13. package/dist/components/ambient/EnergyArc.svelte.d.ts +32 -0
  14. package/dist/components/ambient/GlyphMark.svelte +75 -69
  15. package/dist/components/ambient/GlyphMark.svelte.d.ts +6 -0
  16. package/dist/components/ambient/GridOverlay.svelte +34 -28
  17. package/dist/components/ambient/GridOverlay.svelte.d.ts +8 -0
  18. package/dist/components/ambient/HexGrid.svelte +119 -0
  19. package/dist/components/ambient/HexGrid.svelte.d.ts +21 -0
  20. package/dist/components/ambient/ParallaxLayer.svelte +45 -41
  21. package/dist/components/ambient/ParallaxLayer.svelte.d.ts +7 -0
  22. package/dist/components/ambient/ScanBand.svelte +103 -91
  23. package/dist/components/ambient/ScanBand.svelte.d.ts +8 -0
  24. package/dist/components/ambient/ShimmerCloud.svelte +180 -0
  25. package/dist/components/ambient/ShimmerCloud.svelte.d.ts +21 -0
  26. package/dist/components/ambient/SignalRing.svelte +106 -100
  27. package/dist/components/ambient/SignalRing.svelte.d.ts +6 -0
  28. package/dist/components/ambient/ThreadLine.svelte +78 -78
  29. package/dist/components/ambient/ThreadLine.svelte.d.ts +7 -0
  30. package/dist/components/ambient/Vignette.svelte +30 -26
  31. package/dist/components/ambient/Vignette.svelte.d.ts +6 -0
  32. package/dist/components/depth/DepthLayer.svelte +30 -27
  33. package/dist/components/depth/DepthLayer.svelte.d.ts +8 -0
  34. package/dist/components/depth/DepthStage.svelte +67 -62
  35. package/dist/components/depth/DepthStage.svelte.d.ts +8 -0
  36. package/dist/components/depth/FloatCard.svelte +129 -104
  37. package/dist/components/depth/FloatCard.svelte.d.ts +8 -0
  38. package/dist/components/depth/HorizonGrid.svelte +241 -160
  39. package/dist/components/depth/HorizonGrid.svelte.d.ts +9 -0
  40. package/dist/components/depth/Plinth.svelte +62 -57
  41. package/dist/components/depth/Plinth.svelte.d.ts +10 -0
  42. package/dist/components/display/Avatar.svelte +69 -69
  43. package/dist/components/display/Avatar.svelte.d.ts +5 -0
  44. package/dist/components/display/Badge.svelte +75 -63
  45. package/dist/components/display/Badge.svelte.d.ts +6 -0
  46. package/dist/components/display/Blockquote.svelte +35 -34
  47. package/dist/components/display/Blockquote.svelte.d.ts +4 -0
  48. package/dist/components/display/CodeBlock.svelte +76 -76
  49. package/dist/components/display/CodeBlock.svelte.d.ts +5 -0
  50. package/dist/components/display/MetricCard.svelte +100 -83
  51. package/dist/components/display/MetricCard.svelte.d.ts +6 -0
  52. package/dist/components/display/Table.svelte +106 -104
  53. package/dist/components/display/Table.svelte.d.ts +7 -0
  54. package/dist/components/feedback/Alert.svelte +95 -76
  55. package/dist/components/feedback/Alert.svelte.d.ts +6 -0
  56. package/dist/components/feedback/EmptyState.svelte +75 -68
  57. package/dist/components/feedback/EmptyState.svelte.d.ts +7 -0
  58. package/dist/components/feedback/ErrorState.svelte +78 -73
  59. package/dist/components/feedback/ErrorState.svelte.d.ts +5 -0
  60. package/dist/components/feedback/Skeleton.svelte +58 -52
  61. package/dist/components/feedback/Skeleton.svelte.d.ts +6 -0
  62. package/dist/components/feedback/StatusDot.svelte +84 -54
  63. package/dist/components/feedback/StatusDot.svelte.d.ts +6 -0
  64. package/dist/components/feedback/StatusLine.svelte +128 -122
  65. package/dist/components/feedback/StatusLine.svelte.d.ts +6 -0
  66. package/dist/components/feedback/Toast.svelte +144 -136
  67. package/dist/components/feedback/Toast.svelte.d.ts +10 -0
  68. package/dist/components/inputs/Button.svelte +310 -237
  69. package/dist/components/inputs/Button.svelte.d.ts +8 -0
  70. package/dist/components/inputs/Checkbox.svelte +109 -105
  71. package/dist/components/inputs/Checkbox.svelte.d.ts +5 -0
  72. package/dist/components/inputs/FileUpload.svelte +170 -163
  73. package/dist/components/inputs/FileUpload.svelte.d.ts +5 -0
  74. package/dist/components/inputs/Input.svelte +153 -147
  75. package/dist/components/inputs/Input.svelte.d.ts +7 -0
  76. package/dist/components/inputs/Select.svelte +164 -150
  77. package/dist/components/inputs/Select.svelte.d.ts +8 -0
  78. package/dist/components/inputs/Textarea.svelte +160 -154
  79. package/dist/components/inputs/Textarea.svelte.d.ts +6 -0
  80. package/dist/components/inputs/Toggle.svelte +125 -120
  81. package/dist/components/inputs/Toggle.svelte.d.ts +5 -0
  82. package/dist/components/layout/Card.svelte +81 -76
  83. package/dist/components/layout/Card.svelte.d.ts +11 -0
  84. package/dist/components/layout/Drawer.svelte +140 -109
  85. package/dist/components/layout/Drawer.svelte.d.ts +6 -0
  86. package/dist/components/layout/Grid.svelte +128 -43
  87. package/dist/components/layout/Grid.svelte.d.ts +18 -2
  88. package/dist/components/layout/Modal.svelte +191 -159
  89. package/dist/components/layout/Modal.svelte.d.ts +10 -0
  90. package/dist/components/layout/Panel.svelte +58 -54
  91. package/dist/components/layout/Panel.svelte.d.ts +9 -0
  92. package/dist/components/layout/Popover.svelte +188 -67
  93. package/dist/components/layout/Popover.svelte.d.ts +19 -1
  94. package/dist/components/layout/Stack.svelte +65 -53
  95. package/dist/components/layout/Stack.svelte.d.ts +12 -0
  96. package/dist/components/navigation/Breadcrumb.svelte +78 -73
  97. package/dist/components/navigation/Breadcrumb.svelte.d.ts +8 -0
  98. package/dist/components/navigation/DropdownMenu.svelte +179 -124
  99. package/dist/components/navigation/DropdownMenu.svelte.d.ts +24 -2
  100. package/dist/components/navigation/SidebarNav.svelte +96 -90
  101. package/dist/components/navigation/SidebarNav.svelte.d.ts +9 -0
  102. package/dist/components/navigation/Tabs.svelte +106 -86
  103. package/dist/components/navigation/Tabs.svelte.d.ts +8 -0
  104. package/dist/components/navigation/Topbar.svelte +94 -85
  105. package/dist/components/navigation/Topbar.svelte.d.ts +9 -0
  106. package/dist/components/patterns/ActionBar.svelte +82 -76
  107. package/dist/components/patterns/ActionBar.svelte.d.ts +10 -0
  108. package/dist/components/patterns/ChapterMark.svelte +152 -0
  109. package/dist/components/patterns/ChapterMark.svelte.d.ts +19 -0
  110. package/dist/components/patterns/ConfirmDialog.svelte +75 -64
  111. package/dist/components/patterns/ConfirmDialog.svelte.d.ts +12 -0
  112. package/dist/components/patterns/DepthPortal.svelte +123 -0
  113. package/dist/components/patterns/DepthPortal.svelte.d.ts +24 -0
  114. package/dist/components/patterns/Manifesto.svelte +171 -0
  115. package/dist/components/patterns/Manifesto.svelte.d.ts +25 -0
  116. package/dist/components/patterns/PageHeader.svelte +117 -114
  117. package/dist/components/patterns/PageHeader.svelte.d.ts +8 -0
  118. package/dist/components/patterns/PullQuote.svelte +145 -0
  119. package/dist/components/patterns/PullQuote.svelte.d.ts +23 -0
  120. package/dist/components/patterns/RegisterSwitcher.svelte +132 -0
  121. package/dist/components/patterns/RegisterSwitcher.svelte.d.ts +21 -0
  122. package/dist/components/patterns/SearchBar.svelte +59 -59
  123. package/dist/components/patterns/SearchBar.svelte.d.ts +5 -0
  124. package/dist/components/patterns/ShowcaseFrame.svelte +117 -0
  125. package/dist/components/patterns/ShowcaseFrame.svelte.d.ts +28 -0
  126. package/dist/components/patterns/TerminalBoot.svelte +118 -104
  127. package/dist/components/patterns/TerminalBoot.svelte.d.ts +12 -0
  128. package/dist/components/primitives/Divider.svelte +56 -29
  129. package/dist/components/primitives/Divider.svelte.d.ts +5 -0
  130. package/dist/components/primitives/Icon.svelte +53 -49
  131. package/dist/components/primitives/Icon.svelte.d.ts +9 -0
  132. package/dist/components/primitives/Label.svelte +45 -44
  133. package/dist/components/primitives/Label.svelte.d.ts +6 -0
  134. package/dist/components/primitives/Surface.svelte +154 -87
  135. package/dist/components/primitives/Surface.svelte.d.ts +7 -0
  136. package/dist/components/primitives/Text.svelte +130 -98
  137. package/dist/components/primitives/Text.svelte.d.ts +7 -0
  138. package/dist/components/scenes/ArchiveScene.svelte +102 -95
  139. package/dist/components/scenes/ArchiveScene.svelte.d.ts +17 -1
  140. package/dist/components/scenes/DepthScene.svelte +128 -0
  141. package/dist/components/scenes/DepthScene.svelte.d.ts +36 -0
  142. package/dist/components/scenes/LogScene.svelte +86 -77
  143. package/dist/components/scenes/LogScene.svelte.d.ts +14 -0
  144. package/dist/components/scenes/NarrativeScene.svelte +100 -92
  145. package/dist/components/scenes/NarrativeScene.svelte.d.ts +9 -0
  146. package/dist/components/scenes/ReadoutScene.svelte +131 -107
  147. package/dist/components/scenes/ReadoutScene.svelte.d.ts +14 -1
  148. package/dist/components/scenes/StageScene.svelte +111 -104
  149. package/dist/components/scenes/StageScene.svelte.d.ts +14 -0
  150. package/dist/components/system/AppShell.svelte +62 -0
  151. package/dist/components/system/AppShell.svelte.d.ts +32 -0
  152. package/dist/examples/ArcaneShard.svelte +364 -0
  153. package/dist/examples/ArcaneShard.svelte.d.ts +3 -0
  154. package/dist/examples/FieldReport.svelte +226 -223
  155. package/dist/examples/HextechForge.svelte +324 -0
  156. package/dist/examples/HextechForge.svelte.d.ts +3 -0
  157. package/dist/examples/ObservationDeck.svelte +333 -317
  158. package/dist/examples/SignalLost.svelte +191 -191
  159. package/dist/index.d.ts +15 -1
  160. package/dist/index.js +16 -1
  161. package/dist/styles.css +115 -0
  162. package/dist/system/actions/echo.js +21 -12
  163. package/dist/system/actions/resolve.js +28 -14
  164. package/dist/system/actions/reveal.js +2 -2
  165. package/dist/system/actions/surface.js +12 -2
  166. package/dist/system/depth/depth.css +49 -49
  167. package/dist/system/depth/depth.js +1 -1
  168. package/dist/system/expressions.css +80 -80
  169. package/dist/system/override-template.css +72 -72
  170. package/dist/system/register.css +74 -74
  171. package/dist/system/register.d.ts +1 -1
  172. package/dist/system/register.js +5 -1
  173. package/dist/system/scroll-lock.d.ts +6 -0
  174. package/dist/system/scroll-lock.js +23 -0
  175. package/dist/tokens/arcane.css +96 -0
  176. package/dist/tokens/hextech.css +96 -0
  177. package/dist/tokens/tokens.css +102 -86
  178. package/dist/tokens/tokens.d.ts +41 -0
  179. package/dist/tokens/tokens.js +44 -3
  180. package/dist/utils/motion.js +1 -1
  181. package/package.json +71 -60
package/README.md CHANGED
@@ -1,253 +1,294 @@
1
- <!-- =========================================================
2
- hyvui // COMPONENT LIBRARY
3
- Svelte 5. Dark by default. Operator-adjacent.
4
- ========================================================== -->
5
-
6
- <pre align="center">
7
- ██╗ ██╗██╗ ██╗██╗ ██╗ ██╗ ██╗██╗
8
- ██║ ██║╚██╗ ██╔╝██║ ██║ ██║ ██║██║
9
- ███████║ ╚████╔╝ ██║ ██║ ██║ ██║██║
10
- ██╔══██║ ╚██╔╝ ╚██╗ ██╔╝ ██║ ██║██║
11
- ██║ ██║ ██║ ╚████╔╝ ╚████╔╝ ██║
12
- ╚═╝ ╚═╝ ╚═╝ ╚═══╝ ╚═══╝ ╚═╝
13
- </pre>
14
-
15
- <p align="center">
16
- <sub><code>svelte 5 · typescript · tailwind v4 · dark by default</code></sub>
17
- </p>
18
-
19
- <br/>
20
-
21
- <table>
22
- <tr>
23
- <td width="52%" valign="top">
24
-
25
- `01 / what it is`
26
-
27
- <pre lang="txt">
28
- [ OK ] component library for svelte 5
29
- [ OK ] token-driven, no hardcoded values
30
- [ OK ] operator aesthetic, not startup aesthetic
31
- [WARN] opinionated about how things should feel
32
- </pre>
33
-
34
- <sub><i>built for interfaces that should feel like they are paying attention.</i></sub>
35
-
36
- </td>
37
- <td width="48%" valign="top">
38
-
39
- `02 / what it is not`
40
-
41
- - a general-purpose design system
42
- - configurable to any aesthetic
43
- - optimized for light mode
44
- - trying to look like everything else
45
-
46
- <sub>the palette is two colors and they do not negotiate.</sub>
47
-
48
- </td>
49
- </tr>
50
- </table>
51
-
52
- ---
53
-
54
- `03 / install`
55
-
56
- ```sh
57
- npm install @hyvnt/hyvui
58
- ```
59
-
60
- ```svelte
61
- <script>
62
- import { Button, Text, FloatCard } from '@hyvnt/hyvui';
63
- </script>
64
- ```
65
-
66
- import the styles once at the root of your app:
67
-
68
- ```ts
69
- // app.css or root layout
70
- import '@hyvnt/hyvui/styles';
71
- ```
72
-
73
- ---
74
-
75
- `04 / structure`
76
-
77
- <table>
78
- <tr>
79
- <td valign="top" width="33%">
80
-
81
- **primitives**
82
- ```
83
- Text Label
84
- Icon Divider
85
- Surface
86
- ```
87
-
88
- **inputs**
89
- ```
90
- Button Input
91
- Textarea Select
92
- Checkbox Toggle
93
- FileUpload
94
- ```
95
-
96
- **feedback**
97
- ```
98
- Alert Toast
99
- StatusDot StatusLine
100
- Skeleton EmptyState
101
- ErrorState
102
- ```
103
-
104
- </td>
105
- <td valign="top" width="33%">
106
-
107
- **layout**
108
- ```
109
- Stack Grid
110
- Card Panel
111
- Modal Drawer
112
- Popover
113
- ```
114
-
115
- **navigation**
116
- ```
117
- Topbar SidebarNav
118
- Tabs Breadcrumb
119
- DropdownMenu
120
- ```
121
-
122
- **display**
123
- ```
124
- Badge Avatar
125
- Table CodeBlock
126
- MetricCard Blockquote
127
- ```
128
-
129
- </td>
130
- <td valign="top" width="33%">
131
-
132
- **ambient**
133
- ```
134
- GridOverlay CornerBrackets
135
- ScanBand Vignette
136
- ParallaxLayer SignalRing
137
- GlyphMark DataStream
138
- ThreadLine
139
- ```
140
-
141
- **depth**
142
- ```
143
- DepthStage DepthLayer
144
- FloatCard HorizonGrid
145
- Plinth
146
- ```
147
-
148
- **scenes**
149
- ```
150
- NarrativeScene ReadoutScene
151
- StageScene ArchiveScene
152
- LogScene
153
- ```
154
-
155
- </td>
156
- </tr>
157
- </table>
158
-
159
- ---
160
-
161
- `05 / layers`
162
-
163
- the library is organized in three additive layers. each one works without the next.
164
-
165
- <pre lang="txt">
166
- [ base ] 42 components. tokens. css custom properties throughout.
167
- nothing hardcoded. nothing fighting your cascade.
168
-
169
- [ expressive ] registers shift the ambient mood of a section.
170
- expressions carry semantic intent through typography.
171
- four actions compose onto any element.
172
-
173
- [ spatial ] CSS 3D depth system. perspective stages. tilt on pointer.
174
- receding grids. a plinth to stand things on.
175
- </pre>
176
-
177
- ---
178
-
179
- `06 / registers`
180
-
181
- registers are named aesthetic states. apply one and the ambient properties shift.
182
-
183
- ```svelte
184
- <script>
185
- import { applyRegister } from '@hyvnt/hyvui';
186
- onMount(() => applyRegister('mission-control'));
187
- </script>
188
- ```
189
-
190
- | register | character |
191
- |---|---|
192
- | `field-notebook` | warm, worn, analog |
193
- | `mission-control` | cold, precise, dense |
194
- | `archive` | flat, institutional, drained |
195
-
196
- ---
197
-
198
- `07 / expressions`
199
-
200
- text expressions carry intent beyond variant. pass them to any `Text` component.
201
-
202
- ```svelte
203
- <Text expression="title-card">the coordinates are empty now</Text>
204
- <Text expression="readout">signal: –42 dbm</Text>
205
- <Text expression="manifesto">something was here before we arrived.</Text>
206
- ```
207
-
208
- ---
209
-
210
- `08 / depth`
211
-
212
- ```svelte
213
- <DepthStage perspective="mid">
214
- <DepthLayer level="ground">
215
- <HorizonGrid rows={16} cols={10} vanishY={0.35} />
216
- </DepthLayer>
217
- <DepthLayer level="raised">
218
- <FloatCard tiltMax={6}>
219
- <Label color="muted">signal strength</Label>
220
- <Text variant="heading" color="primary">–42 dbm</Text>
221
- </FloatCard>
222
- </DepthLayer>
223
- </DepthStage>
224
- ```
225
-
226
- all 3D transforms are disabled under `prefers-reduced-motion`.
227
-
228
- ---
229
-
230
- `09 / tokens`
231
-
232
- two accent colors. everything else is neutral.
233
-
234
- ```css
235
- --accent /* gold — #c79c57 — warmth, action, age */
236
- --signal /* teal — #79a6a3 — data, status, precision */
237
- ```
238
-
239
- override per-section with `--reg-*` properties. documented in `override-template.css`.
240
-
241
- ---
242
-
243
- <details>
244
- <summary><code>10 / notes</code></summary>
245
- <br/>
246
-
247
- the library assumes you want the interface to have a mood.
248
- <br/>
249
- if you do not want that, it will still work. it will just feel a little contained.
250
- <br/><br/>
251
- svelte 5 only. no compatibility shims.
252
-
253
- </details>
1
+ <!-- =========================================================
2
+ hyvui // COMPONENT LIBRARY
3
+ Svelte 5. Dark by default. Operator-adjacent.
4
+ ========================================================== -->
5
+
6
+ <pre align="center">
7
+ ██╗ ██╗██╗ ██╗██╗ ██╗ ██╗ ██╗██╗
8
+ ██║ ██║╚██╗ ██╔╝██║ ██║ ██║ ██║██║
9
+ ███████║ ╚████╔╝ ██║ ██║ ██║ ██║██║
10
+ ██╔══██║ ╚██╔╝ ╚██╗ ██╔╝ ██║ ██║██║
11
+ ██║ ██║ ██║ ╚████╔╝ ╚████╔╝ ██║
12
+ ╚═╝ ╚═╝ ╚═╝ ╚═══╝ ╚═══╝ ╚═╝
13
+ </pre>
14
+
15
+ <p align="center">
16
+ <sub><code>svelte 5 · typescript · tailwind v4 · dark by default</code></sub>
17
+ </p>
18
+
19
+ <br/>
20
+
21
+ <table>
22
+ <tr>
23
+ <td width="52%" valign="top">
24
+
25
+ `01 / what it is`
26
+
27
+ <pre lang="txt">
28
+ [ OK ] component library for svelte 5
29
+ [ OK ] token-driven, no hardcoded values
30
+ [ OK ] operator aesthetic, not startup aesthetic
31
+ [WARN] opinionated about how things should feel
32
+ </pre>
33
+
34
+ <sub><i>built for interfaces that should feel like they are paying attention.</i></sub>
35
+
36
+ </td>
37
+ <td width="48%" valign="top">
38
+
39
+ `02 / what it is not`
40
+
41
+ - a general-purpose design system
42
+ - configurable to any aesthetic
43
+ - optimized for light mode
44
+ - trying to look like everything else
45
+
46
+ <sub>the palette is two colors and they do not negotiate.</sub>
47
+
48
+ </td>
49
+
50
+ </tr>
51
+ </table>
52
+
53
+ ---
54
+
55
+ `03 / install`
56
+
57
+ ```sh
58
+ npm install @hyvnt/hyvui
59
+ ```
60
+
61
+ ```svelte
62
+ <script>
63
+ import { Button, Text, FloatCard } from '@hyvnt/hyvui';
64
+ </script>
65
+ ```
66
+
67
+ import the styles once at the root of your app:
68
+
69
+ ```ts
70
+ // app.css or root layout
71
+ import '@hyvnt/hyvui/styles.css';
72
+ ```
73
+
74
+ ---
75
+
76
+ `04 / structure`
77
+
78
+ <table>
79
+ <tr>
80
+ <td valign="top" width="33%">
81
+
82
+ **primitives**
83
+
84
+ ```
85
+ Text Label
86
+ Icon Divider
87
+ Surface
88
+ ```
89
+
90
+ **inputs**
91
+
92
+ ```
93
+ Button Input
94
+ Textarea Select
95
+ Checkbox Toggle
96
+ FileUpload
97
+ ```
98
+
99
+ **feedback**
100
+
101
+ ```
102
+ Alert Toast
103
+ StatusDot StatusLine
104
+ Skeleton EmptyState
105
+ ErrorState
106
+ ```
107
+
108
+ </td>
109
+ <td valign="top" width="33%">
110
+
111
+ **layout**
112
+
113
+ ```
114
+ Stack Grid
115
+ Card Panel
116
+ Modal Drawer
117
+ Popover
118
+ ```
119
+
120
+ **navigation**
121
+
122
+ ```
123
+ Topbar SidebarNav
124
+ Tabs Breadcrumb
125
+ DropdownMenu
126
+ ```
127
+
128
+ **display**
129
+
130
+ ```
131
+ Badge Avatar
132
+ Table CodeBlock
133
+ MetricCard Blockquote
134
+ ```
135
+
136
+ </td>
137
+ <td valign="top" width="33%">
138
+
139
+ **ambient**
140
+
141
+ ```
142
+ GridOverlay CornerBrackets
143
+ ScanBand Vignette
144
+ ParallaxLayer SignalRing
145
+ GlyphMark DataStream
146
+ ThreadLine HexGrid
147
+ BrassFiligree CrystalShard
148
+ ArcaneVein EnergyArc
149
+ ShimmerCloud
150
+ ```
151
+
152
+ **depth**
153
+
154
+ ```
155
+ DepthStage DepthLayer
156
+ FloatCard HorizonGrid
157
+ Plinth
158
+ ```
159
+
160
+ **scenes**
161
+
162
+ ```
163
+ NarrativeScene ReadoutScene
164
+ StageScene ArchiveScene
165
+ LogScene
166
+ ```
167
+
168
+ </td>
169
+
170
+ </tr>
171
+ </table>
172
+
173
+ ---
174
+
175
+ `05 / layers`
176
+
177
+ the library is organized in three additive layers. each one works without the next.
178
+
179
+ <pre lang="txt">
180
+ [ base ] 75 components. tokens. css custom properties throughout.
181
+ nothing hardcoded. nothing fighting your cascade.
182
+
183
+ [ expressive ] registers shift the ambient mood of a section.
184
+ expressions carry semantic intent through typography.
185
+ four actions compose onto any element.
186
+
187
+ [ spatial ] CSS 3D depth system. perspective stages. tilt on pointer.
188
+ receding grids. a plinth to stand things on.
189
+ </pre>
190
+
191
+ ---
192
+
193
+ `06 / registers`
194
+
195
+ registers are named aesthetic states. apply one and the ambient properties shift.
196
+
197
+ ```svelte
198
+ <script>
199
+ import { applyRegister } from '@hyvnt/hyvui';
200
+ onMount(() => applyRegister('mission-control'));
201
+ </script>
202
+ ```
203
+
204
+ | register | character |
205
+ | ----------------- | -------------------------------------------- |
206
+ | `field-notebook` | warm, worn, analog |
207
+ | `mission-control` | cold, precise, dense |
208
+ | `archive` | flat, institutional, drained |
209
+ | `hextech` | piltover-refined. brass, crystal, mechanical |
210
+ | `arcane` | zaun-unstable. shimmer, shards, organic glow |
211
+
212
+ the hextech and arcane registers ship their own palette and motif token files. import the ones you use:
213
+
214
+ ```ts
215
+ import '@hyvnt/hyvui/styles.css'; // base tokens + all 5 register weights
216
+ import '@hyvnt/hyvui/tokens/hextech.css'; // --htx-* palette + motif tokens
217
+ import '@hyvnt/hyvui/tokens/arcane.css'; // --arc-* palette + motif tokens
218
+ ```
219
+
220
+ **motif tokens** (hextech + arcane only):
221
+
222
+ ```css
223
+ --orn-hex-density /* hex grid tile density */
224
+ --orn-vein-intensity /* arcane crack-vein strength, 0–1 */
225
+ --orn-shimmer-rate /* particle drift / shimmer speed */
226
+ ```
227
+
228
+ use `RegisterSwitcher` from the patterns layer to let users toggle at runtime:
229
+
230
+ ```svelte
231
+ <script>
232
+ import { RegisterSwitcher } from '@hyvnt/hyvui';
233
+ </script>
234
+ <RegisterSwitcher />
235
+ ```
236
+
237
+ ---
238
+
239
+ `07 / expressions`
240
+
241
+ text expressions carry intent beyond variant. pass them to any `Text` component.
242
+
243
+ ```svelte
244
+ <Text expression="title-card">the coordinates are empty now</Text>
245
+ <Text expression="readout">signal: –42 dbm</Text>
246
+ <Text expression="manifesto">something was here before we arrived.</Text>
247
+ ```
248
+
249
+ ---
250
+
251
+ `08 / depth`
252
+
253
+ ```svelte
254
+ <DepthStage perspective="mid">
255
+ <DepthLayer level="ground">
256
+ <HorizonGrid rows={16} cols={10} vanishY={0.35} />
257
+ </DepthLayer>
258
+ <DepthLayer level="raised">
259
+ <FloatCard tiltMax={6}>
260
+ <Label color="muted">signal strength</Label>
261
+ <Text variant="heading" color="primary">–42 dbm</Text>
262
+ </FloatCard>
263
+ </DepthLayer>
264
+ </DepthStage>
265
+ ```
266
+
267
+ all 3D transforms are disabled under `prefers-reduced-motion`.
268
+
269
+ ---
270
+
271
+ `09 / tokens`
272
+
273
+ two accent colors. everything else is neutral.
274
+
275
+ ```css
276
+ --accent /* gold — #c79c57 — warmth, action, age */
277
+ --signal /* teal — #79a6a3 — data, status, precision */
278
+ ```
279
+
280
+ override per-section with `--reg-*` properties. documented in `override-template.css`.
281
+
282
+ ---
283
+
284
+ <details>
285
+ <summary><code>10 / notes</code></summary>
286
+ <br/>
287
+
288
+ the library assumes you want the interface to have a mood.
289
+ <br/>
290
+ if you do not want that, it will still work. it will just feel a little contained.
291
+ <br/><br/>
292
+ svelte 5 only. no compatibility shims.
293
+
294
+ </details>