@stackoverflow/stacks 2.0.0-rc.4 → 2.0.0-rc.6

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 (34) hide show
  1. package/dist/components/code-block/code-block.fixtures.d.ts +2 -0
  2. package/dist/css/stacks.css +136 -182
  3. package/dist/css/stacks.min.css +1 -1
  4. package/lib/atomic/__snapshots__/color.less.test.ts.snap +246 -0
  5. package/lib/base/body.less +2 -2
  6. package/lib/components/anchor/anchor.less +3 -3
  7. package/lib/components/anchor/anchor.visual.test.ts +1 -1
  8. package/lib/components/avatar/avatar.visual.test.ts +1 -1
  9. package/lib/components/banner/banner.less +2 -2
  10. package/lib/components/button/button.a11y.test.ts +1 -1
  11. package/lib/components/button/button.less +31 -31
  12. package/lib/components/button/button.visual.test.ts +1 -1
  13. package/lib/components/code-block/code-block.a11y.test.ts +30 -0
  14. package/lib/components/code-block/code-block.fixtures.ts +88 -0
  15. package/lib/components/code-block/code-block.visual.test.ts +20 -0
  16. package/lib/components/link/link.less +6 -6
  17. package/lib/components/link-preview/link-preview.less +3 -3
  18. package/lib/components/navigation/navigation.a11y.test.ts +80 -0
  19. package/lib/components/navigation/navigation.visual.test.ts +101 -0
  20. package/lib/components/notice/notice.a11y.test.ts +1 -1
  21. package/lib/components/pagination/pagination.a11y.test.ts +1 -1
  22. package/lib/components/post-summary/post-summary.less +8 -8
  23. package/lib/components/prose/prose.less +1 -1
  24. package/lib/components/tag/tag.less +6 -6
  25. package/lib/components/toast/toast.a11y.test.ts +1 -1
  26. package/lib/components/topbar/topbar.less +44 -44
  27. package/lib/exports/__snapshots__/color-mixins.less.test.ts.snap +16 -10
  28. package/lib/exports/__snapshots__/color.less.test.ts.snap +179 -186
  29. package/lib/exports/color-mixins.less +0 -1
  30. package/lib/exports/color.less +12 -3
  31. package/lib/exports/v1/__snapshots__/constants-colors.less.test.ts.snap +3 -3
  32. package/lib/exports/v1/constants-colors.less +2 -2
  33. package/package.json +3 -3
  34. package/lib/exports/theme.less +0 -85
