/* variables specific to current element */ $element-specific-variables: ""; .#{$namespace}productFeatureDetails { /* Save root element context for easy access if nesting is needed */ $self: &; /* properties of current element + media queries */ /* 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 */ // productFeatureDetails__trigger &__trigger { // follows same logic as parent display: flex; flex-direction: column-reverse; align-items: center; justify-content: center; @include spacer-component-stack-gap("md"); } &__collapseTrigger { position: relative; z-index: z("low"); width: map-deep-get($token-icon-btn-size-map, "big", "width"); height: map-deep-get($token-icon-btn-size-map, "big", "height"); [class*="icon"] { transition: transform $transition-collapse-duration*0.5 $transition-collapse-duration*0.25 linear; &::before { font-size: map-deep-get($token-icon-btn-size-map, "big", "font-size"); } } &::after { content: ""; opacity: 0; position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: inherit; box-shadow: map-deep-get($token-shadow-map, "active"); transition: opacity $transition-collapse-duration linear; } &[aria-expanded="true"] { &::after { opacity: 1; } [class*="icon"] { transform: rotate(45deg); } & + #{$self}__triggerLabel { opacity: 0; } } } &__triggerLabel { opacity: 1; transition: opacity $transition-collapse-duration*0.5 ease-out; } &__collapseInner { padding-top: map-deep-get($token-spacer-stack-max-map, "3xl"); } &__title { margin-top: $box-xl-inset-spacing-mobile-global + map-deep-get($token-icon-btn-size-map, "big", "width"); @include media-breakpoint-up("lg") { margin-top: $box-xl-inset-spacing-desktop-global + map-deep-get($token-icon-btn-size-map, "big", "width"); } } &__box { box-shadow: map-deep-get($token-shadow-map, "active"); @include custom-prop-fallback("background-color","comp-card-raised-background-color"); } &__collapse { &.show { #{$self}__collapseInner { margin-top: -(map-deep-get($token-spacer-stack-max-map, "3xl") + map-deep-get($token-icon-btn-size-map, "big", "width") + $box-xl-inset-spacing-mobile-global); transition: margin-top $transition-collapse-duration*0.5 ease-in-out; @include media-breakpoint-up("lg") { margin-top: -(map-deep-get($token-spacer-stack-max-map, "3xl") + map-deep-get($token-icon-btn-size-map, "big", "width") + $box-xl-inset-spacing-mobile-global); } } } } &__listArea { @include spacer-component-stack("xl"); @include media-breakpoint-up("lg") { column-count: 2; column-gap: map-deep-get($token-spacer-grid-map, "gutter"); break-inside: avoid-column; } UL, OL { @include spacer-component-stack-exception("lg"); LI { break-inside: avoid-column; display: inline-block; /* fix pseudo element "leaking" into other column on column break https://stackoverflow.com/questions/72710407/css-column-count-breaking-li-before-and-after-in-first-column-only */ width: 100%; /* force 100% width, so the list elements don't show up next to one another if text is short */ } } } /* modifiers */ // productFeatureDetails -altStyle &.-altStyle { // follows same logic as base element } /* random parent element */ /* * * Syntax : .randomParentElt & {} * */ /* Pseudo Classes */ &:hover { @media (hover: hover) { } } &:focus { } &:active { } &:focus, &:active { } }