@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), ), --red: ( --bg: fn.global-color(--red --solid --bg), --label: fn.global-color(--red --solid --obj), ), ), ), 'colors'); @include iro.bem-object(iro.props-namespace()) { display: block; height: fn.dim(--strong --border); margin-top: fn.dim(--margin-y); margin-bottom: fn.dim(--margin-y); background-color: fn.color(--strong --bg); @include iro.bem-modifier('vertical') { align-self: stretch; width: 1px; height: auto; margin-top: 0; margin-bottom: 0; background-color: fn.color(--faint --bg); } @include iro.bem-modifier('medium') { height: fn.dim(--medium --border); background-color: fn.color(--medium --bg); } @include iro.bem-modifier('faint') { height: fn.dim(--faint --border); background-color: fn.color(--faint --bg); } @include iro.bem-modifier('red') { background-color: fn.color(--red --bg); } @include iro.bem-modifier('labelled') { display: flex; flex-direction: row; align-items: center; height: auto; border-radius: 0; background-color: transparent; &::before, &::after { content: ''; display: block; flex: 1 1 auto; width: 100%; height: 3px; background-color: fn.color(--strong --bg); } &::before { margin-right: 1em; } &::after { margin-left: 1em; } @include iro.bem-elem('label') { flex: 0 0 auto; color: fn.color(--strong --label); font-size: fn.dim(--strong --label-font-size); font-weight: 700; letter-spacing: .5px; text-transform: uppercase; } @include iro.bem-modifier('medium') { &::before, &::after { height: 2px; background-color: fn.color(--medium --bg); } @include iro.bem-elem('label') { color: fn.color(--medium --label); font-size: fn.dim(--medium --label-font-size); font-weight: 500; } } @include iro.bem-modifier('faint') { &::before, &::after { height: 1px; background-color: fn.color(--faint --bg); } @include iro.bem-elem('label') { color: fn.color(--faint --label); font-size: fn.dim(--faint --label-font-size); font-weight: 500; } } @include iro.bem-modifier('red') { &::before, &::after { background-color: fn.color(--red --bg); } @include iro.bem-elem('label') { color: fn.color(--red --label); } } } } }