daisyui 5.0.0-alpha.0 → 5.0.0-alpha.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 (45) hide show
  1. package/components/badge/config.js +12 -0
  2. package/components/badge/index.css +1 -0
  3. package/components/badge/index.js +74 -0
  4. package/components/badge.css +109 -0
  5. package/components/button/config.js +8 -8
  6. package/components/button/index.js +112 -114
  7. package/components/button.css +293 -0
  8. package/components/checkbox/config.js +8 -8
  9. package/components/checkbox/index.js +11 -28
  10. package/components/checkbox.css +144 -0
  11. package/components/input/config.js +8 -8
  12. package/components/input/index.js +24 -24
  13. package/components/input.css +204 -0
  14. package/components/kbd/config.js +12 -0
  15. package/components/kbd/index.css +1 -0
  16. package/components/kbd/index.js +27 -0
  17. package/components/kbd.css +49 -0
  18. package/components/mask/config.js +12 -0
  19. package/components/mask/index.css +1 -0
  20. package/components/mask/index.js +74 -0
  21. package/components/mask.css +78 -0
  22. package/components/radio/config.js +8 -8
  23. package/components/radio/index.js +10 -10
  24. package/components/radio.css +102 -0
  25. package/components/range/config.js +8 -8
  26. package/components/range/index.js +7 -3
  27. package/components/range.css +164 -0
  28. package/components/rating/config.js +12 -0
  29. package/components/rating/index.css +1 -0
  30. package/components/rating/index.js +82 -0
  31. package/components/rating.css +104 -0
  32. package/components/select/config.js +12 -0
  33. package/components/select/index.css +1 -0
  34. package/components/select/index.js +99 -0
  35. package/components/select.css +166 -0
  36. package/components/toggle/config.js +8 -8
  37. package/components/toggle/index.js +11 -10
  38. package/components/toggle.css +143 -0
  39. package/functions/plugin.js +10 -0
  40. package/index.css +8 -6
  41. package/package.json +74 -71
  42. package/themes/dark/index.css +25 -25
  43. package/themes/default/index.css +26 -0
  44. package/themes/light/index.css +25 -25
  45. package/plugin.js +0 -2
@@ -1,12 +1,12 @@
1
- import { plugin } from '../../plugin.js';
1
+ import { plugin } from '../../functions/plugin.js';
2
2
  import index from './index.js';
3
3
 
4
4
  export default {
5
- plugins: [
6
- plugin(function ({ addComponents }) {
7
- addComponents({
8
- ...index
9
- });
10
- })
11
- ],
5
+ plugins: [
6
+ plugin(({ addComponents }) => {
7
+ addComponents({
8
+ ...index
9
+ });
10
+ })
11
+ ],
12
12
  };
