@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,138 @@
1
+ @use "../tokens" as *;
2
+ @import "../mixins";
3
+
4
+ .ilo--profile {
5
+ max-width: 343px;
6
+ position: relative;
7
+
8
+ &--avatar {
9
+ border-radius: 50%;
10
+ float: left;
11
+ width: 18.65%;
12
+ }
13
+
14
+ &--contents {
15
+ .id {
16
+ margin-left: calc(18.65% + 11px);
17
+ padding-top: 5px;
18
+
19
+ &:first-of-type {
20
+ padding-bottom: 1px;
21
+ }
22
+
23
+ &:nth-of-type(2):last-of-type {
24
+ padding-top: 0;
25
+ }
26
+ }
27
+
28
+ .id:first-of-type:last-of-type,
29
+ .id:nth-of-type(2):last-of-type {
30
+ border-bottom: 2px solid $color-base-neutrals-lighter;
31
+ padding-bottom: 11px;
32
+ }
33
+
34
+ .id:first-of-type:last-of-type {
35
+ padding-top: 14px;
36
+ }
37
+ }
38
+
39
+ &--name {
40
+ display: block;
41
+ font-family: $fonts-display;
42
+ font-weight: map-get($type, "weights", "label");
43
+ margin-left: 11px;
44
+ @include font-styles("body-xs");
45
+ }
46
+
47
+ &--role {
48
+ display: block;
49
+ font-family: $fonts-copy;
50
+ margin-left: 11px;
51
+ @include font-styles("body-xss");
52
+ }
53
+
54
+ &--description {
55
+ clear: both;
56
+ font-family: $fonts-copy;
57
+ padding-top: 22px;
58
+ @include font-styles("body-xss");
59
+ }
60
+
61
+ &--link {
62
+ clear: both;
63
+ color: map-get($color, "link", "text", "default");
64
+ display: block;
65
+ font-family: $fonts-display;
66
+ font-weight: map-get($type, "weights", "section");
67
+ text-decoration: none;
68
+ @include font-styles("body-xs");
69
+
70
+ span {
71
+ background-position: calc(100% - 10px) center;
72
+ background-repeat: no-repeat;
73
+ background-size: 24px 24px;
74
+ padding-right: 32px;
75
+ @include dataurlicon("arrowright", $color-link-text-default);
76
+ }
77
+
78
+ &:visited {
79
+ color: map-get($color, "link", "text", "visited");
80
+
81
+ span {
82
+ @include dataurlicon("arrowright", $color-link-text-visited);
83
+ }
84
+ }
85
+
86
+ &:active {
87
+ color: map-get($color, "link", "text", "active");
88
+ outline: none;
89
+
90
+ span {
91
+ @include dataurlicon("arrowright", $color-link-text-active);
92
+ background-color: map-get($color, "link", "background", "active");
93
+ }
94
+ }
95
+
96
+ &:hover,
97
+ &:focus {
98
+ color: map-get($color, "link", "text", "hover");
99
+ outline: none;
100
+
101
+ span {
102
+ @include dataurlicon("arrowright", $color-link-text-hover);
103
+ }
104
+ }
105
+ }
106
+
107
+ .ilo--profile--description + .ilo--profile--link {
108
+ margin-top: 28px;
109
+ }
110
+
111
+ .ilo--profile--role + .ilo--profile--link {
112
+ margin-top: 22px;
113
+ }
114
+
115
+ .ilo--profile--name + .ilo--profile--link {
116
+ margin-top: 38px;
117
+ }
118
+
119
+ @include breakpoint("medium") {
120
+ &--name {
121
+ @include font-styles("body-small");
122
+ }
123
+
124
+ &--role {
125
+ font-family: $fonts-copy;
126
+ @include font-styles("body-xs");
127
+ }
128
+
129
+ &--description {
130
+ font-family: $fonts-copy;
131
+ @include font-styles("body-xs");
132
+ }
133
+
134
+ &--link {
135
+ @include font-styles("body-small");
136
+ }
137
+ }
138
+ }
@@ -0,0 +1,121 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+
5
+ .ilo--radio {
6
+ -webkit-appearance: none;
7
+ -moz-appearance: none;
8
+ border: none;
9
+ display: grid;
10
+ height: px-to-rem(24px);
11
+ margin: 0;
12
+ order: 1;
13
+ position: relative;
14
+ place-content: center;
15
+ width: px-to-rem(24px);
16
+
17
+ &:before {
18
+ content: "";
19
+ background-color: $color-base-neutrals-light;
20
+ border: px-to-rem(4px) solid $color-base-neutrals-light;
21
+ border-radius: 50%;
22
+ height: px-to-rem(18px);
23
+ left: px-to-rem(3px);
24
+ position: absolute;
25
+ top: px-to-rem(3px);
26
+ width: px-to-rem(18px);
27
+ z-index: 1;
28
+ }
29
+
30
+ &:after {
31
+ content: "";
32
+ background-color: $color-base-neutrals-light;
33
+ border-radius: 50%;
34
+ height: px-to-rem(24px);
35
+ left: 0;
36
+ position: absolute;
37
+ top: 0;
38
+ width: px-to-rem(24px);
39
+ z-index: 0;
40
+ }
41
+
42
+ &:checked {
43
+ &:before {
44
+ background-color: $color-base-blue-light;
45
+ border-color: $color-base-blue-dark;
46
+ }
47
+
48
+ &:after {
49
+ background-color: $color-base-blue-dark;
50
+ }
51
+ }
52
+
53
+ &:hover {
54
+ cursor: pointer;
55
+
56
+ &:after {
57
+ background-color: $color-base-yellow;
58
+ }
59
+
60
+ &:checked {
61
+ &:before {
62
+ border-color: $color-base-blue-dark;
63
+ }
64
+ }
65
+ }
66
+
67
+ &:focus {
68
+ &:after {
69
+ background-color: $color-base-yellow;
70
+ }
71
+
72
+ &:checked {
73
+ &:before {
74
+ border-color: $color-base-blue-dark;
75
+ }
76
+ }
77
+
78
+ outline: none;
79
+ }
80
+
81
+ &:disabled {
82
+ opacity: 45%;
83
+ pointer-events: none;
84
+ }
85
+
86
+ &:invalid,
87
+ &.error,
88
+ .error & {
89
+ &:after {
90
+ background-color: $color-base-red-medium;
91
+ }
92
+
93
+ &:checked {
94
+ &:before {
95
+ border-color: $color-base-blue-dark;
96
+ }
97
+ }
98
+ }
99
+ }
100
+
101
+ .ilo--fieldset--input--radio {
102
+ align-items: center;
103
+ clear: both;
104
+ display: flex;
105
+ flex-wrap: wrap;
106
+ justify-content: flex-start;
107
+ margin-bottom: px-to-rem(22px);
108
+
109
+ .ilo--fieldset--label {
110
+ font-weight: 400;
111
+ margin-left: px-to-rem($spacing-padding-1);
112
+ margin-top: 2px;
113
+ order: 2;
114
+ }
115
+
116
+ .ilo--fieldset--error,
117
+ .ilo--fieldset--helper {
118
+ order: 3;
119
+ width: 100%;
120
+ }
121
+ }
@@ -0,0 +1,53 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+
5
+ .ilo--read-more {
6
+ &--button {
7
+ background: map-get($color, "ux", "readmore", "default", "background");
8
+ @include bordervalues("readmore", "ux");
9
+ color: $color-ux-labels-actionable;
10
+ font-family: $fonts-display;
11
+ height: px-to-rem(map-get($spacing, "ux", "readmore", "default", "height"));
12
+ @include spacingvalues("margin", "readmore", "ux");
13
+ @include spacingvalues("padding", "readmore", "ux");
14
+ position: relative;
15
+ text-align: left;
16
+ width: $spacing-ux-readmore-default-width;
17
+ @include font-styles("label-medium");
18
+
19
+ &:after {
20
+ background-repeat: no-repeat;
21
+ content: "";
22
+ display: inline-block;
23
+ height: px-to-rem(24px);
24
+ position: absolute;
25
+ right: px-to-rem(2px);
26
+ top: 50%;
27
+ transform: translateY(-50%);
28
+ transform-origin: center center;
29
+ width: px-to-rem(24px);
30
+ @include dataurlicon("arrow", $color-ux-labels-actionable);
31
+ }
32
+
33
+ &:hover {
34
+ background: map-get($color, "ux", "readmore", "hover", "background");
35
+ @include bordervalues("readmore", "ux", "hover");
36
+ color: $color-ux-labels-hover;
37
+ cursor: pointer;
38
+ transition: background 150ms linear, border 150ms linear,
39
+ color 150ms linear;
40
+
41
+ &:after {
42
+ @include dataurlicon("arrow", $color-ux-labels-hover);
43
+ }
44
+ }
45
+
46
+ &--open {
47
+ &:after {
48
+ transform: translateY(-50%) rotateX(180deg);
49
+ transform-origin: center center;
50
+ }
51
+ }
52
+ }
53
+ }
@@ -0,0 +1,390 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+
5
+ .ilo--richtext {
6
+ font-family: $fonts-copy;
7
+ font-weight: 400;
8
+ @include font-styles("body-small");
9
+
10
+ a {
11
+ @include linkstyles();
12
+ }
13
+
14
+ img {
15
+ width: 100%;
16
+ }
17
+
18
+ p {
19
+ margin-bottom: px-to-rem(map-get($spacing, "padding-3"));
20
+ }
21
+
22
+ p + figure,
23
+ p + img,
24
+ p + blockquote,
25
+ ul + img,
26
+ ol + img,
27
+ dl + img,
28
+ p + hr,
29
+ ul + hr,
30
+ ol + hr,
31
+ dl + hr,
32
+ blockquote + hr {
33
+ @include textmargin(
34
+ "margin-top",
35
+ map-get($spacing, "padding-7"),
36
+ "body-small",
37
+ "copy",
38
+ 0,
39
+ 0
40
+ );
41
+ }
42
+
43
+ figure {
44
+ width: 100%;
45
+ margin-bottom: px-to-rem(map-get($spacing, "padding-7"));
46
+ }
47
+
48
+ figcaption {
49
+ border-left: 3px solid #b8c4cc;
50
+ color: $color-font-caption;
51
+ font-weight: 400;
52
+ margin-top: px-to-rem(map-get($spacing, "padding-2"));
53
+ padding-left: px-to-rem(map-get($spacing, "padding-1"));
54
+ @include font-styles("image-caption");
55
+ }
56
+
57
+ em,
58
+ i {
59
+ font-style: italic;
60
+ }
61
+
62
+ strong,
63
+ b {
64
+ font-weight: 700;
65
+ }
66
+
67
+ hr {
68
+ background-color: $color-ux-horizontal-rule-default;
69
+ border: none;
70
+ height: px-to-rem(map-get($spacing, "horizontal-rule"));
71
+ margin-bottom: px-to-rem(map-get($spacing, "padding-7"));
72
+ }
73
+
74
+ h1,
75
+ h2,
76
+ h3,
77
+ h4,
78
+ h5,
79
+ h6 {
80
+ font-family: $fonts-display;
81
+ font-weight: 700;
82
+ margin-top: px-to-rem(map-get($spacing, "padding-7"));
83
+ }
84
+
85
+ h1 {
86
+ @include textmargin(
87
+ "margin-bottom",
88
+ map-get($spacing, "padding-4"),
89
+ "headline-2",
90
+ "display",
91
+ "body-small",
92
+ "copy"
93
+ );
94
+ @include font-styles("headline-2");
95
+ }
96
+
97
+ h2 {
98
+ @include textmargin(
99
+ "margin-bottom",
100
+ map-get($spacing, "padding-4"),
101
+ "headline-3",
102
+ "display",
103
+ "body-small",
104
+ "copy"
105
+ );
106
+ @include font-styles("headline-3");
107
+ }
108
+
109
+ h3 {
110
+ @include textmargin(
111
+ "margin-bottom",
112
+ map-get($spacing, "padding-3"),
113
+ "headline-4",
114
+ "display",
115
+ "body-small",
116
+ "copy"
117
+ );
118
+ @include font-styles("headline-4");
119
+ }
120
+
121
+ h4 {
122
+ @include textmargin(
123
+ "margin-bottom",
124
+ map-get($spacing, "padding-3"),
125
+ "headline-5",
126
+ "display",
127
+ "body-small",
128
+ "copy"
129
+ );
130
+ @include font-styles("headline-5");
131
+ }
132
+
133
+ h5 {
134
+ @include textmargin(
135
+ "margin-bottom",
136
+ map-get($spacing, "padding-3"),
137
+ "headline-6",
138
+ "display",
139
+ "body-small",
140
+ "copy"
141
+ );
142
+ @include font-styles("headline-6");
143
+ }
144
+
145
+ h6 {
146
+ @include textmargin(
147
+ "margin-bottom",
148
+ map-get($spacing, "padding-3"),
149
+ "headline-6",
150
+ "display",
151
+ "body-small",
152
+ "copy"
153
+ );
154
+ @include font-styles("headline-6");
155
+ }
156
+
157
+ ul,
158
+ ol {
159
+ li {
160
+ &::before {
161
+ content: "";
162
+ display: inline-block;
163
+ height: px-to-rem(14px);
164
+ left: px-to-rem(-12px);
165
+ position: absolute;
166
+ top: 6px;
167
+ width: px-to-rem(12px);
168
+ @include dataurlicon("listarrow");
169
+ }
170
+ margin-bottom: px-to-rem(map-get($spacing, "padding-4"));
171
+ margin-left: px-to-rem(12px);
172
+ padding-left: px-to-rem(12px);
173
+ position: relative;
174
+ }
175
+ margin-bottom: px-to-rem(map-get($spacing, "padding-4"));
176
+ }
177
+
178
+ blockquote {
179
+ background-color: $color-ux-background-highlight;
180
+ background-position: right top;
181
+ background-repeat: no-repeat;
182
+ background-size: px-to-rem(72px) px-to-rem(40px);
183
+ display: block;
184
+ margin: px-to-rem(map-get($spacing, "padding-3")) 0
185
+ px-to-rem(map-get($spacing, "padding-5")) 0;
186
+ padding: px-to-rem(54px) 0 px-to-rem(34px)
187
+ px-to-rem(map-get($spacing, "padding-4"));
188
+ position: relative;
189
+ width: 100%;
190
+ @include dataurlicon("triangle", $color-ux-background-default);
191
+
192
+ p {
193
+ color: $color-font-blockquote;
194
+ font-weight: 300;
195
+ margin-bottom: px-to-rem(map-get($spacing, "padding-3"));
196
+ padding: 0 px-to-rem(map-get($spacing, "padding-6")) 0 0;
197
+ position: relative;
198
+ @include font-styles("pull-quote-sm");
199
+
200
+ &:after {
201
+ background-repeat: no-repeat;
202
+ bottom: 0;
203
+ content: "";
204
+ display: inline-block;
205
+ height: px-to-rem(20px);
206
+ position: absolute;
207
+ right: 0;
208
+ transform: scaleX(-1);
209
+ width: px-to-rem(26.5px);
210
+ @include dataurlicon("quote", $color-font-blockquote);
211
+ }
212
+ }
213
+
214
+ cite {
215
+ color: $color-font-cite;
216
+ font-weight: 400;
217
+ @include font-styles("pull-quote-cite");
218
+ }
219
+
220
+ &:before {
221
+ background-repeat: no-repeat;
222
+ content: "";
223
+ display: inline-block;
224
+ height: px-to-rem(40px);
225
+ left: 0;
226
+ position: absolute;
227
+ width: px-to-rem(53px);
228
+ top: 0;
229
+ @include dataurlicon("quote", $color-font-blockquote);
230
+ }
231
+ }
232
+
233
+ @include breakpoint("medium") {
234
+ @include font-styles("base");
235
+
236
+ h1,
237
+ h2,
238
+ h3,
239
+ h4,
240
+ h5,
241
+ h6 {
242
+ margin-top: px-to-rem(map-get($spacing, "padding-8"));
243
+ }
244
+
245
+ h1 {
246
+ @include textmargin(
247
+ "margin-bottom",
248
+ map-get($spacing, "padding-5"),
249
+ "headline-1",
250
+ "display",
251
+ "body-large",
252
+ "copy"
253
+ );
254
+ @include font-styles("headline-1");
255
+ }
256
+
257
+ h2 {
258
+ @include textmargin(
259
+ "margin-bottom",
260
+ map-get($spacing, "padding-5"),
261
+ "headline-2",
262
+ "display",
263
+ "body-large",
264
+ "copy"
265
+ );
266
+ @include font-styles("headline-2");
267
+ }
268
+
269
+ h3 {
270
+ @include textmargin(
271
+ "margin-bottom",
272
+ map-get($spacing, "padding-4"),
273
+ "headline-3",
274
+ "display",
275
+ "body-large",
276
+ "copy"
277
+ );
278
+ @include font-styles("headline-3");
279
+ }
280
+
281
+ h4 {
282
+ @include textmargin(
283
+ "margin-bottom",
284
+ map-get($spacing, "padding-4"),
285
+ "headline-4",
286
+ "display",
287
+ "body-large",
288
+ "copy"
289
+ );
290
+ @include font-styles("headline-4");
291
+ }
292
+
293
+ h5 {
294
+ @include textmargin(
295
+ "margin-bottom",
296
+ map-get($spacing, "padding-4"),
297
+ "headline-5",
298
+ "display",
299
+ "body-large",
300
+ "copy"
301
+ );
302
+ @include font-styles("headline-5");
303
+ }
304
+
305
+ h6 {
306
+ @include textmargin(
307
+ "margin-bottom",
308
+ map-get($spacing, "padding-4"),
309
+ "headline-5",
310
+ "display",
311
+ "body-large",
312
+ "copy"
313
+ );
314
+ @include font-styles("headline-5");
315
+ }
316
+
317
+ p {
318
+ @include textmargin(
319
+ "margin-bottom",
320
+ map-get($spacing, "padding-3"),
321
+ "body-large",
322
+ "copy",
323
+ "body-large",
324
+ "copy"
325
+ );
326
+ }
327
+
328
+ p + figure,
329
+ p + img,
330
+ p + blockquote,
331
+ ul + img,
332
+ ol + img,
333
+ dl + img,
334
+ p + hr,
335
+ ul + hr,
336
+ ol + hr,
337
+ dl + hr,
338
+ blockquote + hr {
339
+ @include textmargin(
340
+ "margin-top",
341
+ map-get($spacing, "padding-8"),
342
+ "body-large",
343
+ "copy",
344
+ 0,
345
+ 0
346
+ );
347
+ }
348
+
349
+ hr {
350
+ margin-bottom: px-to-rem(map-get($spacing, "padding-8"));
351
+ }
352
+
353
+ figure {
354
+ width: 100%;
355
+ @include textmargin(
356
+ "margin-bottom",
357
+ map-get($spacing, "padding-8"),
358
+ "body-large",
359
+ "copy",
360
+ 0,
361
+ 0
362
+ );
363
+ }
364
+
365
+ blockquote {
366
+ background-size: px-to-rem(86px) px-to-rem(48px);
367
+ margin: px-to-rem(map-get($spacing, "padding-4")) 0
368
+ px-to-rem(map-get($spacing, "padding-8")) 0;
369
+ padding: px-to-rem(62px) 0 px-to-rem(map-get($spacing, "padding-6"))
370
+ px-to-rem(map-get($spacing, "padding-6"));
371
+
372
+ p {
373
+ margin-bottom: px-to-rem(map-get($spacing, "padding-3"));
374
+ padding: 0 px-to-rem(map-get($spacing, "padding-6")) 0 0;
375
+ position: relative;
376
+ @include font-styles("pull-quote-lg");
377
+
378
+ &:after {
379
+ height: px-to-rem(24px);
380
+ width: px-to-rem(32px);
381
+ }
382
+ }
383
+
384
+ &:before {
385
+ height: px-to-rem(48px);
386
+ width: px-to-rem(64px);
387
+ }
388
+ }
389
+ }
390
+ }