Skip to content
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

Remove/tweak dark light variables #23229

Merged
merged 4 commits into from
Jun 18, 2020
Merged

Conversation

jasmussen
Copy link
Contributor

The admin UI now uses CSS variables. But the SASS functions for lightening and darkening colors are not accurate, causing too saturated a disabled button:

Screenshot 2020-06-17 at 08 46 47

Additionally, it added some complexity as the variables could not be calculated from a single color.

This PR fixes both of these, using a clever trick from https://stackoverflow.com/questions/1625681/dynamically-change-color-to-lighter-or-darker-by-percentage-css-javascript.

The light colors I simply retired in favor of opacity:

Screenshot 2020-06-17 at 08 54 06

Now they match disabled buttons elsewhere in the admin.

The dark colors are still there:

Screenshot 2020-06-17 at 09 11 27

But they now are rewritten using HSL so that the colors actually can be recalculated.

@jasmussen jasmussen added [Type] Enhancement A suggestion for improvement. [Type] Code Quality Issues or PRs that relate to code quality labels Jun 17, 2020
@jasmussen jasmussen self-assigned this Jun 17, 2020
@github-actions
Copy link

github-actions bot commented Jun 17, 2020

Size Change: -1.26 kB (0%)

Total Size: 1.12 MB

Filename Size Change
build/block-directory/style-rtl.css 937 B -18 B (1%)
build/block-directory/style.css 937 B -18 B (1%)
build/block-editor/style-rtl.css 10.7 kB -19 B (0%)
build/block-editor/style.css 10.7 kB -21 B (0%)
build/block-library/editor-rtl.css 7.83 kB -20 B (0%)
build/block-library/editor.css 7.83 kB -21 B (0%)
build/block-library/style-rtl.css 8 kB -18 B (0%)
build/block-library/style.css 8.01 kB -17 B (0%)
build/block-library/theme-rtl.css 730 B -19 B (2%)
build/block-library/theme.css 732 B -19 B (2%)
build/components/style-rtl.css 15.9 kB -44 B (0%)
build/components/style.css 15.8 kB -45 B (0%)
build/edit-navigation/style-rtl.css 1.02 kB -20 B (1%)
build/edit-navigation/style.css 1.02 kB -19 B (1%)
build/edit-post/style-rtl.css 5.5 kB -104 B (1%)
build/edit-post/style.css 5.5 kB -104 B (1%)
build/edit-site/style-rtl.css 3.03 kB -101 B (3%)
build/edit-site/style.css 3.03 kB -101 B (3%)
build/edit-widgets/style-rtl.css 2.43 kB -102 B (4%)
build/edit-widgets/style.css 2.43 kB -101 B (4%)
build/editor/editor-styles-rtl.css 468 B -18 B (3%)
build/editor/editor-styles.css 469 B -18 B (3%)
build/editor/style-rtl.css 3.8 kB -19 B (0%)
build/editor/style.css 3.8 kB -19 B (0%)
build/format-library/style-rtl.css 542 B -19 B (3%)
build/format-library/style.css 543 B -19 B (3%)
build/list-reusable-blocks/style-rtl.css 446 B -91 B (20%) 🎉
build/list-reusable-blocks/style.css 447 B -90 B (20%) 🎉
build/nux/style-rtl.css 662 B -19 B (2%)
build/nux/style.css 657 B -19 B (2%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.62 kB 0 B
build/api-fetch/index.js 3.4 kB 0 B
build/autop/index.js 2.83 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 7.27 kB 0 B
build/block-editor/index.js 106 kB 0 B
build/block-library/index.js 129 kB 0 B
build/block-serialization-default-parser/index.js 1.88 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 48.1 kB 0 B
build/components/index.js 195 kB 0 B
build/compose/index.js 9.6 kB 0 B
build/core-data/index.js 11.4 kB 0 B
build/data-controls/index.js 1.29 kB 0 B
build/data/index.js 8.45 kB 0 B
build/date/index.js 5.47 kB 0 B
build/deprecated/index.js 772 B 0 B
build/dom-ready/index.js 568 B 0 B
build/dom/index.js 3.17 kB 0 B
build/edit-navigation/index.js 8.26 kB 0 B
build/edit-post/index.js 303 kB 0 B
build/edit-site/index.js 16.6 kB 0 B
build/edit-widgets/index.js 9.33 kB 0 B
build/editor/index.js 44.8 kB 0 B
build/element/index.js 4.65 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.72 kB 0 B
build/hooks/index.js 2.13 kB 0 B
build/html-entities/index.js 622 B 0 B
build/i18n/index.js 3.56 kB 0 B
build/is-shallow-equal/index.js 710 B 0 B
build/keyboard-shortcuts/index.js 2.51 kB 0 B
build/keycodes/index.js 1.94 kB 0 B
build/list-reusable-blocks/index.js 3.13 kB 0 B
build/media-utils/index.js 5.29 kB 0 B
build/notices/index.js 1.79 kB 0 B
build/nux/index.js 3.4 kB 0 B
build/plugins/index.js 2.56 kB 0 B
build/primitives/index.js 1.5 kB 0 B
build/priority-queue/index.js 789 B 0 B
build/redux-routine/index.js 2.85 kB 0 B
build/rich-text/index.js 14 kB 0 B
build/server-side-render/index.js 2.68 kB 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.28 kB 0 B
build/url/index.js 4.06 kB 0 B
build/viewport/index.js 1.85 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action


// Darker shades.
--wp-admin-theme-color-darker-10: hsl(#{$color-primary-h}, #{$color-primary-s}, #{$color-primary-l - 5});
--wp-admin-theme-color-darker-20: hsl(#{$color-primary-h}, #{$color-primary-s}, #{$color-primary-l - 10});
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd love to get rid of these two variables as well at some point to allow changing the colors by just defining a single CSS variable :)

This is still a great improvement thought. I don't think hsl bring value though since we're able to use SASS here. What's the reasoning?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could make it a mixin.

Hsl is native browser, so we can actually retire the variables and have lighter and darker colors from a single color.

Will try in a bit

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hsl is native browser, so we can actually retire the variables and have lighter and darker colors from a single color.

We could but only if we use three CSS variables instead of one which IMO is not great.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do see your point.

You could limit it to two:

--wp-admin-theme-color-hs: '200, 100%';
--wp-admin-theme-color: hsl( var(--wp-admin-theme-color-hs), 36% );

Then you could stitch together variables in the code like this, instead of defining them as new colors:

button {
	background-color: hsl( var(--wp-admin-theme-color-hs), 26% ); // 10% darker
}

You could even do this:

$wp-admin-theme-color-10: hsl( var(--wp-admin-theme-color-hs), 26% );

Make sense?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's better but If I want to tweak the color, I'd have to define --wp-admin-theme-color-hs instead of --wp-admin-theme-color right?

I mean, we're kind of forcing third-party API to use HSL too; Maybe that's fine but how confident are we that this will last forever?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, I don't like that :) I'd rather have three variables over having to define the colors in specific format. And it's not even the full format.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i guess what I'm saying is that i personally prefer to just leave it as is for now. Avoid hsl entirely.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright, I don't disagree. I've reverted the HSL magic for now, and we're back to having two additional dark colors.

We could remove one of them because a hover color isn't strictly necessary. But for the time being, I've kept it.

border-color: var(--wp-admin-theme-color-lighter-10);
color: rgba($white, 0.4);
background: var(--wp-admin-theme-color);
border-color: var(--wp-admin-theme-color);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the simplification here.

Copy link
Contributor

@youknowriad youknowriad left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Joen

@jasmussen jasmussen force-pushed the fix/remove-light-dark-variables branch from d2a6bc4 to 14c6e65 Compare June 17, 2020 13:58
@jasmussen
Copy link
Contributor Author

Tests are passing! Yaay!

@jasmussen jasmussen merged commit ef0704b into master Jun 18, 2020
@jasmussen jasmussen deleted the fix/remove-light-dark-variables branch June 18, 2020 09:15
@github-actions github-actions bot added this to the Gutenberg 8.4 milestone Jun 18, 2020
This was referenced Jun 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Type] Code Quality Issues or PRs that relate to code quality [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants