@byuhbll/components 6.1.1 → 7.0.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@byuhbll/components",
3
- "version": "6.1.1",
3
+ "version": "7.0.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.3.15",
6
6
  "@angular/core": "^20.3.15"
@@ -13,6 +13,9 @@
13
13
  "./base": {
14
14
  "sass": "./styles/scss/base.scss"
15
15
  },
16
+ "./hbll-foundation": {
17
+ "sass": "./styles/scss/hbll-foundation.scss"
18
+ },
16
19
  "./_vars": {
17
20
  "sass": "./styles/scss/_vars.scss"
18
21
  },
@@ -0,0 +1,21 @@
1
+ .sr-only {
2
+ position: absolute;
3
+ width: 1px;
4
+ height: 1px;
5
+ padding: 0;
6
+ margin: -1px;
7
+ overflow: hidden;
8
+ clip: rect(0, 0, 0, 0);
9
+ border: 0;
10
+ }
11
+
12
+ .sr-only.sr-only-focusable:focus,
13
+ .sr-only.sr-only-focusable:focus-within,
14
+ .sr-only.sr-only-focusable:active {
15
+ position: static;
16
+ width: auto;
17
+ height: auto;
18
+ margin: 0;
19
+ overflow: visible;
20
+ clip: auto;
21
+ }
@@ -8,7 +8,7 @@ $color-blue-150: #ccdaf1;
8
8
  $color-blue-100: #e5edf8;
9
9
  // Grays
10
10
  $color-gray-500: #141414;
11
- $color-gray-400: #767676;
11
+ $color-gray-400: #737373;
12
12
  $color-gray-300: #8f8f8f;
13
13
  $color-gray-200: #d0d0d0;
14
14
  $color-gray-100: #e7e7e7;
