@ilo-org/styles 1.3.4 → 1.4.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,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.3.4",
4
+ "version": "1.4.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/international-labour-organization/designsystem.git",
@@ -39,7 +39,7 @@
39
39
  "license": "Apache-2.0",
40
40
  "dependencies": {
41
41
  "@ilo-org/themes": "0.9.1",
42
- "@ilo-org/icons": "2.0.0",
42
+ "@ilo-org/icons": "2.1.0",
43
43
  "@ilo-org/fonts": "1.0.0"
44
44
  },
45
45
  "devDependencies": {
package/scss/_mixins.scss CHANGED
@@ -395,11 +395,16 @@
395
395
  // and also lists in RichText.
396
396
  // ======================================
397
397
 
398
- @mixin invincible-list($bullet-color: rgba(184, 196, 204, 1)) {
398
+ @mixin invincible-list($bullet-color: var(--ilo-color-gray-base)) {
399
399
  li {
400
400
  position: relative;
401
- padding-inline-start: spacing(4);
402
401
  margin-bottom: spacing(4);
402
+ display: table;
403
+ border-collapse: separate;
404
+ border-spacing: spacing(3) 0;
405
+ margin-left: calc(spacing(3) * -1);
406
+ margin-right: calc(spacing(3) * -1);
407
+
403
408
  font-family: var(--ilo-fonts-copy);
404
409
  font-weight: var(--ilo-font-weight-regular);
405
410
  font-size: var(--ilo-font-size-md);
@@ -416,13 +421,12 @@
416
421
 
417
422
  li {
418
423
  counter-increment: item;
419
- display: table;
420
424
 
421
425
  &::before {
422
426
  content: counter(item) ".";
423
427
  display: table-cell;
424
428
  text-align: right;
425
- padding-inline-end: spacing(2);
429
+ width: px-to-rem(26px);
426
430
  }
427
431
  }
428
432
  }
@@ -430,17 +434,11 @@
430
434
  // Unordered list styles
431
435
  ul {
432
436
  li {
433
- display: table;
434
-
435
437
  &::before {
436
438
  content: "";
437
439
  display: table-cell;
438
- text-align: right;
439
- padding-inline-end: spacing(2);
440
- height: px-to-rem(24px);
441
440
  width: px-to-rem(26px);
442
- background-repeat: no-repeat;
443
- @include dataurlicon("caret_right", $bullet-color);
441
+ @include icon("caret_right", $bullet-color);
444
442
 
445
443
  // Adjust for RTL
446
444
  [dir="rtl"] & {
@@ -1,110 +1,117 @@
1
1
  @use "../tokens" as *;
2
2
  @use "../functions" as *;
3
3
  @import "../mixins";
4
+ @import "../config";
4
5
 
5
6
  /**
6
- This mixin is used in _richtext.scss component to style blockquotes.
7
- It could eventually be used for a standalone blockquote component.
7
+ This mixin is also used in _richtext.scss component to style blockquotes.
8
8
  **/
9
9
  @mixin blockquote {
10
- blockquote {
11
- background-color: $color-ux-background-highlight;
12
- background-position: right top;
13
- background-repeat: no-repeat;
14
- background-size: px-to-rem(72px) px-to-rem(40px);
15
- display: block;
16
- font-family: var(--ilo-fonts-display);
17
- padding: spacing(19) 0 spacing(9) spacing(8); // check
10
+ background-color: var(--ilo-color-blue-lighter);
11
+ background-position: right top;
12
+ background-repeat: no-repeat;
13
+ background-size: px-to-rem(72px) px-to-rem(40px);
14
+ display: block;
15
+ font-family: var(--ilo-fonts-display);
16
+ padding: spacing(19) 0 spacing(9) spacing(8); // check
17
+ position: relative;
18
+ width: fit-content;
19
+ border-bottom: px-to-rem(3px) solid var(--ilo-color-gray-base);
20
+ @include cornercut(72px, 40px);
21
+
22
+ p {
23
+ color: var(--ilo-color-purple);
24
+ font-weight: 300;
25
+ padding: 0 spacing(12) 0 0;
18
26
  position: relative;
19
- width: fit-content;
20
- @include cornercut(72px, 40px);
27
+ @include font-styles("pull-quote-sm");
28
+
29
+ &:after {
30
+ bottom: 0;
31
+ content: "";
32
+ display: inline-block;
33
+ height: px-to-rem(20px);
34
+ position: absolute;
35
+ right: 0;
36
+ transform: scaleX(-1);
37
+ width: px-to-rem(26.5px);
38
+ @include icon("quote", var(--ilo-color-purple));
39
+ }
40
+ }
41
+
42
+ cite {
43
+ color: var(--ilo-color-gray-accessible);
44
+ font-weight: 400;
45
+ // @include font-styles("pull-quote-cite");
46
+ font-size: var(--ilo-font-size-sm);
47
+ line-height: 135%;
48
+ letter-spacing: 0;
49
+ font-style: normal;
50
+ }
51
+
52
+ &:before {
53
+ content: "";
54
+ display: inline-block;
55
+ height: px-to-rem(40px);
56
+ left: 0;
57
+ position: absolute;
58
+ width: px-to-rem(53px);
59
+ top: 0;
60
+ @include icon("quote", var(--ilo-color-purple));
61
+ }
62
+
63
+ @include breakpoint("md") {
64
+ background-size: px-to-rem(86px) px-to-rem(48px);
65
+ padding: spacing(16) 0 spacing(12) spacing(12);
66
+ @include cornercut(86px, 48px);
21
67
 
22
68
  p {
23
- color: $color-font-blockquote;
24
- font-weight: 300;
69
+ margin-bottom: spacing(6);
25
70
  padding: 0 spacing(12) 0 0;
26
71
  position: relative;
27
- @include font-styles("pull-quote-sm");
72
+ @include font-styles("pull-quote-lg");
28
73
 
29
74
  &:after {
30
- bottom: 0;
31
- content: "";
32
- display: inline-block;
33
- height: px-to-rem(20px);
34
- position: absolute;
35
- right: 0;
36
- transform: scaleX(-1);
37
- width: px-to-rem(26.5px);
38
- @include icon("quote", var(--ilo-color-purple));
75
+ height: px-to-rem(24px);
76
+ width: px-to-rem(32px);
39
77
  }
40
78
  }
41
79
 
42
- cite {
43
- color: $color-font-cite;
44
- font-weight: 400;
45
- @include font-styles("pull-quote-cite");
46
- }
47
-
48
80
  &:before {
49
- content: "";
50
- display: inline-block;
51
- height: px-to-rem(40px);
52
- left: 0;
53
- position: absolute;
54
- width: px-to-rem(53px);
55
- top: 0;
56
- @include icon("quote", var(--ilo-color-purple));
57
- }
58
-
59
- @include breakpoint("md") {
60
- background-size: px-to-rem(86px) px-to-rem(48px);
61
- padding: spacing(16) 0 spacing(12) spacing(12);
62
- @include cornercut(86px, 48px);
63
-
64
- p {
65
- margin-bottom: spacing(6);
66
- padding: 0 spacing(12) 0 0;
67
- position: relative;
68
- @include font-styles("pull-quote-lg");
69
-
70
- &:after {
71
- height: px-to-rem(24px);
72
- width: px-to-rem(32px);
73
- }
74
- }
75
-
76
- &:before {
77
- height: px-to-rem(48px);
78
- width: px-to-rem(64px);
79
- }
81
+ height: px-to-rem(48px);
82
+ width: px-to-rem(64px);
80
83
  }
84
+ }
81
85
 
82
- [dir="rtl"] & {
83
- background-position: -1px -1px;
84
- padding: spacing(14) spacing(8) spacing(9) 0;
85
- @include cornercut(72px, 40px, "left");
86
+ [dir="rtl"] & {
87
+ background-position: -1px -1px;
88
+ padding: spacing(14) spacing(8) spacing(9) 0;
89
+ @include cornercut(72px, 40px, "left");
86
90
 
87
- p {
88
- padding: 0 0 0 spacing(12);
91
+ p {
92
+ padding: 0 0 0 spacing(12);
89
93
 
90
- &:after {
91
- left: 0;
92
- right: auto;
93
- transform: scaleX(1);
94
- }
94
+ &:after {
95
+ left: 0;
96
+ right: auto;
97
+ transform: scaleX(1);
95
98
  }
99
+ }
96
100
 
97
- &:before {
98
- left: auto;
99
- right: 0;
100
- transform: scaleX(-1);
101
- }
101
+ &:before {
102
+ left: auto;
103
+ right: 0;
104
+ transform: scaleX(-1);
105
+ }
102
106
 
103
- @include breakpoint("md") {
104
- padding: spacing(15) spacing(12) spacing(12) 0;
107
+ @include breakpoint("md") {
108
+ padding: spacing(15) spacing(12) spacing(12) 0;
105
109
 
106
- @include cornercut(86px, 48px, "left");
107
- }
110
+ @include cornercut(86px, 48px, "left");
108
111
  }
109
112
  }
110
113
  }
114
+
115
+ .ilo--blockquote {
116
+ @include blockquote;
117
+ }
@@ -8,12 +8,16 @@
8
8
  $transition-timing: 250ms;
9
9
  box-sizing: border-box;
10
10
  position: relative;
11
- background-color: map-get($color, "base", "neutrals", "white");
11
+ background-color: var(--ilo-color-white);
12
12
 
13
13
  // Max width is set in the invididual card types unless fluid
14
14
  max-width: var(--max-width);
15
15
  flex: 1 1 var(--max-width);
16
16
 
17
+ * {
18
+ @include globaltransition("color, background-color, border-color, opacity");
19
+ }
20
+
17
21
  &__size__fluid {
18
22
  --max-width: 100% !important;
19
23
  }
@@ -21,50 +25,51 @@
21
25
  &__action:hover,
22
26
  &__action:focus,
23
27
  &__action:focus-within {
24
- background: $brand-ilo-white;
28
+ // background: var(--ilo-color-white);
25
29
  outline: none;
26
30
  text-decoration: none;
27
31
 
28
- &#{$self}__dark {
29
- background: $brand-ilo-white;
30
- }
32
+ // &#{$self}__dark {
33
+ // background: var(--ilo-color-white);
34
+ // }
31
35
 
32
36
  #{$self}--eyebrow,
33
37
  #{$self}--title,
34
38
  #{$self}--intro,
35
39
  #{$self}--date,
36
40
  #{$self}--date-extra {
37
- color: $brand-ilo-blue;
41
+ color: var(--ilo-color-blue);
38
42
  }
39
43
  }
40
44
 
41
45
  &__theme {
42
46
  &__light {
43
- background: $brand-ilo-white;
47
+ background: var(--ilo-color-white);
44
48
  }
45
49
 
46
50
  &__dark {
47
- background: $brand-ilo-dark-blue;
48
- transition: background $transition-timing ease-out;
51
+ background: var(--ilo-color-blue-dark);
49
52
 
50
53
  #{$self}--eyebrow,
51
54
  #{$self}--title,
52
55
  #{$self}--intro,
53
56
  #{$self}--date,
54
57
  #{$self}--eventdate {
55
- color: $brand-ilo-grey-light;
56
- transition: color $transition-timing ease-out;
58
+ color: var(--ilo-color-gray-light);
57
59
  }
58
60
  }
61
+
62
+ &__soft {
63
+ background: var(--ilo-color-blue-lighter);
64
+ }
59
65
  }
60
66
 
61
67
  &__isvideo {
62
68
  #{$self}--image--wrapper {
63
69
  position: relative;
64
70
 
65
- &::before {
66
- @include dataurlicon("play", $brand-ilo-grey-light);
67
- background-color: $brand-ilo-black;
71
+ &::before,
72
+ &::after {
68
73
  background-position: center;
69
74
  background-size: 18px 20px;
70
75
  background-repeat: no-repeat;
@@ -77,6 +82,14 @@
77
82
  width: 40px;
78
83
  z-index: 1;
79
84
  }
85
+
86
+ &::before {
87
+ background-color: var(--ilo-color-gray-charcoal);
88
+ }
89
+
90
+ &::after {
91
+ @include icon("caret_right", var(--ilo-color-gray-light));
92
+ }
80
93
  }
81
94
  }
82
95
 
@@ -105,35 +118,31 @@
105
118
  top: 0;
106
119
  width: 100%;
107
120
  z-index: 2;
108
- @include globaltransition("color, background-color, border-color, opacity");
109
121
 
110
122
  &:hover,
111
123
  &:focus,
112
124
  &:focus-within {
113
125
  outline: none;
114
- @include globaltransition(
115
- "color, background-color, border-color, opacity"
116
- );
117
126
 
118
127
  + #{$self}--wrap {
119
128
  #{$self}--eyebrow {
120
- color: $brand-ilo-blue;
129
+ color: var(--ilo-color-blue);
121
130
  }
122
131
 
123
132
  #{$self}--title {
124
- color: $brand-ilo-blue;
133
+ color: var(--ilo-color-blue);
125
134
  }
126
135
 
127
136
  #{$self}--intro {
128
- color: $brand-ilo-blue;
137
+ color: var(--ilo-color-blue);
129
138
  }
130
139
 
131
140
  #{$self}--date {
132
- color: $brand-ilo-blue;
141
+ color: var(--ilo-color-blue);
133
142
  }
134
143
 
135
144
  #{$self}--eventdate {
136
- color: $brand-ilo-blue;
145
+ color: var(--ilo-color-blue);
137
146
  }
138
147
  }
139
148
  }
@@ -147,18 +156,16 @@
147
156
  color: $brand-ilo-purple;
148
157
  @include font-styles("body-small");
149
158
  margin-bottom: spacing(3);
150
- @include globaltransition("color");
151
159
 
152
160
  #{$self}--link:hover &,
153
161
  #{$self}--link:focus &,
154
162
  #{$self}--link:focus-within & {
155
- color: $brand-ilo-blue;
156
- @include globaltransition("color");
163
+ color: var(--ilo-color-blue);
157
164
  }
