@ilo-org/styles 0.0.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.
Files changed (55) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +74 -0
  3. package/build/css/components/index.css +5924 -0
  4. package/build/css/components/index.css.map +1 -0
  5. package/build/css/index.css +6183 -0
  6. package/build/css/index.css.map +1 -0
  7. package/package.json +35 -0
  8. package/scss/_animations.scss +29 -0
  9. package/scss/_config.scss +6 -0
  10. package/scss/_functions.scss +126 -0
  11. package/scss/_mixins.scss +331 -0
  12. package/scss/_reset.scss +166 -0
  13. package/scss/_tokens.scss +5 -0
  14. package/scss/_typography.scss +72 -0
  15. package/scss/components/_accordion.scss +102 -0
  16. package/scss/components/_breadcrumb.scss +258 -0
  17. package/scss/components/_button.scss +272 -0
  18. package/scss/components/_callout.scss +151 -0
  19. package/scss/components/_card.scss +667 -0
  20. package/scss/components/_cardgroup.scss +45 -0
  21. package/scss/components/_checkbox.scss +124 -0
  22. package/scss/components/_contextmenu.scss +75 -0
  23. package/scss/components/_credit.scss +82 -0
  24. package/scss/components/_datepicker.scss +19 -0
  25. package/scss/components/_dropdown.scss +115 -0
  26. package/scss/components/_empty.scss +33 -0
  27. package/scss/components/_fieldset.scss +74 -0
  28. package/scss/components/_file-upload.scss +130 -0
  29. package/scss/components/_footer.scss +329 -0
  30. package/scss/components/_formgroup.scss +20 -0
  31. package/scss/components/_heading.scss +74 -0
  32. package/scss/components/_hero.scss +445 -0
  33. package/scss/components/_image.scss +42 -0
  34. package/scss/components/_input.scss +71 -0
  35. package/scss/components/_link.scss +6 -0
  36. package/scss/components/_linklist.scss +148 -0
  37. package/scss/components/_list.scss +79 -0
  38. package/scss/components/_loading.scss +93 -0
  39. package/scss/components/_modal.scss +84 -0
  40. package/scss/components/_notification.scss +162 -0
  41. package/scss/components/_pagination.scss +238 -0
  42. package/scss/components/_profile.scss +138 -0
  43. package/scss/components/_radio.scss +121 -0
  44. package/scss/components/_readmore.scss +53 -0
  45. package/scss/components/_richtext.scss +390 -0
  46. package/scss/components/_searchfield.scss +66 -0
  47. package/scss/components/_table.scss +177 -0
  48. package/scss/components/_tableofcontents.scss +98 -0
  49. package/scss/components/_tabs.scss +194 -0
  50. package/scss/components/_tag.scss +103 -0
  51. package/scss/components/_textarea.scss +89 -0
  52. package/scss/components/_tooltip.scss +198 -0
  53. package/scss/components/_video.scss +674 -0
  54. package/scss/components/index.scss +39 -0
  55. package/scss/index.scss +11 -0
