@import '~@angular/material/theming'; @import '../../../../assets/styles/media-queries.scss'; @mixin os-tile-style($theme) { $primary: map-get($theme, primary); @include set-breakpoint-lower(xs) { @for $i from 1 through 4 { .os-tile--xs-#{$i} { width: get-width('xs', $i, true); } .os-grid.no-space > .os-tile--xs-#{$i} { width: get-width('xs', $i, false); } } } @include set-breakpoint-between(xs, sm) { @for $i from 1 through 8 { .os-tile--sm-#{$i} { width: get-width('sm', $i, true); } .os-grid.no-space > .os-tile--sm-#{$i} { width: get-width('sm', $i, false); } } } @include set-breakpoint-between(sm, lg) { @for $i from 1 through 12 { .os-tile--md-#{$i} { width: get-width('md', $i, true); } .os-grid.no-space > .os-tile--md-#{$i} { width: get-width('md', $i, false); } } } @include set-breakpoint-upper(lg) { @for $i from 1 through 16 { .os-tile--lg-#{$i} { width: get-width('lg', $i, true); } .os-grid.no-space > .os-tile--lg-#{$i} { width: get-width('md', $i, false); } } } .os-tile { height: calc(100% - 16px); margin: 8px; } .os-grid.no-space > .os-tile { height: 100%; margin: 0; } } /* This function calculates the width to the given device-size */ @function get-width($property, $size, $space) { @if $property == 'xs' { @if $space == true { @return calc(#{$size} / 4 * 100% - 16px); } @else { @return $size / 4 * 100%; } } @if $property == 'sm' { @if $space == true { @return calc(#{$size} / 8 * 100% - 16px); } @else { @return $size / 8 * 100%; } } @if $property == 'md' { @if $space == true { @return calc(#{$size} / 12 * 100% - 16px); } @else { @return $size / 12 * 100%; } } @if $property == 'lg' { @if $space == true { @return calc(#{$size} / 16 * 100% - 16px); } @else { @return $size / 16 * 100%; } } }