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,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
- }