vanilla-framework 4.13.0 → 4.15.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vanilla-framework",
3
- "version": "4.13.0",
3
+ "version": "4.15.0",
4
4
  "author": {
5
5
  "email": "webteam@canonical.com",
6
6
  "name": "Canonical Webteam"
@@ -31,14 +31,14 @@
31
31
  "build": "yarn build-scss && yarn build-js && yarn build-class-references",
32
32
  "build-scss": "sass --load-path=node_modules --embed-sources --style=compressed scss:build/css && postcss --use autoprefixer --replace 'build/css/**/*.css' --map",
33
33
  "build:essential": "yarn run build-js && sass --load-path=node_modules --embed-sources --style=compressed scss/build.scss:build/css/build.css scss/docs:build/css/docs && postcss --use autoprefixer --replace 'build/css/**/*.css' --map",
34
- "build-js": "mkdir -p build/js/modules && cp node_modules/@canonical/cookie-policy/build/js/cookie-policy.js build/js/modules && cp node_modules/@canonical/latest-news/dist/latest-news.js build/js/modules",
34
+ "build-js": "mkdir -p build/js/modules && cp node_modules/@canonical/cookie-policy/build/js/cookie-policy.js build/js/modules && cp node_modules/@canonical/latest-news/dist/latest-news.js build/js/modules && cp node_modules/js-beautify/js/lib/beautify.js node_modules/js-beautify/js/lib/beautify-html.js node_modules/js-beautify/js/lib/beautify-css.js build/js/modules",
35
35
  "build-class-references": "node scripts/create-class-references.js",
36
36
  "cypress:open": "cypress open",
37
37
  "cypress:run": "cypress run",
38
38
  "serve": "./entrypoint 0.0.0.0:${PORT}",
39
39
  "test-scss": "node -e 'require(\"./tests/parker\").parkerTest()'",
40
40
  "test-spelling": "mdspell templates/docs/**/*.md -r -n -a --en-gb",
41
- "test": "yarn lint-scss && yarn lint-prettier && yarn test-spelling && yarn test-scss",
41
+ "test": "yarn lint-scss && yarn lint-prettier && yarn test-spelling && yarn test-scss && yarn jest",
42
42
  "lint-prettier": "prettier -c .",
43
43
  "lint-scss": "stylelint 'scss/**/*.scss'",
44
44
  "watch:scss": "sass --load-path=node_modules --embed-sources --style=compressed scss:build/css --watch",
@@ -57,22 +57,24 @@
57
57
  "devDependencies": {
58
58
  "@canonical/cookie-policy": "3.6.4",
59
59
  "@canonical/latest-news": "1.5.0",
60
- "@percy/cli": "1.28.7",
60
+ "@percy/cli": "1.29.0",
61
61
  "@testing-library/cypress": "10.0.2",
62
62
  "autoprefixer": "10.4.19",
63
- "cypress": "13.10.0",
63
+ "cypress": "13.13.2",
64
+ "jest": "29.7.0",
65
+ "js-beautify": "1.15.1",
64
66
  "markdown-spellcheck": "1.3.1",
65
67
  "parker": "0.0.10",
66
- "postcss": "8.4.38",
68
+ "postcss": "8.4.40",
67
69
  "postcss-cli": "11.0.0",
68
70
  "postcss-scss": "4.0.9",
69
- "prettier": "3.3.0",
70
- "sass": "1.77.4",
71
- "stylelint": "16.6.1",
72
- "stylelint-config-recommended-scss": "14.0.0",
71
+ "prettier": "3.3.3",
72
+ "sass": "1.77.8",
73
+ "stylelint": "16.8.1",
74
+ "stylelint-config-recommended-scss": "14.1.0",
73
75
  "stylelint-order": "6.0.4",
74
- "stylelint-prettier": "5.0.0",
76
+ "stylelint-prettier": "5.0.2",
75
77
  "svgo": "3.3.2",
76
- "yaml": "2.4.3"
78
+ "yaml": "2.5.0"
77
79
  }
78
80
  }
@@ -78,11 +78,11 @@
78
78
  outline: none;
79
79
 
80
80
  &::-webkit-slider-thumb {
81
- outline: $bar-thickness solid $color-focus;
81
+ outline: $bar-thickness solid $colors--theme--focus;
82
82
  }
83
83
 
84
84
  &::-moz-range-thumb {
85
- outline: $bar-thickness solid $color-focus;
85
+ outline: $bar-thickness solid $colors--theme--focus;
86
86
  }
87
87
  }
88
88
 
@@ -163,11 +163,6 @@
163
163
  &::-webkit-search-results-decoration {
164
164
  display: none;
165
165
  }
