@macroui/macroui 4.0.0 → 4.0.2

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 (123) hide show
  1. package/dist/base.js +1 -0
  2. package/dist/full.css +62910 -0
  3. package/dist/index.d.ts +122 -0
  4. package/dist/index.js +149 -0
  5. package/dist/styled.css +5192 -0
  6. package/dist/styled.js +1 -0
  7. package/dist/themes.css +2118 -0
  8. package/dist/unstyled.css +1330 -0
  9. package/dist/unstyled.js +1 -0
  10. package/dist/utilities-styled.js +1 -0
  11. package/dist/utilities-unstyled.js +1 -0
  12. package/dist/utilities.js +1 -0
  13. package/package.json +23 -24
  14. package/src/base/properties.css +5 -0
  15. package/src/base/reset.css +130 -0
  16. package/src/base/rootcolor.css +9 -0
  17. package/src/base/rootscrollgutter.css +21 -0
  18. package/src/base/rootscrolllock.css +4 -0
  19. package/src/base/scrollbar.css +3 -0
  20. package/src/base/svg.css +3 -0
  21. package/src/components/alert.css +126 -0
  22. package/src/components/avatar.css +60 -0
  23. package/src/components/badge.css +151 -0
  24. package/src/components/breadcrumbs.css +40 -0
  25. package/src/components/button.css +362 -0
  26. package/src/components/calendar.css +549 -0
  27. package/src/components/card.css +203 -0
  28. package/src/components/carousel.css +59 -0
  29. package/src/components/chat.css +157 -0
  30. package/src/components/checkbox.css +174 -0
  31. package/src/components/collapse.css +302 -0
  32. package/src/components/countdown.css +56 -0
  33. package/src/components/diff.css +93 -0
  34. package/src/components/divider.css +148 -0
  35. package/src/components/dock.css +123 -0
  36. package/src/components/drawer.css +166 -0
  37. package/src/components/dropdown.css +247 -0
  38. package/src/components/fab.css +139 -0
  39. package/src/components/fieldset.css +23 -0
  40. package/src/components/fileinput.css +265 -0
  41. package/src/components/filter.css +42 -0
  42. package/src/components/footer.css +45 -0
  43. package/src/components/hero.css +21 -0
  44. package/src/components/hover3d.css +128 -0
  45. package/src/components/hovergallery.css +87 -0
  46. package/src/components/indicator.css +76 -0
  47. package/src/components/input.css +263 -0
  48. package/src/components/kbd.css +49 -0
  49. package/src/components/label.css +101 -0
  50. package/src/components/link.css +116 -0
  51. package/src/components/list.css +58 -0
  52. package/src/components/loading.css +76 -0
  53. package/src/components/mask.css +108 -0
  54. package/src/components/menu.css +298 -0
  55. package/src/components/mockup.css +150 -0
  56. package/src/components/modal.css +182 -0
  57. package/src/components/navbar.css +36 -0
  58. package/src/components/progress.css +108 -0
  59. package/src/components/radialprogress.css +39 -0
  60. package/src/components/radio.css +158 -0
  61. package/src/components/range.css +186 -0
  62. package/src/components/rating.css +114 -0
  63. package/src/components/select.css +284 -0
  64. package/src/components/skeleton.css +41 -0
  65. package/src/components/stack.css +80 -0
  66. package/src/components/stat.css +73 -0
  67. package/src/components/status.css +92 -0
  68. package/src/components/steps.css +168 -0
  69. package/src/components/swap.css +94 -0
  70. package/src/components/tab.css +557 -0
  71. package/src/components/table.css +126 -0
  72. package/src/components/textarea.css +179 -0
  73. package/src/components/textrotate.css +71 -0
  74. package/src/components/timeline.css +250 -0
  75. package/src/components/toast.css +68 -0
  76. package/src/components/toggle.css +239 -0
  77. package/src/components/tooltip.css +203 -0
  78. package/src/components/validator.css +47 -0
  79. package/src/themes/abyss.css +29 -0
  80. package/src/themes/acid.css +29 -0
  81. package/src/themes/aqua.css +29 -0
  82. package/src/themes/autumn.css +29 -0
  83. package/src/themes/black.css +29 -0
  84. package/src/themes/bumblebee.css +29 -0
  85. package/src/themes/business.css +29 -0
  86. package/src/themes/caramellatte.css +29 -0
  87. package/src/themes/cmyk.css +29 -0
  88. package/src/themes/coffee.css +29 -0
  89. package/src/themes/corporate.css +29 -0
  90. package/src/themes/cupcake.css +29 -0
  91. package/src/themes/cyberpunk.css +29 -0
  92. package/src/themes/dark.css +29 -0
  93. package/src/themes/dim.css +29 -0
  94. package/src/themes/dracula.css +29 -0
  95. package/src/themes/emerald.css +29 -0
  96. package/src/themes/fantasy.css +29 -0
  97. package/src/themes/forest.css +29 -0
  98. package/src/themes/garden.css +29 -0
  99. package/src/themes/halloween.css +29 -0
  100. package/src/themes/lemonade.css +29 -0
  101. package/src/themes/light.css +29 -0
  102. package/src/themes/lofi.css +29 -0
  103. package/src/themes/luxury.css +29 -0
  104. package/src/themes/night.css +29 -0
  105. package/src/themes/nord.css +29 -0
  106. package/src/themes/pastel.css +29 -0
  107. package/src/themes/retro.css +29 -0
  108. package/src/themes/silk.css +29 -0
  109. package/src/themes/sunset.css +29 -0
  110. package/src/themes/synthwave.css +29 -0
  111. package/src/themes/valentine.css +29 -0
  112. package/src/themes/winter.css +29 -0
  113. package/src/themes/wireframe.css +29 -0
  114. package/src/utilities/glass.css +20 -0
  115. package/src/utilities/join.css +207 -0
  116. package/src/utilities/radius.css +119 -0
  117. package/src/utilities/typography.css +31 -0
  118. package/functions/addPrefix.js +0 -185
  119. package/functions/plugin.js +0 -11
  120. package/functions/pluginOptionsHandler.js +0 -97
  121. package/functions/themeOrder.js +0 -37
  122. package/functions/variables.js +0 -29
  123. package/index.js +0 -61
