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,158 +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: light-dark(
16
- var(--core-0),
17
- var(--core-1000)
18
- );
19
- color: inherit;
20
- z-index: 999;
21
- overflow: hidden;
22
- overscroll-behavior: contain;
23
-
24
- &:not(drawer:not([open]):not(.drawer-open)),
25
- &::backdrop {
26
- @starting-style {
27
- visibility: hidden;
28
- }
29
- background: light-dark(
30
- color-mix(in oklab,var(--color-default-100)30%,var(--color-default-900)20%),
31
- color-mix(in oklab,var(--color-default-800)50%,transparent)
32
- );
33
- }
34
-
35
- &[open], &.drawer-open{
36
- @starting-style {
37
- visibility: hidden;
38
- }
39
- pointer-events: auto;
40
- visibility: visible;
41
-
42
- .drawer-body {
43
- translate: 0 0;
44
- scale: 1;
45
- opacity: 1;
46
- }
47
- }
48
- }
49
-
50
- @utility drawer-backdrop {
51
- display: grid;
52
- grid-column-start: 1;
53
- grid-row-start: 1;
54
- align-self: stretch;
55
- justify-self: stretch;
56
- color: transparent;
57
- z-index: -1;
58
-
59
- button {
60
- cursor: pointer;
61
- }
62
- }
63
-
64
- @utility drawer-body {
65
- border-radius: 0;
66
- translate: -100% 0;
67
- scale: 1;
68
- grid-column-start: 1;
69
- grid-row-start: 1;
70
- height: 100vh;
71
- max-height: none;
72
- width: calc(11/12 * 100%);
73
- max-width: none;
74
- padding: 0.25rem;
75
- overflow-y: auto;
76
- overscroll-behavior: contain;
77
-
78
- @media (forced-colors: active) {
79
- outline-style: solid;
80
- outline-width: 1px;
81
- }
82
-
83
- --tw-shadow-color: light-dark(
84
- color-mix(in oklab,var(--core-300)50%,transparent),
85
- color-mix(in oklab,var(--core-900)60%,transparent)
86
- );
87
-
88
- background: light-dark(
89
- var(--core-50),
90
- var(--core-950)
91
- );
92
- color: light-dark(
93
- var(--default-800),
94
- var(--default-50)
95
- );
96
- border: 1px solid light-dark(
97
- var(--core-300),
98
- var(--core-900)
99
- );
100
- transition: translate 0.3s ease-out, visibility 0.3s allow-discrete, background-color 0.3s ease-out, opacity 0.1s ease-out;
101
- }
102
-
103
-
104
- @utility drawer-top {
105
- place-items: start;
106
-
107
- :where(.drawer-body) {
108
- height: auto;
109
- width: 100%;
110
- max-width: none;
111
- border-radius: 0;
112
- max-height: calc(100vh - 5em);
113
- translate: 0 -100%;
114
- scale: 1;
115
- }
116
- }
117
-
118
- @utility drawer-bottom {
119
- place-items: end;
120
-
121
- :where(.drawer-body) {
122
- height: auto;
123
- width: 100%;
124
- max-width: none;
125
- border-radius: 0;
126
- max-height: calc(100vh - 5em);
127
- translate: 0 100%;
128
- scale: 1;
129
- }
130
- }
131
-
132
- @utility drawer-start {
133
- place-items: start;
134
-
135
- :where(.drawer-body) {
136
- height: 100vh;
137
- width: auto;
138
- max-height: none;
139
- max-width: none;
140
- border-radius: 0;
141
- translate: -100% 0;
142
- scale: 1;
143
- }
144
- }
145
-
146
- @utility drawer-end {
147
- place-items: end;
148
-
149
- :where(.drawer-body) {
150
- height: 100vh;
151
- max-height: none;
152
- max-width: none;
153
- width: auto;
154
- border-radius: 0;
155
- translate: 100% 0;
156
- scale: 1;
157
- }
158
- }
@@ -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-color: #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-color: light-dark(
97
- var(--core-0),
98
- var(--core-1000)
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
- }