frutjam 1.2.0-beta.0 → 1.4.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "frutjam",
3
- "version": "1.2.0-beta.0",
3
+ "version": "1.4.0-beta.0",
4
4
  "description": "A utility-first CSS framework UI Library",
5
5
  "funding": "https://ko-fi.com/nezanuha",
6
6
  "main": "./dist/frutjam.css",
@@ -45,14 +45,14 @@
45
45
  "css-loader": "^7.1.2",
46
46
  "html-webpack-plugin": "^5.6.3",
47
47
  "mini-css-extract-plugin": "^2.9.2",
48
- "postcss": "^8.5.3",
48
+ "postcss": "^8.5.4",
49
49
  "postcss-import": "^16.1.0",
50
50
  "postcss-loader": "^8.1.1",
51
- "prettier-plugin-tailwindcss": "^0.6.11",
51
+ "prettier-plugin-tailwindcss": "^0.6.12",
52
52
  "string-replace-loader": "^3.1.0",
53
53
  "style-loader": "^4.0.0",
54
54
  "webpack": "^5.99.9",
55
55
  "webpack-cli": "^6.0.1",
56
- "webpack-dev-server": "^5.2.1"
56
+ "webpack-dev-server": "^5.2.2"
57
57
  }
58
58
  }
@@ -1,10 +1,11 @@
1
1
  @import '../theme/jams/base.css';
2
+ @import '../utilities/para.css';
2
3
 
