@ilo-org/styles 1.3.4 → 1.5.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.
Files changed (42) hide show
  1. package/css/components/blockquote.css +1 -0
  2. package/css/components/card.css +1 -1
  3. package/css/components/datacard.css +1 -1
  4. package/css/components/featurecard.css +1 -1
  5. package/css/components/languagetoggle.css +1 -0
  6. package/css/components/list.css +1 -1
  7. package/css/components/multilinkcard.css +1 -1
  8. package/css/components/richtext.css +1 -1
  9. package/css/components/socialmedia.css +1 -1
  10. package/css/components/video.css +1 -1
  11. package/css/global.css +1 -1
  12. package/css/global.css.map +1 -1
  13. package/css/index.css +2 -2
  14. package/css/index.css.map +1 -1
  15. package/css/monorepo.css +2 -2
  16. package/css/monorepo.css.map +1 -1
  17. package/package.json +4 -4
  18. package/scss/_mixins.scss +176 -11
  19. package/scss/components/_blockquote.scss +88 -81
  20. package/scss/components/_card.scss +38 -37
  21. package/scss/components/_datacard.scss +11 -0
  22. package/scss/components/_featurecard.scss +19 -29
  23. package/scss/components/_languagetoggle.scss +96 -0
  24. package/scss/components/_list.scss +1 -1
  25. package/scss/components/_multilinkcard.scss +55 -24
  26. package/scss/components/_richtext.scss +3 -1
  27. package/scss/components/_socialmedia.scss +24 -0
  28. package/scss/components/_video.scss +2 -2
  29. package/scss/components/index.scss +3 -0
  30. package/scss/components/navigation/_nav-compact.scss +186 -0
  31. package/scss/components/navigation/_nav-complex.scss +256 -0
  32. package/scss/components/navigation/_nav-dropdown.scss +44 -0
  33. package/scss/components/navigation/_nav-grid.scss +31 -0
  34. package/scss/components/navigation/_nav-menu.scss +91 -0
  35. package/scss/components/navigation/index.scss +6 -0
  36. package/scss/components/navigation/mobile/_nav-mobile-drawer.scss +60 -0
  37. package/scss/components/navigation/mobile/_nav-mobile-menu.scss +36 -0
  38. package/scss/components/navigation/mobile/_nav-mobile.scss +171 -0
  39. package/scss/components/navigation/mobile/index.scss +3 -0
  40. package/scss/theme/_breakpoints.scss +2 -2
  41. package/scss/theme/_foundation.scss +2 -22
  42. package/scss/theme/_typography.scss +53 -0
