@use 'iro-sass/src/index' as iro; @use 'iro-design/src/functions' as fn; @use 'include-media/dist/include-media' as media; @include iro.props-namespace('card-list') { @include iro.props-store(( --dims: ( --margin-top: fn.global-dim(--size --700), --spacing: fn.global-dim(--size --200), --gap: fn.global-dim(--size --25), --grid-2: ( --gap: fn.global-dim(--size --75), --col-width: fn.global-dim(--size --3200), ), --grid-3: ( --gap: fn.global-dim(--size --75), --col-width: fn.global-dim(--size --2800), ), --gallery-2: ( --gap: fn.global-dim(--size --150), --col-width: fn.global-dim(--size --3200), ), --gallery-3: ( --gap: fn.global-dim(--size --150), --col-width: fn.global-dim(--size --2800), ), ) ), 'dims'); @include iro.bem-layout(iro.props-namespace()) { margin-top: fn.dim(--margin-top); font-size: fn.global-dim(--font-size --100); @include iro.bem-elem('header') { margin-top: fn.dim(--margin-top); } @include iro.bem-elem('footer') { margin-top: fn.dim(--spacing); } @include iro.bem-elem('cards') { display: flex; flex-direction: column; gap: fn.dim(--gap); margin-top: fn.dim(--spacing); @include media.media('<=sm') { gap: fn.dim(--grid-2 --gap); } @each $mode in 'grid-2' 'grid-3' 'gallery-2' 'gallery-3' { @include iro.bem-modifier($mode) { display: grid; align-items: start; grid-template-columns: repeat(auto-fill, minmax(fn.dim('--#{$mode}' --col-width), 1fr)); gap: fn.dim('--#{$mode}' --gap); } } } } }