166
-
167
- &::-webkit-search-cancel-button {
168
- -webkit-appearance: searchfield-cancel-button; // stylelint-disable-line property-no-vendor-prefix
169
- cursor: pointer;
170
- }
171
166
  }
172
167
 
173
168
  input[list] {
@@ -17,10 +17,35 @@
17
17
  background-image: vf-icon-chevron-url($color);
18
18
  }
19
19
 
20
+ // Default chevron is the same as down chevron - points down, as in its usage
21
+ // in accordions/dropdowns
20
22
  @mixin vf-icon-chevron-themed {
21
23
  @include vf-themed-icon($light-value: vf-icon-chevron-url($colors--light-theme--icon), $dark-value: vf-icon-chevron-url($colors--dark-theme--icon));
22
24
  }
23
25
 
26
+ @mixin vf-icon-chevron-up-themed {
27
+ @include vf-themed-icon($light-value: vf-icon-chevron-url($colors--light-theme--icon), $dark-value: vf-icon-chevron-url($colors--dark-theme--icon));
28
+ transform: rotate(180deg);
29
+ }
30
+
31
+ @mixin vf-icon-chevron-right-themed {
32
+ @include vf-themed-icon($light-value: vf-icon-chevron-url($colors--light-theme--icon), $dark-value: vf-icon-chevron-url($colors--dark-theme--icon));
33
+ transform: rotate(-90deg);
34
+ }
35
+
36
+ @mixin vf-icon-chevron-down-themed {
37
+ @include vf-icon-chevron-themed;
38
+ }
39
+
40
+ @mixin vf-icon-chevron-left-themed {
41
+ @include vf-themed-icon($light-value: vf-icon-chevron-url($colors--light-theme--icon), $dark-value: vf-icon-chevron-url($colors--dark-theme--icon));
42
+ transform: rotate(90deg);
43
+ }
44
+
45
+ @mixin vf-icon-chevron-muted {
46
+ @include vf-themed-icon($light-value: vf-icon-chevron-url($colors--light-theme--text-muted), $dark-value: vf-icon-chevron-url($colors--dark-theme--text-muted));
47
+ }
48
+
24
49
  // anchor
25
50
  @function vf-icon-anchor-url($color) {
26
51
  @return url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 1a2.5 2.5 0 01.75 4.885v1.068h2.27v1.5H8.75v5.022c2.438-.161 4.172-1.077 4.172-1.669h1.5C14.422 13.57 11.547 15 8 15c-3.547 0-6.422-1.43-6.422-3.194h1.5c0 .592 1.734 1.508 4.172 1.67V8.452H4.904v-1.5H7.25V5.886A2.501 2.501 0 018 1zm0 1.5a1 1 0 100 2 1 1 0 000-2z' fill='#{vf-url-friendly-color($color)}' fill-rule='nonzero'/%3E%3C/svg%3E");
@@ -269,6 +294,10 @@
269
294
  @include vf-themed-icon($light-value: vf-icon-search-url($colors--light-theme--icon), $dark-value: vf-icon-search-url($colors--dark-theme--icon));
270
295
  }
271
296
 
297
+ @mixin vf-icon-search-muted {
298
+ @include vf-themed-icon($light-value: vf-icon-search-url($colors--light-theme--text-muted), $dark-value: vf-icon-search-url($colors--dark-theme--text-muted));
299
+ }
300
+
272
301
  // success
273
302
  @function vf-icon-success-url($color: $color-positive, $color-symbol: $color-x-light) {
274
303
  @return 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");
@@ -43,7 +43,7 @@
43
43
  }
44
44
 
45
45
  %vf-card-padding {
46
- overflow: auto;
46
+ overflow: auto; // prevent overflow of child margins
47
47
  padding: $spv--large;
48
48
  }
49
49
 
@@ -52,8 +52,6 @@
52
52
  @extend %vf-card-padding;
53
53
 
54
54
  margin-bottom: $spv--x-large;
55
- overflow: auto; // prevent overflow of child margins
56
- padding: $spv--large;
57
55
  }
58
56
 
59
57
  //accordion, table
@@ -62,7 +62,7 @@
62
62
 
63
63
  // Adds visual focus to elements on :focus-visible,
64
64
  // or :focus if the browser doesn't support the former
