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