@@ -0,0 +1,674 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+
5
+ .ilo--video {
6
+ position: relative;
7
+
8
+ &--wrapper {
9
+ line-height: 0;
10
+ position: relative;
11
+ width: 100%;
12
+ }
13
+
14
+ &--img {
15
+ line-height: 0;
16
+ }
17
+
18
+ &--caption {
19
+ border-left: $spacing-ux-caption-border-left solid
20
+ $color-ux-caption-border-left;
21
+ color: $color-font-caption;
22
+ font-weight: 400;
23
+ margin-top: px-to-rem(map-get($spacing, "padding-2"));
24
+ padding-left: px-to-rem(map-get($spacing, "padding-1"));
25
+ @include font-styles("image-caption");
26
+ }
27
+
28
+ &:focus,
29
+ .vjs-tech:focus {
30
+ outline: none;
31
+ }
32
+
33
+ &--element,
34
+ .vjs-tech {
35
+ height: auto;
36
+ width: 100%;
37
+
38
+ &:focus {
39
+ outline: none;
40
+ }
41
+ }
42
+
43
+ &--player {
44
+ position: relative;
45
+
46
+ &:focus {
47
+ outline: none;
48
+ }
49
+
50
+ &.youtube {
51
+ height: auto;
52
+ max-width: 100%;
53
+ overflow: hidden;
54
+ padding-bottom: 56.25%;
55
+ position: relative;
56
+ }
57
+
58
+ iframe {
59
+ height: 100%;
60
+ left: 0;
61
+ position: absolute;
62
+ top: 0;
63
+ width: 100%;
64
+ }
65
+ }
66
+
67
+ &--poster,
68
+ .vjs-poster {
69
+ display: none;
70
+ object-fit: cover;
71
+ height: 100%;
72
+ left: 0;
73
+ max-height: 100%;
74
+ max-width: 100%;
75
+ overflow: hidden;
76
+ position: absolute;
77
+ top: 0;
78
+ width: 100%;
79
+
80
+ &.show {
81
+ display: block;
82
+ }
83
+
84
+ & img,
85
+ & source {
86
+ height: auto;
87
+ left: 50%;
88
+ position: absolute;
89
+ top: 50%;
90
+ transform: translate(-50%, -50%);
91
+ width: 100%;
92
+ }
93
+ }
94
+
95
+ &--controls,
96
+ .vjs-control-bar {
97
+ bottom: 0;
98
+ color: $color-ux-labels-darkbg;
99
+ display: flex;
100
+ justify-content: flex-start;
101
+ left: 0;
102
+ height: px-to-rem($spacing-ux-video-controls-height);
103
+ opacity: 0;
104
+ position: absolute;
105
+ transition: opacity 150ms ease-out;
106
+ width: 100%;
107
+
108
+ &.notplayed {
109
+ bottom: auto;
110
+ opacity: 1;
111
+ top: 0;
112
+
113
+ @include breakpoint("large") {
114
+ flex-direction: column;
115
+ height: 122px;
116
+ width: px-to-rem($spacing-ux-video-bigplaybutton-width);
117
+ }
118
+ }
119
+
120
+ button span {
121
+ @include isVisuallyHidden();
122
+ }
123
+
124
+ &--play,
125
+ &--pause,
126
+ .vjs-play-control,
127
+ .vjs-big-play-button {
128
+ background-color: $color-ux-video-controls-default-background;
129
+ border: none;
130
+ cursor: pointer;
131
+ height: 100%;
132
+ order: 1;
133
+ width: $spacing-ux-video-controls-height;
134
+ -webkit-appearance: none;
135
+ -moz-appearance: none;
136
+
137
+ .notplayed & {
138
+ @include breakpoint("large") {
139
+ order: 1;
140
+ height: px-to-rem($spacing-ux-video-bigplaybutton-height);
141
+ width: px-to-rem($spacing-ux-video-bigplaybutton-width);
142
+ }
143
+ }
144
+ }
145
+
146
+ &--play,
147
+ .vjs-play-control:not(.vjs-playing),
148
+ .vjs-big-play-button {
149
+ @include iconbutton(
150
+ "play",
151
+ $spacing-ux-video-buttonicon-height,
152
+ $spacing-ux-video-buttonicon-width,
153
+ $color-ux-video-controls-default-icon
154
+ );
155
+
156
+ &:hover {
157
+ background-color: $color-ux-video-controls-hover-background;
158
+ @include iconbutton(
159
+ "play",
160
+ $spacing-ux-video-buttonicon-height,
161
+ $spacing-ux-video-buttonicon-width,
162
+ $color-ux-video-controls-hover-icon
163
+ );
164
+ }
165
+ }
166
+
167
+ &--pause,
168
+ .vjs-playing {
169
+ @include iconbutton(
170
+ "pause",
171
+ $spacing-ux-video-buttonicon-height,
172
+ $spacing-ux-video-buttonicon-width,
173
+ $color-ux-video-controls-default-icon
174
+ );
175
+
176
+ &:hover {
177
+ background-color: $color-ux-video-controls-hover-background;
178
+ @include iconbutton(
179
+ "pause",
180
+ $spacing-ux-video-buttonicon-height,
181
+ $spacing-ux-video-buttonicon-width,
182
+ $color-ux-video-controls-hover-icon
183
+ );
184
+ }
185
+ }
186
+
187
+ &--duration,
188
+ .vjs-duration {
189
+ background-color: $color-ux-video-controls-default-background;
190
+ display: none;
191
+ height: 100%;
192
+ font-weight: 700;
193
+ margin-left: 2px;
194
+ order: 2;
195
+ padding-top: 9px;
196
+ text-align: center;
197
+ width: px-to-rem(80px);
198
+
199
+ @include font-styles("label-small");
200
+
201
+ &.show {
202
+ display: block;
203
+ }
204
+
205
+ .notplayed & {
206
+ @include breakpoint("large") {
207
+ height: px-to-rem($spacing-ux-video-controls-height);
208
+ margin-left: 0;
209
+ margin-top: 2px;
210
+ width: px-to-rem($spacing-ux-video-bigplaybutton-width);
211
+ }
212
+ }
213
+ }
214
+
215
+ .vjs-progress-holder {
216
+ position: relative;
217
+ width: 96%;
218
+ }
219
+
220
+ &--progress,
221
+ .vjs-progress-control {
222
+ background-color: $color-ux-video-controls-default-background;
223
+ display: none;
224
+ flex-grow: 1;
225
+ height: 100%;
226
+ margin-left: 2px;
227
+ order: 3;
228
+ position: relative;
229
+
230
+ &.show,
231
+ .vjs-has-started & {
232
+ display: block;
233
+ }
234
+
235
+ &-playhead {
236
+ height: 100%;
237
+ left: 2%;
238
+ opacity: 0;
239
+ padding: 0;
240
+ position: absolute;
241
+ top: 0;
242
+ width: 96%;
243
+ z-index: 20;
244
+ }
245
+
246
+ &-current,
247
+ .vjs-play-progress {
248
+ height: 8px;
249
+ left: 2%;
250
+ position: absolute;
251
+ top: px-to-rem(16px);
252
+ width: 96%;
253
+ z-index: 15;
254
+ -webkit-appearance: none;
255
+
256
+ &::-moz-progress-bar {
257
+ background: $color-ux-video-controls-hover-background;
258
+ border-radius: 0;
259
+ }
260
+
261
+ &::-webkit-progress-bar {
262
+ background: transparent;
263
+ }
264
+
265
+ &::-webkit-progress-value {
266
+ background: $color-ux-video-controls-hover-background;
267
+ border-radius: 0;
268
+ }
269
+ }
270
+
271
+ .vjs-play-progress {
272
+ background: $color-ux-video-controls-hover-background;
273
+
274
+ .vjs-time-tooltip {
275
+ display: none;
276
+ }
277
+ }
278
+
279
+ div[data-start] {
280
+ background: $color-base-neutrals-light;
281
+ height: 8px;
282
+ left: 2%;
283
+ position: absolute;
284
+ top: 0;
285
+ width: 96%;
286
+ z-index: 15;
287
+ }
288
+
289
+ &-played,
290
+ .vjs-mouse-display {
291
+ display: none;
292
+ position: absolute;
293
+ top: -40px;
294
+ z-index: 20;
295
+ }
296
+
297
+ &-loaded,
298
+ .vjs-load-progress {
299
+ height: 8px;
300
+ left: 2%;
301
+ position: absolute;
302
+ top: px-to-rem(16px);
303
+ width: 96%;
304
+ z-index: 10;
305
+ -webkit-appearance: none;
306
+
307
+ &::-moz-progress-bar {
308
+ background: $color-base-neutrals-light;
309
+ border-radius: 0;
310
+ }
311
+
312
+ &::-webkit-progress-bar {
313
+ background: transparent;
314
+ }
315
+
316
+ &::-webkit-progress-value {
317
+ background: $color-base-neutrals-light;
318
+ border-radius: 0;
319
+ }
320
+ }
321
+
322
+ &:hover {
323
+ .vjs-play-progress {
324
+ position: relative;
325
+
326
+ .vjs-time-tooltip {
327
+ align-items: center;
328
+ background-color: $color-ux-credit-background;
329
+ display: flex;
330
+ height: px-to-rem(map-get($spacing, "padding-4"));
331
+ justify-content: center;
332
+ right: 0;
333
+ position: absolute;
334
+ bottom: calc(300% + 12px);
335
+ width: 70px;
336
+ @include font-styles("image-credit");
337
+
338
+ &:after {
339
+ background-position: top left;
340
+ background-repeat: no-repeat;
341
+ background-size: contain;
342
+ @include dataurlicon(
343
+ "equilateraltriangle",
344
+ $color-base-neutrals-dark
345
+ );
346
+ content: "";
347
+ height: px-to-rem(map-get($spacing, "padding-1-5"));
348
+ position: absolute;
349
+ left: calc(50% - 6px);
350
+ bottom: -#{px-to-rem(map-get($spacing, "padding-1-5"))};
351
+ width: px-to-rem(map-get($spacing, "padding-1-5"));
352
+ }
353
+ }
354
+ }
355
+
356
+ .ilo--video--controls--progress-played-container {
357
+ position: absolute;
358
+ left: 2%;
359
+ top: 0;
360
+ width: 96%;
361
+ }
362
+
363
+ .ilo--video--controls--progress-played {
364
+ --playhead: 0%;
365
+ align-items: center;
366
+ background-color: $color-ux-credit-background;
367
+ display: flex;
368
+ height: px-to-rem(map-get($spacing, "padding-4"));
369
+ justify-content: center;
370
+ left: calc(var(--playhead) - 34px);
371
+ position: absolute;
372
+ bottom: calc(300% + 12px);
373
+ width: 70px;
374
+ @include font-styles("image-credit");
375
+
376
+ &:after {
377
+ background-position: top left;
378
+ background-repeat: no-repeat;
379
+ background-size: contain;
380
+ @include dataurlicon(
381
+ "equilateraltriangle",
382
+ $color-base-neutrals-dark
383
+ );
384
+ content: "";
385
+ height: px-to-rem(map-get($spacing, "padding-1-5"));
386
+ position: absolute;
387
+ left: calc(50% - 6px);
388
+ bottom: -#{px-to-rem(map-get($spacing, "padding-1-5"))};
389
+ width: px-to-rem(map-get($spacing, "padding-1-5"));
390
+ }
391
+ }
392
+ }
393
+ }
394
+
395
+ &--volume,
396
+ .vjs-volume-panel {
397
+ bottom: 1px;
398
+ display: none;
399
+ flex-direction: column;
400
+ height: 140px;
401
+ margin-left: 2px;
402
+ order: 4;
403
+ position: relative;
404
+ width: 40px;
405
+
406
+ &.show,
407
+ .vjs-has-started & {
408
+ display: block;
409
+ }
410
+ }
411
+
412
+ &--showvolume,
413
+ .vjs-mute-control {
414
+ background-color: $color-ux-video-controls-default-background;
415
+ border: none;
416
+ cursor: pointer;
417
+ height: px-to-rem($spacing-ux-video-controls-height);
418
+ margin-top: 1px;
419
+ position: relative;
420
+ width: px-to-rem($spacing-ux-video-controls-height);
421
+ z-index: 10;
422
+ -webkit-appearance: none;
423
+ -moz-appearance: none;
424
+ @include iconbutton(
425
+ "volume",
426
+ $spacing-ux-video-buttonicon-height,
427
+ $spacing-ux-video-buttonicon-width,
428
+ $color-ux-video-controls-default-icon
429
+ );
430
+
431
+ &:hover {
432
+ background-color: $color-ux-video-controls-hover-background;
433
+ @include iconbutton(
434
+ "volume",
435
+ $spacing-ux-video-buttonicon-height,
436
+ $spacing-ux-video-buttonicon-width,
437
+ $color-ux-video-controls-hover-icon
438
+ );
439
+ }
440
+
441
+ &.muted,
442
+ &[title="Unmute"] {
443
+ @include iconbutton(
444
+ "muted",
445
+ $spacing-ux-video-buttonicon-height,
446
+ $spacing-ux-video-buttonicon-width,
447
+ $color-ux-video-controls-default-icon
448
+ );
449
+
450
+ &:hover {
451
+ background-color: #ebf5fd;
452
+ @include iconbutton(
453
+ "muted",
454
+ $spacing-ux-video-buttonicon-height,
455
+ $spacing-ux-video-buttonicon-width,
456
+ $color-ux-video-controls-hover-icon
457
+ );
458
+ }
459
+ }
460
+ }
461
+
462
+ &--setvolume,
463
+ .vjs-volume-control {
464
+ background: $color-ux-video-controls-hover-background;
465
+ display: none;
466
+ height: px-to-rem($spacing-ux-video-controls-height);
467
+ order: 1;
468
+ padding: 0;
469
+ position: absolute;
470
+ transform: rotate(270deg);
471
+ transform-origin: -4px -4px;
472
+ top: 6px;
473
+ width: px-to-rem(138px);
474
+ }
475
+
476
+ &--setvolume {
477
+ border-left: 8px solid $color-ux-video-controls-hover-background;
478
+ border-right: 8px solid $color-ux-video-controls-hover-background;
479
+ width: px-to-rem(122px);
480
+ -webkit-appearance: none;
481
+
482
+ &.show {
483
+ display: block;
484
+ }
485
+
486
+ &-container {
487
+ left: 0;
488
+ position: absolute;
489
+ top: 0;
490
+ }
491
+
492
+ &::-webkit-slider-runnable-track {
493
+ background-color: $color-ux-video-controls-hover-icon;
494
+ border: none;
495
+ box-shadow: none;
496
+ height: 4px;
497
+ cursor: pointer;
498
+ }
499
+
500
+ &::-webkit-slider-thumb {
501
+ background-color: $color-ux-video-controls-hover-icon;
502
+ border: none;
503
+ border-radius: 50%;
504
+ box-shadow: none;
505
+ cursor: pointer;
506
+ height: 16px;
507
+ margin-top: -5px;
508
+ width: 16px;
509
+ -webkit-appearance: none;
510
+ }
511
+ }
512
+
513
+ .vjs-volume-panel.vjs-hover .vjs-volume-control {
514
+ align-items: center;
515
+ cursor: pointer;
516
+ display: flex;
517
+ justify-content: center;
518
+ }
519
+
520
+ .vjs-volume-bar {
521
+ height: 4px;
522
+ position: relative;
523
+ width: calc(100% - 24px);
524
+ }
525
+
526
+ .vjs-mouse-display,
527
+ .vjs-volume-level {
528
+ height: 4px;
529
+ left: 0;
530
+ position: absolute;
531
+ top: 0;
532
+ }
533
+
534
+ .vjs-mouse-display {
535
+ background-color: $color-base-neutrals-light;
536
+ width: 100%;
537
+ }
538
+
539
+ .vjs-volume-level {
540
+ background-color: $color-ux-video-controls-hover-icon;
541
+
542
+ &:before {
543
+ background: $color-ux-video-controls-hover-icon;
544
+ border-radius: 50%;
545
+ content: "";
546
+ height: 16px;
547
+ margin: 0;
548
+ padding: 0;
549
+ position: absolute;
550
+ right: -8px;
551
+ top: 50%;
552
+ width: 16px;
553
+ -webkit-transform: translate(-50%, -50%);
554
+ -ms-transform: translate(-50%, -50%);
555
+ transform: translate(-50%, -50%);
556
+ }
557
+ }
558
+
559
+ .vjs-volume-tooltip {
560
+ display: none;
561
+ }
562
+
563
+ &--fullscreen,
564
+ .vjs-fullscreen-control {
565
+ background-color: $color-ux-video-controls-default-background;
566
+ border: none;
567
+ cursor: pointer;
568
+ display: none;
569
+ height: 100%;
570
+ margin-left: 2px;
571
+ order: 5;
572
+ width: px-to-rem($spacing-ux-video-controls-height);
573
+ -webkit-appearance: none;
574
+ -moz-appearance: none;
575
+ @include iconbutton(
576
+ "fullscreen",
577
+ $spacing-ux-video-buttonicon-height,
578
+ $spacing-ux-video-buttonicon-width,
579
+ $color-ux-video-controls-default-icon
580
+ );
581
+
582
+ &:hover {
583
+ background-color: #ebf5fd;
584
+ @include iconbutton(
585
+ "fullscreen",
586
+ $spacing-ux-video-buttonicon-height,
587
+ $spacing-ux-video-buttonicon-width,
588
+ $color-ux-video-controls-hover-icon
589
+ );
590
+ }
591
+
592
+ &.show {
593
+ display: block;
594
+ }
595
+ }
596
+ }
597
+
598
+ .vjs-control-bar {
599
+ bottom: 0;
600
+ left: -5px;
601
+ width: calc(100% + 5px);
602
+ }
603
+
604
+ &--element:not(.vjs-has-started) {
605
+ .vjs-control-bar {
606
+ bottom: auto;
607
+ left: -5px;
608
+ opacity: 1;
609
+ top: 0;
610
+
611
+ @include breakpoint("large") {
612
+ flex-direction: column;
613
+ height: 158px;
614
+ justify-content: flex-start;
615
+ left: 0;
616
+ width: 80px;
617
+ }
618
+ }
619
+
620
+ .vjs-duration {
621
+ display: block;
622
+ }
623
+
624
+ @include breakpoint("large") {
625
+ .vjs-duration {
626
+ height: px-to-rem($spacing-ux-video-controls-height);
627
+ margin-left: 0;
628
+ margin-top: 2px;
629
+ width: px-to-rem(80px);
630
+ }
631
+
632
+ .vjs-play-control {
633
+ order: 1;
634
+ height: px-to-rem(80px);
635
+ width: px-to-rem(80px);
636
+ }
637
+ }
638
+ }
639
+
640
+ .vjs-control:focus,
641
+ .vjs-control *:focus {
642
+ outline: none;
643
+ }
644
+
645
+ .vjs-has-started {
646
+ .vjs-control:not(.vjs-duration):not(.vjs-volume-control) {
647
+ display: block;
648
+ }
649
+ }
650
+
651
+ &:hover {
652
+ .ilo--video--controls,
653
+ .vjs-control-bar {
654
+ opacity: 1;
655
+ transition: opacity 150ms ease-out;
656
+ }
657
+ }
658
+
659
+ // TODO: style using loading component
660
+ .vjs-loading-spinner {
661
+ display: none;
662
+ }
663
+
664
+ .vjs-time-divider,
665
+ .vjs-remaining-time,
666
+ .vjs-current-time,
667
+ .vjs-control-text {
668
+ display: none !important;
669
+ }
670
+ }
671
+
672
+ .ilo--video--container {
673
+ position: relative;
674
+ }
@@ -0,0 +1,39 @@
1
+ @use "accordion";
2
+ @use "breadcrumb";
3
+ @use "button";
4
+ @use "callout";
5
+ @use "card";
6
+ @use "cardgroup";
7
+ @use "checkbox";
8
+ @use "contextmenu";
9
+ @use "credit";
10
+ @use "datepicker";
11
+ @use "dropdown";
12
+ @use "empty";
13
+ @use "fieldset";
14
+ @use "file-upload";
15
+ @use "formgroup";
16
+ @use "footer";
17
+ @use "heading";
18
+ @use "hero";
19
+ @use "image";
20
+ @use "input";
21
+ @use "link";
22
+ @use "linklist";
23
+ @use "list";
24
+ @use "loading";
25
+ @use "modal";
26
+ @use "notification";
27
+ @use "pagination";
28
+ @use "profile";
29
+ @use "radio";
30
+ @use "readmore";
31
+ @use "richtext";
32
+ @use "searchfield";
33
+ @use "tabs";
34
+ @use "table";
35
+ @use "tableofcontents";
36
+ @use "textarea";
37
+ @use "tag";
38
+ @use "tooltip";
39
+ @use "video";
@@ -0,0 +1,11 @@
1
+ // Set prefix on default styles
2
+ @use "config";
3
+
4
+ // Load the css resets
5
+ @use "reset";
6
+
7
+ //Import type styles
8
+ @use "typography";
9
+
10
+ // Import our custom components css
11
+ @use "components";