mljr-css 0.1.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 (53) hide show
  1. package/README.md +299 -0
  2. package/dist/mljr.css +12214 -0
  3. package/dist/mljr.min.css +3 -0
  4. package/dist/plugin.cjs +139 -0
  5. package/dist/plugin.d.cts +73 -0
  6. package/dist/plugin.d.ts +73 -0
  7. package/dist/plugin.js +102 -0
  8. package/package.json +60 -0
  9. package/src/base/reset.css +210 -0
  10. package/src/base/typography.css +286 -0
  11. package/src/components/accordion.css +210 -0
  12. package/src/components/alert.css +231 -0
  13. package/src/components/avatar.css +222 -0
  14. package/src/components/badge.css +315 -0
  15. package/src/components/breadcrumb.css +100 -0
  16. package/src/components/button.css +383 -0
  17. package/src/components/card.css +319 -0
  18. package/src/components/carousel.css +179 -0
  19. package/src/components/checkbox.css +303 -0
  20. package/src/components/chip.css +207 -0
  21. package/src/components/divider.css +248 -0
  22. package/src/components/drawer.css +242 -0
  23. package/src/components/dropdown.css +246 -0
  24. package/src/components/empty-state.css +216 -0
  25. package/src/components/file-upload.css +262 -0
  26. package/src/components/footer.css +231 -0
  27. package/src/components/input.css +504 -0
  28. package/src/components/modal.css +179 -0
  29. package/src/components/pagination.css +143 -0
  30. package/src/components/password.css +449 -0
  31. package/src/components/popover.css +175 -0
  32. package/src/components/progress.css +165 -0
  33. package/src/components/radio.css +200 -0
  34. package/src/components/select.css +165 -0
  35. package/src/components/sidebar.css +236 -0
  36. package/src/components/skeleton.css +161 -0
  37. package/src/components/spinner.css +259 -0
  38. package/src/components/stepper.css +257 -0
  39. package/src/components/table.css +184 -0
  40. package/src/components/tabs.css +219 -0
  41. package/src/components/textarea.css +164 -0
  42. package/src/components/toast.css +294 -0
  43. package/src/components/tooltip.css +99 -0
  44. package/src/index.css +54 -0
  45. package/src/layout/container.css +181 -0
  46. package/src/layout/footer.css +319 -0
  47. package/src/layout/header.css +223 -0
  48. package/src/layout/navbar.css +461 -0
  49. package/src/layout/navigation.css +328 -0
  50. package/src/layout/sidebar.css +334 -0
  51. package/src/plugin.ts +130 -0
  52. package/src/themes/variables.css +345 -0
  53. package/src/utilities/utilities.css +598 -0