3
4
  @utility accordion {
4
5
  display: grid;
5
- background: light-dark(
6
- var(--core-50),
7
- var(--core-950)
6
+ background-color: light-dark(
7
+ var(--core-0),
8
+ var(--core-1000)
8
9
  );
9
10
  border: 1px solid light-dark(
10
11
  var(--core-200),
@@ -29,6 +30,9 @@
29
30
  &>summary::marker{
30
31
  content: none;
31
32
  }
33
+ &>p{
34
+ @apply para;
35
+ }
32
36
  &>summary{
33
37
  display: flex;
34
38
  gap: 1rem;
@@ -71,6 +71,7 @@
71
71
  gap: 0.5rem;
72
72
  border-radius: var(--badge-radius, var(--radius-badge));
73
73
  display: inline-flex;
74
+ line-height: 1.25rem;
74
75
  align-items: center;
75
76
  justify-content: center;
76
77
  vertical-align: middle;
@@ -1,6 +1,94 @@
1
1
  @import "../theme/jams/base.css";
2
2
  @import "../theme/animation/wiggle.css";
3
3
 
4
+ @utility btn {
5
+ @apply btn-md;
6
+ line-height: 1.5;
7
+ width: var(--btn-width);
8
+ max-width: var(--btn-max-width);
9
+ transition: translate 0.2s ease-out, visibility 0.2s allow-discrete, background-color 0.2s ease-out, opacity 0.1s ease-out, border-color 0.3s;
10
+ position: relative;
11
+ display: var(--btn-display, inline-flex);
12
+ gap: 0.375rem;
13
+ flex-shrink: 0;
14
+ align-items: center;
15
+ justify-content: center;
16
+ align-self: flex-start;
17
+ flex-wrap: nowrap;
18
+ vertical-align: middle;
19
+ font-weight: 500;
20
+ text-align: center;
21
+ border-radius: var(--btn-radius, var(--radius-btn));
22
+ overflow: hidden;
23
+ cursor: pointer;
24
+ box-sizing: border-box;
25
+
26
+ padding-inline: var(--btn-inline);
27
+ padding-block: var(--btn-block);
28
+ font-size: var(--btn-text-size);
29
+
30
+ &:where(.btn-square){
31
+ padding-inline: var(--btn-block);
32
+ padding-block: var(--btn-block);
33
+ }
34
+
35
+ background-color: var(--btn-bg-color);
36
+ color: var(--btn-text-color);
37
+
38
+ outline-color: var(--btn-outline-color);
39
+ outline-style: var(--btn-outline-style);
40
+ outline-width: var(--btn-outline-width);
41
+
42
+ text-decoration: var(--btn-text-decoration);
43
+ text-underline-offset: var(--btn-text-underline-offset);
44
+
45
+ &:is(:disabled, [disabled], .btn-disabled) {
46
+ opacity: 20%;
47
+ cursor: not-allowed;
48
+ pointer-events: none;
49
+ }
50
+
51
+ &:is(input[type="checkbox"], input[type="radio"]) {
52
+ appearance: none;
53
+
54
+ &::after {
55
+ content: attr(aria-label);
56
+ }
57
+
58
+ &:checked {
59
+ isolation: isolate;
60
+ }
61
+ }
62
+
63
+ &:focus-visible {
64
+ outline: 2px solid var(--btn-700, currentColor);
65
+ outline-offset: 2px;
66
+ isolation: isolate;
67
+ }
68
+
69
+ @media (hover: hover) {
70
+ &:is(:hover) {
71
+ @apply btn-active;
72
+ }
73
+ }
74
+
75
+ --btn-50: var(--default-50);
76
+ --btn-100: var(--default-100);
77
+ --btn-200: var(--default-200);
78
+ --btn-300: var(--default-300);
79
+ --btn-400: var(--default-400);
80
+ --btn-500: var(--default-500);
81
+ --btn-600: var(--default-600);
82
+ --btn-700: var(--default-700);
83
+ --btn-800: var(--default-800);
84
+ --btn-900: var(--default-900);
85
+ --btn-950: var(--default-950);
86
+
87
+ --btn-bg-color: light-dark(var(--btn-200), var(--btn-800));
88
+ --btn-text-color: light-dark(var(--btn-900), var(--btn-50));
89
+ }
90
+
91
+
4
92
  @utility btn-xs {
5
93
  --btn-inline: 0.875rem;
6
94
  --btn-block: 0.375rem;
@@ -37,7 +125,7 @@
37
125
  --btn-text-size: 1.375rem;
38
126
  }
39
127
 
40
- /*btn-circle deprecated*/
128
+ /*btn-circle deprecated: Remove this in stable release*/
41
129
  @utility btn-circle {
42
130
  --btn-radius: calc(infinity * 1px);
43
131
  }
@@ -56,53 +144,46 @@
56
144
  --btn-display: block;
57
145
  }
58
146
 
59
- @utility btn-link-active {
60
- background-color: transparent;
61
- color: light-dark(var(--btn-800), var(--btn-500));
62
- text-decoration: underline;
63
- text-underline-offset: 4px;
64
- }
65
-
66
- @utility btn-ghost-active {
67
- /* for default btn */
68
- &:not(
69
- .btn-primary,
70
- .btn-secondary,
71
- .btn-accent,
72
- .btn-info,
73
- .btn-success,
74
- .btn-warning,
75
- .btn-error
76
- ) {
77
- background-color: light-dark(var(--btn-200), var(--btn-900));
78
- color: light-dark(var(--btn-950), var(--btn-100));
79
- }
80
-
81
- /* for all btn exclude default btn */
82
- &:is(
83
- .btn-primary,
84
- .btn-secondary,
85
- .btn-accent,
86
- .btn-info,
87
- .btn-success,
88
- .btn-warning,
89
- .btn-error
90
- ) {
91
- background-color: light-dark(var(--btn-700), var(--btn-900));
92
- color: light-dark(var(--btn-50), var(--btn-100));
93
- }
94
- }
95
-
96
147
  @utility btn-active {
148
+
97
149
  &:is(.btn-link) {
98
- @apply btn-link-active;
150
+ --btn-bg-color: transparent;
151
+ --btn-text-color: light-dark(var(--btn-800), var(--btn-500));
152
+ --btn-text-decoration: underline;
153
+ --btn-text-underline-offset: 4px;
99
154
  }
155
+
100
156
  &:is(.btn-ghost) {
101
- @apply btn-ghost-active;
157
+ /* for default btn */
158
+ &:not(
159
+ .btn-primary,
160
+ .btn-secondary,
161
+ .btn-accent,
162
+ .btn-info,
163
+ .btn-success,
164
+ .btn-warning,
165
+ .btn-error
166
+ ) {
167
+ --btn-bg-color: light-dark(var(--btn-200), var(--btn-900));
168
+ --btn-text-color: light-dark(var(--btn-950), var(--btn-100));
169
+ }
170
+
171
+ /* for all btn exclude default btn */
172
+ &:is(
173
+ .btn-primary,
174
+ .btn-secondary,
175
+ .btn-accent,
176
+ .btn-info,
177
+ .btn-success,
178
+ .btn-warning,
179
+ .btn-error
180
+ ) {
181
+ --btn-bg-color: light-dark(var(--btn-700), var(--btn-900));
182
+ --btn-text-color: light-dark(var(--btn-50), var(--btn-100));
183
+ }
102
184
  }
185
+
103
186
  &:not(.btn-link, .btn-ghost) {
104
- outline-style: none;
105
-
106
187
  /* for default btn */
107
188
  &:not(
108
189
  .btn-primary,
@@ -113,8 +194,8 @@
113
194
  .btn-warning,
114
195
  .btn-error
115
196
  ) {
116
- background-color: light-dark(var(--btn-300), var(--btn-900));
117
- color: light-dark(var(--btn-950), var(--btn-100));
197
+ --btn-bg-color: light-dark(var(--btn-300), var(--btn-900));
198
+ --btn-text-color: light-dark(var(--btn-950), var(--btn-100));
118
199
  }
119
200
 
120
201
  /* for all btn exclude default btn */
@@ -127,148 +208,54 @@
127
208
  .btn-warning,
128
209
  .btn-error
129
210
  ) {
130
- background-color: light-dark(var(--btn-800), var(--btn-800));
131
- color: light-dark(var(--btn-50), var(--btn-100));
211
+ --btn-bg-color: light-dark(var(--btn-800), var(--btn-800));
212
+ --btn-text-color: light-dark(var(--btn-50), var(--btn-100));
132
213
  }
214
+
215
+ --btn-outline-style: none;
133
216
  }
134
217
  }
135
218
 
136
219
  @utility btn-dashed {
137
220
  &:not(.btn-active) {
138
- background-color: transparent;
139
- outline: 1px dashed light-dark(var(--btn-500), var(--btn-700));
140
- color: light-dark(var(--btn-700), var(--btn-500));
221
+ --btn-bg-color: transparent;
222
+ --btn-text-color: light-dark(var(--btn-700), var(--btn-500));
223
+ --btn-outline-color: light-dark(var(--btn-500), var(--btn-700));
224
+ --btn-outline-style: dashed;
225
+ --btn-outline-width: 1px;
141
226
  }
142
227
  }
143
228
 
144
229
  @utility btn-outline {
145
230
  &:not(.btn-active) {
146
- background-color: transparent;
147
- outline: 1px solid light-dark(var(--btn-500), var(--btn-800));
148
- color: light-dark(var(--btn-800), var(--btn-200));
231
+ --btn-bg-color: transparent;
232
+ --btn-text-color: light-dark(var(--btn-800), var(--btn-200));
233
+
234
+ --btn-outline-color: light-dark(var(--btn-500), var(--btn-800));
235
+ --btn-outline-style: solid;
236
+ --btn-outline-width: 1px;
149
237
  }
150
238
  }
151
239
 
152
240
  @utility btn-soft {
153
241
  &:not(.btn-active) {
154
- background-color: light-dark(
155
- var(--btn-100),
156
- color-mix(in oklab, var(--btn-900) 10%, transparent)
157
- );
158
- color: light-dark(var(--btn-800), var(--btn-400));
242
+ --btn-bg-color: light-dark(var(--btn-100), color-mix(in oklab, var(--btn-900) 30%, transparent));
243
+ --btn-text-color: light-dark(var(--btn-800), var(--btn-400));
159
244
  }
160
245
  }
161
246
 
162
247
  @utility btn-ghost {
163
248
  &:not(.btn-active) {
164
- background-color: transparent;
165
- color: light-dark(var(--btn-600), var(--btn-300));
249
+ --btn-bg-color: transparent;
250
+ --btn-text-color: light-dark(var(--btn-600), var(--btn-300));
166
251
  }
167
252
  }
168
253
 
169
254
  @utility btn-link {
170
255
  &:not(.btn-active) {
171
- background-color: transparent;
172
- color: light-dark(var(--btn-700), var(--btn-400));
173
- }
174
- }
175
-
176
- @utility btn {
177
- @apply btn-md;
178
-
179
- text-shadow: 0px 1px 1px color-mix(in oklab, var(--btn-900) 10%, transparent);
180
- line-height: 1.5;
181
- width: var(--btn-width);
182
- max-width: var(--btn-max-width);
183
- transition: translate 0.2s ease-out, visibility 0.2s allow-discrete, background-color 0.2s ease-out, opacity 0.1s ease-out;
184
- position: relative;
185
- display: var(--btn-display, inline-flex);
186
- gap: 0.375rem;
187
- flex-shrink: 0;
188
- align-items: center;
189
- justify-content: center;
190
- align-self: flex-start;
191
- flex-wrap: nowrap;
192
- vertical-align: middle;
193
- font-weight: 500;
194
- text-align: center;
195
- border-radius: var(--btn-radius, var(--radius-btn));
196
- overflow: hidden;
197
- cursor: pointer;
198
- box-sizing: border-box;
199
-
200
- padding-inline: var(--btn-inline);
201
- padding-block: var(--btn-block);
202
- font-size: var(--btn-text-size);
203
-
204
- &:where(.btn-square){
205
- padding-inline: var(--btn-block);
206
- padding-block: var(--btn-block);
256
+ --btn-bg-color: transparent;
257
+ --btn-text-color: light-dark(var(--btn-700), var(--btn-400));
207
258
  }
208
-
209
- /* for default btn */
210
- &:not(
211
- .btn-primary,
212
- .btn-secondary,
213
- .btn-accent,
214
- .btn-info,
215
- .btn-success,
216
- .btn-warning,
217
- .btn-error
218
- ) {
219
- background-color: light-dark(var(--btn-200), var(--btn-800));
220
- color: light-dark(var(--btn-900), var(--btn-50));
221
- }
222
-
223
- /* for all btn exclude default btn */
224
- &:is(
225
- .btn-primary,
226
- .btn-secondary,
227
- .btn-accent,
228
- .btn-info,
229
- .btn-success,
230
- .btn-warning,
231
- .btn-error
232
- ) {
233
- background-color: light-dark(var(--btn-700), var(--btn-700));
234
- color: var(--btn-50);
235
- }
236
-
237
- &:is(:disabled, [disabled], .btn-disabled) {
238
- opacity: 20%;
239
- cursor: not-allowed;
240
- pointer-events: none;
241
- }
242
-
243
- &:is(input[type="checkbox"], input[type="radio"]) {
244
- appearance: none;
245
-
246
- &::after {
247
- content: attr(aria-label);
248
- }
249
-
250
- &:checked {
251
- isolation: isolate;
252
- }
253
- }
254
-
255
- @media (hover: hover) {
256
- &:is(:hover) {
257
- @apply btn-active;
258
- }
259
- }
260
-
261
- --btn-50: var(--default-50);
262
- --btn-100: var(--default-100);
263
- --btn-200: var(--default-200);
264
- --btn-300: var(--default-300);
265
- --btn-400: var(--default-400);
266
- --btn-500: var(--default-500);
267
- --btn-600: var(--default-600);
268
- --btn-700: var(--default-700);
269
- --btn-800: var(--default-800);
270
- --btn-900: var(--default-900);
271
- --btn-950: var(--default-950);
272
259
  }
273
260
 
274
261
  @utility btn-primary {
@@ -283,6 +270,9 @@
283
270
  --btn-800: var(--primary-800);
284
271
  --btn-900: var(--primary-900);
285
272
  --btn-950: var(--primary-950);
273
+
274
+ --btn-bg-color: light-dark(var(--btn-700), var(--btn-700));
275
+ --btn-text-color: var(--btn-50);
286
276
  }
287
277
 
288
278
  @utility btn-secondary {
@@ -297,6 +287,9 @@
297
287
  --btn-800: var(--secondary-800);
298
288
  --btn-900: var(--secondary-900);
299
289
  --btn-950: var(--secondary-950);
290
+
291
+ --btn-bg-color: light-dark(var(--btn-700), var(--btn-700));
292
+ --btn-text-color: var(--btn-50);
300
293
  }
301
294
 
302
295
  @utility btn-accent {
@@ -311,6 +304,9 @@
311
304
  --btn-800: var(--accent-800);
312
305
  --btn-900: var(--accent-900);
313
306
  --btn-950: var(--accent-950);
307
+
308
+ --btn-bg-color: light-dark(var(--btn-700), var(--btn-700));
309
+ --btn-text-color: var(--btn-50);
314
310
  }
315
311
 
316
312
  @utility btn-info {
@@ -325,6 +321,9 @@
325
321
  --btn-800: var(--info-800);
326
322
  --btn-900: var(--info-900);
327
323
  --btn-950: var(--info-950);
324
+
325
+ --btn-bg-color: light-dark(var(--btn-700), var(--btn-700));
326
+ --btn-text-color: var(--btn-50);
328
327
  }
329
328
 
330
329
  @utility btn-success {
@@ -339,6 +338,9 @@
339
338
  --btn-800: var(--success-800);
340
339
  --btn-900: var(--success-900);
341
340
  --btn-950: var(--success-950);
341
+
342
+ --btn-bg-color: light-dark(var(--btn-700), var(--btn-700));
343
+ --btn-text-color: var(--btn-50);
342
344
  }
343
345
 
344
346
  @utility btn-warning {
@@ -353,6 +355,9 @@
353
355
  --btn-800: var(--warning-800);
354
356
  --btn-900: var(--warning-900);
355
357
  --btn-950: var(--warning-950);
358
+
359
+ --btn-bg-color: light-dark(var(--btn-700), var(--btn-700));
360
+ --btn-text-color: var(--btn-50);
356
361
  }
357
362
 
358
363
  @utility btn-error {
@@ -367,4 +372,7 @@
367
372
  --btn-800: var(--error-800);
368
373
  --btn-900: var(--error-900);
369
374
  --btn-950: var(--error-950);
375
+
376
+ --btn-bg-color: light-dark(var(--btn-700), var(--btn-700));
377
+ --btn-text-color: var(--btn-50);
370
378
  }
@@ -3,14 +3,14 @@
3
3
  @utility card-outline {
4
4
  border: 1px solid light-dark(
5
5
  var(--core-200),
6
- var(--core-950)
6
+ var(--core-900)
7
7
  );
8
8
  }
9
9
 
10
10
  @utility card-dashed {
11
11
  border: 1px dashed light-dark(
12
12
  var(--core-200),
13
- var(--core-950)
13
+ var(--core-900)
14
14
  );
15
15
  }
16
16
 
@@ -22,7 +22,10 @@
22
22
  flex-direction: column;
23
23
  border-radius: var(--radius-card);
24
24
  overflow:hidden;
25
- background-color: transparent;
25
+ background-color: light-dark(
26
+ var(--core-0),
27
+ var(--core-1000)
28
+ );
26
29
 
27
30
  :where(figure:first-child) {
28
31
  overflow: hidden;
@@ -46,11 +49,11 @@
46
49
  gap: 0.5rem;
47
50
  flex: auto;
48
51
  flex-direction: column;
49
- padding: 1.5rem;
52
+ padding: var(--card-body-padding, 1.5rem);
50
53
 
51
54
  :where(p){
52
55
  flex-grow: 1;
53
- font-size: 1rem;
56
+ font-size: var(--card-body-font-size, 1rem);
54
57
  }
55
58
  }
56
59
 
@@ -59,5 +62,61 @@
59
62
  align-items: center;
60
63
  gap: 0.5rem;
61
64
  font-weight: 600;
62
- font-size: 1.125rem;
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
+ }
63
122
  }
