daisyui 4.12.10 → 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 (73) 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 +12 -0
  6. package/components/button/index.css +1 -0
  7. package/components/button/index.js +170 -0
  8. package/components/button.css +293 -0
  9. package/components/checkbox/config.js +12 -0
  10. package/components/checkbox/index.css +1 -0
  11. package/components/checkbox/index.js +108 -0
  12. package/components/checkbox.css +144 -0
  13. package/components/input/config.js +12 -0
  14. package/components/input/index.css +1 -0
  15. package/components/input/index.js +128 -0
  16. package/components/input.css +204 -0
  17. package/components/kbd/config.js +12 -0
  18. package/components/kbd/index.css +1 -0
  19. package/components/kbd/index.js +27 -0
  20. package/components/kbd.css +49 -0
  21. package/components/mask/config.js +12 -0
  22. package/components/mask/index.css +1 -0
  23. package/components/mask/index.js +74 -0
  24. package/components/mask.css +78 -0
  25. package/components/radio/config.js +12 -0
  26. package/components/radio/index.css +1 -0
  27. package/components/radio/index.js +73 -0
  28. package/components/radio.css +102 -0
  29. package/components/range/config.js +12 -0
  30. package/components/range/index.css +1 -0
  31. package/components/range/index.js +132 -0
  32. package/components/range.css +164 -0
  33. package/components/rating/config.js +12 -0
  34. package/components/rating/index.css +1 -0
  35. package/components/rating/index.js +82 -0
  36. package/components/rating.css +104 -0
  37. package/components/select/config.js +12 -0
  38. package/components/select/index.css +1 -0
  39. package/components/select/index.js +99 -0
  40. package/components/select.css +166 -0
  41. package/components/toggle/config.js +12 -0
  42. package/components/toggle/index.css +1 -0
  43. package/components/toggle/index.js +102 -0
  44. package/components/toggle.css +143 -0
  45. package/functions/plugin.js +10 -0
  46. package/index.css +14 -0
  47. package/package.json +74 -83
  48. package/themes/dark/index.css +26 -0
  49. package/themes/default/index.css +26 -0
  50. package/themes/index.css +26 -0
  51. package/themes/light/index.css +26 -0
  52. package/dist/base.js +0 -1
  53. package/dist/full.css +0 -62904
  54. package/dist/styled.css +0 -5183
  55. package/dist/styled.js +0 -1
  56. package/dist/themes.css +0 -2118
  57. package/dist/unstyled.css +0 -1324
  58. package/dist/unstyled.js +0 -1
  59. package/dist/utilities-styled.js +0 -1
  60. package/dist/utilities-unstyled.js +0 -1
  61. package/dist/utilities.js +0 -1
  62. package/src/index.d.ts +0 -122
  63. package/src/index.js +0 -149
  64. package/src/lib/addPrefix.js +0 -104
  65. package/src/lib/createPlugin.js +0 -19
  66. package/src/lib/responsiveRegex.js +0 -45
  67. package/src/lib/utility-classes.js +0 -7
  68. package/src/theming/colorNames.js +0 -30
  69. package/src/theming/functions.js +0 -262
  70. package/src/theming/index.js +0 -35
  71. package/src/theming/themeDefaults.js +0 -47
  72. package/src/theming/themes.d.ts +0 -5
  73. package/src/theming/themes.js +0 -485