65
- @mixin vf-focus($color: $color-focus, $width: $bar-thickness, $has-validation: false) {
65
+ @mixin vf-focus($color: $colors--theme--focus, $width: $bar-thickness, $has-validation: false) {
66
66
  &:focus {
67
67
  outline: $width solid $color;
68
68
  outline-offset: -#{$width};
@@ -1,14 +1,9 @@
1
1
  @mixin vf-l-application-panels {
2
2
  .p-panel {
3
- background: $colors--light-theme--background-default;
4
- color: $colors--light-theme--text-default;
3
+ background: $colors--theme--background-default;
4
+ color: $colors--theme--text-default;
5
5
  max-width: 100%;
6
6
  min-height: 100%; // make sure it fills whole container even when has little content
7
-
8
- &.is-dark {
9
- background: $colors--dark-theme--background-default;
10
- color: $colors--dark-theme--text-default;
11
- }
12
7
  }
13
8
 
14
9
  .p-panel__header {
@@ -18,14 +13,10 @@
18
13
  }
19
14
 
20
15
  .p-panel__header.is-sticky {
21
- background: $colors--light-theme--background-default;
16
+ background: $colors--theme--background-default;
22
17
  position: sticky;
23
18
  top: 0;
24
19
  z-index: 5;
25
-
26
- .p-panel.is-dark & {
27
- background: $colors--dark-theme--background-default;
28
- }
29
20
  }
30
21
 
31
22
  .p-panel__content {
@@ -229,7 +229,7 @@ $application-layout--side-nav-width-expanded: 15rem !default;
229
229
  }
230
230
 
231
231
  .l-application .l-status {
232
- border-top: 1px solid $colors--light-theme--border-low-contrast;
232
+ border-top: 1px solid $colors--theme--border-default;
233
233
  grid-area: status;
234
234
  z-index: 102;
235
235
  }
@@ -265,7 +265,7 @@ $application-layout--side-nav-width-expanded: 15rem !default;
265
265
 
266
266
  @media (min-width: $application-layout--breakpoint-side-nav-collapsed) {
267
267
  &.is-pinned {
268
- border-left: 1px solid $colors--light-theme--border-low-contrast;
268
+ border-left: 1px solid $colors--theme--border-default;
269
269
  box-shadow: none;
270
270
  grid-area: aside;
271
271
  justify-self: auto;
@@ -3,7 +3,6 @@
3
3
  @mixin vf-p-article-pagination {
4
4
  %chevron-icon {
5
5
  @extend %icon;
6
- @include vf-icon-chevron-themed;
7
6
 
8
7
  content: '';
9
8
  position: absolute;
@@ -73,9 +72,9 @@
73
72
 
74
73
  &::before {
75
74
  @extend %chevron-icon;
75
+ @include vf-icon-chevron-left-themed;
76
76
 
77
77
  left: $sp-small;
78
- transform: rotate(90deg);
79
78
  }
80
79
  }
81
80
 
@@ -95,9 +94,9 @@
95
94
 
96
95
  &::after {
97
96
  @extend %chevron-icon;
97
+ @include vf-icon-chevron-right-themed;
98
98
 
99
99
  right: $sp-small;
100
- transform: rotate(-90deg);
101
100
  }
102
101
  }
103
102
  }
@@ -80,7 +80,7 @@
80
80
  $button-disabled-border-color: $colors--theme--button-positive-default,
81
81
  $button-text-color: $colors--theme--button-positive-text
82
82
  );
83
- @include vf-focus($color-focus-positive);
83
+ @include vf-focus($colors--theme--positive-focus);
84
84
  }
85
85
  }
86
86
 
@@ -0,0 +1,20 @@
1
+ /*
2
+ @classreference
3
+ cta-block:
4
+ CTA Block:
5
+ .p-cta-block:
6
+ Main element of the CTA block.
7
+ */
8
+
9
+ @import 'settings';
10
+
11
+ @mixin vf-p-cta-block {
12
+ .p-cta-block {
13
+ align-items: baseline;
14
+ border-top: 1px solid $colors--theme--border-low-contrast;
15
+ display: flex;
16
+ flex-wrap: wrap;
17
+ padding-bottom: $spv--x-large;
18
+ padding-top: $spv--small;
19
+ }
20
+ }
@@ -65,7 +65,7 @@
65
65
 
66
66
  %vf-pseudo-tick-box-focused {
67
67
  &::before {
68
- outline: $bar-thickness solid $color-focus;
68
+ outline: $bar-thickness solid $colors--theme--focus;
69
69
  }
70
70
  }
71
71
 
@@ -39,7 +39,7 @@
39
39
  // (see https://github.com/canonical/vanilla-framework/issues/3199)
40
40
  .grid-demo .col,
41
41
  .grid-demo [class*='#{$grid-column-prefix}'] {
42
- background: transparentize($color-negative, 0.9);
42
+ background: $colors--theme--background-negative-default;
43
43
  margin-bottom: $spv--small;
44
44
  }
45
45
 
@@ -167,11 +167,12 @@
167
167
 
168
168
  // variants
169
169
 
170
+ // deprecated, will be removed in v5
170
171
  .row.is-bordered {
171
172
  position: relative;
172
173
 
173
174
  &::before {
174
- background: $color-mid-light;
175
+ background: $colors--theme--border-low-contrast;
175
176
  content: '';
176
177
  height: 1px;
177
178
  left: map-get($grid-margin-widths, small);
@@ -319,6 +320,77 @@
319
320
  }
320
321
  }
321
322
 
323
+ // 75/25 split on medium and large screens
324
+ .row--75-25 {
325
+ @extend %vf-row;
326
+
327
+ > .col {
328
+ @include vf-grid-column($grid-columns-small);
329
+
330
+ @media (min-width: $threshold-4-6-col) {
331
+ &:nth-of-type(1) {
332
+ @include vf-grid-column(4);
333
+ }
334
+
335
+ &:nth-of-type(2) {
336
+ @include vf-grid-column(2);
337
+ }
338
+
339
+ // if there is only one column, use the whole width
340
+ &:only-of-type {
341
+ @include vf-grid-column(6);
342
+ }
343
+ }
344
+
345
+ @media (min-width: $threshold-6-12-col) {
346
+ &:nth-of-type(1) {
347
+ @include vf-grid-column($col-75);
348
+ }
349
+
350
+ &:nth-of-type(2) {
351
+ @include vf-grid-column($col-25);
352
+ }
353
+ }
354
+ }
355
+ }
356
+
357
+ .row--75-25-on-medium {
358
+ @extend %vf-row;
359
+
360
+ > .col {
361
+ @media ($threshold-4-6-col <= width < $threshold-6-12-col) {
362
+ &:nth-of-type(1) {
363
+ @include vf-grid-column(4);
364
+ }
365
+
366
+ &:nth-of-type(2) {
367
+ @include vf-grid-column(2);
368
+ }
369
+
370
+ // if there is only one column, use the whole width
371
+ &:only-of-type {
372
+ @include vf-grid-column(6);
373
+ }
374
+ }
375
+ }
376
+ }
377
+
378
+ .row--75-25-on-large {
379
+ @extend %vf-row;
380
+
381
+ > .col {
382
+ @media (min-width: $threshold-6-12-col) {
383
+ &:nth-of-type(1) {
384
+ @include vf-grid-column($col-75);
385
+ }
386
+
387
+ &:nth-of-type(2) {
388
+ @include vf-grid-column($col-25);
389
+ }
390
+ }
391
+ }
392
+ }
393
+
322
394
  .row--25-25-50 {
323
395
  @extend %vf-row;
324
396
 
@@ -130,21 +130,23 @@
130
130
 
131
131
  @mixin vf-p-icon-chevron {
132
132
  .p-icon--chevron-up {
133
- transform: rotate(180deg);
134
- }
135
- .p-icon--chevron-left {
136
- transform: rotate(90deg);
133
+ @include vf-icon-chevron-up-themed;
137
134
  }
138
135
  .p-icon--chevron-right {
139
- transform: rotate(-90deg);
136
+ @include vf-icon-chevron-right-themed;
137
+ }
138
+ .p-icon--chevron-down {
139
+ @include vf-icon-chevron-down-themed;
140
+ }
141
+ .p-icon--chevron-left {
142
+ @include vf-icon-chevron-left-themed;
140
143
  }
141
144
 
142
- .p-icon--chevron-left,
145
+ .p-icon--chevron-up,
143
146
  .p-icon--chevron-right,
144
147
  .p-icon--chevron-down,
145
- .p-icon--chevron-up {
148
+ .p-icon--chevron-left {
146
149
  @extend %icon;
147
- @include vf-icon-chevron-themed;
148
150
  }
149
151
  }
150
152
 
@@ -4,6 +4,8 @@
4
4
  Image container:
5
5
  .p-image-container:
6
6
  Main element of the image component.
7
+ "&.is-cover":
8
+ Cover variant, to be used to set the `.p-image-container__image` within to cover the container.
7
9
  "&.is-highlighted":
8
10
  Highlighted variant, to be used to highlight contents.
9
11
  .p-image-container--16-9:
@@ -27,14 +29,28 @@
27
29
  .p-image-container,
28
30
  [class^='p-image-container--'] {
29
31
  align-items: center;
30
- display: grid;
32
+ display: flex;
31
33
  justify-content: center;
32
34
  text-align: center;
35
+
36
+ &.is-highlighted {
37
+ background: $colors--theme--background-alt;
38
+ }
39
+
33
40
  .p-image-container__image {
41
+ // max height prevents the image from stretching the container
42
+ // when the aspect ratio is set, and object-fit ensures the aspect ratio
43
+ // of the image content is maintained
44
+ max-height: 100%;
34
45
  object-fit: contain;
35
46
  }
36
- &.is-highlighted {
37
- background: $colors--theme--background-alt;
47
+
48
+ &.is-cover {
49
+ .p-image-container__image {
50
+ height: 100%;
51
+ object-fit: cover;
52
+ width: 100%;
53
+ }
38
54
  }
39
55
  }
40
56
 
@@ -77,4 +77,30 @@
77
77
  padding: 0 $sph--small 0 $sph--large;
78
78
  text-decoration: none;
79
79
  }
80
+
81
+ .p-link--anchor-heading {
82
+ color: $colors--theme--text-default;
83
+
84
+ &:visited {
85
+ color: $colors--theme--text-default;
86
+ }
87
+
88
+ &::after {
89
+ @extend %icon;
90
+ @include vf-icon-get-link-themed;
91
+
92
+ content: '';
93
+ margin-left: $sph--small;
94
+ padding: $spv--small $sph--small;
95
+ vertical-align: baseline;
96
+ visibility: hidden;
97
+ }
98
+
99
+ &:hover,
100
+ &:focus {
101
+ &::after {
102
+ visibility: visible;
103
+ }
104
+ }
105
+ }
80
106
  }
@@ -4,17 +4,16 @@
4
4
  @extend %small-caps-text;
5
5
  }
6
6
 
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
7
+ $logo-section-item-size: 6.5rem; // height of the logos on large screens
9
8
  $logo-section-item-size-small: 4rem; // height of the logos on small screens
10
9
 
11
10
  $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
11
  $logo-section-offset-small: 0.5rem; // height of the logos on small screens
14
12
 
15
- $logo-section-item-gap: 3rem;
16
- $logo-section-item-gap-dense: calc(0.5 * $logo-section-item-gap);
13
+ $logo-section-item-gap: 2rem;
17
14
 
15
+ // TODO: Remove .p-logo-section--dense since it's been deprecated in favor
16
+ // of just using .p-logo-section instead
18
17
  .p-logo-section,
19
18
  .p-logo-section--dense {
20
19
  .p-logo-section__item {
@@ -25,11 +24,6 @@
25
24
  margin-top: calc(-1 * $logo-section-offset-small); // pull the previous row of logos down
26
25
 
27
26
  @media (min-width: $breakpoint-small) {
28
- margin-bottom: calc(-1 * $logo-section-offset-medium);
29
- margin-top: calc(-1 * $logo-section-offset-medium);
30
- }
31
-
32
- @media (min-width: $breakpoint-large) {
33
27
  margin-bottom: calc(-1 * $logo-section-offset);
34
28
  margin-top: calc(-1 * $logo-section-offset);
35
29
  }
@@ -42,10 +36,6 @@
42
36
  width: auto;
43
37
 
44
38
  @media (min-width: $breakpoint-small) {
45
- height: $logo-section-item-size-medium;
46
- }
47
-
48
- @media (min-width: $breakpoint-large) {
49
39
  height: $logo-section-item-size;
50
40
  }
51
41
  }
@@ -58,36 +48,12 @@
58
48
  padding-top: $logo-section-offset-small;
59
49
 
60
50
  @media (min-width: $breakpoint-small) {
61
- padding-bottom: $logo-section-offset-medium;
62
- padding-top: $logo-section-offset-medium;
63
- }
64
-
65
- @media (min-width: $breakpoint-large) {
66
51
  padding-bottom: $logo-section-offset;
67
52
  padding-top: $logo-section-offset;
68
53
  }
69
54
  }
70
55
  }
71
56
 
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
79
- }
80
-
81
- .p-logo-section__logo {
82
- height: $logo-section-item-size-small;
83
- }
84
-
85
- .p-logo-section__items {
86
- padding-bottom: $logo-section-offset-small;
87
- padding-top: $logo-section-offset-small;
88
- }
89
- }
90
-
91
57
  // fallback for old logo sections that may have logos not properly aligned by design team
