mizu-ui 0.1.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 (127) hide show
  1. package/README.md +102 -0
  2. package/dist/composite/Accordion.d.ts +13 -0
  3. package/dist/composite/Accordion.d.ts.map +1 -0
  4. package/dist/composite/Accordion.js +54 -0
  5. package/dist/composite/Accordion.js.map +1 -0
  6. package/dist/composite/Dialog.d.ts +18 -0
  7. package/dist/composite/Dialog.d.ts.map +1 -0
  8. package/dist/composite/Dialog.js +113 -0
  9. package/dist/composite/Dialog.js.map +1 -0
  10. package/dist/composite/Nav.d.ts +13 -0
  11. package/dist/composite/Nav.d.ts.map +1 -0
  12. package/dist/composite/Nav.js +142 -0
  13. package/dist/composite/Nav.js.map +1 -0
  14. package/dist/composite/Tabs.d.ts +24 -0
  15. package/dist/composite/Tabs.d.ts.map +1 -0
  16. package/dist/composite/Tabs.js +53 -0
  17. package/dist/composite/Tabs.js.map +1 -0
  18. package/dist/feedback/CopyButton.d.ts +6 -0
  19. package/dist/feedback/CopyButton.d.ts.map +1 -0
  20. package/dist/feedback/CopyButton.js +50 -0
  21. package/dist/feedback/CopyButton.js.map +1 -0
  22. package/dist/feedback/CountUp.d.ts +10 -0
  23. package/dist/feedback/CountUp.d.ts.map +1 -0
  24. package/dist/feedback/CountUp.js +35 -0
  25. package/dist/feedback/CountUp.js.map +1 -0
  26. package/dist/feedback/Toast.d.ts +14 -0
  27. package/dist/feedback/Toast.d.ts.map +1 -0
  28. package/dist/feedback/Toast.js +61 -0
  29. package/dist/feedback/Toast.js.map +1 -0
  30. package/dist/index.d.ts +31 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +31 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/lab/Pinfield.d.ts +9 -0
  35. package/dist/lab/Pinfield.d.ts.map +1 -0
  36. package/dist/lab/Pinfield.js +100 -0
  37. package/dist/lab/Pinfield.js.map +1 -0
  38. package/dist/lab/RippleSurface.d.ts +6 -0
  39. package/dist/lab/RippleSurface.d.ts.map +1 -0
  40. package/dist/lab/RippleSurface.js +102 -0
  41. package/dist/lab/RippleSurface.js.map +1 -0
  42. package/dist/lab/Signal.d.ts +8 -0
  43. package/dist/lab/Signal.d.ts.map +1 -0
  44. package/dist/lab/Signal.js +101 -0
  45. package/dist/lab/Signal.js.map +1 -0
  46. package/dist/lab/useCanvas.d.ts +3 -0
  47. package/dist/lab/useCanvas.d.ts.map +1 -0
  48. package/dist/lab/useCanvas.js +63 -0
  49. package/dist/lab/useCanvas.js.map +1 -0
  50. package/dist/motion/Magnetic.d.ts +8 -0
  51. package/dist/motion/Magnetic.d.ts.map +1 -0
  52. package/dist/motion/Magnetic.js +22 -0
  53. package/dist/motion/Magnetic.js.map +1 -0
  54. package/dist/motion/Marquee.d.ts +11 -0
  55. package/dist/motion/Marquee.d.ts.map +1 -0
  56. package/dist/motion/Marquee.js +14 -0
  57. package/dist/motion/Marquee.js.map +1 -0
  58. package/dist/motion/MaskLine.d.ts +9 -0
  59. package/dist/motion/MaskLine.d.ts.map +1 -0
  60. package/dist/motion/MaskLine.js +8 -0
  61. package/dist/motion/MaskLine.js.map +1 -0
  62. package/dist/motion/PageWipe.d.ts +10 -0
  63. package/dist/motion/PageWipe.d.ts.map +1 -0
  64. package/dist/motion/PageWipe.js +60 -0
  65. package/dist/motion/PageWipe.js.map +1 -0
  66. package/dist/motion/Reveal.d.ts +12 -0
  67. package/dist/motion/Reveal.d.ts.map +1 -0
  68. package/dist/motion/Reveal.js +8 -0
  69. package/dist/motion/Reveal.js.map +1 -0
  70. package/dist/motion/easings.d.ts +4 -0
  71. package/dist/motion/easings.d.ts.map +1 -0
  72. package/dist/motion/easings.js +4 -0
  73. package/dist/motion/easings.js.map +1 -0
  74. package/dist/type/GhostWord.d.ts +7 -0
  75. package/dist/type/GhostWord.d.ts.map +1 -0
  76. package/dist/type/GhostWord.js +5 -0
  77. package/dist/type/GhostWord.js.map +1 -0
  78. package/dist/type/SoftType.d.ts +11 -0
  79. package/dist/type/SoftType.d.ts.map +1 -0
  80. package/dist/type/SoftType.js +27 -0
  81. package/dist/type/SoftType.js.map +1 -0
  82. package/dist/type/Specimen.d.ts +13 -0
  83. package/dist/type/Specimen.d.ts.map +1 -0
  84. package/dist/type/Specimen.js +82 -0
  85. package/dist/type/Specimen.js.map +1 -0
  86. package/dist/type/WaveText.d.ts +10 -0
  87. package/dist/type/WaveText.d.ts.map +1 -0
  88. package/dist/type/WaveText.js +37 -0
  89. package/dist/type/WaveText.js.map +1 -0
  90. package/dist/ui/Badge.d.ts +10 -0
  91. package/dist/ui/Badge.d.ts.map +1 -0
  92. package/dist/ui/Badge.js +26 -0
  93. package/dist/ui/Badge.js.map +1 -0
  94. package/dist/ui/Button.d.ts +19 -0
  95. package/dist/ui/Button.d.ts.map +1 -0
  96. package/dist/ui/Button.js +47 -0
  97. package/dist/ui/Button.js.map +1 -0
  98. package/dist/ui/Frame.d.ts +9 -0
  99. package/dist/ui/Frame.d.ts.map +1 -0
  100. package/dist/ui/Frame.js +37 -0
  101. package/dist/ui/Frame.js.map +1 -0
  102. package/dist/ui/Mark.d.ts +9 -0
  103. package/dist/ui/Mark.d.ts.map +1 -0
  104. package/dist/ui/Mark.js +19 -0
  105. package/dist/ui/Mark.js.map +1 -0
  106. package/dist/ui/Rule.d.ts +8 -0
  107. package/dist/ui/Rule.d.ts.map +1 -0
  108. package/dist/ui/Rule.js +22 -0
  109. package/dist/ui/Rule.js.map +1 -0
  110. package/dist/ui/SectionTag.d.ts +10 -0
  111. package/dist/ui/SectionTag.d.ts.map +1 -0
  112. package/dist/ui/SectionTag.js +17 -0
  113. package/dist/ui/SectionTag.js.map +1 -0
  114. package/dist/ui/Slider.d.ts +13 -0
  115. package/dist/ui/Slider.d.ts.map +1 -0
  116. package/dist/ui/Slider.js +18 -0
  117. package/dist/ui/Slider.js.map +1 -0
  118. package/dist/ui/Spinner.d.ts +8 -0
  119. package/dist/ui/Spinner.d.ts.map +1 -0
  120. package/dist/ui/Spinner.js +9 -0
  121. package/dist/ui/Spinner.js.map +1 -0
  122. package/dist/ui/Tooltip.d.ts +9 -0
  123. package/dist/ui/Tooltip.d.ts.map +1 -0
  124. package/dist/ui/Tooltip.js +5 -0
  125. package/dist/ui/Tooltip.js.map +1 -0
  126. package/package.json +44 -0
  127. package/styles.css +280 -0
