WordPress/wp-content/themes/twentytwentyone/assets/sass/02-tools/mixins.scss
Peter Wilson 2ffff78f51 Twenty Twenty-One: Adapt vertical buttons to text length.
Display vertically aligned buttons as inline elements.

Props poena, paaljoachim, hellofromTonya, jeroenrotty, rolfsiebers.
Fixes #52432.


Built from https://develop.svn.wordpress.org/trunk@50261


git-svn-id: http://core.svn.wordpress.org/trunk@49906 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-02-09 03:44:06 +00:00

101 lines
2.2 KiB
SCSS

// Responsive breakpoints mixin
@mixin add_variables( $view: frontend ) {
@if frontend == $view {
:root {
@content;
}
}
@if editor == $view {
:root,
body {
@content;
}
}
}
// Button style
// - Applies button styles to blocks and elements that share them.
@mixin button-style() {
border: var(--button--border-width) solid transparent;
border-radius: var(--button--border-radius);
cursor: pointer;
font-weight: var(--button--font-weight);
font-family: var(--button--font-family);
font-size: var(--button--font-size);
line-height: var(--button--line-height);
padding: var(--button--padding-vertical) var(--button--padding-horizontal);
text-decoration: none;
// Standard Button Color Relationship Logic
&:not(:hover):not(:active) {
// Text colors
&:not(.has-text-color) {
color: var(--global--color-background);
// Nested
.has-background & {
color: var(--local--color-background, var(--global--color-primary));
&.has-background {
color: var(--global--color-primary);
}
}
}
// Background-colors
&:not(.has-background) {
background-color: var(--global--color-primary);
// Nested
.has-background & {
background-color: var(--local--color-primary, var(--global--color-primary));
}
}
}
// Hover Button color should match parent element foreground color
&:hover,
&:active {
background-color: transparent;
border-color: currentColor;
color: inherit;
}
// Focus Button outline color should always match the current text color
&:focus {
outline-offset: -6px;
outline: 2px dotted currentColor;
}
// Disabled Button colors
&:disabled {
background-color: var(--global--color-white-50);
border-color: var(--global--color-white-50);
color: var(--button--color-text-active);
}
}
@mixin innerblock-margin-clear($container) {
// Clear the top margin for the first-child.
> #{$container} > *:first-child {
margin-top: 0;
}
// Last child that is not the appender.
> #{$container} > *:last-child:not(.block-list-appender) {
margin-bottom: 0;
}
// When selected, the last item becomes the second last because of the appender.
&.has-child-selected > #{$container} > *:nth-last-child(2),
&.is-selected > #{$container} > *:nth-last-child(2) {
margin-bottom: 0;
}
}