@stackoverflow/stacks 2.0.0-rc.1 → 2.0.0-rc.10

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 (78) hide show
  1. package/README.md +5 -0
  2. package/dist/components/code-block/code-block.fixtures.d.ts +2 -0
  3. package/dist/css/stacks.css +792 -765
  4. package/dist/css/stacks.min.css +1 -1
  5. package/dist/js/stacks.js +265 -110
  6. package/dist/js/stacks.min.js +1 -1
  7. package/lib/atomic/__snapshots__/color.less.test.ts.snap +246 -0
  8. package/lib/atomic/typography.less +4 -0
  9. package/lib/base/body.less +2 -2
  10. package/lib/components/activity-indicator/activity-indicator.a11y.test.ts +1 -1
  11. package/lib/components/activity-indicator/activity-indicator.less +17 -4
  12. package/lib/components/anchor/anchor.less +10 -6
  13. package/lib/components/anchor/anchor.visual.test.ts +0 -4
  14. package/lib/components/avatar/avatar.visual.test.ts +0 -3
  15. package/lib/components/badge/badge.a11y.test.ts +2 -2
  16. package/lib/components/badge/badge.less +21 -29
  17. package/lib/components/banner/banner.less +2 -2
  18. package/lib/components/block-link/block-link.less +5 -4
  19. package/lib/components/button/button.a11y.test.ts +1 -4
  20. package/lib/components/button/button.less +48 -78
  21. package/lib/components/button/button.visual.test.ts +1 -4
  22. package/lib/components/card/card.less +8 -0
  23. package/lib/components/code-block/code-block.a11y.test.ts +30 -0
  24. package/lib/components/code-block/code-block.fixtures.ts +88 -0
  25. package/lib/components/code-block/code-block.visual.test.ts +20 -0
  26. package/lib/components/description/description.a11y.test.ts +1 -0
  27. package/lib/components/description/description.less +1 -1
  28. package/lib/components/expandable/expandable.a11y.test.ts +27 -0
  29. package/lib/components/expandable/expandable.visual.test.ts +27 -0
  30. package/lib/components/input-icon/input-icon.less +1 -1
  31. package/lib/components/input-message/input-message.less +4 -3
  32. package/lib/components/input_textarea/input_textarea.less +1 -1
  33. package/lib/components/label/label.less +4 -14
  34. package/lib/components/link/link.less +12 -12
  35. package/lib/components/link-preview/link-preview.a11y.test.ts +48 -0
  36. package/lib/components/link-preview/link-preview.less +16 -7
  37. package/lib/components/link-preview/link-preview.visual.test.ts +52 -0
  38. package/lib/components/navigation/navigation.a11y.test.ts +80 -0
  39. package/lib/components/navigation/navigation.visual.test.ts +101 -0
  40. package/lib/components/notice/notice.a11y.test.ts +17 -0
  41. package/lib/components/notice/notice.less +45 -82
  42. package/lib/components/notice/notice.visual.test.ts +26 -0
  43. package/lib/components/page-title/page-title.a11y.test.ts +29 -0
  44. package/lib/components/page-title/page-title.less +1 -1
  45. package/lib/components/page-title/page-title.visual.test.ts +59 -0
  46. package/lib/components/pagination/pagination.a11y.test.ts +20 -0
  47. package/lib/components/pagination/pagination.less +2 -2
  48. package/lib/components/pagination/pagination.visual.test.ts +26 -0
  49. package/lib/components/post-summary/post-summary.less +15 -15
  50. package/lib/components/progress-bar/progress-bar.less +2 -2
  51. package/lib/components/prose/prose.less +2 -2
  52. package/lib/components/select/select.less +1 -1
  53. package/lib/components/sidebar-widget/sidebar-widget.less +3 -3
  54. package/lib/components/spinner/spinner.a11y.test.ts +15 -0
  55. package/lib/components/spinner/spinner.visual.test.ts +43 -0
  56. package/lib/components/tag/tag.a11y.test.ts +23 -0
  57. package/lib/components/tag/tag.less +29 -29
  58. package/lib/components/tag/tag.visual.test.ts +46 -0
  59. package/lib/components/toast/toast.a11y.test.ts +30 -0
  60. package/lib/components/toast/toast.visual.test.ts +10 -6
  61. package/lib/components/toggle-switch/toggle-switch.less +2 -5
  62. package/lib/components/topbar/topbar.less +44 -44
  63. package/lib/components/uploader/uploader.less +19 -13
  64. package/lib/components/user-card/user-card.less +1 -1
  65. package/lib/exports/__snapshots__/color-mixins.less.test.ts.snap +17 -10
  66. package/lib/exports/__snapshots__/color.less.test.ts.snap +197 -185
  67. package/lib/exports/color-mixins.less +1 -1
  68. package/lib/exports/color-sets.less +130 -81
  69. package/lib/exports/color.less +14 -6
  70. package/lib/exports/v1/__snapshots__/constants-colors.less.test.ts.snap +3 -3
  71. package/lib/exports/v1/constants-colors.less +2 -2
  72. package/lib/input-utils.less +1 -1
  73. package/lib/test/axe-apca/README.md +19 -0
  74. package/lib/test/axe-apca/src/axe-apca.test.ts +77 -1
  75. package/lib/test/axe-apca/src/axe-apca.ts +16 -8
  76. package/lib/test/test-utils.ts +7 -3
  77. package/package.json +14 -14
  78. package/lib/exports/theme.less +0 -85
