@use 'iro-sass/src/index' as iro; @use '../functions' as fn; @include iro.props-namespace('badge') { @include iro.props-store(( --dims: ( --pad-x: fn.global-dim(--size --40), --pad-y: 0, --rounding: 3px, --fixed-100: 1em, --fixed-200: 1.5em, --200: ( --pad-x: fn.global-dim(--size --75), --pad-y: fn.global-dim(--size --25), ) ), ), 'dims'); @include iro.props-store(( --colors: ( --bg: fn.global-color(--obj-hi), --label: fn.global-color(--fg-lo), --hover: ( --bg: fn.global-color(--obj), ), --active: ( --bg: fn.global-color(--obj-lo), ), --key-focus: ( --border: fn.global-color(--focus --fill), --shadow: fn.global-color(--focus --shadow), ), --accent: ( --bg: fn.global-color(--accent --primary --solid --bg), --label: fn.global-color(--accent --primary --solid --fg), --hover: ( --bg: fn.global-color(--accent --primary --solid --obj), ), --active: ( --bg: fn.global-color(--accent --primary --solid --obj-lo), ), ), ), ), 'colors'); @include iro.bem-object(iro.props-namespace()) { display: inline-block; padding: fn.dim(--pad-y) fn.dim(--pad-x); border: 2px solid transparent; border-radius: fn.dim(--rounding); background-color: fn.color(--bg); color: fn.color(--label); text-align: center; &:link, &:visited, &:enabled { &:hover { background-color: fn.color(--hover --bg); } &:active { background-color: fn.color(--active --bg); } } @include iro.bem-modifier('accent') { background-color: fn.color(--accent --bg); color: fn.color(--accent --label); &:link, &:visited, &:enabled { &:hover { background-color: fn.color(--accent --hover --bg); } &:active { background-color: fn.color(--accent --active --bg); } } } &:link, &:visited, &:enabled { @include iro.bem-at-theme('keyboard') { &:focus { border-color: fn.color(--key-focus --border); box-shadow: fn.color(--key-focus --shadow); } } } @include iro.bem-modifier('fixed-100') { width: fn.dim(--fixed-100); } @include iro.bem-modifier('fixed-200') { width: fn.dim(--fixed-200); } @include iro.bem-modifier('200') { padding: fn.dim(--200 --pad-y) fn.dim(--200 --pad-x); } } }