/** * Responsive Styles */ /** * Required Variables */ $default_width: 610px; $max_content_width: 1240px; $breakpoint_sm: 482px; $breakpoint_md: 592px; $breakpoint_lg: 652px; $breakpoint_xl: 822px; $breakpoint_xxl: 1024px; // Responsive breakpoints mixin @mixin media( $res ) { @if mobile-only == $res { @media only screen and (max-width: #{$breakpoint_sm - 0.02}) { @content; } } @if mobile == $res { @media only screen and (min-width: #{$breakpoint_sm}) { @content; } } @if tablet-only == $res { @media only screen and (max-width: #{$breakpoint_md - 0.02}) { @content; } } @if tablet == $res { @media only screen and (min-width: #{$breakpoint_md}) { @content; } } @if laptop-only == $res { @media only screen and (max-width: #{$breakpoint_lg - 0.02}) { @content; } } @if laptop == $res { @media only screen and (min-width: #{$breakpoint_lg}) { @content; } } @if desktop-only == $res { @media only screen and (max-width: #{$breakpoint_xl - 0.02}) { @content; } } @if desktop == $res { @media only screen and (min-width: #{$breakpoint_xl}) { @content; } } @if wide-only == $res { @media only screen and (max-width: #{$breakpoint_xxl - 0.02}) { @content; } } @if wide == $res { @media only screen and (min-width: #{$breakpoint_xxl}) { @content; } } } /** * Root Media Query Variables */ :root { --responsive--spacing-horizontal: calc(2 * var(--global--spacing-horizontal) * 0.6); --responsive--aligndefault-width: calc(100vw - var(--responsive--spacing-horizontal)); --responsive--alignwide-width: calc(100vw - var(--responsive--spacing-horizontal)); --responsive--alignfull-width: 100%; --responsive--alignright-margin: var(--global--spacing-horizontal); --responsive--alignleft-margin: var(--global--spacing-horizontal); } @include media(mobile) { :root { --responsive--aligndefault-width: min(calc(100vw - 4 * var(--global--spacing-horizontal)), #{$default_width}); --responsive--alignwide-width: calc(100vw - 4 * var(--global--spacing-horizontal)); --responsive--alignright-margin: calc(0.5 * (100vw - var(--responsive--aligndefault-width))); --responsive--alignleft-margin: calc(0.5 * (100vw - var(--responsive--aligndefault-width))); } } @include media(desktop) { :root { --responsive--aligndefault-width: min(calc(100vw - 8 * var(--global--spacing-horizontal)), #{$default_width}); --responsive--alignwide-width: min(calc(100vw - 8 * var(--global--spacing-horizontal)), #{$max_content_width}); } } /** * Extends */ %responsive-aligndefault-width { max-width: var(--responsive--aligndefault-width); margin-left: auto; margin-right: auto; } %responsive-alignwide-width { max-width: var(--responsive--alignwide-width); margin-left: auto; margin-right: auto; } %responsive-alignfull-width-mobile { max-width: var(--responsive--alignfull-width); width: var(--responsive--alignfull-width); margin-left: auto; margin-right: auto; } @include media(mobile) { %responsive-alignfull-width { max-width: var(--responsive--alignfull-width); width: auto; margin-left: auto; margin-right: auto; } } %responsive-alignwide-width-nested { margin-left: auto; margin-right: auto; width: var(--responsive--alignwide-width); max-width: var(--responsive--alignfull-width); } %responsive-alignfull-width-nested { margin-left: auto; margin-right: auto; width: calc(var(--responsive--alignfull-width) - calc(2 * var(--responsive--spacing-horizontal))); max-width: var(--responsive--alignfull-width); } @include media(desktop) { %responsive-alignfull-width-nested { margin-left: auto; margin-right: auto; width: calc(var(--responsive--alignfull-width) - calc(4 * var(--responsive--spacing-horizontal))); max-width: var(--responsive--alignfull-width); } } %responsive-alignleft-mobile { /*rtl:ignore*/ margin-left: 0; /*rtl:ignore*/ margin-right: var(--responsive--spacing-horizontal); } @include media(mobile) { %responsive-alignleft { /*rtl:ignore*/ margin-left: var(--responsive--alignleft-margin); /*rtl:ignore*/ margin-right: var(--global--spacing-horizontal); } } %responsive-alignright-mobile { /*rtl:ignore*/ margin-left: var(--responsive--spacing-horizontal); /*rtl:ignore*/ margin-right: 0; } @include media(mobile) { %responsive-alignright { /*rtl:ignore*/ margin-left: var(--global--spacing-horizontal); /*rtl:ignore*/ margin-right: var(--responsive--alignright-margin); } } // Output .default-max-width { @extend %responsive-aligndefault-width; } .wide-max-width { @extend %responsive-alignwide-width; } .full-max-width { @extend %responsive-alignfull-width; }