phoenix_duskmoon 6.2.0 → 6.3.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,191 @@
1
+ ## [6.3.2](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/compare/v6.3.1...v6.3.2) (2025-05-29)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * Remove tailwind.config.js, use directive instead. ([5726376](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/57263769b83c6698595ac6ce68f6968539d795c6))
7
+
8
+ ## [6.3.1](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/compare/v6.3.0...v6.3.1) (2025-05-29)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * Fix. ([0b9f4aa](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/0b9f4aaaeb3b3163194140c1f67db53adae7b486))
14
+ * Fix. ([6d109ef](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/6d109ef3cf06c3c282fbe03b5414b4a04aaba5a4))
15
+ * Fix. ([88ba112](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/88ba1124c1930c0b0cc3191f6b737b26b4010619))
16
+
17
+ # [6.3.0](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/compare/v6.2.0...v6.3.0) (2025-03-08)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * Fix neumorphic form. ([a02cfb2](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/a02cfb2ecad7342779fcd13895693bcb74d45c0c))
23
+ * Fix neumorphic table. ([139b524](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/139b524f7147a346e3ef1e69943d873946dc5c19))
24
+ * Fix pagination. ([3920dcb](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/3920dcbdd50e38ae6026d045c107235988cfff6f))
25
+ * Fix simple_app_bar. ([63108a1](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/63108a1d86223be7f44e680d37ebfb4e5b2bca84))
26
+ * Fix tasks. ([719b3ea](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/719b3ead86f1bcaba7aabba147082d1b928fdc3e))
27
+ * Fix. ([f2a7f0e](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/f2a7f0ebdbe27eb32381dc54a45260d7cc432d46))
28
+ * Fix. ([481f6d5](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/481f6d517438f5bb280c1368dbf2abde8060ee79))
29
+ * Fix. ([765d62a](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/765d62a98e4580cd303a5cec4785c902fb67c41f))
30
+ * Fix. ([01f271d](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/01f271dd9335cae55b6eb76046ac7089ccaa1616))
31
+ * Fix. ([8549218](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/8549218454639fa42f21a1897ec848c9332fc5fd))
32
+ * Fix. ([9db4a9f](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/9db4a9fb074c8f900d861ff4b5b7fb86f904881b))
33
+
34
+
35
+ ### Features
36
+
37
+ * Add neumorphic design. ([8b1c697](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/8b1c697d1689560873a357a1b5bd512dcd153ac0))
38
+
39
+ # [6.3.0](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/compare/v6.2.0...v6.3.0) (2025-03-08)
40
+
41
+
42
+ ### Bug Fixes
43
+
44
+ * Fix neumorphic form. ([a02cfb2](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/a02cfb2ecad7342779fcd13895693bcb74d45c0c))
45
+ * Fix neumorphic table. ([139b524](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/139b524f7147a346e3ef1e69943d873946dc5c19))
46
+ * Fix pagination. ([3920dcb](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/3920dcbdd50e38ae6026d045c107235988cfff6f))
47
+ * Fix simple_app_bar. ([63108a1](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/63108a1d86223be7f44e680d37ebfb4e5b2bca84))
48
+ * Fix tasks. ([719b3ea](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/719b3ead86f1bcaba7aabba147082d1b928fdc3e))
49
+ * Fix. ([f2a7f0e](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/f2a7f0ebdbe27eb32381dc54a45260d7cc432d46))
50
+ * Fix. ([481f6d5](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/481f6d517438f5bb280c1368dbf2abde8060ee79))
51
+ * Fix. ([765d62a](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/765d62a98e4580cd303a5cec4785c902fb67c41f))
52
+ * Fix. ([01f271d](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/01f271dd9335cae55b6eb76046ac7089ccaa1616))
53
+ * Fix. ([8549218](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/8549218454639fa42f21a1897ec848c9332fc5fd))
54
+ * Fix. ([9db4a9f](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/9db4a9fb074c8f900d861ff4b5b7fb86f904881b))
55
+
56
+
57
+ ### Features
58
+
59
+ * Add neumorphic design. ([8b1c697](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/8b1c697d1689560873a357a1b5bd512dcd153ac0))
60
+
61
+ # [6.3.0](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/compare/v6.2.0...v6.3.0) (2025-03-08)
62
+
63
+
64
+ ### Bug Fixes
65
+
66
+ * Fix neumorphic form. ([a02cfb2](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/a02cfb2ecad7342779fcd13895693bcb74d45c0c))
67
+ * Fix neumorphic table. ([139b524](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/139b524f7147a346e3ef1e69943d873946dc5c19))
68
+ * Fix pagination. ([3920dcb](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/3920dcbdd50e38ae6026d045c107235988cfff6f))
69
+ * Fix simple_app_bar. ([63108a1](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/63108a1d86223be7f44e680d37ebfb4e5b2bca84))
70
+ * Fix tasks. ([719b3ea](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/719b3ead86f1bcaba7aabba147082d1b928fdc3e))
71
+ * Fix. ([765d62a](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/765d62a98e4580cd303a5cec4785c902fb67c41f))
72
+ * Fix. ([01f271d](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/01f271dd9335cae55b6eb76046ac7089ccaa1616))
73
+ * Fix. ([8549218](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/8549218454639fa42f21a1897ec848c9332fc5fd))
74
+ * Fix. ([9db4a9f](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/9db4a9fb074c8f900d861ff4b5b7fb86f904881b))
75
+
76
+
77
+ ### Features
78
+
79
+ * Add neumorphic design. ([8b1c697](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/8b1c697d1689560873a357a1b5bd512dcd153ac0))
80
+
81
+ # [6.3.0](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/compare/v6.2.0...v6.3.0) (2025-03-07)
82
+
83
+
84
+ ### Bug Fixes
85
+
86
+ * Fix neumorphic form. ([a02cfb2](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/a02cfb2ecad7342779fcd13895693bcb74d45c0c))
87
+ * Fix neumorphic table. ([139b524](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/139b524f7147a346e3ef1e69943d873946dc5c19))
88
+ * Fix pagination. ([3920dcb](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/3920dcbdd50e38ae6026d045c107235988cfff6f))
89
+ * Fix simple_app_bar. ([63108a1](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/63108a1d86223be7f44e680d37ebfb4e5b2bca84))
90
+ * Fix tasks. ([719b3ea](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/719b3ead86f1bcaba7aabba147082d1b928fdc3e))
91
+ * Fix. ([8549218](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/8549218454639fa42f21a1897ec848c9332fc5fd))
92
+ * Fix. ([9db4a9f](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/9db4a9fb074c8f900d861ff4b5b7fb86f904881b))
93
+
94
+
95
+ ### Features
96
+
97
+ * Add neumorphic design. ([8b1c697](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/8b1c697d1689560873a357a1b5bd512dcd153ac0))
98
+
99
+ # [6.3.0](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/compare/v6.2.0...v6.3.0) (2025-03-07)
100
+
101
+
102
+ ### Bug Fixes
103
+
104
+ * Fix neumorphic form. ([a02cfb2](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/a02cfb2ecad7342779fcd13895693bcb74d45c0c))
105
+ * Fix neumorphic table. ([139b524](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/139b524f7147a346e3ef1e69943d873946dc5c19))
106
+ * Fix pagination. ([3920dcb](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/3920dcbdd50e38ae6026d045c107235988cfff6f))
107
+ * Fix simple_app_bar. ([63108a1](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/63108a1d86223be7f44e680d37ebfb4e5b2bca84))
108
+ * Fix tasks. ([719b3ea](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/719b3ead86f1bcaba7aabba147082d1b928fdc3e))
109
+ * Fix. ([9db4a9f](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/9db4a9fb074c8f900d861ff4b5b7fb86f904881b))
110
+
111
+
112
+ ### Features
113
+
114
+ * Add neumorphic design. ([8b1c697](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/8b1c697d1689560873a357a1b5bd512dcd153ac0))
115
+
116
+ # [6.3.0](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/compare/v6.2.0...v6.3.0) (2025-03-07)
117
+
118
+
119
+ ### Bug Fixes
120
+
121
+ * Fix neumorphic form. ([a02cfb2](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/a02cfb2ecad7342779fcd13895693bcb74d45c0c))
122
+ * Fix pagination. ([3920dcb](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/3920dcbdd50e38ae6026d045c107235988cfff6f))
123
+ * Fix simple_app_bar. ([63108a1](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/63108a1d86223be7f44e680d37ebfb4e5b2bca84))
124
+ * Fix tasks. ([719b3ea](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/719b3ead86f1bcaba7aabba147082d1b928fdc3e))
125
+ * Fix. ([9db4a9f](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/9db4a9fb074c8f900d861ff4b5b7fb86f904881b))
126
+
127
+
128
+ ### Features
129
+
130
+ * Add neumorphic design. ([8b1c697](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/8b1c697d1689560873a357a1b5bd512dcd153ac0))
131
+
132
+ # [6.3.0](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/compare/v6.2.0...v6.3.0) (2025-03-07)
133
+
134
+
135
+ ### Bug Fixes
136
+
137
+ * Fix pagination. ([3920dcb](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/3920dcbdd50e38ae6026d045c107235988cfff6f))
138
+ * Fix simple_app_bar. ([63108a1](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/63108a1d86223be7f44e680d37ebfb4e5b2bca84))
139
+ * Fix tasks. ([719b3ea](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/719b3ead86f1bcaba7aabba147082d1b928fdc3e))
140
+ * Fix. ([9db4a9f](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/9db4a9fb074c8f900d861ff4b5b7fb86f904881b))
141
+
142
+
143
+ ### Features
144
+
145
+ * Add neumorphic design. ([8b1c697](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/8b1c697d1689560873a357a1b5bd512dcd153ac0))
146
+
147
+ # [6.3.0](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/compare/v6.2.0...v6.3.0) (2025-03-06)
148
+
149
+
150
+ ### Bug Fixes
151
+
152
+ * Fix pagination. ([3920dcb](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/3920dcbdd50e38ae6026d045c107235988cfff6f))
153
+ * Fix simple_app_bar. ([63108a1](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/63108a1d86223be7f44e680d37ebfb4e5b2bca84))
154
+ * Fix. ([9db4a9f](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/9db4a9fb074c8f900d861ff4b5b7fb86f904881b))
155
+
156
+
157
+ ### Features
158
+
159
+ * Add neumorphic design. ([8b1c697](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/8b1c697d1689560873a357a1b5bd512dcd153ac0))
160
+
161
+ # [6.3.0](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/compare/v6.2.0...v6.3.0) (2025-03-06)
162
+
163
+
164
+ ### Bug Fixes
165
+
166
+ * Fix pagination. ([3920dcb](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/3920dcbdd50e38ae6026d045c107235988cfff6f))
167
+ * Fix simple_app_bar. ([63108a1](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/63108a1d86223be7f44e680d37ebfb4e5b2bca84))
168
+
169
+
170
+ ### Features
171
+
172
+ * Add neumorphic design. ([8b1c697](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/8b1c697d1689560873a357a1b5bd512dcd153ac0))
173
+
174
+ ## [6.2.1](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/compare/v6.2.0...v6.2.1) (2025-02-22)
175
+
176
+
177
+ ### Bug Fixes
178
+
179
+ * Fix pagination. ([3920dcb](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/3920dcbdd50e38ae6026d045c107235988cfff6f))
180
+ * Fix simple_app_bar. ([63108a1](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/63108a1d86223be7f44e680d37ebfb4e5b2bca84))
181
+
182
+ ## [6.2.1](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/compare/v6.2.0...v6.2.1) (2025-02-22)
183
+
184
+
185
+ ### Bug Fixes
186
+
187
+ * Fix simple_app_bar. ([63108a1](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/commit/63108a1d86223be7f44e680d37ebfb4e5b2bca84))
188
+
1
189
  # [6.2.0](https://github.com/gsmlg-dev/phoenix-duskmoon-ui/compare/v6.1.3...v6.2.0) (2025-02-12)