@@ -0,0 +1,80 @@
1
+ import { html } from "@open-wc/testing";
2
+ import { runComponentTests } from "../../test/test-utils";
3
+ import "../../index";
4
+
5
+ const items = [
6
+ {
7
+ label: "Group 1",
8
+ title: true,
9
+ },
10
+ {
11
+ label: "Product",
12
+ selected: true,
13
+ },
14
+ {
15
+ label: "Email",
16
+ },
17
+ {
18
+ label: "Group 2",
19
+ title: true,
20
+ },
21
+ {
22
+ label: "Content",
23
+ },
24
+ {
25
+ label: "Brand",
26
+ },
27
+ {
28
+ label: "Marketing",
29
+ },
30
+ {
31
+ label: "More selected",
32
+ dropdown: true,
33
+ selected: true,
34
+ },
35
+ {
36
+ label: "More",
37
+ dropdown: true,
38
+ },
39
+ ];
40
+
41
+ const getChildren = (includeTitles = false): string =>
42
+ items
43
+ .map((item) => {
44
+ if (item.title) {
45
+ return includeTitles
46
+ ? `<li class="s-navigation--title">${item.label}</li>`
47
+ : "";
48
+ }
49
+ const classes = `s-navigation--item${
50
+ item.selected ? " is-selected" : ""
51
+ }${item.dropdown ? " s-navigation--item__dropdown" : ""}`;
52
+ return `<li><a href="#" class="${classes}">${item.label}</a></li>`;
53
+ })
54
+ .join("");
55
+
56
+ describe("navigation", () => {
57
+ runComponentTests({
58
+ type: "a11y",
59
+ baseClass: "s-navigation",
60
+ variants: ["vertical", "muted"],
61
+ modifiers: {
62
+ primary: ["scroll", "sm"],
63
+ },
64
+ tag: "ul",
65
+ children: {
66
+ default: getChildren(true),
67
+ },
68
+ template: ({ component, testid }) => html`
69
+ <nav
70
+ class="d-inline-block p8 wmx3"
71
+ aria-label="example-navigation"
72
+ data-testid="${testid}"
73
+ >
74
+ ${component}
75
+ </nav>
76
+ `,
77
+ // TODO new colors should resolve the `.is-selected` failures
78
+ skippedTestids: [/s-navigation/],
79
+ });
80
+ });
@@ -0,0 +1,101 @@
1
+ import { html } from "@open-wc/testing";
2
+ import { defaultOptions, runComponentTests } from "../../test/test-utils";
3
+ import "../../index";
4
+
5
+ const items = [
6
+ {
7
+ label: "Group 1",
8
+ title: true,
9
+ },
10
+ {
11
+ label: "Product",
12
+ selected: true,
13
+ },
14
+ {
15
+ label: "Email",
16
+ },
17
+ {
18
+ label: "Group 2",
19
+ title: true,
20
+ },
21
+ {
22
+ label: "Content",
23
+ },
24
+ {
25
+ label: "Brand",
26
+ },
27
+ {
28
+ label: "Marketing",
29
+ },
30
+ {
31
+ label: "More selected",
32
+ dropdown: true,
33
+ selected: true,
34
+ },
35
+ {
36
+ label: "More",
37
+ dropdown: true,
38
+ },
39
+ ];
40
+
41
+ const getChildren = (includeTitles = false): string =>
42
+ items
43
+ .map((item) => {
44
+ if (item.title) {
45
+ return includeTitles
46
+ ? `<li class="s-navigation--title">${item.label}</li>`
47
+ : "";
48
+ }
49
+ const classes = `s-navigation--item${
50
+ item.selected ? " is-selected" : ""
51
+ }${item.dropdown ? " s-navigation--item__dropdown" : ""}`;
52
+ return `<li><a href="#" class="${classes}">${item.label}</a></li>`;
53
+ })
54
+ .join("");
55
+
56
+ describe("navigation", () => {
57
+ runComponentTests({
58
+ type: "visual",
59
+ baseClass: "s-navigation",
60
+ variants: ["muted"],
61
+ modifiers: {
62
+ primary: ["scroll", "sm"],
63
+ },
64
+ tag: "ul",
65
+ children: {
66
+ default: getChildren(),
67
+ },
68
+ template: ({ component, testid }) => html`
69
+ <nav
70
+ class="d-inline-block p8 wmx3"
71
+ aria-label="example-navigation"
72
+ data-testid="${testid}"
73
+ >
74
+ ${component}
75
+ </nav>
76
+ `,
77
+ });
78
+
79
+ runComponentTests({
80
+ type: "visual",
81
+ baseClass: "s-navigation",
82
+ variants: ["vertical"],
83
+ tag: "ul",
84
+ children: {
85
+ default: getChildren(true),
86
+ },
87
+ template: ({ component, testid }) => html`
88
+ <nav
89
+ class="d-inline-block p8 ws2"
90
+ aria-label="example-navigation"
91
+ data-testid="${testid}"
92
+ >
93
+ ${component}
94
+ </nav>
95
+ `,
96
+ options: {
97
+ ...defaultOptions,
98
+ includeNullVariant: false,
99
+ },
100
+ });
101
+ });
@@ -12,6 +12,6 @@ describe("notice", () => {
12
12
  children: {
13
13
  default: `Test notice`,
14
14
  },
15
- tag: "aside"
15
+ tag: "aside",
16
16
  });
17
17
  });
