@ilo-org/styles 1.9.0 → 1.10.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 (90) hide show
  1. package/css/components/accordion.css +1 -1
  2. package/css/components/blockquote.css +1 -1
  3. package/css/components/breadcrumb.css +1 -1
  4. package/css/components/button.css +1 -1
  5. package/css/components/callout.css +1 -1
  6. package/css/components/card.css +1 -1
  7. package/css/components/cardgroup.css +1 -1
  8. package/css/components/checkbox.css +1 -1
  9. package/css/components/container.css +1 -1
  10. package/css/components/contextmenu.css +1 -1
  11. package/css/components/datacard.css +1 -1
  12. package/css/components/datepicker.css +1 -1
  13. package/css/components/detailcard.css +1 -1
  14. package/css/components/dropdown.css +1 -1
  15. package/css/components/empty.css +1 -1
  16. package/css/components/factlistcard.css +1 -1
  17. package/css/components/featurecard.css +1 -1
  18. package/css/components/fieldset.css +1 -1
  19. package/css/components/file-upload.css +1 -1
  20. package/css/components/footer.css +1 -1
  21. package/css/components/form.css +1 -1
  22. package/css/components/formcontrol.css +1 -1
  23. package/css/components/hero.css +1 -1
  24. package/css/components/herocard.css +1 -1
  25. package/css/components/image.css +1 -1
  26. package/css/components/input.css +1 -1
  27. package/css/components/languagetoggle.css +1 -1
  28. package/css/components/link.css +1 -1
  29. package/css/components/linklist.css +1 -1
  30. package/css/components/list.css +1 -1
  31. package/css/components/loading.css +1 -1
  32. package/css/components/logogrid.css +1 -1
  33. package/css/components/modal.css +1 -1
  34. package/css/components/multilinkcard.css +1 -1
  35. package/css/components/navigation.css +1 -1
  36. package/css/components/notification.css +1 -1
  37. package/css/components/pagination.css +1 -1
  38. package/css/components/profile.css +1 -1
  39. package/css/components/promocard.css +1 -1
  40. package/css/components/radio.css +1 -1
  41. package/css/components/readmore.css +1 -1
  42. package/css/components/richtext.css +1 -1
  43. package/css/components/scorecard.css +1 -1
  44. package/css/components/searchfield.css +1 -1
  45. package/css/components/socialmedia.css +1 -1
  46. package/css/components/statcard.css +1 -1
  47. package/css/components/status.css +1 -1
  48. package/css/components/table.css +1 -1
  49. package/css/components/tableofcontents.css +1 -1
  50. package/css/components/tabs.css +1 -1
  51. package/css/components/tag.css +1 -1
  52. package/css/components/textarea.css +1 -1
  53. package/css/components/textcard.css +1 -1
  54. package/css/components/textinput.css +1 -1
  55. package/css/components/toggle.css +1 -1
  56. package/css/components/tooltip.css +1 -1
  57. package/css/components/video.css +1 -1
  58. package/css/global.css.map +1 -1
  59. package/css/index.css +3 -3
  60. package/css/index.css.map +1 -1
  61. package/css/monorepo.css +3 -3
  62. package/css/monorepo.css.map +1 -1
  63. package/package.json +2 -2
  64. package/scss/_animations.scss +25 -1
  65. package/scss/_mixins.scss +9 -0
  66. package/scss/components/_card.scss +1 -0
  67. package/scss/components/_datacard.scss +23 -0
  68. package/scss/components/_detailcard.scss +77 -0
  69. package/scss/components/_factlistcard.scss +10 -0
  70. package/scss/components/_featurecard.scss +23 -1
  71. package/scss/components/_footer.scss +26 -64
  72. package/scss/components/_languagetoggle.scss +7 -1
  73. package/scss/components/_multilinkcard.scss +57 -1
  74. package/scss/components/_promocard.scss +28 -0
  75. package/scss/components/_scorecard.scss +23 -0
  76. package/scss/components/_socialmedia.scss +43 -35
  77. package/scss/components/_statcard.scss +24 -0
  78. package/scss/components/_textcard.scss +19 -0
  79. package/scss/components/navigation/_nav-complex.scss +16 -161
  80. package/scss/components/navigation/_nav-main.scss +127 -0
  81. package/scss/components/navigation/index.scss +2 -4
  82. package/scss/components/navigation/{_nav-dropdown.scss → internal/_nav-dropdown.scss} +4 -4
  83. package/scss/components/navigation/{_nav-grid.scss → internal/_nav-grid.scss} +4 -4
  84. package/scss/components/navigation/{_nav-menu.scss → internal/_nav-menu.scss} +31 -6
  85. package/scss/components/navigation/internal/_nav-shared.scss +206 -0
  86. package/scss/components/navigation/internal/index.scss +5 -0
  87. package/scss/components/navigation/{mobile → internal/mobile}/_nav-mobile-drawer.scss +4 -4
  88. package/scss/components/navigation/{mobile → internal/mobile}/_nav-mobile-menu.scss +4 -4
  89. package/scss/components/navigation/{mobile → internal/mobile}/_nav-mobile.scss +25 -4
  90. /package/scss/components/navigation/{mobile → internal/mobile}/index.scss +0 -0