@@ -904,6 +904,132 @@ exports[`atomic: color > should output v2 atomic css classes for colors 1`] = `
904
904
  color: var(--yellow-600) !important;
905
905
  }
906
906
 
907
+ .bg-purple-100,
908
+ .h\\\\:bg-purple-100:hover,
909
+ .f\\\\:bg-purple-100:focus,
910
+ .f\\\\:bg-purple-100:focus-within {
911
+ background-color: var(--purple-100) !important;
912
+ }
913
+
914
+ .bc-purple-100,
915
+ .h\\\\:bc-purple-100:hover,
916
+ .f\\\\:bc-purple-100:focus,
917
+ .f\\\\:bc-purple-100:focus-within {
918
+ border-color: var(--purple-100) !important;
919
+ }
920
+
921
+ .fc-purple-100,
922
+ .h\\\\:fc-purple-100:hover,
923
+ .f\\\\:fc-purple-100:focus,
924
+ .f\\\\:fc-purple-100:focus-within {
925
+ color: var(--purple-100) !important;
926
+ }
927
+
928
+ .bg-purple-200,
929
+ .h\\\\:bg-purple-200:hover,
930
+ .f\\\\:bg-purple-200:focus,
931
+ .f\\\\:bg-purple-200:focus-within {
932
+ background-color: var(--purple-200) !important;
933
+ }
934
+
935
+ .bc-purple-200,
936
+ .h\\\\:bc-purple-200:hover,
937
+ .f\\\\:bc-purple-200:focus,
938
+ .f\\\\:bc-purple-200:focus-within {
939
+ border-color: var(--purple-200) !important;
940
+ }
941
+
942
+ .fc-purple-200,
943
+ .h\\\\:fc-purple-200:hover,
944
+ .f\\\\:fc-purple-200:focus,
945
+ .f\\\\:fc-purple-200:focus-within {
946
+ color: var(--purple-200) !important;
947
+ }
948
+
949
+ .bg-purple-300,
950
+ .h\\\\:bg-purple-300:hover,
951
+ .f\\\\:bg-purple-300:focus,
952
+ .f\\\\:bg-purple-300:focus-within {
953
+ background-color: var(--purple-300) !important;
954
+ }
955
+
956
+ .bc-purple-300,
957
+ .h\\\\:bc-purple-300:hover,
958
+ .f\\\\:bc-purple-300:focus,
959
+ .f\\\\:bc-purple-300:focus-within {
960
+ border-color: var(--purple-300) !important;
961
+ }
962
+
963
+ .fc-purple-300,
964
+ .h\\\\:fc-purple-300:hover,
965
+ .f\\\\:fc-purple-300:focus,
966
+ .f\\\\:fc-purple-300:focus-within {
967
+ color: var(--purple-300) !important;
968
+ }
969
+
970
+ .bg-purple-400,
971
+ .h\\\\:bg-purple-400:hover,
972
+ .f\\\\:bg-purple-400:focus,
973
+ .f\\\\:bg-purple-400:focus-within {
974
+ background-color: var(--purple-400) !important;
975
+ }
976
+
977
+ .bc-purple-400,
978
+ .h\\\\:bc-purple-400:hover,
979
+ .f\\\\:bc-purple-400:focus,
980
+ .f\\\\:bc-purple-400:focus-within {
981
+ border-color: var(--purple-400) !important;
982
+ }
983
+
984
+ .fc-purple-400,
985
+ .h\\\\:fc-purple-400:hover,
986
+ .f\\\\:fc-purple-400:focus,
987
+ .f\\\\:fc-purple-400:focus-within {
988
+ color: var(--purple-400) !important;
989
+ }
990
+
991
+ .bg-purple-500,
992
+ .h\\\\:bg-purple-500:hover,
993
+ .f\\\\:bg-purple-500:focus,
994
+ .f\\\\:bg-purple-500:focus-within {
995
+ background-color: var(--purple-500) !important;
996
+ }
997
+
998
+ .bc-purple-500,
999
+ .h\\\\:bc-purple-500:hover,
1000
+ .f\\\\:bc-purple-500:focus,
1001
+ .f\\\\:bc-purple-500:focus-within {
1002
+ border-color: var(--purple-500) !important;
1003
+ }
1004
+
1005
+ .fc-purple-500,
1006
+ .h\\\\:fc-purple-500:hover,
1007
+ .f\\\\:fc-purple-500:focus,
1008
+ .f\\\\:fc-purple-500:focus-within {
1009
+ color: var(--purple-500) !important;
1010
+ }
1011
+
1012
+ .bg-purple-600,
1013
+ .h\\\\:bg-purple-600:hover,
1014
+ .f\\\\:bg-purple-600:focus,
1015
+ .f\\\\:bg-purple-600:focus-within {
1016
+ background-color: var(--purple-600) !important;
1017
+ }
1018
+
1019
+ .bc-purple-600,
1020
+ .h\\\\:bc-purple-600:hover,
1021
+ .f\\\\:bc-purple-600:focus,
1022
+ .f\\\\:bc-purple-600:focus-within {
1023
+ border-color: var(--purple-600) !important;
1024
+ }
1025
+
1026
+ .fc-purple-600,
1027
+ .h\\\\:fc-purple-600:hover,
1028
+ .f\\\\:fc-purple-600:focus,
1029
+ .f\\\\:fc-purple-600:focus-within {
1030
+ color: var(--purple-600) !important;
1031
+ }
1032
+
907
1033
  .bg-gold-100,
908
1034
  .h\\\\:bg-gold-100:hover,
909
1035
  .f\\\\:bg-gold-100:focus,
@@ -1928,6 +2054,54 @@ exports[`atomic: color > should output v2 atomic css classes for colors 1`] = `
1928
2054
  color: var(--yellow-600) !important;