92
58
  .p-logo-section.has-misaligned-images,
93
59
  .p-logo-section--dense.has-misaligned-images {
@@ -98,10 +64,6 @@
98
64
  width: $logo-section-item-size-small;
99
65
 
100
66
  @media (min-width: $breakpoint-small) {
101
- width: $logo-section-item-size-medium;
102
- }
103
-
104
- @media (min-width: $breakpoint-large) {
105
67
  width: $logo-section-item-size;
106
68
  }
107
69
  }
@@ -1,3 +1,7 @@
1
+ // Note: vf-url-friendly-color does not work with the new theming variable
2
+ // setup, since it can't interpolate CSS variables during compilation. Instead,
3
+ // we're hard-coding light/dark icons here when necessary.
4
+
1
5
  @import 'settings';
2
6
 
3
7
  @mixin vf-p-media-object {
@@ -10,7 +14,7 @@
10
14
  %vf-meta-list-item {
11
15
  @extend %small-text;
12
16
 
13
- color: $colors--light-theme--text-default;
17
+ color: $colors--theme--text-default;
14
18
  padding-left: map-get($icon-sizes, default) + $sph--large;
15
19
  }
16
20
 
@@ -65,18 +69,34 @@
65
69
  @extend %vf-iconed-list-item;
66
70
  // prettier-ignore
67
71
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="90" height="90"><g transform="translate(0 -962.362)"><path color="%23000" fill="none" stroke-width="7.5" overflow="visible" enable-background="accumulate" d="M0 962.362h90v90H0z"/><path d="M35.914 968.362v9c0 4.837-4.078 8.914-8.914 8.914-4.836 0-8.914-4.077-8.914-8.914v-8.547C7.56 969.892 6 973.59 6 986.362v42c0 18 3 18 30 18h18c27 0 30 0 30-18v-42c0-12.773-1.56-16.47-12.086-17.547v8.547c0 4.837-4.078 8.914-8.914 8.914-4.836 0-8.914-4.077-8.914-8.914v-9H35.914zm.086 24h18c24 0 24 0 24 12v24c0 12 0 12-24 12H36c-24 0-24 0-24-12v-24c0-12 0-12 24-12z" fill="' + vf-url-friendly-color($color-mid-dark) + '"/><rect width="6" height="18" x="24" y="962.362" ry="3" color="%23000" fill="' + vf-url-friendly-color($color-mid-dark) + '" stroke-width=".1" overflow="visible" enable-background="accumulate"/><rect ry="3" y="962.362" x="60" height="18" width="6" color="%23000" fill="' + vf-url-friendly-color($color-mid-dark) + '" stroke-width=".1" overflow="visible" enable-background="accumulate"/><path style="text-align:center;line-height:125%;-inkscape-font-specification:Ubuntu Medium" d="M33.336 1001.364v.01c-1.8 0-3.5.348-5.087 1.043-1.548.663-2.913 1.553-4.08 2.664l-.352.337 3.06 4.335.474-.472c.158-.158.425-.388.787-.673l.01-.013.01-.012c.342-.295.74-.582 1.194-.86.467-.27 1.002-.507 1.607-.71.577-.19 1.206-.288 1.896-.288 1.048 0 1.885.26 2.58.768.626.46.964 1.222.964 2.497 0 .56-.114 1.1-.35 1.647-.246.538-.58 1.082-1.006 1.635h-.002c-.408.535-.896 1.088-1.466 1.658-.582.582-1.192 1.176-1.827 1.785h-.004c-.827.8-1.653 1.613-2.48 2.44-.846.845-1.61 1.748-2.292 2.704h-.002c-.692.967-1.26 2.02-1.702 3.15-.426 1.134-.635 2.372-.635 3.707v.72c0 .31.015.583.046.828l.064.493h18.65v-5.197H31.386c.072-.144.057-.21.18-.392l.006-.012h.002c.33-.507.727-1.034 1.192-1.576.47-.548.966-1.096 1.488-1.645l.008-.01c.527-.553.998-1.027 1.413-1.416h.007c.8-.775 1.6-1.56 2.4-2.36h.007c.813-.844 1.534-1.7 2.163-2.576h.002c.66-.906 1.197-1.83 1.613-2.773.428-.994.645-2.02.645-3.054 0-2.528-.756-4.605-2.28-6.102-1.524-1.55-3.862-2.28-6.9-2.28zm16.626.635v.01l-.024.537c-.106 2.31-.24 4.618-.4 6.927-.158 2.277-.384 4.688-.676 7.233l-.07.628h.632c2.187 0 3.982.12 5.37.353h.004c1.42.23 2.518.58 3.283 1.01h.01c.804.44 1.316.945 1.6 1.512.302.606.46 1.297.46 2.1 0 .514-.094.994-.278 1.457-.174.414-.456.79-.876 1.14h-.016c-.375.333-.9.615-1.582.836-.677.193-1.514.298-2.51.298-1.48 0-2.72-.144-3.718-.42-1.012-.31-1.79-.596-2.3-.84l-.638-.304-1.17 5.187.394.198c.32.16.74.313 1.287.477.553.167 1.168.315 1.847.45.703.163 1.43.3 2.184.407.77.11 1.527.163 2.273.163 1.826 0 3.44-.214 4.84-.66h.008c1.386-.473 2.56-1.12 3.502-1.948.94-.827 1.647-1.823 2.105-2.967.454-1.135.68-2.365.68-3.678 0-2.868-1.023-5.22-3.034-6.892-1.888-1.617-4.76-2.472-8.434-2.75.033-.27.064-.51.097-.834.055-.535.096-1.096.123-1.68l.002-.025c.052-.575.09-1.138.117-1.688l.003-.027c.035-.38.054-.693.077-1.02h10.055V1002H49.962z" font-size="35.345" font-weight="500" letter-spacing="0" word-spacing="0" text-anchor="middle" fill="' + vf-url-friendly-color($color-mid-dark) + '" font-family="Ubuntu"/></g></svg>');
72
+
73
+ .is-dark & {
74
+ // prettier-ignore
75
+ background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="90" height="90"><g transform="translate(0 -962.362)"><path color="%23000" fill="none" stroke-width="7.5" overflow="visible" enable-background="accumulate" d="M0 962.362h90v90H0z"/><path d="M35.914 968.362v9c0 4.837-4.078 8.914-8.914 8.914-4.836 0-8.914-4.077-8.914-8.914v-8.547C7.56 969.892 6 973.59 6 986.362v42c0 18 3 18 30 18h18c27 0 30 0 30-18v-42c0-12.773-1.56-16.47-12.086-17.547v8.547c0 4.837-4.078 8.914-8.914 8.914-4.836 0-8.914-4.077-8.914-8.914v-9H35.914zm.086 24h18c24 0 24 0 24 12v24c0 12 0 12-24 12H36c-24 0-24 0-24-12v-24c0-12 0-12 24-12z" fill="' + vf-url-friendly-color($color-mid-light) + '"/><rect width="6" height="18" x="24" y="962.362" ry="3" color="%23000" fill="' + vf-url-friendly-color($color-mid-light) + '" stroke-width=".1" overflow="visible" enable-background="accumulate"/><rect ry="3" y="962.362" x="60" height="18" width="6" color="%23000" fill="' + vf-url-friendly-color($color-mid-light) + '" stroke-width=".1" overflow="visible" enable-background="accumulate"/><path style="text-align:center;line-height:125%;-inkscape-font-specification:Ubuntu Medium" d="M33.336 1001.364v.01c-1.8 0-3.5.348-5.087 1.043-1.548.663-2.913 1.553-4.08 2.664l-.352.337 3.06 4.335.474-.472c.158-.158.425-.388.787-.673l.01-.013.01-.012c.342-.295.74-.582 1.194-.86.467-.27 1.002-.507 1.607-.71.577-.19 1.206-.288 1.896-.288 1.048 0 1.885.26 2.58.768.626.46.964 1.222.964 2.497 0 .56-.114 1.1-.35 1.647-.246.538-.58 1.082-1.006 1.635h-.002c-.408.535-.896 1.088-1.466 1.658-.582.582-1.192 1.176-1.827 1.785h-.004c-.827.8-1.653 1.613-2.48 2.44-.846.845-1.61 1.748-2.292 2.704h-.002c-.692.967-1.26 2.02-1.702 3.15-.426 1.134-.635 2.372-.635 3.707v.72c0 .31.015.583.046.828l.064.493h18.65v-5.197H31.386c.072-.144.057-.21.18-.392l.006-.012h.002c.33-.507.727-1.034 1.192-1.576.47-.548.966-1.096 1.488-1.645l.008-.01c.527-.553.998-1.027 1.413-1.416h.007c.8-.775 1.6-1.56 2.4-2.36h.007c.813-.844 1.534-1.7 2.163-2.576h.002c.66-.906 1.197-1.83 1.613-2.773.428-.994.645-2.02.645-3.054 0-2.528-.756-4.605-2.28-6.102-1.524-1.55-3.862-2.28-6.9-2.28zm16.626.635v.01l-.024.537c-.106 2.31-.24 4.618-.4 6.927-.158 2.277-.384 4.688-.676 7.233l-.07.628h.632c2.187 0 3.982.12 5.37.353h.004c1.42.23 2.518.58 3.283 1.01h.01c.804.44 1.316.945 1.6 1.512.302.606.46 1.297.46 2.1 0 .514-.094.994-.278 1.457-.174.414-.456.79-.876 1.14h-.016c-.375.333-.9.615-1.582.836-.677.193-1.514.298-2.51.298-1.48 0-2.72-.144-3.718-.42-1.012-.31-1.79-.596-2.3-.84l-.638-.304-1.17 5.187.394.198c.32.16.74.313 1.287.477.553.167 1.168.315 1.847.45.703.163 1.43.3 2.184.407.77.11 1.527.163 2.273.163 1.826 0 3.44-.214 4.84-.66h.008c1.386-.473 2.56-1.12 3.502-1.948.94-.827 1.647-1.823 2.105-2.967.454-1.135.68-2.365.68-3.678 0-2.868-1.023-5.22-3.034-6.892-1.888-1.617-4.76-2.472-8.434-2.75.033-.27.064-.51.097-.834.055-.535.096-1.096.123-1.68l.002-.025c.052-.575.09-1.138.117-1.688l.003-.027c.035-.38.054-.693.077-1.02h10.055V1002H49.962z" font-size="35.345" font-weight="500" letter-spacing="0" word-spacing="0" text-anchor="middle" fill="' + vf-url-friendly-color($color-mid-light) + '" font-family="Ubuntu"/></g></svg>');
76
+ }
68
77
  }
