WordPress/wp-content/themes/twentynineteen/sass/mixins/_mixins-master.scss

133 lines
2.7 KiB
SCSS

// Rem output with px fallback
@mixin font-size($sizeValue: 1) {
font-size: ($sizeValue * 16) * 1px;
font-size: $sizeValue * 1rem;
}
// Center block
@mixin center-block {
display: block;
margin-left: auto;
margin-right: auto;
}
// Clearfix
@mixin clearfix() {
content: "";
display: table;
table-layout: fixed;
}
// Clear after (not all clearfix need this also)
@mixin clearfix-after() {
clear: both;
}
// Column width with margin
@mixin column-width($numberColumns: 3) {
width: map-get($columns, $numberColumns) - (($columns__margin * ($numberColumns - 1)) / $numberColumns);
}
@mixin filter-duotone {
&:before {
background: $color__link;
mix-blend-mode: screen;
opacity: 0.1;
z-index: 2;
}
&:after {
background: $color__link;
mix-blend-mode: multiply;
opacity: .8;
z-index: 3;
/* Browsers supporting mix-blend-mode don't need opacity < 1 */
@supports (mix-blend-mode: multiply) {
opacity: 1;
}
}
}
@mixin filter-grayscale {
position: relative;
filter: grayscale(100%);
z-index: 1;
&:after {
display: block;
width: 100%;
height: 100%;
z-index: 10;
}
}
@mixin post-section-dash {
&:before {
background: $color__text-light;
content: "\020";
display: block;
height: 2px;
margin: $size__spacing-unit 0;
width: 1em;
}
}
/* If we add the border using a regular CSS border, it won't look good on non-retina devices,
* since its edges can look jagged due to lack of antialiasing. In this case, we are several
* layers of box-shadow to add the border visually, which will render the border smoother. */
@mixin box-shadow( $size ) {
box-shadow:
0 0 0 $size $color__text-light inset, // Original border.
0 0 0 ($size + 1px) $color__text-light inset, // Antialiasing, inner edge.
0 0 1px 0 rgba( $color__text-light, 0.7 ); // Antialiasing, outer edge.
}
/* Calculates maximum width for post content */
@mixin postContentMaxWidth() {
@include media(tablet) {
max-width: $size__site-tablet-content;
}
@include media(desktop) {
max-width: $size__site-desktop-content;
}
}
/* Nested sub-menu padding: 10 levels deep */
@mixin nestedSubMenuPadding() {
ul {
counter-reset: submenu;
}
ul > li > a::before {
font-family: $font__body;
font-weight: normal;
content: "\2013\00a0" counters(submenu, "\2013\00a0", none);
counter-increment: submenu
}
}
/* Ensure all font family declarations come with non-latin fallbacks */
@mixin font-family( $font_family: $font__body ) {
font-family: $font_family;
@extend %non-latin-fonts;
}
/* Build our non-latin font styles */
%non-latin-fonts {
@each $lang, $font__fallback in $font__fallbacks {
&:lang(#{$lang}) {
font-family: unquote( $font__fallback );
}
}
}
@import "utilities";