1929
2055
  }
1930
2056
 
2057
+ body.theme-system .d\\\\:bg-purple-100 {
2058
+ background-color: var(--purple-100) !important;
2059
+ }
2060
+
2061
+ body.theme-system .d\\\\:fc-purple-100 {
2062
+ color: var(--purple-100) !important;
2063
+ }
2064
+
2065
+ body.theme-system .d\\\\:bg-purple-200 {
2066
+ background-color: var(--purple-200) !important;
2067
+ }
2068
+
2069
+ body.theme-system .d\\\\:fc-purple-200 {
2070
+ color: var(--purple-200) !important;
2071
+ }
2072
+
2073
+ body.theme-system .d\\\\:bg-purple-300 {
2074
+ background-color: var(--purple-300) !important;
2075
+ }
2076
+
2077
+ body.theme-system .d\\\\:fc-purple-300 {
2078
+ color: var(--purple-300) !important;
2079
+ }
2080
+
2081
+ body.theme-system .d\\\\:bg-purple-400 {
2082
+ background-color: var(--purple-400) !important;
2083
+ }
2084
+
2085
+ body.theme-system .d\\\\:fc-purple-400 {
2086
+ color: var(--purple-400) !important;
2087
+ }
2088
+
2089
+ body.theme-system .d\\\\:bg-purple-500 {
2090
+ background-color: var(--purple-500) !important;
2091
+ }
2092
+
2093
+ body.theme-system .d\\\\:fc-purple-500 {
2094
+ color: var(--purple-500) !important;
2095
+ }
2096
+
2097
+ body.theme-system .d\\\\:bg-purple-600 {
2098
+ background-color: var(--purple-600) !important;
2099
+ }
2100
+
2101
+ body.theme-system .d\\\\:fc-purple-600 {
2102
+ color: var(--purple-600) !important;
2103
+ }
2104
+
1931
2105
  body.theme-system .d\\\\:bg-gold-100 {
1932
2106
  background-color: var(--gold-100) !important;
1933
2107
  }
