@sigx/zero-daisyui 0.2.0-beta.1

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 (136) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +115 -0
  3. package/dist/components.d.ts +478 -0
  4. package/dist/components.js +76 -0
  5. package/dist/css/components/accordion.css +165 -0
  6. package/dist/css/components/alert.css +126 -0
  7. package/dist/css/components/avatar.css +94 -0
  8. package/dist/css/components/badge.css +82 -0
  9. package/dist/css/components/breadcrumbs.css +102 -0
  10. package/dist/css/components/button.css +252 -0
  11. package/dist/css/components/card.css +97 -0
  12. package/dist/css/components/carousel.css +196 -0
  13. package/dist/css/components/chat.css +167 -0
  14. package/dist/css/components/checkbox.css +245 -0
  15. package/dist/css/components/collapsible.css +157 -0
  16. package/dist/css/components/combobox.css +251 -0
  17. package/dist/css/components/countdown.css +83 -0
  18. package/dist/css/components/dialog.css +313 -0
  19. package/dist/css/components/diff.css +120 -0
  20. package/dist/css/components/divider.css +70 -0
  21. package/dist/css/components/drawer.css +285 -0
  22. package/dist/css/components/field.css +111 -0
  23. package/dist/css/components/file-upload.css +198 -0
  24. package/dist/css/components/indicator.css +166 -0
  25. package/dist/css/components/input.css +151 -0
  26. package/dist/css/components/join.css +122 -0
  27. package/dist/css/components/kbd.css +84 -0
  28. package/dist/css/components/menu.css +382 -0
  29. package/dist/css/components/native-select.css +128 -0
  30. package/dist/css/components/navbar.css +93 -0
  31. package/dist/css/components/number-input.css +211 -0
  32. package/dist/css/components/pagination.css +203 -0
  33. package/dist/css/components/popover.css +263 -0
  34. package/dist/css/components/progress.css +109 -0
  35. package/dist/css/components/radial-progress.css +129 -0
  36. package/dist/css/components/radio-group.css +176 -0
  37. package/dist/css/components/rating-group.css +143 -0
  38. package/dist/css/components/select.css +212 -0
  39. package/dist/css/components/skeleton.css +74 -0
  40. package/dist/css/components/slider.css +182 -0
  41. package/dist/css/components/spinner.css +75 -0
  42. package/dist/css/components/stats.css +115 -0
  43. package/dist/css/components/status.css +66 -0
  44. package/dist/css/components/steps.css +208 -0
  45. package/dist/css/components/swap.css +116 -0
  46. package/dist/css/components/switch.css +126 -0
  47. package/dist/css/components/table.css +124 -0
  48. package/dist/css/components/tabs.css +137 -0
  49. package/dist/css/components/textarea.css +131 -0
  50. package/dist/css/components/timeline.css +204 -0
  51. package/dist/css/components/toast.css +234 -0
  52. package/dist/css/components/toggle-group.css +164 -0
  53. package/dist/css/components/toggle.css +139 -0
  54. package/dist/css/components/tooltip.css +226 -0
  55. package/dist/css/components/tree-view.css +197 -0
  56. package/dist/css/index.css +8521 -0
  57. package/dist/css/tokens.css +265 -0
  58. package/dist/design-system.d.ts +5 -0
  59. package/dist/design-system.d.ts.map +1 -0
  60. package/dist/design-system.js +46 -0
  61. package/dist/design-system.js.map +1 -0
  62. package/dist/index.d.ts +5 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +13 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/lynx/components/accordion.css +87 -0
  67. package/dist/lynx/components/alert.css +108 -0
  68. package/dist/lynx/components/avatar.css +83 -0
  69. package/dist/lynx/components/badge.css +80 -0
  70. package/dist/lynx/components/breadcrumbs.css +61 -0
  71. package/dist/lynx/components/button.css +173 -0
  72. package/dist/lynx/components/card.css +62 -0
  73. package/dist/lynx/components/carousel.css +124 -0
  74. package/dist/lynx/components/chat.css +105 -0
  75. package/dist/lynx/components/checkbox.css +163 -0
  76. package/dist/lynx/components/collapsible.css +79 -0
  77. package/dist/lynx/components/combobox.css +195 -0
  78. package/dist/lynx/components/countdown.css +43 -0
  79. package/dist/lynx/components/dialog.css +227 -0
  80. package/dist/lynx/components/diff.css +59 -0
  81. package/dist/lynx/components/divider.css +60 -0
  82. package/dist/lynx/components/drawer.css +184 -0
  83. package/dist/lynx/components/field.css +63 -0
  84. package/dist/lynx/components/file-upload.css +147 -0
  85. package/dist/lynx/components/indicator.css +108 -0
  86. package/dist/lynx/components/input.css +112 -0
  87. package/dist/lynx/components/join.css +60 -0
  88. package/dist/lynx/components/kbd.css +81 -0
  89. package/dist/lynx/components/menu.css +282 -0
  90. package/dist/lynx/components/native-select.css +100 -0
  91. package/dist/lynx/components/navbar.css +91 -0
  92. package/dist/lynx/components/number-input.css +156 -0
  93. package/dist/lynx/components/pagination.css +155 -0
  94. package/dist/lynx/components/popover.css +184 -0
  95. package/dist/lynx/components/progress.css +43 -0
  96. package/dist/lynx/components/radial-progress.css +59 -0
  97. package/dist/lynx/components/radio-group.css +149 -0
  98. package/dist/lynx/components/rating-group.css +69 -0
  99. package/dist/lynx/components/select.css +163 -0
  100. package/dist/lynx/components/skeleton.css +34 -0
  101. package/dist/lynx/components/slider.css +136 -0
  102. package/dist/lynx/components/spinner.css +49 -0
  103. package/dist/lynx/components/stats.css +95 -0
  104. package/dist/lynx/components/status.css +45 -0
  105. package/dist/lynx/components/steps.css +171 -0
  106. package/dist/lynx/components/swap.css +60 -0
  107. package/dist/lynx/components/switch.css +95 -0
  108. package/dist/lynx/components/table.css +74 -0
  109. package/dist/lynx/components/tabs.css +105 -0
  110. package/dist/lynx/components/textarea.css +104 -0
  111. package/dist/lynx/components/timeline.css +123 -0
  112. package/dist/lynx/components/toast.css +200 -0
  113. package/dist/lynx/components/toggle-group.css +114 -0
  114. package/dist/lynx/components/toggle.css +112 -0
  115. package/dist/lynx/components/tooltip.css +153 -0
  116. package/dist/lynx/components/tree-view.css +161 -0
  117. package/dist/lynx/index.css +6223 -0
  118. package/dist/lynx/manifest.json +1758 -0
  119. package/dist/lynx/tokens.css +425 -0
  120. package/dist/manifest.json +1752 -0
  121. package/dist/recipes.d.ts +188 -0
  122. package/dist/recipes.d.ts.map +1 -0
  123. package/dist/recipes.js +5128 -0
  124. package/dist/recipes.js.map +1 -0
  125. package/dist/register.d.ts +507 -0
  126. package/dist/register.js +4 -0
  127. package/dist/report.json +10752 -0
  128. package/dist/tokens.d.ts +150 -0
  129. package/dist/tokens.d.ts.map +1 -0
  130. package/dist/tokens.js +306 -0
  131. package/dist/tokens.js.map +1 -0
  132. package/package.json +61 -0
  133. package/src/design-system.ts +52 -0
  134. package/src/index.ts +14 -0
  135. package/src/recipes.ts +5236 -0
  136. package/src/tokens.ts +321 -0