@@ -15,6 +15,6 @@ describe("pagination", () => {
15
15
  <a class="s-pagination--item" href="#">100</a>
16
16
  <a class="s-pagination--item" href="#">Next</a>
17
17
  `,
18
- }
18
+ },
19
19
  });
20
20
  });
@@ -5,9 +5,9 @@
5
5
  --_ps-o: unset;
6
6
  // Child components
7
7
  --_ps-content-excerpt-fc: var(--_ps-state-fc, var(--fc-medium));
8
- --_ps-content-title-a-fc: var(--_ps-state-fc, var(--theme-post-title-color));
9
- --_ps-content-title-a-fc-hover: var(--_ps-state-fc, var(--theme-post-title-color-hover));
10
- --_ps-content-title-a-fc-visited: var(--_ps-state-fc, var(--theme-post-title-color-visited));
8
+ --_ps-content-title-a-fc: var(--_ps-state-fc, var(--theme-post-title-color, var(--theme-link-color, var(--theme-secondary-400))));
9
+ --_ps-content-title-a-fc-hover: var(--_ps-state-fc, var(--theme-post-title-color-hover, var(--theme-link-color-hover, var(--theme-secondary-400))));
10
+ --_ps-content-title-a-fc-visited: var(--_ps-state-fc, var(--theme-post-title-color-visited, var(--theme-link-color-visited, var(--theme-secondary-500))));
11
11
  --_ps-stats-ai: flex-end;
12
12
  --_ps-stats-fc: var(--_ps-state-fc, var(--fc-light));
13
13
  --_ps-stats-fd: column;
@@ -117,9 +117,9 @@
117
117
  &:not(.s-post-summary__deleted):not(.s-post-summary__ignored) {
118
118
  --_ps-bg: var(--yellow-200);
119
119
  --_ps-stats-fc: var(--black-400);
120
- --_ps-content-title-a-fc: var(--theme-post-title-color);
121
- --_ps-content-title-a-fc-hover: var(--theme-post-title-color-hover);
122
- --_ps-content-title-a-fc-visited: var(--theme-post-title-color-visited);
120
+ --_ps-content-title-a-fc: var(--theme-post-title-color, var(--theme-link-color, var(--theme-secondary-400)));
121
+ --_ps-content-title-a-fc-hover: var(--theme-post-title-color-hover, var(--theme-link-color-hover, var(--theme-secondary-400)));
122
+ --_ps-content-title-a-fc-visited: var(--theme-post-title-color-visited, var(--theme-link-color-visited, var(--theme-secondary-500)));
123
123
 
124
124
  .s-user-card {
125
125
  a {
@@ -208,7 +208,7 @@
208
208
  .break-word;
209
209
  .v-truncate2;
210
210
  color: var( --_ps-content-excerpt-fc);
211
- font-family: var(--theme-post-body-font-family);
211
+ font-family: var(--theme-post-body-font-family, var(--theme-body-font-family));
212
212
  margin-top: calc(var(--su2) * -1);
213
213
  margin-bottom: var(--su8);
214
214
  }
@@ -240,7 +240,7 @@
240
240
 
241
241
  .break-word;
242
242
  color: var(--_ps-content-title-a-fc);
243
- font-family: var(--theme-post-title-font-family);
243
+ font-family: var(--theme-post-title-font-family, var(--theme-body-font-family));
244
244
  }
245
245
 
246
246
  .iconShield {
@@ -74,7 +74,7 @@
74
74
  // CHILD ELEMENTS
75
75
  *:not(.s-code-block) {
76
76
  > a code {
77
- color: var(--theme-link-color); // When contained within a link, we want the code to be link-colored
77
+ color: var(--theme-link-color, var(--theme-secondary-400)); // When contained within a link, we want the code to be link-colored
78
78
  }
79
79
 
80
80
  > code {
@@ -1,13 +1,13 @@
1
1
  .s-tag {
2
- --_ta-bc: var(--theme-tag-border-color);
3
- --_ta-bc-hover: var(--theme-tag-hover-border-color);
2
+ --_ta-bc: var(--theme-tag-border-color, transparent);
3
+ --_ta-bc-hover: var(--theme-tag-hover-border-color, transparent);
4
4
  --_ta-bc-selected: transparent;
5
- --_ta-bg: var(--theme-tag-background-color);
6
- --_ta-bg-hover: var(--theme-tag-hover-background-color);
5
+ --_ta-bg: var(--theme-tag-background-color, var(----theme-secondary-100));
6
+ --_ta-bg-hover: var(--theme-tag-hover-background-color, var(--theme-secondary-200));
7
7
  --_ta-bg-selected: var(--theme-secondary-300);
8
8
  --_ta-br: var(--br-sm);
9
- --_ta-fc: var(--theme-tag-color);
10
- --_ta-fc-hover: var(--theme-tag-hover-color);
9
+ --_ta-fc: var(--theme-tag-color, var(----theme-secondary-500));
10
+ --_ta-fc-hover: var(--theme-tag-hover-color, var(--theme-secondary-600));
11
11
  --_ta-fc-selected: var(--theme-secondary-600);
12
12
  --_ta-fs: var(--fs-caption);
13
13
  --_ta-lh: 1.846153846;
@@ -25,6 +25,6 @@ describe("toast > notice", () => {
25
25
  >
26
26
  ${component}
27
27
  </div>
28
- `
28
+ `,
29
29
  });
30
30
  });
@@ -8,26 +8,26 @@
8
8
  min-width: auto;
9
9
  width: 100%;
10
10
  z-index: var(--zi-navigation-fixed);
11
- background-color: var(--theme-topbar-background-color);
12
- height: var(--theme-topbar-height);
11
+ background-color: var(--theme-topbar-background-color, var(--white));
12
+ height: var(--theme-topbar-height, calc(var(--su-static48) + var(--su-static8)));
13
13
  display: flex;
14
- border-top: var(--theme-topbar-accent-border);
15
- border-bottom: var(--theme-topbar-bottom-border);
14
+ border-top: var(--theme-topbar-accent-border, 3px solid var(--theme-primary));
15
+ border-bottom: var(--theme-topbar-bottom-border, 1px solid var(--black-225));
16
16
  position: relative;
17
17
  align-items: center;
18
18
 
19
19
  // Redefine the variables for extra contrast in high-contrast mode
20
20
  .highcontrast-mode({
21
21
  // Search input
22
- --theme-topbar-search-color: var(--theme-topbar-item-color);
23
- --theme-topbar-search-background: var(--theme-topbar-background-color);
24
- --theme-topbar-search-placeholder: var(--theme-topbar-item-color);
25
- --theme-topbar-search-border: var(--theme-topbar-item-color);
26
- --theme-topbar-search-border-focus: var(--theme-topbar-item-color);
22
+ --theme-topbar-search-color: var(--theme-topbar-item-color, var(--black-500));
23
+ --theme-topbar-search-background: var(--theme-topbar-background-color, var(--white));
24
+ --theme-topbar-search-placeholder: var(--theme-topbar-item-color, var(--black-500));
25
+ --theme-topbar-search-border: var(--theme-topbar-item-color, var(--black-500));
26
+ --theme-topbar-search-border-focus: var(--theme-topbar-item-color, var(--black-500));
27
27
 
28
28
  // Search switcher
29
- --theme-topbar-select-color: var(--theme-topbar-item-color);
30
- --theme-topbar-select-background: var(--theme-topbar-background-color);
29
+ --theme-topbar-select-color: var(--theme-topbar-item-color, var(--black-500));
30
+ --theme-topbar-select-background: var(--theme-topbar-background-color, var(--white));
31
31
 
32
32
  // Topbar items
33
33
  --theme-topbar-item-color: var(--black-600);
@@ -57,11 +57,11 @@
57
57
  }
58
58
 
59
59
  a.s-topbar--logo:hover {
60
- background-color: var(--theme-topbar-item-background-hover);
60
+ background-color: var(--theme-topbar-item-background-hover, var(--black-200));
61
61
  }
62
62
 
63
63
  a.s-topbar--logo.is-selected {
64
- background-color: var(--theme-topbar-item-background-hover);
64
+ background-color: var(--theme-topbar-item-background-hover, var(--black-200));
65
65
  }
66
66
 
67
67
  .s-topbar--menu-btn {
@@ -80,7 +80,7 @@
80
80
  &:after {
81
81
  width: var(--su-static16);
82
82
  height: var(--su-static2);
83
- background-color: var(--theme-topbar-item-color);
83
+ background-color: var(--theme-topbar-item-color, var(--black-500));
84
84
  position: relative;
85
85
  }
86
86
 
@@ -102,7 +102,7 @@
102
102
 
103
103
  // Transforming hamburger into x
104
104
  &.is-selected {
105
- color: var(--theme-topbar-item-color-current);
105
+ color: var(--theme-topbar-item-color-current, var(--black));
106
106
  background-color: var(--theme-topbar-item-background-current);
107
107
 
108
108
  span {
@@ -119,22 +119,22 @@
119
119
  }
120
120
 
121
121
  &:hover {
122
- color: var(--theme-topbar-item-color-hover);
123
- background-color: var(--theme-topbar-item-background-hover);
122
+ color: var(--theme-topbar-item-color-hover, var(--black-600));
123
+ background-color: var(--theme-topbar-item-background-hover, var(--black-200));
124
124
  }
125
125
  }
126
126
 
127
127
  .s-navigation {
128
128
  .s-navigation--item:focus-visible {
129
- box-shadow: var(--theme-topbar-search-shadow-focus);
129
+ box-shadow: var(--theme-topbar-search-shadow-focus, 0 0 0 var(--su-static4) var(--focus-ring));
130
130
  }
131
131
  .s-navigation--item:not(.is-selected) {
132
- color: var(--theme-topbar-item-color);
132
+ color: var(--theme-topbar-item-color, var(--black-500));
133
133
  }
134
134
 
135
135
  .s-navigation--item:not(.is-selected):hover {
136
- color: var(--theme-topbar-item-color-hover);
137
- background-color: var(--theme-topbar-item-background-hover);
136
+ color: var(--theme-topbar-item-color-hover, var(--black-600));
137
+ background-color: var(--theme-topbar-item-background-hover, var(--black-200));
138
138
  }
139
139
  }
140
140
  }
@@ -166,7 +166,7 @@
166
166
  --theme-topbar-item-color-hover: .set-black()[600];
167
167
  --theme-topbar-item-background-hover: .set-black()[200];
168
168
  --theme-topbar-item-color-current: var(--_black-static);
169
- --theme-topbar-item-border-current: var(--theme-primary);
169
+ // --theme-topbar-item-border-current: var(--theme-primary); // As of Stacks v2, this is unused
170
170
 
171
171
  // TODO HACK remove everything below once light/dark topbars are inheriting forced themes correctly
172
172
  // redefine the variables for extra contrast in high-contrast mode
@@ -218,7 +218,7 @@
218
218
  --theme-topbar-item-color-hover: var(--_white-static);
219
219
  --theme-topbar-item-background-hover: .set-black()[500];
220
220
  --theme-topbar-item-color-current: var(--_white-static);
221
- --theme-topbar-item-border-current: var(--theme-primary);
221
+ // --theme-topbar-item-border-current: var(--theme-primary); // As of Stacks v2, this is unused
222
222
 
223
223
  // Themed border accent
224
224
  --theme-topbar-accent-border: none;
@@ -267,7 +267,7 @@
267
267
  margin-left: auto; // Push this section as far to the right as possible
268
268
 
269
269
  .s-topbar--item:not(.s-topbar--item__unset) {
270
- color: var(--theme-topbar-item-color);
270
+ color: var(--theme-topbar-item-color, var(--black-500));
271
271
  display: inline-flex;
272
272
  align-items: center;
273
273
  padding: 0 calc(var(--su12) - var(--su2));
@@ -280,14 +280,14 @@
280
280
  &.is-selected,
281
281
  &.is-selected:hover,
282
282
  &.is-selected:focus {
283
- color: var(--theme-topbar-item-color-hover);
284
- background-color: var(--theme-topbar-item-background-hover);
283
+ color: var(--theme-topbar-item-color-hover, var(--black-600));
284
+ background-color: var(--theme-topbar-item-background-hover, var(--black-200));
285
285
  text-decoration: none;
286
286
  outline: none;
287
287
 
288
288
  .s-activity-indicator {
289
289
  top: calc(50% - calc(var(--su16) + var(--su2))); // 50% - 18px
290
- box-shadow: 0 0 0 var(--su-static2) var(--theme-topbar-item-background-hover);
290
+ box-shadow: 0 0 0 var(--su-static2) var(--theme-topbar-item-background-hover, var(--black-200));
291
291
  }
292
292
  }
293
293
 
@@ -300,7 +300,7 @@
300
300
  top: calc(50% - calc(var(--su12) + var(--su2))); // 50% - 14px
301
301
  right: var(--su-static2);
302
302
  transition: top var(--te-smooth) 0.15s;
303
- box-shadow: 0 0 0 var(--su-static2) var(--theme-topbar-background-color);
303
+ box-shadow: 0 0 0 var(--su-static2) var(--theme-topbar-background-color, var(--white));
304
304
  }
305
305
  }
306
306
 
@@ -325,11 +325,11 @@
325
325
  margin-right: var(--su8);
326
326
  flex-shrink: 0;
327
327
 
328
- .topbar-notice-styles(transparent, transparent, var(--theme-topbar-item-color));
328
+ .topbar-notice-styles(transparent, transparent, var(--theme-topbar-item-color, var(--black-500)));
329
329
 
330
330
  &:hover,
331
331
  &:focus {
332
- .topbar-notice-styles(var(--theme-topbar-item-background-hover), var(--theme-topbar-item-background-hover), var(--theme-topbar-item-color-hover));
332
+ .topbar-notice-styles(var(--theme-topbar-item-background-hover, var(--black-200)), var(--theme-topbar-item-background-hover, var(--black-200)), var(--theme-topbar-item-color-hover, var(--black-600)));
333
333
  }
334
334
 
335
335
  &.is-unread {
@@ -358,26 +358,26 @@
358
358
  flex-grow: 1;
359
359
 
360
360
  .s-input {
361
- border-color: var(--theme-topbar-search-border);
362
- background-color: var(--theme-topbar-search-background);
361
+ border-color: var(--theme-topbar-search-border, var(--black-300));
362
+ background-color: var(--theme-topbar-search-background, var(--white));
363
363
  box-shadow: var(--theme-topbar-search-shadow);
364
- color: var(--theme-topbar-search-color);
364
+ color: var(--theme-topbar-search-color, var(--black-500));
365
365
  display: block;
366
366
  line-height: @inputLineHeights;
367
367
 
368
368
  &:focus {
369
- border-color: var(--theme-topbar-search-border-focus);
370
- box-shadow: var(--theme-topbar-search-shadow-focus);
369
+ border-color: var(--theme-topbar-search-border-focus, var(--blue-400));
370
+ box-shadow: var(--theme-topbar-search-shadow-focus, 0 0 0 var(--su-static4) var(--focus-ring));
371
371
  }
372
372
 
373
373
  &::placeholder {
374
- color: var(--theme-topbar-search-placeholder);
374
+ color: var(--theme-topbar-search-placeholder, var(--black-400));
375
375
  font-style: normal;
376
376
  }
377
377
  }
378
378
 
379
379
  .s-input-icon {
380
- color: var(--theme-topbar-search-placeholder);
380
+ color: var(--theme-topbar-search-placeholder, var(--black-400));
381
381
  }
382
382
  }
383
383
 
@@ -386,7 +386,7 @@
386
386
 
387
387
  align-self: stretch;
388
388
  margin-right: calc(var(--su-static1) * -1); //-1px
389
- color: var(--theme-topbar-select-color);
389
+ color: var(--theme-topbar-select-color, var(--black-500));
390
390
 
391
391
  &:before,
392
392
  &:after {
@@ -399,13 +399,13 @@
399
399
  height: 100%;
400
400
  line-height: @inputLineHeights;
401
401
 
402
- border-color: var(--theme-topbar-search-border);
403
- background-color: var(--theme-topbar-select-background);
404
- color: var(--theme-topbar-select-color);
402
+ border-color: var(--theme-topbar-search-border, var(--black-300));
403
+ background-color: var(--theme-topbar-select-background, var(--black-200));
404
+ color: var(--theme-topbar-select-color, var(--black-500));
405
405
 
406
406
  &:focus {
407
- border-color: var(--theme-topbar-search-border-focus);
408
- box-shadow: var(--theme-topbar-search-shadow-focus);
407
+ border-color: var(--theme-topbar-search-border-focus, var(--blue-400));
408
+ box-shadow: var(--theme-topbar-search-shadow-focus, 0 0 0 var(--su-static4) var(--focus-ring));
409
409
  z-index: var(--zi-selected);
410
410
  }
411
411
  }
@@ -423,7 +423,7 @@
423
423
  top: 100%;
424
424
  max-width: 100%;
425
425
  padding: var(--su8) var(--su12);
426
- background: var(--theme-topbar-item-background-hover);
426
+ background: var(--theme-topbar-item-background-hover, var(--black-200));
427
427
 
428
428
  &.s-topbar--searchbar__open {
429
429
  display: flex;
@@ -290,23 +290,23 @@ body .themed {
290
290
  --black-200: hsl(210, 8%, 90%);
291
291
  --black-225: hsl(210, 8%, 85%);
292
292
  --black-250: hsl(210, 8%, 80%);
293
- --black-300: hsl(213, 9%, 75%);
294
- --black-350: hsl(212, 8%, 68%);
295
- --black-400: hsl(210, 8%, 45%);
293
+ --black-300: hsl(210, 9%, 75%);
294
+ --black-350: hsl(210, 8%, 68%);
295
+ --black-400: hsl(210, 8%, 42%);
296
296
  --black-500: hsl(210, 8%, 25%);
297
297
  --black-600: hsl(210, 8%, 5%);
298
- --black: hsl(0, 8%, 5%);
298
+ --black: hsl(0, 0%, 0%);
299
299
  --orange-100: hsl(23, 85%, 97%);
300
300
  --orange-200: hsl(27, 85%, 87%);
301
301
  --orange-300: hsl(27, 85%, 72%);
302
- --orange-400: hsl(27, 90%, 55%);
303
- --orange-500: hsl(27, 88%, 43%);
302
+ --orange-400: hsl(27, 80%, 52%);
303
+ --orange-500: hsl(27, 80%, 43%);
304
304
  --orange-600: hsl(27, 80%, 29%);
305
305
  --blue-100: hsl(210, 80%, 96%);
306
306
  --blue-200: hsl(210, 80%, 91%);
307
307
  --blue-300: hsl(210, 78%, 76%);
308
- --blue-400: hsl(210, 70%, 48%);
309
- --blue-500: hsl(210, 75%, 36%);
308
+ --blue-400: hsl(210, 77%, 46%);
309
+ --blue-500: hsl(210, 77%, 36%);
310
310
  --blue-600: hsl(210, 80%, 23%);
311
311
  --green-100: hsl(148, 35%, 95%);
312
312
  --green-200: hsl(148, 35%, 88%);
@@ -314,7 +314,7 @@ body .themed {
314
314
  --green-400: hsl(148, 70%, 31%);
315
315
  --green-500: hsl(148, 75%, 22%);
316
316
  --green-600: hsl(148, 75%, 15%);
317
- --red-100: hsl(0, 78%, 96%);
317
+ --red-100: hsl(0, 72%, 96%);
318
318
  --red-200: hsl(0, 70%, 93%);
319
319
  --red-300: hsl(0, 65%, 76%);
320
320
  --red-400: hsl(0, 60%, 49%);
@@ -326,6 +326,12 @@ body .themed {
326
326
  --yellow-400: hsl(43, 85%, 50%);
327
327
  --yellow-500: hsl(43, 85%, 33%);
328
328
  --yellow-600: hsl(43, 84%, 18%);
329
+ --purple-100: hsl(237, 80%, 96%);
330
+ --purple-200: hsl(237, 77%, 92%);
331
+ --purple-300: hsl(237, 60%, 83%);
332
+ --purple-400: hsl(237, 55%, 57%);
333
+ --purple-500: hsl(237, 50%, 45%);
334
+ --purple-600: hsl(237, 50%, 32%);
329
335
  --gold-100: hsl(46, 100%, 91%);
330
336
  --gold-200: hsl(46, 100%, 74%);
331
337
  --gold-300: hsl(45, 100%, 42%);
@@ -355,7 +361,7 @@ body .themed {
355
361
  --focus-ring-muted: hsla(210, 8%, 15%, 0.1);
356
362
  --highlight-addition: var(--green-500);
357
363
  --highlight-attribute: hsl(206, 98.5%, 29%);
358
- --highlight-bg: var(--black-100);
364
+ --highlight-bg: hsl(0, 0%, 96.5%);
359
365
  --highlight-color: var(--black-600);
360
366
  --highlight-comment: hsl(210, 8%, 43.5%);
361
367
  --highlight-deletion: var(--red-500);