/* variables specific to current element */ $element-specific-variables: ""; .#{$namespace}media { /* Save root element context for easy access if nesting is needed */ $self: &; /* properties of current element + media queries */ @include custom-prop-fallback("width","comp-media-width"); @include custom-prop-fallback("height","comp-media-height"); /* Pseudo Elements */ &::before { } &::after { } /* Include elements that are linked to the current element but have to reside at the root level of the stylesheet (e.g: keyframes) */ @at-root { } /* children - write selector in full in comments in order to facilitate search */ // media__childElement SVG, IMG { // follows same logic as parent width: 100%; height: 100%; object-fit: contain; } /* modifiers */ &.-media2xs { @include custom-prop-fallback("width","comp-media-large-width"); @include custom-prop-fallback("height","comp-media-large-height"); } &.-mediaXs { @include custom-prop-fallback("width","comp-media-extra-large-width"); @include custom-prop-fallback("height","comp-media-extra-large-height"); } &.-mediaLg { @include custom-prop-fallback("width","comp-media-giga-width"); @include custom-prop-fallback("height","comp-media-giga-height"); } &.-mediaXl { @include custom-prop-fallback("width","comp-media-tera-width"); @include custom-prop-fallback("height","comp-media-tera-height"); } // media -hasBG &.-hasBg { // follows same logic as base element @include custom-prop-fallback("background-color","comp-media-background-color"); } &.-rounded { @include custom-prop-fallback("border-radius","comp-media-extra-small-border-radius"); } /* random parent element */ /* * * Syntax : .randomParentElt & {} * */ /* Pseudo Classes */ &:hover { @media (hover: hover) { } } &:focus { } &:active { } &:focus, &:active { } }