2
190
 
3
191
 
@@ -0,0 +1,270 @@
1
+ @layer components {
2
+ .neumorphic-button {
3
+ @apply inline-flex shrink-0 cursor-pointer flex-nowrap
4
+ items-center justify-center gap-1.5 text-center
5
+ align-middle no-underline select-none;
6
+ padding-inline: var(--btn-p);
7
+ height: var(--size);
8
+ font-size: 0.875rem;
9
+ font-weight: 600;
10
+ transition-property: color, background-color, border-color, box-shadow;
11
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
12
+ transition-duration: 0.2s;
13
+ border-start-start-radius: var(--join-ss, var(--radius-field));
14
+ border-start-end-radius: var(--join-se, var(--radius-field));
15
+ border-end-start-radius: var(--join-es, var(--radius-field));
16
+ border-end-end-radius: var(--join-ee, var(--radius-field));
17
+
18
+ --size: calc(var(--size-field, 0.25rem) * 10);
19
+ --btn-bg: var(--btn-color, var(--neumorphic-color));
20
+ --btn-fg: var(--neumorphic-text-color);
21
+ --btn-p: 1rem;
22
+ --btn-border: color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%));
23
+ --btn-shadow: 0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000),
24
+ 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000);
25
+ --btn-noise: var(--fx-noise);
26
+ --btn-color: var(--neumorphic-color);
27
+
28
+ color: var(--btn-fg);
29
+ background-color: var(--btn-bg);
30
+
31
+ @apply neumorphic-shadow-16 neumorphic-text-4;
32
+
33
+ @media (hover: hover) {
34
+ &:hover {
35
+ --btn-bg: color-mix(in oklab, var(--btn-color, var(--neumorphic-color)), #000 7%);
36
+ @apply neumorphic-shadow-12 neumorphic-text-inset-4;
37
+ }
38
+ }
39
+
40
+ &.btn-active {
41
+ --btn-bg: color-mix(in oklab, var(--btn-color, var(--neumorphic-color)), #000 7%);
42
+ --btn-shadow: 0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0);
43
+ isolation: isolate;
44
+ @apply neumorphic-shadow-inset-12;
45
+ }
46
+
47
+ &:focus-visible {
48
+ outline-width: 2px;
49
+ outline-style: solid;
50
+ }
51
+
52
+ &:active:not(.btn-active) {
53
+ @apply neumorphic-shadow-inset-12;
54
+ translate: 0 0.5px;
55
+ --btn-bg: color-mix(in oklab, var(--btn-color, var(--neumorphic-color)), #000 5%);
56
+ --btn-border: color-mix(in oklab, var(--btn-color, var(--neumorphic-color)), #000 7%);
57
+ --btn-shadow: 0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0);
58
+ }
59
+
60
+ &:is(:disabled, [disabled], .btn-disabled) {
61
+ &:not(.btn-link, .btn-ghost) {
62
+ @apply bg-base-content/10;
63
+ box-shadow: none;
64
+ }
65
+
66
+ @apply pointer-events-none;
67
+ --btn-border: #0000;
68
+ --btn-noise: none;
69
+ --btn-fg: color-mix(in oklch, var(--neumorphic-text-color) 20%, #0000);
70
+
71
+ @media (hover: hover) {
72
+ &:hover {
73
+ @apply bg-neutral/20 pointer-events-none;
74
+ --btn-border: #0000;
75
+ --btn-fg: color-mix(in oklch, var(--neumorphic-text-color) 20%, #0000);
76
+ }
77
+ }
78
+ }
79
+
80
+ &:is(input[type="checkbox"], input[type="radio"]) {
81
+ @apply appearance-none;
82
+
83
+ /* &:not(.btn-square, .btn-circle) {
84
+ @apply w-auto;
85
+ } */
86
+
87
+ &::after {
88
+ content: attr(aria-label);
89
+ }
90
+
91
+ &:checked {
92
+ outline-width: 2px;
93
+ outline-style: solid;
94
+ --btn-bg: color-mix(in oklab, var(--btn-color, var(--neumorphic-color)), #000 7%);
95
+ --btn-shadow: 0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0);
96
+ isolation: isolate;
97
+ }
98
+ }
99
+ }
100
+
101
+ .btn-primary {
102
+ --btn-color: var(--color-primary);
103
+ --btn-fg: var(--color-primary-content);
104
+ }
105
+
106
+ .btn-secondary {
107
+ --btn-color: var(--color-secondary);
108
+ --btn-fg: var(--color-secondary-content);
109
+ }
110
+
111
+ .btn-accent {
112
+ --btn-color: var(--color-accent);
113
+ --btn-fg: var(--color-accent-content);
114
+ }
115
+
116
+ .btn-neutral {
117
+ --btn-color: var(--color-neutral);
118
+ --btn-fg: var(--color-neutral-content);
119
+ }
120
+
121
+ .btn-info {
122
+ --btn-color: var(--color-info);
123
+ --btn-fg: var(--color-info-content);
124
+ }
125
+
126
+ .btn-success {
127
+ --btn-color: var(--color-success);
128
+ --btn-fg: var(--color-success-content);
129
+ }
130
+
131
+ .btn-warning {
132
+ --btn-color: var(--color-warning);
133
+ --btn-fg: var(--color-warning-content);
134
+ }
135
+
136
+ .btn-error {
137
+ --btn-color: var(--color-error);
138
+ --btn-fg: var(--color-error-content);
139
+ }
140
+
141
+ .btn-ghost {
142
+ &:not(.btn-active, :hover, :active:focus, :focus-visible) {
143
+ --btn-shadow: "";
144
+ --btn-bg: #0000;
145
+ --btn-border: #0000;
146
+ --btn-noise: none;
147
+ &:not(:disabled, [disabled], .btn-disabled) {
148
+ @apply outline-current;
149
+ --btn-fg: currentColor;
150
+ }
151
+ }
152
+ }
153
+ .neumorphic-btn-ghost {
154
+ &:not(.btn-active, :active:focus, :focus-visible) {
155
+ --btn-shadow: "";
156
+ --btn-bg: #0000;
157
+ --btn-border: #0000;
158
+ --btn-noise: none;
159
+ box-shadow: none;
160
+ &:not(:disabled, [disabled], .btn-disabled) {
161
+ @apply outline-current;
162
+ --btn-fg: currentColor;
163
+ }
164
+ }
165
+ }
166
+
167
+ .btn-link {
168
+ @apply underline outline-current;
169
+ --btn-border: #0000;
170
+ --btn-bg: #0000;
171
+ --btn-fg: var(--color-primary);
172
+ --btn-noise: none;
173
+ --btn-shadow: "";
174
+
175
+ &:is(.btn-active, :hover, :active:focus, :focus-visible) {
176
+ @apply underline;
177
+ --btn-border: #0000;
178
+ --btn-bg: #0000;
179
+ }
180
+ }
181
+
182
+ .btn-outline {
183
+ &:not(.btn-active, :hover, :active:focus, :focus-visible, :disabled, [disabled], .btn-disabled, :checked, [checked]) {
184
+ --btn-shadow: "";
185
+ --btn-bg: #0000;
186
+ --btn-fg: var(--btn-color);
187
+ --btn-border: var(--btn-color);
188
+ --btn-noise: none;
189
+ }
190
+ }
191
+
192
+ .btn-dash {
193
+ &:not(.btn-active, :hover, :active:focus, :focus-visible, :disabled, [disabled], .btn-disabled) {
194
+ --btn-shadow: "";
195
+ border-style: dashed;
196
+ --btn-bg: #0000;
197
+ --btn-fg: var(--btn-color);
198
+ --btn-border: var(--btn-color);
199
+ --btn-noise: none;
200
+ }
201
+ }
202
+
203
+ .btn-soft {
204
+ &:not(.btn-active, :hover, :active:focus, :focus-visible, :disabled, [disabled], .btn-disabled) {
205
+ --btn-shadow: "";
206
+ --btn-fg: var(--btn-color, var(--neumorphic-text-color));
207
+ --btn-bg: color-mix(
208
+ in oklab,
209
+ var(--btn-color, var(--neumorphic-text-color)) 8%,
210
+ var(--color-base-100)
211
+ );
212
+ --btn-border: color-mix(
213
+ in oklab,
214
+ var(--btn-color, var(--neumorphic-text-color)) 10%,
215
+ var(--color-base-100)
216
+ );
217
+ --btn-noise: none;
218
+ }
219
+ }
220
+
221
+ .btn-xs {
222
+ font-size: 0.6875rem;
223
+ --btn-p: 0.5rem;
224
+ --size: calc(var(--size-field, 0.25rem) * 6);
225
+ }
226
+
227
+ .btn-sm {
228
+ font-size: 0.75rem;
229
+ --btn-p: 0.75rem;
230
+ --size: calc(var(--size-field, 0.25rem) * 8);
231
+ }
232
+
233
+ .btn-md {
234
+ font-size: 0.875rem;
235
+ --btn-p: 1rem;
236
+ --size: calc(var(--size-field, 0.25rem) * 10);
237
+ }
238
+
239
+ .btn-lg {
240
+ font-size: 1.125rem;
241
+ --btn-p: 1.25rem;
242
+ --size: calc(var(--size-field, 0.25rem) * 12);
243
+ }
244
+
245
+ .btn-xl {
246
+ font-size: 1.375rem;
247
+ --btn-p: 1.5rem;
248
+ --size: calc(var(--size-field, 0.25rem) * 14);
249
+ }
250
+
251
+ .btn-square {
252
+ @apply px-0;
253
+ width: var(--size);
254
+ height: var(--size);
255
+ }
256
+
257
+ .btn-circle {
258
+ @apply rounded-full px-0;
259
+ width: var(--size);
260
+ height: var(--size);
261
+ }
262
+
263
+ .btn-wide {
264
+ @apply w-full max-w-64;
265
+ }
266
+
267
+ .btn-block {
268
+ @apply w-full;
269
+ }
270
+ }
@@ -0,0 +1,80 @@
1
+ @layer components {
2
+
3
+ .neumorphic-checkbox {
4
+ display: inline-grid;
5
+ place-items: center;
6
+ position: relative;
7
+ flex-shrink: 0;
8
+ cursor: pointer;
9
+ appearance: none;
10
+ border-radius: var(--radius-selector);
11
+ padding: calc(0.25rem * 1);
12
+ vertical-align: middle;
13
+ color: var(--color-base-content);
14
+ box-shadow: 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 0 #0000 inset, 0 0 #0000;
15
+ transition: background-color 0.2s, box-shadow 0.2s;
16
+ --size: calc(var(--size-selector, 0.25rem) * 6);
17
+ width: var(--size);
18
+ height: var(--size);
19
+ background-size: auto, calc(var(--noise) * 100%);
20
+ background-image: none, var(--fx-noise);
21
+ &:before {
22
+ --tw-content: "";
23
+ content: var(--tw-content);
24
+ display: block;
25
+ width: 100%;
26
+ height: 100%;
27
+ rotate: 45deg;
28
+ background-color: currentColor;
29
+ opacity: 0%;
30
+ transition: clip-path 0.3s, opacity 0.1s, rotate 0.3s, translate 0.3s;
31
+ transition-delay: 0.1s;
32
+ clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 80%, 70% 80%, 70% 100%);
33
+ box-shadow: 0px 3px 0 0px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset;
34
+ font-size: 1rem;
35
+ line-height: 0.75;
36
+ }
37
+ &:focus-visible {
38
+ outline: 2px solid var(--input-color, currentColor);
39
+ outline-offset: 2px;
40
+ }
41
+ &:checked, &[aria-checked="true"] {
42
+ background-color: var(--input-color, #0000);
43
+ box-shadow: 0 0 #0000 inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1));
44
+ &:before {
45
+ clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 0%, 70% 0%, 70% 100%);
46
+ opacity: 100%;
47
+ @media print {
48
+ rotate: 0deg;
49
+ }
50
+ @media print {
51
+ background-color: transparent;
52
+ }
53
+ @media print {
54
+ --tw-content: "✔︎";
55
+ }
56
+ @media print {
57
+ clip-path: none;
58
+ }
59
+ @media (forced-colors: active) {
60
+ rotate: 0deg;
61
+ background-color: transparent;
62
+ --tw-content: "✔︎";
63
+ clip-path: none;
64
+ }
65
+ }
66
+ }
67
+ &:indeterminate {
68
+ &:before {
69
+ rotate: 0deg;
70
+ opacity: 100%;
71
+ translate: 0 -35%;
72
+ clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 80%, 80% 80%, 80% 100%);
73
+ }
74
+ }
75
+ &:disabled {
76
+ cursor: not-allowed;
77
+ opacity: 20%;
78
+ }
79
+ }
80
+ }
@@ -0,0 +1,56 @@
1
+ @layer components {
2
+
3
+ .neumorphic-radio {
4
+ display: inline-grid;
5
+ place-items: center;
6
+ position: relative;
7
+ flex-shrink: 0;
8
+ cursor: pointer;
9
+ appearance: none;
10
+ border-radius: calc(infinity * 1px);
11
+ padding: calc(0.25rem * 1);
12
+ vertical-align: middle;
13
+ --size: calc(var(--size-selector, 0.25rem) * 6);
14
+ width: var(--size);
15
+ height: var(--size);
16
+ color: var(--input-color, currentColor);
17
+ &:before {
18
+ display: block;
19
+ width: 100%;
20
+ aspect-ratio: 1 / 1;
21
+ border-radius: calc(infinity * 1px);
22
+ --tw-content: "";
23
+ content: var(--tw-content);
24
+ background-size: auto, calc(var(--noise) * 100%);
25
+ background-image: none, var(--fx-noise);
26
+ }
27
+ &:focus-visible {
28
+ outline: 2px solid currentColor;
29
+ }
30
+ &:checked, &[aria-checked="true"] {
31
+ animation: radio 0.2s ease-out;
32
+ border-color: currentColor;
33
+ background-color: var(--neumorphic-text-color);
34
+ &:before {
35
+ background-color: currentColor;
36
+ @media print {
37
+ outline: .25rem solid;
38
+ }
39
+ @media print {
40
+ outline-offset: -1rem;
41
+ }
42
+ box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1));
43
+ @media (forced-colors: active) {
44
+ outline-style: var(--tw-outline-style);
45
+ outline-width: 1px;
46
+ outline-offset: calc(1px * -1);
47
+ }
48
+ }
49
+ }
50
+ &:disabled {
51
+ cursor: not-allowed;
52
+ opacity: 20%;
53
+ }
54
+ }
55
+
56
+ }
@@ -0,0 +1,87 @@
1
+ @layer components {
2
+ .neumorphic-range {
3
+ appearance: none;
4
+ -webkit-appearance: none;
5
+ --range-thumb: var(--neumorphic-color);
6
+ --range-thumb-size: calc(var(--size-selector, 0.25rem) * 6);
7
+ --range-progress: currentColor;
8
+ --range-fill: 1;
9
+ --range-p: 0.25rem;
10
+ --range-bg: color-mix(in oklab, currentColor 20%, #0000);
11
+ cursor: pointer;
12
+ overflow: hidden;
13
+ background-color: transparent;
14
+ vertical-align: middle;
15
+ width: clamp(3rem, 20rem, 100%);
16
+ --radius-selector-max: calc(
17
+ var(--radius-selector) + var(--radius-selector) + var(--radius-selector)
18
+ );
19
+ border-radius: calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max)));
20
+ border: none;
21
+ height: var(--range-thumb-size);
22
+ [dir="rtl"] & {
23
+ --range-dir: -1;
24
+ }
25
+ &:focus {
26
+ outline: none;
27
+ }
28
+ &:focus-visible {
29
+ outline: 2px solid;
30
+ outline-offset: 2px;
31
+ }
32
+ &::-webkit-slider-runnable-track {
33
+ width: 100%;
34
+ background-color: var(--range-bg);
35
+ border-radius: var(--radius-selector);
36
+ height: calc(var(--range-thumb-size) * 0.5);
37
+ @media (forced-colors: active) {
38
+ border: 1px solid;
39
+ }
40
+ }
41
+ &::-webkit-slider-thumb {
42
+ position: relative;
43
+ box-sizing: border-box;
44
+ border-radius: calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max)));
45
+ background-color: currentColor;
46
+ height: var(--range-thumb-size);
47
+ width: var(--range-thumb-size);
48
+ border: var(--range-p) solid;
49
+ appearance: none;
50
+ -webkit-appearance: none;
51
+ top: 50%;
52
+ color: var(--range-progress);
53
+ transform: translateY(-50%);
54
+ box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000), 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir, 1) * -100rem) - (var(--range-dir, 1) * var(--range-thumb-size) / 2)) 0 0 calc(100rem * var(--range-fill));
55
+ }
56
+ &::-moz-range-track {
57
+ width: 100%;
58
+ background-color: var(--range-bg);
59
+ border-radius: var(--radius-selector);
60
+ height: calc(var(--range-thumb-size) * 0.5);
61
+ @media (forced-colors: active) {
62
+ border: 1px solid;
63
+ }
64
+ }
65
+ &::-moz-range-thumb {
66
+ position: relative;
67
+ box-sizing: border-box;
68
+ border-radius: calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max)));
69
+ background-color: currentColor;
70
+ height: var(--range-thumb-size);
71
+ width: var(--range-thumb-size);
72
+ border: var(--range-p) solid;
73
+ top: 50%;
74
+ color: var(--range-progress);
75
+ box-shadow:
76
+ 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset,
77
+ 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset,
78
+ 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000),
79
+ 0 0 0 2rem var(--range-thumb) inset,
80
+ calc((var(--range-dir, 1) * -100rem) - (var(--range-dir, 1) * var(--range-thumb-size) / 2)) 0 0 calc(100rem * var(--range-fill));
81
+ }
82
+ &:disabled {
83
+ cursor: not-allowed;
84
+ opacity: 30%;
85
+ }
86
+ }
87
+ }