@bccampus/ui-components 0.1.0 → 0.2.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 (65) hide show
  1. package/dist/banner.d.ts +16 -0
  2. package/dist/banner.js +42 -0
  3. package/dist/button.d.ts +5 -4
  4. package/dist/button.js +20 -14
  5. package/dist/caption.js +9 -8
  6. package/dist/card.d.ts +15 -9
  7. package/dist/card.js +62 -84
  8. package/dist/createLucideIcon-CzehbSja.js +94 -0
  9. package/dist/horizontal-list.d.ts +9 -2
  10. package/dist/horizontal-list.js +47 -115
  11. package/dist/icon-generator.d.ts +2 -1
  12. package/dist/icon-generator.js +180 -147
  13. package/dist/index-CQhYMnjT.js +34 -0
  14. package/dist/index-DlfV3JTY.js +70 -0
  15. package/dist/input.d.ts +7 -0
  16. package/dist/input.js +18 -0
  17. package/dist/masked-image-generator.d.ts +1 -0
  18. package/dist/overlay.d.ts +13 -0
  19. package/dist/overlay.js +27 -0
  20. package/dist/page-header.d.ts +5 -0
  21. package/dist/page-header.js +943 -0
  22. package/dist/page-section.d.ts +14 -0
  23. package/dist/page-section.js +31 -0
  24. package/dist/page.d.ts +7 -0
  25. package/dist/page.js +8 -0
  26. package/dist/search-input.d.ts +7 -0
  27. package/dist/search-input.js +23 -0
  28. package/dist/tag.d.ts +2 -2
  29. package/dist/tag.js +10 -9
  30. package/dist/ui-components.d.ts +84 -29
  31. package/dist/ui-components.js +42 -27
  32. package/package.json +44 -15
  33. package/src/assets/images/image_06.jpg +0 -0
  34. package/src/components/ui/banner.tsx +48 -0
  35. package/src/components/ui/button.tsx +52 -47
  36. package/src/components/ui/card.tsx +131 -147
  37. package/src/components/ui/horizontal-list.tsx +75 -50
  38. package/src/components/ui/icon-generator/generate-tiles.tsx +243 -243
  39. package/src/components/ui/icon-generator/icon-generator.tsx +84 -51
  40. package/src/components/ui/icon-generator/masked-image-generator.tsx +38 -38
  41. package/src/components/ui/icon-generator/types.ts +53 -52
  42. package/src/components/ui/index.ts +11 -4
  43. package/src/components/ui/input.tsx +17 -0
  44. package/src/components/ui/overlay.tsx +29 -0
  45. package/src/components/ui/page-header.tsx +16 -0
  46. package/src/components/ui/page-section.tsx +33 -0
  47. package/src/components/ui/page.tsx +9 -0
  48. package/src/components/ui/search-input.tsx +16 -0
  49. package/src/components/ui/tag.tsx +39 -39
  50. package/src/components/ui/typography/caption.tsx +32 -32
  51. package/src/styles/all.css +4 -4
  52. package/src/styles/colors.css +9 -10
  53. package/src/styles/index.css +7 -7
  54. package/src/styles/theme.css +56 -2
  55. package/src/styles/typography.css +480 -479
  56. package/tsconfig.app.json +37 -37
  57. package/vite.config.ts +51 -44
  58. package/dist/@bccampus-ui-components-0.1.0.tgz +0 -0
  59. package/dist/index-DcqAdr0d.js +0 -102
  60. package/dist/mockServiceWorker.js +0 -348
  61. package/public/mockServiceWorker.js +0 -348
  62. package/src/assets/images/bg_pattern_01.png +0 -0
  63. package/src/assets/images/bg_pattern_02.png +0 -0
  64. package/src/assets/images/bg_pattern_03.png +0 -0
  65. package/src/assets/images/bg_pattern_04.png +0 -0