@@ -1,4 +1,3 @@
1
- @use "../tokens" as *;
2
1
  @use "../functions" as *;
3
2
  @import "../animations";
4
3
  @import "../mixins";
@@ -8,16 +7,16 @@
8
7
  $default-theme: "light";
9
8
 
10
9
  @mixin get-icon($icon, $theme: $default-theme) {
11
- @include dataurlicon(
12
- $icon,
13
- map-get($color, "socialmedia", $theme, "icon", "color")
14
- );
10
+ @if $theme == "dark" {
11
+ @include icon($icon, var(--ilo-color-white));
12
+ }
13
+
14
+ @if $theme == "light" {
15
+ @include icon($icon, var(--ilo-color-gray-accessible));
16
+ }
15
17
 
16
18
  &:hover {
17
- @include dataurlicon(
18
- $icon,
19
- map-get($color, "socialmedia", $theme, "iconhover", "color")
20
- );
19
+ @include icon($icon, var(--ilo-color-blue));
21
20
  }
22
21
  }
23
22
 
@@ -34,14 +33,12 @@
34
33
  }
35
34
 
36
35
  &--headline {
37
- color: map-get($color, "socialmedia", $default-theme, "headline", "color");
38
- font-family: var(--ilo-fonts-display);
39
- font-weight: map-get($type, "weights", "label");
36
+ color: var(--ilo-color-blue-dark);
40
37
  @include typography("highlight-medium-bold");
41
- @include textmargin("margin-bottom", 28px, "body-small", "display", 0, 0);
38
+ margin-bottom: spacing(7);
42
39
 
43
40
  #{$c}__theme__dark & {
44
- color: map-get($color, "socialmedia", "dark", "headline", "color");
41
+ color: var(--ilo-color-white);
45
42
  }
46
43
  }
47
44
 
@@ -67,10 +64,17 @@
67
64
  overflow: hidden;
68
65
  position: relative;
69
66
 
67
+ &:hover {
68
+ background-color: var(--ilo-color-blue-lighter);
69
+ }
70
+
71
+ #{$c}__theme__dark &:hover {
72
+ background-color: var(--ilo-color-white);
73
+ }
74
+
70
75
  &--icon {
71
76
  background-position: center;
72
77
  background-repeat: no-repeat;
73
-
74
78
  text-indent: -999px;
75
79
  border-radius: 2px;
76
80
  display: inline-block;
@@ -78,26 +82,6 @@
78
82
  width: px-to-rem(24px);
79
83
  transition: all 0.1s ease-in-out;
80
84
 
81
- &:hover {
82
- background-color: map-get(
83
- $color,
84
- "socialmedia",
85
- $default-theme,
86
- "iconhover",
87
- "background"
88
- );
89
- }
90
-
91
- #{$c}__theme__dark &:hover {
92
- background-color: map-get(
93
- $color,
94
- "socialmedia",
95
- "dark",
96
- "iconhover",
97
- "background"
98
- );
99
- }
100
-
101
85
  &__facebook {
102
86
  @include get-icon("social_facebook");
103
87
 
@@ -122,6 +106,22 @@
122
106
  }
