Skip to content
Merged
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
b8238f0
Update light, dark mode black values
dancormier Oct 21, 2025
14dc6da
Update light, dark mode orange values
dancormier Oct 21, 2025
dd4a3dd
Update remaining light, dark sets
dancormier Oct 22, 2025
84264a8
Add light, dark pink sets
dancormier Oct 22, 2025
95faed2
Update less color snaps
dancormier Oct 22, 2025
ac58ddf
Update high contrast color sets
dancormier Oct 22, 2025
d7c9eb6
Update the less color snaps again
dancormier Oct 22, 2025
beffdbd
Update light, dark black color sets
dancormier Oct 22, 2025
cf5f768
Fixes
dancormier Oct 22, 2025
8260d81
Remove metallic colors
dancormier Oct 23, 2025
a45bac0
Merge branch 'beta' into SPARK-49/color-palettes
dancormier Oct 23, 2025
6a9f965
Make suggested changes
dancormier Oct 29, 2025
6de593d
Retain legacy metallic colors for backward compatibility
dancormier Oct 29, 2025
8fe2599
Update monochromatic colors; set theme secondary to black values
dancormier Oct 29, 2025
137a3f0
Add TODOs for translucent colors
dancormier Oct 29, 2025
88028e8
Merge branch 'beta' into SPARK-49/color-palettes
giamir Nov 4, 2025
f7e4fcc
Revert "Update the less color snaps again"
dancormier Nov 4, 2025
38ed6c1
Revert "Update less color snaps"
dancormier Nov 4, 2025
8493304
Escape colors embedded in svg urls
dancormier Nov 4, 2025
2eeba08
Drop 400 from theme-secondary-400 usage
dancormier Nov 4, 2025
2b3473a
Merge branch 'beta' into SPARK-49/color-palettes
dancormier Nov 4, 2025
d0a8581
Update less snap shots
dancormier Nov 6, 2025
aba62e3
update visual regression images
dancormier Nov 6, 2025
e9ee84d
Comment out broken a11y tests
dancormier Nov 6, 2025
ad7a7e3
Add changeset
dancormier Nov 6, 2025
eace248
Merge branch 'beta' into SPARK-49/color-palettes
dancormier Nov 6, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/stacks-classic/lib/atomic/misc.less
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@
// $ OUTLINE
// ----------------------------------------------------------------------------
.outline-none { outline: 0 !important; }
.outline-ring { outline: solid var(--su-static4) var(--translucent-secondary); }
.outline-ring { outline: solid var(--su-static4) var(--translucent-secondary); } // TODO SHINE revisit this value once theme colors are finalized

