frutjam 1.2.0-beta.0 → 1.2.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 -59
  12. package/src/components/badge.css +0 -228
  13. package/src/components/breadcrumb.css +0 -90
  14. package/src/components/button.css +0 -370
  15. package/src/components/card.css +0 -63
  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 -155
  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 -130
  24. package/src/components/nav.css +0 -36
  25. package/src/components/popover.css +0 -140
  26. package/src/components/sidebar.css +0 -21
  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,155 +0,0 @@
1
- @import "../theme/jams/base.css";
2
- @utility drawer {
3
- pointer-events: none;
4
- visibility: hidden;
5
- position: fixed;
6
- inset: 0rem;
7
- margin: 0rem;
8
- padding: 0rem;
9
- display: grid;
10
- width: 100%;
11
- height: 100%;
12
- max-width: none;
13
- max-height: none;
14
- place-items: start;
15
- background-color: transparent;
16
- color: inherit;
17
- z-index: 999;
18
- overflow: hidden;
19
- overscroll-behavior: contain;
20
-
21
- &:not(drawer:not([open]):not(.drawer-open)),
22
- &::backdrop {
23
- @starting-style {
24
- visibility: hidden;
25
- }
26
- background: light-dark(
27
- color-mix(in oklab,var(--color-default-100)30%,var(--color-default-900)20%),
28
- color-mix(in oklab,var(--color-default-800)50%,transparent)
29
- );
30
- }
31
-
32
- &[open], &.drawer-open{
33
- @starting-style {
34
- visibility: hidden;
35
- }
36
- pointer-events: auto;
37
- visibility: visible;
38
-
39
- .drawer-body {
40
- translate: 0 0;
41
- scale: 1;
42
- opacity: 1;
43
- }
44
- }
45
- }
46
-
47
- @utility drawer-backdrop {
48
- display: grid;
49
- grid-column-start: 1;
50
- grid-row-start: 1;
51
- align-self: stretch;
52
- justify-self: stretch;
53
- color: transparent;
54
- z-index: -1;
55
-
56
- button {
57
- cursor: pointer;
58
- }
59
- }
60
-
61
- @utility drawer-body {
62
- border-radius: 0;
63
- translate: -100% 0;
64
- scale: 1;
65
- grid-column-start: 1;
66
- grid-row-start: 1;
67
- height: 100vh;
68
- max-height: none;
69
- width: calc(11/12 * 100%);
70
- max-width: none;
71
- padding: 0.25rem;
72
- overflow-y: auto;
73
- overscroll-behavior: contain;
74
-
75
- @media (forced-colors: active) {
76
- outline-style: solid;
77
- outline-width: 1px;
78
- }
79
-
80
- --tw-shadow-color: light-dark(
81
- color-mix(in oklab,var(--core-300)50%,transparent),
82
- color-mix(in oklab,var(--core-900)60%,transparent)
83
- );
84
-
85
- background: light-dark(
86
- var(--core-50),
87
- var(--core-950)
88
- );
89
- color: light-dark(
90
- var(--default-800),
91
- var(--default-50)
92
- );
93
- border: 1px solid light-dark(
94
- var(--core-300),
95
- var(--core-900)
96
- );
97
- transition: translate 0.3s ease-out, visibility 0.3s allow-discrete, background-color 0.3s ease-out, opacity 0.1s ease-out;
98
- }
99
-
100
-
101
- @utility drawer-top {
102
- place-items: start;
103
-
104
- :where(.drawer-body) {
105
- height: auto;
106
- width: 100%;
107
- max-width: none;
108
- border-radius: 0;
109
- max-height: calc(100vh - 5em);
110
- translate: 0 -100%;
111
- scale: 1;
112
- }
113
- }
114
-
115
- @utility drawer-bottom {
116
- place-items: end;
117
-
118
- :where(.drawer-body) {
119
- height: auto;
120
- width: 100%;
121
- max-width: none;
122
- border-radius: 0;
123
- max-height: calc(100vh - 5em);
124
- translate: 0 100%;
125
- scale: 1;
126
- }
127
- }
128
-
129
- @utility drawer-start {
130
- place-items: start;
131
-
132
- :where(.drawer-body) {
133
- height: 100vh;
134
- width: auto;
135
- max-height: none;
136
- max-width: none;
137
- border-radius: 0;
138
- translate: -100% 0;
139
- scale: 1;
140
- }
141
- }
142
-
143
- @utility drawer-end {
144
- place-items: end;
145
-
146
- :where(.drawer-body) {
147
- height: 100vh;
148
- max-height: none;
149
- max-width: none;
150
- width: auto;
151
- border-radius: 0;
152
- translate: 100% 0;
153
- scale: 1;
154
- }
155
- }
@@ -1,122 +0,0 @@
1
- @import "../theme/jams/base.css";
2
- @import "../theme/placement.css";
3
-
4
- @utility dropdown {
5
- @apply relative inline-block;
6
- position-area: var(--anchor-v, bottom) var(--anchor-h, span-right);
7
-
8
- & > *:not(summary):focus {
9
- @apply outline-hidden;
10
- }
11
- .dropdown-body {
12
- @apply absolute;
13
- }
14
- &:not(details, .dropdown-open, .dropdown-hover:hover, :focus-within) {
15
- .dropdown-body {
16
- @apply hidden origin-top opacity-0 scale-9;
17
- }
18
- }
19
-
20
- &[popover],
21
- .dropdown-body {
22
- @apply starting:[scale:95%] starting:[opacity:0] z-999 w-max transition-discrete duration-200 transition-[opacity,_scale,_display] ease-in-out;
23
- /* animation: dropdown 0.2s; */
24
- }
25
-
26
- &.dropdown-open,
27
- &:not(.dropdown-hover):focus,
28
- &:focus-within {
29
- > [tabindex]:first-child {
30
- @apply pointer-events-none;
31
- }
32
- .dropdown-body {
33
- @apply opacity-100;
34
- }
35
- }
36
-
37
- &.dropdown-hover:hover {
38
- .dropdown-body {
39
- @apply opacity-100 scale-100;
40
- }
41
- }
42
-
43
- &:is(details) {
44
- summary {
45
- &::-webkit-details-marker {
46
- @apply hidden;
47
- }
48
- }
49
- }
50
-
51
- &.dropdown-open,
52
- &:focus,
53
- &:focus-within {
54
- .dropdown-body {
55
- @apply scale-100;
56
- }
57
- }
58
-
59
- /* experimental */
60
- &:where([popover]) {
61
- background: #0000;
62
- }
63
- &[popover] {
64
- @apply fixed text-inherit;
65
-
66
- @supports not (position-area: bottom) {
67
- @apply m-auto;
68
-
69
- &.dropdown-open:not(:popover-open) {
70
- @apply hidden origin-top opacity-0 scale-95;
71
- }
72
-
73
- &::backdrop {
74
- background-color: color-mix(in oklab, #000 30%, #0000);
75
- }
76
- }
77
-
78
- &:not(.dropdown-open, :popover-open) {
79
- @apply hidden origin-top opacity-0 scale-95;
80
- }
81
- }
82
- }
83
-
84
- @utility dropdown-body {
85
- @apply shadow forced-colors:outline col-start-1 row-start-1 max-h-screen p-3 transition-all duration-150 scale-95 opacity-0 overflow-y-auto overscroll-contain;
86
-
87
- --tw-shadow-color: light-dark(
88
- color-mix(in oklab,var(--core-300)50%,transparent),
89
- color-mix(in oklab,var(--core-900)60%,transparent)
90
- );
91
- border: 1px solid light-dark(
92
- var(--core-200),
93
- var(--core-900)
94
- );
95
- border-radius: var(--radius-dropdown);
96
- background: light-dark(
97
- var(--core-50),
98
- var(--core-950)
99
- );
100
- color: light-dark(
101
- var(--core-800),
102
- var(--core-50)
103
- );
104
- }
105
-
106
- /* placements */
107
- /* Positioning Classes */
108
- .dropdown-x-start {
109
- left: 0; /* Aligns dropdown to start horizontally */
110
- }
111
-
112
- .dropdown-x-end {
113
- right: 0; /* Aligns dropdown to end horizontally */
114
- }
115
-
116
- .dropdown-y-top {
117
- bottom: calc(100% + 10px); /* Positions above the button */
118
- }
119
-
120
- .dropdown-y-bottom {
121
- top: calc(100% + 10px); /* Positions below the button */
122
- }
@@ -1,26 +0,0 @@
1
- @import "../theme/jams/base.css";
2
- @import "./container.css";
3
-
4
- @utility header {
5
- background-color: light-dark(var(--core-0), var(--core-1000));
6
- color: light-dark(var(--core-900), var(--core-50));
7
- border-bottom: 1px solid light-dark(var(--core-200), var(--core-800));
8
- top: 0;
9
- z-index: 999;
10
- }
11
-
12
- @utility header-body {
13
- @apply container;
14
-
15
- display: flex;
16
- gap: 0.75rem;
17
- padding-block: 0.5rem;
18
- justify-content: space-between;
19
- align-items:center;
20
- margin-left: auto;
21
- margin-right: auto;
22
- }
23
-
24
- @utility header-sticky {
25
- position: sticky;
26
- }
@@ -1,340 +0,0 @@
1
- @import "../theme/jams/base.css";
2
-
3
- @utility input-size {
4
- padding-inline: var(--input-inline);
5
- padding-block: var(--input-block);
6
- font-size: var(--input-text-size);
7
- }
8
-
9
- @utility input-xs {
10
- --input-inline: 0.475rem;
11
- --input-block: 0.375rem;
12
- --input-text-size: 0.75rem;
13
- @apply input-size;
14
- }
15
-
16
- @utility input-sm {
17
- --input-inline: 0.6rem;
18
- --input-block: 0.5rem;
19
- --input-text-size: 0.875rem;
20
- @apply input-size;
21
- }
22
-
23
- @utility input-md {
24
- --input-inline: 0.75rem;
25
- --input-block: 0.625rem;
26
- --input-text-size: 1rem;
27
- @apply input-size;
28
- }
29
-
30
- @utility input-lg {
31
- --input-inline:0.9rem;
32
- --input-block: 0.75rem;
33
- --input-text-size: 1rem;
34
- @apply input-size;
35
- }
36
-
37
- @utility input-xl {
38
- --input-inline: 1rem;
39
- --input-block: 0.875rem;
40
- --input-text-size: 1rem;
41
- @apply input-size;
42
- }
43
-
44
- @utility input-2xl {
45
- --input-inline: 1.25rem;
46
- --input-block: 1rem;
47
- --input-text-size: 1.025rem;
48
- @apply input-size;
49
- }
50
-
51
- @utility input-dashed {
52
- &:not(.input-active) {
53
- outline-width: 1px;
54
- outline-style: dashed;
55
- }
56
- }
57
-
58
-
59
- @utility input-outline {
60
- &:not(.input-active) {
61
- outline-width: 1px;
62
- outline-style: solid;
63
- }
64
- }
65
-
66
- @utility input-soft {
67
- &:not(.input-active) {
68
- background-color: light-dark(
69
- var(--input-100),
70
- color-mix(in oklab,var(--input-900)10%,transparent)
71
- );
72
- color: light-dark(
73
- var(--input-800),
74
- var(--input-400)
75
- );
76
- }
77
- }
78
-
79
- @utility input-ghost {
80
- &:not(.input-active) {
81
- outline-color: transparent;
82
- }
83
- }
84
-
85
- @utility input {
86
- @apply input-md;
87
-
88
- display: inline-flex;
89
- align-self: flex-start;
90
- flex-shrink: 0;
91
- align-items: center;
92
- appearance: none;
93
- border-radius: var(--radius-input);
94
- gap: 0.5rem;
95
- vertical-align: middle;
96
- white-space: nowrap;
97
- position: relative;
98
- font-weight: 500;
99
- padding-inline: 0.625rem;
100
- transition: border-color 300ms, outline-color 300ms;
101
-
102
- &::placeholder {
103
- font-size: var(--input-text-size);
104
- color: light-dark(
105
- var(--core-300),
106
- var(--core-700)
107
- );
108
- }
109
-
110
- &::file-selector-button{
111
- font-size: var(--input-text-size);
112
- margin-right: 1rem;
113
- display: inline-flex;
114
- transition: border-color 300ms, background-color 300ms, display 300ms;
115
- align-items: center;
116
- border-radius: calc(var(--radius-input)/2);
117
- background-color: light-dark(
118
- var(--input-100),
119
- var(--input-800)
120
- );
121
- border: 1px solid light-dark(
122
- var(--input-200),
123
- var(--input-900)
124
- );
125
- font-weight: semibold;
126
- color: light-dark(
127
- var(--input-800),
128
- var(--input-400)
129
- );
130
- padding-block: calc(var(--input-block)/6);
131
- padding-inline: calc(var(--input-inline)/2);
132
-
133
- @media (hover: hover) {
134
- &:hover{
135
- color: light-dark(
136
- var(--input-900),
137
- var(--input-300)
138
- );
139
- background-color: light-dark(
140
- var(--input-200),
141
- var(--input-700)
142
- );
143
- }
144
- }
145
- }
146
-
147
- &:not(
148
- .input-primary,
149
- .input-secondary,
150
- .input-accent,
151
- .input-info,
152
- .input-success,
153
- .input-warning,
154
- .input-error
155
- ){
156
- outline: 1px solid light-dark(
157
- var(--input-400),
158
- var(--input-700)
159
- );
160
- border: 0.5px solid light-dark(
161
- var(--input-50),
162
- var(--input-900)
163
- );
164
- }
165
-
166
- &:is(
167
- .input-primary,
168
- .input-secondary,
169
- .input-accent,
170
- .input-info,
171
- .input-success,
172
- .input-warning,
173
- .input-error
174
- ){
175
- outline: 1px solid var(--input-700);
176
- border: 0.5px solid light-dark(
177
- var(--input-50),
178
- var(--input-900)
179
- );
180
- }
181
-
182
- &:is(:disabled, [disabled], .input-disabled) {
183
- cursor: not-allowed;
184
- color:var(--input-50);
185
- background-color: light-dark(
186
- var(--input-100),
187
- var(--input-900)
188
- );
189
-
190
- &::placeholder {
191
- color: var(--input-200);
192
- }
193
- }
194
-
195
- &:focus, &:focus-within {
196
- isolation: isolate;
197
- &:is(
198
- .input-primary,
199
- .input-secondary,
200
- .input-accent,
201
- .input-info,
202
- .input-success,
203
- .input-warning,
204
- .input-error
205
- ){
206
- outline-color: var(--input-800);
207
- border-color: light-dark(
208
- var(--input-200),
209
- var(--input-950)
210
- );
211
- }
212
-
213
- &:not(
214
- .input-primary,
215
- .input-secondary,
216
- .input-accent,
217
- .input-info,
218
- .input-success,
219
- .input-warning,
220
- .input-error
221
- ){
222
- outline-color: var(--input-800);
223
- border-color: light-dark(
224
- var(--input-200),
225
- var(--input-600)
226
- );
227
- }
228
- }
229
-
230
- --input-50: var(--default-50);
231
- --input-100: var(--default-100);
232
- --input-200: var(--default-200);
233
- --input-300: var(--default-300);
234
- --input-400: var(--default-400);
235
- --input-500: var(--default-500);
236
- --input-600: var(--default-600);
237
- --input-700: var(--default-700);
238
- --input-800: var(--default-800);
239
- --input-900: var(--default-900);
240
- --input-950: var(--default-950);
241
- }
242
-
243
-
244
- @utility input-primary {
245
- --input-50: var(--primary-50);
246
- --input-100: var(--primary-100);
247
- --input-200: var(--primary-200);
248
- --input-300: var(--primary-300);
249
- --input-400: var(--primary-400);
250
- --input-500: var(--primary-500);
251
- --input-600: var(--primary-600);
252
- --input-700: var(--primary-700);
253
- --input-800: var(--primary-800);
254
- --input-900: var(--primary-900);
255
- --input-950: var(--primary-950);
256
- }
257
-
258
- @utility input-secondary {
259
- --input-50: var(--secondary-50);
260
- --input-100: var(--secondary-100);
261
- --input-200: var(--secondary-200);
262
- --input-300: var(--secondary-300);
263
- --input-400: var(--secondary-400);
264
- --input-500: var(--secondary-500);
265
- --input-600: var(--secondary-600);
266
- --input-700: var(--secondary-700);
267
- --input-800: var(--secondary-800);
268
- --input-900: var(--secondary-900);
269
- --input-950: var(--secondary-950);
270
- }
271
-
272
- @utility input-accent {
273
- --input-50: var(--accent-50);
274
- --input-100: var(--accent-100);
275
- --input-200: var(--accent-200);
276
- --input-300: var(--accent-300);
277
- --input-400: var(--accent-400);
278
- --input-500: var(--accent-500);
279
- --input-600: var(--accent-600);
280
- --input-700: var(--accent-700);
281
- --input-800: var(--accent-800);
282
- --input-900: var(--accent-900);
283
- --input-950: var(--accent-950);
284
- }
285
-
286
- @utility input-info {
287
- --input-50: var(--info-50);
288
- --input-100: var(--info-100);
289
- --input-200: var(--info-200);
290
- --input-300: var(--info-300);
291
- --input-400: var(--info-400);
292
- --input-500: var(--info-500);
293
- --input-600: var(--info-600);
294
- --input-700: var(--info-700);
295
- --input-800: var(--info-800);
296
- --input-900: var(--info-900);
297
- --input-950: var(--info-950);
298
- }
299
-
300
- @utility input-success {
301
- --input-50: var(--success-50);
302
- --input-100: var(--success-100);
303
- --input-200: var(--success-200);
304
- --input-300: var(--success-300);
305
- --input-400: var(--success-400);
306
- --input-500: var(--success-500);
307
- --input-600: var(--success-600);
308
- --input-700: var(--success-700);
309
- --input-800: var(--success-800);
310
- --input-900: var(--success-900);
311
- --input-950: var(--success-950);
312
- }
313
-
314
- @utility input-warning {
315
- --input-50: var(--warning-50);
316
- --input-100: var(--warning-100);
317
- --input-200: var(--warning-200);
318
- --input-300: var(--warning-300);
319
- --input-400: var(--warning-400);
320
- --input-500: var(--warning-500);
321
- --input-600: var(--warning-600);
322
- --input-700: var(--warning-700);
323
- --input-800: var(--warning-800);
324
- --input-900: var(--warning-900);
325
- --input-950: var(--warning-950);
326
- }
327
-
328
- @utility input-error {
329
- --input-50: var(--error-50);
330
- --input-100: var(--error-100);
331
- --input-200: var(--error-200);
332
- --input-300: var(--error-300);
333
- --input-400: var(--error-400);
334
- --input-500: var(--error-500);
335
- --input-600: var(--error-600);
336
- --input-700: var(--error-700);
337
- --input-800: var(--error-800);
338
- --input-900: var(--error-900);
339
- --input-950: var(--error-950);
340
- }