vanilla-framework 4.0.0 → 4.2.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.
- package/README.md +1 -1
- package/package.json +7 -7
- package/scss/_base_forms.scss +90 -19
- package/scss/_base_icon-definitions.scss +6 -6
- package/scss/_base_typography-definitions.scss +17 -0
- package/scss/_patterns_breadcrumbs.scss +6 -6
- package/scss/_patterns_chip.scss +6 -11
- package/scss/_patterns_form-help-text.scss +28 -0
- package/scss/_patterns_form-validation.scss +228 -33
- package/scss/_patterns_grid.scss +36 -0
- package/scss/_patterns_headings.scss +4 -0
- package/scss/_patterns_logo-section.scss +67 -129
- package/scss/_patterns_navigation.scss +2 -1
- package/scss/_patterns_suru.scss +22 -0
- package/scss/_patterns_tabs.scss +87 -8
- package/scss/_settings_colors.scss +4 -3
- package/scss/_settings_spacing.scss +8 -0
- package/scss/_settings_themes.scss +1 -0
- package/scss/_vanilla.scss +2 -0
package/README.md
CHANGED
|
@@ -84,6 +84,6 @@ Keep up to date with all new developments and upcoming changes with Vanilla.
|
|
|
84
84
|
- Follow us on Twitter [@vanillaframewrk](https://twitter.com/vanillaframewrk)
|
|
85
85
|
- Read our latest blog posts at [Ubuntu Blog](https://blog.ubuntu.com/topics/design)
|
|
86
86
|
|
|
87
|
-
Code licensed [LGPLv3](
|
|
87
|
+
Code licensed [LGPLv3](https://opensource.org/license/lgpl-3-0/) by [Canonical Ltd](http://www.canonical.com/)
|
|
88
88
|
|
|
89
89
|
With ♥ from Canonical
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vanilla-framework",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.2.0",
|
|
4
4
|
"author": {
|
|
5
5
|
"email": "webteam@canonical.com",
|
|
6
6
|
"name": "Canonical Webteam"
|
|
@@ -55,21 +55,21 @@
|
|
|
55
55
|
"!/scss/standalone"
|
|
56
56
|
],
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@canonical/cookie-policy": "3.
|
|
58
|
+
"@canonical/cookie-policy": "3.5.0",
|
|
59
59
|
"@canonical/latest-news": "1.4.1",
|
|
60
|
-
"@percy/cli": "1.26.
|
|
60
|
+
"@percy/cli": "1.26.2",
|
|
61
61
|
"@testing-library/cypress": "9.0.0",
|
|
62
62
|
"autoprefixer": "10.4.14",
|
|
63
|
-
"cypress": "12.
|
|
63
|
+
"cypress": "12.17.2",
|
|
64
64
|
"get-site-urls": "3.0.0",
|
|
65
65
|
"markdown-spellcheck": "1.3.1",
|
|
66
66
|
"parker": "0.0.10",
|
|
67
|
-
"postcss": "8.4.
|
|
67
|
+
"postcss": "8.4.27",
|
|
68
68
|
"postcss-cli": "10.1.0",
|
|
69
69
|
"postcss-scss": "4.0.6",
|
|
70
70
|
"prettier": "2.8.8",
|
|
71
|
-
"sass": "1.
|
|
72
|
-
"stylelint": "
|
|
71
|
+
"sass": "1.64.2",
|
|
72
|
+
"stylelint": "15.10.2",
|
|
73
73
|
"stylelint-config-prettier": "9.0.5",
|
|
74
74
|
"stylelint-config-recommended-scss": "5.0.2",
|
|
75
75
|
"stylelint-order": "5.0.0",
|
package/scss/_base_forms.scss
CHANGED
|
@@ -68,22 +68,29 @@
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
//
|
|
71
|
+
// Theming
|
|
72
|
+
@if ($theme-default-forms == 'dark') {
|
|
73
|
+
@include vf-input-dark-theme;
|
|
72
74
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
75
|
+
&.is-light {
|
|
76
|
+
@include vf-input-light-theme;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.is-paper &,
|
|
80
|
+
&.is-paper {
|
|
81
|
+
@include vf-input-paper-theme;
|
|
82
|
+
}
|
|
83
|
+
} @else {
|
|
84
|
+
@include vf-input-light-theme;
|
|
79
85
|
|
|
80
|
-
|
|
81
|
-
|
|
86
|
+
.is-dark &,
|
|
87
|
+
&.is-dark {
|
|
88
|
+
@include vf-input-dark-theme;
|
|
82
89
|
}
|
|
83
90
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
91
|
+
.is-paper &,
|
|
92
|
+
&.is-paper {
|
|
93
|
+
@include vf-input-paper-theme;
|
|
87
94
|
}
|
|
88
95
|
}
|
|
89
96
|
}
|
|
@@ -193,12 +200,10 @@
|
|
|
193
200
|
-webkit-appearance: none;
|
|
194
201
|
appearance: none;
|
|
195
202
|
// stylelint-enable property-no-vendor-prefix
|
|
196
|
-
background-color: $colors--light-theme--background-hover;
|
|
197
203
|
background-position: right $sph--small center;
|
|
198
204
|
background-repeat: no-repeat;
|
|
199
205
|
background-size: map-get($icon-sizes, default);
|
|
200
206
|
box-shadow: none;
|
|
201
|
-
color: $colors--light-theme--text-default;
|
|
202
207
|
min-height: map-get($line-heights, default-text);
|
|
203
208
|
padding-right: calc($default-icon-size + 2 * $sph--small);
|
|
204
209
|
text-indent: 0.01px;
|
|
@@ -208,10 +213,6 @@
|
|
|
208
213
|
cursor: pointer;
|
|
209
214
|
}
|
|
210
215
|
|
|
211
|
-
option {
|
|
212
|
-
background-color: white;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
216
|
&[multiple],
|
|
216
217
|
&[size] {
|
|
217
218
|
background-image: none;
|
|
@@ -219,7 +220,6 @@
|
|
|
219
220
|
height: auto;
|
|
220
221
|
|
|
221
222
|
option {
|
|
222
|
-
background-color: $colors--light-theme--background-hover;
|
|
223
223
|
font-weight: $font-weight-regular-text;
|
|
224
224
|
line-height: calc($sp-unit * 2 - 2px);
|
|
225
225
|
padding: $spv--x-small 0;
|
|
@@ -247,3 +247,74 @@
|
|
|
247
247
|
}
|
|
248
248
|
// stylelint-enable selector-max-type
|
|
249
249
|
}
|
|
250
|
+
|
|
251
|
+
@mixin vf-input-theme($color-background-default, $color-background-hover, $color-background-active, $color-background-option, $color-border, $color-text, $color-text-placeholder) {
|
|
252
|
+
background-color: $color-background-default;
|
|
253
|
+
border-color: $color-border;
|
|
254
|
+
color: $color-text;
|
|
255
|
+
|
|
256
|
+
&:hover {
|
|
257
|
+
background-color: $color-background-hover;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
&:active,
|
|
261
|
+
&:focus {
|
|
262
|
+
background-color: $color-background-active;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
// stylelint-disable-next-line selector-max-type -- base styles can use type selectors
|
|
266
|
+
option,
|
|
267
|
+
option:checked {
|
|
268
|
+
background-color: $color-background-option;
|
|
269
|
+
color: $color-text;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// stylelint-disable-next-line selector-max-type -- base styles can use type selectors
|
|
273
|
+
option:checked:not(:disabled) {
|
|
274
|
+
background-color: $color-background-active;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
&::placeholder {
|
|
278
|
+
color: $color-text-placeholder;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
@mixin vf-input-light-theme {
|
|
283
|
+
@include vf-input-theme(
|
|
284
|
+
$color-background-default: $colors--light-theme--background-inputs,
|
|
285
|
+
$color-background-hover: $colors--light-theme--background-hover,
|
|
286
|
+
$color-background-active: $colors--light-theme--background-active,
|
|
287
|
+
$color-background-option: $colors--light-theme--background-alt,
|
|
288
|
+
$color-border: $colors--light-theme--text-default,
|
|
289
|
+
$color-text: $colors--light-theme--text-default,
|
|
290
|
+
$color-text-placeholder: $colors--light-theme--text-muted
|
|
291
|
+
);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
@mixin vf-input-paper-theme {
|
|
295
|
+
// XXX: currently these colours are transparent,
|
|
296
|
+
// so they work both on paper and white backgrounds.
|
|
297
|
+
// We may need later to add a specific override for
|
|
298
|
+
// a white background within paper themed pages.
|
|
299
|
+
@include vf-input-theme(
|
|
300
|
+
$color-background-default: $colors--paper-theme--background-inputs,
|
|
301
|
+
$color-background-hover: $colors--paper-theme--background-hover,
|
|
302
|
+
$color-background-active: $colors--paper-theme--background-active,
|
|
303
|
+
$color-background-option: $colors--light-theme--background-alt,
|
|
304
|
+
$color-border: $colors--light-theme--text-default,
|
|
305
|
+
$color-text: $colors--light-theme--text-default,
|
|
306
|
+
$color-text-placeholder: $colors--light-theme--text-muted
|
|
307
|
+
);
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
@mixin vf-input-dark-theme {
|
|
311
|
+
@include vf-input-theme(
|
|
312
|
+
$color-background-default: $colors--dark-theme--background-inputs,
|
|
313
|
+
$color-background-hover: $colors--dark-theme--background-hover,
|
|
314
|
+
$color-background-active: $colors--dark-theme--background-active,
|
|
315
|
+
$color-background-option: $colors--dark-theme--background-alt,
|
|
316
|
+
$color-border: $colors--dark-theme--border-high-contrast,
|
|
317
|
+
$color-text: $colors--dark-theme--text-default,
|
|
318
|
+
$color-text-placeholder: $colors--dark-theme--text-muted
|
|
319
|
+
);
|
|
320
|
+
}
|
|
@@ -38,12 +38,12 @@
|
|
|
38
38
|
background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.5 6v6a1.5 1.5 0 001.356 1.493L6 13.5h4a1.5 1.5 0 001.493-1.356L11.5 12V6H13v6a3 3 0 01-3 3H6a3 3 0 01-3-3V6h1.5zm3 0v5.994H6V6h1.5zm2.498 0v5.994h-1.5V6h1.5zM8.5 0A2.5 2.5 0 0111 2.5V3h3v1.5H2V3h3v-.5A2.5 2.5 0 017.5 0h1zm0 1.5h-1a1 1 0 00-.993.883L6.5 2.5V3h3v-.5a1 1 0 00-.883-.993L8.5 1.5z' fill='#{vf-url-friendly-color($color)}' fill-rule='evenodd'/%3E%3C/svg%3E");
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
@mixin vf-icon-error($color: $color-negative) {
|
|
42
|
-
background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Ccircle stroke='#{vf-url-friendly-color($color)}' stroke-width='1.5' fill='#{vf-url-friendly-color($color)}' cx='8' cy='8' r='6.25'/%3E%3Cpath fill='
|
|
41
|
+
@mixin vf-icon-error($color: $color-negative, $color-symbol: $color-x-light) {
|
|
42
|
+
background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Ccircle stroke='#{vf-url-friendly-color($color)}' stroke-width='1.5' fill='#{vf-url-friendly-color($color)}' cx='8' cy='8' r='6.25'/%3E%3Cpath fill='#{vf-url-friendly-color($color-symbol)}' fill-rule='nonzero' d='M10.282 4.638l1.06 1.06L9.05 7.99l2.293 2.292-1.06 1.06L7.99 9.05 5.7 11.343l-1.06-1.06 2.29-2.293L4.64 5.7l1.06-1.06 2.291 2.29z'/%3E%3C/g%3E%3C/svg%3E");
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
@mixin vf-icon-warning($color: $color-caution) {
|
|
46
|
-
background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M9.34 1.2l5.842 11.627A1.5 1.5 0 0113.842 15H2.158a1.5 1.5 0 01-1.34-2.173L6.66 1.2a1.5 1.5 0 012.68 0z' fill='#{vf-url-friendly-color($color)}'/%3E%3Cpath d='M8.5 11a.5.5 0 01.492.41L9 11.5v1a.5.5 0 01-.41.492L8.5 13h-1a.5.5 0 01-.492-.41L7 12.5v-1a.5.5 0 01.41-.492L7.5 11h1zM9 5v4.5H7V5h2z' fill='
|
|
45
|
+
@mixin vf-icon-warning($color: $color-caution, $color-symbol: $color-x-light) {
|
|
46
|
+
background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M9.34 1.2l5.842 11.627A1.5 1.5 0 0113.842 15H2.158a1.5 1.5 0 01-1.34-2.173L6.66 1.2a1.5 1.5 0 012.68 0z' fill='#{vf-url-friendly-color($color)}'/%3E%3Cpath d='M8.5 11a.5.5 0 01.492.41L9 11.5v1a.5.5 0 01-.41.492L8.5 13h-1a.5.5 0 01-.492-.41L7 12.5v-1a.5.5 0 01.41-.492L7.5 11h1zM9 5v4.5H7V5h2z' fill='#{vf-url-friendly-color($color-symbol)}'/%3E%3C/g%3E%3C/svg%3E");
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
@mixin vf-icon-external-link($color) {
|
|
@@ -70,8 +70,8 @@
|
|
|
70
70
|
background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.964 1a5.964 5.964 0 014.709 9.623l4.303 4.305-1.06 1.06-4.306-4.305A5.964 5.964 0 116.963 1zm0 1.5a4.464 4.464 0 100 8.927 4.464 4.464 0 000-8.927z' fill='#{vf-url-friendly-color($color)}' fill-rule='nonzero'/%3E%3C/svg%3E");
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
@mixin vf-icon-success($
|
|
74
|
-
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cg fill='none' fill-rule='nonzero'%3E%3Cpath fill='#{vf-url-friendly-color($
|
|
73
|
+
@mixin vf-icon-success($color: $color-positive, $color-symbol: $color-x-light) {
|
|
74
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cg fill='none' fill-rule='nonzero'%3E%3Cpath fill='#{vf-url-friendly-color($color)}' d='M8 1a7 7 0 110 14A7 7 0 018 1zm2.83 3.502L6.863 9.884 5.174 8.096l-1.09 1.03 2.92 3.096 5.034-6.83-1.208-.89z'/%3E%3Cpath fill='#{vf-url-friendly-color($color-symbol)}' d='M10.83 4.502l1.208.89-5.033 6.83-2.922-3.096 1.091-1.03 1.689 1.789z'/%3E%3C/g%3E%3C/svg%3E");
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
@mixin vf-icon-share($color) {
|
|
@@ -35,6 +35,23 @@
|
|
|
35
35
|
font-weight: 550;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
%vf-heading-display {
|
|
39
|
+
@extend %vf-heading-2;
|
|
40
|
+
|
|
41
|
+
font-size: #{map-get($font-sizes, display-mobile)}rem;
|
|
42
|
+
font-weight: 100;
|
|
43
|
+
line-height: map-get($line-heights, display-mobile);
|
|
44
|
+
margin-bottom: map-get($sp-after, display-mobile) - map-get($nudges, display-mobile);
|
|
45
|
+
padding-top: map-get($nudges, display-mobile);
|
|
46
|
+
|
|
47
|
+
@media (min-width: $breakpoint-heading-threshold) {
|
|
48
|
+
font-size: #{map-get($font-sizes, display)}rem;
|
|
49
|
+
line-height: map-get($line-heights, display);
|
|
50
|
+
margin-bottom: map-get($sp-after, display) - map-get($nudges, display);
|
|
51
|
+
padding-top: map-get($nudges, display);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
38
55
|
%vf-heading-3 {
|
|
39
56
|
@extend %vf-is-accent;
|
|
40
57
|
|
|
@@ -7,18 +7,18 @@
|
|
|
7
7
|
margin: 0;
|
|
8
8
|
padding: 0;
|
|
9
9
|
width: 100%;
|
|
10
|
+
}
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
.p-breadcrumbs__items {
|
|
13
|
+
margin-bottom: 0;
|
|
14
|
+
margin-left: 0;
|
|
15
|
+
padding-left: 0;
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
.p-breadcrumbs__item {
|
|
18
|
-
@extend %
|
|
19
|
+
@extend %small-caps-text;
|
|
19
20
|
|
|
20
21
|
display: inline-block;
|
|
21
|
-
margin-bottom: $spv-nudge-compensation;
|
|
22
22
|
|
|
23
23
|
&:not(:first-of-type) {
|
|
24
24
|
text-indent: $sph--large;
|
package/scss/_patterns_chip.scss
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
@use 'sass:math';
|
|
2
2
|
@import 'settings';
|
|
3
|
+
$chip-border-thickness: 1px;
|
|
3
4
|
|
|
4
5
|
@mixin vf-p-chip {
|
|
5
6
|
%vf-chip {
|
|
@@ -12,10 +13,10 @@
|
|
|
12
13
|
display: inline-flex;
|
|
13
14
|
margin: 0 $sph--small $input-margin-bottom 0;
|
|
14
15
|
max-width: 100%;
|
|
15
|
-
padding: calc($spv--x-small - $
|
|
16
|
+
padding: calc($spv--x-small - $chip-border-thickness) $sph--small; // account for border thickness using calc
|
|
16
17
|
position: relative;
|
|
17
18
|
user-select: none;
|
|
18
|
-
vertical-align: calc($
|
|
19
|
+
vertical-align: calc($chip-border-thickness - map-get($nudges, p));
|
|
19
20
|
white-space: nowrap;
|
|
20
21
|
|
|
21
22
|
.p-chip__lead,
|
|
@@ -26,12 +27,11 @@
|
|
|
26
27
|
padding: 0;
|
|
27
28
|
text-overflow: ellipsis;
|
|
28
29
|
vertical-align: baseline;
|
|
30
|
+
@extend %small-text;
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
.p-chip__lead {
|
|
32
|
-
@extend %
|
|
33
|
-
|
|
34
|
-
text-transform: uppercase;
|
|
34
|
+
@extend %small-caps-text;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
.p-chip__lead + .p-chip__value::before {
|
|
@@ -40,11 +40,6 @@
|
|
|
40
40
|
content: ': ';
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
.p-chip__value {
|
|
44
|
-
@extend %small-text;
|
|
45
|
-
font-weight: $font-weight-bold;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
43
|
.p-chip__dismiss {
|
|
49
44
|
@extend %icon;
|
|
50
45
|
// also includes button and close icon styles in the theming section
|
|
@@ -242,7 +237,7 @@
|
|
|
242
237
|
$color-border: map-get($colors-chip-tinted-borders, $chip-type);
|
|
243
238
|
|
|
244
239
|
background-color: $color-background;
|
|
245
|
-
border: $
|
|
240
|
+
border: $chip-border-thickness solid $color-border;
|
|
246
241
|
|
|
247
242
|
.p-chip__value {
|
|
248
243
|
color: $color-chip-value;
|
|
@@ -11,4 +11,32 @@
|
|
|
11
11
|
margin-left: $sph--large + $form-tick-box-size;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
+
|
|
15
|
+
@if ($theme-default-forms == 'dark') {
|
|
16
|
+
.p-form-help-text {
|
|
17
|
+
@include vf-form-help-text-dark-theme;
|
|
18
|
+
}
|
|
19
|
+
} @else {
|
|
20
|
+
.p-form-help-text {
|
|
21
|
+
@include vf-form-help-text-light-theme;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.is-dark .p-form-help-text,
|
|
26
|
+
.p-form-help-text.is-dark {
|
|
27
|
+
@include vf-form-help-text-dark-theme;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.is-light .p-form-help-text,
|
|
31
|
+
.p-form-help-text.is-light {
|
|
32
|
+
@include vf-form-help-text-light-theme;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@mixin vf-form-help-text-dark-theme {
|
|
37
|
+
color: $colors--dark-theme--text-muted;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@mixin vf-form-help-text-light-theme {
|
|
41
|
+
color: $colors--light-theme--text-muted;
|
|
14
42
|
}
|
|
@@ -13,71 +13,266 @@
|
|
|
13
13
|
|
|
14
14
|
.p-form-validation__message {
|
|
15
15
|
@extend %small-text;
|
|
16
|
+
@extend %vf-validation-wrapper;
|
|
16
17
|
|
|
17
18
|
margin-top: -$sp-unit;
|
|
18
19
|
}
|
|
19
20
|
|
|
20
|
-
|
|
21
|
+
// Theming
|
|
22
|
+
@if ($theme-default-forms == 'dark') {
|
|
21
23
|
.p-form-validation__input {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
.is-success & {
|
|
25
|
+
@include vf-form-validation-input-success-dark-theme;
|
|
26
|
+
}
|
|
24
27
|
|
|
25
|
-
|
|
26
|
-
|
|
28
|
+
.is-caution & {
|
|
29
|
+
@include vf-form-validation-input-caution-dark-theme;
|
|
27
30
|
}
|
|
28
31
|
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
.is-error & {
|
|
33
|
+
@include vf-form-validation-input-error-dark-theme;
|
|
31
34
|
}
|
|
32
35
|
}
|
|
33
36
|
|
|
34
37
|
.p-form-validation__message {
|
|
35
|
-
|
|
36
|
-
|
|
38
|
+
.is-success & {
|
|
39
|
+
@include vf-form-validation-message-success-dark-theme;
|
|
40
|
+
}
|
|
37
41
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
.is-caution & {
|
|
43
|
+
@include vf-form-validation-message-caution-dark-theme;
|
|
44
|
+
}
|
|
41
45
|
|
|
42
|
-
|
|
46
|
+
.is-error & {
|
|
47
|
+
@include vf-form-validation-message-error-dark-theme;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
} @else {
|
|
43
51
|
.p-form-validation__input {
|
|
44
|
-
|
|
45
|
-
|
|
52
|
+
.is-success & {
|
|
53
|
+
@include vf-form-validation-input-success-light-theme;
|
|
54
|
+
}
|
|
46
55
|
|
|
47
|
-
|
|
48
|
-
|
|
56
|
+
.is-caution & {
|
|
57
|
+
@include vf-form-validation-input-caution-light-theme;
|
|
49
58
|
}
|
|
50
59
|
|
|
51
|
-
|
|
52
|
-
|
|
60
|
+
.is-error & {
|
|
61
|
+
@include vf-form-validation-input-error-light-theme;
|
|
53
62
|
}
|
|
54
63
|
}
|
|
55
64
|
|
|
56
65
|
.p-form-validation__message {
|
|
57
|
-
|
|
58
|
-
|
|
66
|
+
.is-success & {
|
|
67
|
+
@include vf-form-validation-message-success-light-theme;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.is-caution & {
|
|
71
|
+
@include vf-form-validation-message-caution-light-theme;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.is-error & {
|
|
75
|
+
@include vf-form-validation-message-error-light-theme;
|
|
76
|
+
}
|
|
59
77
|
}
|
|
60
78
|
}
|
|
61
79
|
|
|
62
|
-
|
|
80
|
+
// when is-dark/is-light is set on root p-form-validation element or its parent
|
|
81
|
+
.is-dark .is-success,
|
|
82
|
+
.is-success.is-dark {
|
|
63
83
|
.p-form-validation__input {
|
|
64
|
-
|
|
65
|
-
|
|
84
|
+
@include vf-form-validation-input-success-dark-theme;
|
|
85
|
+
}
|
|
86
|
+
.p-form-validation__message {
|
|
87
|
+
@include vf-form-validation-message-success-dark-theme;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
66
90
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
91
|
+
.is-success.is-light {
|
|
92
|
+
.p-form-validation__input {
|
|
93
|
+
@include vf-form-validation-input-success-light-theme;
|
|
94
|
+
}
|
|
95
|
+
.p-form-validation__message {
|
|
96
|
+
@include vf-form-validation-message-success-light-theme;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
70
99
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
100
|
+
.is-dark .is-caution,
|
|
101
|
+
.is-caution.is-dark {
|
|
102
|
+
.p-form-validation__input {
|
|
103
|
+
@include vf-form-validation-input-caution-dark-theme;
|
|
104
|
+
}
|
|
105
|
+
.p-form-validation__message {
|
|
106
|
+
@include vf-form-validation-message-caution-dark-theme;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.is-caution.is-light {
|
|
111
|
+
.p-form-validation__input {
|
|
112
|
+
@include vf-form-validation-input-caution-light-theme;
|
|
113
|
+
}
|
|
114
|
+
.p-form-validation__message {
|
|
115
|
+
@include vf-form-validation-message-caution-light-theme;
|
|
74
116
|
}
|
|
117
|
+
}
|
|
75
118
|
|
|
119
|
+
.is-dark .is-error,
|
|
120
|
+
.is-error.is-dark {
|
|
121
|
+
.p-form-validation__input {
|
|
122
|
+
@include vf-form-validation-input-error-dark-theme;
|
|
123
|
+
}
|
|
76
124
|
.p-form-validation__message {
|
|
77
|
-
@
|
|
78
|
-
|
|
125
|
+
@include vf-form-validation-message-error-dark-theme;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.is-error.is-light {
|
|
130
|
+
.p-form-validation__input {
|
|
131
|
+
@include vf-form-validation-input-error-light-theme;
|
|
132
|
+
}
|
|
133
|
+
.p-form-validation__message {
|
|
134
|
+
@include vf-form-validation-message-error-light-theme;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
79
137
|
|
|
80
|
-
|
|
138
|
+
// when is-dark/is-light is set on p-form-validation__input element
|
|
139
|
+
.is-success .p-form-validation__input {
|
|
140
|
+
.is-dark &,
|
|
141
|
+
&.is-dark {
|
|
142
|
+
@include vf-form-validation-input-success-dark-theme;
|
|
81
143
|
}
|
|
144
|
+
|
|
145
|
+
&.is-light {
|
|
146
|
+
@include vf-form-validation-input-success-light-theme;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.is-caution .p-form-validation__input {
|
|
151
|
+
.is-dark &,
|
|
152
|
+
&.is-dark {
|
|
153
|
+
@include vf-form-validation-input-caution-dark-theme;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
&.is-light {
|
|
157
|
+
@include vf-form-validation-input-caution-light-theme;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.is-error .p-form-validation__input {
|
|
162
|
+
.is-dark &,
|
|
163
|
+
&.is-dark {
|
|
164
|
+
@include vf-form-validation-input-error-dark-theme;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
&.is-light {
|
|
168
|
+
@include vf-form-validation-input-error-light-theme;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
@mixin vf-form-validation-input-state-theme($color-background-default, $color-background-hover, $color-background-active, $color-border, $color-text) {
|
|
174
|
+
background-color: $color-background-default;
|
|
175
|
+
border-bottom-color: $color-border;
|
|
176
|
+
|
|
177
|
+
&:hover {
|
|
178
|
+
background-color: $color-background-hover;
|
|
82
179
|
}
|
|
180
|
+
|
|
181
|
+
&:focus {
|
|
182
|
+
background-color: $color-background-active;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
@mixin vf-form-validation-input-success-dark-theme {
|
|
187
|
+
@include vf-form-validation-input-state-theme(
|
|
188
|
+
$color-background-default: map-get($colors-dark-theme--tinted-backgrounds, 'positive', 'default'),
|
|
189
|
+
$color-background-hover: map-get($colors-dark-theme--tinted-backgrounds, 'positive', 'hover'),
|
|
190
|
+
$color-background-active: map-get($colors-dark-theme--tinted-backgrounds, 'positive', 'active'),
|
|
191
|
+
$color-border: map-get($colors-dark-theme--tinted-borders, 'positive'),
|
|
192
|
+
$color-text: map-get($colors-dark-theme--tinted-borders, 'positive')
|
|
193
|
+
);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
@mixin vf-form-validation-input-caution-dark-theme {
|
|
197
|
+
@include vf-form-validation-input-state-theme(
|
|
198
|
+
$color-background-default: map-get($colors-dark-theme--tinted-backgrounds, 'caution', 'default'),
|
|
199
|
+
$color-background-hover: map-get($colors-dark-theme--tinted-backgrounds, 'caution', 'hover'),
|
|
200
|
+
$color-background-active: map-get($colors-dark-theme--tinted-backgrounds, 'caution', 'active'),
|
|
201
|
+
$color-border: map-get($colors-dark-theme--tinted-borders, 'caution'),
|
|
202
|
+
$color-text: map-get($colors-dark-theme--tinted-borders, 'caution')
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
@mixin vf-form-validation-input-error-dark-theme {
|
|
207
|
+
@include vf-form-validation-input-state-theme(
|
|
208
|
+
$color-background-default: map-get($colors-dark-theme--tinted-backgrounds, 'negative', 'default'),
|
|
209
|
+
$color-background-hover: map-get($colors-dark-theme--tinted-backgrounds, 'negative', 'hover'),
|
|
210
|
+
$color-background-active: map-get($colors-dark-theme--tinted-backgrounds, 'negative', 'active'),
|
|
211
|
+
$color-border: map-get($colors-dark-theme--tinted-borders, 'negative'),
|
|
212
|
+
$color-text: map-get($colors-dark-theme--tinted-borders, 'negative')
|
|
213
|
+
);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
@mixin vf-form-validation-input-success-light-theme {
|
|
217
|
+
@include vf-form-validation-input-state-theme(
|
|
218
|
+
$color-background-default: $color-positive-background,
|
|
219
|
+
$color-background-hover: $color-positive-background--hover,
|
|
220
|
+
$color-background-active: $color-positive-background--focus,
|
|
221
|
+
$color-border: $color-positive,
|
|
222
|
+
$color-text: $color-positive
|
|
223
|
+
);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
@mixin vf-form-validation-input-caution-light-theme {
|
|
227
|
+
@include vf-form-validation-input-state-theme(
|
|
228
|
+
$color-background-default: $color-caution-background,
|
|
229
|
+
$color-background-hover: $color-caution-background--hover,
|
|
230
|
+
$color-background-active: $color-caution-background--focus,
|
|
231
|
+
$color-border: $color-caution,
|
|
232
|
+
$color-text: $color-caution
|
|
233
|
+
);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
@mixin vf-form-validation-input-error-light-theme {
|
|
237
|
+
@include vf-form-validation-input-state-theme(
|
|
238
|
+
$color-background-default: $color-negative-background,
|
|
239
|
+
$color-background-hover: $color-negative-background--hover,
|
|
240
|
+
$color-background-active: $color-negative-background--focus,
|
|
241
|
+
$color-border: $color-negative,
|
|
242
|
+
$color-text: $color-negative
|
|
243
|
+
);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
@mixin vf-form-validation-message-state-theme($color-text) {
|
|
247
|
+
color: $color-text;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
@mixin vf-form-validation-message-success-dark-theme {
|
|
251
|
+
@include vf-form-validation-message-state-theme($color-text: map-get($colors-dark-theme--tinted-borders, 'positive'));
|
|
252
|
+
@include vf-icon-success($color: map-get($colors-dark-theme--tinted-borders, 'positive'), $color-symbol: $colors--dark-theme--background-default);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
@mixin vf-form-validation-message-caution-dark-theme {
|
|
256
|
+
@include vf-form-validation-message-state-theme($color-text: map-get($colors-dark-theme--tinted-borders, 'caution'));
|
|
257
|
+
@include vf-icon-warning($color: map-get($colors-dark-theme--tinted-borders, 'caution'), $color-symbol: $colors--dark-theme--background-default);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
@mixin vf-form-validation-message-error-dark-theme {
|
|
261
|
+
@include vf-form-validation-message-state-theme($color-text: map-get($colors-dark-theme--tinted-borders, 'negative'));
|
|
262
|
+
@include vf-icon-error($color: map-get($colors-dark-theme--tinted-borders, 'negative'), $color-symbol: $colors--dark-theme--background-default);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
@mixin vf-form-validation-message-success-light-theme {
|
|
266
|
+
@include vf-form-validation-message-state-theme($color-text: $color-positive);
|
|
267
|
+
@include vf-icon-success($color-positive);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
@mixin vf-form-validation-message-caution-light-theme {
|
|
271
|
+
@include vf-form-validation-message-state-theme($color-text: $colors--light-theme--text-default);
|
|
272
|
+
@include vf-icon-warning($color-caution);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
@mixin vf-form-validation-message-error-light-theme {
|
|
276
|
+
@include vf-form-validation-message-state-theme($color-text: $color-negative);
|
|
277
|
+
@include vf-icon-error($color-negative);
|
|
83
278
|
}
|
package/scss/_patterns_grid.scss
CHANGED
|
@@ -241,6 +241,42 @@
|
|
|
241
241
|
}
|
|
242
242
|
}
|
|
243
243
|
|
|
244
|
+
.row--25-75.is-split-on-medium {
|
|
245
|
+
> .col {
|
|
246
|
+
@media (min-width: $threshold-4-6-col) {
|
|
247
|
+
&:nth-of-type(1) {
|
|
248
|
+
@include vf-grid-column(2);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
&:nth-of-type(2) {
|
|
252
|
+
@include vf-grid-column(4);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
// if there is only one column we offset it to the right
|
|
256
|
+
&:only-of-type {
|
|
257
|
+
@include vf-grid-column(4);
|
|
258
|
+
grid-column-start: calc(3);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
@media (min-width: $threshold-6-12-col) {
|
|
263
|
+
&:nth-of-type(1) {
|
|
264
|
+
@include vf-grid-column($col-25);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
&:nth-of-type(2) {
|
|
268
|
+
@include vf-grid-column($col-75);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
// if there is only one column we offset it to the right
|
|
272
|
+
&:only-of-type {
|
|
273
|
+
grid-column-start: calc($col-25 + 1);
|
|
274
|
+
@include vf-grid-column($col-75);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
244
280
|
.row--25-25-50 {
|
|
245
281
|
@extend %vf-row;
|
|
246
282
|
|
|
@@ -1,152 +1,90 @@
|
|
|
1
|
-
@
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
$grid-column-count: $grid-columns-small;
|
|
7
|
-
$grid-column-prefix: $grid-small-col-prefix;
|
|
8
|
-
$gutter: map-get($grid-gutter-widths, small);
|
|
9
|
-
// medium and small use the same breakpoint, but one uses a max-width, the other a min-width;
|
|
10
|
-
// so, we need to specify which one to use
|
|
11
|
-
$media-query-keyword: max-width;
|
|
12
|
-
$media-query-width: $threshold-4-6-col;
|
|
13
|
-
// how many grid columns should a logo span
|
|
14
|
-
$logo-column-span: 1;
|
|
15
|
-
|
|
16
|
-
@if $breakpoint == medium {
|
|
17
|
-
$grid-column-count: $grid-columns-medium;
|
|
18
|
-
$grid-column-prefix: $grid-medium-col-prefix;
|
|
19
|
-
$gutter: map-get($grid-gutter-widths, default);
|
|
20
|
-
$media-query-keyword: min-width;
|
|
21
|
-
$media-query-width: $threshold-4-6-col;
|
|
22
|
-
$logo-column-span: 1;
|
|
23
|
-
} @else if $breakpoint == large {
|
|
24
|
-
$grid-column-count: $grid-columns;
|
|
25
|
-
$grid-column-prefix: $grid-large-col-prefix;
|
|
26
|
-
$gutter: map-get($grid-gutter-widths, default);
|
|
27
|
-
$media-query-keyword: min-width;
|
|
28
|
-
$media-query-width: $threshold-6-12-col;
|
|
29
|
-
$logo-column-span: $column-span;
|
|
1
|
+
@mixin vf-p-logo-section {
|
|
2
|
+
// deprecated, to be removed in future version
|
|
3
|
+
.p-logo-section__title {
|
|
4
|
+
@extend %small-caps-text;
|
|
30
5
|
}
|
|
31
6
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
$logo-column-span: min($logo-column-span, $column-count);
|
|
7
|
+
$logo-section-item-size: 8rem; // height of the logos on large screens
|
|
8
|
+
$logo-section-item-size-medium: 6rem; // height of the logos on medium screens
|
|
9
|
+
$logo-section-item-size-small: 4rem; // height of the logos on small screens
|
|
10
|
+
|
|
11
|
+
$logo-section-offset: 1rem; // offset by which rows are pulled closer together
|
|
12
|
+
$logo-section-offset-medium: 0.75rem; // height of the logos on medium screens
|
|
13
|
+
$logo-section-offset-small: 0.5rem; // height of the logos on small screens
|
|
14
|
+
|
|
15
|
+
$logo-section-item-gap: 3rem;
|
|
16
|
+
$logo-section-item-gap-dense: calc(0.5 * $logo-section-item-gap);
|
|
17
|
+
|
|
18
|
+
.p-logo-section,
|
|
19
|
+
.p-logo-section--dense {
|
|
20
|
+
.p-logo-section__item {
|
|
21
|
+
display: inline-block;
|
|
22
|
+
margin: 0;
|
|
23
|
+
margin-bottom: calc(-1 * $logo-section-offset-small); // pull the next row of logos up
|
|
24
|
+
margin-right: $logo-section-item-gap;
|
|
25
|
+
margin-top: calc(-1 * $logo-section-offset-small); // pull the previous row of logos down
|
|
26
|
+
|
|
27
|
+
@media (min-width: $breakpoint-small) {
|
|
28
|
+
margin-bottom: calc(-1 * $logo-section-offset-medium);
|
|
29
|
+
margin-top: calc(-1 * $logo-section-offset-medium);
|
|
56
30
|
}
|
|
57
31
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
// 100% / $column-count - $gutters-total-width / $column-count
|
|
64
|
-
// Thus the calculation is split into 2 parts, which are then used in the final calc() function:
|
|
65
|
-
|
|
66
|
-
// calculate the width of a single column by dividing the entire width by the number of columns it represents:
|
|
67
|
-
$percentage-width-of-one-col: math.div(100%, $column-count);
|
|
68
|
-
|
|
69
|
-
// multiply the width of one column by the number of columns the logo needs to span
|
|
70
|
-
$percentage-contribution: $logo-column-span * $percentage-width-of-one-col;
|
|
32
|
+
@media (min-width: $breakpoint-large) {
|
|
33
|
+
margin-bottom: calc(-1 * $logo-section-offset);
|
|
34
|
+
margin-top: calc(-1 * $logo-section-offset);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
71
37
|
|
|
72
|
-
|
|
73
|
-
|
|
38
|
+
.p-logo-section__logo {
|
|
39
|
+
display: block;
|
|
40
|
+
height: $logo-section-item-size-small;
|
|
41
|
+
max-width: none; // prevent logos from squishing on small screens
|
|
42
|
+
width: auto;
|
|
74
43
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
44
|
+
@media (min-width: $breakpoint-small) {
|
|
45
|
+
height: $logo-section-item-size-medium;
|
|
46
|
+
}
|
|
78
47
|
|
|
79
|
-
|
|
80
|
-
|
|
48
|
+
@media (min-width: $breakpoint-large) {
|
|
49
|
+
height: $logo-section-item-size;
|
|
81
50
|
}
|
|
82
51
|
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
52
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
width: $percentage-contribution;
|
|
89
|
-
} @else {
|
|
90
|
-
width: calc($percentage-contribution - $rem-contribution);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
53
|
+
.p-logo-section__items {
|
|
54
|
+
line-height: 0; // prevent space between rows of inline logos
|
|
93
55
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
.p-logo-section__title {
|
|
98
|
-
@extend %small-caps-text;
|
|
99
|
-
}
|
|
56
|
+
// compensate for the negative margin on the logos
|
|
57
|
+
padding-bottom: $logo-section-offset-small;
|
|
58
|
+
padding-top: $logo-section-offset-small;
|
|
100
59
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
.p-logo-section__items {
|
|
106
|
-
display: flex;
|
|
107
|
-
flex-wrap: wrap;
|
|
108
|
-
justify-content: center;
|
|
109
|
-
margin-bottom: $spv--x-large;
|
|
110
|
-
// negates the margin of logos that sit in the first column
|
|
111
|
-
margin-left: -#{$margin-small};
|
|
112
|
-
width: calc(100% + $margin-small);
|
|
113
|
-
|
|
114
|
-
@media (min-width: $threshold-4-6-col) {
|
|
115
|
-
margin-left: -$margin-medium;
|
|
116
|
-
width: calc(100% + $margin-medium);
|
|
117
|
-
}
|
|
60
|
+
@media (min-width: $breakpoint-small) {
|
|
61
|
+
padding-bottom: $logo-section-offset-medium;
|
|
62
|
+
padding-top: $logo-section-offset-medium;
|
|
63
|
+
}
|
|
118
64
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
65
|
+
@media (min-width: $breakpoint-large) {
|
|
66
|
+
padding-bottom: $logo-section-offset;
|
|
67
|
+
padding-top: $logo-section-offset;
|
|
68
|
+
}
|
|
122
69
|
}
|
|
123
70
|
}
|
|
124
71
|
|
|
125
|
-
.p-logo-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
margin-left: $margin-medium;
|
|
72
|
+
.p-logo-section--dense {
|
|
73
|
+
.p-logo-section__item {
|
|
74
|
+
display: inline-block;
|
|
75
|
+
margin: 0;
|
|
76
|
+
margin-bottom: calc(-1 * $logo-section-offset-small); // pull the next row of logos up
|
|
77
|
+
margin-right: $logo-section-item-gap-dense;
|
|
78
|
+
margin-top: calc(-1 * $logo-section-offset-small); // pull the previous row of logos down
|
|
133
79
|
}
|
|
134
80
|
|
|
135
|
-
|
|
136
|
-
|
|
81
|
+
.p-logo-section__logo {
|
|
82
|
+
height: $logo-section-item-size-small;
|
|
137
83
|
}
|
|
138
84
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
.p-logo-section--dense & {
|
|
144
|
-
@include vf-p-set-logo-section-item-width($breakpoint: large);
|
|
85
|
+
.p-logo-section__items {
|
|
86
|
+
padding-bottom: $logo-section-offset-small;
|
|
87
|
+
padding-top: $logo-section-offset-small;
|
|
145
88
|
}
|
|
146
89
|
}
|
|
147
|
-
|
|
148
|
-
.p-logo-section__logo {
|
|
149
|
-
height: auto;
|
|
150
|
-
width: 100%;
|
|
151
|
-
}
|
|
152
90
|
}
|
|
@@ -588,7 +588,7 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
|
|
|
588
588
|
position: absolute;
|
|
589
589
|
right: map-get($grid-margin-widths, small);
|
|
590
590
|
text-indent: calc(100% + 10rem);
|
|
591
|
-
top:
|
|
591
|
+
top: $spv--large;
|
|
592
592
|
transform: rotate(-90deg);
|
|
593
593
|
width: map-get($icon-sizes, default);
|
|
594
594
|
|
|
@@ -598,6 +598,7 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
|
|
|
598
598
|
|
|
599
599
|
@media (min-width: $breakpoint-navigation-threshold) {
|
|
600
600
|
right: calc($sph--small + 1px); // 1px for the border on selects. this aligns it with any selects underneath
|
|
601
|
+
top: calc($spv--large + map-get($nudges, x-small));
|
|
601
602
|
transform: rotate(0deg);
|
|
602
603
|
}
|
|
603
604
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
@import 'settings';
|
|
2
|
+
|
|
3
|
+
@mixin vf-p-suru {
|
|
4
|
+
.p-suru {
|
|
5
|
+
aspect-ratio: calc(2216 / 428); // aspect ratio calculated from image dimensions
|
|
6
|
+
background-image: url('#{$assets-path}7f34ade9-website_suru_25.jpg');
|
|
7
|
+
background-size: contain;
|
|
8
|
+
display: none; // only show suru on large screens
|
|
9
|
+
margin: 0 auto;
|
|
10
|
+
max-width: $grid-max-width;
|
|
11
|
+
|
|
12
|
+
// show suru only on large screens
|
|
13
|
+
@media (min-width: $breakpoint-large) {
|
|
14
|
+
display: block;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&.is-dark {
|
|
18
|
+
aspect-ratio: calc(2580 / 501); // aspect ratio calculated from image dimensions
|
|
19
|
+
background-image: url('#{$assets-path}9469ef82-1_website_suru_DARK_25%20(1)122.jpg');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
package/scss/_patterns_tabs.scss
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
@import 'settings';
|
|
2
2
|
|
|
3
3
|
@mixin vf-p-tabs {
|
|
4
|
-
// for _patterns_tabs.scss
|
|
5
|
-
$color-tabs-active-bar: $colors--light-theme--text-default !default;
|
|
6
|
-
|
|
7
4
|
.p-tabs {
|
|
8
5
|
border-radius: 0;
|
|
9
6
|
overflow: hidden;
|
|
@@ -44,7 +41,6 @@
|
|
|
44
41
|
|
|
45
42
|
align-items: center;
|
|
46
43
|
border: none;
|
|
47
|
-
color: $colors--light-theme--text-default;
|
|
48
44
|
display: flex;
|
|
49
45
|
gap: $sph--small;
|
|
50
46
|
height: 100%;
|
|
@@ -55,7 +51,6 @@
|
|
|
55
51
|
|
|
56
52
|
&::before {
|
|
57
53
|
@extend %vf-pseudo-border;
|
|
58
|
-
@include vf-transition(#{background-color, border-color}, snap, in);
|
|
59
54
|
|
|
60
55
|
bottom: 0;
|
|
61
56
|
z-index: 1;
|
|
@@ -71,20 +66,88 @@
|
|
|
71
66
|
}
|
|
72
67
|
}
|
|
73
68
|
|
|
69
|
+
&:active,
|
|
70
|
+
&[aria-selected='true'] {
|
|
71
|
+
// Hide the highlight when focussing (in combination with the parent
|
|
72
|
+
// states) in browsers that don't support focus-visible.
|
|
73
|
+
&:focus::before,
|
|
74
|
+
&:focus::after {
|
|
75
|
+
content: none;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Theming
|
|
82
|
+
@if ($theme-default-p-tabs == 'dark') {
|
|
83
|
+
.p-tabs {
|
|
84
|
+
@include vf-p-tabs-dark-theme;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.p-tabs.is-light {
|
|
88
|
+
@include vf-p-tabs-light-theme;
|
|
89
|
+
}
|
|
90
|
+
} @else {
|
|
91
|
+
.p-tabs {
|
|
92
|
+
@include vf-p-tabs-light-theme;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.p-tabs.is-dark {
|
|
96
|
+
@include vf-p-tabs-dark-theme;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
@mixin vf-p-tabs-theme($color-tabs-text, $color-tabs-border, $color-tabs-highlight-hover) {
|
|
102
|
+
color: $color-tabs-text;
|
|
103
|
+
.p-tabs {
|
|
104
|
+
&__list::after {
|
|
105
|
+
background-color: $color-tabs-border;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
&__link {
|
|
109
|
+
background-color: transparent;
|
|
110
|
+
|
|
111
|
+
color: $color-tabs-text;
|
|
112
|
+
@include vf-highlight-bar(transparent, bottom, false);
|
|
113
|
+
|
|
74
114
|
// Display the highlight when focussing in modern browsers that support
|
|
75
115
|
// focus-visible.
|
|
76
116
|
&:focus:not(:focus-visible) {
|
|
77
|
-
@include vf-highlight-bar($color-tabs-
|
|
117
|
+
@include vf-highlight-bar($color-tabs-text, bottom, false);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
&:hover {
|
|
121
|
+
@include vf-highlight-bar($color-tabs-highlight-hover, bottom, false);
|
|
122
|
+
|
|
123
|
+
&::before,
|
|
124
|
+
&:focus:not(:focus-visible)::before {
|
|
125
|
+
bottom: 1px;
|
|
126
|
+
height: calc($bar-thickness - 1px);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Display the highlight when focussing (in combination with the parent
|
|
130
|
+
// states) in modern browsers that support focus-visible.
|
|
131
|
+
&:focus:not(:focus-visible) {
|
|
132
|
+
@include vf-highlight-bar($color-tabs-highlight-hover, bottom, false);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Hide the highlight when focussing (in combination with the parent
|
|
136
|
+
// states) in browsers that don't support focus-visible.
|
|
137
|
+
&:focus::before,
|
|
138
|
+
&:focus::after {
|
|
139
|
+
content: none;
|
|
140
|
+
}
|
|
78
141
|
}
|
|
79
142
|
|
|
80
143
|
&:active,
|
|
81
144
|
&[aria-selected='true'] {
|
|
82
|
-
@include vf-highlight-bar($color-tabs-
|
|
145
|
+
@include vf-highlight-bar($color-tabs-text, bottom, false);
|
|
83
146
|
|
|
84
147
|
// Display the highlight when focussing (in combination with the parent
|
|
85
148
|
// states) in modern browsers that support focus-visible.
|
|
86
149
|
&:focus:not(:focus-visible) {
|
|
87
|
-
@include vf-highlight-bar($color-tabs-
|
|
150
|
+
@include vf-highlight-bar($color-tabs-text, bottom, false);
|
|
88
151
|
}
|
|
89
152
|
|
|
90
153
|
// Hide the highlight when focussing (in combination with the parent
|
|
@@ -97,3 +160,19 @@
|
|
|
97
160
|
}
|
|
98
161
|
}
|
|
99
162
|
}
|
|
163
|
+
|
|
164
|
+
@mixin vf-p-tabs-light-theme {
|
|
165
|
+
@include vf-p-tabs-theme(
|
|
166
|
+
$color-tabs-text: $colors--light-theme--text-default,
|
|
167
|
+
$color-tabs-border: $colors--light-theme--border-default,
|
|
168
|
+
$color-tabs-highlight-hover: $colors--light-theme--border-default
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
@mixin vf-p-tabs-dark-theme {
|
|
173
|
+
@include vf-p-tabs-theme(
|
|
174
|
+
$color-tabs-text: $colors--dark-theme--text-default,
|
|
175
|
+
$color-tabs-border: $colors--dark-theme--border-default,
|
|
176
|
+
$color-tabs-highlight-hover: $colors--dark-theme--border-default
|
|
177
|
+
);
|
|
178
|
+
}
|
|
@@ -157,6 +157,7 @@ $colors--dark-theme--text-inactive: rgba($colors--dark-theme--text-default, $ina
|
|
|
157
157
|
|
|
158
158
|
$colors--dark-theme--background-default: #262626 !default;
|
|
159
159
|
$colors--dark-theme--background-alt: #2d2d2d !default;
|
|
160
|
+
$colors--dark-theme--background-inputs: rgba($colors--dark-theme--text-default, $input-background-opacity-amount) !default;
|
|
160
161
|
$colors--dark-theme--background-active: rgba($colors--dark-theme--text-default, $active-background-opacity-amount) !default;
|
|
161
162
|
$colors--dark-theme--background-hover: rgba($colors--dark-theme--text-default, $hover-background-opacity-amount) !default;
|
|
162
163
|
$colors--dark-theme--background-overlay: transparentize($color-dark, 0.15) !default;
|
|
@@ -195,9 +196,9 @@ $colors-dark-theme--tinted-backgrounds: (
|
|
|
195
196
|
|
|
196
197
|
$colors-dark-theme--tinted-borders: (
|
|
197
198
|
neutral: hsl(0deg 0% 65%),
|
|
198
|
-
positive:
|
|
199
|
-
caution:
|
|
200
|
-
negative:
|
|
199
|
+
positive: #62a36c,
|
|
200
|
+
caution: #c48831,
|
|
201
|
+
negative: #d17b85,
|
|
201
202
|
information: hsl(210deg 80% 65%),
|
|
202
203
|
);
|
|
203
204
|
|
|
@@ -8,6 +8,8 @@ $sp-unit-ratio: 0.5 !default;
|
|
|
8
8
|
$sp-unit: 1rem * $sp-unit-ratio !default;
|
|
9
9
|
|
|
10
10
|
$font-sizes: (
|
|
11
|
+
display: 5,
|
|
12
|
+
display-mobile: 4,
|
|
11
13
|
h1: 2.5,
|
|
12
14
|
h1-mobile: 2,
|
|
13
15
|
h2: 2.5,
|
|
@@ -21,6 +23,8 @@ $font-sizes: (
|
|
|
21
23
|
) !default;
|
|
22
24
|
|
|
23
25
|
$line-heights: (
|
|
26
|
+
display: 11 * $sp-unit,
|
|
27
|
+
display-mobile: 9 * $sp-unit,
|
|
24
28
|
h1: 6 * $sp-unit,
|
|
25
29
|
h1-mobile: 5 * $sp-unit,
|
|
26
30
|
h2: 6 * $sp-unit,
|
|
@@ -36,6 +40,8 @@ $line-heights: (
|
|
|
36
40
|
|
|
37
41
|
// baseline nudges for type scale ratio of (16/14)^2
|
|
38
42
|
$nudges: (
|
|
43
|
+
display: 0.35rem,
|
|
44
|
+
display-mobile: 0.25rem,
|
|
39
45
|
h1-large: 0.55rem,
|
|
40
46
|
h1-mobile: 0.55rem,
|
|
41
47
|
h1: 0.55rem,
|
|
@@ -88,6 +94,8 @@ $sph--x-large: $sp-unit * 3 !default;
|
|
|
88
94
|
|
|
89
95
|
// Space after text elements
|
|
90
96
|
$sp-after: (
|
|
97
|
+
display: $spv--x-large,
|
|
98
|
+
display-mobile: $spv--x-large,
|
|
91
99
|
h1: $spv--x-large,
|
|
92
100
|
h1-mobile: $spv--x-large,
|
|
93
101
|
h2: $spv--x-large,
|
package/scss/_vanilla.scss
CHANGED
|
@@ -53,6 +53,7 @@
|
|
|
53
53
|
@import 'patterns_table-sortable';
|
|
54
54
|
@import 'patterns_tabs';
|
|
55
55
|
@import 'patterns_tooltips';
|
|
56
|
+
@import 'patterns_suru';
|
|
56
57
|
|
|
57
58
|
// Layouts
|
|
58
59
|
@import 'layouts_application';
|
|
@@ -142,6 +143,7 @@
|
|
|
142
143
|
@include vf-p-table-sortable;
|
|
143
144
|
@include vf-p-tabs;
|
|
144
145
|
@include vf-p-tooltips;
|
|
146
|
+
@include vf-p-suru;
|
|
145
147
|
|
|
146
148
|
// Layouts
|
|
147
149
|
@include vf-l-application;
|