WordPress/wp-content/themes/twentytwentyone/assets/sass/05-blocks/search/_style.scss
Sergey Biryukov b3bb99b3d7 Twenty Twenty-One: Clean up Button styles.
This change restructures the Button element styles for better a11y and expected color behaviors. Here what has changed:

- The `button-style()` mixin is now the ''single source or truth'' for how Button should look site-wide.
  - Button Block, File Block, and Search form Blocks all rely on this one mixin.
  - The same styles is also applied to the `<button>` element which appears in widgets, the 404 search form and comments form.
- Improves expected button styles for various conditions and contexts as follows: 
  - User color palette selections for Buttons are retained regardless of a parent block’s color settings or dark-mode.
  - Supports both Default/Filled styles and Outline styles.
  - More consistent `:hover` and `:active` styles.
  - `:focus` styles are now always visible and legible.
- Adds a `--local-color` color variable to scope color relationships to nested blocks.
- Reduces selectors in `style.css` output.
- 1:1 experience between editor and front end button styles.
- Properly supports Dark-mode.

Props allancole, poena, scruffian, megphillips91.
Fixes #51927.
Built from https://develop.svn.wordpress.org/trunk@49987


git-svn-id: http://core.svn.wordpress.org/trunk@49688 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-01-20 05:51:02 +00:00

117 lines
2.7 KiB
SCSS

.wp-block-search {
max-width: var(--responsive--aligndefault-width);
&__button-only.aligncenter {
.wp-block-search__inside-wrapper {
justify-content: center;
}
}
.wp-block-search__label {
font-size: var(--form--font-size);
font-weight: var(--form--label-weight);
margin-bottom: calc(var(--global--spacing-vertical) / 3);
}
.wp-block-search__input {
border: var(--form--border-width) solid var(--form--border-color);
border-radius: var(--form--border-radius);
color: var(--form--color-text);
line-height: var(--form--line-height);
max-width: inherit;
margin-right: calc(-1 * var(--button--border-width));
padding: var(--form--spacing-unit);
&:focus {
color: var(--form--color-text);
border-color: var(--form--border-color);
}
.has-background & {
border-color: var(--local--color-primary, var(--global--color-primary)) !important;
}
}
button.wp-block-search__button {
margin-left: 0;
line-height: 1;
&.has-icon {
padding: 6px calc(0.5 * var(--button--padding-horizontal));
svg {
width: 40px;
height: 40px;
fill: currentColor;
}
}
&:hover,
&:active {
.has-background & {
background-color: var(--local--color-background, var(--global--color-background)) !important;
color: var(--local--color-primary, var(--global--color-primary)) !important;
}
.has-text-color & {
color: var(--local--color-primary, var(--global--color-primary)) !important;
}
}
}
&.wp-block-search__button-inside {
.wp-block-search__inside-wrapper {
background-color: var(--global--color-white);
border: var(--form--border-width) solid var(--form--border-color);
border-radius: var(--form--border-radius);
padding: var(--form--border-width);
.has-background & {
border-color: var(--local--color-primary, var(--global--color-primary)) !important;
}
.wp-block-search__input {
margin-left: 0;
margin-right: 0;
padding-left: var(--form--spacing-unit);
// Add outline for focus styles to override default
&:focus {
color: var(--form--color-text);
outline-offset: -2px;
outline: 2px dotted var(--form--border-color);
}
}
button.wp-block-search__button {
padding: var(--button--padding-vertical) var(--button--padding-horizontal);
// Search button always needs black contrast against white form background
&:hover {
color: var(--global--color-dark-gray);
}
.is-dark-theme & {
color: var(--global--color-dark-gray);
&:hover {
background-color: var(--global--color-dark-gray);
color: var(--global--color-white);
}
}
&.has-icon {
padding: 6px calc(0.5 * var(--button--padding-horizontal));
}
}
}
}
}
.wp-block-search__button {
box-shadow: none;
}