frutjam 0.7.0-beta.3 → 0.7.0-beta.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "frutjam",
3
- "version": "0.7.0-beta.3",
3
+ "version": "0.7.0-beta.5",
4
4
  "description": "A utility-first CSS framework UI Library",
5
5
  "main": "./dist/frutjam.css",
6
6
  "browser": "dist/frutjam.css",
@@ -37,8 +37,8 @@
37
37
  "url": "https://github.com/nezanuha/frutjam/issues"
38
38
  },
39
39
  "dependencies": {
40
- "@tailwindcss/postcss": "^4.1.4",
41
- "tailwindcss": "^4.1.4"
40
+ "@tailwindcss/postcss": "^4.1.5",
41
+ "tailwindcss": "^4.1.5"
42
42
  },
43
43
  "devDependencies": {
44
44
  "css-loader": "^7.1.2",
@@ -138,7 +138,7 @@
138
138
  }
139
139
 
140
140
  &:is(:disabled, [disabled], .btn-disabled) {
141
- @apply opacity-20 pointer-events-none;
141
+ @apply opacity-20 cursor-not-allowed;
142
142
  }
143
143
 
144
144
  &:is(input[type="checkbox"], input[type="radio"]) {
@@ -169,7 +169,7 @@
169
169
  &:is(.btn) {
170
170
  background-color: light-dark(
171
171
  var(--btn-200),
172
- var(--btn-900)
172
+ var(--btn-800)
173
173
  );
174
174
 
175
175
  color: light-dark(
@@ -193,7 +193,7 @@
193
193
 
194
194
  &:not(:disabled, [disabled], .btn-disabled) {
195
195
  &::before {
196
- @apply content-[''] absolute size-full animate-wiggle bg-[radial-gradient(#ffffff33,_#00000000)];
196
+ @apply content-[''] absolute size-full;
197
197
  }
198
198
  }
199
199
  }
@@ -1,57 +1,297 @@
1
1
  @import "../theme/skins/base.css";
2
2
 
3
- @utility input-* {
3
+ @utility input-size {
4
4
  @layer components {
5
- @apply outline outline-[--value(--color-*)]/20 rounded-[var(--radius-size)] transition duration-300 px-2.5 font-medium;
6
- @apply relative inline-flex self-start shrink-0 appearance-none items-center gap-2 align-middle whitespace-nowrap leading-4;
7
- &:focus, &:focus-within {
8
- @apply outline-[--value(--color-*)] ring-2 ring-[--value(--color-*)]/10 isolate;
5
+ padding-inline: var(--input-inline);
6
+ padding-block: var(--input-block);
7
+ font-size: var(--input-text-size);
8
+ }
9
+ }
10
+
11
+ @utility input-xs {
12
+ @layer components {
13
+ @apply input-size;
14
+ }
15
+ @layer theme {
16
+ --input-inline: 0.875rem;
17
+ --input-block: 0.375rem;
18
+ --input-text-size: 0.75rem;
19
+ }
20
+ }
21
+
22
+ @utility input-sm {
23
+ @layer components {
24
+ @apply input-size;
25
+ }
26
+ @layer theme {
27
+ --input-inline: 1rem;
28
+ --input-block: 0.5rem;
29
+ --input-text-size: 0.875rem;
30
+ }
31
+ }
32
+
33
+ @utility input-md {
34
+ @layer components {
35
+ @apply input-size;
36
+ }
37
+ @layer theme {
38
+ --input-inline: 1.125rem;
39
+ --input-block: 0.625rem;
40
+ --input-text-size: 1rem;
41
+ }
42
+ }
43
+
44
+ @utility input-lg {
45
+ @layer components {
46
+ @apply input-size;
47
+ }
48
+ @layer theme {
49
+ --input-inline: 1.25rem;
50
+ --input-block: 0.75rem;
51
+ --input-text-size: 1rem;
52
+ }
53
+ }
54
+
55
+ @utility input-xl {
56
+ @layer components {
57
+ @apply input-size;
58
+ }
59
+ @layer theme {
60
+ --input-inline: 1.375rem;
61
+ --input-block: 0.875rem;
62
+ --input-text-size: 1rem;
63
+ }
64
+ }
65
+
66
+ @utility input-2xl {
67
+ @layer components {
68
+ @apply input-size;
69
+ }
70
+ @layer theme {
71
+ --input-inline: 1.5rem;
72
+ --input-block: 1rem;
73
+ --input-text-size: 1.125rem;
74
+ }
75
+ }
76
+
77
+ @utility input-dashed {
78
+ @layer components {
79
+ &:not(.input-active) {
80
+ @apply outline-dashed;
81
+ }
82
+ }
83
+ }
84
+
85
+
86
+ @utility input-outline {
87
+ @layer components {
88
+ &:not(.input-active) {
89
+ @apply outline outline-solid;
9
90
  }
10
- @media (hover: hover) {
11
- &:hover {
12
- @apply border-[--value(--color-*-fore)]/40
13
- }
91
+ }
92
+ }
93
+
94
+ @utility input-soft {
95
+ @layer components {
96
+ &:not(.input-active) {
97
+ background-color: light-dark(
98
+ var(--input-100),
99
+ color-mix(in oklab,var(--input-900)10%,transparent)
100
+ );
101
+ color: light-dark(
102
+ var(--input-800),
103
+ var(--input-400)
104
+ );
14
105
  }
106
+ }
107
+ }
15
108
 
16
- &:is(.input-ghost) {
17
- @apply outline-0;
18
- @media (hover: hover) {
19
- &:hover {
20
- @apply outline;
21
- }
22
- }
109
+ @utility input-ghost {
110
+ @layer components {
111
+ &:not(.input-active) {
112
+ @apply outline-transparent;
113
+ }
114
+ }
115
+ }
116
+
117
+ @utility input-core {
118
+ @layer components {
119
+ @apply input-md transition duration-300 px-2.5 font-medium relative inline-flex self-start
120
+ shrink-0 appearance-none items-center gap-2 align-middle whitespace-nowrap placeholder:text-[var(--input-300)];
121
+
122
+ border-radius: var(--radius-input);
123
+
124
+ &:is(.input) {
125
+ @apply outline outline-[var(--input-300)];
126
+ }
127
+
128
+ &:not(.input) {
129
+ @apply outline outline-[var(--input-700)];
23
130
  }
24
131
 
25
- /* disabled input */
26
132
  &:is(:disabled, [disabled], .input-disabled) {
27
- @apply bg-[--value(--color-*)]/10 text-[--value(--color-*)]/30 pointer-events-none cursor-not-allowed;
28
- }
29
-
30
- /* If no input size class is present, apply the default size as input-md */
31
- &:not(.input-xs, .input-sm, .input-md, .input-lg, .input-xl, .input-2xl) {
32
- @apply px-3.5 py-2.5 text-sm;
33
- }
34
-
35
- /* input sizes */
36
- &:is(.input-xs, .input-sm, .input-md, .input-lg, .input-xl, .input-2xl) {
37
- &:is(.input-xs) {
38
- @apply px-2.5 py-1.5 text-xs;
39
- }
40
- &:is(.input-sm) {
41
- @apply px-3 py-2 text-xs;
42
- }
43
- &:is(.input-md) {
44
- @apply px-3.5 py-2.5 text-sm;
45
- }
46
- &:is(.input-lg) {
47
- @apply px-4 py-3 text-base;
48
- }
49
- &:is(.input-xl) {
50
- @apply px-4.5 py-3.5 text-base;
51
- }
52
- &:is(.input-2xl) {
53
- @apply px-5 py-4 text-base;
54
- }
55
- }
56
- }
57
- }
133
+ @apply cursor-not-allowed placeholder:text-[var(--input-200)];
134
+ color:var(--input-50);
135
+ background-color: light-dark(
136
+ var(--input-100),
137
+ var(--input-900)
138
+ );
139
+ }
140
+
141
+ &:focus, &:focus-within {
142
+ @apply outline-[var(--input-800)] ring-2 ring-[var(--input-200)] isolate;
143
+ }
144
+ }
145
+ }
146
+
147
+ @utility input {
148
+ @layer components {
149
+ @apply input-core;
150
+ }
151
+ @layer theme {
152
+ --input-50: var(--default-50);
153
+ --input-100: var(--default-100);
154
+ --input-200: var(--default-200);
155
+ --input-300: var(--default-300);
156
+ --input-400: var(--default-400);
157
+ --input-500: var(--default-500);
158
+ --input-600: var(--default-600);
159
+ --input-700: var(--default-700);
160
+ --input-800: var(--default-800);
161
+ --input-900: var(--default-900);
162
+ --input-950: var(--default-950);
163
+ }
164
+ }
165
+
166
+ @utility input-primary {
167
+ @layer components {
168
+ @apply input-core;
169
+ }
170
+ @layer theme {
171
+ --input-50: var(--primary-50);
172
+ --input-100: var(--primary-100);
173
+ --input-200: var(--primary-200);
174
+ --input-300: var(--primary-300);
175
+ --input-400: var(--primary-400);
176
+ --input-500: var(--primary-500);
177
+ --input-600: var(--primary-600);
178
+ --input-700: var(--primary-700);
179
+ --input-800: var(--primary-800);
180
+ --input-900: var(--primary-900);
181
+ --input-950: var(--primary-950);
182
+ }
183
+ }
184
+
185
+ @utility input-secondary {
186
+ @layer components {
187
+ @apply input-core;
188
+ }
189
+ @layer theme {
190
+ --input-50: var(--secondary-50);
191
+ --input-100: var(--secondary-100);
192
+ --input-200: var(--secondary-200);
193
+ --input-300: var(--secondary-300);
194
+ --input-400: var(--secondary-400);
195
+ --input-500: var(--secondary-500);
196
+ --input-600: var(--secondary-600);
197
+ --input-700: var(--secondary-700);
198
+ --input-800: var(--secondary-800);
199
+ --input-900: var(--secondary-900);
200
+ --input-950: var(--secondary-950);
201
+ }
202
+ }
203
+
204
+ @utility input-accent {
205
+ @layer components {
206
+ @apply input-core;
207
+ }
208
+ @layer theme {
209
+ --input-50: var(--accent-50);
210
+ --input-100: var(--accent-100);
211
+ --input-200: var(--accent-200);
212
+ --input-300: var(--accent-300);
213
+ --input-400: var(--accent-400);
214
+ --input-500: var(--accent-500);
215
+ --input-600: var(--accent-600);
216
+ --input-700: var(--accent-700);
217
+ --input-800: var(--accent-800);
218
+ --input-900: var(--accent-900);
219
+ --input-950: var(--accent-950);
220
+ }
221
+ }
222
+
223
+ @utility input-info {
224
+ @layer components {
225
+ @apply input-core;
226
+ }
227
+ @layer theme {
228
+ --input-50: var(--info-50);
229
+ --input-100: var(--info-100);
230
+ --input-200: var(--info-200);
231
+ --input-300: var(--info-300);
232
+ --input-400: var(--info-400);
233
+ --input-500: var(--info-500);
234
+ --input-600: var(--info-600);
235
+ --input-700: var(--info-700);
236
+ --input-800: var(--info-800);
237
+ --input-900: var(--info-900);
238
+ --input-950: var(--info-950);
239
+ }
240
+ }
241
+
242
+ @utility input-success {
243
+ @layer components {
244
+ @apply input-core;
245
+ }
246
+ @layer theme {
247
+ --input-50: var(--success-50);
248
+ --input-100: var(--success-100);
249
+ --input-200: var(--success-200);
250
+ --input-300: var(--success-300);
251
+ --input-400: var(--success-400);
252
+ --input-500: var(--success-500);
253
+ --input-600: var(--success-600);
254
+ --input-700: var(--success-700);
255
+ --input-800: var(--success-800);
256
+ --input-900: var(--success-900);
257
+ --input-950: var(--success-950);
258
+ }
259
+ }
260
+
261
+ @utility input-warning {
262
+ @layer components {
263
+ @apply input-core;
264
+ }
265
+ @layer theme {
266
+ --input-50: var(--warning-50);
267
+ --input-100: var(--warning-100);
268
+ --input-200: var(--warning-200);
269
+ --input-300: var(--warning-300);
270
+ --input-400: var(--warning-400);
271
+ --input-500: var(--warning-500);
272
+ --input-600: var(--warning-600);
273
+ --input-700: var(--warning-700);
274
+ --input-800: var(--warning-800);
275
+ --input-900: var(--warning-900);
276
+ --input-950: var(--warning-950);
277
+ }
278
+ }
279
+
280
+ @utility input-error {
281
+ @layer components {
282
+ @apply input-core;
283
+ }
284
+ @layer theme {
285
+ --input-50: var(--error-50);
286
+ --input-100: var(--error-100);
287
+ --input-200: var(--error-200);
288
+ --input-300: var(--error-300);
289
+ --input-400: var(--error-400);
290
+ --input-500: var(--error-500);
291
+ --input-600: var(--error-600);
292
+ --input-700: var(--error-700);
293
+ --input-800: var(--error-800);
294
+ --input-900: var(--error-900);
295
+ --input-950: var(--error-950);
296
+ }
297
+ }
@@ -3,7 +3,7 @@
3
3
  @import "./darkberry.css" layer(theme);
4
4
 
5
5
  @custom-variant light (&:where([data-theme="light"], [data-theme="snowberry"] *));
6
- @custom-variant dark (&:where([data-theme="dark"], [data-theme="blackberry"] *));
6
+ @custom-variant dark (&:where([data-theme="dark"], [data-theme="darkberry"] *));
7
7
 
8
8
  :root {
9
9
  color-scheme: var(--color-scheme);
@@ -3,6 +3,7 @@
3
3
  --color-scheme: dark;
4
4
 
5
5
  --radius-btn: 0.5rem;
6
+ --radius-input: 0.5rem;
6
7
  --radius-checkbox: 0.375rem;
7
8
  --radius-modal: 1rem;
8
9
 
@@ -3,6 +3,7 @@
3
3
  --color-scheme: light;
4
4
 
5
5
  --radius-btn: 0.5rem;
6
+ --radius-input: 0.5rem;
6
7
  --radius-checkbox: 0.375rem;
7
8
  --radius-modal: 1rem;
8
9