frutjam 0.6.0-alpha.2 → 0.7.0-beta.0
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 +4 -4
- package/src/base/preflight.css +2 -2
- package/src/components/accordion.css +2 -2
- package/src/components/button.css +326 -112
- package/src/components/checkbox.css +217 -73
- package/src/components/divider.css +181 -17
- package/src/components/drawer.css +8 -4
- package/src/components/dropdown.css +3 -3
- package/src/components/input.css +1 -1
- package/src/components/modal.css +9 -5
- package/src/components/nav.css +4 -4
- package/src/components/popover.css +3 -3
- package/src/components/typography.css +1 -1
- package/src/main.css +1 -1
- package/src/theme/skins/base.css +121 -0
- package/src/theme/skins/darkberry.css +118 -0
- package/src/theme/skins/pinkberry.css +0 -0
- package/src/theme/skins/snowberry.css +118 -0
- package/src/utilities/headings.css +1 -1
- package/src/components/button copy.css +0 -469
- package/src/themes/styles/base.css +0 -42
- package/src/themes/styles/dark.css +0 -36
- package/src/themes/styles/light.css +0 -37
- /package/src/{themes → theme}/animation/slide.css +0 -0
- /package/src/{themes → theme}/animation/wiggle.css +0 -0
- /package/src/{themes → theme}/placement.css +0 -0
- /package/src/{themes → theme}/typography.css +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "frutjam",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0-beta.0",
|
|
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.
|
|
41
|
-
"tailwindcss": "^4.1.
|
|
40
|
+
"@tailwindcss/postcss": "^4.1.4",
|
|
41
|
+
"tailwindcss": "^4.1.4"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"css-loader": "^7.1.2",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"prettier-plugin-tailwindcss": "^0.6.11",
|
|
51
51
|
"string-replace-loader": "^3.1.0",
|
|
52
52
|
"style-loader": "^4.0.0",
|
|
53
|
-
"webpack": "^5.
|
|
53
|
+
"webpack": "^5.99.7",
|
|
54
54
|
"webpack-cli": "^6.0.1",
|
|
55
55
|
"webpack-dev-server": "^5.2.1"
|
|
56
56
|
}
|
package/src/base/preflight.css
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
@import '../
|
|
1
|
+
@import '../theme/skins/base.css';
|
|
2
2
|
@utility accordion {
|
|
3
3
|
@layer components {
|
|
4
|
-
@apply grid divide-y divide-info border border-info cursor-pointer rounded-md;
|
|
4
|
+
@apply grid divide-y divide-info-100 border border-info-100 cursor-pointer rounded-md;
|
|
5
5
|
|
|
6
6
|
&>details {
|
|
7
7
|
@apply text-pretty;
|
|
@@ -1,148 +1,362 @@
|
|
|
1
|
-
@import "../
|
|
2
|
-
@import "../
|
|
1
|
+
@import "../theme/skins/base.css";
|
|
2
|
+
@import "../theme/animation/wiggle.css";
|
|
3
3
|
|
|
4
|
-
@utility btn
|
|
4
|
+
@utility btn-xs {
|
|
5
5
|
@layer components {
|
|
6
|
+
@apply px-3.5 py-1.5 text-xs;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
@utility btn-sm {
|
|
11
|
+
@layer components {
|
|
12
|
+
@apply px-4 py-2 text-sm;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@utility btn-md {
|
|
17
|
+
@layer components {
|
|
18
|
+
@apply px-4.5 py-2.5 text-base;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@utility btn-lg {
|
|
23
|
+
@layer components {
|
|
24
|
+
@apply px-5 py-3 text-base;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@utility btn-xl {
|
|
29
|
+
@layer components {
|
|
30
|
+
@apply px-5.5 py-3.5 text-base;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@utility btn-2xl {
|
|
35
|
+
@layer components {
|
|
36
|
+
@apply px-6 py-4 text-lg;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@utility btn-circle {
|
|
41
|
+
@layer components {
|
|
42
|
+
@apply rounded-full size-auto aspect-square;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@utility btn-square {
|
|
47
|
+
@layer components {
|
|
48
|
+
@apply size-auto aspect-square;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@utility btn-wide {
|
|
53
|
+
@layer components {
|
|
54
|
+
@apply w-full max-w-xs;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@utility btn-block {
|
|
59
|
+
@layer components {
|
|
60
|
+
@apply w-full;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
6
63
|
|
|
7
|
-
|
|
64
|
+
@utility btn-core {
|
|
65
|
+
@layer components {
|
|
66
|
+
@apply btn-md text-shadow-xs/5 relative inline-flex self-start shrink-0 flex-nowrap items-center
|
|
8
67
|
justify-center gap-1.5 text-center align-middle font-medium overflow-hidden
|
|
9
|
-
text-xs transition duration-
|
|
68
|
+
text-xs transition duration-350 ease-in-out leading-normal cursor-pointer box-border;
|
|
10
69
|
|
|
11
|
-
|
|
12
|
-
|
|
70
|
+
color: var(--btn-50);
|
|
71
|
+
border-radius: var(--radius-btn);
|
|
72
|
+
|
|
73
|
+
/* for default btn */
|
|
74
|
+
&:is(.btn) {
|
|
75
|
+
background-color: light-dark(
|
|
76
|
+
var(--btn-100),
|
|
77
|
+
var(--btn-800)
|
|
78
|
+
);
|
|
13
79
|
}
|
|
14
80
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
81
|
+
/* for all btn exclude default btn */
|
|
82
|
+
&:not(.btn) {
|
|
83
|
+
background-color: light-dark(
|
|
84
|
+
var(--btn-600),
|
|
85
|
+
var(--btn-800)
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
&:is(:disabled, [disabled], .btn-disabled) {
|
|
90
|
+
@apply opacity-20 pointer-events-none;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
&:is(input[type="checkbox"], input[type="radio"]) {
|
|
94
|
+
@apply appearance-none;
|
|
95
|
+
|
|
96
|
+
&::after {
|
|
97
|
+
content: attr(aria-label);
|
|
25
98
|
}
|
|
26
99
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
@apply appearance-none;
|
|
30
|
-
|
|
31
|
-
&::after {
|
|
32
|
-
content: attr(aria-label);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
&:checked {
|
|
36
|
-
@apply ring-1 bg-gradient-to-tr via-[--value(--color-*)]/90 isolate;
|
|
37
|
-
}
|
|
100
|
+
&:checked {
|
|
101
|
+
@apply isolate;
|
|
38
102
|
}
|
|
103
|
+
}
|
|
39
104
|
|
|
40
|
-
|
|
41
|
-
&:is(
|
|
42
|
-
@apply bg-
|
|
105
|
+
&:is(.btn-active, :hover) {
|
|
106
|
+
&:is(.btn-link) {
|
|
107
|
+
@apply bg-transparent underline underline-offset-4 cursor-pointer;
|
|
108
|
+
|
|
109
|
+
color: light-dark(
|
|
110
|
+
var(--btn-800),
|
|
111
|
+
var(--btn-500)
|
|
112
|
+
);
|
|
43
113
|
}
|
|
114
|
+
&:not(.btn-link) {
|
|
115
|
+
@apply outline-none;
|
|
44
116
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
117
|
+
/* for default btn */
|
|
118
|
+
&:is(.btn) {
|
|
119
|
+
background-color: light-dark(
|
|
120
|
+
var(--btn-200),
|
|
121
|
+
var(--btn-900)
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
color: light-dark(
|
|
125
|
+
var(--btn-950),
|
|
126
|
+
var(--btn-100)
|
|
127
|
+
);
|
|
52
128
|
}
|
|
53
129
|
|
|
54
|
-
|
|
55
|
-
&:
|
|
56
|
-
|
|
130
|
+
/* for all btn exclude default btn */
|
|
131
|
+
&:not(.btn) {
|
|
132
|
+
background-color: light-dark(
|
|
133
|
+
var(--btn-700),
|
|
134
|
+
var(--btn-900)
|
|
135
|
+
);
|
|
136
|
+
|
|
137
|
+
color: light-dark(
|
|
138
|
+
var(--btn-50),
|
|
139
|
+
var(--btn-100)
|
|
140
|
+
);
|
|
57
141
|
}
|
|
58
142
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
@apply text-[--value(--color-*-fore)] from-[--value(--color-*)] to-[--value(--color-*)] ring-[--value(--color-*)]/50 duration-500;
|
|
63
|
-
}
|
|
64
|
-
&:not(.btn-link) {
|
|
65
|
-
@apply ring-1 bg-gradient-to-tr via-[--value(--color-*)]/90;
|
|
66
|
-
}
|
|
143
|
+
&:not(:disabled, [disabled], .btn-disabled) {
|
|
144
|
+
&::before {
|
|
145
|
+
@apply content-[''] absolute size-full animate-wiggle bg-[radial-gradient(#ffffff33,_#00000000)];
|
|
67
146
|
}
|
|
68
147
|
}
|
|
69
|
-
|
|
70
148
|
}
|
|
149
|
+
}
|
|
71
150
|
|
|
72
|
-
|
|
73
|
-
&:
|
|
74
|
-
@apply
|
|
151
|
+
&:where(.btn-dashed) {
|
|
152
|
+
&:not(.btn-active) {
|
|
153
|
+
@apply bg-transparent outline outline-dashed;
|
|
75
154
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}
|
|
155
|
+
color: light-dark(
|
|
156
|
+
var(--btn-700),
|
|
157
|
+
var(--btn-500)
|
|
158
|
+
);
|
|
81
159
|
}
|
|
160
|
+
}
|
|
82
161
|
|
|
83
|
-
|
|
84
|
-
&:
|
|
85
|
-
@apply
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
162
|
+
&:where(.btn-outline) {
|
|
163
|
+
&:not(.btn-active) {
|
|
164
|
+
@apply bg-transparent outline outline-solid;
|
|
165
|
+
|
|
166
|
+
color: light-dark(
|
|
167
|
+
var(--btn-700),
|
|
168
|
+
var(--btn-500)
|
|
169
|
+
);
|
|
92
170
|
}
|
|
171
|
+
}
|
|
93
172
|
|
|
94
|
-
|
|
95
|
-
&:
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
173
|
+
&:where(.btn-soft) {
|
|
174
|
+
&:not(.btn-active) {
|
|
175
|
+
|
|
176
|
+
background-color: light-dark(
|
|
177
|
+
var(--btn-100),
|
|
178
|
+
color-mix(in oklab,var(--btn-900)10%,transparent)
|
|
179
|
+
);
|
|
180
|
+
|
|
181
|
+
color: light-dark(
|
|
182
|
+
var(--btn-800),
|
|
183
|
+
var(--btn-400)
|
|
184
|
+
);
|
|
102
185
|
}
|
|
103
186
|
}
|
|
104
187
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
188
|
+
&:where(.btn-ghost) {
|
|
189
|
+
&:not(.btn-active) {
|
|
190
|
+
@apply bg-transparent;
|
|
109
191
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}
|
|
115
|
-
&:is(.btn-sm) {
|
|
116
|
-
@apply px-3 py-2 text-sm;
|
|
117
|
-
}
|
|
118
|
-
&:is(.btn-md) {
|
|
119
|
-
@apply px-3.5 py-2.5 text-sm;
|
|
120
|
-
}
|
|
121
|
-
&:is(.btn-lg) {
|
|
122
|
-
@apply px-4 py-3 text-base;
|
|
123
|
-
}
|
|
124
|
-
&:is(.btn-xl) {
|
|
125
|
-
@apply px-4.5 py-3.5 text-base;
|
|
126
|
-
}
|
|
127
|
-
&:is(.btn-2xl) {
|
|
128
|
-
@apply px-5 py-4 text-base;
|
|
192
|
+
color: light-dark(
|
|
193
|
+
var(--btn-600),
|
|
194
|
+
var(--btn-500)
|
|
195
|
+
);
|
|
129
196
|
}
|
|
130
197
|
}
|
|
131
198
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
&:is(.btn-wide) {
|
|
141
|
-
@apply w-full max-w-64;
|
|
142
|
-
}
|
|
143
|
-
&:is(.btn-block) {
|
|
144
|
-
@apply w-full;
|
|
199
|
+
&:where(.btn-link) {
|
|
200
|
+
&:not(.btn-active) {
|
|
201
|
+
@apply bg-transparent;
|
|
202
|
+
|
|
203
|
+
color: light-dark(
|
|
204
|
+
var(--btn-700),
|
|
205
|
+
var(--btn-500)
|
|
206
|
+
);
|
|
145
207
|
}
|
|
146
208
|
}
|
|
147
209
|
}
|
|
148
|
-
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
@utility btn {
|
|
213
|
+
@layer components {
|
|
214
|
+
@apply btn-core;
|
|
215
|
+
}
|
|
216
|
+
@layer theme {
|
|
217
|
+
--btn-50: var(--default-50);
|
|
218
|
+
--btn-100: var(--default-100);
|
|
219
|
+
--btn-200: var(--default-200);
|
|
220
|
+
--btn-300: var(--default-300);
|
|
221
|
+
--btn-400: var(--default-400);
|
|
222
|
+
--btn-500: var(--default-500);
|
|
223
|
+
--btn-600: var(--default-600);
|
|
224
|
+
--btn-700: var(--default-700);
|
|
225
|
+
--btn-800: var(--default-800);
|
|
226
|
+
--btn-900: var(--default-900);
|
|
227
|
+
--btn-950: var(--default-950);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
@utility btn-primary {
|
|
232
|
+
@layer components {
|
|
233
|
+
@apply btn-core;
|
|
234
|
+
}
|
|
235
|
+
@layer theme {
|
|
236
|
+
--btn-50: var(--primary-50);
|
|
237
|
+
--btn-100: var(--primary-100);
|
|
238
|
+
--btn-200: var(--primary-200);
|
|
239
|
+
--btn-300: var(--primary-300);
|
|
240
|
+
--btn-400: var(--primary-400);
|
|
241
|
+
--btn-500: var(--primary-500);
|
|
242
|
+
--btn-600: var(--primary-600);
|
|
243
|
+
--btn-700: var(--primary-700);
|
|
244
|
+
--btn-800: var(--primary-800);
|
|
245
|
+
--btn-900: var(--primary-900);
|
|
246
|
+
--btn-950: var(--primary-950);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
@utility btn-secondary {
|
|
251
|
+
@layer components {
|
|
252
|
+
@apply btn-core;
|
|
253
|
+
}
|
|
254
|
+
@layer theme {
|
|
255
|
+
--btn-50: var(--secondary-50);
|
|
256
|
+
--btn-100: var(--secondary-100);
|
|
257
|
+
--btn-200: var(--secondary-200);
|
|
258
|
+
--btn-300: var(--secondary-300);
|
|
259
|
+
--btn-400: var(--secondary-400);
|
|
260
|
+
--btn-500: var(--secondary-500);
|
|
261
|
+
--btn-600: var(--secondary-600);
|
|
262
|
+
--btn-700: var(--secondary-700);
|
|
263
|
+
--btn-800: var(--secondary-800);
|
|
264
|
+
--btn-900: var(--secondary-900);
|
|
265
|
+
--btn-950: var(--secondary-950);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
@utility btn-accent {
|
|
270
|
+
@layer components {
|
|
271
|
+
@apply btn-core;
|
|
272
|
+
}
|
|
273
|
+
@layer theme {
|
|
274
|
+
--btn-50: var(--accent-50);
|
|
275
|
+
--btn-100: var(--accent-100);
|
|
276
|
+
--btn-200: var(--accent-200);
|
|
277
|
+
--btn-300: var(--accent-300);
|
|
278
|
+
--btn-400: var(--accent-400);
|
|
279
|
+
--btn-500: var(--accent-500);
|
|
280
|
+
--btn-600: var(--accent-600);
|
|
281
|
+
--btn-700: var(--accent-700);
|
|
282
|
+
--btn-800: var(--accent-800);
|
|
283
|
+
--btn-900: var(--accent-900);
|
|
284
|
+
--btn-950: var(--accent-950);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
@utility btn-info {
|
|
289
|
+
@layer components {
|
|
290
|
+
@apply btn-core;
|
|
291
|
+
}
|
|
292
|
+
@layer theme {
|
|
293
|
+
--btn-50: var(--info-50);
|
|
294
|
+
--btn-100: var(--info-100);
|
|
295
|
+
--btn-200: var(--info-200);
|
|
296
|
+
--btn-300: var(--info-300);
|
|
297
|
+
--btn-400: var(--info-400);
|
|
298
|
+
--btn-500: var(--info-500);
|
|
299
|
+
--btn-600: var(--info-600);
|
|
300
|
+
--btn-700: var(--info-700);
|
|
301
|
+
--btn-800: var(--info-800);
|
|
302
|
+
--btn-900: var(--info-900);
|
|
303
|
+
--btn-950: var(--info-950);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
@utility btn-success {
|
|
308
|
+
@layer components {
|
|
309
|
+
@apply btn-core;
|
|
310
|
+
}
|
|
311
|
+
@layer theme {
|
|
312
|
+
--btn-50: var(--success-50);
|
|
313
|
+
--btn-100: var(--success-100);
|
|
314
|
+
--btn-200: var(--success-200);
|
|
315
|
+
--btn-300: var(--success-300);
|
|
316
|
+
--btn-400: var(--success-400);
|
|
317
|
+
--btn-500: var(--success-500);
|
|
318
|
+
--btn-600: var(--success-600);
|
|
319
|
+
--btn-700: var(--success-700);
|
|
320
|
+
--btn-800: var(--success-800);
|
|
321
|
+
--btn-900: var(--success-900);
|
|
322
|
+
--btn-950: var(--success-950);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
@utility btn-warning {
|
|
327
|
+
@layer components {
|
|
328
|
+
@apply btn-core;
|
|
329
|
+
}
|
|
330
|
+
@layer theme {
|
|
331
|
+
--btn-50: var(--warning-50);
|
|
332
|
+
--btn-100: var(--warning-100);
|
|
333
|
+
--btn-200: var(--warning-200);
|
|
334
|
+
--btn-300: var(--warning-300);
|
|
335
|
+
--btn-400: var(--warning-400);
|
|
336
|
+
--btn-500: var(--warning-500);
|
|
337
|
+
--btn-600: var(--warning-600);
|
|
338
|
+
--btn-700: var(--warning-700);
|
|
339
|
+
--btn-800: var(--warning-800);
|
|
340
|
+
--btn-900: var(--warning-900);
|
|
341
|
+
--btn-950: var(--warning-950);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
@utility btn-error {
|
|
346
|
+
@layer components {
|
|
347
|
+
@apply btn-core;
|
|
348
|
+
}
|
|
349
|
+
@layer theme {
|
|
350
|
+
--btn-50: var(--error-50);
|
|
351
|
+
--btn-100: var(--error-100);
|
|
352
|
+
--btn-200: var(--error-200);
|
|
353
|
+
--btn-300: var(--error-300);
|
|
354
|
+
--btn-400: var(--error-400);
|
|
355
|
+
--btn-500: var(--error-500);
|
|
356
|
+
--btn-600: var(--error-600);
|
|
357
|
+
--btn-700: var(--error-700);
|
|
358
|
+
--btn-800: var(--error-800);
|
|
359
|
+
--btn-900: var(--error-900);
|
|
360
|
+
--btn-950: var(--error-950);
|
|
361
|
+
}
|
|
362
|
+
}
|