@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,79 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+
5
+ .ilo--list {
6
+ &--ordered {
7
+ list-style: decimal;
8
+ }
9
+
10
+ &--unordered {
11
+ list-style: initial;
12
+ list-style-type: disclosure-closed;
13
+ }
14
+
15
+ &--unstyled {
16
+ list-style: none;
17
+
18
+ .ilo--list__item {
19
+ margin-left: 0;
20
+ padding-left: 0;
21
+ }
22
+ }
23
+
24
+ &--horizontal {
25
+ align-items: center;
26
+ display: flex;
27
+ flex-wrap: wrap;
28
+ list-style: none;
29
+
30
+ .ilo--list__title {
31
+ margin-bottom: px-to-rem(map-get($spacing, "base"));
32
+ margin-right: px-to-rem(map-get($spacing, "ui-padding-xxl") - 3px);
33
+ }
34
+
35
+ .ilo--list__item {
36
+ margin-bottom: px-to-rem(map-get($spacing, "base"));
37
+ margin-left: 0;
38
+ margin-right: px-to-rem(map-get($spacing, "ui-padding-xxl") - 3px);
39
+ padding-left: 0;
40
+ }
41
+ }
42
+
43
+ &__title {
44
+ @include font-styles("headline-5");
45
+
46
+ font-family: $fonts-display;
47
+ font-weight: 700;
48
+ @include textmargin(
49
+ "margin-bottom",
50
+ map-get($spacing, "ui-padding-xxl"),
51
+ "headline-5",
52
+ "display",
53
+ "base",
54
+ "copy"
55
+ );
56
+ }
57
+
58
+ &__item {
59
+ @include font-styles("base");
60
+
61
+ font-family: $fonts-copy;
62
+ @include textmargin(
63
+ "margin-bottom",
64
+ map-get($spacing, "ui-padding-lg"),
65
+ "base",
66
+ "copy",
67
+ 0,
68
+ 0
69
+ );
70
+ margin-left: px-to-rem(map-get($spacing, "ui-padding-lg"));
71
+ padding-left: px-to-rem(map-get($spacing, "base") - 2px);
72
+
73
+ b,
74
+ strong {
75
+ font-weight: 700;
76
+ letter-spacing: $type-label-small-letter-spacing;
77
+ }
78
+ }
79
+ }
@@ -0,0 +1,93 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+ @import "../animations";
5
+
6
+ .ilo--loading {
7
+ align-items: center;
8
+ display: flex;
9
+ justify-content: center;
10
+ position: relative;
11
+
12
+ &--large {
13
+ .ilo--loading--copy {
14
+ @include isVisuallyHidden();
15
+ }
16
+
17
+ &.ilo--loading--loading {
18
+ &:before {
19
+ animation: spin 1.5s linear infinite;
20
+ background-image: url("data:image/svg+xml,%3Csvg data-name='Layer 1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 108 108'%3E%3Cpath d='M102 54a48 48 0 1 0-19.79 38.83l-4.65-6.4A40.09 40.09 0 1 1 94.08 54Z' style='fill:%23b8c4cc'/%3E%3Cpath d='m98.41 75.18 9.5-17.18h-19Z' style='fill:%231e2dbe'/%3E%3C/svg%3E");
21
+ background-position: center;
22
+ background-repeat: no-repeat;
23
+ background-size: contain;
24
+ content: "";
25
+ display: block;
26
+ height: px-to-rem(107.5px);
27
+ width: px-to-rem(107.5px);
28
+ }
29
+ }
30
+
31
+ &.ilo--loading--loaded {
32
+ &:before {
33
+ background-image: url("data:image/svg+xml,%3Csvg width='97' height='96' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.237 48c0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48-48-21.49-48-48Z' fill='%23EDF0F2'/%3E%3Cpath d='M20.237 48c0-15.464 12.536-28 28-28 15.463 0 28 12.536 28 28s-12.536 28-28 28-28-12.536-28-28Z' fill='%231E2DBE'/%3E%3Cpath d='m44.037 50.8-5.6-5.6-4.2 4.2 9.8 9.8 18.2-18.2-4.2-4.2-14 14Z' fill='%23fff'/%3E%3C/svg%3E");
34
+ background-position: center;
35
+ background-repeat: no-repeat;
36
+ background-size: contain;
37
+ content: "";
38
+ display: block;
39
+ height: px-to-rem($spacing-padding-12);
40
+ width: px-to-rem($spacing-padding-12);
41
+ }
42
+ }
43
+ }
44
+
45
+ &--small {
46
+ .ilo--loading--copy {
47
+ color: $color-ux-labels-default;
48
+ font-family: $fonts-copy;
49
+ font-weight: 400;
50
+ @include font-styles("label-small");
51
+ }
52
+
53
+ &.ilo--loading--idle {
54
+ .ilo--loading--copy {
55
+ @include isVisuallyHidden();
56
+ }
57
+ }
58
+
59
+ &.ilo--loading--loading {
60
+ &:before {
61
+ animation: spin 1.5s linear infinite;
62
+ background-image: url("data:image/svg+xml,%3Csvg data-name='Layer 1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 108 108'%3E%3Cpath d='M102 54a48 48 0 1 0-19.79 38.83l-4.65-6.4A40.09 40.09 0 1 1 94.08 54Z' style='fill:%23b8c4cc'/%3E%3Cpath d='m98.41 75.18 9.5-17.18h-19Z' style='fill:%231e2dbe'/%3E%3C/svg%3E");
63
+ background-position: center;
64
+ background-repeat: no-repeat;
65
+ background-size: contain;
66
+ content: "";
67
+ display: block;
68
+ height: px-to-rem($spacing-padding-3);
69
+ margin-right: px-to-rem($spacing-padding-1-5);
70
+ width: px-to-rem($spacing-padding-3);
71
+ }
72
+ }
73
+
74
+ &.ilo--loading--loaded {
75
+ &:before {
76
+ background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 12C0 5.373 5.373 0 12 0s12 5.373 12 12-5.373 12-12 12S0 18.627 0 12Z' fill='%231E2DBE'/%3E%3Cpath d='m10.2 13.2-2.4-2.4L6 12.6l4.2 4.2L18 9l-1.8-1.8-6 6Z' fill='%23fff'/%3E%3C/svg%3E");
77
+ background-position: center;
78
+ background-repeat: no-repeat;
79
+ background-size: contain;
80
+ content: "";
81
+ display: block;
82
+ height: px-to-rem($spacing-padding-3);
83
+ margin-right: px-to-rem($spacing-padding-1-5);
84
+ width: px-to-rem($spacing-padding-3);
85
+ }
86
+ }
87
+ }
88
+
89
+ &.storybook {
90
+ height: 400px;
91
+ width: 100%;
92
+ }
93
+ }
@@ -0,0 +1,84 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+ @import "../animations";
5
+
6
+ .ilo--modal {
7
+ &--wrapper {
8
+ display: none;
9
+
10
+ & > * {
11
+ opacity: 0;
12
+ }
13
+ }
14
+
15
+ &.show {
16
+ .ilo--modal--wrapper {
17
+ display: block;
18
+ height: 100vh;
19
+ left: 0;
20
+ position: fixed;
21
+ top: 0;
22
+ width: 100vw;
23
+ z-index: 10001;
24
+ }
25
+
26
+ &.fadein {
27
+ .ilo--modal--wrapper {
28
+ & > * {
29
+ opacity: 1;
30
+ transition: opacity 1.5s ease-out 125ms;
31
+ }
32
+ }
33
+ }
34
+ }
35
+
36
+ &--background {
37
+ background-color: rgba(0, 0, 0, 0.85);
38
+ height: 100%;
39
+ left: 0;
40
+ position: absolute;
41
+ top: 0;
42
+ width: 100%;
43
+ z-index: 10002;
44
+ }
45
+
46
+ &--contents {
47
+ background-color: $color-base-neutrals-white;
48
+ left: 0;
49
+ position: absolute;
50
+ margin: 0 4.2%;
51
+ max-height: 96%;
52
+ overflow: scroll;
53
+ top: 50%;
54
+ transform: translateY(-50%);
55
+ width: 91.4%;
56
+ z-index: 10003;
57
+ }
58
+
59
+ .modal--close {
60
+ right: 0;
61
+ position: absolute;
62
+ top: 0;
63
+ z-index: 10004;
64
+ }
65
+
66
+ @include breakpoint("medium") {
67
+ &--contents {
68
+ margin: 0 23.2%;
69
+ width: 53.58%;
70
+ }
71
+ }
72
+
73
+ @include breakpoint("large") {
74
+ &--contents {
75
+ margin: 0 18.05%;
76
+ width: 63.888%;
77
+ }
78
+ }
79
+
80
+ &.storybook {
81
+ height: 400px;
82
+ width: 100%;
83
+ }
84
+ }
@@ -0,0 +1,162 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+ @import "../animations";
5
+
6
+ .ilo--notification {
7
+ background-color: $color-ux-notification-background;
8
+ box-shadow: 0px 0.8px 1.6px rgba(30, 45, 190, 0.038),
9
+ 0px 4px 8px rgba(30, 45, 190, 0.054), 0px 10px 20px rgba(30, 45, 190, 0.08),
10
+ 0px -4px 16px rgba(30, 45, 190, 0.054);
11
+ border-radius: 2px;
12
+ color: $color-ux-notification-text;
13
+ position: relative;
14
+
15
+ &--dialog {
16
+ max-width: 340px;
17
+ width: 100%;
18
+
19
+ @include breakpoint("medium") {
20
+ max-width: 490px;
21
+ }
22
+
23
+ .ilo--notification--content {
24
+ padding: calc(px-to-rem($spacing-padding-3) + 2px)
25
+ px-to-rem($spacing-padding-3);
26
+ }
27
+ }
28
+
29
+ &--inline {
30
+ width: 100%;
31
+
32
+ .ilo--notification--content {
33
+ align-items: center;
34
+ display: flex;
35
+ justify-items: space-between;
36
+ padding: px-to-rem(14px) px-to-rem($spacing-padding-3);
37
+ }
38
+ }
39
+
40
+ &--content {
41
+ margin-left: px-to-rem($spacing-padding-5);
42
+ position: relative;
43
+ width: calc(100% - 40px);
44
+
45
+ &:before {
46
+ background-position: center $spacing-padding-3;
47
+ background-repeat: no-repeat;
48
+ background-size: px-to-rem($spacing-padding-2);
49
+ content: "";
50
+ display: block;
51
+ height: 100%;
52
+ left: -40px;
53
+ position: absolute;
54
+ width: px-to-rem($spacing-padding-5);
55
+ top: 0;
56
+
57
+ .ilo--notification--inline & {
58
+ background-position: center;
59
+ }
60
+
61
+ .icon--error & {
62
+ background-color: $color-ux-notification-type-error;
63
+ @include dataurlicon("error", $color-ux-notification-icon);
64
+ }
65
+
66
+ .icon--info & {
67
+ background-color: $color-ux-notification-type-info;
68
+ @include dataurlicon("info", $color-ux-notification-icon);
69
+ }
70
+
71
+ .icon--success & {
72
+ background-color: $color-ux-notification-type-success;
73
+ @include dataurlicon("success", $color-ux-notification-icon);
74
+ }
75
+
76
+ .icon--warning & {
77
+ background-color: $color-ux-notification-type-warning;
78
+ @include dataurlicon("warning", $color-ux-notification-icon);
79
+ }
80
+ }
81
+ }
82
+
83
+ &--headline {
84
+ font-weight: 700;
85
+ @include font-styles("body-small");
86
+
87
+ .ilo--notification--dialog & {
88
+ margin-bottom: px-to-rem($spacing-padding-1-5);
89
+ }
90
+ }
91
+
92
+ &--copy {
93
+ font-weight: 400;
94
+ @include font-styles("body-xs");
95
+
96
+ .ilo--notification--inline & {
97
+ margin-left: px-to-rem($spacing-padding-3);
98
+ }
99
+
100
+ &:not(:last-child) {
101
+ .ilo--notification--dialog & {
102
+ margin-bottom: px-to-rem($spacing-padding-3);
103
+ }
104
+
105
+ .ilo--notification--inline & {
106
+ max-width: 24%;
107
+
108
+ @include breakpoint("large") {
109
+ max-width: 40%;
110
+ }
111
+ }
112
+ }
113
+ }
114
+
115
+ &--date {
116
+ color: $color-base-neutrals-medium;
117
+ display: block;
118
+ font-weight: 400;
119
+ @include font-styles("body-xs");
120
+
121
+ .ilo--notification--inline & {
122
+ margin-left: px-to-rem($spacing-padding-2);
123
+ }
124
+
125
+ &:not(:last-child) {
126
+ .ilo--notification--dialog & {
127
+ margin-bottom: px-to-rem(19px);
128
+ }
129
+ }
130
+ }
131
+
132
+ &--cta {
133
+ .ilo--notification--inline & {
134
+ margin-left: px-to-rem($spacing-padding-3);
135
+ }
136
+ }
137
+
138
+ &--close {
139
+ background-color: $color-ux-background-highlight;
140
+ background-position: center;
141
+ background-repeat: no-repeat;
142
+ background-size: px-to-rem($spacing-padding-3);
143
+ border: none;
144
+ height: px-to-rem($spacing-padding-5);
145
+ position: absolute;
146
+ right: 0;
147
+ top: 0;
148
+ width: px-to-rem($spacing-padding-5);
149
+ @include dataurlicon("close", $color-ux-labels-actionable);
150
+
151
+ &:hover,
152
+ &:focus {
153
+ background-color: $color-ux-background-hover;
154
+ cursor: pointer;
155
+ @include dataurlicon("close", $color-ux-labels-hover);
156
+ }
157
+
158
+ span {
159
+ @include isVisuallyHidden();
160
+ }
161
+ }
162
+ }
@@ -0,0 +1,238 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+
5
+ .ilo--pagination {
6
+ display: flex;
7
+ justify-content: space-between;
8
+ margin-top: px-to-rem(
9
+ map-get($spacing, "ux", "pagination", "padding", "top")
10
+ );
11
+ $self: &;
12
+
13
+ &--link {
14
+ background: map-get($color, "ux", "pagination", "default", "background");
15
+ border: none;
16
+ border-radius: 2px;
17
+ color: map-get($color, "ux", "pagination", "default", "icon");
18
+ display: inline-block;
19
+ font-family: $fonts-display;
20
+ height: px-to-rem(map-get($spacing, "ux", "pagination", "width"));
21
+ overflow: hidden;
22
+ position: relative;
23
+ text-align: left;
24
+ text-indent: -999%;
25
+ width: px-to-rem(map-get($spacing, "ux", "pagination", "width"));
26
+ @include font-styles("label-medium");
27
+
28
+ &::before {
29
+ background-repeat: no-repeat;
30
+ content: "";
31
+ display: inline-block;
32
+ left: 50%;
33
+ height: px-to-rem(16px);
34
+ position: absolute;
35
+ top: 50%;
36
+ transform: translate(-50%, -50%);
37
+ transform-origin: center center;
38
+ width: px-to-rem(16px);
39
+ }
40
+
41
+ &:hover {
42
+ background: map-get($color, "ux", "pagination", "hover", "background");
43
+ color: map-get($color, "ux", "pagination", "hover", "icon");
44
+ }
45
+
46
+ &.ilo--pagination--disable {
47
+ opacity: 0.45;
48
+ cursor: unset;
49
+
50
+ &:hover {
51
+ background: map-get(
52
+ $color,
53
+ "ux",
54
+ "pagination",
55
+ "default",
56
+ "background"
57
+ );
58
+ }
59
+ }
60
+ }
61
+
62
+ &--first-page {
63
+ margin: 0
64
+ px-to-rem(map-get($spacing, "ux", "pagination", "padding", "left")) 0 0;
65
+ &::before {
66
+ transform: translate(-50%, -50%) rotate(180deg);
67
+
68
+ @include dataurlicon(
69
+ "doublearrow",
70
+ map-get($color, "ux", "pagination", "default", "icon")
71
+ );
72
+ }
73
+
74
+ &:hover {
75
+ &::before {
76
+ @include dataurlicon(
77
+ "doublearrow",
78
+ map-get($color, "ux", "pagination", "hover", "icon")
79
+ );
80
+ }
81
+ }
82
+
83
+ &.ilo--pagination--disable {
84
+ opacity: 0.45;
85
+
86
+ &:hover {
87
+ background: map-get(
88
+ $color,
89
+ "ux",
90
+ "pagination",
91
+ "default",
92
+ "background"
93
+ );
94
+
95
+ &::before {
96
+ @include dataurlicon(
97
+ "doublearrow",
98
+ map-get($color, "ux", "pagination", "default", "icon")
99
+ );
100
+ }
101
+ }
102
+ }
103
+ }
104
+
105
+ &--prev-page {
106
+ &::before {
107
+ transform: translate(-50%, -50%) rotate(180deg);
108
+ width: px-to-rem(10px);
109
+
110
+ @include dataurlicon(
111
+ "paginationarrow",
112
+ map-get($color, "ux", "pagination", "default", "icon")
113
+ );
114
+ }
115
+
116
+ &:hover {
117
+ &::before {
118
+ @include dataurlicon(
119
+ "paginationarrow",
120
+ map-get($color, "ux", "pagination", "hover", "icon")
121
+ );
122
+ }
123
+ }
124
+
125
+ &.ilo--pagination--disable {
126
+ opacity: 0.45;
127
+
128
+ &:hover {
129
+ background: map-get(
130
+ $color,
131
+ "ux",
132
+ "pagination",
133
+ "default",
134
+ "background"
135
+ );
136
+
137
+ &::before {
138
+ @include dataurlicon(
139
+ "paginationarrow",
140
+ map-get($color, "ux", "pagination", "default", "icon")
141
+ );
142
+ }
143
+ }
144
+ }
145
+ }
146
+
147
+ &--next-page {
148
+ &::before {
149
+ transform: translate(-50%, -50%) rotate(0);
150
+ width: px-to-rem(10px);
151
+
152
+ @include dataurlicon(
153
+ "paginationarrow",
154
+ map-get($color, "ux", "pagination", "default", "icon")
155
+ );
156
+ }
157
+
158
+ &:hover {
159
+ &::before {
160
+ @include dataurlicon(
161
+ "paginationarrow",
162
+ map-get($color, "ux", "pagination", "hover", "icon")
163
+ );
164
+ }
165
+ }
166
+
167
+ &.ilo--pagination--disable {
168
+ opacity: 0.45;
169
+
170
+ &:hover {
171
+ background: map-get(
172
+ $color,
173
+ "ux",
174
+ "pagination",
175
+ "default",
176
+ "background"
177
+ );
178
+
179
+ &::before {
180
+ @include dataurlicon(
181
+ "paginationarrow",
182
+ map-get($color, "ux", "pagination", "default", "icon")
183
+ );
184
+ }
185
+ }
186
+ }
187
+ }
188
+
189
+ &--last-page {
190
+ margin: 0 0 0
191
+ px-to-rem(map-get($spacing, "ux", "pagination", "padding", "right"));
192
+
193
+ &::before {
194
+ @include dataurlicon(
195
+ "doublearrow",
196
+ map-get($color, "ux", "pagination", "default", "icon")
197
+ );
198
+ }
199
+
200
+ &:hover {
201
+ &::before {
202
+ @include dataurlicon(
203
+ "doublearrow",
204
+ map-get($color, "ux", "pagination", "hover", "icon")
205
+ );
206
+ }
207
+ }
208
+
209
+ &.ilo--pagination--disable {
210
+ opacity: 0.45;
211
+
212
+ &:hover {
213
+ background: map-get(
214
+ $color,
215
+ "ux",
216
+ "pagination",
217
+ "default",
218
+ "background"
219
+ );
220
+
221
+ &::before {
222
+ @include dataurlicon(
223
+ "paginationarrow",
224
+ map-get($color, "ux", "pagination", "default", "icon")
225
+ );
226
+ }
227
+ }
228
+ }
229
+ }
230
+
231
+ &--page {
232
+ @include font-styles("nav-md-sm");
233
+
234
+ font-family: $fonts-copy;
235
+ font-weight: 400;
236
+ line-height: 45px;
237
+ }
238
+ }