69
78
 
70
79
  &--location {
71
80
  @extend %vf-iconed-list-item;
72
81
  // prettier-ignore
73
82
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="90" height="90"><g color="%23000"><path d="M45 0C30.088 0 18 12.088 18 27c0 .562.03 1.103.063 1.656.013.248.012.497.03.75.02.23.07.46.095.688C20.22 51.854 41.922 90 45 90c3.078 0 24.78-38.146 26.813-59.906.02-.232.076-.46.093-.688.022-.248.016-.5.03-.75.032-.56.064-1.12.064-1.656C72 12.088 59.912 0 45 0zm0 18c4.97 0 9 4.03 9 9s-4.03 9-9 9-9-4.03-9-9 4.03-9 9-9z" fill="' + vf-url-friendly-color($color-mid-dark) + '" stroke-width="3" overflow="visible" enable-background="accumulate"/><path fill="none" stroke-width="7.5" overflow="visible" enable-background="accumulate" d="M0 0h90v90H0z"/></g></svg>');
83
+
84
+ .is-dark & {
85
+ // prettier-ignore
86
+ background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="90" height="90"><g color="%23000"><path d="M45 0C30.088 0 18 12.088 18 27c0 .562.03 1.103.063 1.656.013.248.012.497.03.75.02.23.07.46.095.688C20.22 51.854 41.922 90 45 90c3.078 0 24.78-38.146 26.813-59.906.02-.232.076-.46.093-.688.022-.248.016-.5.03-.75.032-.56.064-1.12.064-1.656C72 12.088 59.912 0 45 0zm0 18c4.97 0 9 4.03 9 9s-4.03 9-9 9-9-4.03-9-9 4.03-9 9-9z" fill="' + vf-url-friendly-color($color-mid-light) + '" stroke-width="3" overflow="visible" enable-background="accumulate"/><path fill="none" stroke-width="7.5" overflow="visible" enable-background="accumulate" d="M0 0h90v90H0z"/></g></svg>');
87
+ }
74
88
  }