@@ -0,0 +1,256 @@
1
+ @use "../../tokens" as *;
2
+ @use "../../functions" as *;
3
+ @import "../../mixins";
4
+ @import "../../config";
5
+
6
+ .ilo--subsite-nav-complex {
7
+ position: relative;
8
+ overflow: hidden;
9
+
10
+ @include breakpoint("lg", true) {
11
+ height: px-to-rem(70px);
12
+ }
13
+
14
+ &-bg {
15
+ &--light {
16
+ background-color: var(--ilo-color-blue-lighter);
17
+ }
18
+
19
+ &--dark {
20
+ background-color: var(--ilo-color-blue);
21
+ }
22
+ }
23
+
24
+ &__container {
25
+ max-width: px-to-rem(1296px);
26
+ margin-left: auto;
27
+ margin-right: auto;
28
+ padding-inline: spacing(4);
29
+
30
+ &--light {
31
+ background-color: var(--ilo-color-blue-lighter);
32
+ }
33
+
34
+ &--dark {
35
+ background-color: var(--ilo-color-blue);
36
+ }
37
+ }
38
+
39
+ &__widgets {
40
+ display: flex;
41
+ justify-content: flex-end;
42
+ align-items: center;
43
+ height: px-to-rem(32px);
44
+ position: relative;
45
+ padding-inline-end: 0;
46
+
47
+ @include breakpoint("lg", true) {
48
+ display: none;
49
+ }
50
+
51
+ &-bar-corner {
52
+ display: block;
53
+ background-color: var(--ilo-color-blue);
54
+ width: px-to-rem(32px);
55
+ height: px-to-rem(32px);
56
+ clip-path: polygon(0 0, 100% 0, 99% 100%);
57
+ margin-right: -1px;
58
+ transform: skewY(0.001deg);
59
+
60
+ [dir="rtl"] & {
61
+ @include cornercut(spacing(10), 100%, "left");
62
+ margin-right: 0;
63
+ margin-left: -1px;
64
+ clip-path: polygon(0 0, 100% 0, 1% 100%);
65
+ }
66
+ }
67
+
68
+ &-bar {
69
+ background-color: var(--ilo-color-blue);
70
+ height: 100%;
71
+ display: flex;
72
+ align-items: center;
73
+ gap: spacing(4);
74
+ padding-inline-end: spacing(4);
75
+ height: px-to-rem(32px);
76
+
77
+ &__link {
78
+ @include typography("highlight-small-bold");
79
+ height: inherit;
80
+ display: flex;
81
+ align-items: center;
82
+ padding-inline: spacing(2);
83
+ text-decoration: none;
84
+ color: var(--ilo-color-white);
85
+
86
+ &:hover {
87
+ background-color: var(--ilo-color-blue-lighter);
88
+ color: var(--ilo-color-blue);
89
+ }
90
+ }
91
+
92
+ &__language {
93
+ &:hover {
94
+ height: 100%;
95
+ display: flex;
96
+ align-items: center;
97
+ background-color: var(--ilo-color-blue-lighter);
98
+ }
99
+ }
100
+ }
101
+
102
+ &::after {
103
+ content: "";
104
+ position: absolute;
105
+ top: 0;
106
+ left: 100%;
107
+ width: 100vw;
108
+ height: 100%;
109
+ background-color: var(--ilo-color-blue);
110
+ z-index: 1;
111
+
112
+ [dir="rtl"] & {
113
+ left: auto;
114
+ right: 100%;
115
+ }
116
+ }
117
+ }
118
+
119
+ &__branding {
120
+ display: flex;
121
+ justify-content: space-between;
122
+ align-items: center;
123
+ padding-bottom: spacing(6);
124
+
125
+ @include breakpoint("lg", true) {
126
+ display: none;
127
+ }
128
+
129
+ &-main {
130
+ display: flex;
131
+ justify-content: center;
132
+ align-items: center;
133
+
134
+ &__logo img {
135
+ height: 100%;
136
+ padding-inline-end: spacing(4);
137
+ border-inline-end: 1px solid var(--ilo-color-blue-dark);
138
+ }
139
+
140
+ &__name {
141
+ @include typography("heading-2");
142
+ padding-inline-start: spacing(4);
143
+ }
144
+ }
145
+
146
+ &-tag {
147
+ display: flex;
148
+ flex-direction: column;
149
+ text-align: right;
150
+
151
+ &__main {
152
+ @include typography("heading-4");
153
+ }
154
+
155
+ &__sub {
156
+ @include typography("body-xsmall");
157
+ }
158
+ }
159
+ }
160
+
161
+ &__nav {
162
+ display: flex;
163
+ justify-content: space-between;
164
+ align-items: center;
165
+ height: px-to-rem(64px);
166
+
167
+ @include breakpoint("lg", true) {
168
+ height: px-to-rem(70px);
169
+ }
170
+
171
+ &-menu {
172
+ @include breakpoint("lg", true) {
173
+ display: none;
174
+ }
175
+ }
176
+
177
+ &-mobile {
178
+ justify-content: center;
179
+ align-items: center;
180
+ display: none;
181
+
182
+ @include breakpoint("lg", true) {
183
+ display: flex;
184
+ }
185
+
186
+ &__logo {
187
+ padding-inline-end: spacing(4);
188
+ border-inline-end: 1px solid var(--ilo-color-white);
189
+ height: px-to-rem(38px);
190
+
191
+ img {
192
+ height: 100%;
193
+ }
194
+ }
195
+
196
+ &__name {
197
+ padding-inline-start: spacing(4);
198
+ color: var(--ilo-color-white);
199
+ @include typography("heading-3");
200
+ font-size: px-to-rem(16px); //Designs have wrong config
201
+ }
202
+ }
203
+
204
+ &-search {
205
+ --ilo-subsite_nav_complex-search-color: var(--ilo-color-white);
206
+ height: 100%;
207
+ display: flex;
208
+ align-items: center;
209
+ padding-inline: spacing(2);
210
+ text-decoration: none;
211
+
212
+ @include breakpoint("lg", true) {
213
+ display: none;
214
+ }
215
+
216
+ display: flex;
217
+
218
+ &__icon {
219
+ @include icon("search", var(--ilo-subsite_nav_complex-search-color));
220
+ width: px-to-rem(32px);
221
+ height: px-to-rem(32px);
222
+ cursor: pointer;
223
+ }
224
+
225
+ &:hover {
226
+ --ilo-subsite_nav_complex-search-color: var(--ilo-color-blue);
227
+ background-color: var(--ilo-color-blue-lighter);
228
+ }
229
+ }
230
+
231
+ &-burger {
232
+ display: none;
233
+
234
+ @include breakpoint("lg", true) {
235
+ display: flex;
236
+ }
237
+
238
+ --ilo-subsite_nav_complex-burger-color: var(--ilo-color-white);
239
+ margin-block: px-to-rem(20px);
240
+ align-items: center;
241
+ border: none;
242
+ cursor: pointer;
243
+
244
+ &__icon {
245
+ width: px-to-rem(32px);
246
+ height: px-to-rem(32px);
247
+ @include icon("burger", var(--ilo-subsite_nav_complex-burger-color));
248
+ }
249
+
250
+ &:hover {
251
+ --ilo-subsite-nav-burger-icon: var(--ilo-color-blue);
252
+ background-color: var(--ilo-color-white);
253
+ }
254
+ }
255
+ }
256
+ }
@@ -0,0 +1,44 @@
1
+ @use "../../tokens" as *;
2
+ @use "../../functions" as *;
3
+ @import "../../mixins";
4
+ @import "../../config";
5
+
6
+ .ilo--nav-dropdown {
7
+ position: absolute;
8
+ width: 100%;
9
+ visibility: hidden;
10
+ opacity: 0;
11
+ transform: translateY(-10px);
12
+ background-color: var(--ilo-color-white);
13
+ filter: drop-shadow(0px 10px 20px rgba(30, 45, 190, 0.08))
14
+ drop-shadow(0px 4px 8px rgba(30, 45, 190, 0.05))
15
+ drop-shadow(0px 0.8px 1.6px rgba(30, 45, 190, 0.03));
16
+ border-bottom: 3px solid var(--ilo-color-gray-base);
17
+ padding: spacing(8) spacing(18);
18
+ z-index: 4;
19
+
20
+ transition:
21
+ opacity 225ms ease-out,
22
+ transform 225ms ease-out,
23
+ visibility 225ms ease-out;
24
+
25
+ &:not(&--open) {
26
+ visibility: hidden;
27
+ opacity: 0;
28
+ transform: translateY(0);
29
+ }
30
+
31
+ &--open {
32
+ z-index: 3;
33
+ visibility: visible;
34
+ opacity: 1;
35
+ transform: translateY(0);
36
+ }
37
+
38
+ &__container {
39
+ max-width: px-to-rem(1296px);
40
+ padding-inline: spacing(4);
41
+ margin-left: auto;
42
+ margin-right: auto;
43
+ }
44
+ }
@@ -0,0 +1,31 @@
1
+ @use "../../tokens" as *;
2
+ @use "../../functions" as *;
3
+ @import "../../mixins";
4
+ @import "../../config";
5
+
6
+ .ilo--nav-menu-grid {
7
+ display: flex;
8
+ gap: spacing(8);
9
+
10
+ &__column {
11
+ display: flex;
12
+ flex-direction: column;
13
+ }
14
+
15
+ &__item {
16
+ @include typography("highlight-medium");
17
+ width: px-to-rem(280px);
18
+ padding: spacing(4) spacing(2);
19
+ text-decoration: none;
20
+ text-overflow: ellipsis;
21
+ color: var(--ilo-color-blue-dark);
22
+ transition:
23
+ color 0.3s ease,
24
+ background-color 0.3s ease;
25
+
26
+ &:hover {
27
+ color: var(--ilo-color-blue);
28
+ background-color: var(--ilo-color-blue-lighter);
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,91 @@
1
+ @use "../../tokens" as *;
2
+ @use "../../functions" as *;
3
+ @import "../../mixins";
4
+ @import "../../config";
5
+
6
+ .ilo--nav-menu {
7
+ display: flex;
8
+ align-items: center;
9
+ gap: spacing(12);
10
+
11
+ @include breakpoint("xl", true) {
12
+ gap: spacing(6);
13
+ }
14
+
15
+ &__list {
16
+ display: flex;
17
+ gap: spacing(12);
18
+ align-items: center;
19
+
20
+ @include breakpoint("xl", true) {
21
+ gap: spacing(6);
22
+ }
23
+ }
24
+
25
+ &__item {
26
+ display: flex;
27
+ }
28
+
29
+ &__link {
30
+ @include typography("highlight-medium");
31
+ color: var(--ilo-color-white);
32
+ text-decoration: none;
33
+ position: relative;
34
+ padding-bottom: 2px;
35
+ text-wrap: nowrap;
36
+
37
+ &::after {
38
+ content: "";
39
+ position: absolute;
40
+ bottom: 0;
41
+ left: 0;
42
+ width: 0;
43
+ height: 2px;
44
+ background-color: var(--ilo-color-white);
45
+ transition: width 0.3s ease;
46
+ }
47
+
48
+ &--active,
49
+ &:hover,
50
+ &:focus,
51
+ &:active {
52
+ &::after {
53
+ width: 100%;
54
+ }
55
+ }
56
+ }
57
+
58
+ &__more {
59
+ @include breakpoint("lg", true) {
60
+ display: none;
61
+ }
62
+
63
+ --ilo-nav_menu-icon-color: var(--ilo-color-white);
64
+ border: 1px solid var(--ilo-color-white);
65
+ border-radius: var(--ilo-border-radius);
66
+ cursor: pointer;
67
+ display: flex;
68
+ gap: spacing(1);
69
+ margin-top: -3px;
70
+ justify-content: center;
71
+ align-items: center;
72
+ padding: spacing(2) spacing(4) spacing(1);
73
+ color: var(--ilo-color-white);
74
+ @include typography("highlight-medium-bold");
75
+
76
+ &-icon {
77
+ width: px-to-rem(20px);
78
+ height: px-to-rem(20px);
79
+ margin-top: -3px;
80
+ @include icon("plus", var(--ilo-nav_menu-icon-color));
81
+ }
82
+
83
+ &--open,
84
+ &:hover,
85
+ &:active {
86
+ --ilo-nav_menu-icon-color: var(--ilo-color-blue);
87
+ background-color: var(--ilo-color-blue-lighter);
88
+ color: var(--ilo-color-blue);
89
+ }
90
+ }
91
+ }
@@ -0,0 +1,6 @@
1
+ @use "nav-menu";
2
+ @use "nav-compact";
3
+ @use "nav-complex";
4
+ @use "nav-dropdown";
5
+ @use "nav-grid";
6
+ @use "mobile";
@@ -0,0 +1,60 @@
1
+ @use "../../../tokens" as *;
2
+ @use "../../../functions" as *;
3
+ @import "../../../mixins";
4
+ @import "../../../config";
5
+
6
+ .ilo--nav-mobile-drawer {
7
+ position: fixed;
8
+ top: 0;
9
+ right: 0;
10
+ width: 100%;
11
+ height: 100%;
12
+ background-color: var(--ilo-color-white);
13
+ transform: translateX(100%);
14
+ transition: transform 225ms ease-in-out;
15
+ z-index: 2;
16
+
17
+ &--open {
18
+ transform: translateX(0);
19
+ }
20
+
21
+ &__header {
22
+ display: flex;
23
+ justify-content: space-between;
24
+ align-items: center;
25
+ padding: spacing(4);
26
+ color: var(--ilo-color-white);
27
+
28
+ &-main {
29
+ display: flex;
30
+ align-items: center;
31
+ flex-grow: 1;
32
+ gap: spacing(4);
33
+ }
34
+
35
+ &-close {
36
+ border: none;
37
+ background-color: var(--ilo-color-gray-light);
38
+ width: px-to-rem(32px);
39
+ height: px-to-rem(32px);
40
+ margin-top: -3px;
41
+
42
+ &__icon {
43
+ display: block;
44
+ width: px-to-rem(32px);
45
+ height: px-to-rem(32px);
46
+ @include icon("close", var(--ilo-color-blue-dark));
47
+ }
48
+ }
49
+ }
50
+ &__container {
51
+ padding: spacing(4);
52
+ }
53
+
54
+ &__widgets {
55
+ padding-bottom: spacing(4);
56
+ margin-bottom: spacing(4);
57
+ border-bottom: 4px solid var(--ilo-color-gray-light);
58
+ overflow-y: auto;
59
+ }
60
+ }
@@ -0,0 +1,36 @@
1
+ @use "../../../tokens" as *;
2
+ @use "../../../functions" as *;
3
+ @import "../../../mixins";
4
+ @import "../../../config";
5
+
6
+ .ilo--nav-mobile-menu {
7
+ display: flex;
8
+ flex-direction: column;
9
+
10
+ &__item {
11
+ padding: 13px spacing(2);
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: space-between;
15
+ color: var(--ilo-color-blue-dark);
16
+ border-bottom: 2px solid transparent;
17
+
18
+ &:hover {
19
+ background-color: var(--ilo-color-blue-lighter);
20
+ color: var(--ilo-color-blue);
21
+ border-bottom-color: var(--ilo-color-blue);
22
+ }
23
+ }
24
+
25
+ &__link {
26
+ @include typography("highlight-medium");
27
+ text-decoration: none;
28
+ color: inherit;
29
+ }
30
+
31
+ &__marked {
32
+ width: px-to-rem(24px);
33
+ height: px-to-rem(24px);
34
+ @include icon("check", var(--ilo-color-blue-dark));
35
+ }
36
+ }
@@ -0,0 +1,171 @@
1
+ @use "../../../tokens" as *;
2
+ @use "../../../functions" as *;
3
+ @import "../../../mixins";
4
+ @import "../../../config";
5
+
6
+ .ilo--nav-mobile {
7
+ &__branding {
8
+ display: flex;
9
+ align-items: center;
10
+ height: px-to-rem(38px);
11
+ }
12
+
13
+ &__logo {
14
+ display: flex;
15
+ align-items: center;
16
+ padding-inline-end: spacing(4);
17
+ border-right: 1px solid var(--ilo-color-blue-dark);
18
+
19
+ [dir="rtl"] & {
20
+ padding-inline-start: spacing(4);
21
+ border-right: none;
22
+ border-left: 1px solid var(--ilo-color-blue-dark);
23
+ }
24
+
25
+ img {
26
+ height: 100%;
27
+ }
28
+ }
29
+
30
+ &__name {
31
+ padding-inline-start: spacing(4);
32
+ font-weight: 700;
33
+ font-size: px-to-rem(13);
34
+ line-height: 125%;
35
+ color: var(--ilo-color-blue-dark);
36
+ }
37
+
38
+ &__widgets {
39
+ &-search {
40
+ padding: spacing(4) 0;
41
+ display: flex;
42
+ align-items: center;
43
+ justify-content: space-between;
44
+ text-decoration: none;
45
+ cursor: pointer;
46
+
47
+ &__label {
48
+ @include typography("highlight-medium");
49
+ color: var(--ilo-color-blue-dark);
50
+ }
51
+
52
+ &__icon {
53
+ display: block;
54
+ width: px-to-rem(24px);
55
+ height: px-to-rem(24px);
56
+ margin-top: -3px;
57
+
58
+ @include icon("search", var(--ilo-color-blue-dark));
59
+ }
60
+ }
61
+
62
+ &-link {
63
+ @include typography("highlight-medium");
64
+ padding: spacing(4) 0;
65
+ width: 100%;
66
+ display: block;
67
+ text-decoration: none;
68
+ color: var(--ilo-color-blue-dark);
69
+ }
70
+
71
+ &-language {
72
+ @include typography("highlight-medium");
73
+ padding: spacing(4) 0;
74
+ cursor: pointer;
75
+ width: 100%;
76
+ border: none;
77
+ display: flex;
78
+ justify-content: space-between;
79
+
80
+ &__label {
81
+ color: var(--ilo-color-blue-dark);
82
+ }
83
+
84
+ &__icon {
85
+ display: block;
86
+ width: px-to-rem(24px);
87
+ height: px-to-rem(24px);
88
+ margin-top: -3px;
89
+
90
+ @include icon("globe", var(--ilo-color-blue-dark));
91
+ }
92
+ }
93
+ }
94
+
95
+ &__more {
96
+ width: 100%;
97
+ border: none;
98
+ padding: 13px spacing(2);
99
+ display: flex;
100
+ align-items: center;
101
+ justify-content: space-between;
102
+ color: var(--ilo-color-blue-dark);
103
+ border-bottom: 2px solid transparent;
104
+ @include typography("highlight-medium");
105
+
106
+ &:hover {
107
+ background-color: var(--ilo-color-blue-lighter);
108
+ color: var(--ilo-color-blue);
109
+ border-bottom-color: var(--ilo-color-blue);
110
+ }
111
+
112
+ &__icon {
113
+ display: block;
114
+ width: px-to-rem(24px);
115
+ height: px-to-rem(24px);
116
+
117
+ @include icon("chevron_right", var(--ilo-color-blue-dark));
118
+ }
119
+ }
120
+
121
+ &__nested {
122
+ .ilo--nav-mobile-drawer__header {
123
+ padding-block: spacing(2);
124
+ }
125
+
126
+ &__header {
127
+ --ilo-nav_compact-close_icon-color: var(--ilo-color-blue-dark);
128
+ &__icon {
129
+ display: block;
130
+ width: px-to-rem(24px);
131
+ height: px-to-rem(24px);
132
+ margin-top: -3px;
133
+
134
+ @include icon("chevron_left", var(--ilo-nav_compact-close_icon-color));
135
+
136
+ [dir="rtl"] & {
137
+ @include icon(
138
+ "chevron_right",
139
+ var(--ilo-nav_compact-close_icon-color)
140
+ );
141
+ }
142
+ }
143
+
144
+ padding-block: spacing(2);
145
+ width: 100%;
146
+ border: none;
147
+ display: flex;
148
+ gap: spacing(2);
149
+ align-items: center;
150
+ color: var(--ilo-color-blue-dark);
151
+ border-bottom: 2px solid transparent;
152
+ @include typography("highlight-medium");
153
+
154
+ &:hover {
155
+ --ilo-nav_compact-close_icon-color: var(--ilo-color-blue);
156
+ background-color: var(--ilo-color-blue-lighter);
157
+ color: var(--ilo-color-blue);
158
+ border-bottom-color: var(--ilo-color-blue);
159
+ }
160
+ }
161
+
162
+ &__title {
163
+ @include typography("heading-4", true);
164
+ color: var(--ilo-color-gray-charcoal);
165
+ }
166
+ }
167
+ }
168
+
169
+ .ilo--nav-mobile-drawer.ilo--nav-mobile__nested {
170
+ z-index: 3;
171
+ }
@@ -0,0 +1,3 @@
1
+ @use "nav-mobile";
2
+ @use "nav-mobile-menu";
3
+ @use "nav-mobile-drawer";
@@ -6,6 +6,6 @@ $breakpoints-foundation: (
6
6
  sm: 414px,
7
7
  md: 610px,
8
8
  lg: 1024px,
9
- xl: 1168px,
10
- xxl: 1140px,
9
+ xl: 1140px,
10
+ xxl: 1168px,
11
11
  );