@codenhub/styles 0.0.4 → 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 (71) hide show
  1. package/LICENSE +201 -201
  2. package/NOTICE +27 -0
  3. package/README.md +60 -92
  4. package/dist/aesthetics/chunky-tile.css +1 -0
  5. package/dist/aesthetics/glass.css +1 -0
  6. package/dist/aesthetics/index.css +2 -0
  7. package/dist/aesthetics/neobrutalism.css +1 -0
  8. package/dist/aesthetics/pixel.css +1 -0
  9. package/dist/components.css +2 -2
  10. package/dist/index.css +2 -2
  11. package/dist/native.css +2 -0
  12. package/dist/theme.css +2 -2
  13. package/dist/tw/aesthetics/chunky-tile.css +107 -0
  14. package/dist/tw/aesthetics/glass.css +66 -0
  15. package/dist/tw/aesthetics/index.css +9 -0
  16. package/dist/tw/aesthetics/neobrutalism.css +63 -0
  17. package/dist/tw/aesthetics/pixel.css +88 -0
  18. package/dist/tw/box.css +185 -0
  19. package/dist/tw/components/button.css +88 -0
  20. package/dist/tw/components/feedback.css +163 -0
  21. package/dist/tw/components/form.css +601 -0
  22. package/dist/tw/components/index.css +18 -0
  23. package/dist/tw/components/loader.css +122 -0
  24. package/dist/tw/components/surface.css +98 -0
  25. package/dist/tw/components/tooltip.css +132 -0
  26. package/dist/tw/elevation.css +39 -0
  27. package/dist/tw/index.css +12 -0
  28. package/dist/tw/intent.css +189 -0
  29. package/dist/tw/native.css +203 -0
  30. package/dist/tw/presentation.css +77 -0
  31. package/dist/tw/reset.css +142 -0
  32. package/dist/tw/theme.css +218 -0
  33. package/dist/tw/typography.css +34 -0
  34. package/dist/tw/utilities/content.css +349 -0
  35. package/dist/tw/utilities/index.css +6 -0
  36. package/dist/tw/utilities/layout.css +107 -0
  37. package/docs/accessibility.md +82 -0
  38. package/docs/concepts.md +94 -0
  39. package/docs/index.md +62 -0
  40. package/docs/integrating/astro.md +29 -0
  41. package/docs/integrating/index.md +32 -0
  42. package/docs/integrating/nextjs.md +44 -0
  43. package/docs/integrating/svelte.md +37 -0
  44. package/docs/integrating/tailwind.md +40 -0
  45. package/docs/integrating/vue.md +25 -0
  46. package/docs/setup.md +116 -0
  47. package/docs/usage/aesthetics.md +197 -0
  48. package/docs/usage/buttons.md +74 -0
  49. package/docs/usage/composing.md +218 -0
  50. package/docs/usage/content-and-layout.md +200 -0
  51. package/docs/usage/customizing.md +213 -0
  52. package/docs/usage/feedback.md +117 -0
  53. package/docs/usage/forms.md +177 -0
  54. package/docs/usage/index.md +32 -0
  55. package/docs/usage/theming.md +210 -0
  56. package/docs/usage/tooltips.md +45 -0
  57. package/llms-full.txt +2122 -0
  58. package/llms.txt +26 -0
  59. package/package.json +95 -29
  60. package/src/components/button.css +0 -155
  61. package/src/components/feedback.css +0 -214
  62. package/src/components/form.css +0 -303
  63. package/src/components/index.css +0 -9
  64. package/src/components/loader.css +0 -56
  65. package/src/components/surface.css +0 -6
  66. package/src/components/tooltip.css +0 -60
  67. package/src/index.css +0 -7
  68. package/src/overrides.css +0 -76
  69. package/src/theme.css +0 -234
  70. package/src/typography.css +0 -30
  71. package/src/utilities.css +0 -40
