-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Handle muted
foreground color combined with default control background in dark mode
#782
Conversation
🦋 Changeset detectedLatest commit: fe51fbb The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Variables changed--- base/dist/scss/colors/_dark.scss 2023-11-22 19:30:01.996817122 +0000
+++ dist/scss/colors/_dark.scss 2023-11-22 19:29:48.856774804 +0000
@@ -17,3 +17,3 @@
--color-diff-blob-hunk-num-bg: rgba(56,139,253,0.4);
- --color-diff-blob-expander-icon: #7d8590;
+ --color-diff-blob-expander-icon: #848d97;
--color-diff-blob-selected-line-highlight-mix-blend-mode: screen;
@@ -58,3 +58,3 @@
--color-codemirror-guttermarker-subtle-text: #6e7681;
- --color-codemirror-linenumber-text: #7d8590;
+ --color-codemirror-linenumber-text: #848d97;
--color-codemirror-cursor: #e6edf3;
@@ -76,8 +76,8 @@
--color-checks-text-primary: #e6edf3;
- --color-checks-text-secondary: #7d8590;
+ --color-checks-text-secondary: #848d97;
--color-checks-text-link: #2f81f7;
- --color-checks-btn-icon: #7d8590;
+ --color-checks-btn-icon: #848d97;
--color-checks-btn-hover-icon: #e6edf3;
--color-checks-btn-hover-bg: rgba(110,118,129,0.1);
- --color-checks-input-text: #7d8590;
+ --color-checks-input-text: #848d97;
--color-checks-input-placeholder-text: #6e7681;
@@ -99,7 +99,7 @@
--color-checks-scrollbar-thumb-bg: rgba(110,118,129,0.4);
- --color-checks-header-label-text: #7d8590;
+ --color-checks-header-label-text: #848d97;
--color-checks-header-label-open-text: #e6edf3;
--color-checks-header-border: #21262d;
- --color-checks-header-icon: #7d8590;
- --color-checks-line-text: #7d8590;
+ --color-checks-header-icon: #848d97;
+ --color-checks-line-text: #848d97;
--color-checks-line-num-text: #6e7681;
@@ -112,3 +112,3 @@
--color-checks-gate-bg: rgba(187,128,9,0.15);
- --color-checks-gate-text: #7d8590;
+ --color-checks-gate-text: #848d97;
--color-checks-gate-waiting-text: #d29922;
@@ -117,9 +117,9 @@
--color-checks-step-warning-text: #d29922;
- --color-checks-logline-text: #7d8590;
+ --color-checks-logline-text: #848d97;
--color-checks-logline-num-text: #6e7681;
--color-checks-logline-debug-text: #a371f7;
- --color-checks-logline-error-text: #7d8590;
+ --color-checks-logline-error-text: #848d97;
--color-checks-logline-error-num-text: #6e7681;
--color-checks-logline-error-bg: rgba(248,81,73,0.1);
- --color-checks-logline-warning-text: #7d8590;
+ --color-checks-logline-warning-text: #848d97;
--color-checks-logline-warning-num-text: #d29922;
@@ -274,3 +274,3 @@
--color-switch-track-disabled-bg: #21262d;
- --color-switch-track-fg: #7d8590;
+ --color-switch-track-fg: #848d97;
--color-switch-track-disabled-fg: #010409;
@@ -295,5 +295,5 @@
--color-tree-view-item-chevron-hover-bg: rgba(177,186,196,0.12);
- --color-tree-view-item-directory-fill: #7d8590;
+ --color-tree-view-item-directory-fill: #848d97;
--color-fg-default: #e6edf3;
- --color-fg-muted: #7d8590;
+ --color-fg-muted: #848d97;
--color-fg-subtle: #6e7681; |
dark
muted
valuemuted
foreground color combined with default control background in dark mode
Design Token Contrast Check
|
contrastPair | pass | contrastRatio | minimumContrastRatio |
---|---|---|---|
fg.default vs. canvas.default | ✅ | 15.79:1 | 4.5:1 |
fg.muted vs. canvas.default | ✅ | 5.24:1 | 4.5:1 |
fg.subtle vs. canvas.default | ✅ | 4.54:1 | 4.5:1 |
fg.default vs. canvas.subtle | ✅ | 14.83:1 | 4.5:1 |
fg.muted vs. canvas.subtle | ✅ | 4.92:1 | 4.5:1 |
fg.default vs. canvas.inset | ✅ | 14.83:1 | 4.5:1 |
fg.muted vs. canvas.inset | ✅ | 4.92:1 | 4.5:1 |
fg.default vs. accent.fg | ✅ | 3.04:1 | 3:1 |
fg.default vs. fg.muted | ✅ | 3.01:1 | 3:1 |
fg.default vs. accent.subtle | ✅ | 13.88:1 | 4.5:1 |
fg.default vs. success.subtle | ✅ | 14.19:1 | 4.5:1 |
fg.default vs. open.subtle | ✅ | 14.19:1 | 4.5:1 |
fg.default vs. danger.subtle | ✅ | 13.77:1 | 4.5:1 |
fg.default vs. closed.subtle | ✅ | 13.77:1 | 4.5:1 |
fg.default vs. attention.subtle | ✅ | 14.65:1 | 4.5:1 |
fg.default vs. severe.subtle | ✅ | 14.26:1 | 4.5:1 |
fg.default vs. done.subtle | ✅ | 14.21:1 | 4.5:1 |
fg.default vs. sponsors.subtle | ✅ | 14.24:1 | 4.5:1 |
accent.fg vs. canvas.default | ✅ | 5.19:1 | 4.5:1 |
accent.fg vs. canvas.subtle | ✅ | 4.87:1 | 4.5:1 |
accent.fg vs. canvas.inset | ✅ | 4.87:1 | 4.5:1 |
success.fg vs. canvas.default | ✅ | 5.07:1 | 4.5:1 |
success.fg vs. canvas.subtle | ✅ | 4.77:1 | 4.5:1 |
success.fg vs. canvas.inset | ✅ | 4.77:1 | 4.5:1 |
open.fg vs. canvas.default | ✅ | 5.07:1 | 4.5:1 |
open.fg vs. canvas.subtle | ✅ | 4.77:1 | 4.5:1 |
open.fg vs. canvas.inset | ✅ | 4.77:1 | 4.5:1 |
danger.fg vs. canvas.default | ✅ | 5.24:1 | 4.5:1 |
danger.fg vs. canvas.subtle | ✅ | 4.92:1 | 4.5:1 |
danger.fg vs. canvas.inset | ✅ | 4.92:1 | 4.5:1 |
closed.fg vs. canvas.default | ✅ | 5.24:1 | 4.5:1 |
closed.fg vs. canvas.subtle | ✅ | 4.92:1 | 4.5:1 |
closed.fg vs. canvas.inset | ✅ | 4.92:1 | 4.5:1 |
attention.fg vs. canvas.default | ✅ | 4.86:1 | 4.5:1 |
attention.fg vs. canvas.subtle | ✅ | 4.57:1 | 4.5:1 |
attention.fg vs. canvas.inset | ✅ | 4.57:1 | 4.5:1 |
severe.fg vs. canvas.default | ✅ | 5.03:1 | 4.5:1 |
severe.fg vs. canvas.subtle | ✅ | 4.72:1 | 4.5:1 |
severe.fg vs. canvas.inset | ✅ | 4.72:1 | 4.5:1 |
done.fg vs. canvas.default | ✅ | 5.04:1 | 4.5:1 |
done.fg vs. canvas.subtle | ✅ | 4.73:1 | 4.5:1 |
done.fg vs. canvas.inset | ✅ | 4.73:1 | 4.5:1 |
sponsors.fg vs. canvas.default | ✅ | 5.04:1 | 4.5:1 |
sponsors.fg vs. canvas.subtle | ✅ | 4.73:1 | 4.5:1 |
sponsors.fg vs. canvas.inset | ✅ | 4.73:1 | 4.5:1 |
accent.fg vs. accent.subtle | ✅ | 4.56:1 | 4.5:1 |
success.fg vs. success.subtle | ✅ | 4.56:1 | 4.5:1 |
open.fg vs. open.subtle | ✅ | 4.56:1 | 4.5:1 |
danger.fg vs. danger.subtle | ✅ | 4.57:1 | 4.5:1 |
closed.fg vs. closed.subtle | ✅ | 4.57:1 | 4.5:1 |
attention.fg vs. attention.subtle | ✅ | 4.51:1 | 4.5:1 |
severe.fg vs. severe.subtle | ✅ | 4.54:1 | 4.5:1 |
done.fg vs. done.subtle | ✅ | 4.53:1 | 4.5:1 |
sponsors.fg vs. sponsors.subtle | ✅ | 4.55:1 | 4.5:1 |
accent.fg vs. fg.default | ✅ | 3.04:1 | 3:1 |
success.fg vs. fg.default | ✅ | 3.11:1 | 3:1 |
open.fg vs. fg.default | ✅ | 3.11:1 | 3:1 |
danger.fg vs. fg.default | ✅ | 3.01:1 | 3:1 |
closed.fg vs. fg.default | ✅ | 3.01:1 | 3:1 |
attention.fg vs. fg.default | ✅ | 3.24:1 | 3:1 |
severe.fg vs. fg.default | ✅ | 3.13:1 | 3:1 |
done.fg vs. fg.default | ✅ | 3.13:1 | 3:1 |
sponsors.fg vs. fg.default | ✅ | 3.13:1 | 3:1 |
fg.onEmphasis vs. neutral.emphasis | ✅ | 4.54:1 | 4.5:1 |
fg.onEmphasis vs. neutral.emphasisPlus | ✅ | 14.65:1 | 4.5:1 |
fg.onEmphasis vs. accent.emphasis | ✅ | 5.19:1 | 4.5:1 |
fg.onEmphasis vs. success.emphasis | ✅ | 4.51:1 | 4.5:1 |
fg.onEmphasis vs. open.emphasis | ✅ | 4.51:1 | 4.5:1 |
fg.onEmphasis vs. danger.emphasis | ✅ | 5.35:1 | 4.5:1 |
fg.onEmphasis vs. closed.emphasis | ✅ | 5.35:1 | 4.5:1 |
fg.onEmphasis vs. attention.emphasis | ✅ | 4.86:1 | 4.5:1 |
fg.onEmphasis vs. severe.emphasis | ✅ | 5.03:1 | 4.5:1 |
fg.onEmphasis vs. done.emphasis | ✅ | 5.04:1 | 4.5:1 |
fg.onEmphasis vs. sponsors.emphasis | ✅ | 5.04:1 | 4.5:1 |
control.borderColor.emphasis vs. canvas.default | ✅ | 3.28:1 | 3:1 |
control.borderColor.emphasis vs. canvas.subtle | ✅ | 3.08:1 | 3:1 |
dark
: ❌ 10 checks failed
Show results table for theme: dark
contrastPair | pass | contrastRatio | minimumContrastRatio |
---|---|---|---|
fg.default vs. canvas.default | ✅ | 16.01:1 | 4.5:1 |
fg.muted vs. canvas.default | ✅ | 5.62:1 | 4.5:1 |
fg.subtle vs. canvas.default | ❌ | 4.11:1 | 4.5:1 |
fg.default vs. canvas.subtle | ✅ | 14.63:1 | 4.5:1 |
fg.muted vs. canvas.subtle | ✅ | 5.13:1 | 4.5:1 |
fg.default vs. canvas.inset | ✅ | 17.37:1 | 4.5:1 |
fg.muted vs. canvas.inset | ✅ | 6.1:1 | 4.5:1 |
fg.default vs. accent.fg | ✅ | 3.17:1 | 3:1 |
fg.default vs. fg.muted | ❌ | 2.84:1 | 3:1 |
fg.default vs. accent.subtle on canvas.default | ✅ | 14.34:1 | 4.5:1 |
fg.default vs. accent.subtle on canvas.subtle | ✅ | 12.91:1 | 4.5:1 |
fg.default vs. success.subtle on canvas.default | ✅ | 13.44:1 | 4.5:1 |
fg.default vs. success.subtle on canvas.subtle | ✅ | 12:1 | 4.5:1 |
fg.default vs. open.subtle on canvas.default | ✅ | 13.44:1 | 4.5:1 |
fg.default vs. open.subtle on canvas.subtle | ✅ | 12:1 | 4.5:1 |
fg.default vs. danger.subtle on canvas.default | ✅ | 14.59:1 | 4.5:1 |
fg.default vs. danger.subtle on canvas.subtle | ✅ | 13.2:1 | 4.5:1 |
fg.default vs. closed.subtle on canvas.default | ✅ | 13.64:1 | 4.5:1 |
fg.default vs. closed.subtle on canvas.subtle | ✅ | 12.34:1 | 4.5:1 |
fg.default vs. attention.subtle on canvas.default | ✅ | 13.4:1 | 4.5:1 |
fg.default vs. attention.subtle on canvas.subtle | ✅ | 12.08:1 | 4.5:1 |
fg.default vs. severe.subtle on canvas.default | ✅ | 14.45:1 | 4.5:1 |
fg.default vs. severe.subtle on canvas.subtle | ✅ | 13.03:1 | 4.5:1 |
fg.default vs. done.subtle on canvas.default | ✅ | 14.28:1 | 4.5:1 |
fg.default vs. done.subtle on canvas.subtle | ✅ | 12.85:1 | 4.5:1 |
fg.default vs. sponsors.subtle on canvas.default | ✅ | 14.4:1 | 4.5:1 |
fg.default vs. sponsors.subtle on canvas.subtle | ✅ | 12.98:1 | 4.5:1 |
accent.fg vs. canvas.default | ✅ | 5.05:1 | 4.5:1 |
accent.fg vs. canvas.subtle | ✅ | 4.61:1 | 4.5:1 |
accent.fg vs. canvas.inset | ✅ | 5.48:1 | 4.5:1 |
success.fg vs. canvas.default | ✅ | 7.44:1 | 4.5:1 |
success.fg vs. canvas.subtle | ✅ | 6.8:1 | 4.5:1 |
success.fg vs. canvas.inset | ✅ | 8.08:1 | 4.5:1 |
open.fg vs. canvas.default | ✅ | 7.44:1 | 4.5:1 |
open.fg vs. canvas.subtle | ✅ | 6.8:1 | 4.5:1 |
open.fg vs. canvas.inset | ✅ | 8.08:1 | 4.5:1 |
danger.fg vs. canvas.default | ✅ | 5.64:1 | 4.5:1 |
danger.fg vs. canvas.subtle | ✅ | 5.16:1 | 4.5:1 |
danger.fg vs. canvas.inset | ✅ | 6.12:1 | 4.5:1 |
closed.fg vs. canvas.default | ✅ | 5.64:1 | 4.5:1 |
closed.fg vs. canvas.subtle | ✅ | 5.16:1 | 4.5:1 |
closed.fg vs. canvas.inset | ✅ | 6.12:1 | 4.5:1 |
attention.fg vs. canvas.default | ✅ | 7.49:1 | 4.5:1 |
attention.fg vs. canvas.subtle | ✅ | 6.85:1 | 4.5:1 |
attention.fg vs. canvas.inset | ✅ | 8.13:1 | 4.5:1 |
severe.fg vs. canvas.default | ✅ | 5.61:1 | 4.5:1 |
severe.fg vs. canvas.subtle | ✅ | 5.13:1 | 4.5:1 |
severe.fg vs. canvas.inset | ✅ | 6.09:1 | 4.5:1 |
done.fg vs. canvas.default | ✅ | 5.64:1 | 4.5:1 |
done.fg vs. canvas.subtle | ✅ | 5.15:1 | 4.5:1 |
done.fg vs. canvas.inset | ✅ | 6.12:1 | 4.5:1 |
sponsors.fg vs. canvas.default | ✅ | 5.62:1 | 4.5:1 |
sponsors.fg vs. canvas.subtle | ✅ | 5.14:1 | 4.5:1 |
sponsors.fg vs. canvas.inset | ✅ | 6.1:1 | 4.5:1 |
accent.fg vs. accent.subtle on canvas.default | ✅ | 4.52:1 | 4.5:1 |
success.fg vs. success.subtle on canvas.default | ✅ | 6.25:1 | 4.5:1 |
success.fg vs. success.subtle on canvas.subtle | ✅ | 5.58:1 | 4.5:1 |
open.fg vs. open.subtle on canvas.default | ✅ | 6.25:1 | 4.5:1 |
open.fg vs. open.subtle on canvas.subtle | ✅ | 5.58:1 | 4.5:1 |
danger.fg vs. danger.subtle on canvas.default | ✅ | 5.14:1 | 4.5:1 |
danger.fg vs. danger.subtle on canvas.subtle | ✅ | 4.65:1 | 4.5:1 |
closed.fg vs. closed.subtle on canvas.default | ✅ | 4.81:1 | 4.5:1 |
attention.fg vs. attention.subtle on canvas.default | ✅ | 6.27:1 | 4.5:1 |
attention.fg vs. attention.subtle on canvas.subtle | ✅ | 5.65:1 | 4.5:1 |
severe.fg vs. severe.subtle on canvas.default | ✅ | 5.06:1 | 4.5:1 |
severe.fg vs. severe.subtle on canvas.subtle | ✅ | 4.57:1 | 4.5:1 |
done.fg vs. done.subtle on canvas.default | ✅ | 5.03:1 | 4.5:1 |
done.fg vs. done.subtle on canvas.subtle | ✅ | 4.52:1 | 4.5:1 |
sponsors.fg vs. sponsors.subtle on canvas.default | ✅ | 5.06:1 | 4.5:1 |
sponsors.fg vs. sponsors.subtle on canvas.subtle | ✅ | 4.56:1 | 4.5:1 |
accent.fg vs. fg.default | ✅ | 3.17:1 | 3:1 |
success.fg vs. fg.default | ❌ | 2.14:1 | 3:1 |
open.fg vs. fg.default | ❌ | 2.14:1 | 3:1 |
danger.fg vs. fg.default | ❌ | 2.83:1 | 3:1 |
closed.fg vs. fg.default | ❌ | 2.83:1 | 3:1 |
attention.fg vs. fg.default | ❌ | 2.13:1 | 3:1 |
severe.fg vs. fg.default | ❌ | 2.85:1 | 3:1 |
done.fg vs. fg.default | ❌ | 2.83:1 | 3:1 |
sponsors.fg vs. fg.default | ❌ | 2.84:1 | 3:1 |
fg.onEmphasis vs. neutral.emphasis | ✅ | 4.59:1 | 4.5:1 |
fg.onEmphasis vs. neutral.emphasisPlus | ✅ | 4.59:1 | 4.5:1 |
fg.onEmphasis vs. accent.emphasis | ✅ | 4.63:1 | 4.5:1 |
fg.onEmphasis vs. success.emphasis | ✅ | 4.63:1 | 4.5:1 |
fg.onEmphasis vs. open.emphasis | ✅ | 4.63:1 | 4.5:1 |
fg.onEmphasis vs. danger.emphasis | ✅ | 4.6:1 | 4.5:1 |
fg.onEmphasis vs. closed.emphasis | ✅ | 4.6:1 | 4.5:1 |
fg.onEmphasis vs. attention.emphasis | ✅ | 4.64:1 | 4.5:1 |
fg.onEmphasis vs. severe.emphasis | ✅ | 4.65:1 | 4.5:1 |
fg.onEmphasis vs. done.emphasis | ✅ | 4.6:1 | 4.5:1 |
fg.onEmphasis vs. sponsors.emphasis | ✅ | 4.57:1 | 4.5:1 |
control.borderColor.emphasis vs. canvas.default | ✅ | 3.31:1 | 3:1 |
control.borderColor.emphasis vs. canvas.subtle | ✅ | 3.02:1 | 3:1 |
Design Token Diff
|
Hey @langermank I am in favor of changing the |
I'm also in favour of option 2. |
@lukasoppermann not quite.. I'm not sure that would be possible 🤔 is this close enough? Let me know if not and I can keep manipulating things. |
Sadly in a11y it is either above or below the threshold. There is no close enough. However I think since link underline preferences are shipped we don't require a 3:1 threshold anymore. Once confirmed we could remove them from the checks. |
For posterity, we decided to move forward with this change as we no longer require a 3:1 contrast ratio between |
Summary
In the default light theme, the
muted
or subtle canvas background color matchesbutton
(default control). In default dark, it's off by one step on the scale. We can either adjust that background color, or bring thefgColor-muted
up a little bit.Option 1: adjust default control background color
Option 2: adjust muted foreground color
I'm leaning towards option 2 because it seems like the background color in dark mode was intentional (perhaps to add more contrast). If we had stronger border colors for controls, I wouldn't mind changing that background color.