123
107
  }
124
108
 
109
+ &__apple_podcasts {
110
+ @include get-icon("social_apple_podcasts");
111
+
112
+ #{$c}__theme__dark & {
113
+ @include get-icon("social_apple_podcasts", "dark");
114
+ }
115
+ }
116
+
117
+ &__spotify {
118
+ @include get-icon("social_spotify");
119
+
120
+ #{$c}__theme__dark & {
121
+ @include get-icon("social_spotify", "dark");
122
+ }
123
+ }
124
+
125
125
  &__youtube {
126
126
  @include get-icon("social_youtube");
127
127
 
@@ -177,6 +177,14 @@
177
177
  @include get-icon("social_wechat", "dark");
178
178
  }
179
179
  }
180
+
181
+ &__rss {
182
+ @include get-icon("social_rss");
183
+
184
+ #{$c}__theme__dark & {
185
+ @include get-icon("social_rss", "dark");
186
+ }
187
+ }
180
188
  }
181
189
  }
182
190
  }
@@ -43,6 +43,11 @@
43
43
  }
44
44
  }
45
45
 
46
+ &#{$self}__loading {
47
+ background-color: var(--ilo-color-gray-base);
48
+ border-bottom-color: var(--ilo-skeleton-element-background-color);
49
+ }
50
+
46
51
  #{$self}--content {
47
52
  display: flex;
48
53
  flex-flow: column;
@@ -51,6 +56,25 @@
51
56
  height: 100%;
52
57
  }
53
58
 
59
+ #{$self}--skeleton--title {
60
+ @include skeleton-element(32px, 70%);
61
+ }
62
+
63
+ #{$self}--skeleton--intro-1 {
64
+ @include skeleton-element(16px, 90%);
65
+ margin-top: spacing(4);
66
+ }
67
+
68
+ #{$self}--skeleton--intro-2 {
69
+ @include skeleton-element(16px, 80%);
70
+ margin-top: spacing(2);
71
+ }
72
+
73
+ #{$self}--skeleton--source {
74
+ @include skeleton-element(10px, 50%);
75
+ margin-top: spacing(8);
76
+ }
77
+
54
78
  #{$self}--title {
55
79
  color: $brand-ilo-dark-blue;
56
80
  @include typography("heading-2");
@@ -50,6 +50,25 @@
50
50
  border-bottom: px-to-rem(3px) solid var(--ilo-color-red);
51
51
  }
52
52
 
53
+ #{$self}--skeleton--eyebrow {
54
+ @include skeleton-element(12px, 20%);
55
+ }
56
+
57
+ #{$self}--skeleton--title {
58
+ @include skeleton-element(14px, 90%);
59
+ margin-top: spacing(4);
60
+ }
61
+
62
+ #{$self}--skeleton--date {
63
+ @include skeleton-element(14px, 100%);
64
+ margin-top: spacing(2);
65
+ }
66
+
67
+ #{$self}--skeleton--profile {
68
+ @include skeleton-element(14px, 80%);
69
+ margin-top: spacing(2);
70
+ }
71
+
53
72
  #{$self}--title {
54
73
  @include typography("heading-4");
55
74
 
@@ -1,15 +1,11 @@
1
1
  @use "../../tokens" as *;
2
2
  @use "../../functions" as *;
3
+ @use "./internal/nav-shared" as *;
3
4
  @import "../../mixins";
4
5
  @import "../../config";
5
6
 