158
165
  }
159
166
 
160
167
  &--title {
161
- color: $brand-ilo-dark-blue;
168
+ color: var(--ilo-color-blue-dark);
162
169
  font-family: var(--ilo-fonts-display);
163
170
  font-weight: 700;
164
171
  @include font-styles("headline-5");
@@ -170,27 +177,23 @@
170
177
  "body-small",
171
178
  "copy"
172
179
  );
173
- @include globaltransition("color");
174
180
 
175
181
  #{$self}--link:hover &,
176
182
  #{$self}--link:focus &,
177
183
  #{$self}--link:focus-within & {
178
- color: $brand-ilo-blue;
179
- @include globaltransition("color");
184
+ color: var(--ilo-color-blue);
180
185
  }
181
186
  }
182
187
 
183
188
  &--intro {
184
- color: $brand-ilo-black;
189
+ color: var(--ilo-color-gray-charcoal);
185
190
  @include font-styles("body-small");
186
- @include globaltransition("color");
187
191
  margin-bottom: spacing(8);
188
192
 
189
193
  #{$self}--link:hover &,
190
194
  #{$self}--link:focus &,
191
195
  #{$self}--link:focus-within & {
192
- color: $brand-ilo-blue;
193
- @include globaltransition("color");
196
+ color: var(--ilo-color-blue);
194
197
  }
