frutjam 1.0.0-beta.0 → 1.0.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.
Files changed (39) hide show
  1. package/README.md +7 -4
  2. package/dist/frutjam.local.css +2 -0
  3. package/dist/frutjam.min.css +5 -0
  4. package/dist/frutjam.min.css.map +1 -0
  5. package/dist/frutjam.min.js +3 -0
  6. package/dist/frutjam.min.js.LICENSE.txt +1 -0
  7. package/dist/frutjam.min.js.map +1 -0
  8. package/dist/frutjam.safelist.local.css +1 -0
  9. package/package.json +56 -24
  10. package/src/base/preflight.css +0 -7
  11. package/src/components/accordion.css +0 -44
  12. package/src/components/breadcrumb.css +0 -72
  13. package/src/components/button.css +0 -370
  14. package/src/components/card.css +0 -54
  15. package/src/components/checkbox.css +0 -221
  16. package/src/components/container.css +0 -52
  17. package/src/components/divider.css +0 -220
  18. package/src/components/drawer.css +0 -98
  19. package/src/components/dropdown.css +0 -122
  20. package/src/components/header.css +0 -22
  21. package/src/components/input.css +0 -283
  22. package/src/components/modal.css +0 -68
  23. package/src/components/nav.css +0 -35
  24. package/src/components/popover.css +0 -99
  25. package/src/components/sidebar.css +0 -9
  26. package/src/components/typography.css +0 -6
  27. package/src/main.css +0 -20
  28. package/src/main.js +0 -1
  29. package/src/theme/animation/slide.css +0 -6
  30. package/src/theme/animation/wiggle.css +0 -14
  31. package/src/theme/jams/base.css +0 -123
  32. package/src/theme/jams/darkberry.css +0 -133
  33. package/src/theme/jams/pinkberry.css +0 -0
  34. package/src/theme/jams/snowberry.css +0 -138
  35. package/src/theme/placement.css +0 -8
  36. package/src/theme/typography.css +0 -8
  37. package/src/utilities/headings.css +0 -22
  38. package/src/utilities/para.css +0 -22
  39. package/src/utilities/surface.css +0 -64