@@ -3,7 +3,7 @@ export default {
3
3
  "appearance": "none",
4
4
  "WebkitAppearance": "none",
5
5
  "--range-shdw": "currentColor",
6
- "@apply rounded-box overflow-hidden bg-transparent h-6 w-full cursor-pointer border-none": {},
6
+ "@apply rounded-box h-6 w-full cursor-pointer overflow-hidden border-none bg-transparent align-middle": {},
7
7
  "&:focus": {
8
8
  "outline": "none"
9
9
  },
@@ -22,7 +22,11 @@ export default {
22
22
  "transform": "translateY(-50%)",
23
23
  "--filler-size": "100rem",
24
24
  "--filler-offset": "0.6rem",
25
- "boxShadow": "0 0 0 3px var(--range-shdw) inset,\n var(--focus-shadow, 0 0),\n calc(var(--filler-size) * -1 - var(--filler-offset)) 0 0 var(--filler-size)"
25
+ "--track-shdw": "calc(var(--filler-size) * -1 - var(--filler-offset)) 0 0 var(--filler-size)",
26
+ "boxShadow": "0 0 0 3px var(--range-shdw) inset,\n var(--focus-shadow, 0 0),\n var(--track-shdw)"
27
+ },
28
+ "[dir=rtl] &::-webkit-slider-thumb": {
29
+ "--track-shdw": "calc(var(--filler-size) * 1 + var(--filler-offset)) 0 0 var(--filler-size)"
26
30
  },
27
31
  "&::-moz-range-track": {
28
32
  "@apply rounded-box bg-base-content/10 h-2 w-full": {}
@@ -33,7 +37,7 @@ export default {
33
37
  "color": "var(--range-shdw)",
34
38
  "--filler-size": "100rem",
35
39
  "--filler-offset": "0.5rem",
36
- "boxShadow": "0 0 0 3px var(--range-shdw) inset,\n var(--focus-shadow, 0 0),\n calc(var(--filler-size) * -1 - var(--filler-offset)) 0 0 var(--filler-size)"
40
+ "boxShadow": "0 0 0 3px var(--range-shdw) inset,\n var(--focus-shadow, 0 0),\n calc(var(--filler-size) * -1 - var(--filler-offset)) 0 0 var(--filler-size)"
37
41
  }
38
42
  },
39
43
  ".range-primary": {
@@ -0,0 +1,164 @@
1
+ .range {
2
+ appearance: none;
3
+ -webkit-appearance: none;
4
+ --range-shdw: currentColor;
5
+ height: var(--spacing-6, 1.5rem);
6
+ width: 100%;
7
+ cursor: pointer;
8
+ overflow: hidden;
9
+ border-radius: var(--radius-box, 1rem);
10
+ --tw-border-style: none;
11
+ border-style: none;
12
+ background-color: transparent;
13
+ vertical-align: middle;
14
+ &:focus {
15
+ outline: none;
16
+ }
17
+ &:focus-visible {
18
+ --focus-shadow: 0 0 0 6px var(--color-base-100) inset, 0 0 0 2rem var(--range-shdw) inset;
19
+ }
20
+ &::-webkit-slider-runnable-track {
21
+ height: var(--spacing-2, 0.5rem);
22
+ width: 100%;
23
+ border-radius: var(--radius-box, 1rem);
24
+ background-color: color-mix(in srgb, var(--color-base-content, oklch(27.8078% 0.029596 256.84795)) 10%, transparent);
25
+ }
26
+ &::-webkit-slider-thumb {
27
+ position: relative;
28
+ height: var(--spacing-6, 1.5rem);
29
+ width: var(--spacing-6, 1.5rem);
30
+ border-radius: var(--radius-box, 1rem);
31
+ --tw-border-style: none;
32
+ border-style: none;
33
+ background-color: var(--color-base-100, oklch(100% 0 0));
34
+ appearance: none;
35
+ -webkit-appearance: none;
36
+ top: 50%;
37
+ color: var(--range-shdw);
38
+ transform: translateY(-50%);
39
+ --filler-size: 100rem;
40
+ --filler-offset: 0.6rem;
41
+ --track-shdw: calc(var(--filler-size) * -1 - var(--filler-offset)) 0 0 var(--filler-size);
42
+ box-shadow: 0 0 0 3px var(--range-shdw) inset, var(--focus-shadow, 0 0), var(--track-shdw);
43
+ }
44
+ [dir=rtl] &::-webkit-slider-thumb {
45
+ --track-shdw: calc(var(--filler-size) * 1 + var(--filler-offset)) 0 0 var(--filler-size);
46
+ }
47
+ &::-moz-range-track {
48
+ height: var(--spacing-2, 0.5rem);
49
+ width: 100%;
50
+ border-radius: var(--radius-box, 1rem);
51
+ background-color: color-mix(in srgb, var(--color-base-content, oklch(27.8078% 0.029596 256.84795)) 10%, transparent);
52
+ }
53
+ &::-moz-range-thumb {
54
+ position: relative;
55
+ height: var(--spacing-6, 1.5rem);
56
+ width: var(--spacing-6, 1.5rem);
57
+ border-radius: var(--radius-box, 1rem);
58
+ --tw-border-style: none;
59
+ border-style: none;
60
+ background-color: var(--color-base-100, oklch(100% 0 0));
61
+ top: 50%;
62
+ color: var(--range-shdw);
63
+ --filler-size: 100rem;
64
+ --filler-offset: 0.5rem;
65
+ box-shadow: 0 0 0 3px var(--range-shdw) inset, var(--focus-shadow, 0 0), calc(var(--filler-size) * -1 - var(--filler-offset)) 0 0 var(--filler-size);
66
+ }
67
+ }
68
+ .range-primary {
69
+ color: var(--color-primary, oklch(49.12% 0.3096 275.75));
70
+ }
71
+ .range-secondary {
72
+ color: var(--color-secondary, oklch(69.71% 0.329 342.55));
73
+ }
74
+ .range-accent {
75
+ color: var(--color-accent, oklch(76.76% 0.184 183.61));
76
+ }
77
+ .range-success {
78
+ color: var(--color-success, oklch(64.8% 0.15 160));
79
+ }
80
+ .range-warning {
81
+ color: var(--color-warning, oklch(84.71% 0.199 83.87));
82
+ }
83
+ .range-info {
84
+ color: var(--color-info, oklch(72.06% 0.191 231.6));
85
+ }
86
+ .range-error {
87
+ color: var(--color-error, oklch(71.76% 0.221 22.18));
88
+ }
89
+ .range-xs {
90
+ height: var(--spacing-4, 1rem);
91
+ &::-webkit-slider-runnable-track {
92
+ height: var(--spacing-1, 0.25rem);
93
+ }
94
+ &::-webkit-slider-thumb {
95
+ width: var(--spacing-4, 1rem);
96
+ height: var(--spacing-4, 1rem);
97
+ --filler-offset: 0.4rem;
98
+ }
99
+ &::-moz-range-track {
100
+ height: var(--spacing-1, 0.25rem);
101
+ }
102
+ &::-moz-range-thumb {
103
+ width: var(--spacing-4, 1rem);
104
+ height: var(--spacing-4, 1rem);
105
+ --filler-offset: 0.4rem;
106
+ }
107
+ }
108
+ .range-sm {
109
+ height: var(--spacing-5, 1.25rem);
110
+ &::-webkit-slider-runnable-track {
111
+ height: var(--spacing-1, 0.25rem);
112
+ }
113
+ &::-webkit-slider-thumb {
114
+ width: var(--spacing-5, 1.25rem);
115
+ height: var(--spacing-5, 1.25rem);
116
+ --filler-offset: 0.5rem;
117
+ }
118
+ &::-moz-range-track {
119
+ height: var(--spacing-1, 0.25rem);
120
+ }
121
+ &::-moz-range-thumb {
122
+ width: var(--spacing-5, 1.25rem);
123
+ height: var(--spacing-5, 1.25rem);
124
+ --filler-offset: 0.5rem;
125
+ }
126
+ }
127
+ .range-md {
128
+ height: var(--spacing-6, 1.5rem);
129
+ &::-webkit-slider-runnable-track {
130
+ height: var(--spacing-2, 0.5rem);
131
+ }
132
+ &::-webkit-slider-thumb {
133
+ width: var(--spacing-6, 1.5rem);
134
+ height: var(--spacing-6, 1.5rem);
135
+ --filler-offset: 0.6rem;
136
+ }
137
+ &::-moz-range-track {
138
+ height: var(--spacing-2, 0.5rem);
139
+ }
140
+ &::-moz-range-thumb {
141
+ width: var(--spacing-6, 1.5rem);
142
+ height: var(--spacing-6, 1.5rem);
143
+ --filler-offset: 0.6rem;
144
+ }
145
+ }
146
+ .range-lg {
147
+ height: var(--spacing-8, 2rem);
148
+ &::-webkit-slider-runnable-track {
149
+ height: var(--spacing-4, 1rem);
150
+ }
151
+ &::-webkit-slider-thumb {
152
+ width: var(--spacing-8, 2rem);
153
+ height: var(--spacing-8, 2rem);
154
+ --filler-offset: 1rem;
155
+ }
156
+ &::-moz-range-track {
157
+ height: var(--spacing-4, 1rem);
158
+ }
159
+ &::-moz-range-thumb {
160
+ width: var(--spacing-8, 2rem);
161
+ height: var(--spacing-8, 2rem);
162
+ --filler-offset: 1rem;
163
+ }
164
+ }
@@ -0,0 +1,12 @@
1
+ import { plugin } from '../../functions/plugin.js';
2
+ import index from './index.js';
3
+
4
+ export default {
5
+ plugins: [
6
+ plugin(({ addComponents }) => {
7
+ addComponents({
8
+ ...index
9
+ });
10
+ })
11
+ ],
12
+ };
@@ -0,0 +1 @@
1
+ @config "./config.js";
@@ -0,0 +1,82 @@
1
+ export default {
2
+ ".rating": {
3
+ "@apply relative inline-flex align-middle": {},
4
+ "& input": {
5
+ "@apply appearance-none border-none": {},
6
+ "WebkitAppearance": "none"
7
+ },
8
+ ":where(input)": {
9
+ "animation": "rating-pop var(--animation-input, 0.25s) ease-out",
10
+ "@apply bg-base-content h-6 w-6 cursor-pointer rounded-none opacity-100": {}
11
+ },
12
+ "& .rating-hidden": {
13
+ "@apply w-2 bg-transparent": {}
14
+ },
15
+ "input[type=\"radio\"]:checked": {
16
+ "backgroundImage": "none"
17
+ },
18
+ "input": {
19
+ "&:checked,\n &[aria-checked=\"true\"]": {
20
+ "&~input": {
21
+ "@apply opacity-20": {}
22
+ }
23
+ },
24
+ "&:focus-visible": {
25
+ "@apply transition-transform duration-300 ease-out": {},
26
+ "transform": "translateY(-0.125em)"
27
+ }
28
+ },
29
+ "& input:active:focus": {
30
+ "animation": "none",
31
+ "transform": "translateY(-0.125em)"
32
+ },
33
+ "&:is(.rating-xs)": {
34
+ "input": {
35
+ "@apply size-3": {}
36
+ }
37
+ },
38
+ "&:is(.rating-sm)": {
39
+ "input": {
40
+ "@apply size-4": {}
41
+ }
42
+ },
43
+ "&:is(.rating-md)": {
44
+ "input": {
45
+ "@apply size-6": {}
46
+ }
47
+ },
48
+ "&:is(.rating-lg)": {
49
+ "input": {
50
+ "@apply size-10": {}
51
+ }
52
+ }
53
+ },
54
+ ".rating-half": {
55
+ ":where(input:not(.rating-hidden))": {
56
+ "@apply w-3": {}
57
+ },
58
+ "&.rating-xs input:not(.rating-hidden)": {
59
+ "@apply w-1.5": {}
60
+ },
61
+ "&.rating-sm input:not(.rating-hidden)": {
62
+ "@apply w-2": {}
63
+ },
64
+ "&.rating-md input:not(.rating-hidden)": {
65
+ "@apply w-3": {}
66
+ },
67
+ "&.rating-lg input:not(.rating-hidden)": {
68
+ "@apply w-5": {}
69
+ }
70
+ },
71
+ "@keyframes rating-pop": {
72
+ "0%": {
73
+ "transform": "translateY(-0.125em)"
74
+ },
75
+ "40%": {
76
+ "transform": "translateY(-0.125em)"
77
+ },
78
+ "100%": {
79
+ "transform": "translateY(0)"
80
+ }
81
+ }
82
+ };
@@ -0,0 +1,104 @@
1
+ .rating {
2
+ position: relative;
3
+ display: inline-flex;
4
+ vertical-align: middle;
5
+ & input {
6
+ appearance: none;
7
+ --tw-border-style: none;
8
+ border-style: none;
9
+ -webkit-appearance: none;
10
+ }
11
+ :where(input) {
12
+ animation: rating-pop var(--animation-input, 0.25s) ease-out;
13
+ height: var(--spacing-6, 1.5rem);
14
+ width: var(--spacing-6, 1.5rem);
15
+ cursor: pointer;
16
+ border-radius: 0;
17
+ background-color: var(--color-base-content, oklch(27.8078% 0.029596 256.84795));
18
+ opacity: 100%;
19
+ }
20
+ & .rating-hidden {
21
+ width: var(--spacing-2, 0.5rem);
22
+ background-color: transparent;
23
+ }
24
+ input[type="radio"]:checked {
25
+ background-image: none;
26
+ }
27
+ input {
28
+ &:checked, &[aria-checked="true"] {
29
+ &~input {
30
+ opacity: 20%;
31
+ }
32
+ }
33
+ &:focus-visible {
34
+ transition-property: transform, translate, scale, rotate;
35
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
36
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
37
+ --tw-duration: 300ms;
38
+ transition-duration: 300ms;
39
+ --tw-ease: var(--transition-timing-function-out, cubic-bezier(0, 0, 0.2, 1));
40
+ transition-timing-function: var(--transition-timing-function-out, cubic-bezier(0, 0, 0.2, 1));
41
+ transform: translateY(-0.125em);
42
+ }
43
+ }
44
+ & input:active:focus {
45
+ animation: none;
46
+ }
47
+ & input:active:focus {
48
+ transform: translateY(-0.125em);
49
+ }
50
+ &:is(.rating-xs) {
51
+ input {
52
+ width: var(--spacing-3, 0.75rem);
53
+ height: var(--spacing-3, 0.75rem);
54
+ }
55
+ }
56
+ &:is(.rating-sm) {
57
+ input {
58
+ width: var(--spacing-4, 1rem);
59
+ height: var(--spacing-4, 1rem);
60
+ }
61
+ }
62
+ &:is(.rating-md) {
63
+ input {
64
+ width: var(--spacing-6, 1.5rem);
65
+ height: var(--spacing-6, 1.5rem);
66
+ }
67
+ }
68
+ &:is(.rating-lg) {
69
+ input {
70
+ width: var(--spacing-10, 2.5rem);
71
+ height: var(--spacing-10, 2.5rem);
72
+ }
73
+ }
74
+ }
75
+ .rating-half {
76
+ :where(input:not(.rating-hidden)) {
77
+ width: var(--spacing-3, 0.75rem);
78
+ }
79
+ }
80
+ @keyframes rating-pop {
81
+ 0% {
82
+ transform: translateY(-0.125em);
83
+ }
84
+ 40% {
85
+ transform: translateY(-0.125em);
86
+ }
87
+ 100% {
88
+ transform: translateY(0);
89
+ }
90
+ }
91
+ .rating-half {
92
+ &.rating-xs input:not(.rating-hidden) {
93
+ width: var(--spacing-1_5, 0.375rem);
94
+ }
95
+ &.rating-sm input:not(.rating-hidden) {
96
+ width: var(--spacing-2, 0.5rem);
97
+ }
98
+ &.rating-md input:not(.rating-hidden) {
99
+ width: var(--spacing-3, 0.75rem);
100
+ }
101
+ &.rating-lg input:not(.rating-hidden) {
102
+ width: var(--spacing-5, 1.25rem);
103
+ }
104
+ }
@@ -0,0 +1,12 @@
1
+ import { plugin } from '../../functions/plugin.js';
2
+ import index from './index.js';
3
+
4
+ export default {
5
+ plugins: [
6
+ plugin(({ addComponents }) => {
7
+ addComponents({
8
+ ...index
9
+ });
10
+ })
11
+ ],
12
+ };
@@ -0,0 +1 @@
1
+ @config "./config.js";
@@ -0,0 +1,99 @@
1
+ export default {
2
+ ".select": {
3
+ "@apply relative bg-base-100 rounded-btn h-10 shrink appearance-none border border-transparent px-4 text-base text-sm leading-loose align-middle": {},
4
+ "backgroundImage": "linear-gradient(45deg, transparent 50%, currentColor 50%),\n linear-gradient(135deg, currentColor 50%, transparent 50%)",
5
+ "backgroundPosition": "calc(100% - 20px) calc(1px + 50%),\n calc(100% - 16.1px) calc(1px + 50%)",
6
+ "backgroundSize": "4px 4px,\n 4px 4px",
7
+ "backgroundRepeat": "no-repeat",
8
+ "input": {
9
+ "@apply border-none bg-transparent": {},
10
+ "&:focus": {
11
+ "@apply outline-none": {}
12
+ }
13
+ },
14
+ "&:focus,\n &:focus-within": {
15
+ "@apply border-base-content/20 outline-base-content/20 outline outline-2 outline-offset-2": {}
16
+ },
17
+ "&:has(> select[disabled]),\n &:is(:disabled, [disabled])": {
18
+ "@apply border-base-200 bg-base-200 placeholder-base-content text-base-content/40 placeholder-base-content/20 cursor-not-allowed": {}
19
+ },
20
+ "&:has(> select[disabled])>select[disabled]": {
21
+ "@apply cursor-not-allowed": {}
22
+ },
23
+ "&.select-bordered": {
24
+ "@apply border-base-content/20": {},
25
+ "boxShadow": "0 1px oklch(0% 0 0 / 0.1) inset,\n 0 -1px oklch(100% 0 0 / 0.1) inset",
26
+ "&:focus": {
27
+ "boxShadow": "0 1px oklch(0% 0 0 / 0.1)"
28
+ }
29
+ },
30
+ "&.select-ghost": {
31
+ "@apply bg-base-100/5 shadow-none": {},
32
+ "&:focus,\n &:focus-within": {
33
+ "@apply text-base-content bg-base-100": {},
34
+ "boxShadow": "none"
35
+ }
36
+ },
37
+ "&.select-primary": {
38
+ "@apply border-primary": {},
39
+ "backgroundColor": "color-mix(in oklab, var(--color-primary) 2%, transparent)",
40
+ "&:focus,\n &:focus-within": {
41
+ "@apply outline-primary border-primary": {}
42
+ }
43
+ },
44
+ "&.select-secondary": {
45
+ "@apply border-secondary": {},
46
+ "backgroundColor": "color-mix(in oklab, var(--color-secondary) 2%, transparent)",
47
+ "&:focus,\n &:focus-within": {
48
+ "@apply outline-secondary border-secondary": {}
49
+ }
50
+ },
51
+ "&.select-accent": {
52
+ "@apply border-accent": {},
53
+ "backgroundColor": "color-mix(in oklab, var(--color-accent) 2%, transparent)",
54
+ "&:focus,\n &:focus-within": {
55
+ "@apply outline-accent border-accent": {}
56
+ }
57
+ },
58
+ "&.select-info": {
59
+ "@apply border-info": {},
60
+ "backgroundColor": "color-mix(in oklab, var(--color-info) 2%, transparent)",
61
+ "&:focus,\n &:focus-within": {
62
+ "@apply outline-info border-info": {}
63
+ }
64
+ },
65
+ "&.select-success": {
66
+ "@apply border-success": {},
67
+ "backgroundColor": "color-mix(in oklab, var(--color-success) 2%, transparent)",
68
+ "&:focus,\n &:focus-within": {
69
+ "@apply outline-success border-success": {}
70
+ }
71
+ },
72
+ "&.select-warning": {
73
+ "@apply border-warning": {},
74
+ "backgroundColor": "color-mix(in oklab, var(--color-warning) 2%, transparent)",
75
+ "&:focus,\n &:focus-within": {
76
+ "@apply outline-warning border-warning": {}
77
+ }
78
+ },
79
+ "&.select-error": {
80
+ "@apply border-error": {},
81
+ "backgroundColor": "color-mix(in oklab, var(--color-error) 2%, transparent)",
82
+ "&:focus,\n &:focus-within": {
83
+ "@apply outline-error border-error": {}
84
+ }
85
+ },
86
+ "&.select-xs": {
87
+ "@apply h-6 px-2 text-xs leading-relaxed": {}
88
+ },
89
+ "&.select-sm": {
90
+ "@apply h-8 px-3 text-sm leading-8": {}
91
+ },
92
+ "&.select-md": {
93
+ "@apply h-10 px-4 text-sm leading-loose": {}
94
+ },
95
+ "&.select-lg": {
96
+ "@apply h-14 px-6 text-lg leading-loose": {}
97
+ }
98
+ }
99
+ };