@@ -2613,6 +2787,78 @@ body.theme-system .theme-dark__forced .d\\\\:fc-yellow-600 {
2613
2787
  color: var(--yellow-600) !important;
2614
2788
  }
2615
2789
 
2790
+ body.theme-dark .d\\\\:bg-purple-100,
2791
+ .theme-dark__forced .d\\\\:bg-purple-100,
2792
+ body.theme-system .theme-dark__forced .d\\\\:bg-purple-100 {
2793
+ background-color: var(--purple-100) !important;
2794
+ }
2795
+
2796
+ body.theme-dark .d\\\\:fc-purple-100,
2797
+ .theme-dark__forced .d\\\\:fc-purple-100,
2798
+ body.theme-system .theme-dark__forced .d\\\\:fc-purple-100 {
2799
+ color: var(--purple-100) !important;
2800
+ }
2801
+
2802
+ body.theme-dark .d\\\\:bg-purple-200,
2803
+ .theme-dark__forced .d\\\\:bg-purple-200,
2804
+ body.theme-system .theme-dark__forced .d\\\\:bg-purple-200 {
2805
+ background-color: var(--purple-200) !important;
2806
+ }
2807
+
2808
+ body.theme-dark .d\\\\:fc-purple-200,
2809
+ .theme-dark__forced .d\\\\:fc-purple-200,
2810
+ body.theme-system .theme-dark__forced .d\\\\:fc-purple-200 {
2811
+ color: var(--purple-200) !important;
2812
+ }
2813
+
2814
+ body.theme-dark .d\\\\:bg-purple-300,
2815
+ .theme-dark__forced .d\\\\:bg-purple-300,
2816
+ body.theme-system .theme-dark__forced .d\\\\:bg-purple-300 {
2817
+ background-color: var(--purple-300) !important;
2818
+ }
2819
+
2820
+ body.theme-dark .d\\\\:fc-purple-300,
2821
+ .theme-dark__forced .d\\\\:fc-purple-300,
2822
+ body.theme-system .theme-dark__forced .d\\\\:fc-purple-300 {
2823
+ color: var(--purple-300) !important;
2824
+ }
2825
+
2826
+ body.theme-dark .d\\\\:bg-purple-400,
2827
+ .theme-dark__forced .d\\\\:bg-purple-400,
2828
+ body.theme-system .theme-dark__forced .d\\\\:bg-purple-400 {
2829
+ background-color: var(--purple-400) !important;
2830
+ }
2831
+
2832
+ body.theme-dark .d\\\\:fc-purple-400,
2833
+ .theme-dark__forced .d\\\\:fc-purple-400,
2834
+ body.theme-system .theme-dark__forced .d\\\\:fc-purple-400 {
2835
+ color: var(--purple-400) !important;
2836
+ }
2837
+
2838
+ body.theme-dark .d\\\\:bg-purple-500,
2839
+ .theme-dark__forced .d\\\\:bg-purple-500,
2840
+ body.theme-system .theme-dark__forced .d\\\\:bg-purple-500 {
2841
+ background-color: var(--purple-500) !important;
2842
+ }
2843
+
2844
+ body.theme-dark .d\\\\:fc-purple-500,
2845
+ .theme-dark__forced .d\\\\:fc-purple-500,
2846
+ body.theme-system .theme-dark__forced .d\\\\:fc-purple-500 {
2847
+ color: var(--purple-500) !important;
2848
+ }
2849
+
2850
+ body.theme-dark .d\\\\:bg-purple-600,
2851
+ .theme-dark__forced .d\\\\:bg-purple-600,
2852
+ body.theme-system .theme-dark__forced .d\\\\:bg-purple-600 {
2853
+ background-color: var(--purple-600) !important;
2854
+ }
2855
+
2856
+ body.theme-dark .d\\\\:fc-purple-600,
2857
+ .theme-dark__forced .d\\\\:fc-purple-600,
2858
+ body.theme-system .theme-dark__forced .d\\\\:fc-purple-600 {
2859
+ color: var(--purple-600) !important;
2860
+ }
2861
+
2616
2862
  body.theme-dark .d\\\\:bg-gold-100,