@@ -1,479 +1,480 @@
1
- /* Typography */
2
- h1,
3
- h2,
4
- h3,
5
- h4,
6
- h5,
7
- h6 {
8
- font-family: var(--font-sans-accent);
9
- color: var(--primary);
10
- text-wrap: balance;
11
- letter-spacing: var(--tracking-tight);
12
- font-weight: var(--font-weight-medium);
13
- --tw-tracking: var(--tracking-tight);
14
-
15
- &:not(:first-child) {
16
- margin-top: calc(var(--spacing) * 4);
17
- }
18
- }
19
- .heading-1,
20
- .heading-2,
21
- .heading-3 {
22
- font-family: var(--font-sans-accent);
23
- color: var(--primary);
24
- text-wrap: balance;
25
- letter-spacing: var(--tracking-tight);
26
- font-weight: var(--font-weight-medium);
27
- --tw-tracking: var(--tracking-tight);
28
- }
29
-
30
- h1,
31
- .heading-1 {
32
- font-size: var(--text-4xl);
33
- font-weight: var(--font-weight-semibold);
34
- line-height: calc(var(--spacing) * 9);
35
- scroll-margin-right: calc(var(--spacing) * 18);
36
-
37
- @media (width >= 40rem) {
38
- font-size: var(--text-7xl);
39
- line-height: calc(var(--spacing) * 18);
40
- }
41
- }
42
-
43
- h2,
44
- .heading-2 {
45
- font-size: var(--text-3xl);
46
- line-height: calc(var(--spacing) * 9);
47
- scroll-margin-right: calc(var(--spacing) * 9);
48
- }
49
-
50
- h3,
51
- .heading-3 {
52
- font-size: var(--text-xl);
53
- line-height: calc(var(--spacing) * 6);
54
- scroll-margin-right: calc(var(--spacing) * 6);
55
- }
56
-
57
- p {
58
- --tw-leading: calc(var(--spacing) * 6);
59
- line-height: calc(var(--spacing) * 6);
60
-
61
- &:not(:first-child) {
62
- margin-top: calc(var(--spacing) * 4);
63
- }
64
- }
65
-
66
- blockquote {
67
- color: var(--primary);
68
- font-family: var(--font-sans-accent);
69
- font-weight: var(--font-weight-medium);
70
-
71
- margin-inline: calc(var(--spacing) * 4);
72
- margin-block: calc(var(--spacing) * 6);
73
-
74
- & > cite {
75
- display: block;
76
- text-align: end;
77
- }
78
-
79
- @media (width >= 40rem) {
80
- margin-inline: calc(var(--spacing) * 16);
81
- }
82
- }
83
-
84
- aside {
85
- display: block;
86
- float: none;
87
- width: var(--container-xs);
88
- margin-block-start: calc(var(--spacing) * 4);
89
- margin-block-end: calc(var(--spacing) * 2);
90
- margin-inline: auto;
91
- padding: calc(var(--spacing) * 4);
92
- border-block-width: var(--spacing);
93
-
94
- color: var(--color-sidebar-accent-foreground);
95
- background-color: var(--color-sidebar-accent);
96
- border-color: var(--color-sidebar-border);
97
-
98
- @media (width >= 40rem) {
99
- float: inline-end;
100
- margin-left: calc(var(--spacing) * 2);
101
- border-block-width: 0px;
102
- border-inline-start-width: var(--spacing);
103
- }
104
- }
105
-
106
- a {
107
- text-decoration-line: underline;
108
- text-underline-offset: 4px;
109
-
110
- &:focus-visible {
111
- outline-color: var(--color-ring);
112
- outline-style: solid;
113
- outline-offset: 0;
114
- outline-width: var(--spacing);
115
- }
116
-
117
- &[data-slot] {
118
- text-decoration-line: none;
119
- }
120
- }
121
-
122
- ul,
123
- ol {
124
- margin-left: calc(var(--spacing) * 4);
125
-
126
- & > li {
127
- margin-top: calc(var(--spacing) * 2);
128
- }
129
-
130
- @media (width >= 40rem) {
131
- margin-left: calc(var(--spacing) * 8);
132
- }
133
- }
134
- ul {
135
- list-style-type: disc;
136
- }
137
- li > ul {
138
- list-style-type: circle;
139
- }
140
- li > ul > li > ul {
141
- list-style-type: square;
142
- }
143
-
144
- ol {
145
- list-style-type: decimal;
146
- }
147
- li > ol {
148
- list-style-type: lower-alpha;
149
- }
150
- li > ol > li > ol {
151
- list-style-type: lower-roman;
152
- }
153
-
154
- dl {
155
- margin-top: calc(var(--spacing) * 2);
156
- & > dt {
157
- font-family: var(--font-sans-accent);
158
- font-weight: var(--font-weight-medium);
159
- font-style: italic;
160
- margin-top: calc(var(--spacing));
161
- &::after {
162
- content: ": ";
163
- }
164
- }
165
-
166
- & > dd {
167
- margin-left: calc(var(--spacing) * 4);
168
- font-size: var(--text-sm);
169
- }
170
- }
171
-
172
- details {
173
- margin-top: calc(var(--spacing) * 4);
174
- border-width: 1px;
175
- border-radius: var(--container-radius);
176
-
177
- transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke,
178
- --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
179
- transition-timing-function: var(--default-transition-timing-function);
180
- transition-duration: var(--default-transition-duration);
181
-
182
- &:hover {
183
- background-color: var(--muted);
184
- }
185
-
186
- & > summary {
187
- border-radius: var(--container-radius);
188
- padding-inline: calc(var(--spacing) * 4);
189
- padding-block: calc(var(--spacing) * 2);
190
- list-style: none;
191
-
192
- &::-webkit-details-marker {
193
- display: none;
194
- }
195
-
196
- &:focus-visible {
197
- outline-color: var(--color-ring);
198
- outline-style: solid;
199
- outline-offset: 0;
200
- outline-width: var(--spacing);
201
- }
202
- }
203
-
204
- &[open] {
205
- background-color: var(--muted);
206
- & > summary {
207
- border-bottom-width: 1px;
208
-
209
- border-bottom-left-radius: 0;
210
- border-bottom-right-radius: 0;
211
- }
212
-
213
- & > p {
214
- margin: 0;
215
- padding: calc(var(--spacing) * 4);
216
- }
217
- }
218
- }
219
-
220
- details + details {
221
- margin-top: calc(var(--spacing));
222
- }
223
-
224
- address {
225
- font-style: italic;
226
- margin-block: calc(var(--spacing) * 4);
227
- }
228
-
229
- code,
230
- kbd,
231
- samp {
232
- position: relative;
233
- color: var(--primary);
234
- font-family: var(--font-mono);
235
- font-size: var(--text-sm);
236
- font-weight: var(--font-weight-medium);
237
- }
238
-
239
- code {
240
- background-color: var(--color-muted);
241
- border-radius: var(--radius-sm);
242
-
243
- padding-inline: calc(var(--spacing) * 2);
244
- padding-block: var(--spacing);
245
- }
246
-
247
- kbd {
248
- text-shadow: var(--text-shadow-sm);
249
- > kbd {
250
- white-space: nowrap;
251
- padding-inline: calc(var(--spacing) * 2);
252
- padding-block: var(--spacing);
253
- background-color: var(--color-muted);
254
- border-radius: var(--radius-sm);
255
- border-width: 1px;
256
- box-shadow: 0 1px 1px color-mix(in oklab, var(--color-foreground) 20%, transparent),
257
- 0 2px 0 0 color-mix(in oklab, var(--color-background) 20%, transparent) inset;
258
- }
259
- }
260
-
261
- pre {
262
- background-color: var(--color-muted);
263
- border-radius: var(--radius-sm);
264
- padding: calc(var(--spacing) * 4);
265
- line-height: var(--text-lg--line-height);
266
- font-size: var(--text-sm);
267
-
268
- &:not(:first-child) {
269
- margin-top: calc(var(--spacing) * 4);
270
- }
271
-
272
- code {
273
- padding: 0px;
274
- }
275
- }
276
-
277
- del {
278
- text-decoration: none;
279
- background-color: var(--color-red-200);
280
- color: var(--foreground);
281
- padding-inline: var(--spacing);
282
- &:is(.dark *) {
283
- background-color: var(--color-red-900);
284
- }
285
- }
286
-
287
- ins {
288
- text-decoration: none;
289
- background-color: var(--color-green-200);
290
- color: var(--foreground);
291
- padding-inline: var(--spacing);
292
- &:is(.dark *) {
293
- background-color: var(--color-green-900);
294
- }
295
- }
296
-
297
- mark {
298
- text-decoration: none;
299
- color: var(--foreground);
300
- background-color: var(--color-teal-100);
301
- padding-inline: var(--spacing);
302
- &:is(.dark *) {
303
- background-color: var(--color-teal-900);
304
- }
305
- }
306
-
307
- abbr {
308
- text-underline-offset: 4px;
309
- }
310
-
311
- /* Table */
312
- .scroll-enclosure {
313
- position: relative;
314
- display: block;
315
- width: 100%;
316
- overflow: auto;
317
- &:not(:first-child) {
318
- margin-top: calc(var(--spacing) * 4);
319
- }
320
- }
321
-
322
- .bordered-enclosure {
323
- border-width: 1px;
324
- border-radius: var(--container-radius);
325
- }
326
-
327
- table {
328
- table-layout: auto;
329
- position: relative;
330
- border-spacing: 0;
331
- border-collapse: separate;
332
- caption-side: bottom;
333
- background-color: var(--background);
334
-
335
- display: block;
336
- width: fit-content;
337
- max-width: 100%;
338
- overflow-x: auto;
339
- margin-inline: auto;
340
-
341
- .scroll-enclosure > & {
342
- display: table;
343
- overflow-x: initial;
344
- width: 100%;
345
- height: 100%;
346
- }
347
-
348
- &:not(:first-child) {
349
- margin-top: calc(var(--spacing) * 4);
350
- }
351
- }
352
-
353
- caption {
354
- color: var(--muted-foreground);
355
- margin: 0px;
356
- padding: calc(var(--spacing) * 2);
357
- border-top-width: 1px;
358
-
359
- text-align: center;
360
- font-family: var(--font-sans-accent);
361
- font-size: var(--text-sm);
362
- font-weight: var(--font-weight-medium);
363
- line-height: 1.5em;
364
- }
365
-
366
- tr {
367
- padding: 0px;
368
- margin: 0px;
369
- }
370
- th,
371
- td {
372
- padding-inline: calc(var(--spacing) * 4);
373
- padding-block: calc(var(--spacing) * 2);
374
- text-align: left;
375
- vertical-align: middle;
376
- white-space: nowrap;
377
-
378
- &[align="center"] {
379
- text-align: center;
380
- }
381
- &[align="right"] {
382
- text-align: right;
383
- }
384
- }
385
-
386
- thead {
387
- position: sticky;
388
- z-index: 5;
389
- top: 0px;
390
- & th {
391
- border-bottom-width: 1px;
392
- font-family: var(--font-sans-accent);
393
- font-weight: var(--font-weight-semibold);
394
- background-color: var(--color-background);
395
- vertical-align: bottom;
396
- }
397
- }
398
-
399
- tbody {
400
- & > tr:not(:last-child) {
401
- th,
402
- td {
403
- border-bottom-width: 1px;
404
- }
405
- }
406
- }
407
-
408
- tfoot {
409
- position: sticky;
410
- z-index: 5;
411
- bottom: 0px;
412
- th,
413
- td {
414
- background-color: var(--muted);
415
- font-family: var(--font-sans-accent);
416
- font-weight: var(--font-weight-medium);
417
- border-top-width: 1px;
418
- }
419
- }
420
-
421
- /* Media */
422
- :is(img, audio, video) {
423
- border-width: 1px;
424
- border-radius: var(--container-radius);
425
- overflow: hidden;
426
- max-width: 100%;
427
- margin-inline: auto;
428
- }
429
-
430
- :is(audio, video)::-webkit-media-controls-enclosure {
431
- border-radius: 0px;
432
- }
433
-
434
- video {
435
- object-fit: cover;
436
- }
437
-
438
- /* Figure */
439
- figure {
440
- position: relative;
441
- border-width: 1px;
442
- border-radius: var(--container-radius);
443
- overflow: hidden;
444
- margin-inline: auto;
445
- width: fit-content;
446
- max-width: 100%;
447
-
448
- &:not(:first-child) {
449
- margin-top: calc(var(--spacing) * 4);
450
- }
451
-
452
- & > figcaption {
453
- color: var(--muted-foreground);
454
- margin: 0px;
455
- padding: calc(var(--spacing) * 2);
456
- text-align: center;
457
- font-family: var(--font-sans-accent);
458
- font-size: var(--text-sm);
459
- font-weight: var(--font-weight-medium);
460
- line-height: 1.5em;
461
-
462
- &:first-child {
463
- font-weight: var(--font-weight-bold);
464
- border-bottom-width: 1px;
465
- }
466
- &:last-child {
467
- border-top-width: 1px;
468
- }
469
- }
470
-
471
- :is(img, audio, video, .bordered-enclosure) {
472
- border-radius: 0;
473
- border: none;
474
- }
475
-
476
- :is(img, video) {
477
- object-fit: contain;
478
- }
479
- }
1
+ @layer base {
2
+ /* Typography */
3
+ h1,
4
+ h2,
5
+ h3,
6
+ h4,
7
+ h5,
8
+ h6,
9
+ .heading-1,
10
+ .heading-2,
11
+ .heading-3 {
12
+ font-family: var(--font-sans-accent);
13
+ color: var(--primary);
14
+ text-wrap: balance;
15
+ letter-spacing: var(--tracking-tight);
16
+ font-weight: var(--font-weight-medium);
17
+ --tw-tracking: var(--tracking-tight);
18
+ line-height: 1.125em;
19
+ }
20
+
21
+ h1,
22
+ h2,
23
+ h3,
24
+ h4,
25
+ h5,
26
+ h6 {
27
+ &:not(:first-child) {
28
+ margin-top: --spacing(4);
29
+ }
30
+ }
31
+
32
+ h1,
33
+ .heading-1 {
34
+ font-size: calc(var(--text-base) * 2.5);
35
+ font-weight: var(--font-weight-semibold);
36
+
37
+ @media (width >= 64rem) {
38
+ font-size: calc(var(--text-base) * 5);
39
+ }
40
+ }
41
+
42
+ h2,
43
+ .heading-2 {
44
+ font-size: calc(var(--text-base) * 2);
45
+ }
46
+
47
+ h3,
48
+ .heading-3 {
49
+ font-size: calc(var(--text-base) * 1.5);
50
+ }
51
+
52
+ p {
53
+ --tw-leading: --spacing(6);
54
+ line-height: --spacing(6);
55
+
56
+ &:not(:first-child) {
57
+ margin-top: --spacing(4);
58
+ }
59
+ }
60
+
61
+ blockquote {
62
+ color: var(--primary);
63
+ font-family: var(--font-sans-accent);
64
+ font-weight: var(--font-weight-medium);
65
+
66
+ margin-inline: --spacing(4);
67
+ margin-block: --spacing(6);
68
+
69
+ & > cite {
70
+ display: block;
71
+ text-align: end;
72
+ }
73
+
74
+ @media (width >= 40rem) {
75
+ margin-inline: --spacing(16);
76
+ }
77
+ }
78
+
79
+ aside {
80
+ display: block;
81
+ float: none;
82
+ width: var(--container-xs);
83
+ margin-block-start: --spacing(4);
84
+ margin-block-end: --spacing(2);
85
+ margin-inline: auto;
86
+ padding: --spacing(4);
87
+ border-block-width: var(--spacing);
88
+
89
+ color: var(--color-sidebar-accent-foreground);
90
+ background-color: var(--color-sidebar-accent);
91
+ border-color: var(--color-sidebar-border);
92
+
93
+ @media (width >= 40rem) {
94
+ float: inline-end;
95
+ margin-left: --spacing(2);
96
+ border-block-width: 0px;
97
+ border-inline-start-width: var(--spacing);
98
+ }
99
+ }
100
+
101
+ a {
102
+ text-decoration-line: underline;
103
+ text-underline-offset: 4px;
104
+
105
+ &:focus-visible {
106
+ outline-color: var(--color-ring);
107
+ outline-style: solid;
108
+ outline-offset: 0;
109
+ outline-width: calc(var(--spacing) * 0.5);
110
+ }
111
+
112
+ &[data-slot] {
113
+ text-decoration-line: none;
114
+ }
115
+ }
116
+
117
+ ul,
118
+ ol {
119
+ margin-left: --spacing(4);
120
+
121
+ & > li {
122
+ margin-top: --spacing(2);
123
+ }
124
+
125
+ @media (width >= 40rem) {
126
+ margin-left: --spacing(8);
127
+ }
128
+ }
129
+ ul {
130
+ list-style-type: disc;
131
+ }
132
+ li > ul {
133
+ list-style-type: circle;
134
+ }
135
+ li > ul > li > ul {
136
+ list-style-type: square;
137
+ }
138
+
139
+ ol {
140
+ list-style-type: decimal;
141
+ }
142
+ li > ol {
143
+ list-style-type: lower-alpha;
144
+ }
145
+ li > ol > li > ol {
146
+ list-style-type: lower-roman;
147
+ }
148
+
149
+ dl {
150
+ margin-top: --spacing(2);
151
+ & > dt {
152
+ font-family: var(--font-sans-accent);
153
+ font-weight: var(--font-weight-medium);
154
+ font-style: italic;
155
+ margin-top: calc(var(--spacing));
156
+ &::after {
157
+ content: ": ";
158
+ }
159
+ }
160
+
161
+ & > dd {
162
+ margin-left: --spacing(4);
163
+ font-size: var(--text-sm);
164
+ }
165
+ }
166
+
167
+ details {
168
+ margin-top: --spacing(4);
169
+ border-width: 1px;
170
+ border-radius: var(--radius-container);
171
+
172
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke,
173
+ --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
174
+ transition-timing-function: var(--default-transition-timing-function);
175
+ transition-duration: var(--default-transition-duration);
176
+
177
+ &:hover {
178
+ background-color: var(--muted);
179
+ }
180
+
181
+ & > summary {
182
+ border-radius: var(--radius-container);
183
+ padding-inline: --spacing(4);
184
+ padding-block: --spacing(2);
185
+ list-style: none;
186
+
187
+ &::-webkit-details-marker {
188
+ display: none;
189
+ }
190
+
191
+ &:focus-visible {
192
+ outline-color: var(--color-ring);
193
+ outline-style: solid;
194
+ outline-offset: 0;
195
+ outline-width: var(--spacing);
196
+ }
197
+ }
198
+
199
+ &[open] {
200
+ background-color: var(--muted);
201
+ & > summary {
202
+ border-bottom-width: 1px;
203
+
204
+ border-bottom-left-radius: 0;
205
+ border-bottom-right-radius: 0;
206
+ }
207
+
208
+ & > p {
209
+ margin: 0;
210
+ padding: --spacing(4);
211
+ }
212
+ }
213
+ }
214
+
215
+ details + details {
216
+ margin-top: calc(var(--spacing));
217
+ }
218
+
219
+ address {
220
+ font-style: italic;
221
+ margin-block: --spacing(4);
222
+ }
223
+
224
+ code,
225
+ kbd,
226
+ samp {
227
+ position: relative;
228
+ color: var(--primary);
229
+ font-family: var(--font-mono);
230
+ font-size: var(--text-sm);
231
+ font-weight: var(--font-weight-medium);
232
+ }
233
+
234
+ code {
235
+ background-color: var(--color-muted);
236
+ border-radius: var(--radius-sm);
237
+
238
+ padding-inline: --spacing(2);
239
+ padding-block: var(--spacing);
240
+ }
241
+
242
+ kbd {
243
+ text-shadow: var(--text-shadow-sm);
244
+ > kbd {
245
+ white-space: nowrap;
246
+ padding-inline: --spacing(2);
247
+ padding-block: var(--spacing);
248
+ background-color: var(--color-muted);
249
+ border-radius: var(--radius-sm);
250
+ border-width: 1px;
251
+ box-shadow: 0 1px 1px color-mix(in oklab, var(--color-foreground) 20%, transparent),
252
+ 0 2px 0 0 color-mix(in oklab, var(--color-background) 20%, transparent) inset;
253
+ }
254
+ }
255
+
256
+ pre {
257
+ background-color: var(--color-muted);
258
+ border-radius: var(--radius-sm);
259
+ padding: --spacing(4);
260
+ line-height: var(--text-lg--line-height);
261
+ font-size: var(--text-sm);
262
+
263
+ &:not(:first-child) {
264
+ margin-top: --spacing(4);
265
+ }
266
+
267
+ code {
268
+ padding: 0px;
269
+ }
270
+ }
271
+
272
+ del {
273
+ text-decoration: none;
274
+ background-color: var(--color-red-200);
275
+ color: var(--foreground);
276
+ padding-inline: var(--spacing);
277
+ &:is(.dark *) {
278
+ background-color: var(--color-red-900);
279
+ }
280
+ }
281
+
282
+ ins {
283
+ text-decoration: none;
284
+ background-color: var(--color-green-200);
285
+ color: var(--foreground);
286
+ padding-inline: var(--spacing);
287
+ &:is(.dark *) {
288
+ background-color: var(--color-green-900);
289
+ }
290
+ }
291
+
292
+ mark {
293
+ text-decoration: none;
294
+ color: var(--foreground);
295
+ background-color: var(--color-teal-100);
296
+ padding-inline: var(--spacing);
297
+ &:is(.dark *) {
298
+ background-color: var(--color-teal-900);
299
+ }
300
+ }
301
+
302
+ abbr {
303
+ text-underline-offset: 4px;
304
+ }
305
+
306
+ small {
307
+ font-size: var(--text-sm);
308
+ line-height: --spacing(6);
309
+ }
310
+
311
+ /* Table */
312
+ .scroll-enclosure {
313
+ position: relative;
314
+ display: block;
315
+ width: 100%;
316
+ overflow: auto;
317
+ &:not(:first-child) {
318
+ margin-top: --spacing(4);
319
+ }
320
+ }
321
+
322
+ .bordered-enclosure {
323
+ border-width: 1px;
324
+ border-radius: var(--radius-container);
325
+ }
326
+
327
+ table {
328
+ table-layout: auto;
329
+ position: relative;
330
+ border-spacing: 0;
331
+ border-collapse: separate;
332
+ caption-side: bottom;
333
+ background-color: var(--background);
334
+
335
+ display: block;
336
+ width: fit-content;
337
+ max-width: 100%;
338
+ overflow-x: auto;
339
+ margin-inline: auto;
340
+
341
+ .scroll-enclosure > & {
342
+ display: table;
343
+ overflow-x: initial;
344
+ width: 100%;
345
+ height: 100%;
346
+ }
347
+
348
+ &:not(:first-child) {
349
+ margin-top: --spacing(4);
350
+ }
351
+ }
352
+
353
+ caption {
354
+ color: var(--muted-foreground);
355
+ margin: 0px;
356
+ padding: --spacing(2);
357
+ border-top-width: 1px;
358
+
359
+ text-align: center;
360
+ font-family: var(--font-sans-accent);
361
+ font-size: var(--text-sm);
362
+ font-weight: var(--font-weight-medium);
363
+ line-height: 1.5em;
364
+ }
365
+
366
+ tr {
367
+ padding: 0px;
368
+ margin: 0px;
369
+ }
370
+ th,
371
+ td {
372
+ padding-inline: --spacing(4);
373
+ padding-block: --spacing(2);
374
+ text-align: left;
375
+ vertical-align: middle;
376
+ white-space: nowrap;
377
+
378
+ &[align="center"] {
379
+ text-align: center;
380
+ }
381
+ &[align="right"] {
382
+ text-align: right;
383
+ }
384
+ }
385
+
386
+ thead {
387
+ position: sticky;
388
+ z-index: 5;
389
+ top: 0px;
390
+ & th {
391
+ border-bottom-width: 1px;
392
+ font-family: var(--font-sans-accent);
393
+ font-weight: var(--font-weight-semibold);
394
+ background-color: var(--color-background);
395
+ vertical-align: bottom;
396
+ }
397
+ }
398
+
399
+ tbody {
400
+ & > tr:not(:last-child) {
401
+ th,
402
+ td {
403
+ border-bottom-width: 1px;
404
+ }
405
+ }
406
+ }
407
+
408
+ tfoot {
409
+ position: sticky;
410
+ z-index: 5;
411
+ bottom: 0px;
412
+ th,
413
+ td {
414
+ background-color: var(--muted);
415
+ font-family: var(--font-sans-accent);
416
+ font-weight: var(--font-weight-medium);
417
+ border-top-width: 1px;
418
+ }
419
+ }
420
+
421
+ /* Media */
422
+ :is(img, audio, video) {
423
+ border-width: 1px;
424
+ border-radius: var(--radius-container);
425
+ overflow: hidden;
426
+ max-width: 100%;
427
+ margin-inline: auto;
428
+ }
429
+
430
+ :is(audio, video)::-webkit-media-controls-enclosure {
431
+ border-radius: 0px;
432
+ }
433
+
434
+ video {
435
+ object-fit: cover;
436
+ }
437
+
438
+ /* Figure */
439
+ figure {
440
+ position: relative;
441
+ border-width: 1px;
442
+ border-radius: var(--radius-container);
443
+ overflow: hidden;
444
+ margin-inline: auto;
445
+ width: fit-content;
446
+ max-width: 100%;
447
+
448
+ &:not(:first-child) {
449
+ margin-top: --spacing(4);
450
+ }
451
+
452
+ & > figcaption {
453
+ color: var(--muted-foreground);
454
+ margin: 0px;
455
+ padding: --spacing(2);
456
+ text-align: center;
457
+ font-family: var(--font-sans-accent);
458
+ font-size: var(--text-sm);
459
+ font-weight: var(--font-weight-medium);
460
+ line-height: 1.5em;
461
+
462
+ &:first-child {
463
+ font-weight: var(--font-weight-bold);
464
+ border-bottom-width: 1px;
465
+ }
466
+ &:last-child {
467
+ border-top-width: 1px;
468
+ }
469
+ }
470
+
471
+ :is(img, audio, video, .bordered-enclosure) {
472
+ border-radius: 0;
473
+ border: none;
474
+ }
475
+
476
+ :is(img, video) {
477
+ object-fit: contain;
478
+ }
479
+ }
480
+ }