@@ -0,0 +1,252 @@
1
+ @layer zero.recipes {
2
+ [data-scope="button"][data-part="root"] {
3
+ --btn-accent: var(--color-primary);
4
+ --btn-on-accent: var(--color-primary-content);
5
+ --btn-soft: var(--color-primary-soft);
6
+ --btn-ink: color-mix(in oklab, var(--color-primary) 95%, var(--color-base-content));
7
+ }
8
+
9
+ [data-scope="button"][data-part="root"] {
10
+ appearance: none;
11
+ display: inline-flex;
12
+ align-items: center;
13
+ justify-content: center;
14
+ gap: 0.5em;
15
+ border: var(--border) solid transparent;
16
+ border-radius: var(--radius-field);
17
+ box-shadow: var(--shadow-xs);
18
+ font-family: inherit;
19
+ font-weight: var(--weight-semibold);
20
+ line-height: var(--leading-none);
21
+ cursor: pointer;
22
+ transition: background var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);
23
+ }
24
+
25
+ [data-scope="button"][data-part="root"][data-disabled] {
26
+ opacity: var(--disabled-opacity);
27
+ cursor: not-allowed;
28
+ }
29
+
30
+ [data-scope="button"][data-part="root"][data-focus-visible] {
31
+ outline: 2px solid var(--btn-ink);
32
+ outline-offset: 2px;
33
+ }
34
+
35
+ [data-scope="button"][data-part="root"][data-pressed]:not([data-disabled]) {
36
+ transform: translateY(1px);
37
+ box-shadow: none;
38
+ }
39
+
40
+ [data-scope="button"][data-part="root"][data-color="primary"] {
41
+ --btn-accent: var(--color-primary);
42
+ --btn-on-accent: var(--color-primary-content);
43
+ --btn-soft: var(--color-primary-soft);
44
+ --btn-ink: color-mix(in oklab, var(--color-primary) 95%, var(--color-base-content));
45
+ }
46
+
47
+ [data-scope="button"][data-part="root"]:not([data-color]) {
48
+ --btn-accent: var(--color-primary);
49
+ --btn-on-accent: var(--color-primary-content);
50
+ --btn-soft: var(--color-primary-soft);
51
+ --btn-ink: color-mix(in oklab, var(--color-primary) 95%, var(--color-base-content));
52
+ }
53
+
54
+ [data-scope="button"][data-part="root"][data-color="secondary"] {
55
+ --btn-accent: var(--color-secondary);
56
+ --btn-on-accent: var(--color-secondary-content);
57
+ --btn-soft: var(--color-secondary-soft);
58
+ --btn-ink: color-mix(in oklab, var(--color-secondary) 70%, var(--color-base-content));
59
+ }
60
+
61
+ [data-scope="button"][data-part="root"][data-color="accent"] {
62
+ --btn-accent: var(--color-accent);
63
+ --btn-on-accent: var(--color-accent-content);
64
+ --btn-soft: var(--color-accent-soft);
65
+ --btn-ink: color-mix(in oklab, var(--color-accent) 55%, var(--color-base-content));
66
+ }
67
+
68
+ [data-scope="button"][data-part="root"][data-color="neutral"] {
69
+ --btn-accent: var(--color-neutral);
70
+ --btn-on-accent: var(--color-neutral-content);
71
+ --btn-soft: var(--color-neutral-soft);
72
+ --btn-ink: color-mix(in oklab, var(--color-neutral) 40%, var(--color-base-content));
73
+ }
74
+
75
+ [data-scope="button"][data-part="root"][data-color="info"] {
76
+ --btn-accent: var(--color-info);
77
+ --btn-on-accent: var(--color-info-content);
78
+ --btn-soft: var(--color-info-soft);
79
+ --btn-ink: color-mix(in oklab, var(--color-info) 70%, var(--color-base-content));
80
+ }
81
+
82
+ [data-scope="button"][data-part="root"][data-color="success"] {
83
+ --btn-accent: var(--color-success);
84
+ --btn-on-accent: var(--color-success-content);
85
+ --btn-soft: var(--color-success-soft);
86
+ --btn-ink: color-mix(in oklab, var(--color-success) 55%, var(--color-base-content));
87
+ }
88
+
89
+ [data-scope="button"][data-part="root"][data-color="warning"] {
90
+ --btn-accent: var(--color-warning);
91
+ --btn-on-accent: var(--color-warning-content);
92
+ --btn-soft: var(--color-warning-soft);
93
+ --btn-ink: color-mix(in oklab, var(--color-warning) 45%, var(--color-base-content));
94
+ }
95
+
96
+ [data-scope="button"][data-part="root"][data-color="error"] {
97
+ --btn-accent: var(--color-error);
98
+ --btn-on-accent: var(--color-error-content);
99
+ --btn-soft: var(--color-error-soft);
100
+ --btn-ink: color-mix(in oklab, var(--color-error) 85%, var(--color-base-content));
101
+ }
102
+
103
+ [data-scope="button"][data-part="root"][data-variant="solid"] {
104
+ background: var(--btn-accent);
105
+ color: var(--btn-on-accent);
106
+ }
107
+
108
+ [data-scope="button"][data-part="root"][data-variant="solid"]:hover:not([data-disabled]) {
109
+ filter: brightness(0.92);
110
+ }
111
+
112
+ [data-scope="button"][data-part="root"]:not([data-variant]) {
113
+ background: var(--btn-accent);
114
+ color: var(--btn-on-accent);
115
+ }
116
+
117
+ [data-scope="button"][data-part="root"]:not([data-variant]):hover:not([data-disabled]) {
118
+ filter: brightness(0.92);
119
+ }
120
+
121
+ [data-scope="button"][data-part="root"][data-variant="outline"] {
122
+ background: transparent;
123
+ color: var(--btn-ink);
124
+ border-color: var(--btn-ink);
125
+ }
126
+
127
+ [data-scope="button"][data-part="root"][data-variant="outline"]:hover:not([data-disabled]) {
128
+ background: var(--btn-soft);
129
+ }
130
+
131
+ [data-scope="button"][data-part="root"][data-variant="soft"] {
132
+ background: var(--btn-soft);
133
+ color: var(--btn-ink);
134
+ }
135
+
136
+ [data-scope="button"][data-part="root"][data-variant="soft"]:hover:not([data-disabled]) {
137
+ filter: brightness(0.95);
138
+ }
139
+
140
+ [data-scope="button"][data-part="root"][data-variant="ghost"] {
141
+ background: transparent;
142
+ color: var(--btn-ink);
143
+ }
144
+
145
+ [data-scope="button"][data-part="root"][data-variant="ghost"]:hover:not([data-disabled]) {
146
+ background: var(--btn-soft);
147
+ }
148
+
149
+ [data-scope="button"][data-part="root"][data-variant="dash"] {
150
+ background: transparent;
151
+ color: var(--btn-ink);
152
+ border-color: var(--btn-ink);
153
+ border-style: dashed;
154
+ }
155
+
156
+ [data-scope="button"][data-part="root"][data-variant="dash"]:hover:not([data-disabled]) {
157
+ background: var(--btn-soft);
158
+ }
159
+
160
+ [data-scope="button"][data-part="root"][data-variant="link"] {
161
+ background: transparent;
162
+ color: var(--btn-ink);
163
+ text-decoration: underline;
164
+ text-underline-offset: 2px;
165
+ box-shadow: none;
166
+ }
167
+
168
+ [data-scope="button"][data-part="root"][data-variant="link"]:hover:not([data-disabled]) {
169
+ text-decoration-thickness: 2px;
170
+ }
171
+
172
+ [data-scope="button"][data-part="root"][data-size="xs"] {
173
+ padding: var(--space-2xs) var(--space-xs);
174
+ font-size: var(--text-xs);
175
+ }
176
+
177
+ [data-scope="button"][data-part="root"][data-size="sm"] {
178
+ padding: var(--space-xs) var(--space-sm);
179
+ font-size: var(--text-sm);
180
+ }
181
+
182
+ [data-scope="button"][data-part="root"][data-size="md"] {
183
+ padding: var(--space-sm) var(--space-lg);
184
+ font-size: var(--text-md);
185
+ }
186
+
187
+ [data-scope="button"][data-part="root"]:not([data-size]) {
188
+ padding: var(--space-sm) var(--space-lg);
189
+ font-size: var(--text-md);
190
+ }
191
+
192
+ [data-scope="button"][data-part="root"][data-size="lg"] {
193
+ padding: var(--space-md) var(--space-xl);
194
+ font-size: var(--text-lg);
195
+ }
196
+
197
+ [data-scope="button"][data-part="root"][data-size="xl"] {
198
+ padding: var(--space-lg) var(--space-2xl);
199
+ font-size: var(--text-xl);
200
+ }
201
+
202
+ [data-scope="button"][data-part="root"][data-mod-wide] {
203
+ inline-size: 100%;
204
+ max-inline-size: 16rem;
205
+ }
206
+
207
+ [data-scope="button"][data-part="root"][data-mod-block] {
208
+ inline-size: 100%;
209
+ }
210
+
211
+ [data-scope="button"][data-part="root"][data-mod-square] {
212
+ padding-inline: 0;
213
+ aspect-ratio: 1;
214
+ }
215
+
216
+ [data-scope="button"][data-part="root"][data-mod-circle] {
217
+ padding-inline: 0;
218
+ aspect-ratio: 1;
219
+ border-radius: 9999px;
220
+ }
221
+
222
+ [data-scope="button"][data-part="root"][data-mod-active] {
223
+ transform: translateY(1px);
224
+ box-shadow: none;
225
+ filter: brightness(0.92);
226
+ }
227
+
228
+ [data-scope="button"][data-part="root"][data-mod-loading] {
229
+ cursor: progress;
230
+ }
231
+
232
+ [data-scope="button"][data-part="root"][data-mod-loading]::before {
233
+ content: "";
234
+ box-sizing: border-box;
235
+ inline-size: 1em;
236
+ block-size: 1em;
237
+ flex: none;
238
+ border-radius: 9999px;
239
+ border: calc(var(--border) * 2) solid currentColor;
240
+ border-block-start-color: transparent;
241
+ animation: zero-daisyui-btn-spin 0.7s linear infinite;
242
+ }
243
+
244
+ @media (prefers-reduced-motion: reduce) {
245
+ [data-scope="button"][data-part="root"][data-mod-loading]::before {
246
+ animation: none;
247
+ }
248
+ }
249
+ }
250
+ @keyframes zero-daisyui-btn-spin {
251
+ to { transform: rotate(360deg) }
252
+ }
@@ -0,0 +1,97 @@
1
+ @layer zero.recipes {
2
+ [data-scope="card"][data-part="root"] {
3
+ --card-pad: var(--space-xl);
4
+ }
5
+
6
+ [data-scope="card"][data-part="root"] {
7
+ display: flex;
8
+ flex-direction: column;
9
+ background: var(--color-base-100);
10
+ color: var(--color-base-content);
11
+ border-radius: var(--radius-box);
12
+ box-shadow: var(--shadow-md);
13
+ overflow: hidden;
14
+ }
15
+
16
+ [data-scope="card"][data-part="header"] {
17
+ display: flex;
18
+ flex-direction: column;
19
+ gap: var(--space-2xs);
20
+ padding: var(--card-pad) var(--card-pad) 0;
21
+ }
22
+
23
+ [data-scope="card"][data-part="title"] {
24
+ margin: 0;
25
+ font-size: var(--text-lg);
26
+ font-weight: var(--weight-semibold);
27
+ line-height: var(--leading-tight);
28
+ }
29
+
30
+ [data-scope="card"][data-part="description"] {
31
+ margin: 0;
32
+ font-size: var(--text-sm);
33
+ color: color-mix(in oklab, var(--color-base-content) 70%, transparent);
34
+ }
35
+
36
+ [data-scope="card"][data-part="body"] {
37
+ padding: var(--card-pad);
38
+ font-size: var(--text-sm);
39
+ line-height: var(--leading-normal);
40
+ }
41
+
42
+ [data-scope="card"][data-part="footer"] {
43
+ display: flex;
44
+ align-items: center;
45
+ justify-content: flex-end;
46
+ gap: var(--space-md);
47
+ padding: 0 var(--card-pad) var(--card-pad);
48
+ }
49
+
50
+ [data-scope="card"][data-part="root"][data-color="primary"] {
51
+ border-top: calc(var(--border) * 3) solid var(--color-primary);
52
+ }
53
+
54
+ [data-scope="card"][data-part="root"][data-color="secondary"] {
55
+ border-top: calc(var(--border) * 3) solid var(--color-secondary);
56
+ }
57
+
58
+ [data-scope="card"][data-part="root"][data-color="accent"] {
59
+ border-top: calc(var(--border) * 3) solid var(--color-accent);
60
+ }
61
+
62
+ [data-scope="card"][data-part="root"][data-color="neutral"] {
63
+ border-top: calc(var(--border) * 3) solid var(--color-neutral);
64
+ }
65
+
66
+ [data-scope="card"][data-part="root"][data-color="info"] {
67
+ border-top: calc(var(--border) * 3) solid var(--color-info);
68
+ }
69
+
70
+ [data-scope="card"][data-part="root"][data-color="success"] {
71
+ border-top: calc(var(--border) * 3) solid var(--color-success);
72
+ }
73
+
74
+ [data-scope="card"][data-part="root"][data-color="warning"] {
75
+ border-top: calc(var(--border) * 3) solid var(--color-warning);
76
+ }
77
+
78
+ [data-scope="card"][data-part="root"][data-color="error"] {
79
+ border-top: calc(var(--border) * 3) solid var(--color-error);
80
+ }
81
+
82
+ [data-scope="card"][data-part="root"][data-size="xs"] {
83
+ --card-pad: var(--space-sm);
84
+ }
85
+
86
+ [data-scope="card"][data-part="root"][data-size="sm"] {
87
+ --card-pad: var(--space-md);
88
+ }
89
+
90
+ [data-scope="card"][data-part="root"][data-size="lg"] {
91
+ --card-pad: var(--space-2xl);
92
+ }
93
+
94
+ [data-scope="card"][data-part="root"][data-size="xl"] {
95
+ --card-pad: var(--space-2xl);
96
+ }
97
+ }
@@ -0,0 +1,196 @@
1
+ @layer zero.recipes {
2
+ [data-scope="carousel"][data-part="root"] {
3
+ --carousel-accent: var(--color-base-content);
4
+ --carousel-dot: 0.625rem;
5
+ --carousel-nav: 2rem;
6
+ }
7
+
8
+ [data-scope="carousel"][data-part="root"] {
9
+ position: relative;
10
+ display: grid;
11
+ gap: var(--space-sm);
12
+ }
13
+
14
+ [data-scope="carousel"][data-part="viewport"] {
15
+ display: flex;
16
+ overflow-x: auto;
17
+ scroll-snap-type: x mandatory;
18
+ overscroll-behavior-x: contain;
19
+ border-radius: var(--radius-box);
20
+ }
21
+
22
+ [data-scope="carousel"][data-part="viewport"]:focus-visible {
23
+ outline: 2px solid var(--color-base-content);
24
+ outline-offset: 2px;
25
+ }
26
+
27
+ [data-scope="carousel"][data-part="item"] {
28
+ flex: 0 0 100%;
29
+ min-width: 0;
30
+ scroll-snap-align: center;
31
+ }
32
+
33
+ [data-scope="carousel"][data-part="prev-trigger"] {
34
+ appearance: none;
35
+ position: absolute;
36
+ inset-block-start: calc(50% - var(--carousel-nav) / 2);
37
+ inset-inline-start: var(--space-sm);
38
+ inline-size: var(--carousel-nav);
39
+ block-size: var(--carousel-nav);
40
+ display: grid;
41
+ place-items: center;
42
+ font-size: var(--text-sm);
43
+ line-height: var(--leading-none);
44
+ color: var(--color-base-content);
45
+ background: var(--color-base-200);
46
+ border: var(--border) solid var(--color-base-300);
47
+ border-radius: 9999px;
48
+ cursor: pointer;
49
+ z-index: 1;
50
+ }
51
+
52
+ [data-scope="carousel"][data-part="prev-trigger"]:hover:not([data-disabled]) {
53
+ background: var(--color-base-300);
54
+ }
55
+
56
+ [data-scope="carousel"][data-part="prev-trigger"][data-disabled] {
57
+ opacity: var(--disabled-opacity);
58
+ cursor: not-allowed;
59
+ }
60
+
61
+ [data-scope="carousel"][data-part="prev-trigger"][data-focus-visible] {
62
+ outline: 2px solid var(--color-base-content);
63
+ outline-offset: 2px;
64
+ }
65
+
66
+ [data-scope="carousel"][data-part="prev-trigger"][data-pressed]:not([data-disabled]) {
67
+ translate: 0 1px;
68
+ }
69
+
70
+ [data-scope="carousel"][data-part="next-trigger"] {
71
+ appearance: none;
72
+ position: absolute;
73
+ inset-block-start: calc(50% - var(--carousel-nav) / 2);
74
+ inset-inline-end: var(--space-sm);
75
+ inline-size: var(--carousel-nav);
76
+ block-size: var(--carousel-nav);
77
+ display: grid;
78
+ place-items: center;
79
+ font-size: var(--text-sm);
80
+ line-height: var(--leading-none);
81
+ color: var(--color-base-content);
82
+ background: var(--color-base-200);
83
+ border: var(--border) solid var(--color-base-300);
84
+ border-radius: 9999px;
85
+ cursor: pointer;
86
+ z-index: 1;
87
+ }
88
+
89
+ [data-scope="carousel"][data-part="next-trigger"]:hover:not([data-disabled]) {
90
+ background: var(--color-base-300);
91
+ }
92
+
93
+ [data-scope="carousel"][data-part="next-trigger"][data-disabled] {
94
+ opacity: var(--disabled-opacity);
95
+ cursor: not-allowed;
96
+ }
97
+
98
+ [data-scope="carousel"][data-part="next-trigger"][data-focus-visible] {
99
+ outline: 2px solid var(--color-base-content);
100
+ outline-offset: 2px;
101
+ }
102
+
103
+ [data-scope="carousel"][data-part="next-trigger"][data-pressed]:not([data-disabled]) {
104
+ translate: 0 1px;
105
+ }
106
+
107
+ [data-scope="carousel"][data-part="indicator-group"] {
108
+ display: flex;
109
+ gap: var(--space-xs);
110
+ justify-content: center;
111
+ }
112
+
113
+ [data-scope="carousel"][data-part="indicator"] {
114
+ appearance: none;
115
+ inline-size: max(var(--carousel-dot), 1.5rem);
116
+ block-size: max(var(--carousel-dot), 1.5rem);
117
+ padding: 0;
118
+ display: grid;
119
+ place-items: center;
120
+ background: transparent;
121
+ border: none;
122
+ cursor: pointer;
123
+ }
124
+
125
+ [data-scope="carousel"][data-part="indicator"][data-focus-visible] {
126
+ outline: 2px solid var(--color-base-content);
127
+ outline-offset: 2px;
128
+ }
129
+
130
+ [data-scope="carousel"][data-part="indicator"]::before {
131
+ content: "";
132
+ inline-size: var(--carousel-dot);
133
+ block-size: var(--carousel-dot);
134
+ box-sizing: border-box;
135
+ border: calc(var(--border) * 2) solid color-mix(in oklab, var(--color-base-content) 70%, transparent);
136
+ border-radius: 9999px;
137
+ background: transparent;
138
+ }
139
+
140
+ [data-scope="carousel"][data-part="indicator"][data-state="active"]::before {
141
+ background: var(--carousel-accent);
142
+ border-color: var(--carousel-accent);
143
+ }
144
+
145
+ [data-scope="carousel"][data-part="root"][data-color="primary"] {
146
+ --carousel-accent: color-mix(in oklab, var(--color-primary) 95%, var(--color-base-content));
147
+ }
148
+
149
+ [data-scope="carousel"][data-part="root"][data-color="secondary"] {
150
+ --carousel-accent: color-mix(in oklab, var(--color-secondary) 70%, var(--color-base-content));
151
+ }
152
+
153
+ [data-scope="carousel"][data-part="root"][data-color="accent"] {
154
+ --carousel-accent: color-mix(in oklab, var(--color-accent) 55%, var(--color-base-content));
155
+ }
156
+
157
+ [data-scope="carousel"][data-part="root"][data-color="neutral"] {
158
+ --carousel-accent: color-mix(in oklab, var(--color-neutral) 40%, var(--color-base-content));
159
+ }
160
+
161
+ [data-scope="carousel"][data-part="root"][data-color="info"] {
162
+ --carousel-accent: color-mix(in oklab, var(--color-info) 70%, var(--color-base-content));
163
+ }
164
+
165
+ [data-scope="carousel"][data-part="root"][data-color="success"] {
166
+ --carousel-accent: color-mix(in oklab, var(--color-success) 55%, var(--color-base-content));
167
+ }
168
+
169
+ [data-scope="carousel"][data-part="root"][data-color="warning"] {
170
+ --carousel-accent: color-mix(in oklab, var(--color-warning) 45%, var(--color-base-content));
171
+ }
172
+
173
+ [data-scope="carousel"][data-part="root"][data-color="error"] {
174
+ --carousel-accent: color-mix(in oklab, var(--color-error) 85%, var(--color-base-content));
175
+ }
176
+
177
+ [data-scope="carousel"][data-part="root"][data-size="xs"] {
178
+ --carousel-dot: 0.375rem;
179
+ --carousel-nav: 1.5rem;
180
+ }
181
+
182
+ [data-scope="carousel"][data-part="root"][data-size="sm"] {
183
+ --carousel-dot: 0.5rem;
184
+ --carousel-nav: 1.75rem;
185
+ }
186
+
187
+ [data-scope="carousel"][data-part="root"][data-size="lg"] {
188
+ --carousel-dot: 0.75rem;
189
+ --carousel-nav: 2.5rem;
190
+ }
191
+
192
+ [data-scope="carousel"][data-part="root"][data-size="xl"] {
193
+ --carousel-dot: 0.875rem;
194
+ --carousel-nav: 3rem;
195
+ }
196
+ }