@@ -0,0 +1,523 @@
1
+ // ---------------------------------------------------
2
+ // BYU Library Shared Styles
3
+ // ---------------------------------------------------
4
+
5
+ // ---------------------------------------------------
6
+ // Reset / Base
7
+ // ---------------------------------------------------
8
+
9
+ html {
10
+ border: 0;
11
+ margin: 0;
12
+ padding: 0;
13
+ -webkit-text-size-adjust: 100%;
14
+ }
15
+
16
+ body {
17
+ margin: 0;
18
+ padding: 0;
19
+ }
20
+
21
+ *,
22
+ *::before,
23
+ *::after {
24
+ box-sizing: border-box;
25
+ }
26
+
27
+ // ---------------------------------------------------
28
+ // Colors (Design Tokens)
29
+ // ---------------------------------------------------
30
+
31
+ // Brand Colors
32
+ $color-navy: #00245d;
33
+ $color-royal: #0047ba;
34
+ $color-white: #ffffff;
35
+
36
+ // Blues / Royal (Primary)
37
+ $color-blue-500: #00245d;
38
+ $color-blue-400: #003995;
39
+ $color-blue-300: #0047ba;
40
+ $color-blue-200: #336cc8;
41
+ $color-blue-150: #ccdaf1;
42
+ $color-blue-100: #e5edf8;
43
+
44
+ // Grays / Neutral
45
+ $color-gray-500: #141414;
46
+ $color-gray-400: #737373;
47
+ $color-gray-300: #8f8f8f;
48
+ $color-gray-200: #d0d0d0;
49
+ $color-gray-100: #e7e7e7;
50
+ $color-gray-50: #f9f9f9;
51
+
52
+ // Greens / Success
53
+ $color-green-500: #1d562e;
54
+ $color-green-400: #2e8545;
55
+ $color-green-300: #3ba35a;
56
+ $color-green-200: #9dd1ac;
57
+ $color-green-100: #ebf6ee;
58
+
59
+ // Teals / Info
60
+ $color-teal-500: #26485f;
61
+ $color-teal-400: #3e7295;
62
+ $color-teal-300: #457fa6;
63
+ $color-teal-200: #a2bfd3;
64
+ $color-teal-100: #ecf2f6;
65
+
66
+ // Reds / Error
67
+ $color-red-500: #702121;
68
+ $color-red-400: #b33837;
69
+ $color-red-300: #c73e3d;
70
+ $color-red-200: #e39e9e;
71
+ $color-red-100: #f9ecec;
72
+
73
+ // Yellows / Warning (Mustard)
74
+ $color-yellow-500: #635f04;
75
+ $color-yellow-400: #928c30;
76
+ $color-yellow-300: #d1c844;
77
+ $color-yellow-200: #e8e3a1;
78
+ $color-yellow-100: #f2f0e9;
79
+
80
+ // Purple / Focus
81
+ $color-purple-focus: #b967c7;
82
+
83
+ // ---------------------------------------------------
84
+ // Semantic Tokens (preferred usage across apps)
85
+ // ---------------------------------------------------
86
+
87
+ $text-heading: #002e5d;
88
+ $text-secondary-heading: #737373;
89
+ $text-body: $color-gray-500;
90
+ $text-disabled: $color-gray-400;
91
+ $text-link: $color-blue-200;
92
+ $text-on-action: $color-white;
93
+
94
+ $focus-ring-color: $color-purple-focus;
95
+
96
+ // State semantics (useful for alerts, badges, etc.)
97
+ $text-success: $color-green-500;
98
+ $text-info: $color-teal-500;
99
+ $text-error: $color-red-500;
100
+ $text-warning: $color-yellow-500;
101
+
102
+ $surface-success: $color-green-100;
103
+ $surface-info: $color-teal-100;
104
+ $surface-error: $color-red-100;
105
+ $surface-warning: $color-yellow-100;
106
+
107
+ // ---------------------------------------------------
108
+ // Expose CSS Custom Properties (so non-Sass apps can consume)
109
+ // ---------------------------------------------------
110
+
111
+ :root {
112
+ /* Brand */
113
+ --color-navy: #{$color-navy};
114
+ --color-royal: #{$color-royal};
115
+ --color-white: #{$color-white};
116
+
117
+ /* Royal (Primary) */
118
+ --color-blue-500: #{$color-blue-500};
119
+ --color-blue-400: #{$color-blue-400};
120
+ --color-blue-300: #{$color-blue-300};
121
+ --color-blue-200: #{$color-blue-200};
122
+ --color-blue-150: #{$color-blue-150};
123
+ --color-blue-100: #{$color-blue-100};
124
+
125
+ /* Neutral */
126
+ --color-gray-500: #{$color-gray-500};
127
+ --color-gray-400: #{$color-gray-400};
128
+ --color-gray-300: #{$color-gray-300};
129
+ --color-gray-200: #{$color-gray-200};
130
+ --color-gray-100: #{$color-gray-100};
131
+ --color-gray-50: #{$color-gray-50};
132
+ --color-gray-brand-400: #{$color-gray-400};
133
+
134
+ /* Success */
135
+ --color-green-500: #{$color-green-500};
136
+ --color-green-400: #{$color-green-400};
137
+ --color-green-300: #{$color-green-300};
138
+ --color-green-200: #{$color-green-200};
139
+ --color-green-100: #{$color-green-100};
140
+
141
+ /* Info */
142
+ --color-teal-500: #{$color-teal-500};
143
+ --color-teal-400: #{$color-teal-400};
144
+ --color-teal-300: #{$color-teal-300};
145
+ --color-teal-200: #{$color-teal-200};
146
+ --color-teal-100: #{$color-teal-100};
147
+
148
+ /* Error */
149
+ --color-red-500: #{$color-red-500};
150
+ --color-red-400: #{$color-red-400};
151
+ --color-red-300: #{$color-red-300};
152
+ --color-red-200: #{$color-red-200};
153
+ --color-red-100: #{$color-red-100};
154
+
155
+ /* Warning */
156
+ --color-yellow-500: #{$color-yellow-500};
157
+ --color-yellow-400: #{$color-yellow-400};
158
+ --color-yellow-300: #{$color-yellow-300};
159
+ --color-yellow-200: #{$color-yellow-200};
160
+ --color-yellow-100: #{$color-yellow-100};
161
+
162
+ /* Focus */
163
+ --color-purple-focus: #{$color-purple-focus};
164
+
165
+ /* Semantic text */
166
+ --text-heading: #{$text-heading};
167
+ --text-secondary-heading: #{$text-secondary-heading};
168
+ --text-body: #{$text-body};
169
+ --text-disabled: #{$text-disabled};
170
+ --text-link: #{$text-link};
171
+ --text-on-action: #{$text-on-action};
172
+
173
+ /* Semantic states */
174
+ --text-success: #{$text-success};
175
+ --text-info: #{$text-info};
176
+ --text-error: #{$text-error};
177
+ --text-warning: #{$text-warning};
178
+
179
+ --surface-success: #{$surface-success};
180
+ --surface-info: #{$surface-info};
181
+ --surface-error: #{$surface-error};
182
+ --surface-warning: #{$surface-warning};
183
+
184
+ --focus-ring-color: #{$focus-ring-color};
185
+ }
186
+
187
+ // ---------------------------------------------------
188
+ // Fonts
189
+ // ---------------------------------------------------
190
+
191
+ $sourceSansProVersion: '1.0.0';
192
+
193
+ @font-face {
194
+ font-family: 'Source Sans Pro';
195
+ font-style: normal;
196
+ font-weight: 300;
197
+ src: url('https://media.lib.byu.edu/web-assets/fonts/sourcesanspro/#{$sourceSansProVersion}/SourceSansPro-Light.ttf')
198
+ format('truetype');
199
+ font-display: swap;
200
+ }
201
+
202
+ @font-face {
203
+ font-family: 'Source Sans Pro';
204
+ font-style: normal;
205
+ font-weight: 400;
206
+ src: url('https://media.lib.byu.edu/web-assets/fonts/sourcesanspro/#{$sourceSansProVersion}/SourceSansPro-Regular.ttf')
207
+ format('truetype');
208
+ font-display: swap;
209
+ }
210
+
211
+ @font-face {
212
+ font-family: 'Source Sans Pro';
213
+ font-style: normal;
214
+ font-weight: 600;
215
+ src: url('https://media.lib.byu.edu/web-assets/fonts/sourcesanspro/#{$sourceSansProVersion}/SourceSansPro-Semibold.ttf')
216
+ format('truetype');
217
+ font-display: swap;
218
+ }
219
+
220
+ @font-face {
221
+ font-family: 'Source Sans Pro';
222
+ font-style: normal;
223
+ font-weight: 700;
224
+ src: url('https://media.lib.byu.edu/web-assets/fonts/sourcesanspro/#{$sourceSansProVersion}/SourceSansPro-Bold.ttf')
225
+ format('truetype');
226
+ font-display: swap;
227
+ }
228
+
229
+ @font-face {
230
+ font-family: 'Source Sans Pro';
231
+ font-style: italic;
232
+ font-weight: 300;
233
+ src: url('https://media.lib.byu.edu/web-assets/fonts/sourcesanspro/#{$sourceSansProVersion}/SourceSansPro-LightItalic.ttf')
234
+ format('truetype');
235
+ font-display: swap;
236
+ }
237
+
238
+ @font-face {
239
+ font-family: 'Source Sans Pro';
240
+ font-style: italic;
241
+ font-weight: 400;
242
+ src: url('https://media.lib.byu.edu/web-assets/fonts/sourcesanspro/#{$sourceSansProVersion}/SourceSansPro-Italic.ttf')
243
+ format('truetype');
244
+ font-display: swap;
245
+ }
246
+
247
+ @font-face {
248
+ font-family: 'Source Sans Pro';
249
+ font-style: italic;
250
+ font-weight: 600;
251
+ src: url('https://media.lib.byu.edu/web-assets/fonts/sourcesanspro/#{$sourceSansProVersion}/SourceSansPro-SemiboldItalic.ttf')
252
+ format('truetype');
253
+ font-display: swap;
254
+ }
255
+
256
+ @font-face {
257
+ font-family: 'Source Sans Pro';
258
+ font-style: italic;
259
+ font-weight: 700;
260
+ src: url('https://media.lib.byu.edu/web-assets/fonts/sourcesanspro/#{$sourceSansProVersion}/SourceSansPro-BoldItalic.ttf')
261
+ format('truetype');
262
+ font-display: swap;
263
+ }
264
+
265
+ // ---------------------------------------------------
266
+ // Default Styles for Elements
267
+ // ---------------------------------------------------
268
+
269
+ // Default font-family
270
+ h1,
271
+ h2,
272
+ h3,
273
+ h4,
274
+ h5,
275
+ h6,
276
+ span:not(.material-symbols-outlined),
277
+ a,
278
+ p {
279
+ font-family: 'Source Sans Pro';
280
+ }
281
+
282
+ // Headers
283
+ h1 {
284
+ font-weight: 300;
285
+ font-style: normal;
286
+ color: var(--text-heading);
287
+ }
288
+
289
+ h2 {
290
+ font-weight: 400;
291
+ font-style: normal;
292
+ color: var(--text-heading);
293
+ }
294
+
295
+ h3 {
296
+ font-weight: 700;
297
+ font-style: normal;
298
+ color: var(--text-heading);
299
+ }
300
+
301
+ h4 {
302
+ font-weight: 600;
303
+ font-style: normal;
304
+ color: var(--text-secondary-heading);
305
+ }
306
+
307
+ h5 {
308
+ font-weight: 600;
309
+ font-style: normal;
310
+ color: var(--text-secondary-heading);
311
+ }
312
+
313
+ h6 {
314
+ font-weight: 600;
315
+ font-style: normal;
316
+ color: var(--text-secondary-heading);
317
+ }
318
+
319
+ // Paragraph classes
320
+ .hbll-default-body {
321
+ font-weight: 400;
322
+ font-style: normal;
323
+
324
+ max-width: 35rem;
325
+ min-width: 22.25rem;
326
+
327
+ color: var(--text-body);
328
+ }
329
+
330
+ .hbll-caption {
331
+ font-weight: 400;
332
+ font-style: normal;
333
+
334
+ max-width: 25.25rem;
335
+ min-width: 17.5rem;
336
+
337
+ color: var(--text-body);
338
+ }
339
+
340
+ .hbll-large {
341
+ font-weight: 400;
342
+ font-style: normal;
343
+
344
+ max-width: 41.25rem;
345
+ min-width: 26.5rem;
346
+
347
+ color: var(--text-body);
348
+ }
349
+
350
+ // Default link style
351
+ a {
352
+ color: var(--text-link);
353
+ text-decoration: underline;
354
+ }
355
+
356
+ // Span emphasis class
357
+ .hbll-emphasis {
358
+ font-weight: 600;
359
+ }
360
+
361
+ // ---------------------------------------------------
362
+ // Breakpoint size changes (mobile-first)
363
+ // ---------------------------------------------------
364
+
365
+ // Mobile default sizes (applies to all widths unless overridden)
366
+ h1 {
367
+ font-size: 2rem;
368
+ line-height: 2.5rem;
369
+ }
370
+ h2 {
371
+ font-size: 1.75rem;
372
+ line-height: 2.25rem;
373
+ }
374
+ h3 {
375
+ font-size: 1.5rem;
376
+ line-height: 2rem;
377
+ }
378
+ h4 {
379
+ font-size: 1.5rem;
380
+ line-height: 2rem;
381
+ }
382
+ h5 {
383
+ font-size: 1.25rem;
384
+ line-height: 1.75rem;
385
+ }
386
+ h6 {
387
+ font-size: 1.25rem;
388
+ line-height: 1.75rem;
389
+ }
390
+ .hbll-default-body {
391
+ font-size: 0.875rem;
392
+ line-height: 1.25rem;
393
+ }
394
+ .hbll-caption {
395
+ font-size: 0.75rem;
396
+ line-height: 1rem;
397
+ }
398
+ .hbll-large {
399
+ font-size: 1rem;
400
+ line-height: 1.5rem;
401
+ }
402
+
403
+ // Tablet size styles (>834px)
404
+ @media screen and (min-width: 52.125em) {
405
+ h1 {
406
+ font-size: 3rem;
407
+ line-height: 3.5rem;
408
+ }
409
+
410
+ h2 {
411
+ font-size: 2.5rem;
412
+ line-height: 3rem;
413
+ }
414
+
415
+ h3 {
416
+ font-size: 2rem;
417
+ line-height: 3rem;
418
+ }
419
+
420
+ h4 {
421
+ font-size: 1.75rem;
422
+ line-height: 2.5rem;
423
+ }
424
+
425
+ h5 {
426
+ font-size: 1.5rem;
427
+ line-height: 2rem;
428
+ }
429
+
430
+ h6 {
431
+ font-size: 1.25rem;
432
+ line-height: 1.75rem;
433
+ }
434
+
435
+ .hbll-default-body {
436
+ font-size: 1rem;
437
+ line-height: 1.5rem;
438
+ }
439
+
440
+ .hbll-caption {
441
+ font-size: 0.75rem;
442
+ line-height: 1rem;
443
+ }
444
+
445
+ .hbll-large {
446
+ font-size: 1.25rem;
447
+ line-height: 1.75rem;
448
+ }
449
+ }
450
+
451
+ // Desktop size styles (>1440px)
452
+ @media screen and (min-width: 90em) {
453
+ h1 {
454
+ font-size: 3.75rem;
455
+ line-height: 4.25rem;
456
+ }
457
+
458
+ h2 {
459
+ font-size: 3rem;
460
+ line-height: 3.5rem;
461
+ }
462
+
463
+ h3 {
464
+ font-size: 2.5rem;
465
+ line-height: 3rem;
466
+ }
467
+
468
+ h4 {
469
+ font-size: 2rem;
470
+ line-height: 2.5rem;
471
+ }
472
+
473
+ h5 {
474
+ font-size: 1.5rem;
475
+ line-height: 2rem;
476
+ }
477
+
478
+ h6 {
479
+ font-size: 1.25rem;
480
+ line-height: 1.75rem;
481
+ }
482
+
483
+ .hbll-default-body {
484
+ font-size: 1rem;
485
+ line-height: 1.5rem;
486
+ }
487
+
488
+ .hbll-caption {
489
+ font-size: 0.75rem;
490
+ line-height: 1rem;
491
+ }
492
+
493
+ .hbll-large {
494
+ font-size: 1.25rem;
495
+ line-height: 1.75rem;
496
+ }
497
+ }
498
+
499
+ // ---------------------------------------------------
500
+ // Accessibility
501
+ // ---------------------------------------------------
502
+
503
+ .sr-only {
504
+ position: absolute;
505
+ width: 1px;
506
+ height: 1px;
507
+ padding: 0;
508
+ margin: -1px;
509
+ overflow: hidden;
510
+ clip: rect(0, 0, 0, 0);
511
+ border: 0;
512
+ }
513
+
514
+ .sr-only.sr-only-focusable:focus,
515
+ .sr-only.sr-only-focusable:focus-within,
516
+ .sr-only.sr-only-focusable:active {
517
+ position: static;
518
+ width: auto;
519
+ height: auto;
520
+ margin: 0;
521
+ overflow: visible;
522
+ clip: auto;
523
+ }