.f\:outline-ring {
&:focus,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
.s-activity-indicator {
--_ai-bg: var(--theme-secondary-400);
--_ai-bg: var(--pink-400);
--_ai-fc: var(--white);
--_ai-min-size: var(--su-static16);
--_ai-p: 0 calc(var(--su-static4) - var(--su-static1));
Expand Down Expand Up @@ -27,7 +27,6 @@

&&__warning {
--_ai-bg: var(--yellow-400);
--_ai-fc: var(--_black-static);

.highcontrast-mode({
--_ai-bg: var(--yellow-500); // needs to be here to override default high contrast
Expand Down
2 changes: 1 addition & 1 deletion packages/stacks-classic/lib/components/anchor/anchor.less
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
}

&&__default {
--_an-a-fc: var(--theme-link-color, var(--theme-secondary-400));
--_an-a-fc: var(--theme-link-color, var(--theme-secondary));
--_an-a-fc-hover: var(--theme-link-color-hover, var(--theme-secondary-500));
--_an-a-fc-visited: var(--theme-link-color-visited, var(--purple-500));
--_an-a-fc-hover-visited: var(--theme-link-color-hover, var(--purple-600));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,17 @@
--_ab-before-bg: unset;

// VARIANTS
// TODO SHINE expect a conflict with the award-bling updates. Prefer the changes in https://github.com/StackExchange/Stacks/pull/2013.
&&__gold {
--_ab-before-bg: var(--gold-300);
--_ab-before-bg: var(--yellow-300);
}

&&__silver {
--_ab-before-bg: var(--silver-300);
--_ab-before-bg: var(--blue-300);
}

&&__bronze {
--_ab-before-bg: var(--bronze-300);
--_ab-before-bg: var(--orange-300);
}

// CHILD ELEMENTS
Expand Down
12 changes: 6 additions & 6 deletions packages/stacks-classic/lib/components/badge/badge.less
Original file line number Diff line number Diff line change
Expand Up @@ -62,18 +62,18 @@
}

&&__gold {
--_ba-bc: var(--gold-300);
--_ba-bg: var(--gold-100);
--_ba-bc: var(--yellow-300);
--_ba-bg: var(--yellow-100);
}

&&__silver {
--_ba-bc: var(--silver-300);
--_ba-bg: var(--silver-100);
--_ba-bc: var(--blue-300);
--_ba-bg: var(--blue-100);
}

&&__bronze {
--_ba-bc: var(--bronze-300);
--_ba-bg: var(--bronze-100);
--_ba-bc: var(--orange-300);
--_ba-bg: var(--orange-100);
}

// Number counts
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,21 +48,23 @@
// Less variables for check svg fill color
@ch-bg-image-fill: .set-white()[default];
@ch-bg-image-fill-dark: .set-white-dark()[default];
@ch-bg-image-fill-esc: escape("@{ch-bg-image-fill}"); // color escaped for URL usage
@ch-bg-image-fill-dark-esc: escape("@{ch-bg-image-fill-dark}"); // color escaped for URL usage

// CONTEXTUAL STYLES
.dark-mode({
&:checked {
--_ch-bg-image: url("data:image/svg+xml;,%3Csvg width='11' height='11' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 3.41L8.59 2 4 6.59 2.41 5 1 6.41l3 3z' fill='@{ch-bg-image-fill-dark}'/%3E%3C/svg%3E");
--_ch-bg-image: url("data:image/svg+xml;,%3Csvg width='11' height='11' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 3.41L8.59 2 4 6.59 2.41 5 1 6.41l3 3z' fill='@{ch-bg-image-fill-dark-esc}'/%3E%3C/svg%3E");
}
&:indeterminate {
--_ch-bg-image: url("data:image/svg+xml;,%3Csvg width='11' height='11' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 4.5 h7 v2 h-7 z' fill='@{ch-bg-image-fill-dark}'/%3E%3C/svg%3E");
--_ch-bg-image: url("data:image/svg+xml;,%3Csvg width='11' height='11' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 4.5 h7 v2 h-7 z' fill='@{ch-bg-image-fill-dark-esc}'/%3E%3C/svg%3E");
}
});

.highcontrast-dark-mode({
&:checked, &:indeterminate {
--_ch-bc: var(--blue-500) !important;
--_ch-bg: var(--blue-400);
--_ch-bc: var(--black) !important;
--_ch-bg: var(--black);
}
});

Expand All @@ -75,16 +77,16 @@

// STATES
&:checked, &:indeterminate {
--_ch-bc: var(--theme-secondary-400) !important;
--_ch-bg: var(--theme-secondary-400);
--_ch-bc: var(--theme-secondary) !important;
--_ch-bg: var(--theme-secondary);
}

&:checked {
--_ch-bg-image: url("data:image/svg+xml;,%3Csvg width='11' height='11' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 3.41L8.59 2 4 6.59 2.41 5 1 6.41l3 3z' fill='@{ch-bg-image-fill}'/%3E%3C/svg%3E");
--_ch-bg-image: url("data:image/svg+xml;,%3Csvg width='11' height='11' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 3.41L8.59 2 4 6.59 2.41 5 1 6.41l3 3z' fill='@{ch-bg-image-fill-esc}'/%3E%3C/svg%3E");
}

&:indeterminate {
--_ch-bg-image: url("data:image/svg+xml;,%3Csvg width='11' height='11' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 4.5 h7 v2 h-7 z' fill='@{ch-bg-image-fill}'/%3E%3C/svg%3E");
--_ch-bg-image: url("data:image/svg+xml;,%3Csvg width='11' height='11' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 4.5 h7 v2 h-7 z' fill='@{ch-bg-image-fill-esc}'/%3E%3C/svg%3E");
}

background-image: var(--_ch-bg-image);
Expand All @@ -100,15 +102,15 @@
// CONTEXTUAL STYLES
.highcontrast-dark-mode({
&:checked {
--_ch-bc: var(--blue-400);
--_ch-bc: var(--black);
outline: var(--su-static1) solid var(--black);
}
});

// STATES
&:checked {
--_ch-baw: 0.30769231em;
--_ch-bc: var(--theme-secondary-400);
--_ch-bc: var(--theme-secondary);
--_ch-bg: var(--white);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@
color: var(--theme-link-color, var(--purple-500));
}

color: var(--theme-link-color, var(--theme-secondary-400));
color: var(--theme-link-color, var(--theme-secondary));
cursor: pointer;
text-decoration: none;
}
Expand Down
2 changes: 1 addition & 1 deletion packages/stacks-classic/lib/components/link/link.less
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ a {

a,
.s-link {
--_li-fc: var(--theme-link-color, var(--theme-secondary-400));
--_li-fc: var(--theme-link-color, var(--theme-secondary));
--_li-fc-hover: var(--theme-link-color-hover, var(--theme-secondary-500));
--_li-fc-visited: var(--theme-link-color-visited, var(--purple-500));
--_li-fc-hover-visited: var(--theme-link-color-visited, var(--purple-600));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
--_ps-o: unset;
// Child components
--_ps-content-excerpt-fc: var(--_ps-state-fc, var(--fc-medium));
--_ps-content-title-a-fc: var(--_ps-state-fc, var(--theme-post-title-color, var(--theme-link-color, var(--theme-secondary-400))));
--_ps-content-title-a-fc: var(--_ps-state-fc, var(--theme-post-title-color, var(--theme-link-color, var(--theme-secondary))));
--_ps-content-title-a-fc-hover: var(--_ps-state-fc, var(--theme-post-title-color-hover, var(--theme-link-color-hover, var(--theme-secondary-500))));
--_ps-content-title-a-fc-visited: var(--_ps-state-fc, var(--theme-post-title-color-visited, var(--theme-link-color-visited, var(--purple-500))));
--_ps-content-title-a-fc-hover-visited: var(--_ps-state-fc, var(--theme-post-title-color-hover, var(--theme-link-color-hover, var(--purple-600))));
Expand Down Expand Up @@ -119,7 +119,7 @@
&:not(.s-post-summary__deleted):not(.s-post-summary__ignored) {
--_ps-bg: var(--yellow-100);
--_ps-stats-fc: var(--black-400);
--_ps-content-title-a-fc: var(--theme-post-title-color, var(--theme-link-color, var(--theme-secondary-400)));
--_ps-content-title-a-fc: var(--theme-post-title-color, var(--theme-link-color, var(--theme-secondary)));
--_ps-content-title-a-fc-hover: var(--theme-post-title-color-hover, var(--theme-link-color-hover, var(--theme-secondary-500)));
--_ps-content-title-a-fc-visited: var(--theme-post-title-color-visited, var(--theme-link-color-visited, var(--purple-500)));
--_ps-content-title-a-fc-hover-visited: var(--theme-post-title-color-hover, var(--theme-link-color-hover, var(--purple-600)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,23 +23,24 @@
--_pr-bar-bg: var(--orange-400);
}

// TODO SPARK I've changed metallic colors here to use their new non-metallic equivalents
&&__bronze {
--_pr-bar-bg: var(--bronze-100);
--_pr-label-bc: var(--bronze-400);
--_pr-bar-bg: var(--orange-100);
--_pr-label-bc: var(--orange-400);
}

&&__gold {
--_pr-bar-bg: var(--gold-100);
--_pr-label-bc: var(--gold-400);
--_pr-bar-bg: var(--yellow-100);
--_pr-label-bc: var(--yellow-400);
}

&&__info {
--_pr-bar-bg: var(--blue-400);
}

&&__silver {
--_pr-bar-bg: var(--silver-100);
--_pr-label-bc: var(--silver-400);
--_pr-bar-bg: var(--blue-100);
--_pr-label-bc: var(--blue-400);
}

// VARIANTS
Expand Down Expand Up @@ -161,16 +162,16 @@
&.is-active {
.s-progress {
&--bar.s-progress--bar__left {
background: var(--theme-secondary-400);
background: var(--theme-secondary);
}

&--label {
color: var(--fc-dark);
}

&--stop {
background: var(--theme-secondary-400);
box-shadow: 0 0 0 var(--su-static6) var(--translucent-secondary);
background: var(--theme-secondary);
box-shadow: 0 0 0 var(--su-static6) var(--translucent-secondary);// TODO SHINE revisit this value once theme colors are finalized
}
}
}
Expand All @@ -179,7 +180,7 @@
.s-progress {
&--bar,
&--stop {
background: var(--theme-secondary-400);
background: var(--theme-secondary);
}

&--label {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
.s-toggle-switch {
@ts-bg-image-fill: .set-white()[default];
@ts-bg-image-fill-dark: .set-white-dark()[default];
@ts-bg-image-fill-esc: escape("@{ts-bg-image-fill}"); // color escaped for URL usage
@ts-bg-image-fill-dark-esc: escape("@{ts-bg-image-fill-dark}"); // color escaped for URL usage
--_ts-bg: var(--black-350);
--_ts-bg-image: url("data:image/svg+xml;,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='@{ts-bg-image-fill}'/%3e%3c/svg%3e");
--_ts-bg-image: url("data:image/svg+xml;,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='@{ts-bg-image-fill-esc}'/%3e%3c/svg%3e");
--_ts-bg-ps: left center;
--_ts-multiple-bg: unset;
--_ts-multiple-fc: var(--black-400);

.dark-mode({
--_ts-bg-image: url("data:image/svg+xml;,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='@{ts-bg-image-fill-dark}'/%3e%3c/svg%3e");
--_ts-bg-image: url("data:image/svg+xml;,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='@{ts-bg-image-fill-dark-esc}'/%3e%3c/svg%3e");
});

fieldset[disabled] &,
Expand Down
16 changes: 13 additions & 3 deletions packages/stacks-classic/lib/exports/color-mixins.less
Original file line number Diff line number Diff line change
Expand Up @@ -261,19 +261,29 @@

each(@tiers, .(@tier, @k, @i) {
@stops: 100, 200, 300, 400, 500, 600;
@fallbackColor: if(@tier = primary, orange, blue);
@fallbackColor: if(@tier = primary, orange, black);
@baseThemeVar: ~"--theme-@{tier}";
@customThemeVar: if(@mode = light, ~"@{baseThemeVar}-custom", ~"--theme-dark-@{tier}-custom");

& when (@mode = light), (@mode = dark) {
@{baseThemeVar}: ~"var(@{customThemeVar}, var(--@{fallbackColor}-400))";
& when (@tier = primary) {
@{baseThemeVar}: ~"var(@{customThemeVar}, var(--@{fallbackColor}-400))";
}
& when (@tier = secondary) {
@{baseThemeVar}: ~"var(@{customThemeVar}, var(--@{fallbackColor}))";
}
each(@stops, .(@stop, @kStop, @iStop) {
@{baseThemeVar}-@{stop}: ~"var(@{customThemeVar}-@{stop}, var(--@{fallbackColor}-@{stop}))";
});
}

& when (@mode = light-highcontrast), (@mode = dark-highcontrast) {
@{baseThemeVar}: ~"var(--@{fallbackColor}-400)";
& when (@tier = primary) {
@{baseThemeVar}: ~"var(--@{fallbackColor}-400)";
}
& when (@tier = secondary) {
@{baseThemeVar}: ~"var(--@{fallbackColor})";
}

each(@stops, .(@stop, @kStop, @iStop) {
@{baseThemeVar}-@{stop}: ~"var(--@{fallbackColor}-@{stop})";
Expand Down
Loading
Loading