@zapatran/paper-ember-theme 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.
package/src/alerts.css ADDED
@@ -0,0 +1,232 @@
1
+ /* =====================================================================
2
+ ALERTS
3
+ ===================================================================== */
4
+
5
+ .alert {
6
+ display: flex;
7
+ gap: 0.75rem;
8
+ border-radius: var(--radius-lg);
9
+ border: 1px solid transparent;
10
+ padding: 1rem;
11
+ }
12
+
13
+ .alert__icon {
14
+ margin-top: 0.125rem;
15
+ flex-shrink: 0;
16
+ width: 18px;
17
+ height: 18px;
18
+ }
19
+
20
+ .alert__body {
21
+ min-width: 0;
22
+ flex: 1 1 0%;
23
+ }
24
+
25
+ .alert__title {
26
+ font-size: 14px;
27
+ line-height: 1.25;
28
+ font-weight: 600;
29
+ }
30
+
31
+ .alert__text {
32
+ margin-top: 0.125rem;
33
+ font-size: 13px;
34
+ }
35
+
36
+ .alert__close {
37
+ display: inline-flex;
38
+ height: 1.5rem;
39
+ width: 1.5rem;
40
+ flex-shrink: 0;
41
+ cursor: pointer;
42
+ align-items: center;
43
+ justify-content: center;
44
+ border-radius: var(--radius-md);
45
+ transition:
46
+ color 150ms ease-in-out,
47
+ background-color 150ms ease-in-out;
48
+ }
49
+
50
+ .alert__action {
51
+ flex-shrink: 0;
52
+ cursor: pointer;
53
+ border-radius: var(--radius-md);
54
+ padding-left: 0.625rem;
55
+ padding-right: 0.625rem;
56
+ padding-top: 0.25rem;
57
+ padding-bottom: 0.25rem;
58
+ font-size: 12px;
59
+ font-weight: 600;
60
+ transition:
61
+ color 150ms ease-in-out,
62
+ background-color 150ms ease-in-out;
63
+ }
64
+
65
+ /* Alert variants */
66
+
67
+ .alert--info {
68
+ background-color: var(--color-ink-50);
69
+ border-color: var(--color-ink-200);
70
+
71
+ & .alert__icon {
72
+ color: var(--color-ink-600);
73
+ }
74
+ & .alert__title {
75
+ color: var(--color-ink-800);
76
+ }
77
+ & .alert__text {
78
+ color: var(--color-ink-700);
79
+ }
80
+ & .alert__close {
81
+ color: var(--color-ink-600);
82
+ &:hover {
83
+ background-color: var(--color-ink-100);
84
+ }
85
+ }
86
+
87
+ &:where(.dark, .dark *) {
88
+ background-color: var(--color-ink-900);
89
+ border-color: var(--color-ink-700);
90
+ & .alert__icon {
91
+ color: var(--color-ink-300);
92
+ }
93
+ & .alert__title {
94
+ color: var(--color-ink-100);
95
+ }
96
+ & .alert__text {
97
+ color: var(--color-ink-200);
98
+ }
99
+ & .alert__close {
100
+ color: var(--color-ink-300);
101
+ &:hover {
102
+ background-color: var(--color-ink-800);
103
+ }
104
+ }
105
+ }
106
+ }
107
+
108
+ .alert--success {
109
+ background-color: var(--color-leaf-50);
110
+ border-color: var(--color-leaf-200);
111
+
112
+ & .alert__icon {
113
+ color: var(--color-leaf-600);
114
+ }
115
+ & .alert__title {
116
+ color: var(--color-leaf-800);
117
+ }
118
+ & .alert__text {
119
+ color: var(--color-leaf-700);
120
+ }
121
+
122
+ &:where(.dark, .dark *) {
123
+ background-color: var(--color-leaf-900);
124
+ border-color: var(--color-leaf-700);
125
+ & .alert__icon {
126
+ color: var(--color-leaf-300);
127
+ }
128
+ & .alert__title {
129
+ color: var(--color-leaf-100);
130
+ }
131
+ & .alert__text {
132
+ color: var(--color-leaf-200);
133
+ }
134
+ }
135
+ }
136
+
137
+ .alert--warning {
138
+ background-color: var(--color-honey-50);
139
+ border-color: var(--color-honey-200);
140
+
141
+ & .alert__icon {
142
+ color: var(--color-honey-700);
143
+ }
144
+ & .alert__title {
145
+ color: var(--color-honey-800);
146
+ }
147
+ & .alert__text {
148
+ color: var(--color-honey-700);
149
+ }
150
+
151
+ &:where(.dark, .dark *) {
152
+ background-color: var(--color-honey-900);
153
+ border-color: var(--color-honey-700);
154
+ & .alert__icon {
155
+ color: var(--color-honey-300);
156
+ }
157
+ & .alert__title {
158
+ color: var(--color-honey-100);
159
+ }
160
+ & .alert__text {
161
+ color: var(--color-honey-200);
162
+ }
163
+ }
164
+ }
165
+
166
+ .alert--danger {
167
+ background-color: var(--color-rose-50);
168
+ border-color: var(--color-rose-200);
169
+
170
+ & .alert__icon {
171
+ color: var(--color-rose-600);
172
+ }
173
+ & .alert__title {
174
+ color: var(--color-rose-800);
175
+ }
176
+ & .alert__text {
177
+ color: var(--color-rose-700);
178
+ }
179
+ & .alert__action {
180
+ background-color: var(--color-rose-500);
181
+ color: white;
182
+ &:hover {
183
+ background-color: var(--color-rose-600);
184
+ }
185
+ }
186
+
187
+ &:where(.dark, .dark *) {
188
+ background-color: var(--color-rose-900);
189
+ border-color: var(--color-rose-700);
190
+ & .alert__icon {
191
+ color: var(--color-rose-300);
192
+ }
193
+ & .alert__title {
194
+ color: var(--color-rose-100);
195
+ }
196
+ & .alert__text {
197
+ color: var(--color-rose-200);
198
+ }
199
+ & .alert__action {
200
+ background-color: var(--color-rose-500);
201
+ color: var(--color-paper-950);
202
+ &:hover {
203
+ background-color: var(--color-rose-400);
204
+ }
205
+ }
206
+ }
207
+ }
208
+
209
+ .alert--banner {
210
+ background-color: var(--color-ink-500);
211
+ border-radius: var(--radius-md);
212
+ border-color: transparent;
213
+
214
+ & .alert__icon {
215
+ color: var(--color-ink-100);
216
+ }
217
+ & .alert__title {
218
+ color: white;
219
+ }
220
+ & .alert__text {
221
+ color: var(--color-ink-50);
222
+ font-size: 13px;
223
+ }
224
+ & .alert__action {
225
+ background: transparent;
226
+ color: white;
227
+ font-size: 12px;
228
+ font-weight: 600;
229
+ text-decoration: underline;
230
+ text-underline-offset: 2px;
231
+ }
232
+ }
package/src/badges.css ADDED
@@ -0,0 +1,338 @@
1
+ /* =====================================================================
2
+ BADGES / TAGS
3
+ ===================================================================== */
4
+
5
+ .badge {
6
+ display: inline-flex;
7
+ align-items: center;
8
+ gap: 0.375rem;
9
+ border-radius: var(--radius-md);
10
+ border: 1px solid transparent;
11
+ vertical-align: middle;
12
+ font-family: var(--font-family-sans);
13
+ line-height: 1;
14
+ font-weight: 600;
15
+ white-space: nowrap;
16
+ transition:
17
+ color 150ms ease-in-out,
18
+ background-color 150ms ease-in-out,
19
+ border-color 150ms ease-in-out;
20
+ }
21
+
22
+ .badge__dot {
23
+ height: 0.375rem;
24
+ width: 0.375rem;
25
+ flex-shrink: 0;
26
+ border-radius: 9999px;
27
+ background-color: currentColor;
28
+ }
29
+
30
+ .badge__icon {
31
+ height: 0.875rem;
32
+ width: 0.875rem;
33
+ flex-shrink: 0;
34
+ }
35
+
36
+ .badge__label {
37
+ display: inline-block;
38
+ }
39
+
40
+ .badge__count {
41
+ margin-left: 0.25rem;
42
+ border-radius: var(--radius-sm);
43
+ padding-left: 0.25rem;
44
+ padding-right: 0.25rem;
45
+ font-family: var(--font-family-mono);
46
+ font-size: 10px;
47
+ font-variant-numeric: tabular-nums;
48
+ background-color: rgb(0 0 0 / 0.12);
49
+
50
+ &:where(.dark, .dark *) {
51
+ background-color: rgb(255 255 255 / 0.18);
52
+ }
53
+ }
54
+
55
+ .badge__close {
56
+ margin-right: -0.25rem;
57
+ margin-left: 0.125rem;
58
+ display: inline-flex;
59
+ height: 1rem;
60
+ width: 1rem;
61
+ flex-shrink: 0;
62
+ cursor: pointer;
63
+ align-items: center;
64
+ justify-content: center;
65
+ border-radius: 9999px;
66
+ opacity: 0.7;
67
+ transition: opacity 150ms ease-in-out;
68
+
69
+ &:hover {
70
+ opacity: 1;
71
+ background-color: rgb(0 0 0 / 0.1);
72
+ }
73
+
74
+ & svg {
75
+ height: 0.5rem;
76
+ width: 0.5rem;
77
+ fill: none;
78
+ }
79
+
80
+ &:where(.dark, .dark *) {
81
+ &:hover {
82
+ background-color: rgb(255 255 255 / 0.14);
83
+ }
84
+ }
85
+ }
86
+
87
+ /* --- Size modifiers --- */
88
+
89
+ .badge--xs {
90
+ gap: 0.25rem;
91
+ padding-left: 0.375rem;
92
+ padding-right: 0.375rem;
93
+ padding-top: 0.125rem;
94
+ padding-bottom: 0.125rem;
95
+ font-size: 10px;
96
+
97
+ & .badge__icon {
98
+ height: 0.75rem;
99
+ width: 0.75rem;
100
+ }
101
+ & .badge__dot {
102
+ height: 0.25rem;
103
+ width: 0.25rem;
104
+ }
105
+ & .badge__close {
106
+ height: 0.875rem;
107
+ width: 0.875rem;
108
+ }
109
+ }
110
+
111
+ .badge--sm {
112
+ padding-left: 0.5rem;
113
+ padding-right: 0.5rem;
114
+ padding-top: 0.125rem;
115
+ padding-bottom: 0.125rem;
116
+ font-size: 11px;
117
+ }
118
+
119
+ .badge--md {
120
+ padding-left: 0.625rem;
121
+ padding-right: 0.625rem;
122
+ padding-top: 0.25rem;
123
+ padding-bottom: 0.25rem;
124
+ font-size: 12px;
125
+ }
126
+
127
+ /* --- Shape modifiers --- */
128
+
129
+ .badge--pill {
130
+ border-radius: 9999px;
131
+ }
132
+
133
+ .badge--square {
134
+ border-radius: var(--radius-xs);
135
+ }
136
+
137
+ .badge--removable {
138
+ padding-right: 0.25rem;
139
+ padding-left: 0.625rem;
140
+
141
+ &.badge--xs {
142
+ padding-right: 0.125rem;
143
+ padding-left: 0.375rem;
144
+ }
145
+ }
146
+
147
+ .badge--count {
148
+ height: 1.25rem;
149
+ min-width: 20px;
150
+ justify-content: center;
151
+ border-radius: 9999px;
152
+ padding-left: 0.375rem;
153
+ padding-right: 0.375rem;
154
+ padding-top: 0;
155
+ padding-bottom: 0;
156
+ font-size: 11px;
157
+ font-weight: 700;
158
+
159
+ &.badge--xs {
160
+ height: 1rem;
161
+ min-width: 16px;
162
+ font-size: 10px;
163
+ }
164
+ &.badge--md {
165
+ height: 22px;
166
+ min-width: 22px;
167
+ font-size: 12px;
168
+ }
169
+ }
170
+
171
+ /* --- Style × Color matrix --- */
172
+
173
+ /* Soft */
174
+ .badge--soft {
175
+ &.badge--neutral {
176
+ background-color: var(--color-paper-200);
177
+ color: var(--color-paper-800);
178
+ }
179
+ &.badge--ember {
180
+ background-color: var(--color-ember-100);
181
+ color: var(--color-ember-800);
182
+ }
183
+ &.badge--success {
184
+ background-color: var(--color-leaf-100);
185
+ color: var(--color-leaf-800);
186
+ }
187
+ &.badge--warning {
188
+ background-color: var(--color-honey-100);
189
+ color: var(--color-honey-800);
190
+ }
191
+ &.badge--danger {
192
+ background-color: var(--color-rose-100);
193
+ color: var(--color-rose-800);
194
+ }
195
+ &.badge--info {
196
+ background-color: var(--color-ink-100);
197
+ color: var(--color-ink-800);
198
+ }
199
+
200
+ &:where(.dark, .dark *) {
201
+ &.badge--neutral {
202
+ background-color: var(--color-paper-800);
203
+ color: var(--color-paper-100);
204
+ }
205
+ &.badge--ember {
206
+ background-color: var(--color-ember-900);
207
+ color: var(--color-ember-200);
208
+ }
209
+ &.badge--success {
210
+ background-color: var(--color-leaf-900);
211
+ color: var(--color-leaf-200);
212
+ }
213
+ &.badge--warning {
214
+ background-color: var(--color-honey-900);
215
+ color: var(--color-honey-200);
216
+ }
217
+ &.badge--danger {
218
+ background-color: var(--color-rose-900);
219
+ color: var(--color-rose-200);
220
+ }
221
+ &.badge--info {
222
+ background-color: var(--color-ink-900);
223
+ color: var(--color-ink-200);
224
+ }
225
+ }
226
+ }
227
+
228
+ /* Solid */
229
+ .badge--solid {
230
+ &.badge--neutral {
231
+ background-color: var(--color-paper-800);
232
+ color: var(--color-paper-50);
233
+ }
234
+ &.badge--ember {
235
+ background-color: var(--color-ember-500);
236
+ color: white;
237
+ }
238
+ &.badge--success {
239
+ background-color: var(--color-leaf-500);
240
+ color: white;
241
+ }
242
+ &.badge--warning {
243
+ background-color: var(--color-honey-500);
244
+ color: white;
245
+ }
246
+ &.badge--danger {
247
+ background-color: var(--color-rose-500);
248
+ color: white;
249
+ }
250
+ &.badge--info {
251
+ background-color: var(--color-ink-500);
252
+ color: white;
253
+ }
254
+
255
+ &:where(.dark, .dark *) {
256
+ &.badge--neutral {
257
+ background-color: var(--color-paper-100);
258
+ color: var(--color-paper-900);
259
+ }
260
+ &.badge--ember {
261
+ background-color: var(--color-ember-500);
262
+ color: var(--color-paper-950);
263
+ }
264
+ &.badge--success {
265
+ background-color: var(--color-leaf-400);
266
+ color: var(--color-paper-950);
267
+ }
268
+ &.badge--warning {
269
+ background-color: var(--color-honey-400);
270
+ color: var(--color-paper-950);
271
+ }
272
+ &.badge--danger {
273
+ background-color: var(--color-rose-400);
274
+ color: var(--color-paper-950);
275
+ }
276
+ &.badge--info {
277
+ background-color: var(--color-ink-400);
278
+ color: var(--color-paper-950);
279
+ }
280
+ }
281
+ }
282
+
283
+ /* Outline */
284
+ .badge--outline {
285
+ background-color: transparent;
286
+
287
+ &.badge--neutral {
288
+ border-color: var(--color-paper-300);
289
+ color: var(--color-paper-700);
290
+ }
291
+ &.badge--ember {
292
+ border-color: var(--color-ember-300);
293
+ color: var(--color-ember-700);
294
+ }
295
+ &.badge--success {
296
+ border-color: var(--color-leaf-300);
297
+ color: var(--color-leaf-700);
298
+ }
299
+ &.badge--warning {
300
+ border-color: var(--color-honey-300);
301
+ color: var(--color-honey-700);
302
+ }
303
+ &.badge--danger {
304
+ border-color: var(--color-rose-300);
305
+ color: var(--color-rose-700);
306
+ }
307
+ &.badge--info {
308
+ border-color: var(--color-ink-300);
309
+ color: var(--color-ink-700);
310
+ }
311
+
312
+ &:where(.dark, .dark *) {
313
+ &.badge--neutral {
314
+ border-color: var(--color-paper-700);
315
+ color: var(--color-paper-200);
316
+ }
317
+ &.badge--ember {
318
+ border-color: var(--color-ember-700);
319
+ color: var(--color-ember-300);
320
+ }
321
+ &.badge--success {
322
+ border-color: var(--color-leaf-700);
323
+ color: var(--color-leaf-300);
324
+ }
325
+ &.badge--warning {
326
+ border-color: var(--color-honey-700);
327
+ color: var(--color-honey-300);
328
+ }
329
+ &.badge--danger {
330
+ border-color: var(--color-rose-700);
331
+ color: var(--color-rose-300);
332
+ }
333
+ &.badge--info {
334
+ border-color: var(--color-ink-700);
335
+ color: var(--color-ink-300);
336
+ }
337
+ }
338
+ }