@codenhub/styles 0.0.3 → 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.
- package/LICENSE +201 -0
- package/NOTICE +52 -0
- package/README.md +60 -90
- package/dist/aesthetics/chunky-tile.css +1 -0
- package/dist/aesthetics/glass.css +1 -0
- package/dist/aesthetics/index.css +2 -0
- package/dist/aesthetics/neobrutalism.css +1 -0
- package/dist/aesthetics/pixel.css +1 -0
- package/dist/components.css +2 -2
- package/dist/index.css +2 -2
- package/dist/native.css +2 -0
- package/dist/theme.css +2 -2
- package/dist/tw/aesthetics/chunky-tile.css +107 -0
- package/dist/tw/aesthetics/glass.css +66 -0
- package/dist/tw/aesthetics/index.css +9 -0
- package/dist/tw/aesthetics/neobrutalism.css +63 -0
- package/dist/tw/aesthetics/pixel.css +88 -0
- package/dist/tw/box.css +185 -0
- package/dist/tw/components/button.css +88 -0
- package/dist/tw/components/feedback.css +163 -0
- package/dist/tw/components/form.css +601 -0
- package/dist/tw/components/index.css +18 -0
- package/dist/tw/components/loader.css +122 -0
- package/dist/tw/components/surface.css +98 -0
- package/dist/tw/components/tooltip.css +132 -0
- package/dist/tw/elevation.css +39 -0
- package/dist/tw/index.css +12 -0
- package/dist/tw/intent.css +189 -0
- package/dist/tw/native.css +203 -0
- package/dist/tw/presentation.css +77 -0
- package/dist/tw/reset.css +142 -0
- package/dist/tw/theme.css +218 -0
- package/dist/tw/typography.css +34 -0
- package/dist/tw/utilities/content.css +349 -0
- package/dist/tw/utilities/index.css +6 -0
- package/dist/tw/utilities/layout.css +107 -0
- package/docs/accessibility.md +43 -14
- package/docs/concepts.md +94 -0
- package/docs/index.md +62 -73
- package/docs/integrating/astro.md +29 -0
- package/docs/integrating/index.md +32 -0
- package/docs/integrating/nextjs.md +44 -0
- package/docs/integrating/svelte.md +37 -0
- package/docs/integrating/tailwind.md +40 -0
- package/docs/integrating/vue.md +25 -0
- package/docs/setup.md +116 -0
- package/docs/usage/aesthetics.md +197 -0
- package/docs/usage/buttons.md +74 -0
- package/docs/usage/composing.md +218 -0
- package/docs/usage/content-and-layout.md +200 -0
- package/docs/usage/customizing.md +213 -0
- package/docs/usage/feedback.md +117 -0
- package/docs/usage/forms.md +177 -0
- package/docs/usage/index.md +32 -0
- package/docs/usage/theming.md +210 -0
- package/docs/usage/tooltips.md +45 -0
- package/llms-full.txt +2122 -0
- package/llms.txt +26 -0
- package/package.json +96 -32
- package/docs/classes.md +0 -198
- package/docs/roadmap.md +0 -34
- package/docs/tests.md +0 -128
- package/docs/tokens.md +0 -101
- package/src/components/button.css +0 -155
- package/src/components/feedback.css +0 -214
- package/src/components/form.css +0 -296
- package/src/components/index.css +0 -9
- package/src/components/loader.css +0 -56
- package/src/components/surface.css +0 -6
- package/src/components/tooltip.css +0 -60
- package/src/index.css +0 -7
- package/src/overrides.css +0 -76
- package/src/theme.css +0 -136
- package/src/typography.css +0 -30
- package/src/utilities.css +0 -40
package/src/components/form.css
DELETED
|
@@ -1,296 +0,0 @@
|
|
|
1
|
-
@import "tailwindcss";
|
|
2
|
-
@import "../theme.css";
|
|
3
|
-
|
|
4
|
-
@utility field {
|
|
5
|
-
@apply flex w-full flex-col gap-1.5;
|
|
6
|
-
|
|
7
|
-
.label {
|
|
8
|
-
@apply text-text text-sm font-semibold;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
.hint {
|
|
12
|
-
@apply text-text-secondary text-[0.8125rem];
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
.error:not(.btn),
|
|
16
|
-
&-error {
|
|
17
|
-
@apply text-destructive text-[0.8125rem] font-medium;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
@utility ipt {
|
|
22
|
-
--control-bg: var(--color-background);
|
|
23
|
-
--control-border: var(--color-border);
|
|
24
|
-
--control-border-active: var(--color-primary);
|
|
25
|
-
--control-fg: var(--color-text);
|
|
26
|
-
--control-placeholder: var(--color-text-secondary);
|
|
27
|
-
|
|
28
|
-
@apply min-h-(--control-height,2.5rem) w-full rounded-(--radius-control) bg-(--control-bg) px-3 py-2 text-(--control-fg) transition-[border-color,box-shadow,color,opacity] duration-(--motion-duration-fast) ease-(--motion-ease);
|
|
29
|
-
border: var(--border-width) solid var(--control-border);
|
|
30
|
-
|
|
31
|
-
&::placeholder {
|
|
32
|
-
color: var(--control-placeholder);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
&:focus {
|
|
36
|
-
@apply outline-none;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
&:focus-visible {
|
|
40
|
-
border-color: var(--control-border-active);
|
|
41
|
-
box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
&[aria-invalid="true"] {
|
|
45
|
-
--control-border: var(--color-destructive);
|
|
46
|
-
--control-border-active: var(--color-destructive);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
&:disabled,
|
|
50
|
-
&[aria-disabled="true"],
|
|
51
|
-
&[data-disabled] {
|
|
52
|
-
@apply cursor-not-allowed;
|
|
53
|
-
|
|
54
|
-
opacity: 0.58;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
@utility textarea {
|
|
59
|
-
--control-bg: var(--color-background);
|
|
60
|
-
--control-border: var(--color-border);
|
|
61
|
-
--control-border-active: var(--color-primary);
|
|
62
|
-
--control-fg: var(--color-text);
|
|
63
|
-
--control-placeholder: var(--color-text-secondary);
|
|
64
|
-
|
|
65
|
-
@apply min-h-(--control-height,2.5rem) w-full rounded-(--radius-control) bg-(--control-bg) px-3 py-2 text-(--control-fg) transition-[border-color,box-shadow,color,opacity] duration-(--motion-duration-fast) ease-(--motion-ease);
|
|
66
|
-
border: var(--border-width) solid var(--control-border);
|
|
67
|
-
|
|
68
|
-
&::placeholder {
|
|
69
|
-
color: var(--control-placeholder);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
&:focus {
|
|
73
|
-
@apply outline-none;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
&:focus-visible {
|
|
77
|
-
border-color: var(--control-border-active);
|
|
78
|
-
box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
&[aria-invalid="true"] {
|
|
82
|
-
--control-border: var(--color-destructive);
|
|
83
|
-
--control-border-active: var(--color-destructive);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
&:disabled,
|
|
87
|
-
&[aria-disabled="true"],
|
|
88
|
-
&[data-disabled] {
|
|
89
|
-
@apply cursor-not-allowed;
|
|
90
|
-
|
|
91
|
-
opacity: 0.58;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
@apply min-h-28 resize-y;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
@utility select {
|
|
98
|
-
--control-bg: var(--color-background);
|
|
99
|
-
--control-border: var(--color-border);
|
|
100
|
-
--control-border-active: var(--color-primary);
|
|
101
|
-
--control-fg: var(--color-text);
|
|
102
|
-
--control-placeholder: var(--color-text-secondary);
|
|
103
|
-
|
|
104
|
-
@apply min-h-(--control-height,2.5rem) w-full rounded-(--radius-control) bg-(--control-bg) px-3 py-2 text-(--control-fg) transition-[border-color,box-shadow,color,opacity] duration-(--motion-duration-fast) ease-(--motion-ease);
|
|
105
|
-
border: var(--border-width) solid var(--control-border);
|
|
106
|
-
|
|
107
|
-
&::placeholder {
|
|
108
|
-
color: var(--control-placeholder);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
&:focus {
|
|
112
|
-
@apply outline-none;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
&:focus-visible {
|
|
116
|
-
border-color: var(--control-border-active);
|
|
117
|
-
box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
&[aria-invalid="true"] {
|
|
121
|
-
--control-border: var(--color-destructive);
|
|
122
|
-
--control-border-active: var(--color-destructive);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
&:disabled,
|
|
126
|
-
&[aria-disabled="true"],
|
|
127
|
-
&[data-disabled] {
|
|
128
|
-
@apply cursor-not-allowed;
|
|
129
|
-
|
|
130
|
-
opacity: 0.58;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
appearance: none;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
@utility checkbox {
|
|
137
|
-
--control-color: var(--color-text);
|
|
138
|
-
--control-contrast: var(--color-text-contrast);
|
|
139
|
-
|
|
140
|
-
@apply inline-grid size-4 cursor-pointer appearance-none place-content-center rounded-sm bg-(--color-background) transition-[background-color,border-color,box-shadow] duration-(--motion-duration-normal) ease-(--motion-ease);
|
|
141
|
-
border: var(--border-width) solid var(--color-border);
|
|
142
|
-
|
|
143
|
-
&:hover {
|
|
144
|
-
@apply border-(--color-border-hover);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
&:focus {
|
|
148
|
-
@apply outline-none;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
&:focus-visible {
|
|
152
|
-
border-color: var(--control-color);
|
|
153
|
-
box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
&::after {
|
|
157
|
-
@apply block size-3 opacity-0 transition-opacity duration-(--motion-duration-normal) ease-(--motion-ease);
|
|
158
|
-
|
|
159
|
-
background-color: var(--control-contrast);
|
|
160
|
-
content: "";
|
|
161
|
-
mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>');
|
|
162
|
-
-webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>');
|
|
163
|
-
mask-size: contain;
|
|
164
|
-
-webkit-mask-size: contain;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
&:checked {
|
|
168
|
-
border-color: var(--control-color);
|
|
169
|
-
background-color: var(--control-color);
|
|
170
|
-
|
|
171
|
-
&::after {
|
|
172
|
-
@apply opacity-100;
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
&.primary {
|
|
177
|
-
--control-color: var(--color-primary);
|
|
178
|
-
--control-contrast: var(--color-primary-contrast);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
&.secondary {
|
|
182
|
-
--control-color: var(--color-accent);
|
|
183
|
-
--control-contrast: var(--color-accent-contrast);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
&.success {
|
|
187
|
-
--control-color: var(--color-success);
|
|
188
|
-
--control-contrast: var(--color-success-contrast);
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
&.warning {
|
|
192
|
-
--control-color: var(--color-warning);
|
|
193
|
-
--control-contrast: var(--color-warning-contrast);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
&.destructive,
|
|
197
|
-
&.danger,
|
|
198
|
-
&.error {
|
|
199
|
-
--control-color: var(--color-destructive);
|
|
200
|
-
--control-contrast: var(--color-destructive-contrast);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
&.info {
|
|
204
|
-
--control-color: var(--color-info);
|
|
205
|
-
--control-contrast: var(--color-info-contrast);
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
&[aria-invalid="true"] {
|
|
209
|
-
@apply border-(--color-destructive);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
&:disabled,
|
|
213
|
-
&[aria-disabled="true"],
|
|
214
|
-
&[data-disabled] {
|
|
215
|
-
@apply cursor-not-allowed opacity-[0.58];
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
@utility switch {
|
|
220
|
-
--control-color: var(--color-text);
|
|
221
|
-
--control-contrast: var(--color-text-contrast);
|
|
222
|
-
|
|
223
|
-
@apply relative h-4.5 w-9 cursor-pointer appearance-none rounded-full bg-(--color-surface) transition-[background-color,box-shadow] duration-(--motion-duration-normal) ease-(--motion-ease);
|
|
224
|
-
|
|
225
|
-
&::after {
|
|
226
|
-
@apply absolute top-0.5 left-0.5 size-3.5 rounded-full bg-(--color-text-secondary) transition-[transform,translate,background-color] duration-(--motion-duration-normal) ease-(--motion-ease);
|
|
227
|
-
|
|
228
|
-
content: "";
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
&:hover {
|
|
232
|
-
@apply border-(--color-border-hover);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
&:focus {
|
|
236
|
-
@apply outline-none;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
&:focus-visible {
|
|
240
|
-
border-color: var(--control-color);
|
|
241
|
-
box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring);
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
&:checked {
|
|
245
|
-
border-color: var(--control-color);
|
|
246
|
-
background-color: var(--control-color);
|
|
247
|
-
|
|
248
|
-
&::after {
|
|
249
|
-
@apply translate-x-4.5;
|
|
250
|
-
|
|
251
|
-
background-color: var(--control-contrast);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
&.primary {
|
|
256
|
-
--control-color: var(--color-primary);
|
|
257
|
-
--control-contrast: var(--color-primary-contrast);
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
&.secondary {
|
|
261
|
-
--control-color: var(--color-accent);
|
|
262
|
-
--control-contrast: var(--color-accent-contrast);
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
&.success {
|
|
266
|
-
--control-color: var(--color-success);
|
|
267
|
-
--control-contrast: var(--color-success-contrast);
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
&.warning {
|
|
271
|
-
--control-color: var(--color-warning);
|
|
272
|
-
--control-contrast: var(--color-warning-contrast);
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
&.destructive,
|
|
276
|
-
&.danger,
|
|
277
|
-
&.error {
|
|
278
|
-
--control-color: var(--color-destructive);
|
|
279
|
-
--control-contrast: var(--color-destructive-contrast);
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
&.info {
|
|
283
|
-
--control-color: var(--color-info);
|
|
284
|
-
--control-contrast: var(--color-info-contrast);
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
&[aria-invalid="true"] {
|
|
288
|
-
@apply border-(--color-destructive);
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
&:disabled,
|
|
292
|
-
&[aria-disabled="true"],
|
|
293
|
-
&[data-disabled] {
|
|
294
|
-
@apply cursor-not-allowed opacity-[0.58];
|
|
295
|
-
}
|
|
296
|
-
}
|
package/src/components/index.css
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
@import "tailwindcss";
|
|
2
|
-
|
|
3
|
-
@utility ai {
|
|
4
|
-
--ai-image: url('data:image/svg+xml;utf8,<svg stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><style>.spinner_V8m1{transform-origin:center;animation:spinner_zKoa 2s linear infinite}.spinner_V8m1 circle{stroke-linecap:round;animation:spinner_YpZS 1.5s ease-in-out infinite}@keyframes spinner_zKoa{100%{transform:rotate(360deg)}}@keyframes spinner_YpZS{0%{stroke-dasharray:0 150;stroke-dashoffset:0}47.5%{stroke-dasharray:42 150;stroke-dashoffset:-16}95%,100%{stroke-dasharray:42 150;stroke-dashoffset:-59}}</style><g class="spinner_V8m1"><circle cx="12" cy="12" r="9.5" fill="none" stroke-width="3"></circle></g></svg>');
|
|
5
|
-
|
|
6
|
-
mask-image: var(--ai-image);
|
|
7
|
-
-webkit-mask-image: var(--ai-image);
|
|
8
|
-
mask-size: contain;
|
|
9
|
-
-webkit-mask-size: contain;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
@utility spinner-stretch {
|
|
13
|
-
--ai-image: url('data:image/svg+xml;utf8,<svg stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><style>.spinner_V8m1{transform-origin:center;animation:spinner_zKoa 2s linear infinite}.spinner_V8m1 circle{stroke-linecap:round;animation:spinner_YpZS 1.5s ease-in-out infinite}@keyframes spinner_zKoa{100%{transform:rotate(360deg)}}@keyframes spinner_YpZS{0%{stroke-dasharray:0 150;stroke-dashoffset:0}47.5%{stroke-dasharray:42 150;stroke-dashoffset:-16}95%,100%{stroke-dasharray:42 150;stroke-dashoffset:-59}}</style><g class="spinner_V8m1"><circle cx="12" cy="12" r="9.5" fill="none" stroke-width="3"></circle></g></svg>');
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
@utility dots-wave {
|
|
17
|
-
--ai-image: url('data:image/svg+xml;utf8,<svg fill="red" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><style>@keyframes spinner_8HQG{0%,57.14%{animation-timing-function:cubic-bezier(.33,.66,.66,1);transform:translate(0)}28.57%{animation-timing-function:cubic-bezier(.33,0,.66,.33);transform:translateY(-6px)}to{transform:translate(0)}}.spinner_qM83{animation:spinner_8HQG 1.05s infinite}</style><circle class="spinner_qM83" cx="4" cy="12" r="3"/><circle class="spinner_qM83" cx="12" cy="12" r="3" style="animation-delay:.1s"/><circle class="spinner_qM83" cx="20" cy="12" r="3" style="animation-delay:.2s"/></svg>');
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
@utility dots-fade {
|
|
21
|
-
--ai-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><style>.dot{animation:dot-anim 1s ease-in-out infinite;fill:currentColor}.d1{animation-delay:-0.32s}.d2{animation-delay:-0.16s}@keyframes dot-anim{0%,80%,100%{transform:scale(0.6);opacity:0.2}40%{transform:scale(1);opacity:1}}</style><circle class="dot d1" cx="4" cy="12" r="3" transform-origin="4px 12px"></circle><circle class="dot d2" cx="12" cy="12" r="3" transform-origin="12px 12px"></circle><circle class="dot d3" cx="20" cy="12" r="3" transform-origin="20px 12px"></circle></svg>');
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
@utility dots-queue {
|
|
25
|
-
--ai-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><style>@keyframes spinner_qtyZ{0%{r:0}25%{r:3px;cx:4px}50%{r:3px;cx:12px}75%{r:3px;cx:20px}to{r:0;cx:20px}}.spinner_nOfF{animation:spinner_qtyZ 2s cubic-bezier(.36,.6,.31,1) infinite}</style><circle class="spinner_nOfF" cx="4" cy="12" r="3"/><circle class="spinner_nOfF" cx="4" cy="12" r="3" style="animation-delay:-.5s"/><circle class="spinner_nOfF" cx="4" cy="12" r="3" style="animation-delay:-1s"/><circle class="spinner_nOfF" cx="4" cy="12" r="3" style="animation-delay:-1.5s"/></svg>');
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
@utility dots-rotate {
|
|
29
|
-
--ai-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><style>@keyframes spinner_XVY9{50%{transform:rotate(180deg)}to{transform:rotate(360deg)}}</style><circle cx="12" cy="12" r="3"/><g style="transform-origin:center;animation:spinner_XVY9 1s cubic-bezier(.36,.6,.31,1) infinite"><circle cx="4" cy="12" r="3"/><circle cx="20" cy="12" r="3"/></g></svg>');
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
@utility dots-grow {
|
|
33
|
-
--ai-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><style>@keyframes spinner_xe7Q{93.75%,to{r:3px}46.875%{r:.2px}}.spinner_b2T7{animation:spinner_xe7Q .8s linear infinite}</style><circle class="spinner_b2T7" cx="4" cy="12" r="3"/><circle class="spinner_b2T7" cx="12" cy="12" r="3" style="animation-delay:-.65s"/><circle class="spinner_b2T7" cx="20" cy="12" r="3" style="animation-delay:-.5s"/></svg>');
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
@utility dots-grow-alternate {
|
|
37
|
-
--ai-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><style>@keyframes spinner_qhi1{0%,to{r:1.5px}50%{r:3px}}.spinner_I8Q1{animation:spinner_qhi1 .75s linear infinite}</style><circle class="spinner_I8Q1" cx="4" cy="12" r="1.5"/><circle class="spinner_I8Q1" cx="12" cy="12" r="3" style="animation-delay:-.375s"/><circle class="spinner_I8Q1" cx="20" cy="12" r="1.5"/></svg>');
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
@utility dot-bounce {
|
|
41
|
-
--ai-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><style>@keyframes spinner_YeBj{0%{animation-timing-function:cubic-bezier(.33,0,.66,.33);cy:5px}46.875%{cy:20px;rx:4px;ry:4px}50%{animation-timing-function:cubic-bezier(.33,.66,.66,1);cy:20.5px;rx:4.8px;ry:3px}53.125%{rx:4px;ry:4px}to{cy:5px}}</style><circle cx="12" cy="5" style="animation:spinner_YeBj .8s infinite" r="4"/></svg>');
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
@utility bars-wave {
|
|
45
|
-
--ai-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><style>.bar{animation:bar-anim 1s ease-in-out infinite;fill:currentColor}.b1{animation-delay:-0.4s}.b2{animation-delay:-0.2s}@keyframes bar-anim{0%,100%{transform:scaleY(0.3)}50%{transform:scaleY(1)}}</style><rect class="bar b1" x="3" y="2" width="4" height="20" rx="2" transform-origin="5px 12px"></rect><rect class="bar b2" x="10" y="2" width="4" height="20" rx="2" transform-origin="12px 12px"></rect><rect class="bar b3" x="17" y="2" width="4" height="20" rx="2" transform-origin="19px 12px"></rect></svg>');
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
@utility pulse-ring {
|
|
49
|
-
--ai-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><style>.pulse{animation:pulse-anim 1.2s cubic-bezier(0, 0.2, 0.8, 1) infinite;stroke:currentColor;transform-origin:center}.p2{animation-delay:-0.6s}@keyframes pulse-anim{0%{transform:scale(0);opacity:1}100%{transform:scale(1);opacity:0}}</style><circle class="pulse p1" cx="12" cy="12" r="10" fill="none" stroke-width="3"></circle><circle class="pulse p2" cx="12" cy="12" r="10" fill="none" stroke-width="3"></circle></svg>');
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
@utility loader {
|
|
53
|
-
@apply ai bg-text inline-block size-8 [&.lg]:size-10 [&.sm]:size-6;
|
|
54
|
-
|
|
55
|
-
content: "";
|
|
56
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
@import "tailwindcss";
|
|
2
|
-
@import "../theme.css";
|
|
3
|
-
|
|
4
|
-
@utility tooltip {
|
|
5
|
-
--tooltip-bg: var(--color-surface);
|
|
6
|
-
--tooltip-fg: var(--color-text);
|
|
7
|
-
--tooltip-gap: 0.5rem;
|
|
8
|
-
--tooltip-top: calc(var(--tooltip-gap) * -1);
|
|
9
|
-
--tooltip-right: auto;
|
|
10
|
-
--tooltip-bottom: auto;
|
|
11
|
-
--tooltip-left: 50%;
|
|
12
|
-
--tooltip-origin: bottom;
|
|
13
|
-
--tooltip-transform: translate(-50%, -100%);
|
|
14
|
-
|
|
15
|
-
@apply relative;
|
|
16
|
-
|
|
17
|
-
&.tooltip-icon {
|
|
18
|
-
@apply bg-surface text-text inline-flex size-5 cursor-default items-center justify-center rounded-full text-sm font-bold;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
&[data-tooltip-position="bottom"] {
|
|
22
|
-
--tooltip-top: auto;
|
|
23
|
-
--tooltip-bottom: calc(var(--tooltip-gap) * -1);
|
|
24
|
-
--tooltip-origin: top;
|
|
25
|
-
--tooltip-transform: translate(-50%, 100%);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
&[data-tooltip-position="left"] {
|
|
29
|
-
--tooltip-top: 50%;
|
|
30
|
-
--tooltip-left: calc(var(--tooltip-gap) * -1);
|
|
31
|
-
--tooltip-origin: right;
|
|
32
|
-
--tooltip-transform: translate(-100%, -50%);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
&[data-tooltip-position="right"] {
|
|
36
|
-
--tooltip-top: 50%;
|
|
37
|
-
--tooltip-left: auto;
|
|
38
|
-
--tooltip-right: calc(var(--tooltip-gap) * -1);
|
|
39
|
-
--tooltip-origin: left;
|
|
40
|
-
--tooltip-transform: translate(100%, -50%);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
&::after {
|
|
44
|
-
@apply pointer-events-none absolute z-(--z-popover) w-max max-w-72 rounded-(--radius-control) bg-(--tooltip-bg) px-2.5 py-2 text-sm font-normal whitespace-normal text-(--tooltip-fg) opacity-0 shadow-(--elevation-high) transition-[opacity,transform] duration-(--motion-duration-normal) ease-(--motion-ease);
|
|
45
|
-
content: attr(data-tooltip);
|
|
46
|
-
left: var(--tooltip-left);
|
|
47
|
-
right: var(--tooltip-right);
|
|
48
|
-
top: var(--tooltip-top);
|
|
49
|
-
bottom: var(--tooltip-bottom);
|
|
50
|
-
transform: var(--tooltip-transform) scale(0);
|
|
51
|
-
transform-origin: var(--tooltip-origin);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
&:hover::after,
|
|
55
|
-
&:focus-visible::after,
|
|
56
|
-
&[data-state="open"]::after {
|
|
57
|
-
opacity: 1;
|
|
58
|
-
transform: var(--tooltip-transform) scale(1);
|
|
59
|
-
}
|
|
60
|
-
}
|
package/src/index.css
DELETED
package/src/overrides.css
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
@import "tailwindcss";
|
|
2
|
-
@import "./theme.css";
|
|
3
|
-
@import "./typography.css";
|
|
4
|
-
|
|
5
|
-
@layer base {
|
|
6
|
-
::-webkit-scrollbar {
|
|
7
|
-
width: calc(var(--spacing) * 4);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
::-webkit-scrollbar-thumb {
|
|
11
|
-
background: var(--color-primary);
|
|
12
|
-
border: var(--spacing) solid var(--color-background);
|
|
13
|
-
border-radius: calc(var(--spacing) * 2);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
html,
|
|
17
|
-
body {
|
|
18
|
-
@apply bg-background text-text font-default min-h-dvh overflow-x-hidden;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
body {
|
|
22
|
-
@apply flex flex-col;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
button {
|
|
26
|
-
@apply not-disabled:cursor-pointer;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
img {
|
|
30
|
-
@apply select-none;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
::selection {
|
|
34
|
-
background: var(--color-primary);
|
|
35
|
-
color: var(--color-primary-contrast);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
:focus-visible {
|
|
39
|
-
outline: var(--focus-ring-width) solid var(--focus-ring);
|
|
40
|
-
outline-offset: var(--focus-ring-offset);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
@media (prefers-reduced-motion: reduce) {
|
|
44
|
-
*,
|
|
45
|
-
*::before,
|
|
46
|
-
*::after {
|
|
47
|
-
animation-duration: 0.01ms !important;
|
|
48
|
-
animation-iteration-count: 1 !important;
|
|
49
|
-
scroll-behavior: auto !important;
|
|
50
|
-
transition-duration: 0.01ms !important;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
p,
|
|
55
|
-
li,
|
|
56
|
-
a {
|
|
57
|
-
@apply text-body;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
@layer components {
|
|
62
|
-
[aria-current="page"] {
|
|
63
|
-
@apply text-primary font-bold;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
@media (forced-colors: active) {
|
|
67
|
-
.btn,
|
|
68
|
-
.ipt,
|
|
69
|
-
.textarea,
|
|
70
|
-
.select,
|
|
71
|
-
.alert,
|
|
72
|
-
.badge {
|
|
73
|
-
border-color: CanvasText;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
package/src/theme.css
DELETED
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
@import "tailwindcss";
|
|
2
|
-
|
|
3
|
-
@theme {
|
|
4
|
-
--font-default: "Segoe UI", system-ui, sans-serif;
|
|
5
|
-
|
|
6
|
-
--color-primary: var(--color-neutral-950);
|
|
7
|
-
--color-primary-contrast: var(--color-neutral-50);
|
|
8
|
-
--color-primary-hover: var(--color-neutral-700);
|
|
9
|
-
--color-primary-subtle: var(--color-neutral-200);
|
|
10
|
-
--color-primary-strong: var(--color-neutral-900);
|
|
11
|
-
--color-accent: var(--color-neutral-600);
|
|
12
|
-
--color-accent-contrast: var(--color-neutral-50);
|
|
13
|
-
--color-accent-hover: var(--color-neutral-700);
|
|
14
|
-
--color-accent-subtle: var(--color-neutral-100);
|
|
15
|
-
--color-accent-strong: var(--color-neutral-800);
|
|
16
|
-
--color-border: var(--color-neutral-300);
|
|
17
|
-
--color-border-hover: var(--color-neutral-600);
|
|
18
|
-
--color-background: var(--color-neutral-50);
|
|
19
|
-
--color-foreground: var(--color-neutral-100);
|
|
20
|
-
--color-surface: var(--color-neutral-200);
|
|
21
|
-
--color-text: var(--color-neutral-950);
|
|
22
|
-
--color-text-secondary: var(--color-neutral-700);
|
|
23
|
-
--color-text-contrast: var(--color-neutral-50);
|
|
24
|
-
--color-text-hover: var(--color-neutral-700);
|
|
25
|
-
--color-text-subtle: var(--color-neutral-200);
|
|
26
|
-
--color-text-strong: var(--color-neutral-900);
|
|
27
|
-
|
|
28
|
-
--color-success: var(--color-emerald-600);
|
|
29
|
-
--color-success-contrast: var(--color-neutral-50);
|
|
30
|
-
--color-success-hover: color-mix(in srgb, var(--color-success) 82%, var(--color-success-strong));
|
|
31
|
-
--color-success-subtle: var(--color-emerald-100);
|
|
32
|
-
--color-success-strong: var(--color-emerald-800);
|
|
33
|
-
--color-warning: var(--color-amber-600);
|
|
34
|
-
--color-warning-contrast: var(--color-neutral-50);
|
|
35
|
-
--color-warning-hover: color-mix(in srgb, var(--color-warning) 82%, var(--color-warning-strong));
|
|
36
|
-
--color-warning-subtle: var(--color-amber-100);
|
|
37
|
-
--color-warning-strong: var(--color-amber-800);
|
|
38
|
-
--color-destructive: var(--color-rose-700);
|
|
39
|
-
--color-destructive-contrast: var(--color-neutral-50);
|
|
40
|
-
--color-destructive-hover: color-mix(in srgb, var(--color-destructive) 82%, var(--color-destructive-strong));
|
|
41
|
-
--color-destructive-subtle: var(--color-rose-100);
|
|
42
|
-
--color-destructive-strong: var(--color-rose-800);
|
|
43
|
-
--color-info: var(--color-indigo-600);
|
|
44
|
-
--color-info-contrast: var(--color-neutral-50);
|
|
45
|
-
--color-info-hover: color-mix(in srgb, var(--color-info) 82%, var(--color-info-strong));
|
|
46
|
-
--color-info-subtle: var(--color-indigo-100);
|
|
47
|
-
--color-info-strong: var(--color-indigo-800);
|
|
48
|
-
|
|
49
|
-
--breakpoint-xs: 30rem;
|
|
50
|
-
--breakpoint-2xl: 90rem;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
:root {
|
|
54
|
-
color-scheme: light;
|
|
55
|
-
|
|
56
|
-
--container-narrow: 48rem;
|
|
57
|
-
--container-max: 80rem;
|
|
58
|
-
--container-wide: 90rem;
|
|
59
|
-
--layout-gutter: clamp(1rem, 4vw, 2rem);
|
|
60
|
-
--layout-section-block: clamp(4rem, 9vw, 7rem);
|
|
61
|
-
--layout-stack-gap: 1rem;
|
|
62
|
-
--layout-cluster-gap: 0.75rem;
|
|
63
|
-
--layout-grid-min: 16rem;
|
|
64
|
-
|
|
65
|
-
--radius-small: 0.25rem;
|
|
66
|
-
--radius-control: 0.5rem;
|
|
67
|
-
--radius-surface: 0.875rem;
|
|
68
|
-
--control-height: 2.5rem;
|
|
69
|
-
--border-width: 1px;
|
|
70
|
-
|
|
71
|
-
--elevation-low: 0 1px 2px rgb(15 23 42 / 0.06), 0 1px 3px rgb(15 23 42 / 0.08);
|
|
72
|
-
--elevation-mid: 0 4px 6px -1px rgb(15 23 42 / 0.08), 0 2px 4px -2px rgb(15 23 42 / 0.08);
|
|
73
|
-
--elevation-high: 0 20px 25px -5px rgb(15 23 42 / 0.1), 0 8px 10px -6px rgb(15 23 42 / 0.1);
|
|
74
|
-
|
|
75
|
-
--focus-ring: color-mix(in srgb, var(--color-primary) 64%, transparent);
|
|
76
|
-
--focus-ring-offset: 2px;
|
|
77
|
-
--focus-ring-width: 3px;
|
|
78
|
-
|
|
79
|
-
--motion-duration-fast: 120ms;
|
|
80
|
-
--motion-duration-normal: 200ms;
|
|
81
|
-
--motion-duration-slow: 400ms;
|
|
82
|
-
--motion-ease: cubic-bezier(0.2, 0, 0, 1);
|
|
83
|
-
|
|
84
|
-
--z-popover: 40;
|
|
85
|
-
|
|
86
|
-
--surface-hover-transform: translateY(-1px);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
.dark {
|
|
90
|
-
color-scheme: dark;
|
|
91
|
-
|
|
92
|
-
--color-primary: var(--color-neutral-50);
|
|
93
|
-
--color-primary-contrast: var(--color-neutral-950);
|
|
94
|
-
--color-primary-hover: var(--color-neutral-200);
|
|
95
|
-
--color-primary-subtle: var(--color-neutral-900);
|
|
96
|
-
--color-primary-strong: var(--color-neutral-100);
|
|
97
|
-
--color-accent: var(--color-neutral-400);
|
|
98
|
-
--color-accent-contrast: var(--color-neutral-950);
|
|
99
|
-
--color-accent-hover: var(--color-neutral-300);
|
|
100
|
-
--color-accent-subtle: var(--color-neutral-800);
|
|
101
|
-
--color-accent-strong: var(--color-neutral-200);
|
|
102
|
-
--color-border: var(--color-neutral-700);
|
|
103
|
-
--color-border-hover: var(--color-neutral-500);
|
|
104
|
-
--color-background: var(--color-neutral-950);
|
|
105
|
-
--color-foreground: var(--color-neutral-900);
|
|
106
|
-
--color-surface: var(--color-neutral-800);
|
|
107
|
-
--color-text: var(--color-neutral-50);
|
|
108
|
-
--color-text-secondary: var(--color-neutral-400);
|
|
109
|
-
--color-text-contrast: var(--color-neutral-950);
|
|
110
|
-
--color-text-hover: var(--color-neutral-200);
|
|
111
|
-
--color-text-subtle: var(--color-neutral-900);
|
|
112
|
-
--color-text-strong: var(--color-neutral-100);
|
|
113
|
-
|
|
114
|
-
--color-success: var(--color-emerald-600);
|
|
115
|
-
--color-success-contrast: var(--color-neutral-50);
|
|
116
|
-
--color-success-hover: color-mix(in srgb, var(--color-success) 82%, var(--color-success-strong));
|
|
117
|
-
--color-success-subtle: var(--color-emerald-800);
|
|
118
|
-
--color-success-strong: var(--color-emerald-100);
|
|
119
|
-
--color-warning: var(--color-amber-600);
|
|
120
|
-
--color-warning-contrast: var(--color-neutral-50);
|
|
121
|
-
--color-warning-hover: color-mix(in srgb, var(--color-warning) 82%, var(--color-warning-strong));
|
|
122
|
-
--color-warning-subtle: var(--color-amber-800);
|
|
123
|
-
--color-warning-strong: var(--color-amber-100);
|
|
124
|
-
--color-destructive: var(--color-rose-700);
|
|
125
|
-
--color-destructive-contrast: var(--color-neutral-50);
|
|
126
|
-
--color-destructive-hover: color-mix(in srgb, var(--color-destructive) 82%, var(--color-destructive-strong));
|
|
127
|
-
--color-destructive-subtle: var(--color-rose-800);
|
|
128
|
-
--color-destructive-strong: var(--color-rose-100);
|
|
129
|
-
--color-info: var(--color-indigo-600);
|
|
130
|
-
--color-info-contrast: var(--color-neutral-50);
|
|
131
|
-
--color-info-hover: color-mix(in srgb, var(--color-info) 82%, var(--color-info-strong));
|
|
132
|
-
--color-info-subtle: var(--color-indigo-800);
|
|
133
|
-
--color-info-strong: var(--color-indigo-100);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
@custom-variant dark (&:where(.dark, .dark *));
|
package/src/typography.css
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
@import "tailwindcss";
|
|
2
|
-
@import "./theme.css";
|
|
3
|
-
|
|
4
|
-
@utility text-display {
|
|
5
|
-
@apply text-6xl font-bold tracking-tight md:text-8xl;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
@utility text-title-lg {
|
|
9
|
-
@apply text-5xl font-bold tracking-tight md:text-6xl;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
@utility text-title {
|
|
13
|
-
@apply text-3xl font-bold tracking-tight;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
@utility text-title-sm {
|
|
17
|
-
@apply text-xl font-semibold tracking-tight;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
@utility text-label-lg {
|
|
21
|
-
@apply text-lg font-medium tracking-wide;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
@utility text-label {
|
|
25
|
-
@apply text-base font-medium tracking-wide;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
@utility text-body {
|
|
29
|
-
@apply text-sm font-normal tracking-wider;
|
|
30
|
-
}
|