6
7
  .ilo--subsite-nav-complex {
7
- position: relative;
8
- overflow: hidden;
9
-
10
- @include breakpoint("lg", true) {
11
- height: px-to-rem(70px);
12
- }
8
+ @include nav-base;
13
9
 
14
10
  &-bg {
15
11
  &--light {
@@ -22,189 +18,59 @@
22
18
  }
23
19
 
24
20
  &__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
- }
21
+ @include nav-container;
37
22
  }
38
23
 
39
24
  &__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
- }
25
+ @include nav-widgets-bar-content;
50
26
 
51
27
  &-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
- }
28
+ @include nav-widgets-corner(var(--ilo-color-blue));
66
29
  }
67
30
 
68
31
  &-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);
32
+ @include nav-widgets-bar(var(--ilo-color-blue));
76
33
 
77
34
  &__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
- &:focus {
88
- background-color: var(--ilo-color-blue-dark);
89
- }
35
+ @include nav-widgets-link(var(--ilo-color-blue-dark));
90
36
  }
91
37
  }
92
38
 
93
39
  &::after {
94
- content: "";
95
- position: absolute;
96
- top: 0;
97
- left: 100%;
98
- width: 100vw;
99
- height: 100%;
100
40
  background-color: var(--ilo-color-blue);
101
- z-index: 1;
102
-
103
- [dir="rtl"] & {
104
- left: auto;
105
- right: 100%;
106
- }
107
41
  }
108
42
  }
109
43
 
110
44
  &__branding {
111
- display: flex;
112
- justify-content: space-between;
113
- align-items: center;
114
- padding-bottom: spacing(6);
115
-
116
- @include breakpoint("lg", true) {
117
- display: none;
118
- }
45
+ @include nav-branding;
119
46
 
120
47
  &-main {
121
- display: flex;
122
- justify-content: center;
123
- align-items: center;
124
-
125
- &__logo img {
126
- height: 100%;
127
- height: px-to-rem(72px);
128
- width: auto;
129
- }
130
-
131
- &__name {
132
- @include typography("heading-2");
133
- padding-inline-start: spacing(4);
134
- }
48
+ @include nav-branding-main;
135
49
  }
136
50
 
137
51
  &-tag {
138
- display: flex;
139
- flex-direction: column;
140
- text-align: right;
141
-
142
- &__main {
143
- @include typography("heading-4");
144
- }
145
-
146
- &__sub {
147
- @include typography("body-xsmall");
148
- }
52
+ @include nav-branding-tag;
149
53
  }
150
54
  }
151
55
 
