@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,166 @@
1
+ //
2
+ // Copyright IBM Corp. 2018, 2018
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
7
+
8
+ /// http://meyerweb.com/eric/tools/css/reset/
9
+ /// v2.0 | 20110126
10
+ /// License: none (public domain)
11
+ /// Start vendor reset
12
+ html,
13
+ body,
14
+ div,
15
+ span,
16
+ applet,
17
+ object,
18
+ iframe,
19
+ h1,
20
+ h2,
21
+ h3,
22
+ h4,
23
+ h5,
24
+ h6,
25
+ p,
26
+ blockquote,
27
+ pre,
28
+ a,
29
+ abbr,
30
+ acronym,
31
+ address,
32
+ big,
33
+ cite,
34
+ code,
35
+ del,
36
+ dfn,
37
+ em,
38
+ img,
39
+ ins,
40
+ kbd,
41
+ q,
42
+ s,
43
+ samp,
44
+ small,
45
+ strike,
46
+ strong,
47
+ sub,
48
+ sup,
49
+ tt,
50
+ var,
51
+ b,
52
+ u,
53
+ i,
54
+ center,
55
+ dl,
56
+ dt,
57
+ dd,
58
+ ol,
59
+ ul,
60
+ li,
61
+ fieldset,
62
+ form,
63
+ label,
64
+ legend,
65
+ table,
66
+ caption,
67
+ tbody,
68
+ tfoot,
69
+ thead,
70
+ tr,
71
+ th,
72
+ td,
73
+ article,
74
+ aside,
75
+ canvas,
76
+ details,
77
+ embed,
78
+ figure,
79
+ figcaption,
80
+ footer,
81
+ header,
82
+ hgroup,
83
+ menu,
84
+ nav,
85
+ output,
86
+ ruby,
87
+ section,
88
+ summary,
89
+ time,
90
+ mark,
91
+ audio,
92
+ video {
93
+ padding: 0;
94
+ border: 0;
95
+ margin: 0;
96
+ font: inherit;
97
+ font-size: 100%;
98
+ vertical-align: baseline;
99
+ }
100
+
101
+ /* HTML5 display-role reset for older browsers */
102
+ article,
103
+ aside,
104
+ details,
105
+ figcaption,
106
+ figure,
107
+ footer,
108
+ header,
109
+ hgroup,
110
+ menu,
111
+ nav,
112
+ section {
113
+ display: block;
114
+ }
115
+
116
+ body {
117
+ line-height: 1;
118
+ }
119
+
120
+ ol,
121
+ ul {
122
+ list-style: none;
123
+ }
124
+
125
+ blockquote,
126
+ q {
127
+ quotes: none;
128
+ }
129
+
130
+ blockquote::before,
131
+ blockquote::after,
132
+ q::before,
133
+ q::after {
134
+ content: "";
135
+ // stylelint-disable-next-line declaration-block-no-duplicate-properties
136
+ content: none;
137
+ }
138
+
139
+ table {
140
+ border-collapse: collapse;
141
+ border-spacing: 0;
142
+ }
143
+ /// End vendor reset
144
+
145
+ html {
146
+ box-sizing: border-box;
147
+ }
148
+
149
+ select {
150
+ -webkit-appearance: none;
151
+ -moz-appearance: none;
152
+ }
153
+
154
+ *,
155
+ *::before,
156
+ *::after {
157
+ box-sizing: inherit;
158
+ }
159
+
160
+ /// Makes SVGs accessible in high contrast mode
161
+ /// @link https://github.com/IBM/carbon-elements/issues/345#issuecomment-466577293 Carbon-elements #345
162
+ @media screen and (-ms-high-contrast: active) {
163
+ svg {
164
+ fill: ButtonText;
165
+ }
166
+ }
@@ -0,0 +1,5 @@
1
+ //*------------------------------------*\
2
+ // $TOKENS
3
+ //*------------------------------------*/
4
+ @forward "@ilo-org/themes/build/scss/tokens";
5
+ @forward "@ilo-org/icons/build/scss/icons";
@@ -0,0 +1,72 @@
1
+ // Adapted from Carbon Library
2
+ //
3
+ // This source code is licensed under the Apache-2.0 license found in the
4
+ // LICENSE file in the root directory of this source tree.
5
+ //
6
+
7
+ // Load the theme vars and fonts
8
+ @use "@ilo-org/themes/build/scss/tokens" as *;
9
+ @forward "@ilo-org/fonts/index";
10
+
11
+ html,
12
+ body {
13
+ color: $color-font-base;
14
+ font: #{$type-base-size}/#{$type-base-line-height} $fonts-copy;
15
+ letter-spacing: $type-base-letter-spacing;
16
+ -webkit-font-smoothing: antialiased;
17
+ }
18
+
19
+ /// Font family fallbacks for: Overpass, Noto Sans
20
+ /// @type Map
21
+ /// @access public
22
+ /// @group @carbon/type
23
+ $font-families: (
24
+ "display": unquote("#{$fonts-display}, sans-serif"),
25
+ "copy": unquote("#{$fonts-copy}, sans-serif"),
26
+ ) !default;
27
+
28
+ /// Get the font-family for a font
29
+ /// @param {String} $name
30
+ /// @return {String}
31
+ /// @access public
32
+ /// @group @carbon/type
33
+ @function font-family($name) {
34
+ @return map-get($font-families, $name);
35
+ }
36
+
37
+ /// Include the `font-family` definition for the given name in your selector
38
+ /// @param {String} $name
39
+ /// @access public
40
+ /// @group @carbon/type
41
+ @mixin font-family($name) {
42
+ font-family: font-family($name);
43
+ }
44
+
45
+ /// Suggested font weights to be used in product
46
+ /// @type Map
47
+ /// @access public
48
+ /// @group @carbon/type
49
+ $font-weights: (
50
+ "light": 300,
51
+ "regular": 400,
52
+ "semibold": 600,
53
+ "bold": 700,
54
+ "extrabold": 800,
55
+ ) !default;
56
+
57
+ /// Retrieve the font-weight value for a given name
58
+ /// @param {String} $weight
59
+ /// @return {Number}
60
+ /// @access public
61
+ /// @group @carbon/type
62
+ @function font-weight($weight) {
63
+ @return map-get($font-weights, $weight);
64
+ }
65
+
66
+ /// Set the `font-weight` property with the value for a given name
67
+ /// @param {String} $weight
68
+ /// @access public
69
+ /// @group @carbon/type
70
+ @mixin font-weight($weight) {
71
+ font-weight: font-weight($weight);
72
+ }
@@ -0,0 +1,102 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+
5
+ .ilo--accordion {
6
+ $transition-timing: 0.15s;
7
+
8
+ &--button {
9
+ align-items: center;
10
+ background-color: $color-ux-background-default;
11
+ background-position: calc(100% - px-to-rem(6px)) center;
12
+ background-repeat: no-repeat;
13
+ background-size: px-to-rem(24px) px-to-rem(24px);
14
+ border: none;
15
+ border-top: 2px solid map-get($color, "accordion", "border");
16
+ color: $color-ux-labels-actionable;
17
+ display: flex;
18
+ fill: $color-ux-labels-actionable;
19
+ flex-direction: row;
20
+ font-family: $fonts-display;
21
+ font-weight: map-get($type, "weights", "section");
22
+ @include font-styles("label-medium");
23
+ justify-content: space-between;
24
+ margin: 0;
25
+ padding: px-to-rem(calc($spacing-ui-padding-lg - 4px)) px-to-rem(36px)
26
+ px-to-rem(calc($spacing-ui-padding-lg - 4px)) 0;
27
+ text-align: left;
28
+ transition: border $transition-timing ease-out,
29
+ background $transition-timing ease-out, color $transition-timing ease-out;
30
+ width: 100%;
31
+
32
+ &:hover,
33
+ &:focus {
34
+ background-color: $color-ux-background-hover;
35
+ border-top-color: $color-ux-borders-hover;
36
+ color: $color-ux-labels-hover;
37
+ cursor: pointer;
38
+ fill: $color-ux-labels-hover;
39
+
40
+ &[aria-expanded="true"] {
41
+ @include dataurlicon("minus", $color-ux-labels-hover);
42
+ }
43
+
44
+ &[aria-expanded="false"] {
45
+ @include dataurlicon("add", $color-ux-labels-hover);
46
+ }
47
+ }
48
+
49
+ @include breakpoint("large") {
50
+ @include font-styles("label-large");
51
+ padding: px-to-rem(calc($spacing-ui-padding-xl - 11px)) px-to-rem(36px)
52
+ px-to-rem(calc($spacing-ui-padding-xl - 11px)) 0;
53
+ }
54
+
55
+ &[aria-expanded="true"] {
56
+ @include dataurlicon("minus", $color-ux-labels-actionable);
57
+ }
58
+
59
+ &[aria-expanded="false"] {
60
+ @include dataurlicon("add", $color-ux-labels-actionable);
61
+ }
62
+ }
63
+
64
+ &--panel {
65
+ --height: auto;
66
+ color: $color-ux-labels-default;
67
+ font-family: $fonts-copy;
68
+ height: 0px;
69
+ overflow: hidden;
70
+ transition: height 0.5s ease-out, padding 0.5s ease-out;
71
+
72
+ .ilo--accordion--innerpanel {
73
+ padding-bottom: px-to-rem($spacing-ui-padding-xxl);
74
+ padding-top: px-to-rem(8px);
75
+ }
76
+
77
+ @include font-styles("label-medium");
78
+
79
+ &--open {
80
+ height: var(--height);
81
+ transition: height 0.5s ease-out, padding 0.5s ease-out;
82
+ }
83
+
84
+ &.collapsing,
85
+ &.expanding {
86
+ height: 0;
87
+ position: relative;
88
+ overflow: hidden;
89
+ visibility: visible;
90
+ -webkit-transition-property: height, padding, visibility;
91
+ transition-property: height, padding, visibility;
92
+ transition-duration: attr(data-transition);
93
+ -webkit-transition-duration: attr(data-transition);
94
+ transition-timing-function: ease;
95
+ -webkit-transition-timing-function: ease;
96
+ }
97
+
98
+ @include breakpoint("large") {
99
+ @include font-styles("label-large");
100
+ }
101
+ }
102
+ }
@@ -0,0 +1,258 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+
5
+ .ilo--breadcrumb {
6
+ position: relative;
7
+ z-index: 10;
8
+
9
+ &--items {
10
+ align-items: center;
11
+ background-color: $color-base-neutrals-white;
12
+ display: inline-flex;
13
+ justify-content: flex-start;
14
+ padding: px-to-rem(11px) 0 px-to-rem(11px) px-to-rem($spacing-padding-1-5);
15
+ position: relative;
16
+
17
+ &.context--menu {
18
+ padding: 0;
19
+ }
20
+ }
21
+
22
+ &--link {
23
+ align-items: center;
24
+ background-position: right 52%;
25
+ background-repeat: no-repeat;
26
+ color: map-get($color, "link", "text", "default");
27
+ display: inline-flex;
28
+ height: px-to-rem($spacing-padding-2);
29
+ padding: 0 px-to-rem($spacing-padding-3) 0 px-to-rem(10px);
30
+ text-decoration: none;
31
+ @include dataurlicon("breadcrumbdivider", $color-link-text-default);
32
+
33
+ &--label {
34
+ font-family: $fonts-copy;
35
+ font-weight: 400;
36
+ @include font-styles("body-xxs");
37
+ }
38
+
39
+ &:hover,
40
+ &:focus {
41
+ color: map-get($color, "link", "text", "hover");
42
+ text-decoration: underline;
43
+ @include dataurlicon("breadcrumbdivider", $color-link-text-hover);
44
+ }
45
+ }
46
+
47
+ &--item {
48
+ align-items: center;
49
+ display: flex;
50
+ height: px-to-rem($spacing-padding-2);
51
+
52
+ &.home {
53
+ align-items: center;
54
+ display: flex;
55
+ position: relative;
56
+ width: px-to-rem($spacing-padding-4);
57
+
58
+ .ilo--breadcrumb--link {
59
+ padding-left: 0;
60
+ width: px-to-rem(38px);
61
+
62
+ &--label {
63
+ @include isVisuallyHidden();
64
+ }
65
+
66
+ &:before {
67
+ background-position: center center;
68
+ background-repeat: no-repeat;
69
+ content: "";
70
+ display: block;
71
+ height: px-to-rem($spacing-padding-2);
72
+ left: 0;
73
+ position: absolute;
74
+ top: 0;
75
+ width: px-to-rem($spacing-padding-2);
76
+ @include dataurlicon("home", $color-link-text-default);
77
+ }
78
+ }
79
+
80
+ &:hover,
81
+ &:focus {
82
+ .ilo--breadcrumb--link {
83
+ &:before {
84
+ @include dataurlicon("home", $color-link-text-hover);
85
+ }
86
+ }
87
+ }
88
+ }
89
+
90
+ &.final {
91
+ .ilo--breadcrumb--link {
92
+ background-image: none;
93
+ }
94
+ }
95
+ }
96
+
97
+ .ilo--breadcrumb--item--context {
98
+ align-items: flex-start;
99
+ display: flex;
100
+ height: px-to-rem($spacing-padding-2);
101
+ }
102
+
103
+ &.contextmenu {
104
+ .ilo--breadcrumb--item--context {
105
+ background-position: center center;
106
+ background-repeat: no-repeat;
107
+ background-size: 16px 4px;
108
+ position: relative;
109
+ width: px-to-rem(42px);
110
+ @include dataurlicon("elipsis", $color-link-text-default);
111
+
112
+ &:after {
113
+ background-position: center center;
114
+ background-repeat: no-repeat;
115
+ content: "";
116
+ display: block;
117
+ height: px-to-rem($spacing-padding-2);
118
+ right: -7px;
119
+ position: absolute;
120
+ top: 0;
121
+ width: px-to-rem($spacing-padding-2);
122
+ @include dataurlicon("breadcrumbdivider", $color-link-text-default);
123
+ }
124
+
125
+ .context--menu {
126
+ border-radius: px-to-rem(2px);
127
+ background-color: $color-ux-background-highlight;
128
+ display: inline-block;
129
+ left: px-to-rem(-40px);
130
+ opacity: 0;
131
+ position: absolute;
132
+ top: calc(100% + 20px);
133
+ transition: opacity 0.75s linear;
134
+ transition-delay: 0.5s;
135
+ width: px-to-rem(120px);
136
+ z-index: 10;
137
+
138
+ &:before {
139
+ background-position: top center;
140
+ background-repeat: no-repeat;
141
+ background-size: contain;
142
+ @include dataurlicon(
143
+ "halfsquaretriangle",
144
+ $color-ux-background-highlight
145
+ );
146
+ content: "";
147
+ height: px-to-rem($spacing-padding-1-5);
148
+ position: absolute;
149
+ left: 50%;
150
+ top: -#{px-to-rem(6px)};
151
+ transform: translateX(-50%) rotate(135deg);
152
+ width: px-to-rem($spacing-padding-1-5);
153
+ }
154
+
155
+ .ilo--breadcrumb--item {
156
+ display: inline-block;
157
+ height: auto;
158
+ padding: 0 px-to-rem($spacing-padding-1);
159
+ position: relative;
160
+ width: 100%;
161
+
162
+ &:last-of-type a {
163
+ border-bottom: none;
164
+ }
165
+
166
+ &:hover,
167
+ &:focus {
168
+ background-color: $color-base-blue-light;
169
+ text-decoration: none;
170
+
171
+ .ilo--breadcrumb--link {
172
+ text-decoration: none;
173
+ }
174
+ }
175
+
176
+ &.endsection {
177
+ border-bottom: px-to-rem($borders-base) solid
178
+ $color-base-neutrals-white;
179
+
180
+ .ilo--context-menu--link {
181
+ border-bottom: none;
182
+ }
183
+ }
184
+ }
185
+
186
+ .ilo--breadcrumb--link {
187
+ background: none;
188
+ border-bottom: px-to-rem($borders-base) solid
189
+ $color-base-neutrals-white;
190
+ color: map-get($color, "link", "text", "default");
191
+ display: inline-block;
192
+ font-family: $fonts-copy;
193
+ font-weight: map-get($type, "weights", "section");
194
+ height: auto;
195
+ padding: px-to-rem($spacing-padding-2) 0;
196
+ text-decoration: none;
197
+ width: 100%;
198
+ @include font-styles("body-xxs");
199
+
200
+ &:visited {
201
+ color: map-get($color, "link", "text", "default");
202
+ }
203
+
204
+ &:active {
205
+ color: map-get($color, "link", "text", "active");
206
+ outline: none;
207
+ }
208
+
209
+ &:hover,
210
+ &:focus {
211
+ color: map-get($color, "link", "text", "hover");
212
+ outline: none;
213
+ text-decoration: underline;
214
+ text-decoration-thickness: px-to-rem($borders-base);
215
+ }
216
+ }
217
+ }
218
+
219
+ &:hover,
220
+ &:focus {
221
+ .context--menu {
222
+ opacity: 1;
223
+ transition: opacity 1.5s ease-out;
224
+ }
225
+ }
226
+ }
227
+ }
228
+
229
+ @include breakpoint("medium") {
230
+ &--items {
231
+ &:after {
232
+ background: linear-gradient(
233
+ to bottom right,
234
+ white 50%,
235
+ transparent 50%
236
+ );
237
+ content: "";
238
+ display: inline-block;
239
+ height: 39px;
240
+ position: absolute;
241
+ right: -39px;
242
+ top: 0;
243
+ width: 39px;
244
+ }
245
+
246
+ &.context--menu {
247
+ &:after {
248
+ content: none;
249
+ }
250
+ }
251
+ }
252
+ }
253
+
254
+ &.storybook {
255
+ background-color: $brand-ilo-grey-ui;
256
+ height: 100vh;
257
+ }
258
+ }