2617
2863
  .theme-dark__forced .d\\\\:bg-gold-100,
2618
2864
  body.theme-system .theme-dark__forced .d\\\\:bg-gold-100 {
@@ -191,6 +191,10 @@ p {
191
191
  overflow-wrap: normal !important;
192
192
  }
193
193
 
194
+ .ow-anywhere {
195
+ overflow-wrap: anywhere !important;
196
+ }
197
+
194
198
  .ow-break-word {
195
199
  overflow-wrap: break-word !important;
196
200
  }
@@ -18,7 +18,7 @@
18
18
 
19
19
  html,
20
20
  body {
21
- color: var(--theme-body-font-color);
21
+ color: var(--theme-body-font-color, var(--black-600));
22
22
  font-family: var(--theme-body-font-family);
23
23
  font-size: var(--fs-base);
24
24
  line-height: var(--lh-base);
@@ -34,7 +34,7 @@ body {
34
34
  body {
35
35
  box-sizing: border-box;
36
36
  min-height: 100%;
37
- background-color: var(--theme-background-color);
37
+ background-color: var(--theme-background-color, var(--white));
38
38
 
39
39
  *,
40
40
  *:before,
@@ -9,6 +9,6 @@ describe("activity-indicator", () => {
9
9
  children: {
10
10
  default: `<div class="v-visible-sr">New activity</div>`,
11
11
  new: `new<div class="v-visible-sr">New activity</div>`,
12
- }
12
+ },
13
13
  });
14
14
  });
@@ -1,27 +1,40 @@
1
1
  .s-activity-indicator {
2
2
  --_ai-focus-ring: var(--focus-ring);
3
3
  --_ai-bg: var(--theme-secondary-400);
4
- --_ai-fc: var(--_white-static);
4
+ --_ai-fc: var(--white);
5
5
 
6
- // CONTEXTUAL STYLES
7
6
  .highcontrast-mode({
8
- --_ai-fc: var(--white);
7
+ --_ai-bg: var(--theme-secondary-500);
9
8
  });
10
9
 
11
10
  // VARIANTS
12
11
  &&__danger {
13
12
  --_ai-bg: var(--red-400);
14
13
  --_ai-focus-ring: var(--focus-ring-error);
14
+
15
+ .highcontrast-mode({
16
+ --_ai-bg: var(--red-500);
17
+ });
15
18
  }
16
19
 
17
20
  &&__success {
18
21
  --_ai-bg: var(--green-400);
19
22
  --_ai-focus-ring: var(--focus-ring-success);
23
+
24
+ .highcontrast-mode({
25
+ --_ai-bg: var(--green-500);
26
+ });
20
27
  }
21
28
 
22
29
  &&__warning {
23
- --_ai-bg: var(--yellow-500);
30
+ --_ai-bg: var(--yellow-400);
31
+ --_ai-fc: var(--_black-static);
24
32
  --_ai-focus-ring: var(--focus-ring-warning);
33
+
34
+ .highcontrast-mode({
35
+ --_ai-bg: var(--yellow-500); // needs to be here to override default high contrast
36
+ --_ai-fc: var(--white);
37
+ });
25
38
  }
26
39
 
27
40
  background-color: var(--_ai-bg);
@@ -15,28 +15,32 @@
15
15
  // VARIANTS
16
16
  &&__danger {
17
17
  --_an-a-fc: var(--red-400);
18
- --_an-a-fc-hover: var(--red-400);
18
+ --_an-a-fc-hover: var(--red-500);
19
+ --_an-a-fc-visited: var(--red-600);
19
20
  }
20
21
 
21
22
  &&__default {
22
- --_an-a-fc: var(--theme-link-color);
23
- --_an-a-fc-hover: var(--theme-link-color-hover);
24
- --_an-a-fc-visited: var(--theme-link-color-visited);
23
+ --_an-a-fc: var(--theme-link-color, var(--theme-secondary-400));
24
+ --_an-a-fc-hover: var(--theme-link-color-hover, var(--theme-secondary-500));
25
+ --_an-a-fc-visited: var(--theme-link-color-visited, var(--theme-secondary-600));
25
26
  }
26
27
 
27
28
  &&__grayscale {
28
- --_an-a-fc: var(--black-500);
29
+ --_an-a-fc: var(--black-400);
29
30
  --_an-a-fc-hover: var(--black-500);
31
+ --_an-a-fc-visited: var(--black-600);
30
32
  }
31
33
 
32
34
  &&__inherit {
33
35
  --_an-a-fc: inherit;
34
36
  --_an-a-fc-hover: inherit;
37
+ --_an-a-fc-visited: inherit;
35
38
  }
36
39
 
37
40
  &&__muted {
38
41
  --_an-a-fc: var(--black-400);
39
- --_an-a-fc-hover: var(--black-400);
42
+ --_an-a-fc-hover: var(--black-500);
43
+ --_an-a-fc-visited: var(--black-600);
40
44
  }
41
45
 
42
46
  &&__danger,
@@ -45,9 +45,5 @@ describe("anchors", () => {
45
45
  ${testid}: ${component}
46
46
  </div>
47
47
  `,
48
- skippedTestids: [
49
- // TODO resolve webkit failures for these. See https://github.com/StackExchange/Stacks/actions/runs/5406068986/jobs/9822478155?pr=1404
50
- /s-anchors/,
51
- ],
52
48
  });
53
49
  });
@@ -47,8 +47,5 @@ describe("avatar", () => {
47
47
  ${component}
48
48
  </div>
49
49
  `,
50
- skippedTestids: [
51
- /-letter/, // TODO: resolve font-family thrashing issues
52
- ],
53
50
  });
54
51
  });
