frutjam 1.3.0-beta.0 → 1.3.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 (40) hide show
  1. package/README.md +34 -20
  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 +60 -28
  10. package/src/base/preflight.css +0 -7
  11. package/src/components/accordion.css +0 -63
  12. package/src/components/badge.css +0 -228
  13. package/src/components/breadcrumb.css +0 -90
  14. package/src/components/button.css +0 -380
  15. package/src/components/card.css +0 -66
  16. package/src/components/checkbox.css +0 -285
  17. package/src/components/container.css +0 -52
  18. package/src/components/divider.css +0 -229
  19. package/src/components/drawer.css +0 -158
  20. package/src/components/dropdown.css +0 -122
  21. package/src/components/header.css +0 -26
  22. package/src/components/input.css +0 -340
  23. package/src/components/modal.css +0 -129
  24. package/src/components/nav.css +0 -36
  25. package/src/components/popover.css +0 -140
  26. package/src/components/sidebar.css +0 -22
  27. package/src/components/typography.css +0 -7
  28. package/src/main.css +0 -21
  29. package/src/main.js +0 -1
  30. package/src/theme/animation/slide.css +0 -6
  31. package/src/theme/animation/wiggle.css +0 -14
  32. package/src/theme/jams/base.css +0 -123
  33. package/src/theme/jams/darkberry.css +0 -134
  34. package/src/theme/jams/pinkberry.css +0 -0
  35. package/src/theme/jams/snowberry.css +0 -139
  36. package/src/theme/placement.css +0 -8
  37. package/src/theme/typography.css +0 -8
  38. package/src/utilities/headings.css +0 -22
  39. package/src/utilities/para.css +0 -22
  40. package/src/utilities/surface.css +0 -64