195
198
  }
196
199
 
@@ -198,13 +201,11 @@
198
201
  color: $brand-ilo-grey-accessible;
199
202
  @include font-styles("body-small");
200
203
  @include textmargin("margin-bottom", 30px, "body-small", "copy", 0, 0);
201
- @include globaltransition("color");
202
204
 
203
205
  #{$self}--link:hover &,
204
206
  #{$self}--link:focus &,
205
207
  #{$self}--link:focus-within & {
206
- color: $brand-ilo-blue;
207
- @include globaltransition("color");
208
+ color: var(--ilo-color-blue);
208
209
  }
209
210
  }
210
211
 
@@ -18,6 +18,17 @@
18
18
  position: relative;
19
19
  width: 100%;
20
20
 
21
+ &--content {
22
+ &-links-list {
23
+ display: flex;
24
+ flex-wrap: wrap;
25
+ }
26
+
27
+ &-link.ilo--link {
28
+ margin-bottom: 0px !important;
29
+ }
30
+ }
31
+
21
32
  #{$self}--content {
22
33
  display: grid;
23
34
  grid-template-columns: 1fr;
@@ -10,40 +10,30 @@
10
10
  &__feature {
11
11
  --max-width: #{px-to-rem(412px)};
12
12
 
13
- border-bottom: px-to-rem(3px) solid $brand-ilo-grey-ui;
13
+ border-bottom: px-to-rem(3px) solid var(--ilo-color-gray-base);
14
14
  display: flex;
15
15
  margin-top: 0;
16
16
  position: relative;
17
17
 
18
- &#{$self}__theme__dark {
19
- border-bottom: px-to-rem(3px) solid $color-base-red-medium;
20
-
18
+ &:hover,
19
+ &:focus,
20
+ &:focus-within {
21
21
  .ilo--link-list {
22
- border-top: 2px solid rgba($brand-ilo-grey-light, 0.25);
23
-
24
- &--link {
25
- color: $brand-ilo-white;
26
- @include dataurlicon("chevron_right", $brand-ilo-white);
22
+ &--label {
23
+ color: var(--ilo-color-blue) !important;
24
+ }
27
25
 
28
- [dir="rtl"] & {
29
- @include dataurlicon("chevron_left", $brand-ilo-white);
30
- }
26
+ &--icon {
27
+ background-color: var(--ilo-color-blue);
31
28
  }
32
29
  }
30
+ }
33
31
 
34
- &:hover,
35
- &:focus,
36
- &:focus-within {
37
- .ilo--link-list {
38
- &--link {
39
- color: $brand-ilo-blue;
40
- @include dataurlicon("chevron_right", $brand-ilo-blue);
41
-
42
- [dir="rtl"] & {
43
- @include dataurlicon("chevron_left", $brand-ilo-blue);
44
- }
45
- }
46
- }
32
+ &#{$self}__theme__dark {
33
+ border-bottom: px-to-rem(3px) solid var(--ilo-color-red);
34
+
35
+ .ilo--link-list {
36
+ border-top: 2px solid var(--ilo-color-gray-light-semi-transparent);
47
37
  }
48
38
  }
49
39
 
@@ -54,8 +44,8 @@
54
44
  &:hover,
55
45
  &:focus,
56
46
  &:focus-within {
57
- background-color: $brand-ilo-white;
58
- border-bottom: px-to-rem(3px) solid $brand-ilo-blue;
47
+ background-color: var(--ilo-color-white);
48
+ border-bottom: px-to-rem(3px) solid var(--ilo-color-blue);
59
49
  @include card-drop-shadow;
60
50
 
61
51
  picture::before {
@@ -70,7 +60,7 @@
70
60
  }
71
61
 
72
62
  .ilo--link-list {
73
- border-top: px-to-rem(2px) solid $brand-ilo-grey-light;
63
+ border-top: px-to-rem(2px) solid var(--ilo-color-gray-light);
74
64
  margin-left: px-to-rem(-24px);
75
65
  margin-right: px-to-rem(-24px);
76
66
  position: relative;
@@ -158,7 +148,7 @@
158
148
  position: relative;
159
149
 
160
150
  &::before {
161
- background-color: $brand-ilo-blue;
151
+ background-color: var(--ilo-color-blue);
162
152
  content: "";
163
153
  display: block;
164
154
  height: 100%;
@@ -0,0 +1,77 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+
5
+ .ilo--language-toggle {
6
+ --ilo--language-toggle-color: var(--ilo-color-white);
7
+ --ilo--language-toggle-color-hover: var(--ilo-color-blue);
8
+ --ilo--language-toggle-bg: transparent;
9
+ --ilo--language-toggle-bg-hover: transparent;
10
+
11
+ &--dark {
12
+ --ilo--language-toggle-color: var(--ilo-color-blue-dark);
13
+ --ilo--language-toggle-color-hover: var(--ilo-color-white);
14
+ }
15
+
16
+ &:hover,
17
+ &--open {
18
+ --ilo--language-toggle-color: var(--ilo--language-toggle-color-hover);
19
+ --ilo--language-toggle-bg: var(--ilo--language-toggle-bg-hover);
20
+ }
21
+
22
+ &--container {
23
+ all: unset;
24
+ display: flex;
25
+ align-items: center;
26
+ gap: px-to-rem(4px);
27
+ cursor: pointer;
28
+ width: fit-content;
29
+ background-color: var(--ilo--language-toggle-bg);
30
+
31
+ &:hover {
32
+ background-color: var(--ilo--language-toggle-bg-hover);
33
+ }
34
+ }
35
+
36
+ &--icon {
37
+ display: block;
38
+ width: px-to-rem(24px);
39
+ height: px-to-rem(24px);
40
+ @include icon("globe", var(--ilo--language-toggle-color));
41
+ }
42
+
43
+ &--arrow {
44
+ display: block;
45
+ width: px-to-rem(24px);
46
+ height: px-to-rem(24px);
47
+ @include icon("chevron_down", var(--ilo--language-toggle-color));
48
+ }
49
+
50
+ &--action {
51
+ color: var(--ilo--language-toggle-color);
52
+
53
+ //move this when the new typography is ready ##896
54
+ font-weight: 700;
55
+ font-size: px-to-rem(14px);
56
+ line-height: 135%;
57
+ letter-spacing: -2%;
58
+ }
59
+
60
+ &--context-menu {
61
+ position: absolute;
62
+ margin-top: spacing(2);
63
+ opacity: 0;
64
+ visibility: hidden;
65
+ transform: translateY(-10px);
66
+ transition:
67
+ opacity 0.3s ease,
68
+ visibility 0.3s ease,
69
+ transform 0.3s ease;
70
+
71
+ &__open {
72
+ opacity: 1;
73
+ visibility: visible;
74
+ transform: translateY(0);
75
+ }
76
+ }
77
+ }
@@ -24,7 +24,7 @@
24
24
 
25
25
  &__dark {
26
26
  color: var(--ilo-color-white);
27
- @include invincible-list(rgba(255, 255, 255, 1));
27
+ @include invincible-list(var(--ilo-color-white));
28
28
  }
29
29
  }
30
30