@@ -24,7 +24,7 @@ describe("badge", () => {
24
24
  Altruist
25
25
  </span>`,
26
26
  },
27
- tag: "span"
27
+ tag: "span",
28
28
  });
29
29
  });
30
30
 
@@ -40,7 +40,7 @@ describe("badge", () => {
40
40
  ...defaultOptions,
41
41
  includeNullModifier: false,
42
42
  },
43
- tag: "span"
43
+ tag: "span",
44
44
  });
45
45
 
46
46
  // Icon badges
@@ -53,24 +53,20 @@
53
53
  &&__silver,
54
54
  &&__bronze {
55
55
  --_ba-fc: var(--black-500);
56
-
57
- .highcontrast-mode({
58
- --_ba-fc: var(--black-600);
59
- });
60
56
  }
61
57
 
62
58
  &&__gold {
63
- --_ba-bc: var(--gold-400);
59
+ --_ba-bc: var(--gold-300);
64
60
  --_ba-bg: var(--gold-100);
65
61
  }
66
62
 
67
63
  &&__silver {
68
- --_ba-bc: var(--silver-400);
64
+ --_ba-bc: var(--silver-300);
69
65
  --_ba-bg: var(--silver-100);
70
66
  }
71
67
 
72
68
  &&__bronze {
73
- --_ba-bc: var(--bronze-400);
69
+ --_ba-bc: var(--bronze-300);
74
70
  --_ba-bg: var(--bronze-100);
75
71
  }
76
72
 
@@ -93,20 +89,20 @@
93
89
  }
94
90
 
95
91
  &&__bounty {
96
- --_ba-bg: var(--blue-500);
92
+ --_ba-bg: var(--blue-400);
97
93
  }
98
94
 
99
95
  &&__important {
100
- --_ba-bg: var(--red-500);
96
+ --_ba-bg: var(--red-400);
101
97
  }
102
98
 
103
99
  &&__rep {
104
- --_ba-bc: var(--green-400);
100
+ --_ba-bc: var(--green-300);
105
101
  --_ba-fc: var(--green-400);
106
102
  }
107
103
 
108
104
  &&__rep-down {
109
- --_ba-bc: var(--red-400);
105
+ --_ba-bc: var(--red-300);
110
106
  --_ba-fc: var(--red-400);
111
107
  }
112
108
 
@@ -118,8 +114,8 @@
118
114
  // Users
119
115
  &&__admin {
120
116
  --_ba-bc: var(--theme-primary-300);
121
- --_ba-bg: var(--theme-primary-200);
122
- --_ba-fc: var(--theme-primary-600);
117
+ --_ba-bg: var(--theme-primary-100);
118
+ --_ba-fc: var(--theme-primary-500);
123
119
  }
124
120
 
125
121
  &&__moderator {
@@ -166,8 +162,8 @@
166
162
 
167
163
  &&__staff {
168
164
  // Staff badges are always "Stack Overflow Orange"
169
- --_ba-bc: var(--orange-400);
170
- --_ba-bg: var(--orange-300);
165
+ --_ba-bc: var(--orange-300);
166
+ --_ba-bg: var(--orange-200);
171
167
  --_ba-fc: var(--orange-600);
172
168
  }
173
169
 
@@ -180,35 +176,31 @@
180
176
  }
181
177
 
182
178
  &&__danger {
183
- --_ba-bc: var(--red-500);
184
- --_ba-bg: var(--red-300);
179
+ --_ba-bc: var(--red-300);
180
+ --_ba-bg: var(--red-200);
185
181
  --_ba-fc: var(--red-600);
186
182
 
187
183
  &.s-badge__filled {
188
184
  --_ba-bg: var(--red-400);
189
- --_ba-fc: var(--_white-static);
190
-
191
- .highcontrast-mode({
192
- --_ba-fc: var(--white);
193
- });
185
+ --_ba-fc: var(--white);
194
186
  }
195
187
  }
196
188
  &&__info {
197
- --_ba-bc: var(--blue-500);
198
- --_ba-bg: var(--blue-300);
189
+ --_ba-bc: var(--blue-300);
190
+ --_ba-bg: var(--blue-200);
199
191
  --_ba-fc: var(--blue-600);
200
192
  }
201
193
 
202
194
  &&__warning {
203
- --_ba-bc: var(--yellow-500);
204
- --_ba-bg: var(--yellow-300);
195
+ --_ba-bc: var(--yellow-300);
196
+ --_ba-bg: var(--yellow-200);
205
197
  --_ba-fc: var(--yellow-600);
206
198
  }
207
199
 
208
200
  &&__muted {
209
- --_ba-bc: var(--black-500);
210
- --_ba-bg: var(--black-225);
211
- --_ba-fc: var(--black-600);
201
+ --_ba-bc: var(--black-300);
202
+ --_ba-bg: var(--black-200);
203
+ --_ba-fc: var(--black-500);
212
204
 
213
205
  &.s-badge__filled {
214
206
  --_ba-bg: var(--black-500);
@@ -37,8 +37,8 @@
37
37
  inset: 0 0 auto 0;
38
38
  padding: var(--su12);
39
39
  position: fixed;
40
- -webkit-transform: translate3d(0, calc(var(--theme-topbar-height) * var(--_no-x-offset)), 0);
41
- transform: translate3d(0, calc(var(--theme-topbar-height) * var(--_no-x-offset)), 0);
40
+ -webkit-transform: translate3d(0, calc(var(--theme-topbar-height, calc(var(--su-static48) + var(--su-static8))) * var(--_no-x-offset)), 0);
41
+ transform: translate3d(0, calc(var(--theme-topbar-height, calc(var(--su-static48) + var(--su-static8))) * var(--_no-x-offset)), 0);
42
42
  width: 100%;
43
43
  z-index: calc(var(--zi-navigation-fixed) - 1); // Tuck below topbar
44
44
  }
@@ -1,6 +1,6 @@
1
1
  a.s-block-link,
2
2
  .s-block-link {
3
- @bl-bs: inset var(--_li-block-bs-offset-x, 3px) 0 0 var(--theme-primary);
3
+ --_bl-bs-color: var(--theme-primary);
4
4
  --_bl-bg: transparent;
5
5
  --_bl-fc: var(--black-500);
6
6
  --_bl-fc-hover: var(--black-600);
@@ -31,10 +31,10 @@ a.s-block-link,
31
31
  }
32
32
 
33
33
  &:focus-visible {
34
- box-shadow: @bl-bs, 0 0 0 var(--su-static4) var(--focus-ring-muted);
34
+ box-shadow: inset var(--_li-block-bs-offset-x, 3px) 0 0 var(--_bl-bs-color), 0 0 0 var(--su-static4) var(--focus-ring-muted);
35
35
  }
36
36
 
37
- box-shadow: @bl-bs;
37
+ box-shadow: inset var(--_li-block-bs-offset-x, 3px) 0 0 var(--_bl-bs-color);
38
38
  }
39
39
  }
40
40
 
@@ -48,6 +48,7 @@ a.s-block-link,
48
48
  &&__danger {
49
49
  --_bl-fc: var(--red-400);
50
50
  --_bl-fc-hover: var(--red-500);
51
+ --_bl-fc-visited: var(--red-500);
51
52
  }
52
53
 
53
54
  &:active,
@@ -59,7 +60,7 @@ a.s-block-link,
59
60
  }
60
61
 
61
62
  &:visited {
62
- color: var(--_bl-fc-focus);
63
+ color: var(--_bl-fc-visited);
63
64
  }
64
65
 
65
66
  @focus-styles();
@@ -5,7 +5,7 @@ describe("button", () => {
5
5
  runComponentTests({
6
6
  type: "a11y",
7
7
  baseClass: "s-btn",
8
- variants: ["danger", "muted", "primary"],
8
+ variants: ["danger", "muted"],
9
9
  modifiers: {
10
10
  primary: ["filled", "outlined"],
11
11
  secondary: [...["xs", "sm", "md"], ...["dropdown", "icon"]],
@@ -22,8 +22,5 @@ describe("button", () => {
22
22
  default: "Ask question",
23
23
  },
24
24
  tag: "button",
25
- excludedTestids: [
26
- /primary-outlined/, // This combination is not supported
27
- ],
28
25
  });
29
26
  });