@@ -1,370 +0,0 @@
1
- @import "../theme/jams/base.css";
2
- @import "../theme/animation/wiggle.css";
3
-
4
- @utility btn-size {
5
- padding-inline: var(--btn-inline);
6
- padding-block: var(--btn-block);
7
- font-size: var(--btn-text-size);
8
- }
9
-
10
- @utility btn-xs {
11
- --btn-inline: 0.875rem;
12
- --btn-block: 0.375rem;
13
- --btn-text-size: 0.75rem;
14
- @apply btn-size;
15
- }
16
-
17
- @utility btn-sm {
18
- --btn-inline: 1rem;
19
- --btn-block: 0.5rem;
20
- --btn-text-size: 0.875rem;
21
- @apply btn-size;
22
- }
23
-
24
- @utility btn-md {
25
- --btn-inline: 1.125rem;
26
- --btn-block: 0.625rem;
27
- --btn-text-size: 1rem;
28
- @apply btn-size;
29
- }
30
-
31
- @utility btn-lg {
32
- --btn-inline: 1.25rem;
33
- --btn-block: 0.75rem;
34
- --btn-text-size: 1.125rem;
35
- @apply btn-size;
36
- }
37
-
38
- @utility btn-xl {
39
- --btn-inline: 1.375rem;
40
- --btn-block: 0.875rem;
41
- --btn-text-size: 1.25rem;
42
- @apply btn-size;
43
- }
44
-
45
- @utility btn-2xl {
46
- --btn-inline: 1.5rem;
47
- --btn-block: 1rem;
48
- --btn-text-size: 1.5rem;
49
- @apply btn-size;
50
- }
51
-
52
- @utility btn-square {
53
- padding-inline: var(--btn-block);
54
- padding-block: var(--btn-block);
55
- }
56
-
57
- @utility btn-circle {
58
- @apply btn-md rounded-full;
59
- padding-inline: var(--btn-block);
60
- padding-block: var(--btn-block);
61
- }
62
-
63
- @utility btn-wide {
64
- @apply w-full max-w-xs;
65
- }
66
-
67
- @utility btn-block {
68
- @apply w-full block;
69
- }
70
-
71
- @utility btn-link-active {
72
- background: transparent;
73
- color: light-dark(var(--btn-800), var(--btn-500));
74
- text-decoration: underline;
75
- text-underline-offset: 4px;
76
- cursor: pointer;
77
- }
78
-
79
- @utility btn-ghost-active {
80
- /* for default btn */
81
- &:not(
82
- .btn-primary,
83
- .btn-secondary,
84
- .btn-accent,
85
- .btn-info,
86
- .btn-success,
87
- .btn-warning,
88
- .btn-error
89
- ) {
90
- background-color: light-dark(var(--btn-200), var(--btn-900));
91
- color: light-dark(var(--btn-950), var(--btn-100));
92
- }
93
-
94
- /* for all btn exclude default btn */
95
- &:is(
96
- .btn-primary,
97
- .btn-secondary,
98
- .btn-accent,
99
- .btn-info,
100
- .btn-success,
101
- .btn-warning,
102
- .btn-error
103
- ) {
104
- background-color: light-dark(var(--btn-700), var(--btn-900));
105
- color: light-dark(var(--btn-50), var(--btn-100));
106
- }
107
- }
108
-
109
- @utility btn-active {
110
- &:is(.btn-link) {
111
- @apply btn-link-active;
112
- }
113
- &:is(.btn-ghost) {
114
- @apply btn-ghost-active;
115
- }
116
- &:not(.btn-link, .btn-ghost) {
117
- outline-style: none;
118
-
119
- /* for default btn */
120
- &:not(
121
- .btn-primary,
122
- .btn-secondary,
123
- .btn-accent,
124
- .btn-info,
125
- .btn-success,
126
- .btn-warning,
127
- .btn-error
128
- ) {
129
- background-color: light-dark(var(--btn-300), var(--btn-900));
130
- color: light-dark(var(--btn-950), var(--btn-100));
131
- }
132
-
133
- /* for all btn exclude default btn */
134
- &:is(
135
- .btn-primary,
136
- .btn-secondary,
137
- .btn-accent,
138
- .btn-info,
139
- .btn-success,
140
- .btn-warning,
141
- .btn-error
142
- ) {
143
- background-color: light-dark(var(--btn-800), var(--btn-800));
144
- color: light-dark(var(--btn-50), var(--btn-100));
145
- }
146
- }
147
- }
148
-
149
- @utility btn-dashed {
150
- &:not(.btn-active) {
151
- background: transparent;
152
- outline: 1px dashed light-dark(var(--btn-500), var(--btn-700));
153
- color: light-dark(var(--btn-700), var(--btn-500));
154
- }
155
- }
156
-
157
- @utility btn-outline {
158
- &:not(.btn-active) {
159
- background: transparent;
160
- outline: 1px solid light-dark(var(--btn-500), var(--btn-800));
161
- color: light-dark(var(--btn-800), var(--btn-200));
162
- }
163
- }
164
-
165
- @utility btn-soft {
166
- &:not(.btn-active) {
167
- background-color: light-dark(
168
- var(--btn-100),
169
- color-mix(in oklab, var(--btn-900) 10%, transparent)
170
- );
171
- color: light-dark(var(--btn-800), var(--btn-400));
172
- }
173
- }
174
-
175
- @utility btn-ghost {
176
- &:not(.btn-active) {
177
- background: transparent;
178
- color: light-dark(var(--btn-600), var(--btn-300));
179
- }
180
- }
181
-
182
- @utility btn-link {
183
- &:not(.btn-active) {
184
- background: transparent;
185
- color: light-dark(var(--btn-700), var(--btn-400));
186
- }
187
- }
188
-
189
- @utility btn {
190
- @apply btn-md text-shadow-xs/5 gap-1.5 leading-normal;
191
- transition:
192
- translate 0.2s ease-out,
193
- visibility 0.2s allow-discrete,
194
- background-color 0.2s ease-out,
195
- opacity 0.1s ease-out;
196
- position: relative;
197
- display: inline-flex;
198
- flex-shrink: 0;
199
- align-items: center;
200
- justify-content: center;
201
- align-self: flex-start;
202
- flex-wrap: nowrap;
203
- vertical-align: middle;
204
- font-weight: 500;
205
- text-align: center;
206
- border-radius: var(--radius-btn);
207
- overflow: hidden;
208
- cursor: pointer;
209
- box-sizing: border-box;
210
-
211
- /* for default btn */
212
- &:not(
213
- .btn-primary,
214
- .btn-secondary,
215
- .btn-accent,
216
- .btn-info,
217
- .btn-success,
218
- .btn-warning,
219
- .btn-error
220
- ) {
221
- background-color: light-dark(var(--btn-200), var(--btn-800));
222
- color: light-dark(var(--btn-900), var(--btn-50));
223
- }
224
-
225
- /* for all btn exclude default btn */
226
- &:is(
227
- .btn-primary,
228
- .btn-secondary,
229
- .btn-accent,
230
- .btn-info,
231
- .btn-success,
232
- .btn-warning,
233
- .btn-error
234
- ) {
235
- background-color: light-dark(var(--btn-700), var(--btn-700));
236
- color: var(--btn-50);
237
- }
238
-
239
- &:is(:disabled, [disabled], .btn-disabled) {
240
- @apply opacity-20 cursor-not-allowed pointer-events-none;
241
- }
242
-
243
- &:is(input[type="checkbox"], input[type="radio"]) {
244
- @apply appearance-none;
245
-
246
- &::after {
247
- content: attr(aria-label);
248
- }
249
-
250
- &:checked {
251
- @apply isolate;
252
- }
253
- }
254
-
255
- @media (hover: hover) {
256
- &:is(:hover) {
257
- @apply btn-active;
258
- }
259
- }
260
-
261
- --btn-50: var(--default-50);
262
- --btn-100: var(--default-100);
263
- --btn-200: var(--default-200);
264
- --btn-300: var(--default-300);
265
- --btn-400: var(--default-400);
266
- --btn-500: var(--default-500);
267
- --btn-600: var(--default-600);
268
- --btn-700: var(--default-700);
269
- --btn-800: var(--default-800);
270
- --btn-900: var(--default-900);
271
- --btn-950: var(--default-950);
272
- }
273
-
274
- @utility btn-primary {
275
- --btn-50: var(--primary-50);
276
- --btn-100: var(--primary-100);
277
- --btn-200: var(--primary-200);
278
- --btn-300: var(--primary-300);
279
- --btn-400: var(--primary-400);
280
- --btn-500: var(--primary-500);
281
- --btn-600: var(--primary-600);
282
- --btn-700: var(--primary-700);
283
- --btn-800: var(--primary-800);
284
- --btn-900: var(--primary-900);
285
- --btn-950: var(--primary-950);
286
- }
287
-
288
- @utility btn-secondary {
289
- --btn-50: var(--secondary-50);
290
- --btn-100: var(--secondary-100);
291
- --btn-200: var(--secondary-200);
292
- --btn-300: var(--secondary-300);
293
- --btn-400: var(--secondary-400);
294
- --btn-500: var(--secondary-500);
295
- --btn-600: var(--secondary-600);
296
- --btn-700: var(--secondary-700);
297
- --btn-800: var(--secondary-800);
298
- --btn-900: var(--secondary-900);
299
- --btn-950: var(--secondary-950);
300
- }
301
-
302
- @utility btn-accent {
303
- --btn-50: var(--accent-50);
304
- --btn-100: var(--accent-100);
305
- --btn-200: var(--accent-200);
306
- --btn-300: var(--accent-300);
307
- --btn-400: var(--accent-400);
308
- --btn-500: var(--accent-500);
309
- --btn-600: var(--accent-600);
310
- --btn-700: var(--accent-700);
311
- --btn-800: var(--accent-800);
312
- --btn-900: var(--accent-900);
313
- --btn-950: var(--accent-950);
314
- }
315
-
316
- @utility btn-info {
317
- --btn-50: var(--info-50);
318
- --btn-100: var(--info-100);
319
- --btn-200: var(--info-200);
320
- --btn-300: var(--info-300);
321
- --btn-400: var(--info-400);
322
- --btn-500: var(--info-500);
323
- --btn-600: var(--info-600);
324
- --btn-700: var(--info-700);
325
- --btn-800: var(--info-800);
326
- --btn-900: var(--info-900);
327
- --btn-950: var(--info-950);
328
- }
329
-
330
- @utility btn-success {
331
- --btn-50: var(--success-50);
332
- --btn-100: var(--success-100);
333
- --btn-200: var(--success-200);
334
- --btn-300: var(--success-300);
335
- --btn-400: var(--success-400);
336
- --btn-500: var(--success-500);
337
- --btn-600: var(--success-600);
338
- --btn-700: var(--success-700);
339
- --btn-800: var(--success-800);
340
- --btn-900: var(--success-900);
341
- --btn-950: var(--success-950);
342
- }
343
-
344
- @utility btn-warning {
345
- --btn-50: var(--warning-50);
346
- --btn-100: var(--warning-100);
347
- --btn-200: var(--warning-200);
348
- --btn-300: var(--warning-300);
349
- --btn-400: var(--warning-400);
350
- --btn-500: var(--warning-500);
351
- --btn-600: var(--warning-600);
352
- --btn-700: var(--warning-700);
353
- --btn-800: var(--warning-800);
354
- --btn-900: var(--warning-900);
355
- --btn-950: var(--warning-950);
356
- }
357
-
358
- @utility btn-error {
359
- --btn-50: var(--error-50);
360
- --btn-100: var(--error-100);
361
- --btn-200: var(--error-200);
362
- --btn-300: var(--error-300);
363
- --btn-400: var(--error-400);
364
- --btn-500: var(--error-500);
365
- --btn-600: var(--error-600);
366
- --btn-700: var(--error-700);
367
- --btn-800: var(--error-800);
368
- --btn-900: var(--error-900);
369
- --btn-950: var(--error-950);
370
- }
@@ -1,54 +0,0 @@
1
- @utility card-outline {
2
- border: 1px solid light-dark(
3
- var(--core-200),
4
- var(--core-900)
5
- );
6
- }
7
-
8
- @utility card-dashed {
9
- border: 1px dashed light-dark(
10
- var(--core-200),
11
- var(--core-900)
12
- );
13
- }
14
-
15
- /* card size */
16
-
17
- @utility card {
18
- @apply relative flex flex-col;
19
- border-radius: var(--radius-card);
20
- overflow:hidden;
21
- background: light-dark(
22
- var(--core-50),
23
- var(--core-900)
24
- );
25
-
26
- :where(figure:first-child) {
27
- overflow: hidden;
28
- border-start-start-radius: inherit;
29
- border-start-end-radius: inherit;
30
- border-end-start-radius: unset;
31
- border-end-end-radius: unset;
32
- }
33
-
34
- :where(figure:last-child) {
35
- overflow: hidden;
36
- border-start-start-radius: unset;
37
- border-start-end-radius: unset;
38
- border-end-start-radius: inherit;
39
- border-end-end-radius: inherit;
40
- }
41
- }
42
-
43
- @utility card-body {
44
- @apply flex flex-auto flex-col gap-2;
45
- padding: 1.5rem;
46
-
47
- :where(p){
48
- @apply text-base grow;
49
- }
50
- }
51
-
52
- @utility card-title {
53
- @apply flex items-center gap-2 font-semibold text-lg;
54
- }
@@ -1,221 +0,0 @@
1
- @import "../theme/jams/base.css";
2
-
3
- @utility checkbox-xs {
4
- @layer components {
5
- @apply p-0.75 size-3;
6
- }
7
- }
8
-
9
- @utility checkbox-sm {
10
- @layer components {
11
- @apply p-1 size-4;
12
- }
13
- }
14
-
15
- @utility checkbox-md {
16
- @layer components {
17
- @apply p-1.25 size-5;
18
- }
19
- }
20
-
21
- @utility checkbox-lg {
22
- @layer components {
23
- @apply p-1.5 size-6;
24
- }
25
- }
26
-
27
- @utility checkbox-xl {
28
- @layer components {
29
- @apply p-1.75 size-7;
30
- }
31
- }
32
-
33
- @utility checkbox-2xl {
34
- @layer components {
35
- @apply p-2 size-8;
36
- }
37
- }
38
-
39
- @utility checkbox-circle {
40
- @layer components {
41
- @apply rounded-full aspect-square;
42
- }
43
- }
44
-
45
- @utility checkbox-square {
46
- @layer components {
47
- @apply rounded-[var(--radius-checkbox)] aspect-square;
48
- }
49
- }
50
-
51
- @utility checkbox {
52
- @apply relative shrink-0 cursor-pointer appearance-none align-middle shadow ring duration-350 checkbox-md;
53
-
54
- --tw-ring-color: light-dark(
55
- var(--checkbox-300),
56
- color-mix(in oklab, var(--checkbox-100) 16%, transparent)
57
- );
58
-
59
- background-color: light-dark(
60
- var(--checkbox-100),
61
- color-mix(in oklab, var(--checkbox-600) 15%, transparent)
62
- );
63
-
64
- color: light-dark(var(--checkbox-700), var(--checkbox-200));
65
-
66
- border-radius: var(--radius-checkbox);
67
-
68
- &::before {
69
- @apply block size-full rotate-45 bg-current opacity-0 content-none transition-all;
70
- clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 0, 70% 0, 70% 100%);
71
- font-size: 1rem;
72
- line-height: 0.75;
73
- }
74
-
75
- &:focus-visible {
76
- outline: 2px solid var(--checkbox-700, currentColor);
77
- outline-offset: 2px;
78
- }
79
-
80
- &:checked,
81
- &[aria-checked="true"] {
82
- @apply shadow-2xl;
83
- background-color: light-dark(var(--checkbox-200), var(--checkbox-600));
84
- &::before {
85
- clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 0, 70% 0, 70% 100%);
86
- @apply opacity-100 content-['✔︎'];
87
- @media (forced-colors: active) {
88
- @apply rotate-0 bg-transparent content-['✔︎'] [clip-path:none];
89
- }
90
- }
91
- }
92
-
93
- &:indeterminate {
94
- &:before {
95
- @apply rotate-0 opacity-100;
96
- translate: 0 -35%;
97
- clip-path: polygon(
98
- 20% 100%,
99
- 20% 80%,
100
- 50% 80%,
101
- 50% 80%,
102
- 80% 80%,
103
- 80% 100%
104
- );
105
- }
106
- }
107
-
108
- &:disabled {
109
- @apply cursor-not-allowed opacity-20;
110
- }
111
-
112
- --checkbox-50: var(--default-50);
113
- --checkbox-100: var(--default-100);
114
- --checkbox-200: var(--default-200);
115
- --checkbox-300: var(--default-300);
116
- --checkbox-400: var(--default-400);
117
- --checkbox-500: var(--default-500);
118
- --checkbox-600: var(--default-600);
119
- --checkbox-700: var(--default-700);
120
- --checkbox-800: var(--default-800);
121
- --checkbox-900: var(--default-900);
122
- --checkbox-950: var(--default-950);
123
- }
124
-
125
- @utility checkbox-primary {
126
- --checkbox-50: var(--primary-50);
127
- --checkbox-100: var(--primary-100);
128
- --checkbox-200: var(--primary-200);
129
- --checkbox-300: var(--primary-300);
130
- --checkbox-400: var(--primary-400);
131
- --checkbox-500: var(--primary-500);
132
- --checkbox-600: var(--primary-600);
133
- --checkbox-700: var(--primary-700);
134
- --checkbox-800: var(--primary-800);
135
- --checkbox-900: var(--primary-900);
136
- --checkbox-950: var(--primary-950);
137
- }
138
-
139
- @utility checkbox-secondary {
140
- --checkbox-50: var(--secondary-50);
141
- --checkbox-100: var(--secondary-100);
142
- --checkbox-200: var(--secondary-200);
143
- --checkbox-300: var(--secondary-300);
144
- --checkbox-400: var(--secondary-400);
145
- --checkbox-500: var(--secondary-500);
146
- --checkbox-600: var(--secondary-600);
147
- --checkbox-700: var(--secondary-700);
148
- --checkbox-800: var(--secondary-800);
149
- --checkbox-900: var(--secondary-900);
150
- --checkbox-950: var(--secondary-950);
151
- }
152
-
153
- @utility checkbox-accent {
154
- --checkbox-50: var(--accent-50);
155
- --checkbox-100: var(--accent-100);
156
- --checkbox-200: var(--accent-200);
157
- --checkbox-300: var(--accent-300);
158
- --checkbox-400: var(--accent-400);
159
- --checkbox-500: var(--accent-500);
160
- --checkbox-600: var(--accent-600);
161
- --checkbox-700: var(--accent-700);
162
- --checkbox-800: var(--accent-800);
163
- --checkbox-900: var(--accent-900);
164
- --checkbox-950: var(--accent-950);
165
- }
166
-
167
- @utility checkbox-info {
168
- --checkbox-50: var(--info-50);
169
- --checkbox-100: var(--info-100);
170
- --checkbox-200: var(--info-200);
171
- --checkbox-300: var(--info-300);
172
- --checkbox-400: var(--info-400);
173
- --checkbox-500: var(--info-500);
174
- --checkbox-600: var(--info-600);
175
- --checkbox-700: var(--info-700);
176
- --checkbox-800: var(--info-800);
177
- --checkbox-900: var(--info-900);
178
- --checkbox-950: var(--info-950);
179
- }
180
-
181
- @utility checkbox-success {
182
- --checkbox-50: var(--success-50);
183
- --checkbox-100: var(--success-100);
184
- --checkbox-200: var(--success-200);
185
- --checkbox-300: var(--success-300);
186
- --checkbox-400: var(--success-400);
187
- --checkbox-500: var(--success-500);
188
- --checkbox-600: var(--success-600);
189
- --checkbox-700: var(--success-700);
190
- --checkbox-800: var(--success-800);
191
- --checkbox-900: var(--success-900);
192
- --checkbox-950: var(--success-950);
193
- }
194
-
195
- @utility checkbox-warning {
196
- --checkbox-50: var(--warning-50);
197
- --checkbox-100: var(--warning-100);
198
- --checkbox-200: var(--warning-200);
199
- --checkbox-300: var(--warning-300);
200
- --checkbox-400: var(--warning-400);
201
- --checkbox-500: var(--warning-500);
202
- --checkbox-600: var(--warning-600);
203
- --checkbox-700: var(--warning-700);
204
- --checkbox-800: var(--warning-800);
205
- --checkbox-900: var(--warning-900);
206
- --checkbox-950: var(--warning-950);
207
- }
208
-
209
- @utility checkbox-error {
210
- --checkbox-50: var(--error-50);
211
- --checkbox-100: var(--error-100);
212
- --checkbox-200: var(--error-200);
213
- --checkbox-300: var(--error-300);
214
- --checkbox-400: var(--error-400);
215
- --checkbox-500: var(--error-500);
216
- --checkbox-600: var(--error-600);
217
- --checkbox-700: var(--error-700);
218
- --checkbox-800: var(--error-800);
219
- --checkbox-900: var(--error-900);
220
- --checkbox-950: var(--error-950);
221
- }
@@ -1,52 +0,0 @@
1
- @utility container {
2
- margin-inline: auto;
3
- padding-inline: 1rem;
4
- @media (width >= 640px) { /* sm */
5
- padding-inline: 2rem;
6
- }
7
- @media (width >= 1024px) { /* lg */
8
- padding-inline: 4rem;
9
- }
10
- }
11
-
12
- @utility container-xs {
13
- max-width: 320px;
14
- margin-inline: auto;
15
- padding-inline: 1rem;
16
- }
17
- @utility container-sm {
18
- max-width: 640px;
19
- margin-inline: auto;
20
- padding-inline: 1rem;
21
- }
22
- @utility container-md {
23
- max-width: 768px;
24
- margin-inline: auto;
25
- padding-inline: 1rem;
26
- }
27
-
28
- @utility container-lg {
29
- max-width: 1024px;
30
- margin-inline: auto;
31
- padding-inline: 1rem;
32
- }
33
-
34
- @utility container-xl {
35
- max-width: 1280px;
36
- margin-inline: auto;
37
- padding-inline: 1rem;
38
- }
39
-
40
- @utility container-2xl {
41
- max-width: 1536px;
42
- margin-inline: auto;
43
- padding-inline: 1rem;
44
- }
45
-
46
- @utility container-full {
47
- width: 100vw;
48
- max-width: 100vw;
49
- margin-inline: auto;
50
- padding-inline: 1rem;
51
- box-sizing: border-box;
52
- }