@use 'iro-sass/src/index' as iro; @use '../functions' as fn; @include iro.props-namespace('divider') { @include iro.props-store(( --dims: ( --margin-b: fn.global-dim(--size --85), --strong: ( --border: fn.global-dim(--border --thick), --label-font-size: fn.global-dim(--font-size --100), ), --medium: ( --border: fn.global-dim(--border --medium), --label-font-size: fn.global-dim(--font-size --75), ), --faint: ( --border: fn.global-dim(--border --thin), --label-font-size: fn.global-dim(--font-size --50), ), ), --colors: ( --strong: ( --bg: fn.global-color(--text), --label: fn.global-color(--text), ), --medium: ( --bg: fn.global-color(--border), --label: fn.global-color(--text-mute), ), --faint: ( --bg: fn.global-color(--border), --label: fn.global-color(--text-mute-more), ), --blue: ( --bg: fn.global-color(--blue --700), --label: fn.global-color(--blue --1000), ), --purple: ( --bg: fn.global-color(--purple --700), --label: fn.global-color(--purple --1000), ), --red: ( --bg: fn.global-color(--red --700), --label: fn.global-color(--red --1000), ), --green: ( --bg: fn.global-color(--green --700), --label: fn.global-color(--green --1000), ), --yellow: ( --bg: fn.global-color(--yellow --700), --label: fn.global-color(--yellow --1000), ), ), )); @include iro.bem-object(iro.props-namespace()) { display: flex; flex-direction: row; align-items: center; height: 1em; margin-block: fn.dim(--margin-b); color: fn.color(--strong --label); font-size: fn.dim(--strong --label-font-size); font-weight: 700; letter-spacing: .5px; line-height: 1; text-transform: uppercase; &::before, &::after { content: ''; flex: 1 1 auto; width: 100%; height: fn.dim(--strong --border); background-color: fn.color(--strong --bg); } &::before { display: block; } @include iro.bem-elem('label') { flex: 0 0 auto; } @include iro.bem-modifier('vertical') { align-self: stretch; width: 1px; height: auto; margin-block: 0; background-color: fn.color(--faint --bg); &::before, &::after { display: none; } } @include iro.bem-modifier('medium') { color: fn.color(--medium --label); font-size: fn.dim(--medium --label-font-size); font-weight: 500; &::before, &::after { height: fn.dim(--medium --border); background-color: fn.color(--medium --bg); } } @include iro.bem-modifier('faint') { color: fn.color(--faint --label); font-size: fn.dim(--faint --label-font-size); font-weight: 500; &::before, &::after { height: fn.dim(--faint --border); background-color: fn.color(--faint --bg); } } @include iro.bem-modifier('labelled') { &::before { margin-inline-end: 1em; } &::after { display: block; margin-inline-start: 1em; } } @each $color in 'blue' 'purple' 'red' 'green' 'yellow' { @include iro.bem-modifier($color) { &::before, &::after { background-color: fn.color(--#{$color} --bg); } @include iro.bem-elem('label') { color: fn.color(--#{$color} --label); } } } } }