@@ -1,303 +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
- @apply text-destructive text-[0.8125rem] font-medium;
17
- }
18
- }
19
-
20
- @utility ipt {
21
- --control-bg: transparent;
22
- --control-border: var(--color-border);
23
- --control-border-active: var(--color-primary);
24
- --control-fg: var(--color-text);
25
- --control-placeholder: var(--color-text-secondary);
26
-
27
- @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);
28
- border: var(--border-width) solid var(--control-border);
29
-
30
- &::placeholder {
31
- color: var(--control-placeholder);
32
- }
33
-
34
- &:focus {
35
- @apply outline-none;
36
- }
37
-
38
- &:focus-visible {
39
- border-color: var(--control-border-active);
40
- box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring);
41
- }
42
-
43
- &[aria-invalid="true"] {
44
- --control-border: var(--color-destructive);
45
- --control-border-active: var(--color-destructive);
46
- }
47
-
48
- &:disabled,
49
- &[aria-disabled="true"],
50
- &[data-disabled] {
51
- @apply cursor-not-allowed;
52
-
53
- opacity: 0.58;
54
- }
55
- }
56
-
57
- @utility textarea {
58
- --control-bg: transparent;
59
- --control-border: var(--color-border);
60
- --control-border-active: var(--color-primary);
61
- --control-fg: var(--color-text);
62
- --control-placeholder: var(--color-text-secondary);
63
-
64
- @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);
65
- border: var(--border-width) solid var(--control-border);
66
-
67
- &::placeholder {
68
- color: var(--control-placeholder);
69
- }
70
-
71
- &:focus {
72
- @apply outline-none;
73
- }
74
-
75
- &:focus-visible {
76
- border-color: var(--control-border-active);
77
- box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring);
78
- }
79
-
80
- &[aria-invalid="true"] {
81
- --control-border: var(--color-destructive);
82
- --control-border-active: var(--color-destructive);
83
- }
84
-
85
- &:disabled,
86
- &[aria-disabled="true"],
87
- &[data-disabled] {
88
- @apply cursor-not-allowed;
89
-
90
- opacity: 0.58;
91
- }
92
-
93
- @apply min-h-28 resize-y;
94
- }
95
-
96
- @utility select {
97
- --control-bg: transparent;
98
- --control-border: var(--color-border);
99
- --control-border-active: var(--color-primary);
100
- --control-fg: var(--color-text);
101
- --control-placeholder: var(--color-text-secondary);
102
-
103
- @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);
104
- border: var(--border-width) solid var(--control-border);
105
-
106
- &::placeholder {
107
- color: var(--control-placeholder);
108
- }
109
-
110
- &:focus {
111
- @apply outline-none;
112
- }
113
-
114
- &:focus-visible {
115
- border-color: var(--control-border-active);
116
- box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring);
117
- }
118
-
119
- &[aria-invalid="true"] {
120
- --control-border: var(--color-destructive);
121
- --control-border-active: var(--color-destructive);
122
- }
123
-
124
- &:disabled,
125
- &[aria-disabled="true"],
126
- &[data-disabled] {
127
- @apply cursor-not-allowed;
128
-
129
- opacity: 0.58;
130
- }
131
-
132
- appearance: none;
133
- background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19.5 8.25l-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");
134
- background-position: right 0.75rem center;
135
- background-repeat: no-repeat;
136
- background-size: 1rem;
137
- padding-right: 2.5rem;
138
- }
139
-
140
- @utility checkbox {
141
- --control-color: var(--color-text);
142
- --control-contrast: var(--color-text-contrast);
143
-
144
- @apply inline-grid size-4 cursor-pointer appearance-none place-content-center rounded-sm bg-transparent transition-[background-color,border-color,box-shadow] duration-(--motion-duration-normal) ease-(--motion-ease);
145
- border: var(--border-width) solid var(--color-border);
146
-
147
- &:hover:not(:disabled, .disabled, [aria-disabled="true"], [data-disabled]) {
148
- @apply border-(--color-border-hover);
149
- }
150
-
151
- &:focus {
152
- @apply outline-none;
153
- }
154
-
155
- &:focus-visible {
156
- border-color: var(--control-color);
157
- box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring);
158
- }
159
-
160
- &::after {
161
- @apply block size-3 opacity-0 transition-opacity duration-(--motion-duration-normal) ease-(--motion-ease);
162
-
163
- background-color: var(--control-contrast);
164
- content: "";
165
- mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg 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'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
166
- -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg 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'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
167
- mask-size: contain;
168
- -webkit-mask-size: contain;
169
- }
170
-
171
- &:checked {
172
- border-color: var(--control-color);
173
- background-color: var(--control-color);
174
-
175
- &::after {
176
- @apply opacity-100;
177
- }
178
- }
179
-
180
- &.primary {
181
- --control-color: var(--color-primary);
182
- --control-contrast: var(--color-primary-contrast);
183
- }
184
-
185
- &.secondary {
186
- --control-color: var(--color-accent);
187
- --control-contrast: var(--color-accent-contrast);
188
- }
189
-
190
- &.success {
191
- --control-color: var(--color-success);
192
- --control-contrast: var(--color-success-contrast);
193
- }
194
-
195
- &.warning {
196
- --control-color: var(--color-warning);
197
- --control-contrast: var(--color-warning-contrast);
198
- }
199
-
200
- &.destructive,
201
- &.danger,
202
- &.error {
203
- --control-color: var(--color-destructive);
204
- --control-contrast: var(--color-destructive-contrast);
205
- }
206
-
207
- &.info {
208
- --control-color: var(--color-info);
209
- --control-contrast: var(--color-info-contrast);
210
- }
211
-
212
- &[aria-invalid="true"] {
213
- @apply border-(--color-destructive);
214
- }
215
-
216
- &:disabled,
217
- &[aria-disabled="true"],
218
- &[data-disabled] {
219
- @apply cursor-not-allowed opacity-[0.58];
220
- }
221
- }
222
-
223
- @utility switch {
224
- --control-color: var(--color-text);
225
- --control-contrast: var(--color-text-contrast);
226
-
227
- @apply relative h-4.5 w-9 cursor-pointer appearance-none rounded-full bg-(--color-surface) transition-[background-color,border-color,box-shadow] duration-(--motion-duration-normal) ease-(--motion-ease);
228
- border: var(--border-width) solid transparent;
229
-
230
- &::after {
231
- @apply absolute size-3.5 rounded-full bg-(--color-text-secondary) transition-[transform,translate,background-color] duration-(--motion-duration-normal) ease-(--motion-ease);
232
-
233
- content: "";
234
- top: 1px;
235
- left: 1px;
236
- }
237
-
238
- &:hover:not(:disabled, .disabled, [aria-disabled="true"], [data-disabled]) {
239
- @apply border-(--color-border-hover);
240
- }
241
-
242
- &:focus {
243
- @apply outline-none;
244
- }
245
-
246
- &:focus-visible {
247
- border-color: var(--control-color);
248
- box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring);
249
- }
250
-
251
- &:checked {
252
- border-color: var(--control-color);
253
- background-color: var(--control-color);
254
-
255
- &::after {
256
- @apply translate-x-4.5;
257
-
258
- background-color: var(--control-contrast);
259
- }
260
- }
261
-
262
- &.primary {
263
- --control-color: var(--color-primary);
264
- --control-contrast: var(--color-primary-contrast);
265
- }
266
-
267
- &.secondary {
268
- --control-color: var(--color-accent);
269
- --control-contrast: var(--color-accent-contrast);
270
- }
271
-
272
- &.success {
273
- --control-color: var(--color-success);
274
- --control-contrast: var(--color-success-contrast);
275
- }
276
-
277
- &.warning {
278
- --control-color: var(--color-warning);
279
- --control-contrast: var(--color-warning-contrast);
280
- }
281
-
282
- &.destructive,
283
- &.danger,
284
- &.error {
285
- --control-color: var(--color-destructive);
286
- --control-contrast: var(--color-destructive-contrast);
287
- }
288
-
289
- &.info {
290
- --control-color: var(--color-info);
291
- --control-contrast: var(--color-info-contrast);
292
- }
293
-
294
- &[aria-invalid="true"] {
295
- @apply border-(--color-destructive);
296
- }
297
-
298
- &:disabled,
299
- &[aria-disabled="true"],
300
- &[data-disabled] {
301
- @apply cursor-not-allowed opacity-[0.58];
302
- }
303
- }
@@ -1,9 +0,0 @@
1
- @import "tailwindcss";
2
- @import "../theme.css";
3
- @import "../typography.css";
4
- @import "./button.css";
5
- @import "./feedback.css";
6
- @import "./form.css";
7
- @import "./loader.css";
8
- @import "./surface.css";
9
- @import "./tooltip.css";
@@ -1,56 +0,0 @@
1
- @import "tailwindcss";
2
-
3
- @utility ai {
4
- --ai-image: url("data:image/svg+xml;charset=utf-8,%3Csvg stroke='currentColor' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-in-out infinite%7D@keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D@keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25,100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C/style%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");
5
-
6
- mask-image: var(--ai-image);
7
- -webkit-mask-image: var(--ai-image);
8
- mask-size: contain;
9
- -webkit-mask-size: contain;
10
- mask-repeat: no-repeat;
11
- -webkit-mask-repeat: no-repeat;
12
- mask-position: center;
13
- -webkit-mask-position: center;
14
- }
15
-
16
- @utility dots-wave {
17
- --ai-image: url("data:image/svg+xml;charset=utf-8,%3Csvg fill='currentColor' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E@keyframes spinner_8HQG%7B0%25,57.14%25%7Banimation-timing-function:cubic-bezier(.33,.66,.66,1);transform:translate(0)%7D28.57%25%7Banimation-timing-function:cubic-bezier(.33,0,.66,.33);transform:translateY(-6px)%7Dto%7Btransform:translate(0)%7D%7D.spinner_qM83%7Banimation:spinner_8HQG 1.05s infinite%7D%3C/style%3E%3Ccircle class='spinner_qM83' cx='4' cy='12' r='3'/%3E%3Ccircle class='spinner_qM83' cx='12' cy='12' r='3' style='animation-delay:.1s'/%3E%3Ccircle class='spinner_qM83' cx='20' cy='12' r='3' style='animation-delay:.2s'/%3E%3C/svg%3E");
18
- }
19
-
20
- @utility dots-fade {
21
- --ai-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.dot%7Banimation:dot-anim 1s ease-in-out infinite;fill:currentColor%7D.d1%7Banimation-delay:-0.32s%7D.d2%7Banimation-delay:-0.16s%7D@keyframes dot-anim%7B0%25,80%25,100%25%7Btransform:scale(0.6);opacity:0.2%7D40%25%7Btransform:scale(1);opacity:1%7D%7D%3C/style%3E%3Ccircle class='dot d1' cx='4' cy='12' r='3' transform-origin='4px 12px'%3E%3C/circle%3E%3Ccircle class='dot d2' cx='12' cy='12' r='3' transform-origin='12px 12px'%3E%3C/circle%3E%3Ccircle class='dot d3' cx='20' cy='12' r='3' transform-origin='20px 12px'%3E%3C/circle%3E%3C/svg%3E");
22
- }
23
-
24
- @utility dots-queue {
25
- --ai-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E@keyframes spinner_qtyZ%7B0%25%7Br:0%7D25%25%7Br:3px;cx:4px%7D50%25%7Br:3px;cx:12px%7D75%25%7Br:3px;cx:20px%7Dto%7Br:0;cx:20px%7D%7D.spinner_nOfF%7Banimation:spinner_qtyZ 2s cubic-bezier(.36,.6,.31,1) infinite%7D%3C/style%3E%3Ccircle class='spinner_nOfF' cx='4' cy='12' r='3'/%3E%3Ccircle class='spinner_nOfF' cx='4' cy='12' r='3' style='animation-delay:-.5s'/%3E%3Ccircle class='spinner_nOfF' cx='4' cy='12' r='3' style='animation-delay:-1s'/%3E%3Ccircle class='spinner_nOfF' cx='4' cy='12' r='3' style='animation-delay:-1.5s'/%3E%3C/svg%3E");
26
- }
27
-
28
- @utility dots-rotate {
29
- --ai-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E@keyframes spinner_XVY9%7B50%25%7Btransform:rotate(180deg)%7Dto%25%7Btransform:rotate(360deg)%7D%7D%3C/style%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cg style='transform-origin:center;animation:spinner_XVY9 1s cubic-bezier(.36,.6,.31,1) infinite'%3E%3Ccircle cx='4' cy='12' r='3'/%3E%3Ccircle cx='20' cy='12' r='3'/%3E%3C/g%3E%3C/svg%3E");
30
- }
31
-
32
- @utility dots-grow {
33
- --ai-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E@keyframes spinner_xe7Q%7B93.75%25,to%7Br:3px%7D46.875%25%7Br:.2px%7D%7D.spinner_b2T7{animation:spinner_xe7Q .8s linear infinite}%3C/style%3E%3Ccircle class='spinner_b2T7' cx='4' cy='12' r='3'/%3E%3Ccircle class='spinner_b2T7' cx='12' cy='12' r='3' style='animation-delay:-.65s'/%3E%3Ccircle class='spinner_b2T7' cx='20' cy='12' r='3' style='animation-delay:-.5s'/%3E%3C/svg%3E");
34
- }
35
-
36
- @utility dots-grow-alternate {
37
- --ai-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E@keyframes spinner_qhi1%7B0%25,to%7Br:1.5px%7D50%25%7Br:3px%7D%7D.spinner_I8Q1%7Banimation:spinner_qhi1 .75s linear infinite%7D%3C/style%3E%3Ccircle class='spinner_I8Q1' cx='4' cy='12' r='1.5'/%3E%3Ccircle class='spinner_I8Q1' cx='12' cy='12' r='3' style='animation-delay:-.375s'/%3E%3Ccircle class='spinner_I8Q1' cx='20' cy='12' r='1.5'/%3E%3C/svg%3E");
38
- }
39
-
40
- @utility dot-bounce {
41
- --ai-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E@keyframes spinner_YeBj%7B0%25%7Banimation-timing-function:cubic-bezier(.33,0,.66,.33);cy:5px%7D46.875%25%7Bcy:20px;rx:4px;ry:4px%7D50%25%7Banimation-timing-function:cubic-bezier(.33,.66,.66,1);cy:20.5px;rx:4.8px;ry:3px%7D53.125%25%7Brx:4px;ry:4px%7Dto%7Bcy:5px%7D%7D%3C/style%3E%3Ccircle cx='12' cy='5' style='animation:spinner_YeBj .8s infinite' r='4'/%3E%3C/svg%3E");
42
- }
43
-
44
- @utility bars-wave {
45
- --ai-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.bar%7Banimation:bar-anim 1s ease-in-out infinite;fill:currentColor%7D.b1%7Banimation-delay:-0.4s%7D.b2%7Banimation-delay:-0.2s%7D@keyframes bar-anim%7B0%25,100%25%7Btransform:scaleY(0.3)%7D50%25%7Btransform:scaleY(1)%7D%7D%3C/style%3E%3Crect class='bar b1' x='3' y='2' width='4' height='20' rx='2' transform-origin='5px 12px'%3E%3C/rect%3E%3Crect class='bar b2' x='10' y='2' width='4' height='20' rx='2' transform-origin='12px 12px'%3E%3C/rect%3E%3Crect class='bar b3' x='17' y='2' width='4' height='20' rx='2' transform-origin='19px 12px'%3E%3C/rect%3E%3C/svg%3E");
46
- }
47
-
48
- @utility pulse-ring {
49
- --ai-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.pulse%7Banimation:pulse-anim 1.2s cubic-bezier(0, 0.2, 0.8, 1) infinite;stroke:currentColor;transform-origin:center%7D.p2%7Banimation-delay:-0.6s%7D@keyframes pulse-anim%7B0%25%7Btransform:scale(0);opacity:1%7D100%25%7Btransform:scale(1);opacity:0%7D%7D%3C/style%3E%3Ccircle class='pulse p1' cx='12' cy='12' r='10' fill='none' stroke-width='3'%3E%3C/circle%3E%3Ccircle class='pulse p2' cx='12' cy='12' r='10' fill='none' stroke-width='3'%3E%3C/circle%3E%3C/svg%3E");
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,6 +0,0 @@
1
- @import "tailwindcss";
2
- @import "../theme.css";
3
-
4
- @utility empty-state {
5
- @apply text-text-secondary flex flex-col items-center gap-3 p-[clamp(2rem,8vw,5rem)] text-center;
6
- }
@@ -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
@@ -1,7 +0,0 @@
1
- @import "tailwindcss";
2
-
3
- @import "./components/index.css";
4
- @import "./theme.css";
5
- @import "./typography.css";
6
- @import "./utilities.css";
7
- @import "./overrides.css";
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
- }