152
56
  &__nav {
153
- display: flex;
154
- justify-content: space-between;
155
- align-items: center;
156
- height: px-to-rem(64px);
157
-
158
- @include breakpoint("lg", true) {
159
- height: px-to-rem(70px);
160
- }
57
+ @include nav-core;
161
58
 
162
59
  &-menu {
163
- height: 100%;
164
- @include breakpoint("lg", true) {
165
- display: none;
166
- }
60
+ @include nav-menu;
167
61
  }
168
62
 
169
63
  &-mobile {
170
- justify-content: center;
171
- align-items: center;
172
- display: none;
173
-
174
- @include breakpoint("lg", true) {
175
- display: flex;
176
- }
177
-
178
- &__logo {
179
- padding-inline-end: spacing(4);
180
- height: px-to-rem(38px);
181
-
182
- img {
183
- height: 100%;
184
- width: auto;
185
- }
186
- }
64
+ @include nav-mobile;
187
65
  }
188
66
 
189
67
  &-search {
68
+ @include nav-search;
190
69
  --ilo-subsite_nav_complex-search-color: var(--ilo-color-white);
191
- height: 100%;
192
- display: flex;
193
- align-items: center;
194
- padding-inline: spacing(2);
195
70
  text-decoration: none;
196
71
 
197
- @include breakpoint("lg", true) {
198
- display: none;
199
- }
200
-
201
- display: flex;
202
-
203
72
  &__icon {
204
73
  @include icon("search", var(--ilo-subsite_nav_complex-search-color));
205
- width: px-to-rem(32px);
206
- height: px-to-rem(32px);
207
- cursor: pointer;
208
74
  }
209
75
 
210
76
  &:hover,
@@ -215,26 +81,15 @@
215
81
  }
216
82
 
217
83
  &-burger {
218
- display: none;
219
-
220
- @include breakpoint("lg", true) {
221
- display: flex;
222
- }
223
-
84
+ @include nav-burger;
224
85
  --ilo-subsite_nav_complex-burger-color: var(--ilo-color-white);
225
- margin-block: px-to-rem(20px);
226
- align-items: center;
227
- border: none;
228
- cursor: pointer;
229
86
 
230
87
  &__icon {
231
- width: px-to-rem(32px);
232
- height: px-to-rem(32px);
233
88
  @include icon("burger", var(--ilo-subsite_nav_complex-burger-color));
234
89
  }
235
90
 
236
91
  &:hover {
237
- --ilo-subsite-nav-burger-icon: var(--ilo-color-blue);
92
+ --ilo-subsite_nav_complex-burger-color: var(--ilo-color-blue);
238
93
  background-color: var(--ilo-color-white);
239
94
  }
240
95
  }
@@ -0,0 +1,127 @@
1
+ @use "../../tokens" as *;
2
+ @use "../../functions" as *;
3
+ @use "./internal/nav-shared" as *;
4
+ @import "../../mixins";
5
+ @import "../../config";
6
+
7
+ .ilo--main-nav {
8
+ @include nav-base;
9
+
10
+ &-bg {
11
+ &--dark {
12
+ background-color: var(--ilo-color-blue);
13
+ }
14
+
15
+ &--darker {
16
+ background-color: var(--ilo-color-blue-dark);
17
+
18
+ @include breakpoint("lg", true) {
19
+ background-color: var(--ilo-color-blue);
20
+ }
21
+ }
22
+ }
23
+
24
+ &__container {
25
+ @include nav-container;
26
+ }
27
+
28
+ &__widgets {
29
+ @include nav-widgets-bar-content;
30
+ &::after {
31
+ background-color: var(--ilo-color-blue-dark);
32
+ }
33
+
34
+ &-bar-corner {
35
+ @include nav-widgets-corner(var(--ilo-color-blue-dark));
36
+ }
37
+
38
+ &-bar {
39
+ @include nav-widgets-bar(var(--ilo-color-blue-dark));
40
+
41
+ &__link {
42
+ @include nav-widgets-link(var(--ilo-color-blue-dark));
43
+ }
44
+ }
45
+ }
46
+
47
+ &__branding {
48
+ @include nav-branding;
49
+
50
+ &-main {
51
+ @include nav-branding-main;
52
+ }
53
+
54
+ &-tag {
55
+ @include nav-branding-tag;
56
+
57
+ &__main {
58
+ color: white;
59
+ }
60
+
61
+ &__sub {
62
+ color: var(--ilo-color-blue-light);
63
+ }
64
+ }
65
+ }
66
+
67
+ &__nav {
68
+ @include nav-core;
69
+
70
+ &-menu {
71
+ @include nav-menu;
72
+ }
73
+
74
+ &-mobile {
75
+ @include nav-mobile;
76
+ }
77
+
78
+ &-search {
79
+ --ilo-subsite_nav_complex-search-color: var(--ilo-color-white);
80
+ @include nav-search;
81
+ border: none;
82
+
83
+ &__icon {
84
+ @include icon("search", var(--ilo-subsite_nav_complex-search-color));
85
+ }
86
+
87
+ &:hover {
88
+ --ilo-subsite_nav_complex-search-color: var(--ilo-color-blue);
89
+ background-color: var(--ilo-color-white);
90
+ }
91
+ }
92
+
93
+ &-burger {
94
+ @include nav-burger;
95
+
96
+ --ilo-subsite_nav_complex-burger-color: var(--ilo-color-white);
97
+
98
+ &__icon {
99
+ @include icon("burger", var(--ilo-subsite_nav_complex-burger-color));
100
+ }
101
+
102
+ &:hover {
103
+ --ilo-subsite-nav-burger-icon: var(--ilo-color-blue);
104
+ background-color: var(--ilo-color-white);
105
+ }
106
+ }
107
+
108
+ &-search-dropdown {
109
+ display: flex;
110
+ justify-content: center;
111
+ align-items: center;
112
+ form {
113
+ width: px-to-rem(620px);
114
+ }
115
+
116
+ .ilo--form-control,
117
+ .ilo--fieldset {
118
+ width: 100%;
119
+ }
120
+
121
+ .ilo--form-control {
122
+ padding-top: spacing(20);
123
+ padding-bottom: spacing(22);
124
+ }
125
+ }
126
+ }
127
+ }
@@ -1,6 +1,4 @@
1
- @use "nav-menu";
1
+ @use "internal";
2
2
  @use "nav-compact";
3
3
  @use "nav-complex";
4
- @use "nav-dropdown";
5
- @use "nav-grid";
6
- @use "mobile";
4
+ @use "nav-main";
@@ -1,7 +1,7 @@
1
- @use "../../tokens" as *;
2
- @use "../../functions" as *;
3
- @import "../../mixins";
4
- @import "../../config";
1
+ @use "../../../tokens" as *;
2
+ @use "../../../functions" as *;
3
+ @import "../../../mixins";
4
+ @import "../../../config";
5
5
 
6
6
  .ilo--nav-dropdown {
7
7
  position: absolute;
@@ -1,7 +1,7 @@
1
- @use "../../tokens" as *;
2
- @use "../../functions" as *;
3
- @import "../../mixins";
4
- @import "../../config";
1
+ @use "../../../tokens" as *;
2
+ @use "../../../functions" as *;
3
+ @import "../../../mixins";
4
+ @import "../../../config";
5
5
 
6
6
  .ilo--nav-menu-grid {
7
7
  display: flex;
@@ -1,13 +1,14 @@
1
- @use "../../tokens" as *;
2
- @use "../../functions" as *;
3
- @import "../../mixins";
4
- @import "../../config";
5
- @import "../../animations";
1
+ @use "../../../tokens" as *;
2
+ @use "../../../functions" as *;
3
+ @import "../../../mixins";
4
+ @import "../../../config";
5
+ @import "../../../animations";
6
6
 
7
7
  .ilo--nav-menu {
8
8
  display: flex;
9
9
  align-items: center;
10
10
  gap: spacing(12);
11
+ $self: &;
11
12
 
12
13
  @include breakpoint("xl", true) {
13
14
  gap: spacing(6);
@@ -46,6 +47,18 @@
46
47
  }
47
48
  }
48
49
 
50
+ &--light {
51
+ #{$self}__link {
52
+ &--active,
53
+ &:hover,
54
+ &:focus,
55
+ &:active {
56
+ color: var(--ilo-color-blue);
57
+ background-color: var(--ilo-color-white);
58
+ }
59
+ }
60
+ }
61
+
49
62
  &__more {
50
63
  @include globaltransition("background-color, border-color");
51
64
 
@@ -75,11 +88,23 @@
75
88
 
76
89
  &--open,
77
90
  &:hover,
78
- &:focus,
79
91
  &:active {
80
92
  outline: none;
81
93
  border-color: var(--ilo-color-blue-dark);
82
94
  background-color: var(--ilo-color-blue-dark);
83
95
  }
84
96
  }
97
+
98
+ &--light {
99
+ #{$self}__more {
100
+ &--open,
101
+ &:hover,
102
+ &:active {
103
+ --ilo-nav_menu-icon-color: var(--ilo-color-blue);
104
+ color: var(--ilo-color-blue);
105
+ border-color: var(--ilo-color-white);
106
+ background-color: var(--ilo-color-white);
107
+ }
108
+ }
109
+ }
85
110
  }