@@ -0,0 +1,265 @@
1
+ .file-input {
2
+ @layer daisyui.l1.l2.l3 {
3
+ cursor: pointer;
4
+ border: var(--border) solid #0000;
5
+ @apply bg-base-100 inline-flex cursor-pointer appearance-none items-center align-middle select-none;
6
+ width: clamp(3rem, 20rem, 100%);
7
+ height: var(--size);
8
+ padding-inline-end: 0.75rem;
9
+ font-size: 0.875rem;
10
+ line-height: 2;
11
+ border-start-start-radius: var(--join-ss, var(--radius-field));
12
+ border-start-end-radius: var(--join-se, var(--radius-field));
13
+ border-end-start-radius: var(--join-es, var(--radius-field));
14
+ border-end-end-radius: var(--join-ee, var(--radius-field));
15
+ border-color: var(--input-color);
16
+ box-shadow:
17
+ 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset,
18
+ 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset;
19
+ --size: calc(var(--size-field, 0.25rem) * 10);
20
+ --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000);
21
+ &::file-selector-button {
22
+ @apply me-4 cursor-pointer px-4 select-none;
23
+ height: calc(100% + var(--border) * 2);
24
+ margin-block: calc(var(--border) * -1);
25
+ margin-inline-start: calc(var(--border) * -1);
26
+ font-size: 0.875rem;
27
+ color: var(--btn-fg);
28
+ border-width: var(--border);
29
+ border-style: solid;
30
+ border-color: var(--btn-border);
31
+ border-start-start-radius: calc(var(--join-ss, var(--radius-field) - var(--border)));
32
+ border-end-start-radius: calc(var(--join-es, var(--radius-field) - var(--border)));
33
+ font-weight: 600;
34
+ background-color: var(--btn-bg);
35
+ background-size: calc(var(--noise) * 100%);
36
+ background-image: var(--btn-noise);
37
+ text-shadow: 0 0.5px oklch(1 0 0 / calc(var(--depth) * 0.15));
38
+ box-shadow:
39
+ 0 0.5px 0 0.5px
40
+ color-mix(
41
+ in oklab,
42
+ color-mix(in oklab, white 30%, var(--btn-bg)) calc(var(--depth) * 20%),
43
+ #0000
44
+ )
45
+ inset,
46
+ var(--btn-shadow);
47
+ --size: calc(var(--size-field, 0.25rem) * 10);
48
+ --btn-bg: var(--btn-color, var(--color-base-200));
49
+ --btn-fg: var(--color-base-content);
50
+ --btn-border: color-mix(in oklab, var(--btn-bg), #000 5%);
51
+ --btn-shadow:
52
+ 0 3px 2px -2px color-mix(in oklab, var(--btn-bg) 30%, #0000),
53
+ 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) 30%, #0000);
54
+ --btn-noise: var(--fx-noise);
55
+ }
56
+
57
+ &:focus {
58
+ --input-color: var(--color-base-content);
59
+ box-shadow: 0 1px color-mix(in oklab, var(--input-color) 10%, #0000);
60
+ outline: 2px solid var(--input-color);
61
+ outline-offset: 2px;
62
+ isolation: isolate;
63
+ }
64
+ &:has(> input[disabled]),
65
+ &:is(:disabled, [disabled]) {
66
+ @apply border-base-200 bg-base-200 placeholder-base-content placeholder-base-content/20 cursor-not-allowed;
67
+ box-shadow: none;
68
+ color: color-mix(in oklch, var(--color-base-content) 20%, #0000);
69
+
70
+ &::file-selector-button {
71
+ @apply border-base-200 bg-base-200 cursor-not-allowed;
72
+ --btn-border: #0000;
73
+ --btn-noise: none;
74
+ --btn-fg: color-mix(in oklch, var(--color-base-content) 20%, #0000);
75
+ }
76
+ }
77
+ }
78
+ }
79
+ .file-input-ghost {
80
+ @layer daisyui.l1.l2 {
81
+ @apply bg-transparent;
82
+ transition: background-color 0.2s;
83
+ box-shadow: none;
84
+ border-color: #0000;
85
+ &::file-selector-button {
86
+ @apply ms-0 me-4 h-full cursor-pointer px-4 select-none;
87
+ margin-block: 0;
88
+ border-start-end-radius: calc(var(--join-ss, var(--radius-field) - var(--border)));
89
+ border-end-end-radius: calc(var(--join-es, var(--radius-field) - var(--border)));
90
+ }
91
+
92
+ &:focus,
93
+ &:focus-within {
94
+ @apply text-base-content bg-base-100;
95
+ border-color: #0000;
96
+ box-shadow: none;
97
+ }
98
+ }
99
+ }
100
+
101
+ .file-input-neutral {
102
+ @layer daisyui.l1.l2 {
103
+ --btn-color: var(--color-neutral);
104
+ &::file-selector-button {
105
+ color: var(--color-neutral-content);
106
+ }
107
+ &,
108
+ &:focus,
109
+ &:focus-within {
110
+ --input-color: var(--color-neutral);
111
+ }
112
+ }
113
+ }
114
+
115
+ .file-input-primary {
116
+ @layer daisyui.l1.l2 {
117
+ --btn-color: var(--color-primary);
118
+ &::file-selector-button {
119
+ color: var(--color-primary-content);
120
+ }
121
+ &,
122
+ &:focus,
123
+ &:focus-within {
124
+ --input-color: var(--color-primary);
125
+ }
126
+ }
127
+ }
128
+
129
+ .file-input-secondary {
130
+ @layer daisyui.l1.l2 {
131
+ --btn-color: var(--color-secondary);
132
+ &::file-selector-button {
133
+ color: var(--color-secondary-content);
134
+ }
135
+ &,
136
+ &:focus,
137
+ &:focus-within {
138
+ --input-color: var(--color-secondary);
139
+ }
140
+ }
141
+ }
142
+
143
+ .file-input-accent {
144
+ @layer daisyui.l1.l2 {
145
+ --btn-color: var(--color-accent);
146
+ &::file-selector-button {
147
+ color: var(--color-accent-content);
148
+ }
149
+ &,
150
+ &:focus,
151
+ &:focus-within {
152
+ --input-color: var(--color-accent);
153
+ }
154
+ }
155
+ }
156
+
157
+ .file-input-info {
158
+ @layer daisyui.l1.l2 {
159
+ --btn-color: var(--color-info);
160
+ &::file-selector-button {
161
+ color: var(--color-info-content);
162
+ }
163
+ &,
164
+ &:focus,
165
+ &:focus-within {
166
+ --input-color: var(--color-info);
167
+ }
168
+ }
169
+ }
170
+ .file-input-success {
171
+ @layer daisyui.l1.l2 {
172
+ --btn-color: var(--color-success);
173
+ &::file-selector-button {
174
+ color: var(--color-success-content);
175
+ }
176
+ &,
177
+ &:focus,
178
+ &:focus-within {
179
+ --input-color: var(--color-success);
180
+ }
181
+ }
182
+ }
183
+
184
+ .file-input-warning {
185
+ @layer daisyui.l1.l2 {
186
+ --btn-color: var(--color-warning);
187
+ &::file-selector-button {
188
+ color: var(--color-warning-content);
189
+ }
190
+ &,
191
+ &:focus,
192
+ &:focus-within {
193
+ --input-color: var(--color-warning);
194
+ }
195
+ }
196
+ }
197
+
198
+ .file-input-error {
199
+ @layer daisyui.l1.l2 {
200
+ --btn-color: var(--color-error);
201
+ &::file-selector-button {
202
+ color: var(--color-error-content);
203
+ }
204
+ &,
205
+ &:focus,
206
+ &:focus-within {
207
+ --input-color: var(--color-error);
208
+ }
209
+ }
210
+ }
211
+ .file-input-xs {
212
+ @layer daisyui.l1.l2 {
213
+ --size: calc(var(--size-field, 0.25rem) * 6);
214
+ font-size: 0.6875rem;
215
+ line-height: 1rem;
216
+ &::file-selector-button {
217
+ font-size: 0.6875rem;
218
+ }
219
+ }
220
+ }
221
+
222
+ .file-input-sm {
223
+ @layer daisyui.l1.l2 {
224
+ --size: calc(var(--size-field, 0.25rem) * 8);
225
+ font-size: 0.75rem;
226
+ line-height: 1.5rem;
227
+ &::file-selector-button {
228
+ font-size: 0.75rem;
229
+ }
230
+ }
231
+ }
232
+
233
+ .file-input-md {
234
+ @layer daisyui.l1.l2 {
235
+ --size: calc(var(--size-field, 0.25rem) * 10);
236
+ font-size: 0.875rem;
237
+ line-height: 2;
238
+ &::file-selector-button {
239
+ font-size: 0.875rem;
240
+ }
241
+ }
242
+ }
243
+
244
+ .file-input-lg {
245
+ @layer daisyui.l1.l2 {
246
+ --size: calc(var(--size-field, 0.25rem) * 12);
247
+ font-size: 1.125rem;
248
+ line-height: 2.5rem;
249
+ &::file-selector-button {
250
+ font-size: 1.125rem;
251
+ }
252
+ }
253
+ }
254
+
255
+ .file-input-xl {
256
+ @layer daisyui.l1.l2 {
257
+ @apply pe-6;
258
+ --size: calc(var(--size-field, 0.25rem) * 14);
259
+ font-size: 1.125rem;
260
+ line-height: 3rem;
261
+ &::file-selector-button {
262
+ font-size: 1.375rem;
263
+ }
264
+ }
265
+ }
@@ -0,0 +1,42 @@
1
+ .filter {
2
+ @layer daisyui.l1.l2.l3 {
3
+ @apply flex flex-wrap;
4
+ input[type="radio"] {
5
+ @apply w-auto;
6
+ }
7
+ input {
8
+ @apply overflow-hidden opacity-100;
9
+ scale: 1;
10
+ transition:
11
+ margin 0.1s,
12
+ opacity 0.3s,
13
+ padding 0.3s,
14
+ border-width 0.1s;
15
+ &:not(:last-child) {
16
+ @apply me-1;
17
+ }
18
+ &.filter-reset {
19
+ @apply aspect-square;
20
+ &::after {
21
+ --tw-content: "×";
22
+ content: var(--tw-content);
23
+ }
24
+ }
25
+ }
26
+ &:not(:has(input:checked:not(.filter-reset))) {
27
+ .filter-reset,
28
+ input[type="reset"] {
29
+ scale: 0;
30
+ border-width: 0;
31
+ @apply mx-0 w-0 px-0 opacity-0;
32
+ }
33
+ }
34
+ &:has(input:checked:not(.filter-reset)) {
35
+ input:not(:checked, .filter-reset, input[type="reset"]) {
36
+ scale: 0;
37
+ border-width: 0;
38
+ @apply mx-0 w-0 px-0 opacity-0;
39
+ }
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,45 @@
1
+ .footer {
2
+ @layer daisyui.l1.l2.l3 {
3
+ @apply grid w-full grid-flow-row place-items-start gap-x-4 gap-y-10;
4
+ font-size: 0.875rem;
5
+ line-height: 1.25rem;
6
+
7
+ & > * {
8
+ @apply grid place-items-start gap-2;
9
+ }
10
+
11
+ &.footer-center {
12
+ @apply grid-flow-col-dense place-items-center text-center;
13
+
14
+ & > * {
15
+ @apply place-items-center;
16
+ }
17
+ }
18
+ }
19
+ }
20
+ .footer-title {
21
+ @layer daisyui.l1.l2.l3 {
22
+ @apply mb-2 uppercase opacity-60;
23
+ font-weight: 600;
24
+ }
25
+ }
26
+
27
+ .footer-horizontal {
28
+ @layer daisyui.l1.l2 {
29
+ @apply grid-flow-col;
30
+
31
+ &.footer-center {
32
+ @apply grid-flow-row-dense;
33
+ }
34
+ }
35
+ }
36
+
37
+ .footer-vertical {
38
+ @layer daisyui.l1.l2 {
39
+ @apply grid-flow-row;
40
+
41
+ &.footer-center {
42
+ @apply grid-flow-col-dense;
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,21 @@
1
+ .hero {
2
+ @layer daisyui.l1.l2.l3 {
3
+ @apply grid w-full place-items-center bg-cover bg-center;
4
+
5
+ & > * {
6
+ @apply col-start-1 row-start-1;
7
+ }
8
+ }
9
+ }
10
+
11
+ .hero-overlay {
12
+ @layer daisyui.l1.l2.l3 {
13
+ @apply bg-neutral/50 col-start-1 row-start-1 h-full w-full;
14
+ }
15
+ }
16
+
17
+ .hero-content {
18
+ @layer daisyui.l1.l2.l3 {
19
+ @apply isolate flex max-w-[80rem] items-center justify-center gap-4 p-4;
20
+ }
21
+ }
@@ -0,0 +1,128 @@
1
+ .hover-3d {
2
+ @layer daisyui.l1.l2.l3 {
3
+ display: inline-grid;
4
+ perspective: 75rem;
5
+ --transform: 0, 0;
6
+ --shine: 100% 100%;
7
+ --shadow: 0rem 0rem 0rem;
8
+ --ease: linear(0, 0.931 13.8%, 1.196 21.4%, 1.343 29.8%, 1.378 36%, 1.365 43.2%, 1.059 78%, 1);
9
+
10
+ filter: drop-shadow(var(--shadow) 0.1rem #00000003) drop-shadow(var(--shadow) 0.2rem #00000003)
11
+ drop-shadow(var(--shadow) 0.3rem #00000003) drop-shadow(var(--shadow) 0.4rem #00000003);
12
+ transition: filter ease-out 400ms;
13
+ > :nth-child(n + 2) {
14
+ isolation: isolate;
15
+ z-index: 1;
16
+ }
17
+ > :first-child {
18
+ overflow: hidden;
19
+ grid-area: 1/1/4/4;
20
+ transform: rotate3d(var(--transform), 0, 10deg);
21
+ transition:
22
+ transform var(--ease) 500ms,
23
+ scale var(--ease) 500ms,
24
+ outline-color ease-out 500ms;
25
+ outline: 0.5px solid #0000;
26
+ outline-offset: -1px;
27
+ &:before {
28
+ @apply size-1/3;
29
+ content: "";
30
+ pointer-events: none;
31
+ position: absolute;
32
+ z-index: 1;
33
+ scale: 500%;
34
+ opacity: 0;
35
+ filter: blur(0.75rem);
36
+ background-image: radial-gradient(circle at 50%, #fff3 10%, transparent 50%);
37
+ translate: var(--shine);
38
+ transition:
39
+ translate ease-out 400ms,
40
+ opacity ease-out 400ms;
41
+ }
42
+ }
43
+ &:hover {
44
+ --ease: linear(0, 0.708 15.2%, 0.927 23.6%, 1.067 33%, 1.12 41%, 1.13 50.2%, 1.019 83.2%, 1);
45
+ & > :first-child {
46
+ outline-color: #fff1;
47
+ &:before,
48
+ &:after {
49
+ opacity: 1;
50
+ }
51
+ }
52
+ }
53
+ > :nth-child(n + 2) {
54
+ scale: 1.2;
55
+ }
56
+ > :nth-child(2) {
57
+ grid-area: 1/1/2/2;
58
+ }
59
+ > :nth-child(3) {
60
+ grid-area: 1/2/2/3;
61
+ }
62
+ > :nth-child(4) {
63
+ grid-area: 1/3/2/4;
64
+ }
65
+ > :nth-child(5) {
66
+ grid-area: 2/1/3/2;
67
+ }
68
+ > :nth-child(6) {
69
+ grid-area: 2/3/3/4;
70
+ }
71
+ > :nth-child(7) {
72
+ grid-area: 3/1/4/2;
73
+ }
74
+ > :nth-child(8) {
75
+ grid-area: 3/2/4/3;
76
+ }
77
+
78
+ > :nth-child(9) {
79
+ grid-area: 3/3/4/4;
80
+ }
81
+ &:hover {
82
+ > :first-child {
83
+ scale: 1.05;
84
+ }
85
+ }
86
+
87
+ &:has(> :nth-child(2):hover) {
88
+ --transform: -1, 1;
89
+ --shine: 0% 0%;
90
+ --shadow: -0.5rem -0.5rem;
91
+ }
92
+ &:has(> :nth-child(3):hover) {
93
+ --transform: -1, 0;
94
+ --shine: 100% 0%;
95
+ --shadow: 0rem -0.5rem;
96
+ }
97
+ &:has(> :nth-child(4):hover) {
98
+ --transform: -1, -1;
99
+ --shine: 200% 0%;
100
+ --shadow: 0.5rem -0.5rem;
101
+ }
102
+ &:has(> :nth-child(5):hover) {
103
+ --transform: 0, 1;
104
+ --shine: 0% 100%;
105
+ --shadow: -0.5rem 0rem;
106
+ }
107
+ &:has(> :nth-child(6):hover) {
108
+ --transform: 0, -1;
109
+ --shine: 200% 100%;
110
+ --shadow: 0.5rem 0rem;
111
+ }
112
+ &:has(> :nth-child(7):hover) {
113
+ --transform: 1, 1;
114
+ --shine: 0% 200%;
115
+ --shadow: -0.5rem 0.5rem;
116
+ }
117
+ &:has(> :nth-child(8):hover) {
118
+ --transform: 1, 0;
119
+ --shine: 100% 200%;
120
+ --shadow: 0rem 0.5rem;
121
+ }
122
+ &:has(> :nth-child(9):hover) {
123
+ --transform: 1, -1;
124
+ --shine: 200% 200%;
125
+ --shadow: 0.5rem 0.5rem;
126
+ }
127
+ }
128
+ }
@@ -0,0 +1,87 @@
1
+ .hover-gallery {
2
+ @layer daisyui.l1.l2.l3 {
3
+ --items: 1;
4
+ grid-template-columns: repeat(var(--items), 1fr);
5
+ width: 100%;
6
+ gap: 1px;
7
+ overflow: hidden;
8
+ &,
9
+ &:is(figure) {
10
+ display: inline-grid;
11
+ }
12
+ &:has(> :nth-child(3)) {
13
+ --items: 2;
14
+ }
15
+ &:has(> :nth-child(4)) {
16
+ --items: 3;
17
+ }
18
+ &:has(> :nth-child(5)) {
19
+ --items: 4;
20
+ }
21
+ &:has(> :nth-child(6)) {
22
+ --items: 5;
23
+ }
24
+ &:has(> :nth-child(7)) {
25
+ --items: 6;
26
+ }
27
+ &:has(> :nth-child(8)) {
28
+ --items: 7;
29
+ }
30
+ &:has(> :nth-child(9)) {
31
+ --items: 8;
32
+ }
33
+ &:has(> :nth-child(10)) {
34
+ --items: 9;
35
+ }
36
+ > * {
37
+ opacity: 0;
38
+ height: 100%;
39
+ grid-row: 1;
40
+ object-fit: cover;
41
+ width: 100%;
42
+ &:nth-child(1) {
43
+ grid-column: 1 / -1;
44
+ opacity: 1;
45
+ }
46
+ &:nth-child(2) {
47
+ grid-column: 1;
48
+ }
49
+ &:nth-child(3) {
50
+ grid-column: 2;
51
+ }
52
+ &:nth-child(4) {
53
+ grid-column: 3;
54
+ }
55
+ &:nth-child(5) {
56
+ grid-column: 4;
57
+ }
58
+ &:nth-child(6) {
59
+ grid-column: 5;
60
+ }
61
+ &:nth-child(7) {
62
+ grid-column: 6;
63
+ }
64
+ &:nth-child(8) {
65
+ grid-column: 7;
66
+ }
67
+ &:nth-child(9) {
68
+ grid-column: 8;
69
+ }
70
+ &:nth-child(10) {
71
+ grid-column: 9;
72
+ }
73
+ &:nth-child(n + 11) {
74
+ display: none;
75
+ }
76
+ }
77
+ > *:hover {
78
+ grid-column: 1 / -1;
79
+ opacity: 1;
80
+ }
81
+ &:has(*:hover) {
82
+ > :nth-child(1) {
83
+ @apply hidden;
84
+ }
85
+ }
86
+ }
87
+ }
@@ -0,0 +1,76 @@
1
+ .indicator {
2
+ @layer daisyui.l1.l2.l3 {
3
+ @apply relative inline-flex;
4
+ width: max-content;
5
+
6
+ :where(.indicator-item) {
7
+ z-index: 1;
8
+ @apply absolute whitespace-nowrap;
9
+ top: var(--indicator-t, 0);
10
+ bottom: var(--indicator-b, auto);
11
+ left: var(--indicator-s, auto);
12
+ right: var(--indicator-e, 0);
13
+ translate: var(--indicator-x, 50%) var(--indicator-y, -50%);
14
+ }
15
+ }
16
+ }
17
+ .indicator-start {
18
+ @layer daisyui.l1.l2 {
19
+ --indicator-s: 0;
20
+ --indicator-e: auto;
21
+ --indicator-x: -50%;
22
+ [dir="rtl"] & {
23
+ --indicator-s: auto;
24
+ --indicator-e: 0;
25
+ --indicator-x: 50%;
26
+ }
27
+ }
28
+ }
29
+
30
+ .indicator-center {
31
+ @layer daisyui.l1.l2 {
32
+ --indicator-s: 50%;
33
+ --indicator-e: 50%;
34
+ --indicator-x: -50%;
35
+ [dir="rtl"] & {
36
+ --indicator-x: 50%;
37
+ }
38
+ }
39
+ }
40
+
41
+ .indicator-end {
42
+ @layer daisyui.l1.l2 {
43
+ --indicator-s: auto;
44
+ --indicator-e: 0;
45
+ --indicator-x: 50%;
46
+ [dir="rtl"] & {
47
+ --indicator-s: 0;
48
+ --indicator-e: auto;
49
+ --indicator-x: -50%;
50
+ }
51
+ }
52
+ }
53
+
54
+ .indicator-bottom {
55
+ @layer daisyui.l1.l2 {
56
+ --indicator-t: auto;
57
+ --indicator-b: 0;
58
+ --indicator-y: 50%;
59
+ }
60
+ }
61
+
62
+ .indicator-middle {
63
+ @layer daisyui.l1.l2 {
64
+ --indicator-t: 50%;
65
+ --indicator-b: 50%;
66
+ --indicator-y: -50%;
67
+ }
68
+ }
69
+
70
+ .indicator-top {
71
+ @layer daisyui.l1.l2 {
72
+ --indicator-t: 0;
73
+ --indicator-b: auto;
74
+ --indicator-y: -50%;
75
+ }
76
+ }