@@ -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,74 @@
1
+ export default {
2
+ ".badge": {
3
+ "@apply inline-flex items-center justify-center transition duration-200 ease-out h-5 text-sm leading-5 rounded-badge border text-base-content": {},
4
+ "width": "fit-content",
5
+ "paddingLeft": "0.563rem",
6
+ "paddingRight": "0.563rem",
7
+ "background": "var(--badge-color, var(--color-base-100))",
8
+ "borderColor": "var(--badge-color, var(--color-base-200))",
9
+ "&.badge-outline": {
10
+ "@apply border-current/50 bg-transparent": {},
11
+ "color": "var(--badge-color, var(--color-base-content))"
12
+ }
13
+ },
14
+ ".badge-faded": {
15
+ "color": "color-mix(in xyz, var(--badge-color) 80%, var(--color-base-content))",
16
+ "background": "color-mix(in xyz, var(--badge-color) 10%, var(--color-base-100))",
17
+ "borderColor": "color-mix(in xyz, var(--badge-color) 7%, transparent)"
18
+ },
19
+ ".badge-primary": {
20
+ "--badge-color": "var(--color-primary)",
21
+ "@apply text-primary-content": {}
22
+ },
23
+ ".badge-secondary": {
24
+ "--badge-color": "var(--color-secondary)",
25
+ "@apply text-secondary-content": {}
26
+ },
27
+ ".badge-accent": {
28
+ "--badge-color": "var(--color-accent)",
29
+ "@apply text-accent-content": {}
30
+ },
31
+ ".badge-neutral": {
32
+ "--badge-color": "var(--color-neutral)",
33
+ "@apply text-neutral-content": {}
34
+ },
35
+ ".badge-info": {
36
+ "--badge-color": "var(--color-info)",
37
+ "@apply text-info-content": {}
38
+ },
39
+ ".badge-success": {
40
+ "--badge-color": "var(--color-success)",
41
+ "@apply text-success-content": {}
42
+ },
43
+ ".badge-warning": {
44
+ "--badge-color": "var(--color-warning)",
45
+ "@apply text-warning-content": {}
46
+ },
47
+ ".badge-error": {
48
+ "--badge-color": "var(--color-error)",
49
+ "@apply text-error-content": {}
50
+ },
51
+ ".badge-ghost": {
52
+ "@apply border-base-200 bg-base-200 text-base-content": {}
53
+ },
54
+ ".badge-xs": {
55
+ "@apply h-3 text-xs leading-3": {},
56
+ "paddingLeft": "0.313rem",
57
+ "paddingRight": "0.313rem"
58
+ },
59
+ ".badge-sm": {
60
+ "@apply h-4 text-xs leading-4": {},
61
+ "paddingLeft": "0.438rem",
62
+ "paddingRight": "0.438rem"
63
+ },
64
+ ".badge-md": {
65
+ "@apply h-5 text-sm leading-5": {},
66
+ "paddingLeft": "0.563rem",
67
+ "paddingRight": "0.563rem"
68
+ },
69
+ ".badge-lg": {
70
+ "@apply h-6 text-base leading-6": {},
71
+ "paddingLeft": "0.688rem",
72
+ "paddingRight": "0.688rem"
73
+ }
74
+ };
@@ -0,0 +1,109 @@
1
+ .badge {
2
+ display: inline-flex;
3
+ height: var(--spacing-5, 1.25rem);
4
+ align-items: center;
5
+ justify-content: center;
6
+ border-radius: var(--radius-badge, 1.9rem);
7
+ border-style: var(--tw-border-style);
8
+ border-width: 1px;
9
+ font-size: var(--font-size-sm, 0.875rem);
10
+ line-height: var(--tw-leading, var(--font-size-sm--line-height, 1.25rem));
11
+ --tw-leading: var(--line-height-5, 1.25rem);
12
+ line-height: var(--line-height-5, 1.25rem);
13
+ color: var(--color-base-content, oklch(27.8078% 0.029596 256.84795));
14
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter;
15
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
16
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
17
+ --tw-duration: 200ms;
18
+ transition-duration: 200ms;
19
+ --tw-ease: var(--transition-timing-function-out, cubic-bezier(0, 0, 0.2, 1));
20
+ transition-timing-function: var(--transition-timing-function-out, cubic-bezier(0, 0, 0.2, 1));
21
+ width: fit-content;
22
+ padding-left: 0.563rem;
23
+ padding-right: 0.563rem;
24
+ background: var(--badge-color, var(--color-base-100));
25
+ border-color: var(--badge-color, var(--color-base-200));
26
+ &.badge-outline {
27
+ border-color: color-mix(in srgb, currentColor 50%, transparent);
28
+ background-color: transparent;
29
+ color: var(--badge-color, var(--color-base-content));
30
+ }
31
+ }
32
+ .badge-faded {
33
+ color: color-mix(in xyz, var(--badge-color) 80%, var(--color-base-content));
34
+ background: color-mix(in xyz, var(--badge-color) 10%, var(--color-base-100));
35
+ border-color: color-mix(in xyz, var(--badge-color) 7%, transparent);
36
+ }
37
+ .badge-primary {
38
+ --badge-color: var(--color-primary);
39
+ color: var(--color-primary-content, oklch(89.824% 0.06192 275.75));
40
+ }
41
+ .badge-secondary {
42
+ --badge-color: var(--color-secondary);
43
+ color: var(--color-secondary-content, oklch(98.71% 0.0106 342.55));
44
+ }
45
+ .badge-accent {
46
+ --badge-color: var(--color-accent);
47
+ color: var(--color-accent-content, oklch(15.352% 0.0368 183.61));
48
+ }
49
+ .badge-neutral {
50
+ --badge-color: var(--color-neutral);
51
+ color: var(--color-neutral-content, oklch(89.4994% 0.011585 252.096176));
52
+ }
53
+ .badge-info {
54
+ --badge-color: var(--color-info);
55
+ color: var(--color-info-content, oklch(0% 0 0));
56
+ }
57
+ .badge-success {
58
+ --badge-color: var(--color-success);
59
+ color: var(--color-success-content, oklch(0% 0 0));
60
+ }
61
+ .badge-warning {
62
+ --badge-color: var(--color-warning);
63
+ color: var(--color-warning-content, oklch(0% 0 0));
64
+ }
65
+ .badge-error {
66
+ --badge-color: var(--color-error);
67
+ color: var(--color-error-content, oklch(0% 0 0));
68
+ }
69
+ .badge-ghost {
70
+ border-color: var(--color-base-200, oklch(96.1151% 0 0));
71
+ background-color: var(--color-base-200, oklch(96.1151% 0 0));
72
+ color: var(--color-base-content, oklch(27.8078% 0.029596 256.84795));
73
+ }
74
+ .badge-xs {
75
+ height: var(--spacing-3, 0.75rem);
76
+ font-size: var(--font-size-xs, 0.75rem);
77
+ line-height: var(--tw-leading, var(--font-size-xs--line-height, 1rem));
78
+ --tw-leading: var(--line-height-3, 0.75rem);
79
+ line-height: var(--line-height-3, 0.75rem);
80
+ padding-left: 0.313rem;
81
+ padding-right: 0.313rem;
82
+ }
83
+ .badge-sm {
84
+ height: var(--spacing-4, 1rem);
85
+ font-size: var(--font-size-xs, 0.75rem);
86
+ line-height: var(--tw-leading, var(--font-size-xs--line-height, 1rem));
87
+ --tw-leading: var(--line-height-4, 1rem);
88
+ line-height: var(--line-height-4, 1rem);
89
+ padding-left: 0.438rem;
90
+ padding-right: 0.438rem;
91
+ }
92
+ .badge-md {
93
+ height: var(--spacing-5, 1.25rem);
94
+ font-size: var(--font-size-sm, 0.875rem);
95
+ line-height: var(--tw-leading, var(--font-size-sm--line-height, 1.25rem));
96
+ --tw-leading: var(--line-height-5, 1.25rem);
97
+ line-height: var(--line-height-5, 1.25rem);
98
+ padding-left: 0.563rem;
99
+ padding-right: 0.563rem;
100
+ }
101
+ .badge-lg {
102
+ height: var(--spacing-6, 1.5rem);
103
+ font-size: var(--font-size-base, 1rem);
104
+ line-height: var(--tw-leading, var(--font-size-base--line-height, 1.5rem));
105
+ --tw-leading: var(--line-height-6, 1.5rem);
106
+ line-height: var(--line-height-6, 1.5rem);
107
+ padding-left: 0.688rem;
108
+ padding-right: 0.688rem;
109
+ }
@@ -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,170 @@
1
+ export default {
2
+ ".btn": {
3
+ "@apply text-base-content outline-base-content inline-flex shrink-0 cursor-pointer flex-wrap items-center justify-center gap-2 rounded-[var(--radius-btn)] text-center text-sm/none font-semibold no-underline outline-offset-2 duration-200 ease-out select-none align-middle h-10 px-4": {},
4
+ "transitionProperty": "color, background-color, border-color, opacity, box-shadow, transform",
5
+ "backgroundColor": "var(--btn-bg, var(--color-base-200))",
6
+ "borderWidth": "var(--spacing-button-border)",
7
+ "borderColor": "color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 2%)",
8
+ "borderBottomColor": "color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 4%)",
9
+ "boxShadow": "0 1px 0 0 color-mix(in oklch, white 3%, transparent) inset,\n 0 1px 1px 0 oklch(0% 0 0/0.07)",
10
+ "&:hover": {
11
+ "borderColor": "color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 5%)",
12
+ "borderBottomColor": "color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 7%)",
13
+ "backgroundColor": "color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 5%)"
14
+ },
15
+ "&.btn-active": {
16
+ "borderColor": "color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 5%)",
17
+ "borderBottomColor": "color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 7%)",
18
+ "backgroundColor": "color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 5%)"
19
+ },
20
+ "&:focus-visible": {
21
+ "@apply outline outline-2": {}
22
+ },
23
+ "&:active": {
24
+ "&:focus": {
25
+ "transform": "scale(var(--btn-focus-scale, 0.98))",
26
+ "@apply animate-[button-pop_0s_ease-out]": {},
27
+ "borderColor": "color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 5%)",
28
+ "borderBottomColor": "color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 7%)",
29
+ "boxShadow": "0 1px 0 0 oklch(0% 0 0/0.07) inset,\n 0 0 0 0 oklch(0% 0 0/0.1)"
30
+ },
31
+ "&:hover": {
32
+ "transform": "scale(var(--btn-focus-scale, 0.97))",
33
+ "@apply animate-[button-pop_0s_ease-out]": {}
34
+ }
35
+ },
36
+ "&:is(:disabled, [disabled], .btn-disabled)": {
37
+ "@apply bg-neutral/20 text-base-content/20 pointer-events-none border-transparent": {},
38
+ "&:hover": {
39
+ "@apply bg-neutral/20 text-base-content/20 pointer-events-none border-transparent": {}
40
+ }
41
+ },
42
+ "&:is(input[type=checkbox]),\n &:is(input[type=radio])": {
43
+ "@apply w-auto appearance-none": {},
44
+ "&::after": {
45
+ "@apply content-[attr(aria-label)]": {}
46
+ },
47
+ "&:checked": {
48
+ "@apply border-primary bg-primary text-primary-content": {},
49
+ "&:focus-visible": {
50
+ "@apply outline-primary": {}
51
+ },
52
+ "&:hover": {
53
+ "backgroundColor": "color-mix(in oklab, var(--color-primary) 90%, black)",
54
+ "borderColor": "color-mix(in oklab, var(--color-primary) 90%, black)"
55
+ }
56
+ }
57
+ }
58
+ },
59
+ ".btn-primary": {
60
+ "--btn-bg": "var(--color-primary)",
61
+ "@apply text-primary-content outline-primary": {}
62
+ },
63
+ ".btn-secondary": {
64
+ "--btn-bg": "var(--color-secondary)",
65
+ "@apply text-secondary-content outline-secondary": {}
66
+ },
67
+ ".btn-accent": {
68
+ "--btn-bg": "var(--color-accent)",
69
+ "@apply text-accent-content outline-accent": {}
70
+ },
71
+ ".btn-neutral": {
72
+ "--btn-bg": "var(--color-neutral)",
73
+ "@apply text-neutral-content outline-neutral": {}
74
+ },
75
+ ".btn-info": {
76
+ "--btn-bg": "var(--color-info)",
77
+ "@apply text-info-content outline-info": {}
78
+ },
79
+ ".btn-success": {
80
+ "--btn-bg": "var(--color-success)",
81
+ "@apply text-success-content outline-success": {}
82
+ },
83
+ ".btn-warning": {
84
+ "--btn-bg": "var(--color-warning)",
85
+ "@apply text-warning-content outline-warning": {}
86
+ },
87
+ ".btn-error": {
88
+ "--btn-bg": "var(--color-error)",
89
+ "@apply text-error-content outline-error": {}
90
+ },
91
+ ".btn.glass": {
92
+ "@apply shadow-none outline-current hover:[--glass-border-opacity:15%] hover:[--glass-opacity:25%]": {},
93
+ "&.btn-active": {
94
+ "--glass-border-opacity": "15%",
95
+ "--glass-opacity": "25%"
96
+ }
97
+ },
98
+ ".btn-ghost": {
99
+ "@apply hover:bg-base-content/20 border border-transparent bg-transparent text-current shadow-none outline-current hover:border-transparent": {},
100
+ "&.btn-active": {
101
+ "@apply bg-base-content/20 border-transparent": {}
102
+ }
103
+ },
104
+ ".btn-link": {
105
+ "@apply text-primary border-transparent bg-transparent underline shadow-none outline-current hover:border-transparent hover:bg-transparent hover:underline": {},
106
+ "&.btn-active": {
107
+ "@apply border-transparent bg-transparent underline": {}
108
+ }
109
+ },
110
+ ".btn-outline": {
111
+ "&:not(.btn-active):not(:hover)": {
112
+ "@apply bg-transparent text-[var(--btn-bg)] shadow-none": {}
113
+ },
114
+ "&.btn-active": {
115
+ "borderColor": "color-mix(in oklab, var(--btn-bg, var(--color-base-200)) 90%, black)",
116
+ "backgroundColor": "color-mix(in oklab, var(--btn-bg, var(--color-base-200)) 90%, black)"
117
+ }
118
+ },
119
+ ".btn-xs": {
120
+ "@apply h-6 px-2": {},
121
+ "fontSize": "var(--font-size-xs)"
122
+ },
123
+ ".btn-sm": {
124
+ "@apply h-8 px-3": {},
125
+ "fontSize": "var(--font-size-sm)"
126
+ },
127
+ ".btn-md": {
128
+ "@apply h-10 px-4": {},
129
+ "fontSize": "var(--font-size-sm)"
130
+ },
131
+ ".btn-lg": {
132
+ "@apply h-14 px-6": {},
133
+ "fontSize": "var(--font-size-lg)"
134
+ },
135
+ ".btn-square": {
136
+ "@apply px-0 size-12": {},
137
+ "&.btn-xs": {
138
+ "@apply size-6": {}
139
+ },
140
+ "&.btn-sm": {
141
+ "@apply size-8": {}
142
+ },
143
+ "&.btn-md": {
144
+ "@apply size-12": {}
145
+ },
146
+ "&.btn-lg": {
147
+ "@apply size-16": {}
148
+ }
149
+ },
150
+ ".btn-circle": {
151
+ "@apply aspect-square rounded-full px-0": {}
152
+ },
153
+ ".btn-wide": {
154
+ "@apply w-64": {}
155
+ },
156
+ ".btn-block": {
157
+ "@apply w-full": {}
158
+ },
159
+ "@keyframes button-pop": {
160
+ "0%": {
161
+ "transform": "scale(var(--btn-focus-scale, 0.98))"
162
+ },
163
+ "40%": {
164
+ "transform": "scale(1.02)"
165
+ },
166
+ "100%": {
167
+ "transform": "scale(1)"
168
+ }
169
+ }
170
+ };
@@ -0,0 +1,293 @@
1
+ .btn {
2
+ display: inline-flex;
3
+ height: var(--spacing-10, 2.5rem);
4
+ flex-shrink: 0;
5
+ cursor: pointer;
6
+ flex-wrap: wrap;
7
+ align-items: center;
8
+ justify-content: center;
9
+ gap: var(--spacing-2, 0.5rem);
10
+ border-radius: var(--radius-btn);
11
+ padding-left: var(--spacing-4, 1rem);
12
+ padding-right: var(--spacing-4, 1rem);
13
+ text-align: center;
14
+ vertical-align: middle;
15
+ font-size: var(--font-size-sm, 0.875rem);
16
+ line-height: var(--line-height-none, 1);
17
+ --tw-font-weight: 600;
18
+ font-weight: 600;
19
+ color: var(--color-base-content, oklch(27.8078% 0.029596 256.84795));
20
+ text-decoration-line: none;
21
+ outline-offset: 2px;
22
+ outline-color: var(--color-base-content, oklch(27.8078% 0.029596 256.84795));
23
+ --tw-duration: 200ms;
24
+ transition-duration: 200ms;
25
+ --tw-ease: var(--transition-timing-function-out, cubic-bezier(0, 0, 0.2, 1));
26
+ transition-timing-function: var(--transition-timing-function-out, cubic-bezier(0, 0, 0.2, 1));
27
+ -webkit-user-select: none;
28
+ user-select: none;
29
+ transition-property: color, background-color, border-color, opacity, box-shadow, transform;
30
+ background-color: var(--btn-bg, var(--color-base-200));
31
+ border-width: var(--spacing-button-border);
32
+ border-color: color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 2%);
33
+ border-bottom-color: color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 4%);
34
+ box-shadow: 0 1px 0 0 color-mix(in oklch, white 3%, transparent) inset, 0 1px 1px 0 oklch(0% 0 0/0.07);
35
+ &:hover {
36
+ border-color: color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 5%);
37
+ border-bottom-color: color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 7%);
38
+ background-color: color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 5%);
39
+ }
40
+ &.btn-active {
41
+ border-color: color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 5%);
42
+ border-bottom-color: color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 7%);
43
+ background-color: color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 5%);
44
+ }
45
+ &:focus-visible {
46
+ outline-style: var(--tw-outline-style);
47
+ outline-width: 1px;
48
+ outline-style: var(--tw-outline-style);
49
+ outline-width: 2px;
50
+ }
51
+ &:active {
52
+ &:focus {
53
+ transform: scale(var(--btn-focus-scale, 0.98));
54
+ animation: button-pop 0s ease-out;
55
+ border-color: color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 5%);
56
+ border-bottom-color: color-mix(in oklab, var(--btn-bg, var(--color-base-200)), black 7%);
57
+ box-shadow: 0 1px 0 0 oklch(0% 0 0/0.07) inset, 0 0 0 0 oklch(0% 0 0/0.1);
58
+ }
59
+ &:hover {
60
+ transform: scale(var(--btn-focus-scale, 0.97));
61
+ animation: button-pop 0s ease-out;
62
+ }
63
+ }
64
+ }
65
+ .btn-primary {
66
+ --btn-bg: var(--color-primary);
67
+ color: var(--color-primary-content, oklch(89.824% 0.06192 275.75));
68
+ outline-color: var(--color-primary, oklch(49.12% 0.3096 275.75));
69
+ }
70
+ .btn-secondary {
71
+ --btn-bg: var(--color-secondary);
72
+ color: var(--color-secondary-content, oklch(98.71% 0.0106 342.55));
73
+ outline-color: var(--color-secondary, oklch(69.71% 0.329 342.55));
74
+ }
75
+ .btn-accent {
76
+ --btn-bg: var(--color-accent);
77
+ color: var(--color-accent-content, oklch(15.352% 0.0368 183.61));
78
+ outline-color: var(--color-accent, oklch(76.76% 0.184 183.61));
79
+ }
80
+ .btn-neutral {
81
+ --btn-bg: var(--color-neutral);
82
+ color: var(--color-neutral-content, oklch(89.4994% 0.011585 252.096176));
83
+ outline-color: var(--color-neutral, oklch(32.1785% 0.02476 255.701624));
84
+ }
85
+ .btn-info {
86
+ --btn-bg: var(--color-info);
87
+ color: var(--color-info-content, oklch(0% 0 0));
88
+ outline-color: var(--color-info, oklch(72.06% 0.191 231.6));
89
+ }
90
+ .btn-success {
91
+ --btn-bg: var(--color-success);
92
+ color: var(--color-success-content, oklch(0% 0 0));
93
+ outline-color: var(--color-success, oklch(64.8% 0.15 160));
94
+ }
95
+ .btn-warning {
96
+ --btn-bg: var(--color-warning);
97
+ color: var(--color-warning-content, oklch(0% 0 0));
98
+ outline-color: var(--color-warning, oklch(84.71% 0.199 83.87));
99
+ }
100
+ .btn-error {
101
+ --btn-bg: var(--color-error);
102
+ color: var(--color-error-content, oklch(0% 0 0));
103
+ outline-color: var(--color-error, oklch(71.76% 0.221 22.18));
104
+ }
105
+ .btn.glass {
106
+ --tw-shadow: 0 0 #0000;
107
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
108
+ outline-color: currentColor;
109
+ &:hover {
110
+ @media (hover: hover) {
111
+ --glass-border-opacity: 15%;
112
+ }
113
+ }
114
+ &:hover {
115
+ @media (hover: hover) {
116
+ --glass-opacity: 25%;
117
+ }
118
+ }
119
+ &.btn-active {
120
+ --glass-border-opacity: 15%;
121
+ --glass-opacity: 25%;
122
+ }
123
+ }
124
+ .btn-ghost {
125
+ border-style: var(--tw-border-style);
126
+ border-width: 1px;
127
+ border-color: transparent;
128
+ background-color: transparent;
129
+ color: currentColor;
130
+ --tw-shadow: 0 0 #0000;
131
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
132
+ outline-color: currentColor;
133
+ &:hover {
134
+ @media (hover: hover) {
135
+ border-color: transparent;
136
+ }
137
+ }
138
+ &:hover {
139
+ @media (hover: hover) {
140
+ background-color: color-mix(in srgb, var(--color-base-content, oklch(27.8078% 0.029596 256.84795)) 20%, transparent);
141
+ }
142
+ }
143
+ &.btn-active {
144
+ border-color: transparent;
145
+ background-color: color-mix(in srgb, var(--color-base-content, oklch(27.8078% 0.029596 256.84795)) 20%, transparent);
146
+ }
147
+ }
148
+ .btn-link {
149
+ border-color: transparent;
150
+ background-color: transparent;
151
+ color: var(--color-primary, oklch(49.12% 0.3096 275.75));
152
+ text-decoration-line: underline;
153
+ --tw-shadow: 0 0 #0000;
154
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
155
+ outline-color: currentColor;
156
+ &:hover {
157
+ @media (hover: hover) {
158
+ border-color: transparent;
159
+ }
160
+ }
161
+ &:hover {
162
+ @media (hover: hover) {
163
+ background-color: transparent;
164
+ }
165
+ }
166
+ &:hover {
167
+ @media (hover: hover) {
168
+ text-decoration-line: underline;
169
+ }
170
+ }
171
+ &.btn-active {
172
+ border-color: transparent;
173
+ background-color: transparent;
174
+ text-decoration-line: underline;
175
+ }
176
+ }
177
+ .btn-outline {
178
+ &:not(.btn-active):not(:hover) {
179
+ background-color: transparent;
180
+ color: var(--btn-bg);
181
+ --tw-shadow: 0 0 #0000;
182
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
183
+ }
184
+ &.btn-active {
185
+ border-color: color-mix(in oklab, var(--btn-bg, var(--color-base-200)) 90%, black);
186
+ background-color: color-mix(in oklab, var(--btn-bg, var(--color-base-200)) 90%, black);
187
+ }
188
+ }
189
+ .btn {
190
+ &:is(:disabled, [disabled], .btn-disabled) {
191
+ pointer-events: none;
192
+ border-color: transparent;
193
+ background-color: color-mix(in srgb, var(--color-neutral, oklch(32.1785% 0.02476 255.701624)) 20%, transparent);
194
+ color: color-mix(in srgb, var(--color-base-content, oklch(27.8078% 0.029596 256.84795)) 20%, transparent);
195
+ &:hover {
196
+ pointer-events: none;
197
+ border-color: transparent;
198
+ background-color: color-mix(in srgb, var(--color-neutral, oklch(32.1785% 0.02476 255.701624)) 20%, transparent);
199
+ color: color-mix(in srgb, var(--color-base-content, oklch(27.8078% 0.029596 256.84795)) 20%, transparent);
200
+ }
201
+ }
202
+ }
203
+ .btn {
204
+ &:is(input[type=checkbox]), &:is(input[type=radio]) {
205
+ width: auto;
206
+ appearance: none;
207
+ &::after {
208
+ --tw-content: attr(aria-label);
209
+ content: var(--tw-content);
210
+ }
211
+ &:checked {
212
+ border-color: var(--color-primary, oklch(49.12% 0.3096 275.75));
213
+ background-color: var(--color-primary, oklch(49.12% 0.3096 275.75));
214
+ color: var(--color-primary-content, oklch(89.824% 0.06192 275.75));
215
+ &:focus-visible {
216
+ outline-color: var(--color-primary, oklch(49.12% 0.3096 275.75));
217
+ }
218
+ &:hover {
219
+ background-color: color-mix(in oklab, var(--color-primary) 90%, black);
220
+ border-color: color-mix(in oklab, var(--color-primary) 90%, black);
221
+ }
222
+ }
223
+ }
224
+ }
225
+ .btn-xs {
226
+ height: var(--spacing-6, 1.5rem);
227
+ padding-left: var(--spacing-2, 0.5rem);
228
+ padding-right: var(--spacing-2, 0.5rem);
229
+ font-size: var(--font-size-xs);
230
+ }
231
+ .btn-sm {
232
+ height: var(--spacing-8, 2rem);
233
+ padding-left: var(--spacing-3, 0.75rem);
234
+ padding-right: var(--spacing-3, 0.75rem);
235
+ font-size: var(--font-size-sm);
236
+ }
237
+ .btn-md {
238
+ height: var(--spacing-10, 2.5rem);
239
+ padding-left: var(--spacing-4, 1rem);
240
+ padding-right: var(--spacing-4, 1rem);
241
+ font-size: var(--font-size-sm);
242
+ }
243
+ .btn-lg {
244
+ height: var(--spacing-14, 3.5rem);
245
+ padding-left: var(--spacing-6, 1.5rem);
246
+ padding-right: var(--spacing-6, 1.5rem);
247
+ font-size: var(--font-size-lg);
248
+ }
249
+ .btn-square {
250
+ width: var(--spacing-12, 3rem);
251
+ height: var(--spacing-12, 3rem);
252
+ padding-left: var(--spacing-0, 0px);
253
+ padding-right: var(--spacing-0, 0px);
254
+ &.btn-xs {
255
+ width: var(--spacing-6, 1.5rem);
256
+ height: var(--spacing-6, 1.5rem);
257
+ }
258
+ &.btn-sm {
259
+ width: var(--spacing-8, 2rem);
260
+ height: var(--spacing-8, 2rem);
261
+ }
262
+ &.btn-md {
263
+ width: var(--spacing-12, 3rem);
264
+ height: var(--spacing-12, 3rem);
265
+ }
266
+ &.btn-lg {
267
+ width: var(--spacing-16, 4rem);
268
+ height: var(--spacing-16, 4rem);
269
+ }
270
+ }
271
+ .btn-circle {
272
+ aspect-ratio: 1 / 1;
273
+ border-radius: calc(infinity * 1px);
274
+ padding-left: var(--spacing-0, 0px);
275
+ padding-right: var(--spacing-0, 0px);
276
+ }
277
+ .btn-wide {
278
+ width: var(--spacing-64, 16rem);
279
+ }
280
+ .btn-block {
281
+ width: 100%;
282
+ }
283
+ @keyframes button-pop {
284
+ 0% {
285
+ transform: scale(var(--btn-focus-scale, 0.98));
286
+ }
287
+ 40% {
288
+ transform: scale(1.02);
289
+ }
290
+ 100% {
291
+ transform: scale(1);
292
+ }
293
+ }
@@ -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";