package/styles.css ADDED
@@ -0,0 +1,280 @@
1
+ @import "@fontsource-variable/archivo";
2
+ @import "@fontsource/instrument-serif";
3
+ @import "@fontsource/jetbrains-mono";
4
+
5
+ :root,
6
+ [data-theme="dark"] {
7
+ --mizu-ink: #0f0e0c;
8
+ --mizu-ink-2: #16130f;
9
+ --mizu-ink-3: #201b15;
10
+ --mizu-paper: #f4f0e8;
11
+ --mizu-muted: #a8a193;
12
+ --mizu-faint: #6f695e;
13
+ --mizu-accent: #ff4d1c;
14
+ --mizu-accent-fill: #d23e0e;
15
+ --mizu-line: #29241d;
16
+ --mizu-line-bright: rgba(244, 240, 232, 0.22);
17
+
18
+ --mizu-font-display: "Archivo Variable", ui-sans-serif, system-ui, sans-serif;
19
+ --mizu-font-serif: "Instrument Serif", Georgia, serif;
20
+ --mizu-font-mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace;
21
+
22
+ --mizu-ease-expo: cubic-bezier(0.16, 1, 0.3, 1);
23
+ --mizu-ease-wipe: cubic-bezier(0.76, 0, 0.24, 1);
24
+ --mizu-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
25
+
26
+ --mizu-duration-fast: 180ms;
27
+ --mizu-duration-med: 420ms;
28
+ --mizu-duration-slow: 900ms;
29
+
30
+ --mizu-space-1: 4px;
31
+ --mizu-space-2: 8px;
32
+ --mizu-space-3: 12px;
33
+ --mizu-space-4: 16px;
34
+ --mizu-space-5: 24px;
35
+ --mizu-space-6: 32px;
36
+ --mizu-space-7: 48px;
37
+ --mizu-space-8: 64px;
38
+ --mizu-space-9: 96px;
39
+
40
+ --mizu-radius: 2px;
41
+ --mizu-z-base: 0;
42
+ --mizu-z-raised: 10;
43
+ --mizu-z-overlay: 60;
44
+ --mizu-z-wipe: 90;
45
+ --mizu-z-cursor: 96;
46
+ }
47
+
48
+ [data-theme="light"] {
49
+ --mizu-ink: #f4f0e8;
50
+ --mizu-ink-2: #e9e3d5;
51
+ --mizu-ink-3: #dcd4c1;
52
+ --mizu-paper: #16130f;
53
+ --mizu-muted: #6f695e;
54
+ --mizu-faint: #a8a193;
55
+ --mizu-accent: #ff4d1c;
56
+ --mizu-accent-fill: #c23a0c;
57
+ --mizu-line: #d9d2c2;
58
+ --mizu-line-bright: rgba(22, 19, 15, 0.22);
59
+ }
60
+
61
+ .mizu-root {
62
+ background: var(--mizu-ink);
63
+ color: var(--mizu-paper);
64
+ font-family: var(--mizu-font-display);
65
+ -webkit-font-smoothing: antialiased;
66
+ text-rendering: optimizeLegibility;
67
+ }
68
+
69
+ .mizu-root ::selection {
70
+ background: var(--mizu-accent);
71
+ color: var(--mizu-ink);
72
+ }
73
+
74
+ .mizu-root :focus-visible {
75
+ outline: 2px solid var(--mizu-accent);
76
+ outline-offset: 3px;
77
+ border-radius: var(--mizu-radius);
78
+ }
79
+
80
+ .mizu-font-wide {
81
+ font-stretch: 118%;
82
+ }
83
+
84
+ .mizu-font-narrow {
85
+ font-stretch: 88%;
86
+ }
87
+
88
+ .mizu-text-outline {
89
+ color: transparent;
90
+ -webkit-text-stroke: 1px var(--mizu-line-bright);
91
+ }
92
+
93
+ .mizu-text-outline-accent {
94
+ color: transparent;
95
+ -webkit-text-stroke: 1px var(--mizu-accent);
96
+ }
97
+
98
+ @media (prefers-reduced-motion: reduce) {
99
+ .mizu-root *,
100
+ .mizu-root *::before,
101
+ .mizu-root *::after {
102
+ animation-duration: 0.01ms !important;
103
+ animation-iteration-count: 1 !important;
104
+ transition-duration: 0.01ms !important;
105
+ }
106
+ }
107
+
108
+ /* ---------- component styles ---------- */
109
+
110
+ .mizu-slider-input {
111
+ -webkit-appearance: none;
112
+ appearance: none;
113
+ height: 16px;
114
+ background: transparent;
115
+ }
116
+
117
+ .mizu-slider-input::-webkit-slider-runnable-track {
118
+ height: 1px;
119
+ background: var(--mizu-line-bright);
120
+ }
121
+
122
+ .mizu-slider-input::-webkit-slider-thumb {
123
+ -webkit-appearance: none;
124
+ appearance: none;
125
+ width: 10px;
126
+ height: 10px;
127
+ margin-top: -5px;
128
+ background: var(--mizu-accent);
129
+ transform: rotate(45deg);
130
+ transition: background var(--mizu-duration-fast) ease;
131
+ }
132
+
133
+ .mizu-slider-input:hover::-webkit-slider-thumb {
134
+ background: var(--mizu-paper);
135
+ }
136
+
137
+ .mizu-slider-input::-moz-range-track {
138
+ height: 1px;
139
+ background: var(--mizu-line-bright);
140
+ }
141
+
142
+ .mizu-slider-input::-moz-range-thumb {
143
+ width: 10px;
144
+ height: 10px;
145
+ border: none;
146
+ border-radius: 0;
147
+ background: var(--mizu-accent);
148
+ transform: rotate(45deg);
149
+ }
150
+
151
+ .mizu-slider-input:focus-visible {
152
+ outline: 2px solid var(--mizu-accent);
153
+ outline-offset: 4px;
154
+ }
155
+
156
+ .mizu-tooltip {
157
+ position: relative;
158
+ display: inline-flex;
159
+ }
160
+
161
+ .mizu-tooltip-bubble {
162
+ position: absolute;
163
+ left: 50%;
164
+ bottom: calc(100% + 10px);
165
+ transform: translateX(-50%) translateY(4px);
166
+ padding: 6px 10px;
167
+ background: var(--mizu-ink-2);
168
+ border: 1px solid var(--mizu-line-bright);
169
+ font-family: var(--mizu-font-mono);
170
+ font-size: 10px;
171
+ letter-spacing: "0.2em";
172
+ text-transform: uppercase;
173
+ color: var(--mizu-paper);
174
+ white-space: nowrap;
175
+ opacity: 0;
176
+ pointer-events: none;
177
+ transition:
178
+ opacity var(--mizu-duration-fast) ease,
179
+ transform var(--mizu-duration-fast) var(--mizu-ease-expo);
180
+ z-index: var(--mizu-z-overlay);
181
+ }
182
+
183
+ .mizu-tooltip--bottom .mizu-tooltip-bubble {
184
+ bottom: auto;
185
+ top: calc(100% + 10px);
186
+ transform: translateX(-50%) translateY(-4px);
187
+ }
188
+
189
+ .mizu-tooltip:hover .mizu-tooltip-bubble,
190
+ .mizu-tooltip:focus-within .mizu-tooltip-bubble {
191
+ opacity: 1;
192
+ transform: translateX(-50%) translateY(0);
193
+ }
194
+
195
+ .mizu-nav-links {
196
+ display: none;
197
+ align-items: center;
198
+ gap: 32px;
199
+ }
200
+
201
+ .mizu-nav-chapter {
202
+ display: none;
203
+ }
204
+
205
+ .mizu-nav-burger {
206
+ display: inline-flex;
207
+ align-items: center;
208
+ }
209
+
210
+ @media (min-width: 768px) {
211
+ .mizu-nav-links {
212
+ display: flex;
213
+ }
214
+
215
+ .mizu-nav-burger {
216
+ display: none;
217
+ }
218
+ }
219
+
220
+ @media (min-width: 1024px) {
221
+ .mizu-nav-chapter {
222
+ display: block;
223
+ }
224
+ }
225
+
226
+ .mizu-nav-overlay-link:hover span:last-child {
227
+ transform: translateX(12px);
228
+ }
229
+
230
+ .mizu-btn--solid:hover:not(:disabled) {
231
+ background: var(--mizu-accent);
232
+ }
233
+
234
+ .mizu-btn--ghost:hover:not(:disabled) {
235
+ border-color: rgba(244, 240, 232, 0.7);
236
+ background: var(--mizu-ink-2);
237
+ }
238
+
239
+ .mizu-btn--inverse:hover:not(:disabled) {
240
+ background: var(--mizu-accent);
241
+ }
242
+
243
+ .mizu-btn-arrow {
244
+ transition: transform 300ms var(--mizu-ease-expo);
245
+ }
246
+
247
+ .mizu-btn:hover .mizu-btn-arrow {
248
+ transform: translate(2px, -2px);
249
+ }
250
+
251
+ .mizu-ghost {
252
+ color: transparent;
253
+ -webkit-text-stroke: 1px var(--mizu-line-bright);
254
+ transition:
255
+ color 500ms ease,
256
+ -webkit-text-stroke-color 500ms ease,
257
+ letter-spacing 500ms var(--mizu-ease-expo),
258
+ transform 500ms var(--mizu-ease-expo);
259
+ cursor: default;
260
+ user-select: none;
261
+ }
262
+
263
+ .mizu-ghost:hover {
264
+ color: var(--mizu-accent);
265
+ -webkit-text-stroke-color: transparent;
266
+ letter-spacing: -0.02em;
267
+ }
268
+
269
+ .mizu-ghost--paper:hover {
270
+ color: var(--mizu-paper);
271
+ }
272
+
273
+ .mizu-specimen-input:focus {
274
+ border-color: var(--mizu-accent) !important;
275
+ }
276
+
277
+ .mizu-specimen-toggle:hover {
278
+ border-color: var(--mizu-line-bright);
279
+ color: var(--mizu-paper);
280
+ }