@use 'iro-sass/src/index' as iro; @use '../functions' as fn; @include iro.props-namespace('divider') { @include iro.props-store(( --dims: ( --margin-y: 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), ), ), ), 'dims'); @include iro.props-store(( --colors: ( --strong: ( --bg: fn.global-color(--fg), --label: fn.global-color(--fg), ), --medium: ( --bg: fn.global-color(--obj), --label: fn.global-color(--fg-hi), ), --faint: ( --bg: fn.global-color(--obj), --label: fn.global-color(--fg-hi2), ), --blue: ( --bg: fn.global-color(--blue --solid --bg), --label: fn.global-color(--blue --solid --obj), ), --purple: ( --bg: fn.global-color(--purple --solid --bg), --label: fn.global-color(--purple --solid --obj), ), --red: ( --bg: fn.global-color(--red --solid --bg), --label: fn.global-color(--red --solid --obj), ), --green: ( --bg: fn.global-color(--green --solid --bg), --label: fn.global-color(--green --solid --obj), ), --yellow: ( --bg: fn.global-color(--yellow --solid --bg), --label: fn.global-color(--yellow --solid --obj), ), ), ), 'colors'); @include iro.bem-object(iro.props-namespace()) { display: flex; flex-direction: row; align-items: center; height: 1em; margin-top: fn.dim(--margin-y); margin-bottom: fn.dim(--margin-y); 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-top: 0; margin-bottom: 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-right: 1em; } &::after { display: block; margin-left: 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); } } } } }