@@ -36,11 +36,17 @@
36
36
  height: 2rem;
37
37
  }
38
38
 
39
+ /*checkbox-circle deprecated: Remove this in stable release*/
39
40
  @utility checkbox-circle {
40
41
  border-radius: calc(infinity * 1px);
41
42
  aspect-ratio: 1 / 1;
42
43
  }
43
44
 
45
+ @utility checkbox-rounded {
46
+ border-radius: calc(infinity * 1px);
47
+ aspect-ratio: 1 / 1;
48
+ }
49
+
44
50
  @utility checkbox-square {
45
51
  border-radius: var(--radius-checkbox);
46
52
  aspect-ratio: 1 / 1;
@@ -59,12 +65,12 @@
59
65
  appearance: none;
60
66
  vertical-align: middle;
61
67
 
62
- box-shadow: 0 0 0 0px var(--checkbox-100), 0 0 0 calc(1px + 0px) light-dark(var(--checkbox-300), var(--checkbox-500)), 0 0 var(--checkbox-100);
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);
63
69
  /* border: 1.6px solid var(--checkbox-100); */
64
- outline: 1px solid light-dark(
70
+ /* outline: 1px solid light-dark(
65
71
  var(--checkbox-400),
66
72
  var(--checkbox-700)
67
- );
73
+ ); */
68
74
 
69
75
  background-color: light-dark(
70
76
  var(--checkbox-100),
@@ -134,8 +140,8 @@
134
140
 
135
141
  &:checked,
136
142
  &[aria-checked="true"] {
137
- box-shadow: 0 0 0 0px var(--checkbox-100), 0 0 0 calc(1px + 0px) var(--checkbox-400), 0 0 var(--checkbox-100);
138
- background-color: light-dark(var(--checkbox-200), var(--checkbox-600));
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));
139
145
  transition: transform 300ms, background-color 100ms;
140
146
 
141
147
  &::before {
@@ -12,7 +12,10 @@
12
12
  max-width: none;
13
13
  max-height: none;
14
14
  place-items: start;
15
- background-color: transparent;
15
+ background-color: light-dark(
16
+ var(--core-0),
17
+ var(--core-1000)
18
+ );
16
19
  color: inherit;
17
20
  z-index: 999;
18
21
  overflow: hidden;
@@ -58,7 +58,7 @@
58
58
 
59
59
  /* experimental */
60
60
  &:where([popover]) {
61
- background: #0000;
61
+ background-color: #0000;
62
62
  }
63
63
  &[popover] {
64
64
  @apply fixed text-inherit;
@@ -93,9 +93,9 @@
93
93
  var(--core-900)
94
94
  );
95
95
  border-radius: var(--radius-dropdown);
96
- background: light-dark(
97
- var(--core-50),
98
- var(--core-950)
96
+ background-color: light-dark(
97
+ var(--core-0),
98
+ var(--core-1000)
99
99
  );
100
100
  color: light-dark(
101
101
  var(--core-800),
@@ -0,0 +1,159 @@
1
+ @import "../theme/jams/base.css";
2
+
3
+ @utility link {
4
+ cursor: pointer;
5
+ text-decoration: underline;
6
+ text-underline-offset: 4px;
7
+ color: var(--link-700);
8
+ font-size: var(--link-text-size, 1rem);
9
+
10
+ &:focus {
11
+ outline-style: none;
12
+ @media (forced-colors: active) {
13
+ outline: 2px solid transparent;
14
+ outline-offset: 2px;
15
+ }
16
+ }
17
+
18
+ &:focus-visible {
19
+ outline: 2px solid currentColor;
20
+ outline-offset: 2px;
21
+ }
22
+
23
+ @media (hover: hover) {
24
+ &:hover {
25
+ color: light-dark(var(--link-800), var(--link-500));
26
+ }
27
+ }
28
+ }
29
+
30
+ @utility link-hover {
31
+ text-decoration-line: none;
32
+ &:hover {
33
+ @media (hover: hover) {
34
+ text-decoration-line: underline;
35
+ }
36
+ }
37
+ }
38
+
39
+ @utility link-primary {
40
+ --link-50: var(--primary-50);
41
+ --link-100: var(--primary-100);
42
+ --link-200: var(--primary-200);
43
+ --link-300: var(--primary-300);
44
+ --link-400: var(--primary-400);
45
+ --link-500: var(--primary-500);
46
+ --link-600: var(--primary-600);
47
+ --link-700: var(--primary-700);
48
+ --link-800: var(--primary-800);
49
+ --link-900: var(--primary-900);
50
+ --link-950: var(--primary-950);
51
+ }
52
+
53
+ @utility link-secondary {
54
+ --link-50: var(--secondary-50);
55
+ --link-100: var(--secondary-100);
56
+ --link-200: var(--secondary-200);
57
+ --link-300: var(--secondary-300);
58
+ --link-400: var(--secondary-400);
59
+ --link-500: var(--secondary-500);
60
+ --link-600: var(--secondary-600);
61
+ --link-700: var(--secondary-700);
62
+ --link-800: var(--secondary-800);
63
+ --link-900: var(--secondary-900);
64
+ --link-950: var(--secondary-950);
65
+ }
66
+
67
+ @utility link-accent {
68
+ --link-50: var(--accent-50);
69
+ --link-100: var(--accent-100);
70
+ --link-200: var(--accent-200);
71
+ --link-300: var(--accent-300);
72
+ --link-400: var(--accent-400);
73
+ --link-500: var(--accent-500);
74
+ --link-600: var(--accent-600);
75
+ --link-700: var(--accent-700);
76
+ --link-800: var(--accent-800);
77
+ --link-900: var(--accent-900);
78
+ --link-950: var(--accent-950);
79
+ }
80
+
81
+ @utility link-info {
82
+ --link-50: var(--info-50);
83
+ --link-100: var(--info-100);
84
+ --link-200: var(--info-200);
85
+ --link-300: var(--info-300);
86
+ --link-400: var(--info-400);
87
+ --link-500: var(--info-500);
88
+ --link-600: var(--info-600);
89
+ --link-700: var(--info-700);
90
+ --link-800: var(--info-800);
91
+ --link-900: var(--info-900);
92
+ --link-950: var(--info-950);
93
+ }
94
+
95
+ @utility link-success {
96
+ --link-50: var(--success-50);
97
+ --link-100: var(--success-100);
98
+ --link-200: var(--success-200);
99
+ --link-300: var(--success-300);
100
+ --link-400: var(--success-400);
101
+ --link-500: var(--success-500);
102
+ --link-600: var(--success-600);
103
+ --link-700: var(--success-700);
104
+ --link-800: var(--success-800);
105
+ --link-900: var(--success-900);
106
+ --link-950: var(--success-950);
107
+ }
108
+
109
+ @utility link-warning {
110
+ --link-50: var(--warning-50);
111
+ --link-100: var(--warning-100);
112
+ --link-200: var(--warning-200);
113
+ --link-300: var(--warning-300);
114
+ --link-400: var(--warning-400);
115
+ --link-500: var(--warning-500);
116
+ --link-600: var(--warning-600);
117
+ --link-700: var(--warning-700);
118
+ --link-800: var(--warning-800);
119
+ --link-900: var(--warning-900);
120
+ --link-950: var(--warning-950);
121
+ }
122
+
123
+ @utility link-error {
124
+ --link-50: var(--error-50);
125
+ --link-100: var(--error-100);
126
+ --link-200: var(--error-200);
127
+ --link-300: var(--error-300);
128
+ --link-400: var(--error-400);
129
+ --link-500: var(--error-500);
130
+ --link-600: var(--error-600);
131
+ --link-700: var(--error-700);
132
+ --link-800: var(--error-800);
133
+ --link-900: var(--error-900);
134
+ --link-950: var(--error-950);
135
+ }
136
+
137
+ @utility link-xs {
138
+ --link-text-size: 0.75rem;
139
+ }
140
+
141
+ @utility link-sm {
142
+ --link-text-size: 0.875rem;
143
+ }
144
+
145
+ @utility link-md {
146
+ --link-text-size: 1rem;
147
+ }
148
+
149
+ @utility link-lg {
150
+ --link-text-size: 1.125rem;
151
+ }
152
+
153
+ @utility link-xl {
154
+ --link-text-size: 1.25rem;
155
+ }
156
+
157
+ @utility link-2xl {
158
+ --link-text-size: 1.375rem;
159
+ }
@@ -15,7 +15,10 @@
15
15
  justify-items: center;
16
16
  color: inherit;
17
17
  padding: 0.75rem;
18
- background-color: transparent;
18
+ background-color: light-dark(
19
+ var(--core-0),
20
+ var(--core-1000)
21
+ );
19
22
  inset: 0rem;
20
23
  margin: 0rem;
21
24
  pointer-events: none;
@@ -91,13 +94,9 @@
91
94
  overscroll-behavior: contain;
92
95
  border-radius: var(--radius-modal);
93
96
 
94
- /* --tw-shadow-color: light-dark(
95
- color-mix(in oklab,var(--core-300)50%,transparent),
96
- color-mix(in oklab,var(--core-900)60%,transparent)
97
- ); */
98
- background: light-dark(
99
- var(--core-50),
100
- var(--core-950)
97
+ background-color: light-dark(
98
+ var(--core-0),
99
+ var(--core-1000)
101
100
  );
102
101
  color: light-dark(
103
102
  var(--core-800),
@@ -1,4 +1,4 @@
1
- /* use for breadcrums and menu */
1
+ /* use for menu */
2
2
  @import "../theme/placement.css";
3
3
 
4
4
  @utility nav-x-* {
@@ -1,9 +1,12 @@
1
1
  @import "../theme/jams/base.css";
2
2
 
3
3
  @utility sidebar {
4
- position: sticky;
5
- overflow-y: auto;
4
+ display: flex;
5
+ flex-direction: column;
6
6
  gap: 1.25rem;
7
+ overflow-y: auto;
8
+ overflow-x:hidden;
9
+ position: sticky;
7
10
  max-height: 100dvh;
8
11
  padding: 1.5rem;
9
12
  border-inline-style: solid;
@@ -16,6 +19,4 @@
16
19
  var(--core-0),
17
20
  var(--core-1000)
18
21
  );
19
- display: flex;
20
- flex-direction: column;
21
22
  }
package/src/main.css CHANGED
@@ -7,6 +7,7 @@
7
7
  @import "./components/drawer.css";
8
8
  @import "./components/checkbox.css";
9
9
  @import "./components/accordion.css";
10
+ @import "./components/link.css";
10
11
  /* @import "./components/popover.css"; */
11
12
  /* @import "./components/dropdown.css"; */
12
13
  @import "./components/divider.css";
@@ -1,7 +1,7 @@
1
1
  @utility core-para {
2
- text-wrap: balance;
2
+ text-wrap-style: stable;
3
3
  color:light-dark(
4
- var(--core-900),
4
+ var(--core-700),
5
5
  var(--core-300)
6
6
  );
7
7
  }