@zidsa/zidmui 1.4.41 → 1.5.1

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.
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Alert Component
3
+ * Matches MUI Alert styling exactly
4
+ * Severity variants: success, info, warning, error
5
+ */
6
+
7
+ /* ========================================
8
+ * Base Alert
9
+ * ======================================== */
10
+ :where(.zid-alert) {
11
+ display: flex;
12
+ padding: 6px 16px;
13
+ font-family: var(--zid-font-family);
14
+ font-size: 0.875rem;
15
+ line-height: 1.43;
16
+ letter-spacing: 0.01071em;
17
+ border-radius: 12px;
18
+ border-style: solid;
19
+ border-width: 1px;
20
+ flex-wrap: wrap;
21
+ }
22
+
23
+ /* ========================================
24
+ * Alert Icon
25
+ * ======================================== */
26
+ .zid-alert__icon {
27
+ display: flex;
28
+ flex: 0;
29
+ padding-block: 6px;
30
+ align-items: flex-start;
31
+ margin-right: 12px;
32
+ opacity: 0.9;
33
+ }
34
+
35
+ .zid-alert__icon svg {
36
+ width: 22px;
37
+ height: 22px;
38
+ fill: currentColor;
39
+ }
40
+
41
+ /* ========================================
42
+ * Alert Content
43
+ * ======================================== */
44
+ .zid-alert__content {
45
+ flex: 1;
46
+ padding-block: 6px;
47
+ display: flex;
48
+ flex-direction: column;
49
+ gap: 4px;
50
+ }
51
+
52
+ .zid-alert__title {
53
+ font-weight: 500;
54
+ font-size: 0.875rem;
55
+ line-height: 1.57;
56
+ letter-spacing: 0.00714em;
57
+ margin: 0;
58
+ }
59
+
60
+ .zid-alert__message {
61
+ font-size: 0.875rem;
62
+ line-height: 1.43;
63
+ letter-spacing: 0.01071em;
64
+ }
65
+
66
+ /* ========================================
67
+ * Alert Close Button
68
+ * ======================================== */
69
+ .zid-alert__close {
70
+ display: flex;
71
+ align-items: flex-start;
72
+ padding-top: 2px;
73
+ margin-right: 0;
74
+ margin-left: auto;
75
+ border: none;
76
+ background: transparent;
77
+ cursor: pointer;
78
+ padding: 4px;
79
+ border-radius: 50%;
80
+ transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1);
81
+ }
82
+
83
+ .zid-alert__close:hover {
84
+ background-color: rgba(0, 0, 0, 0.04);
85
+ }
86
+
87
+ .zid-alert__close svg {
88
+ width: 20px;
89
+ height: 20px;
90
+ fill: currentColor;
91
+ }
92
+
93
+ /* ========================================
94
+ * Success Variant
95
+ * ======================================== */
96
+ .zid-alert--success {
97
+ background-color: #F7FDF7;
98
+ border-color: #CAF4C8;
99
+ color: inherit;
100
+ }
101
+
102
+ .zid-alert--success .zid-alert__icon {
103
+ color: #9EEC98;
104
+ }
105
+
106
+ .zid-alert--success .zid-alert__close {
107
+ color: #476A44;
108
+ }
109
+
110
+ /* ========================================
111
+ * Info Variant
112
+ * ======================================== */
113
+ .zid-alert--info {
114
+ background-color: #F4FCFC;
115
+ border-color: #B5EFEF;
116
+ color: inherit;
117
+ }
118
+
119
+ .zid-alert--info .zid-alert__icon {
120
+ color: #449090;
121
+ }
122
+
123
+ .zid-alert--info .zid-alert__close {
124
+ color: #306666;
125
+ }
126
+
127
+ /* ========================================
128
+ * Warning Variant
129
+ * ======================================== */
130
+ .zid-alert--warning {
131
+ background-color: #FEFDF5;
132
+ border-color: #FAEBA4;
133
+ color: inherit;
134
+ }
135
+
136
+ .zid-alert--warning .zid-alert__icon {
137
+ color: #DFCE75;
138
+ }
139
+
140
+ .zid-alert--warning .zid-alert__close {
141
+ color: #6F673B;
142
+ }
143
+
144
+ /* ========================================
145
+ * Error Variant
146
+ * ======================================== */
147
+ .zid-alert--error {
148
+ background-color: #FFF3F4;
149
+ border-color: #FDC9D0;
150
+ color: inherit;
151
+ }
152
+
153
+ .zid-alert--error .zid-alert__icon {
154
+ color: #FCA7B4;
155
+ }
156
+
157
+ .zid-alert--error .zid-alert__close {
158
+ color: #70192F;
159
+ }
@@ -0,0 +1,316 @@
1
+ /**
2
+ * Button Component
3
+ * Variants: contained, outlined, text
4
+ * Colors: primary, secondary, error
5
+ * Sizes: sm, md, lg
6
+ */
7
+
8
+ /* ========================================
9
+ * Base Button (low specificity with :where)
10
+ * ======================================== */
11
+ :where(.zid-button) {
12
+ display: inline-flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+ gap: var(--zid-spacing-1);
16
+ font-family: var(--zid-font-family);
17
+ font-weight: var(--zid-font-weight-regular);
18
+ text-decoration: none;
19
+ text-transform: initial;
20
+ border: 1px solid transparent;
21
+ border-radius: 360px; /* Pill shape like MUI */
22
+ cursor: pointer;
23
+ transition: background-color var(--zid-transition-normal),
24
+ border-color var(--zid-transition-normal);
25
+ outline: none;
26
+ -webkit-tap-highlight-color: transparent;
27
+ white-space: nowrap;
28
+ overflow: hidden;
29
+ text-overflow: ellipsis;
30
+ }
31
+
32
+ /* ========================================
33
+ * Size Modifiers
34
+ * ======================================== */
35
+ .zid-button--sm {
36
+ padding: 4px 16px;
37
+ font-size: 12px;
38
+ line-height: 22px;
39
+ min-width: 72px;
40
+ min-height: 32px;
41
+ max-height: 32px;
42
+ }
43
+
44
+ .zid-button--md {
45
+ padding: 7px 16px;
46
+ font-size: 14px;
47
+ line-height: 24px;
48
+ min-width: 104px;
49
+ min-height: 40px;
50
+ max-height: 40px;
51
+ }
52
+
53
+ .zid-button--lg {
54
+ padding: 10px 16px;
55
+ font-size: 16px;
56
+ line-height: 26px;
57
+ min-width: 122px;
58
+ min-height: 48px;
59
+ max-height: 48px;
60
+ }
61
+
62
+ /* ========================================
63
+ * Contained Variant - Primary
64
+ * ======================================== */
65
+ .zid-button--contained.zid-button--primary {
66
+ background-color: var(--zid-color-primary-1000);
67
+ border-color: var(--zid-color-primary-1000);
68
+ color: var(--zid-base-white);
69
+ }
70
+
71
+ .zid-button--contained.zid-button--primary:hover {
72
+ background-color: var(--zid-color-primary-900);
73
+ border-color: var(--zid-color-primary-900);
74
+ }
75
+
76
+ .zid-button--contained.zid-button--primary:active {
77
+ background-color: var(--zid-color-primary-600);
78
+ border-color: var(--zid-color-primary-600);
79
+ }
80
+
81
+ .zid-button--contained.zid-button--primary:focus-visible {
82
+ background-color: var(--zid-color-primary-900);
83
+ border-color: var(--zid-color-primary-900);
84
+ outline: 2px solid var(--zid-primary-dark);
85
+ outline-offset: 2px;
86
+ }
87
+
88
+
89
+ /* ========================================
90
+ * Contained Variant - Secondary
91
+ * ======================================== */
92
+ .zid-button--contained.zid-button--secondary {
93
+ background-color: var(--zid-color-secondary-50);
94
+ border-color: var(--zid-color-secondary-200);
95
+ color: var(--zid-color-secondary-1000);
96
+ }
97
+
98
+ .zid-button--contained.zid-button--secondary:hover {
99
+ background-color: var(--zid-color-secondary-50);
100
+ border-color: var(--zid-color-secondary-200);
101
+ }
102
+
103
+ .zid-button--contained.zid-button--secondary:active {
104
+ background-color: #EBE8ED;
105
+ border-color: var(--zid-color-secondary-200);
106
+ }
107
+
108
+ .zid-button--contained.zid-button--secondary:focus-visible {
109
+ background-color: var(--zid-color-primary-200);
110
+ border-color: var(--zid-color-secondary-200);
111
+ outline: 2px solid var(--zid-primary-dark);
112
+ outline-offset: 2px;
113
+ }
114
+
115
+ /* ========================================
116
+ * Contained Variant - Error
117
+ * ======================================== */
118
+ .zid-button--contained.zid-button--error {
119
+ background-color: var(--zid-color-red-200);
120
+ border-color: var(--zid-color-red-400);
121
+ color: var(--zid-color-red-1000);
122
+ }
123
+
124
+ .zid-button--contained.zid-button--error:hover {
125
+ background-color: var(--zid-color-red-300);
126
+ border-color: var(--zid-color-red-400);
127
+ }
128
+
129
+ .zid-button--contained.zid-button--error:active {
130
+ background-color: var(--zid-color-red-300);
131
+ border-color: var(--zid-color-red-700);
132
+ }
133
+
134
+ .zid-button--contained.zid-button--error:focus-visible {
135
+ background-color: var(--zid-color-red-600);
136
+ border-color: transparent;
137
+ color: var(--zid-base-white);
138
+ outline: 2px solid var(--zid-primary-dark);
139
+ outline-offset: 2px;
140
+ }
141
+
142
+ /* ========================================
143
+ * Outlined Variant - Primary
144
+ * ======================================== */
145
+ .zid-button--outlined.zid-button--primary {
146
+ background-color: transparent;
147
+ border-color: var(--zid-primary-main);
148
+ color: var(--zid-primary-main);
149
+ }
150
+
151
+ .zid-button--outlined.zid-button--primary:hover {
152
+ background-color: var(--zid-primary-state-hover);
153
+ border-color: var(--zid-primary-main);
154
+ }
155
+
156
+ .zid-button--outlined.zid-button--primary:active {
157
+ background-color: var(--zid-primary-state-selected);
158
+ }
159
+
160
+ .zid-button--outlined.zid-button--primary:focus-visible {
161
+ background-color: transparent;
162
+ outline: 2px solid var(--zid-primary-dark);
163
+ outline-offset: 2px;
164
+ }
165
+
166
+ /* ========================================
167
+ * Outlined Variant - Secondary
168
+ * ======================================== */
169
+ .zid-button--outlined.zid-button--secondary {
170
+ background-color: transparent;
171
+ border-color: var(--zid-color-secondary-200);
172
+ color: var(--zid-color-secondary-1000);
173
+ }
174
+
175
+ .zid-button--outlined.zid-button--secondary:hover {
176
+ background-color: var(--zid-secondary-state-hover);
177
+ border-color: var(--zid-color-secondary-200);
178
+ }
179
+
180
+ .zid-button--outlined.zid-button--secondary:active {
181
+ background-color: var(--zid-secondary-state-selected);
182
+ }
183
+
184
+ .zid-button--outlined.zid-button--secondary:focus-visible {
185
+ background-color: transparent;
186
+ outline: 2px solid var(--zid-primary-dark);
187
+ outline-offset: 2px;
188
+ }
189
+
190
+ /* ========================================
191
+ * Outlined Variant - Error
192
+ * ======================================== */
193
+ .zid-button--outlined.zid-button--error {
194
+ background-color: transparent;
195
+ border-color: var(--zid-error-main);
196
+ color: var(--zid-color-red-800);
197
+ }
198
+
199
+ .zid-button--outlined.zid-button--error:hover {
200
+ background-color: var(--zid-color-red-100);
201
+ border-color: var(--zid-error-main);
202
+ }
203
+
204
+ .zid-button--outlined.zid-button--error:active {
205
+ background-color: var(--zid-error-state-selected);
206
+ }
207
+
208
+ .zid-button--outlined.zid-button--error:focus-visible {
209
+ background-color: transparent;
210
+ outline: 2px solid var(--zid-primary-dark);
211
+ outline-offset: 2px;
212
+ }
213
+
214
+ /* ========================================
215
+ * Text Variant - Primary
216
+ * ======================================== */
217
+ .zid-button--text.zid-button--primary {
218
+ background-color: transparent;
219
+ border-color: transparent;
220
+ color: var(--zid-primary-main);
221
+ }
222
+
223
+ .zid-button--text.zid-button--primary:hover {
224
+ background-color: var(--zid-primary-state-hover);
225
+ }
226
+
227
+ .zid-button--text.zid-button--primary:active {
228
+ background-color: var(--zid-primary-state-selected);
229
+ }
230
+
231
+ .zid-button--text.zid-button--primary:focus-visible {
232
+ background-color: transparent;
233
+ outline: 2px solid var(--zid-primary-dark);
234
+ outline-offset: 2px;
235
+ }
236
+
237
+ /* ========================================
238
+ * Text Variant - Secondary
239
+ * ======================================== */
240
+ .zid-button--text.zid-button--secondary {
241
+ background-color: transparent;
242
+ border-color: transparent;
243
+ color: var(--zid-color-secondary-1000);
244
+ }
245
+
246
+ .zid-button--text.zid-button--secondary:hover {
247
+ background-color: var(--zid-secondary-state-hover);
248
+ }
249
+
250
+ .zid-button--text.zid-button--secondary:active {
251
+ background-color: var(--zid-secondary-state-selected);
252
+ }
253
+
254
+ .zid-button--text.zid-button--secondary:focus-visible {
255
+ background-color: transparent;
256
+ outline: 2px solid var(--zid-primary-dark);
257
+ outline-offset: 2px;
258
+ }
259
+
260
+ /* ========================================
261
+ * Text Variant - Error
262
+ * ======================================== */
263
+ .zid-button--text.zid-button--error {
264
+ background-color: transparent;
265
+ border-color: transparent;
266
+ color: var(--zid-error-main);
267
+ }
268
+
269
+ .zid-button--text.zid-button--error:hover {
270
+ background-color: var(--zid-error-state-hover);
271
+ }
272
+
273
+ .zid-button--text.zid-button--error:active {
274
+ background-color: var(--zid-error-state-selected);
275
+ }
276
+
277
+ .zid-button--text.zid-button--error:focus-visible {
278
+ background-color: transparent;
279
+ outline: 2px solid var(--zid-primary-dark);
280
+ outline-offset: 2px;
281
+ }
282
+
283
+ /* ========================================
284
+ * Disabled State (all variants)
285
+ * ======================================== */
286
+ .zid-button:disabled,
287
+ .zid-button--disabled {
288
+ background-color: var(--zid-color-neutral-100);
289
+ border-color: var(--zid-color-neutral-200);
290
+ color: var(--zid-color-neutral-400);
291
+ cursor: not-allowed;
292
+ pointer-events: none;
293
+ }
294
+
295
+ /* ========================================
296
+ * Full Width Modifier
297
+ * ======================================== */
298
+ .zid-button--full-width {
299
+ width: 100%;
300
+ }
301
+
302
+ /* ========================================
303
+ * Icon Button Modifier
304
+ * ======================================== */
305
+ .zid-button--icon-only {
306
+ padding: var(--zid-spacing-1);
307
+ min-width: auto;
308
+ }
309
+
310
+ .zid-button--icon-only.zid-button--sm {
311
+ padding: var(--zid-spacing-0-5);
312
+ }
313
+
314
+ .zid-button--icon-only.zid-button--lg {
315
+ padding: var(--zid-spacing-1-5);
316
+ }
@@ -0,0 +1,164 @@
1
+ /**
2
+ * Card Component
3
+ * Elevation variants: 0-24
4
+ */
5
+
6
+ /* ========================================
7
+ * Base Card
8
+ * ======================================== */
9
+ :where(.zid-card) {
10
+ background-color: var(--zid-bg-paper);
11
+ border-radius: var(--zid-radius-standard);
12
+ padding: var(--zid-spacing-2);
13
+ box-shadow: var(--zid-shadow-1);
14
+ }
15
+
16
+ /* ========================================
17
+ * Elevation Variants
18
+ * ======================================== */
19
+ .zid-card--elevation-0 {
20
+ box-shadow: var(--zid-shadow-0);
21
+ }
22
+
23
+ .zid-card--elevation-1 {
24
+ box-shadow: var(--zid-shadow-1);
25
+ }
26
+
27
+ .zid-card--elevation-2 {
28
+ box-shadow: var(--zid-shadow-2);
29
+ }
30
+
31
+ .zid-card--elevation-3 {
32
+ box-shadow: var(--zid-shadow-3);
33
+ }
34
+
35
+ .zid-card--elevation-4 {
36
+ box-shadow: var(--zid-shadow-4);
37
+ }
38
+
39
+ .zid-card--elevation-5 {
40
+ box-shadow: var(--zid-shadow-5);
41
+ }
42
+
43
+ .zid-card--elevation-6 {
44
+ box-shadow: var(--zid-shadow-6);
45
+ }
46
+
47
+ .zid-card--elevation-8 {
48
+ box-shadow: var(--zid-shadow-8);
49
+ }
50
+
51
+ .zid-card--elevation-12 {
52
+ box-shadow: var(--zid-shadow-12);
53
+ }
54
+
55
+ .zid-card--elevation-16 {
56
+ box-shadow: var(--zid-shadow-16);
57
+ }
58
+
59
+ .zid-card--elevation-24 {
60
+ box-shadow: var(--zid-shadow-24);
61
+ }
62
+
63
+ /* ========================================
64
+ * Card with Border
65
+ * ======================================== */
66
+ .zid-card--outlined {
67
+ box-shadow: none;
68
+ border: 1px solid var(--zid-divider);
69
+ }
70
+
71
+ /* ========================================
72
+ * Card Header
73
+ * ======================================== */
74
+ .zid-card__header {
75
+ display: flex;
76
+ align-items: center;
77
+ justify-content: space-between;
78
+ gap: var(--zid-spacing-2);
79
+ margin-bottom: var(--zid-spacing-2);
80
+ }
81
+
82
+ .zid-card__title {
83
+ font-family: var(--zid-font-family);
84
+ font-size: var(--zid-font-size-lg);
85
+ font-weight: var(--zid-font-weight-semibold);
86
+ color: var(--zid-text-primary);
87
+ margin: 0;
88
+ }
89
+
90
+ .zid-card__subtitle {
91
+ font-family: var(--zid-font-family);
92
+ font-size: var(--zid-font-size-sm);
93
+ color: var(--zid-text-secondary);
94
+ margin: 0;
95
+ margin-top: var(--zid-spacing-0-5);
96
+ }
97
+
98
+ /* ========================================
99
+ * Card Content
100
+ * ======================================== */
101
+ .zid-card__content {
102
+ font-family: var(--zid-font-family);
103
+ font-size: var(--zid-font-size-base);
104
+ color: var(--zid-text-primary);
105
+ line-height: var(--zid-line-height-normal);
106
+ }
107
+
108
+ /* ========================================
109
+ * Card Actions
110
+ * ======================================== */
111
+ .zid-card__actions {
112
+ display: flex;
113
+ align-items: center;
114
+ gap: var(--zid-spacing-1);
115
+ margin-top: var(--zid-spacing-2);
116
+ padding-top: var(--zid-spacing-2);
117
+ border-top: 1px solid var(--zid-divider);
118
+ }
119
+
120
+ .zid-card__actions--no-border {
121
+ border-top: none;
122
+ padding-top: 0;
123
+ }
124
+
125
+ /* ========================================
126
+ * Card Media
127
+ * ======================================== */
128
+ .zid-card__media {
129
+ margin: calc(var(--zid-spacing-2) * -1);
130
+ margin-bottom: var(--zid-spacing-2);
131
+ border-radius: var(--zid-radius-standard) var(--zid-radius-standard) 0 0;
132
+ overflow: hidden;
133
+ }
134
+
135
+ .zid-card__media img {
136
+ display: block;
137
+ width: 100%;
138
+ height: auto;
139
+ }
140
+
141
+ /* ========================================
142
+ * Clickable Card
143
+ * ======================================== */
144
+ .zid-card--clickable {
145
+ cursor: pointer;
146
+ transition: box-shadow var(--zid-transition-fast),
147
+ transform var(--zid-transition-fast);
148
+ }
149
+
150
+ .zid-card--clickable:hover {
151
+ box-shadow: var(--zid-shadow-4);
152
+ }
153
+
154
+ .zid-card--clickable:active {
155
+ transform: scale(0.99);
156
+ }
157
+
158
+ /* ========================================
159
+ * Selected Card
160
+ * ======================================== */
161
+ .zid-card--selected {
162
+ background-color: var(--zid-color-primary-50);
163
+ border: 1px solid var(--zid-color-primary-300);
164
+ }