75
89
 
76
90
  &--venue {
77
91
  @extend %vf-iconed-list-item;
78
92
  // prettier-ignore
79
93
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="90" height="90" viewBox="0 0 90 90.000001"><g transform="translate(-111.967 -929.337)" color="%23000"><path fill="none" stroke-width="4" overflow="visible" enable-background="accumulate" d="M111.967 929.336h90v90h-90z"/><circle r="6.5" cy="24.5" cx="23.5" transform="matrix(1.846 0 0 1.846 113.583 929.105)" fill="' + vf-url-friendly-color($color-mid-dark) + '" stroke-width="2" overflow="visible" enable-background="accumulate"/><circle r="21" cy="45" cx="45" transform="matrix(1.429 0 0 1.429 92.682 910.05)" fill="none" stroke="' + vf-url-friendly-color($color-mid-dark) + '" stroke-width="4.2" stroke-linejoin="round" overflow="visible" enable-background="accumulate"/><path d="M152.967 931.736l8-2.4v15h-8zM160.967 1016.336h-8v-12h8zM198.967 970.336v8h-12v-8zM114.967 978.336v-8h12v8z" overflow="visible" fill="' + vf-url-friendly-color($color-mid-dark) + '" stroke-width="6" enable-background="accumulate"/></g></svg>');
94
+
95
+ .is-dark & {
96
+ @extend %vf-iconed-list-item;
97
+ // prettier-ignore
98
+ background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="90" height="90" viewBox="0 0 90 90.000001"><g transform="translate(-111.967 -929.337)" color="%23000"><path fill="none" stroke-width="4" overflow="visible" enable-background="accumulate" d="M111.967 929.336h90v90h-90z"/><circle r="6.5" cy="24.5" cx="23.5" transform="matrix(1.846 0 0 1.846 113.583 929.105)" fill="' + vf-url-friendly-color($color-mid-light) + '" stroke-width="2" overflow="visible" enable-background="accumulate"/><circle r="21" cy="45" cx="45" transform="matrix(1.429 0 0 1.429 92.682 910.05)" fill="none" stroke="' + vf-url-friendly-color($color-mid-light) + '" stroke-width="4.2" stroke-linejoin="round" overflow="visible" enable-background="accumulate"/><path d="M152.967 931.736l8-2.4v15h-8zM160.967 1016.336h-8v-12h8zM198.967 970.336v8h-12v-8zM114.967 978.336v-8h12v8z" overflow="visible" fill="' + vf-url-friendly-color($color-mid-light) + '" stroke-width="6" enable-background="accumulate"/></g></svg>');
99
+ }
80
100
  }
81
101
  }
82
102