frutjam 1.4.0-beta.0 → 2.0.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.
Files changed (38) hide show
  1. package/README.md +5 -0
  2. package/dist/frutjam.dev.css +7 -0
  3. package/dist/frutjam.min.css +3 -0
  4. package/dist/frutjam.min.js +2 -0
  5. package/dist/frutjam.min.js.LICENSE.txt +1 -0
  6. package/package.json +51 -21
  7. package/src/base/preflight.css +0 -7
  8. package/src/components/accordion.css +0 -63
  9. package/src/components/badge.css +0 -229
  10. package/src/components/breadcrumb.css +0 -90
  11. package/src/components/button.css +0 -378
  12. package/src/components/card.css +0 -122
  13. package/src/components/checkbox.css +0 -291
  14. package/src/components/container.css +0 -52
  15. package/src/components/divider.css +0 -229
  16. package/src/components/drawer.css +0 -158
  17. package/src/components/dropdown.css +0 -122
  18. package/src/components/header.css +0 -26
  19. package/src/components/input.css +0 -340
  20. package/src/components/link.css +0 -159
  21. package/src/components/modal.css +0 -129
  22. package/src/components/nav.css +0 -36
  23. package/src/components/popover.css +0 -140
  24. package/src/components/sidebar.css +0 -22
  25. package/src/components/typography.css +0 -7
  26. package/src/main.css +0 -22
  27. package/src/main.js +0 -1
  28. package/src/theme/animation/slide.css +0 -6
  29. package/src/theme/animation/wiggle.css +0 -14
  30. package/src/theme/jams/base.css +0 -123
  31. package/src/theme/jams/darkberry.css +0 -134
  32. package/src/theme/jams/pinkberry.css +0 -0
  33. package/src/theme/jams/snowberry.css +0 -139
  34. package/src/theme/placement.css +0 -8
  35. package/src/theme/typography.css +0 -8
  36. package/src/utilities/headings.css +0 -22
  37. package/src/utilities/para.css +0 -22
  38. 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
- }