@ilo-org/styles 1.8.4 → 1.9.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/css/components/accordion.css +1 -1
- package/css/components/blockquote.css +1 -1
- package/css/components/breadcrumb.css +1 -1
- package/css/components/button.css +1 -1
- package/css/components/checkbox.css +1 -1
- package/css/components/contextmenu.css +1 -1
- package/css/components/detailcard.css +1 -1
- package/css/components/dropdown.css +1 -1
- package/css/components/featurecard.css +1 -1
- package/css/components/fieldset.css +1 -1
- package/css/components/file-upload.css +1 -1
- package/css/components/footer.css +1 -1
- package/css/components/formcontrol.css +1 -1
- package/css/components/hero.css +1 -1
- package/css/components/herocard.css +1 -1
- package/css/components/image.css +1 -1
- package/css/components/input.css +1 -1
- package/css/components/languagetoggle.css +1 -1
- package/css/components/linklist.css +1 -1
- package/css/components/multilinkcard.css +1 -1
- package/css/components/navigation.css +1 -1
- package/css/components/notification.css +1 -1
- package/css/components/pagination.css +1 -1
- package/css/components/readmore.css +1 -1
- package/css/components/richtext.css +1 -1
- package/css/components/scorecard.css +1 -1
- package/css/components/socialmedia.css +1 -1
- package/css/components/statcard.css +1 -1
- package/css/components/table.css +1 -1
- package/css/components/tableofcontents.css +1 -1
- package/css/components/textarea.css +1 -1
- package/css/components/textinput.css +1 -1
- package/css/components/tooltip.css +1 -1
- package/css/components/video.css +1 -1
- package/css/global.css +1 -1
- package/css/global.css.map +1 -1
- package/css/index.css +4 -2
- package/css/index.css.map +1 -1
- package/css/monorepo.css +4 -2
- package/css/monorepo.css.map +1 -1
- package/package.json +3 -3
- package/scss/_mixins.scss +7 -18
- package/scss/_typography.scss +28 -12
- package/scss/components/_accordion.scss +57 -25
- package/scss/components/_blockquote.scss +20 -20
- package/scss/components/_breadcrumb.scss +1 -1
- package/scss/components/_button.scss +3 -3
- package/scss/components/_checkbox.scss +63 -25
- package/scss/components/_contextmenu.scss +1 -4
- package/scss/components/_detailcard.scss +18 -1
- package/scss/components/_dropdown.scss +66 -138
- package/scss/components/_featurecard.scss +1 -1
- package/scss/components/_fieldset.scss +2 -2
- package/scss/components/_file-upload.scss +2 -2
- package/scss/components/_footer.scss +5 -5
- package/scss/components/_formcontrol.scss +4 -23
- package/scss/components/_hero.scss +0 -4
- package/scss/components/_herocard.scss +9 -19
- package/scss/components/_image.scss +72 -27
- package/scss/components/_input.scss +1 -1
- package/scss/components/_languagetoggle.scss +1 -1
- package/scss/components/_linklist.scss +3 -3
- package/scss/components/_multilinkcard.scss +6 -6
- package/scss/components/_navigation.scss +12 -27
- package/scss/components/_notification.scss +3 -3
- package/scss/components/_pagination.scss +1 -1
- package/scss/components/_readmore.scss +1 -1
- package/scss/components/_richtext.scss +15 -63
- package/scss/components/_scorecard.scss +2 -0
- package/scss/components/_socialmedia.scss +1 -1
- package/scss/components/_statcard.scss +3 -3
- package/scss/components/_table.scss +4 -5
- package/scss/components/_tableofcontents.scss +5 -47
- package/scss/components/_textarea.scss +1 -1
- package/scss/components/_textinput.scss +1 -1
- package/scss/components/_tooltip.scss +1 -1
- package/scss/components/_video.scss +4 -19
- package/scss/components/index.scss +0 -2
- package/scss/theme/_typography.scss +2 -4
- package/css/components/credit.css +0 -1
- package/css/components/heading.css +0 -1
- package/scss/components/_credit.scss +0 -112
- package/scss/components/_heading.scss +0 -74
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ilo-org/styles",
|
|
3
3
|
"description": "Styles for products using ILO's Design System",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.9.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/international-labour-organization/designsystem.git",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"author": "@justintemps, @johnpauldavis, @avrilpearl, @ghlost",
|
|
39
39
|
"license": "Apache-2.0",
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@ilo-org/fonts": "
|
|
42
|
-
"@ilo-org/icons": "2.
|
|
41
|
+
"@ilo-org/fonts": "2.0.0",
|
|
42
|
+
"@ilo-org/icons": "2.2.0",
|
|
43
43
|
"@ilo-org/themes": "0.9.1"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
package/scss/_mixins.scss
CHANGED
|
@@ -5,18 +5,6 @@
|
|
|
5
5
|
@use "functions" as *;
|
|
6
6
|
@use "theme/breakpoints" as *;
|
|
7
7
|
|
|
8
|
-
// ======================================
|
|
9
|
-
// Output font styles
|
|
10
|
-
// ======================================
|
|
11
|
-
/// Retrieve the usual font styles for a given type styling
|
|
12
|
-
/// @param {String} $stylename - the name of the style to get
|
|
13
|
-
/// @return {CSS} font size, line-height, and letter-spacing for this type style
|
|
14
|
-
@mixin font-styles($stylename) {
|
|
15
|
-
font-size: map-get($type, $stylename, "size");
|
|
16
|
-
letter-spacing: map-get($type, $stylename, "letter-spacing");
|
|
17
|
-
line-height: map-get($type, $stylename, "line-height");
|
|
18
|
-
}
|
|
19
|
-
|
|
20
8
|
// ======================================
|
|
21
9
|
// Visually Hidden
|
|
22
10
|
//
|
|
@@ -285,7 +273,8 @@
|
|
|
285
273
|
// ======================================
|
|
286
274
|
|
|
287
275
|
@mixin caption-icon-wrapper($dir: "right", $width, $height) {
|
|
288
|
-
|
|
276
|
+
--ilo-caption-icon-wrapper-bg-color: var(--ilo-color-gray-charcoal);
|
|
277
|
+
background: var(--ilo-caption-icon-wrapper-bg-color);
|
|
289
278
|
height: $height;
|
|
290
279
|
width: $width;
|
|
291
280
|
display: flex;
|
|
@@ -306,7 +295,7 @@
|
|
|
306
295
|
border-right: none;
|
|
307
296
|
border-left: calc(#{$height} - 4px)
|
|
308
297
|
solid
|
|
309
|
-
|
|
298
|
+
var(--ilo-caption-icon-wrapper-bg-color);
|
|
310
299
|
}
|
|
311
300
|
|
|
312
301
|
@if ($dir == "left") {
|
|
@@ -315,7 +304,7 @@
|
|
|
315
304
|
border-left: none;
|
|
316
305
|
border-right: calc(#{$height} - 4px)
|
|
317
306
|
solid
|
|
318
|
-
|
|
307
|
+
var(--ilo-caption-icon-wrapper-bg-color);
|
|
319
308
|
}
|
|
320
309
|
}
|
|
321
310
|
}
|
|
@@ -411,11 +400,11 @@
|
|
|
411
400
|
@if $variant == "heading-1" {
|
|
412
401
|
font-size: var(--ilo-font-size-5xlg);
|
|
413
402
|
font-weight: var(--ilo-font-weight-bold);
|
|
414
|
-
line-height: var(--ilo-line-height-
|
|
403
|
+
line-height: var(--ilo-line-height-md);
|
|
415
404
|
letter-spacing: var(--ilo-letter-spacing-xsm);
|
|
416
405
|
@if $mobile {
|
|
417
406
|
font-size: var(--ilo-font-size-4xlg);
|
|
418
|
-
line-height: var(--ilo-line-height-
|
|
407
|
+
line-height: var(--ilo-line-height-md);
|
|
419
408
|
}
|
|
420
409
|
} @else if $variant == "heading-2" {
|
|
421
410
|
font-size: var(--ilo-font-size-3xlg);
|
|
@@ -446,7 +435,7 @@
|
|
|
446
435
|
} @else if $variant == "blockquote" {
|
|
447
436
|
font-size: var(--ilo-font-size-4xlg);
|
|
448
437
|
font-weight: var(--ilo-font-weight-light);
|
|
449
|
-
line-height: var(--ilo-line-height-
|
|
438
|
+
line-height: var(--ilo-line-height-md);
|
|
450
439
|
letter-spacing: var(--ilo-letter-spacing-xsm);
|
|
451
440
|
@if $mobile {
|
|
452
441
|
font-size: var(--ilo-font-size-2xlg);
|
package/scss/_typography.scss
CHANGED
|
@@ -7,6 +7,34 @@
|
|
|
7
7
|
// Load the theme vars and fonts
|
|
8
8
|
@use "@ilo-org/themes/build/scss/tokens" as *;
|
|
9
9
|
|
|
10
|
+
// Set Arabic fonts
|
|
11
|
+
:root[lang*="ar"],
|
|
12
|
+
[lang*="ar"] {
|
|
13
|
+
--ilo-fonts-display: var(--ilo-fonts-display-ar);
|
|
14
|
+
--ilo-fonts-copy: var(--ilo-fonts-copy-ar);
|
|
15
|
+
|
|
16
|
+
// Letter spacing overrides for Arabic. Different letter spacing values cause incorrect
|
|
17
|
+
// glpyhs to be rendered. See https://github.com/international-labour-organization/designsystem/issues/1547
|
|
18
|
+
--ilo-letter-spacing-xsm: 0;
|
|
19
|
+
--ilo-letter-spacing-sm: 0;
|
|
20
|
+
--ilo-letter-spacing-md: 0;
|
|
21
|
+
--ilo-letter-spacing-lg: 0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Set Chinese system fonts
|
|
25
|
+
:root[lang*="zh"],
|
|
26
|
+
[lang*="zh"] {
|
|
27
|
+
--ilo-fonts-display: var(--ilo-fonts-display-zh);
|
|
28
|
+
--ilo-fonts-copy: var(--ilo-fonts-copy-zh);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Set Japanese system fonts
|
|
32
|
+
:root[lang*="ja"],
|
|
33
|
+
[lang*="ja"] {
|
|
34
|
+
--ilo-fonts-display: var(--ilo-fonts-display-jp);
|
|
35
|
+
--ilo-fonts-copy: var(--ilo-fonts-copy-jp);
|
|
36
|
+
}
|
|
37
|
+
|
|
10
38
|
html,
|
|
11
39
|
body {
|
|
12
40
|
color: $color-font-base;
|
|
@@ -25,15 +53,3 @@ h5,
|
|
|
25
53
|
h5 {
|
|
26
54
|
font-family: var(--ilo-fonts-display);
|
|
27
55
|
}
|
|
28
|
-
|
|
29
|
-
// Set Chinese system fonts
|
|
30
|
-
html[lang*="zh"] {
|
|
31
|
-
--ilo-fonts-display: var(--ilo-fonts-display-zh);
|
|
32
|
-
--ilo-fonts-copy: var(--ilo-fonts-copy-zh);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// Set Japanese system fonts
|
|
36
|
-
html[lang*="ja"] {
|
|
37
|
-
--ilo-fonts-display: var(--ilo-fonts-display-jp);
|
|
38
|
-
--ilo-fonts-copy: var(--ilo-fonts-copy-jp);
|
|
39
|
-
}
|
|
@@ -3,95 +3,127 @@
|
|
|
3
3
|
@import "../mixins";
|
|
4
4
|
@import "../config";
|
|
5
5
|
|
|
6
|
+
// =============================================================================
|
|
7
|
+
// ACCORDION COMPONENT
|
|
8
|
+
// =============================================================================
|
|
9
|
+
|
|
6
10
|
.#{$prefix}--accordion {
|
|
11
|
+
// CSS Custom Properties
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
7
13
|
--ilo-accordion-color-icon: var(--ilo-color-blue-dark);
|
|
14
|
+
--ilo-accordion-transition-timing: 500ms; // Slower timing for smooth height transitions
|
|
15
|
+
--ilo-accordion-scroll-max-height: 300px;
|
|
8
16
|
|
|
9
|
-
// This provides a reference to the outerclass within nested declarations
|
|
10
17
|
$accordion: &;
|
|
11
18
|
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
$transition-timing: 500ms;
|
|
15
|
-
|
|
16
|
-
// If the accordion item is scrollable, then this is its max-height
|
|
17
|
-
$scroll-max-height: 300px;
|
|
18
|
-
|
|
19
|
+
// Icon Styles
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
19
21
|
&--icon {
|
|
20
22
|
width: 24px;
|
|
21
23
|
height: 24px;
|
|
22
24
|
}
|
|
23
25
|
|
|
26
|
+
// Label Styles
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
&--label {
|
|
29
|
+
flex: 1;
|
|
30
|
+
padding-right: 10px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Button Styles
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
24
35
|
&--button {
|
|
36
|
+
// Layout
|
|
25
37
|
display: flex;
|
|
26
38
|
flex-direction: row;
|
|
27
39
|
justify-content: space-between;
|
|
28
40
|
width: 100%;
|
|
29
41
|
margin: 0;
|
|
42
|
+
|
|
43
|
+
// Spacing
|
|
30
44
|
padding-block: spacing(4);
|
|
31
45
|
padding-inline-end: spacing(1);
|
|
32
|
-
|
|
46
|
+
|
|
47
|
+
// Visual
|
|
48
|
+
background-color: var(--ilo-color-white);
|
|
33
49
|
border: none;
|
|
34
|
-
border-top: 2px solid
|
|
35
|
-
|
|
36
|
-
color: $color-ux-labels-actionable;
|
|
37
|
-
font-weight: $type-weights-section;
|
|
38
|
-
transition: all $transition-timing ease-in-out;
|
|
39
|
-
@include font-styles("label-medium");
|
|
50
|
+
border-top: 2px solid var(--ilo-color-gray-light);
|
|
51
|
+
color: var(--ilo-color-blue-dark);
|
|
40
52
|
|
|
53
|
+
// Animation
|
|
54
|
+
transition: all var(--ilo-accordion-transition-timing) ease-in-out;
|
|
55
|
+
|
|
56
|
+
// Typography
|
|
57
|
+
@include typography("highlight-medium");
|
|
58
|
+
|
|
59
|
+
// Large variant
|
|
41
60
|
&__large {
|
|
42
|
-
@include
|
|
61
|
+
@include typography("highlight-large");
|
|
43
62
|
padding-block: spacing(5);
|
|
44
63
|
}
|
|
45
64
|
|
|
65
|
+
// Expanded state
|
|
46
66
|
&[aria-expanded="true"] {
|
|
47
|
-
background-color:
|
|
67
|
+
background-color: var(--ilo-color-blue-lighter);
|
|
68
|
+
|
|
48
69
|
#{$accordion}--icon {
|
|
49
70
|
@include icon("minus", var(--ilo-color-blue));
|
|
50
71
|
}
|
|
51
72
|
}
|
|
52
73
|
|
|
74
|
+
// Collapsed state
|
|
53
75
|
&[aria-expanded="false"] {
|
|
54
76
|
#{$accordion}--icon {
|
|
55
77
|
@include icon("plus", var(--ilo-color-blue-dark));
|
|
56
78
|
}
|
|
57
79
|
}
|
|
58
80
|
|
|
81
|
+
// Interactive states
|
|
59
82
|
&:hover,
|
|
60
83
|
&:focus {
|
|
61
84
|
--ilo-accordion-color-icon: var(--ilo-color-blue);
|
|
62
|
-
border-top-color:
|
|
63
|
-
color:
|
|
85
|
+
border-top-color: var(--ilo-color-blue);
|
|
86
|
+
color: var(--ilo-color-blue);
|
|
64
87
|
cursor: pointer;
|
|
65
88
|
}
|
|
66
89
|
|
|
90
|
+
// Responsive adjustments
|
|
67
91
|
@include breakpoint("md") {
|
|
68
|
-
@include
|
|
92
|
+
@include typography("highlight-medium");
|
|
93
|
+
|
|
69
94
|
&__large {
|
|
70
|
-
@include
|
|
95
|
+
@include typography("highlight-large");
|
|
71
96
|
padding: spacing(5) 0;
|
|
72
97
|
}
|
|
73
98
|
}
|
|
74
99
|
}
|
|
75
100
|
|
|
101
|
+
// Panel Styles
|
|
102
|
+
// ---------------------------------------------------------------------------
|
|
76
103
|
&--panel {
|
|
77
104
|
$panel: &;
|
|
78
105
|
|
|
106
|
+
// Collapsed state
|
|
79
107
|
max-height: 0;
|
|
80
|
-
transition: all $transition-timing cubic-bezier(0, 1, 0, 1);
|
|
81
108
|
overflow: hidden;
|
|
109
|
+
transition: all var(--ilo-accordion-transition-timing)
|
|
110
|
+
cubic-bezier(0, 1, 0, 1);
|
|
82
111
|
|
|
112
|
+
// Inner panel content
|
|
83
113
|
#{$accordion}--innerpanel {
|
|
84
|
-
padding-bottom: spacing(9);
|
|
85
114
|
padding-top: spacing(2);
|
|
115
|
+
padding-bottom: spacing(9);
|
|
86
116
|
padding-inline-end: spacing(8);
|
|
87
117
|
}
|
|
88
118
|
|
|
119
|
+
// Open state
|
|
89
120
|
&__open {
|
|
90
121
|
max-height: 100vh;
|
|
91
|
-
transition: all
|
|
122
|
+
transition: all var(--ilo-accordion-transition-timing) ease-in-out;
|
|
92
123
|
|
|
124
|
+
// Scrollable variant
|
|
93
125
|
&#{$panel}__scroll {
|
|
94
|
-
max-height:
|
|
126
|
+
max-height: var(--ilo-accordion-scroll-max-height);
|
|
95
127
|
overflow-y: auto;
|
|
96
128
|
}
|
|
97
129
|
}
|
|
@@ -4,37 +4,40 @@
|
|
|
4
4
|
@import "../config";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
This mixin is also used in _richtext.scss component to style blockquotes.
|
|
8
|
-
|
|
7
|
+
* This mixin is also used in _richtext.scss component to style blockquotes.
|
|
8
|
+
*/
|
|
9
9
|
@mixin blockquote {
|
|
10
|
+
// Layout & background
|
|
10
11
|
background-color: var(--ilo-color-blue-lighter);
|
|
11
12
|
background-position: right top;
|
|
12
13
|
background-repeat: no-repeat;
|
|
13
14
|
background-size: px-to-rem(72px) px-to-rem(40px);
|
|
14
15
|
display: block;
|
|
15
|
-
font-family: var(--ilo-fonts-display);
|
|
16
|
-
padding: spacing(19) 0 spacing(9) spacing(8); // check
|
|
17
|
-
position: relative;
|
|
18
16
|
width: fit-content;
|
|
17
|
+
position: relative;
|
|
19
18
|
border-bottom: px-to-rem(3px) solid var(--ilo-color-gray-base);
|
|
20
19
|
@include cornercut(72px, 40px);
|
|
21
20
|
|
|
21
|
+
// Typography & spacing
|
|
22
|
+
font-family: var(--ilo-fonts-display);
|
|
23
|
+
padding: spacing(19) 0 spacing(9) spacing(8);
|
|
24
|
+
|
|
22
25
|
p {
|
|
26
|
+
@include typography("blockquote", true);
|
|
23
27
|
color: var(--ilo-color-purple);
|
|
24
|
-
font-weight: 300;
|
|
25
28
|
padding: 0 spacing(12) 0 0;
|
|
29
|
+
margin-bottom: spacing(6);
|
|
26
30
|
position: relative;
|
|
27
|
-
@include font-styles("pull-quote-sm");
|
|
28
31
|
|
|
29
32
|
&:after {
|
|
30
|
-
bottom: 0;
|
|
31
33
|
content: "";
|
|
32
34
|
display: inline-block;
|
|
33
|
-
height: px-to-rem(20px);
|
|
34
35
|
position: absolute;
|
|
36
|
+
bottom: 0;
|
|
35
37
|
right: 0;
|
|
36
|
-
transform: scaleX(-1);
|
|
37
38
|
width: px-to-rem(26.5px);
|
|
39
|
+
height: px-to-rem(20px);
|
|
40
|
+
transform: scaleX(-1);
|
|
38
41
|
@include icon("quote", var(--ilo-color-purple));
|
|
39
42
|
}
|
|
40
43
|
}
|
|
@@ -42,21 +45,20 @@ This mixin is also used in _richtext.scss component to style blockquotes.
|
|
|
42
45
|
cite {
|
|
43
46
|
color: var(--ilo-color-gray-accessible);
|
|
44
47
|
font-weight: 400;
|
|
45
|
-
// @include font-styles("pull-quote-cite");
|
|
46
48
|
font-size: var(--ilo-font-size-sm);
|
|
47
49
|
line-height: 135%;
|
|
48
|
-
letter-spacing:
|
|
50
|
+
letter-spacing: var(--ilo-letter-spacing-md);
|
|
49
51
|
font-style: normal;
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
&:before {
|
|
53
55
|
content: "";
|
|
54
56
|
display: inline-block;
|
|
55
|
-
height: px-to-rem(40px);
|
|
56
|
-
left: 0;
|
|
57
57
|
position: absolute;
|
|
58
|
-
width: px-to-rem(53px);
|
|
59
58
|
top: 0;
|
|
59
|
+
left: 0;
|
|
60
|
+
width: px-to-rem(53px);
|
|
61
|
+
height: px-to-rem(40px);
|
|
60
62
|
@include icon("quote", var(--ilo-color-purple));
|
|
61
63
|
}
|
|
62
64
|
|
|
@@ -66,20 +68,19 @@ This mixin is also used in _richtext.scss component to style blockquotes.
|
|
|
66
68
|
@include cornercut(86px, 48px);
|
|
67
69
|
|
|
68
70
|
p {
|
|
69
|
-
margin-bottom: spacing(6);
|
|
70
71
|
padding: 0 spacing(12) 0 0;
|
|
71
72
|
position: relative;
|
|
72
|
-
@include
|
|
73
|
+
@include typography("blockquote", false);
|
|
73
74
|
|
|
74
75
|
&:after {
|
|
75
|
-
height: px-to-rem(24px);
|
|
76
76
|
width: px-to-rem(32px);
|
|
77
|
+
height: px-to-rem(24px);
|
|
77
78
|
}
|
|
78
79
|
}
|
|
79
80
|
|
|
80
81
|
&:before {
|
|
81
|
-
height: px-to-rem(48px);
|
|
82
82
|
width: px-to-rem(64px);
|
|
83
|
+
height: px-to-rem(48px);
|
|
83
84
|
}
|
|
84
85
|
}
|
|
85
86
|
|
|
@@ -106,7 +107,6 @@ This mixin is also used in _richtext.scss component to style blockquotes.
|
|
|
106
107
|
|
|
107
108
|
@include breakpoint("md") {
|
|
108
109
|
padding: spacing(15) spacing(12) spacing(12) 0;
|
|
109
|
-
|
|
110
110
|
@include cornercut(86px, 48px, "left");
|
|
111
111
|
}
|
|
112
112
|
}
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
&__large {
|
|
55
55
|
padding: spacing(3) spacing(6);
|
|
56
56
|
height: px-to-rem(52px);
|
|
57
|
-
@include
|
|
57
|
+
@include typography("heading-4");
|
|
58
58
|
|
|
59
59
|
&.#{$prefix}--button--icon--only {
|
|
60
60
|
width: px-to-rem(52px);
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
&__medium {
|
|
65
65
|
padding: spacing(2) spacing(5);
|
|
66
66
|
height: px-to-rem(44px);
|
|
67
|
-
@include
|
|
67
|
+
@include typography("highlight-medium-bold");
|
|
68
68
|
|
|
69
69
|
&.#{$prefix}--button--icon--only {
|
|
70
70
|
width: px-to-rem(44px);
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
&__small {
|
|
75
75
|
padding: spacing(1) spacing(4);
|
|
76
76
|
height: px-to-rem(32px);
|
|
77
|
-
@include
|
|
77
|
+
@include typography("highlight-small-bold");
|
|
78
78
|
|
|
79
79
|
&.#{$prefix}--button--icon--only {
|
|
80
80
|
width: px-to-rem(32px);
|
|
@@ -1,90 +1,128 @@
|
|
|
1
|
-
@use "../tokens" as *;
|
|
2
1
|
@use "../functions" as *;
|
|
3
2
|
@import "../mixins";
|
|
4
3
|
|
|
4
|
+
// =============================================================================
|
|
5
|
+
// CHECKBOX COMPONENT
|
|
6
|
+
// =============================================================================
|
|
7
|
+
|
|
5
8
|
.ilo--checkbox {
|
|
9
|
+
// Reset default appearance
|
|
6
10
|
-webkit-appearance: none;
|
|
7
11
|
-moz-appearance: none;
|
|
8
12
|
appearance: none;
|
|
9
13
|
border: none;
|
|
14
|
+
|
|
15
|
+
// Layout
|
|
10
16
|
display: grid;
|
|
11
|
-
height: px-to-rem(24px);
|
|
12
|
-
margin: 0;
|
|
13
17
|
position: relative;
|
|
14
18
|
place-content: center;
|
|
19
|
+
|
|
20
|
+
// Dimensions
|
|
15
21
|
width: px-to-rem(24px);
|
|
22
|
+
height: px-to-rem(24px);
|
|
23
|
+
|
|
24
|
+
// Spacing
|
|
25
|
+
margin: 0;
|
|
26
|
+
|
|
27
|
+
// Visual
|
|
16
28
|
transform: none;
|
|
17
29
|
cursor: pointer;
|
|
18
30
|
|
|
31
|
+
// Inner checkmark (::before pseudo-element)
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
19
33
|
&:before {
|
|
20
34
|
content: "";
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
left: px-to-rem(4px);
|
|
35
|
+
|
|
36
|
+
// Layout
|
|
24
37
|
position: absolute;
|
|
38
|
+
left: px-to-rem(4px);
|
|
25
39
|
top: px-to-rem(4px);
|
|
26
|
-
width: px-to-rem(16px);
|
|
27
40
|
z-index: 1;
|
|
41
|
+
|
|
42
|
+
// Dimensions
|
|
43
|
+
width: px-to-rem(16px);
|
|
44
|
+
height: px-to-rem(16px);
|
|
45
|
+
|
|
46
|
+
// Visual
|
|
47
|
+
background-color: var(--ilo-color-gray-base);
|
|
28
48
|
}
|
|
29
49
|
|
|
50
|
+
// Outer border/background (::after pseudo-element)
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
30
52
|
&:after {
|
|
31
53
|
content: "";
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
height: px-to-rem(24px);
|
|
35
|
-
left: 0;
|
|
54
|
+
|
|
55
|
+
// Layout
|
|
36
56
|
position: absolute;
|
|
57
|
+
left: 0;
|
|
37
58
|
top: 0;
|
|
38
|
-
width: px-to-rem(24px);
|
|
39
59
|
z-index: 0;
|
|
60
|
+
|
|
61
|
+
// Dimensions
|
|
62
|
+
width: px-to-rem(24px);
|
|
63
|
+
height: px-to-rem(24px);
|
|
64
|
+
|
|
65
|
+
// Visual
|
|
66
|
+
background-color: var(--ilo-color-gray-base);
|
|
67
|
+
border: px-to-rem(4px) solid var(--ilo-color-gray-base);
|
|
40
68
|
}
|
|
41
69
|
|
|
70
|
+
// Checked state
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
42
72
|
&:checked {
|
|
43
73
|
&:before {
|
|
44
|
-
|
|
74
|
+
// Visual
|
|
75
|
+
background-color: var(--ilo-color-blue-dark);
|
|
45
76
|
background-repeat: no-repeat;
|
|
46
|
-
background-size: contain;
|
|
47
77
|
background-position: center center;
|
|
48
|
-
background-size: 24px;
|
|
49
|
-
|
|
78
|
+
background-size: px-to-rem(24px);
|
|
79
|
+
|
|
80
|
+
// Icon
|
|
81
|
+
@include icon("check", var(--ilo-color-gray-light));
|
|
50
82
|
}
|
|
51
83
|
|
|
52
84
|
&:after {
|
|
53
|
-
|
|
54
|
-
|
|
85
|
+
// Visual
|
|
86
|
+
background-color: var(--ilo-color-blue-dark);
|
|
87
|
+
border-color: var(--ilo-color-dark-blue);
|
|
55
88
|
}
|
|
56
89
|
}
|
|
57
90
|
|
|
91
|
+
// Focus state
|
|
92
|
+
// ---------------------------------------------------------------------------
|
|
58
93
|
&:focus {
|
|
94
|
+
outline: none;
|
|
95
|
+
|
|
59
96
|
&:after {
|
|
60
|
-
|
|
61
|
-
border-color: $color-base-yellow;
|
|
97
|
+
border-color: var(--ilo-color-yellow);
|
|
62
98
|
}
|
|
63
99
|
|
|
64
100
|
&:checked {
|
|
65
101
|
&:after {
|
|
66
|
-
border-color:
|
|
102
|
+
border-color: var(--ilo-color-yellow);
|
|
67
103
|
}
|
|
68
104
|
}
|
|
69
|
-
|
|
70
|
-
outline: none;
|
|
71
105
|
}
|
|
72
106
|
|
|
107
|
+
// Disabled state
|
|
108
|
+
// ---------------------------------------------------------------------------
|
|
73
109
|
&:disabled {
|
|
74
110
|
opacity: 0.45;
|
|
75
111
|
pointer-events: none;
|
|
76
112
|
}
|
|
77
113
|
|
|
114
|
+
// Error/Invalid state
|
|
115
|
+
// ---------------------------------------------------------------------------
|
|
78
116
|
&:invalid,
|
|
79
117
|
&__error,
|
|
80
118
|
&__error & {
|
|
81
119
|
&:after {
|
|
82
|
-
border-color:
|
|
120
|
+
border-color: var(--ilo-color-red);
|
|
83
121
|
}
|
|
84
122
|
|
|
85
123
|
&:checked {
|
|
86
124
|
&:after {
|
|
87
|
-
border-color:
|
|
125
|
+
border-color: var(--ilo-color-dark-blue);
|
|
88
126
|
}
|
|
89
127
|
}
|
|
90
128
|
}
|
|
@@ -57,13 +57,10 @@
|
|
|
57
57
|
border-bottom: px-to-rem($borders-base) solid var(--ilo-color-white);
|
|
58
58
|
color: var(--ilo-color-blue-dark);
|
|
59
59
|
display: inline-block;
|
|
60
|
-
font-family: var(--ilo-fonts-copy);
|
|
61
|
-
font-weight: map-get($type, "weights", "section");
|
|
62
60
|
padding: spacing(4) spacing(2);
|
|
63
61
|
text-decoration: none;
|
|
64
62
|
width: 100%;
|
|
65
|
-
@include
|
|
66
|
-
letter-spacing: -0.1px;
|
|
63
|
+
@include typography("body-xsmall");
|
|
67
64
|
|
|
68
65
|
&:active {
|
|
69
66
|
color: var(--ilo-color-blue);
|
|
@@ -64,13 +64,30 @@
|
|
|
64
64
|
text-indent: px-to-rem(-24px);
|
|
65
65
|
|
|
66
66
|
.ilo--icon {
|
|
67
|
-
display: inline-block;
|
|
68
67
|
position: relative;
|
|
69
68
|
vertical-align: sub;
|
|
70
69
|
top: px-to-rem(1px);
|
|
71
70
|
}
|
|
72
71
|
}
|
|
73
72
|
|
|
73
|
+
#{$self}--icon-left {
|
|
74
|
+
display: none;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
#{$self}--icon-right {
|
|
78
|
+
display: inline-block;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
[dir="rtl"] & {
|
|
82
|
+
#{$self}--icon-left {
|
|
83
|
+
display: inline-block;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
#{$self}--icon-right {
|
|
87
|
+
display: none;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
74
91
|
&#{$self}__size {
|
|
75
92
|
&__narrow {
|
|
76
93
|
@include breakpoint("md") {
|