@@ -1,66 +0,0 @@
1
- @import "../theme/jams/base.css";
2
-
3
- @utility card-outline {
4
- border: 1px solid light-dark(
5
- var(--core-200),
6
- var(--core-950)
7
- );
8
- }
9
-
10
- @utility card-dashed {
11
- border: 1px dashed light-dark(
12
- var(--core-200),
13
- var(--core-950)
14
- );
15
- }
16
-
17
- /* card size */
18
-
19
- @utility card {
20
- position: relative;
21
- display: flex;
22
- flex-direction: column;
23
- border-radius: var(--radius-card);
24
- overflow:hidden;
25
- background-color: light-dark(
26
- var(--core-0),
27
- var(--core-1000)
28
- );
29
-
30
- :where(figure:first-child) {
31
- overflow: hidden;
32
- border-start-start-radius: inherit;
33
- border-start-end-radius: inherit;
34
- border-end-start-radius: unset;
35
- border-end-end-radius: unset;
36
- }
37
-
38
- :where(figure:last-child) {
39
- overflow: hidden;
40
- border-start-start-radius: unset;
41
- border-start-end-radius: unset;
42
- border-end-start-radius: inherit;
43
- border-end-end-radius: inherit;
44
- }
45
- }
46
-
47
- @utility card-body {
48
- display: flex;
49
- gap: 0.5rem;
50
- flex: auto;
51
- flex-direction: column;
52
- padding: 1.5rem;
53
-
54
- :where(p){
55
- flex-grow: 1;
56
- font-size: 1rem;
57
- }
58
- }
59
-
60
- @utility card-title {
61
- display: flex;
62
- align-items: center;
63
- gap: 0.5rem;
64
- font-weight: 600;
65
- font-size: 1.125rem;
66
- }
@@ -1,285 +0,0 @@
1
- @import "../theme/jams/base.css";
2
-
3
- @utility checkbox-xs {
4
- padding: 0.1875rem;
5
- width: 0.75rem;
6
- height: 0.75rem;
7
- }
8
-
9
- @utility checkbox-sm {
10
- padding: 0.25rem;
11
- width: 1rem;
12
- height: 1rem;
13
- }
14
-
15
- @utility checkbox-md {
16
- padding: 0.3125rem;
17
- width: 1.25rem;
18
- height: 1.25rem;
19
- }
20
-
21
- @utility checkbox-lg {
22
- padding: 0.375rem;
23
- width: 1.5rem;
24
- height: 1.5rem;
25
- }
26
-
27
- @utility checkbox-xl {
28
- padding: 0.4375rem;
29
- width: 1.75rem;
30
- height: 1.75rem;
31
- }
32
-
33
- @utility checkbox-2xl {
34
- padding: 0.5rem;
35
- width: 2rem;
36
- height: 2rem;
37
- }
38
-
39
- @utility checkbox-circle {
40
- border-radius: calc(infinity * 1px);
41
- aspect-ratio: 1 / 1;
42
- }
43
-
44
- @utility checkbox-square {
45
- border-radius: var(--radius-checkbox);
46
- aspect-ratio: 1 / 1;
47
- }
48
-
49
- @utility checkbox {
50
- @apply checkbox-md;
51
- /* box-shadow: light-dark(
52
- var(--core-100),
53
- var(--core-900)
54
- ) 0px 1px 1px; */
55
- position: relative;
56
- transition-duration: 350ms;
57
- flex-shrink: 0;
58
- cursor: pointer;
59
- appearance: none;
60
- vertical-align: middle;
61
-
62
- box-shadow: 0 0 0 0px var(--checkbox-100), 0 0 0 calc(1px + 0px) light-dark(var(--checkbox-300), var(--checkbox-800)), 0 0 var(--checkbox-100);
63
- /* border: 1.6px solid var(--checkbox-100); */
64
- /* outline: 1px solid light-dark(
65
- var(--checkbox-400),
66
- var(--checkbox-700)
67
- ); */
68
-
69
- background-color: light-dark(
70
- var(--checkbox-100),
71
- color-mix(in oklab, var(--checkbox-600) 15%, transparent)
72
- );
73
-
74
-
75
- /* &:not(
76
- .checkbox-primary,
77
- .checkbox-secondary,
78
- .checkbox-accent,
79
- .checkbox-info,
80
- .checkbox-success,
81
- .checkbox-warning,
82
- .checkbox-error
83
- ){
84
- outline: 1px solid light-dark(
85
- var(--checkbox-400),
86
- var(--checkbox-700)
87
- );
88
- border: 0.5px solid light-dark(
89
- var(--checkbox-50),
90
- var(--checkbox-900)
91
- );
92
- }
93
-
94
- &:is(
95
- .checkbox-primary,
96
- .checkbox-secondary,
97
- .checkbox-accent,
98
- .checkbox-info,
99
- .checkbox-success,
100
- .checkbox-warning,
101
- .checkbox-error
102
- ){
103
- outline: 1px solid var(--checkbox-700);
104
- border: 0.5px solid light-dark(
105
- var(--checkbox-50),
106
- var(--checkbox-900)
107
- );
108
- } */
109
-
110
-
111
- /* background-color: transparent; */
112
- /* color: light-dark(var(--checkbox-700), var(--checkbox-200)); */
113
- color: light-dark(var(--checkbox-700), var(--checkbox-200));
114
- border-radius: var(--radius-checkbox);
115
-
116
- &::before {
117
- content: none;
118
- opacity: 0%;
119
- background-color: currentcolor;
120
- transform: rotate(45deg);
121
- transition: transform 300ms, background-color 100ms;
122
- display: block;
123
- width: 100%;
124
- height: 100%;
125
- clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 0, 70% 0, 70% 100%);
126
- font-size: 1rem;
127
- line-height: 0.75;
128
- }
129
-
130
- &:focus-visible {
131
- outline: 1px solid var(--checkbox-700, currentColor);
132
- outline-offset: 2px;
133
- }
134
-
135
- &:checked,
136
- &[aria-checked="true"] {
137
- box-shadow: 0 0 0 0px var(--checkbox-100), 0 0 0 calc(1px + 0px) light-dark(var(--checkbox-500), var(--checkbox-700)), 0 0 var(--checkbox-100);
138
- background-color: light-dark(var(--checkbox-300), var(--checkbox-600));
139
- transition: transform 300ms, background-color 100ms;
140
-
141
- &::before {
142
- content: '✔︎';
143
- opacity: 100%;
144
- }
145
-
146
- @media (forced-colors: active) {
147
- &:before {
148
- content: '✔︎';
149
- transform: rotate(0deg);
150
- background-color: light-dark(var(--checkbox-200), var(--checkbox-600));
151
- clip-path:none;
152
- }
153
- }
154
- }
155
-
156
- &:indeterminate {
157
- &:before {
158
- opacity: 100%;
159
- transform: rotate(0deg) translate(0, -35%);
160
- clip-path: polygon(
161
- 20% 100%,
162
- 20% 80%,
163
- 50% 80%,
164
- 50% 80%,
165
- 80% 80%,
166
- 80% 100%
167
- );
168
- }
169
- }
170
-
171
- &:disabled {
172
- cursor: not-allowed;
173
- opacity: 20%;
174
- }
175
-
176
- --checkbox-50: var(--default-50);
177
- --checkbox-100: var(--default-100);
178
- --checkbox-200: var(--default-200);
179
- --checkbox-300: var(--default-300);
180
- --checkbox-400: var(--default-400);
181
- --checkbox-500: var(--default-500);
182
- --checkbox-600: var(--default-600);
183
- --checkbox-700: var(--default-700);
184
- --checkbox-800: var(--default-800);
185
- --checkbox-900: var(--default-900);
186
- --checkbox-950: var(--default-950);
187
- }
188
-
189
- @utility checkbox-primary {
190
- --checkbox-50: var(--primary-50);
191
- --checkbox-100: var(--primary-100);
192
- --checkbox-200: var(--primary-200);
193
- --checkbox-300: var(--primary-300);
194
- --checkbox-400: var(--primary-400);
195
- --checkbox-500: var(--primary-500);
196
- --checkbox-600: var(--primary-600);
197
- --checkbox-700: var(--primary-700);
198
- --checkbox-800: var(--primary-800);
199
- --checkbox-900: var(--primary-900);
200
- --checkbox-950: var(--primary-950);
201
- }
202
-
203
- @utility checkbox-secondary {
204
- --checkbox-50: var(--secondary-50);
205
- --checkbox-100: var(--secondary-100);
206
- --checkbox-200: var(--secondary-200);
207
- --checkbox-300: var(--secondary-300);
208
- --checkbox-400: var(--secondary-400);
209
- --checkbox-500: var(--secondary-500);
210
- --checkbox-600: var(--secondary-600);
211
- --checkbox-700: var(--secondary-700);
212
- --checkbox-800: var(--secondary-800);
213
- --checkbox-900: var(--secondary-900);
214
- --checkbox-950: var(--secondary-950);
215
- }
216
-
217
- @utility checkbox-accent {
218
- --checkbox-50: var(--accent-50);
219
- --checkbox-100: var(--accent-100);
220
- --checkbox-200: var(--accent-200);
221
- --checkbox-300: var(--accent-300);
222
- --checkbox-400: var(--accent-400);
223
- --checkbox-500: var(--accent-500);
224
- --checkbox-600: var(--accent-600);
225
- --checkbox-700: var(--accent-700);
226
- --checkbox-800: var(--accent-800);
227
- --checkbox-900: var(--accent-900);
228
- --checkbox-950: var(--accent-950);
229
- }
230
-
231
- @utility checkbox-info {
232
- --checkbox-50: var(--info-50);
233
- --checkbox-100: var(--info-100);
234
- --checkbox-200: var(--info-200);
235
- --checkbox-300: var(--info-300);
236
- --checkbox-400: var(--info-400);
237
- --checkbox-500: var(--info-500);
238
- --checkbox-600: var(--info-600);
239
- --checkbox-700: var(--info-700);
240
- --checkbox-800: var(--info-800);
241
- --checkbox-900: var(--info-900);
242
- --checkbox-950: var(--info-950);
243
- }
244
-
245
- @utility checkbox-success {
246
- --checkbox-50: var(--success-50);
247
- --checkbox-100: var(--success-100);
248
- --checkbox-200: var(--success-200);
249
- --checkbox-300: var(--success-300);
250
- --checkbox-400: var(--success-400);
251
- --checkbox-500: var(--success-500);
252
- --checkbox-600: var(--success-600);
253
- --checkbox-700: var(--success-700);
254
- --checkbox-800: var(--success-800);
255
- --checkbox-900: var(--success-900);
256
- --checkbox-950: var(--success-950);
257
- }
258
-
259
- @utility checkbox-warning {
260
- --checkbox-50: var(--warning-50);
261
- --checkbox-100: var(--warning-100);
262
- --checkbox-200: var(--warning-200);
263
- --checkbox-300: var(--warning-300);
264
- --checkbox-400: var(--warning-400);
265
- --checkbox-500: var(--warning-500);
266
- --checkbox-600: var(--warning-600);
267
- --checkbox-700: var(--warning-700);
268
- --checkbox-800: var(--warning-800);
269
- --checkbox-900: var(--warning-900);
270
- --checkbox-950: var(--warning-950);
271
- }
272
-
273
- @utility checkbox-error {
274
- --checkbox-50: var(--error-50);
275
- --checkbox-100: var(--error-100);
276
- --checkbox-200: var(--error-200);
277
- --checkbox-300: var(--error-300);
278
- --checkbox-400: var(--error-400);
279
- --checkbox-500: var(--error-500);
280
- --checkbox-600: var(--error-600);
281
- --checkbox-700: var(--error-700);
282
- --checkbox-800: var(--error-800);
283
- --checkbox-900: var(--error-900);
284
- --checkbox-950: var(--error-950);
285
- }
@@ -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: 100%;
48
- max-width: 100%;
49
- margin-inline: auto;
50
- padding-inline: 1rem;
51
- box-sizing: border-box;
52
- }
@@ -1,229 +0,0 @@
1
- @import "../theme/jams/base.css";
2
-
3
- @utility divider-x {
4
- &:not(:empty) {
5
- column-gap: 0.5rem;
6
- }
7
- &::before, &::after {
8
- width: 100%;
9
- height: 0.5px;
10
- }
11
- }
12
-
13
- @utility divider-x-solid {
14
- @apply divider-x;
15
- &::before, &::after {
16
- background: light-dark(
17
- var(--divider-700),
18
- var(--divider-900)
19
- );
20
- }
21
- @media print {
22
- &::before,
23
- &::after {
24
- border-top: 0.5px solid var(--divider-700);
25
- }
26
- }
27
- }
28
-
29
- @utility divider-x-dashed {
30
- @apply divider-x;
31
- &::before, &::after {
32
- background: repeating-linear-gradient(
33
- to right,
34
- var(--divider-700) 0,
35
- var(--divider-700) 5px,
36
- transparent 5px,
37
- transparent 10px
38
- );
39
- }
40
- @media print {
41
- &::before,
42
- &::after {
43
- border-top: 0.5px dashed var(--divider-700);
44
- }
45
- }
46
- }
47
- /* Container with two sections and a vertical divider in between.
48
-
49
- ✅ This will work correctly when:
50
- - You set a fixed height on `.container` (e.g. height: 200px), OR
51
- - You set `height: 100%` on `.container` **AND**
52
- all parent elements (including html and body) also have `height: 100%`
53
-
54
- ⚠️ If you use `height: 100%` but the parent elements do not have defined height,
55
- the vertical divider will collapse because 100% of "auto" is meaningless in CSS.
56
-
57
- 💡 Best practice:
58
- Use fixed height for predictable layouts.
59
- Use 100% height only if you're sure the full layout chain supports it. */
60
-
61
-
62
- @utility divider-y {
63
- flex-direction: column;
64
- &:not(:empty) {
65
- row-gap: 0.5rem;
66
- }
67
- &::before, &::after {
68
- width: 0.5px;
69
- flex: 1;
70
- }
71
- }
72
-
73
- @utility divider-y-solid {
74
- @apply divider-y;
75
- &::before, &::after {
76
- background: light-dark(
77
- var(--divider-700),
78
- var(--divider-800)
79
- );
80
- }
81
- @media print {
82
- &::before,
83
- &::after {
84
- border-left: 0.5px solid var(--divider-700);
85
- }
86
- }
87
- }
88
-
89
- @utility divider-y-dashed {
90
- @apply divider-y;
91
- &::before, &::after {
92
- background: repeating-linear-gradient(
93
- to bottom,
94
- var(--divider-700) 0,
95
- var(--divider-700) 5px,
96
- transparent 5px,
97
- transparent 10px
98
- );
99
- }
100
- @media print {
101
- &::before,
102
- &::after {
103
- border-left: 0.5px dashed var(--divider-700);
104
- }
105
- }
106
- }
107
-
108
- @utility divider {
109
- @apply divider-x-solid;
110
-
111
- display: flex;
112
- align-items: center;
113
- justify-content: center;
114
- height: auto;
115
-
116
- &::before, &::after {
117
- content: '';
118
- }
119
-
120
- --divider-50: var(--default-50);
121
- --divider-100: var(--default-100);
122
- --divider-200: var(--default-200);
123
- --divider-300: var(--default-300);
124
- --divider-400: var(--default-400);
125
- --divider-500: var(--default-500);
126
- --divider-600: var(--default-600);
127
- --divider-700: light-dark(var(--default-200),var(--default-600));
128
- --divider-800: var(--default-800);
129
- --divider-900: var(--default-900);
130
- --divider-950: var(--default-950);
131
- }
132
-
133
- @utility divider-primary {
134
- --divider-50: var(--primary-50);
135
- --divider-100: var(--primary-100);
136
- --divider-200: var(--primary-200);
137
- --divider-300: var(--primary-300);
138
- --divider-400: var(--primary-400);
139
- --divider-500: var(--primary-500);
140
- --divider-600: var(--primary-600);
141
- --divider-700: var(--primary-700);
142
- --divider-800: var(--primary-800);
143
- --divider-900: var(--primary-900);
144
- --divider-950: var(--primary-950);
145
- }
146
-
147
- @utility divider-secondary {
148
- --divider-50: var(--secondary-50);
149
- --divider-100: var(--secondary-100);
150
- --divider-200: var(--secondary-200);
151
- --divider-300: var(--secondary-300);
152
- --divider-400: var(--secondary-400);
153
- --divider-500: var(--secondary-500);
154
- --divider-600: var(--secondary-600);
155
- --divider-700: var(--secondary-700);
156
- --divider-800: var(--secondary-800);
157
- --divider-900: var(--secondary-900);
158
- --divider-950: var(--secondary-950);
159
- }
160
-
161
- @utility divider-accent {
162
- --divider-50: var(--accent-50);
163
- --divider-100: var(--accent-100);
164
- --divider-200: var(--accent-200);
165
- --divider-300: var(--accent-300);
166
- --divider-400: var(--accent-400);
167
- --divider-500: var(--accent-500);
168
- --divider-600: var(--accent-600);
169
- --divider-700: var(--accent-700);
170
- --divider-800: var(--accent-800);
171
- --divider-900: var(--accent-900);
172
- --divider-950: var(--accent-950);
173
- }
174
-
175
- @utility divider-info {
176
- --divider-50: var(--info-50);
177
- --divider-100: var(--info-100);
178
- --divider-200: var(--info-200);
179
- --divider-300: var(--info-300);
180
- --divider-400: var(--info-400);
181
- --divider-500: var(--info-500);
182
- --divider-600: var(--info-600);
183
- --divider-700: var(--info-700);
184
- --divider-800: var(--info-800);
185
- --divider-900: var(--info-900);
186
- --divider-950: var(--info-950);
187
- }
188
-
189
- @utility divider-success {
190
- --divider-50: var(--success-50);
191
- --divider-100: var(--success-100);
192
- --divider-200: var(--success-200);
193
- --divider-300: var(--success-300);
194
- --divider-400: var(--success-400);
195
- --divider-500: var(--success-500);
196
- --divider-600: var(--success-600);
197
- --divider-700: var(--success-700);
198
- --divider-800: var(--success-800);
199
- --divider-900: var(--success-900);
200
- --divider-950: var(--success-950);
201
- }
202
-
203
- @utility divider-warning {
204
- --divider-50: var(--warning-50);
205
- --divider-100: var(--warning-100);
206
- --divider-200: var(--warning-200);
207
- --divider-300: var(--warning-300);
208
- --divider-400: var(--warning-400);
209
- --divider-500: var(--warning-500);
210
- --divider-600: var(--warning-600);
211
- --divider-700: var(--warning-700);
212
- --divider-800: var(--warning-800);
213
- --divider-900: var(--warning-900);
214
- --divider-950: var(--warning-950);
215
- }
216
-
217
- @utility divider-error {
218
- --divider-50: var(--error-50);
219
- --divider-100: var(--error-100);
220
- --divider-200: var(--error-200);
221
- --divider-300: var(--error-300);
222
- --divider-400: var(--error-400);
223
- --divider-500: var(--error-500);
224
- --divider-600: var(--error-600);
225
- --divider-700: var(--error-700);
226
- --divider-800: var(--error-800);
227
- --divider-900: var(--error-900);
228
- --divider-950: var(--error-950);
229
- }