frutjam 1.4.0-beta.0 → 1.4.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 (41) 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 -229
  13. package/src/components/breadcrumb.css +0 -90
  14. package/src/components/button.css +0 -378
  15. package/src/components/card.css +0 -122
  16. package/src/components/checkbox.css +0 -291
  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/link.css +0 -159
  24. package/src/components/modal.css +0 -129
  25. package/src/components/nav.css +0 -36
  26. package/src/components/popover.css +0 -140
  27. package/src/components/sidebar.css +0 -22
  28. package/src/components/typography.css +0 -7
  29. package/src/main.css +0 -22
  30. package/src/main.js +0 -1
  31. package/src/theme/animation/slide.css +0 -6
  32. package/src/theme/animation/wiggle.css +0 -14
  33. package/src/theme/jams/base.css +0 -123
  34. package/src/theme/jams/darkberry.css +0 -134
  35. package/src/theme/jams/pinkberry.css +0 -0
  36. package/src/theme/jams/snowberry.css +0 -139
  37. package/src/theme/placement.css +0 -8
  38. package/src/theme/typography.css +0 -8
  39. package/src/utilities/headings.css +0 -22
  40. package/src/utilities/para.css +0 -22
  41. package/src/utilities/surface.css +0 -64
@@ -1,122 +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-900)
7
- );
8
- }
9
-
10
- @utility card-dashed {
11
- border: 1px dashed light-dark(
12
- var(--core-200),
13
- var(--core-900)
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: var(--card-body-padding, 1.5rem);
53
-
54
- :where(p){
55
- flex-grow: 1;
56
- font-size: var(--card-body-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: var(--card-title-font-size, 1.125rem);
66
- }
67
-
68
-
69
- @utility card-xs {
70
- &:is(.card-body) {
71
- --card-body-padding: 0.5rem;
72
- --card-body-font-size: 0.6875rem;
73
- }
74
-
75
- &:is(.card-title) {
76
- --card-title-font-size: 0.875rem;
77
- }
78
- }
79
-
80
- @utility card-sm {
81
- &:is(.card-body) {
82
- --card-body-padding: 1rem;
83
- --card-body-font-size: 0.75rem;
84
- }
85
-
86
- &:is(.card-title) {
87
- --card-title-font-size: 1rem;
88
- }
89
- }
90
-
91
- @utility card-md {
92
- &:is(.card-body) {
93
- --card-body-padding: 1.5rem;
94
- --card-body-font-size: 0.875rem;
95
- }
96
-
97
- &:is(.card-title) {
98
- --card-title-font-size: 1.125rem;
99
- }
100
- }
101
-
102
- @utility card-lg {
103
- &:is(.card-body) {
104
- --card-body-padding: 2rem;
105
- --card-body-font-size: 1rem;
106
- }
107
-
108
- &:is(.card-title) {
109
- --card-title-font-size: 1.25rem;
110
- }
111
- }
112
-
113
- @utility card-xl {
114
- &:is(.card-body) {
115
- --card-body-padding: 2.5rem;
116
- --card-body-font-size: 1.125rem;
117
- }
118
-
119
- &:is(.card-title) {
120
- --card-title-font-size: 1.375rem;
121
- }
122
- }
@@ -1,291 +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
- /*checkbox-circle deprecated: Remove this in stable release*/
40
- @utility checkbox-circle {
41
- border-radius: calc(infinity * 1px);
42
- aspect-ratio: 1 / 1;
43
- }
44
-
45
- @utility checkbox-rounded {
46
- border-radius: calc(infinity * 1px);
47
- aspect-ratio: 1 / 1;
48
- }
49
-
50
- @utility checkbox-square {
51
- border-radius: var(--radius-checkbox);
52
- aspect-ratio: 1 / 1;
53
- }
54
-
55
- @utility checkbox {
56
- @apply checkbox-md;
57
- /* box-shadow: light-dark(
58
- var(--core-100),
59
- var(--core-900)
60
- ) 0px 1px 1px; */
61
- position: relative;
62
- transition-duration: 350ms;
63
- flex-shrink: 0;
64
- cursor: pointer;
65
- appearance: none;
66
- vertical-align: middle;
67
-
68
- 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);
69
- /* border: 1.6px solid var(--checkbox-100); */
70
- /* outline: 1px solid light-dark(
71
- var(--checkbox-400),
72
- var(--checkbox-700)
73
- ); */
74
-
75
- background-color: light-dark(
76
- var(--checkbox-100),
77
- color-mix(in oklab, var(--checkbox-600) 15%, transparent)
78
- );
79
-
80
-
81
- /* &:not(
82
- .checkbox-primary,
83
- .checkbox-secondary,
84
- .checkbox-accent,
85
- .checkbox-info,
86
- .checkbox-success,
87
- .checkbox-warning,
88
- .checkbox-error
89
- ){
90
- outline: 1px solid light-dark(
91
- var(--checkbox-400),
92
- var(--checkbox-700)
93
- );
94
- border: 0.5px solid light-dark(
95
- var(--checkbox-50),
96
- var(--checkbox-900)
97
- );
98
- }
99
-
100
- &:is(
101
- .checkbox-primary,
102
- .checkbox-secondary,
103
- .checkbox-accent,
104
- .checkbox-info,
105
- .checkbox-success,
106
- .checkbox-warning,
107
- .checkbox-error
108
- ){
109
- outline: 1px solid var(--checkbox-700);
110
- border: 0.5px solid light-dark(
111
- var(--checkbox-50),
112
- var(--checkbox-900)
113
- );
114
- } */
115
-
116
-
117
- /* background-color: transparent; */
118
- /* color: light-dark(var(--checkbox-700), var(--checkbox-200)); */
119
- color: light-dark(var(--checkbox-700), var(--checkbox-200));
120
- border-radius: var(--radius-checkbox);
121
-
122
- &::before {
123
- content: none;
124
- opacity: 0%;
125
- background-color: currentcolor;
126
- transform: rotate(45deg);
127
- transition: transform 300ms, background-color 100ms;
128
- display: block;
129
- width: 100%;
130
- height: 100%;
131
- clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 0, 70% 0, 70% 100%);
132
- font-size: 1rem;
133
- line-height: 0.75;
134
- }
135
-
136
- &:focus-visible {
137
- outline: 1px solid var(--checkbox-700, currentColor);
138
- outline-offset: 2px;
139
- }
140
-
141
- &:checked,
142
- &[aria-checked="true"] {
143
- 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);
144
- background-color: light-dark(var(--checkbox-300), var(--checkbox-600));
145
- transition: transform 300ms, background-color 100ms;
146
-
147
- &::before {
148
- content: '✔︎';
149
- opacity: 100%;
150
- }
151
-
152
- @media (forced-colors: active) {
153
- &:before {
154
- content: '✔︎';
155
- transform: rotate(0deg);
156
- background-color: light-dark(var(--checkbox-200), var(--checkbox-600));
157
- clip-path:none;
158
- }
159
- }
160
- }
161
-
162
- &:indeterminate {
163
- &:before {
164
- opacity: 100%;
165
- transform: rotate(0deg) translate(0, -35%);
166
- clip-path: polygon(
167
- 20% 100%,
168
- 20% 80%,
169
- 50% 80%,
170
- 50% 80%,
171
- 80% 80%,
172
- 80% 100%
173
- );
174
- }
175
- }
176
-
177
- &:disabled {
178
- cursor: not-allowed;
179
- opacity: 20%;
180
- }
181
-
182
- --checkbox-50: var(--default-50);
183
- --checkbox-100: var(--default-100);
184
- --checkbox-200: var(--default-200);
185
- --checkbox-300: var(--default-300);
186
- --checkbox-400: var(--default-400);
187
- --checkbox-500: var(--default-500);
188
- --checkbox-600: var(--default-600);
189
- --checkbox-700: var(--default-700);
190
- --checkbox-800: var(--default-800);
191
- --checkbox-900: var(--default-900);
192
- --checkbox-950: var(--default-950);
193
- }
194
-
195
- @utility checkbox-primary {
196
- --checkbox-50: var(--primary-50);
197
- --checkbox-100: var(--primary-100);
198
- --checkbox-200: var(--primary-200);
199
- --checkbox-300: var(--primary-300);
200
- --checkbox-400: var(--primary-400);
201
- --checkbox-500: var(--primary-500);
202
- --checkbox-600: var(--primary-600);
203
- --checkbox-700: var(--primary-700);
204
- --checkbox-800: var(--primary-800);
205
- --checkbox-900: var(--primary-900);
206
- --checkbox-950: var(--primary-950);
207
- }
208
-
209
- @utility checkbox-secondary {
210
- --checkbox-50: var(--secondary-50);
211
- --checkbox-100: var(--secondary-100);
212
- --checkbox-200: var(--secondary-200);
213
- --checkbox-300: var(--secondary-300);
214
- --checkbox-400: var(--secondary-400);
215
- --checkbox-500: var(--secondary-500);
216
- --checkbox-600: var(--secondary-600);
217
- --checkbox-700: var(--secondary-700);
218
- --checkbox-800: var(--secondary-800);
219
- --checkbox-900: var(--secondary-900);
220
- --checkbox-950: var(--secondary-950);
221
- }
222
-
223
- @utility checkbox-accent {
224
- --checkbox-50: var(--accent-50);
225
- --checkbox-100: var(--accent-100);
226
- --checkbox-200: var(--accent-200);
227
- --checkbox-300: var(--accent-300);
228
- --checkbox-400: var(--accent-400);
229
- --checkbox-500: var(--accent-500);
230
- --checkbox-600: var(--accent-600);
231
- --checkbox-700: var(--accent-700);
232
- --checkbox-800: var(--accent-800);
233
- --checkbox-900: var(--accent-900);
234
- --checkbox-950: var(--accent-950);
235
- }
236
-
237
- @utility checkbox-info {
238
- --checkbox-50: var(--info-50);
239
- --checkbox-100: var(--info-100);
240
- --checkbox-200: var(--info-200);
241
- --checkbox-300: var(--info-300);
242
- --checkbox-400: var(--info-400);
243
- --checkbox-500: var(--info-500);
244
- --checkbox-600: var(--info-600);
245
- --checkbox-700: var(--info-700);
246
- --checkbox-800: var(--info-800);
247
- --checkbox-900: var(--info-900);
248
- --checkbox-950: var(--info-950);
249
- }
250
-
251
- @utility checkbox-success {
252
- --checkbox-50: var(--success-50);
253
- --checkbox-100: var(--success-100);
254
- --checkbox-200: var(--success-200);
255
- --checkbox-300: var(--success-300);
256
- --checkbox-400: var(--success-400);
257
- --checkbox-500: var(--success-500);
258
- --checkbox-600: var(--success-600);
259
- --checkbox-700: var(--success-700);
260
- --checkbox-800: var(--success-800);
261
- --checkbox-900: var(--success-900);
262
- --checkbox-950: var(--success-950);
263
- }
264
-
265
- @utility checkbox-warning {
266
- --checkbox-50: var(--warning-50);
267
- --checkbox-100: var(--warning-100);
268
- --checkbox-200: var(--warning-200);
269
- --checkbox-300: var(--warning-300);
270
- --checkbox-400: var(--warning-400);
271
- --checkbox-500: var(--warning-500);
272
- --checkbox-600: var(--warning-600);
273
- --checkbox-700: var(--warning-700);
274
- --checkbox-800: var(--warning-800);
275
- --checkbox-900: var(--warning-900);
276
- --checkbox-950: var(--warning-950);
277
- }
278
-
279
- @utility checkbox-error {
280
- --checkbox-50: var(--error-50);
281
- --checkbox-100: var(--error-100);
282
- --checkbox-200: var(--error-200);
283
- --checkbox-300: var(--error-300);
284
- --checkbox-400: var(--error-400);
285
- --checkbox-500: var(--error-500);
286
- --checkbox-600: var(--error-600);
287
- --checkbox-700: var(--error-700);
288
- --checkbox-800: var(--error-800);
289
- --checkbox-900: var(--error-900);
290
- --checkbox-950: var(--error-950);
291
- }
@@ -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
- }