@@ -0,0 +1,179 @@
1
+ /* ============================================
2
+ MLJR CSS Framework - Carousel Component
3
+ Claymorphism: Soft rounded carousel
4
+ ============================================ */
5
+
6
+ .mljr-carousel {
7
+ position: relative;
8
+ width: 100%;
9
+ overflow: hidden;
10
+ border-radius: var(--mljr-radius-xl);
11
+ outline: none;
12
+ }
13
+
14
+ .mljr-carousel:focus-visible {
15
+ outline: 3px solid var(--mljr-primary-300);
16
+ outline-offset: 2px;
17
+ }
18
+
19
+ .mljr-carousel-inner {
20
+ display: flex;
21
+ flex-wrap: nowrap;
22
+ width: 100%;
23
+ transition: transform var(--mljr-transition-slow);
24
+ will-change: transform;
25
+ }
26
+
27
+ .mljr-carousel-item {
28
+ flex: 0 0 100%;
29
+ width: 100%;
30
+ min-width: 100%;
31
+ display: block;
32
+ overflow: hidden;
33
+ }
34
+
35
+ .mljr-carousel-item img {
36
+ display: block;
37
+ width: 100%;
38
+ height: 100%;
39
+ object-fit: cover;
40
+ }
41
+
42
+ /* Peek variant - shows partial next slide */
43
+ .mljr-carousel-peek .mljr-carousel-item {
44
+ flex: 0 0 85%;
45
+ min-width: 85%;
46
+ padding-right: var(--mljr-space-4);
47
+ }
48
+
49
+ /* Navigation Buttons */
50
+ .mljr-carousel-btn {
51
+ position: absolute;
52
+ top: 50%;
53
+ transform: translateY(-50%);
54
+ width: 3rem;
55
+ height: 3rem;
56
+ display: flex;
57
+ align-items: center;
58
+ justify-content: center;
59
+ background-color: var(--mljr-bg);
60
+ border: none;
61
+ color: var(--mljr-text);
62
+ cursor: pointer;
63
+ z-index: 50;
64
+ border-radius: var(--mljr-radius-sm);
65
+ transition: all var(--mljr-transition-fast);
66
+ box-shadow: var(--mljr-clay-shadow);
67
+ }
68
+
69
+ .mljr-carousel-btn:hover:not(:disabled) {
70
+ background: var(--mljr-gradient-primary);
71
+ color: white;
72
+ transform: translateY(-50%) scale(1.05);
73
+ }
74
+
75
+ .mljr-carousel-btn:active:not(:disabled) {
76
+ transform: translateY(-50%) scale(1);
77
+ box-shadow: var(--mljr-clay-shadow-sm);
78
+ }
79
+
80
+ .mljr-carousel-btn:focus-visible {
81
+ outline: 3px solid var(--mljr-primary-300);
82
+ outline-offset: 2px;
83
+ }
84
+
85
+ .mljr-carousel-btn:disabled {
86
+ opacity: 0.4;
87
+ cursor: not-allowed;
88
+ }
89
+
90
+ .mljr-carousel-btn-prev { left: var(--mljr-space-4); }
91
+ .mljr-carousel-btn-next { right: var(--mljr-space-4); }
92
+
93
+ /* Dark mode buttons */
94
+ .dark .mljr-carousel-btn,
95
+ [data-theme="dark"] .mljr-carousel-btn {
96
+ background-color: var(--mljr-bg-secondary);
97
+ }
98
+
99
+ /* Indicators - Soft rounded dots */
100
+ .mljr-carousel-indicators {
101
+ position: absolute;
102
+ bottom: var(--mljr-space-4);
103
+ left: 50%;
104
+ transform: translateX(-50%);
105
+ display: flex;
106
+ justify-content: center;
107
+ gap: var(--mljr-space-2);
108
+ padding: var(--mljr-space-2) var(--mljr-space-3);
109
+ z-index: 50;
110
+ background-color: rgba(255, 255, 255, 0.7);
111
+ backdrop-filter: blur(8px);
112
+ border-radius: var(--mljr-radius-full);
113
+ box-shadow: var(--mljr-clay-shadow-sm);
114
+ }
115
+
116
+ .mljr-carousel-indicator {
117
+ width: 0.625rem;
118
+ height: 0.625rem;
119
+ background-color: var(--mljr-gray-300);
120
+ border: none;
121
+ border-radius: var(--mljr-radius-full);
122
+ cursor: pointer;
123
+ transition: all var(--mljr-transition-fast);
124
+ opacity: 1;
125
+ visibility: visible;
126
+ }
127
+
128
+ .mljr-carousel-indicator:hover {
129
+ background-color: var(--mljr-primary-300);
130
+ }
131
+
132
+ .mljr-carousel-indicator:focus-visible {
133
+ outline: 2px solid var(--mljr-primary-300);
134
+ outline-offset: 2px;
135
+ }
136
+
137
+ .mljr-carousel-indicator.active,
138
+ .mljr-carousel-indicator[aria-selected="true"] {
139
+ background: var(--mljr-gradient-primary);
140
+ transform: scale(1.2);
141
+ box-shadow: 0 0 8px rgba(249, 115, 22, 0.3);
142
+ }
143
+
144
+ /* Dark mode indicators */
145
+ .dark .mljr-carousel-indicators,
146
+ [data-theme="dark"] .mljr-carousel-indicators {
147
+ background-color: rgba(41, 37, 36, 0.8);
148
+ }
149
+
150
+ .dark .mljr-carousel-indicator,
151
+ [data-theme="dark"] .mljr-carousel-indicator {
152
+ background-color: var(--mljr-gray-600);
153
+ }
154
+
155
+ .dark .mljr-carousel-indicator.active,
156
+ [data-theme="dark"] .mljr-carousel-indicator.active {
157
+ box-shadow: 0 0 12px rgba(249, 115, 22, 0.4);
158
+ }
159
+
160
+ /* Fade variant */
161
+ .mljr-carousel-fade .mljr-carousel-inner {
162
+ position: relative;
163
+ }
164
+
165
+ .mljr-carousel-fade .mljr-carousel-item {
166
+ position: absolute;
167
+ top: 0;
168
+ left: 0;
169
+ width: 100%;
170
+ opacity: 0;
171
+ transition: opacity var(--mljr-transition-slow);
172
+ pointer-events: none;
173
+ }
174
+
175
+ .mljr-carousel-fade .mljr-carousel-item.active {
176
+ position: relative;
177
+ opacity: 1;
178
+ pointer-events: auto;
179
+ }
@@ -0,0 +1,303 @@
1
+ /* ============================================
2
+ MLJR CSS Framework - Checkbox & Radio Components
3
+ Claymorphism: Soft rounded controls with shadows
4
+ ============================================ */
5
+
6
+ /* Checkbox */
7
+ .mljr-checkbox {
8
+ display: inline-flex;
9
+ align-items: center;
10
+ gap: var(--mljr-space-2);
11
+ cursor: pointer;
12
+ user-select: none;
13
+ }
14
+
15
+ .mljr-checkbox-input {
16
+ appearance: none;
17
+ width: 1.25rem;
18
+ height: 1.25rem;
19
+ background-color: var(--mljr-bg);
20
+ border: none;
21
+ border-radius: var(--mljr-radius-sm);
22
+ cursor: pointer;
23
+ transition: all var(--mljr-transition-fast);
24
+ flex-shrink: 0;
25
+ box-shadow: var(--mljr-clay-inset-sm);
26
+ }
27
+
28
+ .mljr-checkbox-input:hover {
29
+ background-color: var(--mljr-bg-secondary);
30
+ }
31
+
32
+ .mljr-checkbox-input:focus {
33
+ outline: none;
34
+ box-shadow:
35
+ var(--mljr-clay-inset-sm),
36
+ 0 0 0 3px var(--mljr-primary-200);
37
+ }
38
+
39
+ .mljr-checkbox-input:checked {
40
+ background-color: var(--mljr-primary-500);
41
+ background-image:
42
+ linear-gradient(135deg, var(--mljr-primary-400) 0%, var(--mljr-primary-600) 100%),
43
+ url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
44
+ background-size: 100% 100%, 70% 70%;
45
+ background-position: center, center;
46
+ background-repeat: no-repeat, no-repeat;
47
+ box-shadow:
48
+ 4px 4px 8px rgba(249, 115, 22, 0.35),
49
+ -3px -3px 6px rgba(255, 255, 255, 0.9),
50
+ inset 0px 2px 4px rgba(255, 255, 255, 0.3);
51
+ }
52
+
53
+ .mljr-checkbox-input:indeterminate {
54
+ background-color: var(--mljr-primary-500);
55
+ background-image:
56
+ linear-gradient(135deg, var(--mljr-primary-400) 0%, var(--mljr-primary-600) 100%),
57
+ url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M4 8a1 1 0 011-1h6a1 1 0 110 2H5a1 1 0 01-1-1z'/%3e%3c/svg%3e");
58
+ background-size: 100% 100%, 70% 70%;
59
+ background-position: center, center;
60
+ background-repeat: no-repeat, no-repeat;
61
+ box-shadow:
62
+ 4px 4px 8px rgba(249, 115, 22, 0.35),
63
+ -3px -3px 6px rgba(255, 255, 255, 0.9),
64
+ inset 0px 2px 4px rgba(255, 255, 255, 0.3);
65
+ }
66
+
67
+ .mljr-checkbox-input:disabled {
68
+ opacity: 0.5;
69
+ cursor: not-allowed;
70
+ }
71
+
72
+ .mljr-checkbox-label {
73
+ font-size: var(--mljr-text-sm);
74
+ color: var(--mljr-text);
75
+ }
76
+
77
+ /* Primary Color Checkbox (explicit) */
78
+ .mljr-checkbox-primary .mljr-checkbox-input:checked,
79
+ .mljr-checkbox-primary .mljr-checkbox-input:indeterminate {
80
+ background-color: var(--mljr-primary-500);
81
+ background-image:
82
+ linear-gradient(135deg, var(--mljr-primary-400) 0%, var(--mljr-primary-600) 100%),
83
+ url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
84
+ box-shadow:
85
+ 4px 4px 8px rgba(249, 115, 22, 0.35),
86
+ -3px -3px 6px rgba(255, 255, 255, 0.9),
87
+ inset 0px 2px 4px rgba(255, 255, 255, 0.3);
88
+ }
89
+
90
+ /* Secondary Color Checkbox */
91
+ .mljr-checkbox-secondary .mljr-checkbox-input:focus {
92
+ box-shadow:
93
+ var(--mljr-clay-inset-sm),
94
+ 0 0 0 3px var(--mljr-secondary-200);
95
+ }
96
+
97
+ .mljr-checkbox-secondary .mljr-checkbox-input:checked,
98
+ .mljr-checkbox-secondary .mljr-checkbox-input:indeterminate {
99
+ background-color: var(--mljr-secondary-500);
100
+ background-image:
101
+ linear-gradient(135deg, var(--mljr-secondary-400) 0%, var(--mljr-secondary-600) 100%),
102
+ url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
103
+ background-size: 100% 100%, 70% 70%;
104
+ background-position: center, center;
105
+ background-repeat: no-repeat, no-repeat;
106
+ box-shadow:
107
+ 4px 4px 8px rgba(168, 85, 247, 0.35),
108
+ -3px -3px 6px rgba(255, 255, 255, 0.9),
109
+ inset 0px 2px 4px rgba(255, 255, 255, 0.3);
110
+ }
111
+
112
+ /* Radio */
113
+ .mljr-radio {
114
+ display: inline-flex;
115
+ align-items: center;
116
+ gap: var(--mljr-space-2);
117
+ cursor: pointer;
118
+ user-select: none;
119
+ }
120
+
121
+ .mljr-radio-input {
122
+ appearance: none;
123
+ width: 1.25rem;
124
+ height: 1.25rem;
125
+ background-color: var(--mljr-bg);
126
+ border: none;
127
+ border-radius: var(--mljr-radius-full);
128
+ cursor: pointer;
129
+ transition: all var(--mljr-transition-fast);
130
+ flex-shrink: 0;
131
+ box-shadow: var(--mljr-clay-inset-sm);
132
+ }
133
+
134
+ .mljr-radio-input:hover {
135
+ background-color: var(--mljr-bg-secondary);
136
+ }
137
+
138
+ .mljr-radio-input:focus {
139
+ outline: none;
140
+ box-shadow:
141
+ var(--mljr-clay-inset-sm),
142
+ 0 0 0 3px var(--mljr-primary-200);
143
+ }
144
+
145
+ .mljr-radio-input:checked {
146
+ background-color: var(--mljr-primary-500);
147
+ background-image:
148
+ linear-gradient(135deg, var(--mljr-primary-400) 0%, var(--mljr-primary-600) 100%),
149
+ url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='4'/%3e%3c/svg%3e");
150
+ background-size: 100% 100%, 60% 60%;
151
+ background-position: center, center;
152
+ background-repeat: no-repeat, no-repeat;
153
+ box-shadow:
154
+ 4px 4px 8px rgba(249, 115, 22, 0.35),
155
+ -3px -3px 6px rgba(255, 255, 255, 0.9),
156
+ inset 0px 2px 4px rgba(255, 255, 255, 0.3);
157
+ }
158
+
159
+ .mljr-radio-input:disabled {
160
+ opacity: 0.5;
161
+ cursor: not-allowed;
162
+ }
163
+
164
+ .mljr-radio-label {
165
+ font-size: var(--mljr-text-sm);
166
+ color: var(--mljr-text);
167
+ }
168
+
169
+ /* Primary Color Radio (explicit) */
170
+ .mljr-radio-primary .mljr-radio-input:checked {
171
+ background-color: var(--mljr-primary-500);
172
+ background-image:
173
+ linear-gradient(135deg, var(--mljr-primary-400) 0%, var(--mljr-primary-600) 100%),
174
+ url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='4'/%3e%3c/svg%3e");
175
+ box-shadow:
176
+ 4px 4px 8px rgba(249, 115, 22, 0.35),
177
+ -3px -3px 6px rgba(255, 255, 255, 0.9),
178
+ inset 0px 2px 4px rgba(255, 255, 255, 0.3);
179
+ }
180
+
181
+ /* Secondary Color Radio */
182
+ .mljr-radio-secondary .mljr-radio-input:focus {
183
+ box-shadow:
184
+ var(--mljr-clay-inset-sm),
185
+ 0 0 0 3px var(--mljr-secondary-200);
186
+ }
187
+
188
+ .mljr-radio-secondary .mljr-radio-input:checked {
189
+ background-color: var(--mljr-secondary-500);
190
+ background-image:
191
+ linear-gradient(135deg, var(--mljr-secondary-400) 0%, var(--mljr-secondary-600) 100%),
192
+ url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='4'/%3e%3c/svg%3e");
193
+ background-size: 100% 100%, 60% 60%;
194
+ background-position: center, center;
195
+ background-repeat: no-repeat, no-repeat;
196
+ box-shadow:
197
+ 4px 4px 8px rgba(168, 85, 247, 0.35),
198
+ -3px -3px 6px rgba(255, 255, 255, 0.9),
199
+ inset 0px 2px 4px rgba(255, 255, 255, 0.3);
200
+ }
201
+
202
+ /* Radio Group */
203
+ .mljr-radio-group {
204
+ display: flex;
205
+ flex-direction: column;
206
+ gap: var(--mljr-space-2);
207
+ }
208
+
209
+ .mljr-radio-group-horizontal {
210
+ flex-direction: row;
211
+ gap: var(--mljr-space-4);
212
+ }
213
+
214
+ /* Switch / Toggle */
215
+ .mljr-switch {
216
+ display: inline-flex;
217
+ align-items: center;
218
+ gap: var(--mljr-space-2);
219
+ cursor: pointer;
220
+ user-select: none;
221
+ }
222
+
223
+ .mljr-switch-input {
224
+ appearance: none;
225
+ width: 2.75rem;
226
+ height: 1.5rem;
227
+ background-color: var(--mljr-gray-300);
228
+ border-radius: var(--mljr-radius-full);
229
+ position: relative;
230
+ cursor: pointer;
231
+ transition: background-color var(--mljr-transition-fast);
232
+ flex-shrink: 0;
233
+ box-shadow: var(--mljr-clay-inset-sm);
234
+ }
235
+
236
+ .mljr-switch-input::before {
237
+ content: "";
238
+ position: absolute;
239
+ width: 1.125rem;
240
+ height: 1.125rem;
241
+ background-color: white;
242
+ top: 50%;
243
+ left: 3px;
244
+ transform: translateY(-50%);
245
+ transition: left var(--mljr-transition-fast);
246
+ border-radius: var(--mljr-radius-full);
247
+ box-shadow: var(--mljr-clay-shadow-sm);
248
+ }
249
+
250
+ .mljr-switch-input:checked {
251
+ background: var(--mljr-gradient-primary);
252
+ box-shadow:
253
+ inset 2px 2px 4px rgba(0, 0, 0, 0.1),
254
+ inset -2px -2px 4px rgba(255, 255, 255, 0.2);
255
+ }
256
+
257
+ .mljr-switch-input:checked::before {
258
+ left: calc(100% - 1.125rem - 3px);
259
+ }
260
+
261
+ .mljr-switch-input:focus {
262
+ outline: none;
263
+ box-shadow:
264
+ var(--mljr-clay-inset-sm),
265
+ 0 0 0 3px var(--mljr-primary-200);
266
+ }
267
+
268
+ .mljr-switch-input:disabled {
269
+ opacity: 0.5;
270
+ cursor: not-allowed;
271
+ }
272
+
273
+ .mljr-switch-label {
274
+ font-size: var(--mljr-text-sm);
275
+ color: var(--mljr-text);
276
+ }
277
+
278
+ /* Secondary Color Switch */
279
+ .mljr-switch-secondary .mljr-switch-input:checked {
280
+ background: var(--mljr-gradient-secondary);
281
+ }
282
+
283
+ .mljr-switch-secondary .mljr-switch-input:focus {
284
+ box-shadow:
285
+ var(--mljr-clay-inset-sm),
286
+ 0 0 0 3px var(--mljr-secondary-200);
287
+ }
288
+
289
+ /* Dark mode adjustments */
290
+ .dark .mljr-checkbox-input,
291
+ .dark .mljr-radio-input,
292
+ .dark .mljr-switch-input,
293
+ [data-theme="dark"] .mljr-checkbox-input,
294
+ [data-theme="dark"] .mljr-radio-input,
295
+ [data-theme="dark"] .mljr-switch-input {
296
+ background-color: var(--mljr-bg-secondary);
297
+ box-shadow: var(--mljr-clay-inset-sm);
298
+ }
299
+
300
+ .dark .mljr-switch-input:not(:checked),
301
+ [data-theme="dark"] .mljr-switch-input:not(:checked) {
302
+ background-color: var(--mljr-gray-600);
303
+ }
@@ -0,0 +1,207 @@
1
+ /* ============================================
2
+ MLJR CSS Framework - Chip/Tag Component
3
+ Claymorphism: Soft rounded labels
4
+ ============================================ */
5
+
6
+ .mljr-chip {
7
+ display: inline-flex;
8
+ align-items: center;
9
+ gap: var(--mljr-space-1);
10
+ padding: var(--mljr-space-1) var(--mljr-space-3);
11
+ font-size: var(--mljr-text-xs);
12
+ font-weight: 500;
13
+ line-height: 1.25rem;
14
+ color: var(--mljr-text);
15
+ background: var(--mljr-bg);
16
+ border-radius: var(--mljr-radius-full);
17
+ box-shadow: var(--mljr-clay-shadow-xs);
18
+ transition: all var(--mljr-transition-fast);
19
+ cursor: default;
20
+ white-space: nowrap;
21
+ }
22
+
23
+ .mljr-chip:hover {
24
+ transform: translateY(-1px);
25
+ box-shadow: var(--mljr-clay-shadow-sm);
26
+ }
27
+
28
+ /* Variants */
29
+ .mljr-chip-primary {
30
+ background: var(--mljr-primary-100);
31
+ color: var(--mljr-primary-700);
32
+ box-shadow:
33
+ 2px 2px 4px rgba(249, 115, 22, 0.15),
34
+ -2px -2px 4px rgba(255, 255, 255, 0.8);
35
+ }
36
+
37
+ .mljr-chip-secondary {
38
+ background: var(--mljr-secondary-100);
39
+ color: var(--mljr-secondary-700);
40
+ box-shadow:
41
+ 2px 2px 4px rgba(168, 85, 247, 0.15),
42
+ -2px -2px 4px rgba(255, 255, 255, 0.8);
43
+ }
44
+
45
+ .mljr-chip-accent {
46
+ background: var(--mljr-accent-100);
47
+ color: var(--mljr-accent-700);
48
+ box-shadow:
49
+ 2px 2px 4px rgba(20, 184, 166, 0.15),
50
+ -2px -2px 4px rgba(255, 255, 255, 0.8);
51
+ }
52
+
53
+ .mljr-chip-success {
54
+ background: rgba(16, 185, 129, 0.15);
55
+ color: var(--mljr-success-dark);
56
+ box-shadow:
57
+ 2px 2px 4px rgba(16, 185, 129, 0.1),
58
+ -2px -2px 4px rgba(255, 255, 255, 0.8);
59
+ }
60
+
61
+ .mljr-chip-warning {
62
+ background: rgba(245, 158, 11, 0.15);
63
+ color: var(--mljr-warning-dark);
64
+ box-shadow:
65
+ 2px 2px 4px rgba(245, 158, 11, 0.1),
66
+ -2px -2px 4px rgba(255, 255, 255, 0.8);
67
+ }
68
+
69
+ .mljr-chip-error {
70
+ background: rgba(239, 68, 68, 0.15);
71
+ color: var(--mljr-error-dark);
72
+ box-shadow:
73
+ 2px 2px 4px rgba(239, 68, 68, 0.1),
74
+ -2px -2px 4px rgba(255, 255, 255, 0.8);
75
+ }
76
+
77
+ .mljr-chip-outline {
78
+ background: transparent;
79
+ box-shadow: inset 0 0 0 1.5px var(--mljr-border-strong);
80
+ }
81
+
82
+ .mljr-chip-outline:hover {
83
+ box-shadow: inset 0 0 0 1.5px var(--mljr-primary-400), var(--mljr-clay-shadow-xs);
84
+ }
85
+
86
+ /* Sizes */
87
+ .mljr-chip-sm {
88
+ padding: 0.125rem var(--mljr-space-2);
89
+ font-size: var(--mljr-text-xs);
90
+ }
91
+
92
+ .mljr-chip-lg {
93
+ padding: var(--mljr-space-2) var(--mljr-space-4);
94
+ font-size: var(--mljr-text-sm);
95
+ }
96
+
97
+ /* Clickable */
98
+ .mljr-chip-clickable {
99
+ cursor: pointer;
100
+ }
101
+
102
+ .mljr-chip-clickable:active {
103
+ transform: translateY(0);
104
+ box-shadow: var(--mljr-clay-inset-xs);
105
+ }
106
+
107
+ /* Removable */
108
+ .mljr-chip-removable {
109
+ padding-right: var(--mljr-space-2);
110
+ }
111
+
112
+ .mljr-chip-remove {
113
+ display: flex;
114
+ align-items: center;
115
+ justify-content: center;
116
+ width: 1rem;
117
+ height: 1rem;
118
+ padding: 0;
119
+ margin-left: var(--mljr-space-1);
120
+ background: transparent;
121
+ border: none;
122
+ border-radius: var(--mljr-radius-full);
123
+ color: currentColor;
124
+ opacity: 0.6;
125
+ cursor: pointer;
126
+ transition: all var(--mljr-transition-fast);
127
+ }
128
+
129
+ .mljr-chip-remove:hover {
130
+ opacity: 1;
131
+ background: rgba(0, 0, 0, 0.1);
132
+ }
133
+
134
+ /* With Icon */
135
+ .mljr-chip-icon {
136
+ width: 1rem;
137
+ height: 1rem;
138
+ flex-shrink: 0;
139
+ }
140
+
141
+ .mljr-chip-sm .mljr-chip-icon {
142
+ width: 0.875rem;
143
+ height: 0.875rem;
144
+ }
145
+
146
+ .mljr-chip-lg .mljr-chip-icon {
147
+ width: 1.25rem;
148
+ height: 1.25rem;
149
+ }
150
+
151
+ /* Avatar in Chip */
152
+ .mljr-chip-avatar {
153
+ width: 1.25rem;
154
+ height: 1.25rem;
155
+ margin-left: calc(var(--mljr-space-1) * -1);
156
+ margin-right: var(--mljr-space-1);
157
+ border-radius: var(--mljr-radius-full);
158
+ object-fit: cover;
159
+ }
160
+
161
+ /* Group */
162
+ .mljr-chip-group {
163
+ display: flex;
164
+ flex-wrap: wrap;
165
+ gap: var(--mljr-space-2);
166
+ }
167
+
168
+ /* Disabled */
169
+ .mljr-chip-disabled {
170
+ opacity: 0.5;
171
+ cursor: not-allowed;
172
+ pointer-events: none;
173
+ }
174
+
175
+ /* Dark Mode */
176
+ .dark .mljr-chip,
177
+ [data-theme="dark"] .mljr-chip {
178
+ background: var(--mljr-bg-secondary);
179
+ box-shadow: var(--mljr-clay-shadow-xs);
180
+ }
181
+
182
+ .dark .mljr-chip-primary,
183
+ [data-theme="dark"] .mljr-chip-primary {
184
+ background: rgba(249, 115, 22, 0.2);
185
+ color: var(--mljr-primary-300);
186
+ box-shadow:
187
+ 2px 2px 4px rgba(0, 0, 0, 0.3),
188
+ -2px -2px 4px rgba(68, 64, 60, 0.2);
189
+ }
190
+
191
+ .dark .mljr-chip-secondary,
192
+ [data-theme="dark"] .mljr-chip-secondary {
193
+ background: rgba(168, 85, 247, 0.2);
194
+ color: var(--mljr-secondary-300);
195
+ }
196
+
197
+ .dark .mljr-chip-accent,
198
+ [data-theme="dark"] .mljr-chip-accent {
199
+ background: rgba(20, 184, 166, 0.2);
200
+ color: var(--mljr-accent-300);
201
+ }
202
+
203
+ .dark .mljr-chip-outline,
204
+ [data-theme="dark"] .mljr-chip-outline {
205
+ background: transparent;
206
+ box-shadow: inset 0 0 0 1.5px var(--mljr-border);
207
+ }