@use 'iro-sass/src/index' as iro; @use '../functions' as fn; @include iro.props-namespace('action-button') { @include iro.props-store(( --dims: ( --pad-x: fn.global-dim(--size --125), --pad-y: fn.global-dim(--size --125), --rounding: 3px, ), ), 'dims'); @include iro.props-store(( --colors: ( --bg: fn.global-color(--bg-hi), --label: fn.global-color(--fg), --border: fn.global-color(--obj-lo), --hover: ( --bg: fn.global-color(--bg-hi2), --label: fn.global-color(--fg-lo), --border: fn.global-color(--fg-hi2), ), --active: ( --bg: fn.global-color(--obj-hi), --label: fn.global-color(--fg-lo), --border: fn.global-color(--fg-hi2), ), --selected: ( --bg: fn.global-color(--obj-hi), --label: fn.global-color(--fg), --border: fn.global-color(--fg-hi3), --hover: ( --label: fn.global-color(--fg-lo), --border: fn.global-color(--fg-hi2), ), ), --disabled: ( --bg: fn.global-color(--obj-hi), --label: fn.global-color(--fg-hi3), --border: fn.global-color(--obj-hi), ), --key-focus: ( --border: fn.global-color(--focus --fill), --shadow: fn.global-color(--focus --shadow), ), --quiet: ( --label: fn.global-color(--fg), --hover: ( --bg: fn.global-color(--obj-hi), --label: fn.global-color(--fg-lo), ), --active: ( --bg: fn.global-color(--obj), --label: fn.global-color(--fg-lo), ), --selected: ( --bg: fn.global-color(--obj-hi), --label: fn.global-color(--fg), --hover: ( --label: fn.global-color(--fg-lo), ), ), --disabled: ( --label: fn.global-color(--fg-hi3), ), ), ), ), 'colors'); @include iro.bem-object(iro.props-namespace()) { display: inline-block; padding: fn.dim(--pad-y) fn.dim(--pad-x); overflow: hidden; border: 1px solid fn.color(--disabled --border); border-radius: fn.dim(--rounding); background-color: fn.color(--disabled --bg); color: fn.color(--disabled --label); line-height: 1; text-align: center; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; &:link, &:visited, &:enabled { border-color: fn.color(--border); background-color: fn.color(--bg); color: fn.color(--label); &:hover { border-color: fn.color(--hover --border); background-color: fn.color(--hover --bg); color: fn.color(--hover --label); } &:active { border-color: fn.color(--active --border); background-color: fn.color(--active --bg); color: fn.color(--active --label); } @include iro.bem-at-theme('keyboard') { &:focus { background-color: fn.color(--hover --bg); color: fn.color(--hover --label); } } } @include iro.bem-is('selected') { &:link, &:visited, &:enabled { border-color: fn.color(--selected --border); background-color: fn.color(--selected --bg); color: fn.color(--selected --label); &:hover, &:active { border-color: fn.color(--selected --hover --border); background-color: fn.color(--selected --bg); color: fn.color(--selected --hover --label); } @include iro.bem-at-theme('keyboard') { &:focus { background-color: fn.color(--selected --bg); color: fn.color(--selected --hover --label); } } } } @include iro.bem-modifier('quiet') { border-color: transparent; background-color: transparent; box-shadow: none; color: fn.color(--quiet --disabled --label); &:link, &:visited, &:enabled { border-color: transparent; background-color: transparent; box-shadow: none; color: fn.color(--quiet --label); &:hover { border-color: transparent; background-color: fn.color(--quiet --hover --bg); box-shadow: none; color: fn.color(--quiet --hover --label); } &:active { border-color: transparent; background-color: fn.color(--quiet --active --bg); box-shadow: none; color: fn.color(--quiet --active --label); } @include iro.bem-at-theme('keyboard') { &:focus { background-color: fn.color(--quiet --hover --bg); color: fn.color(--quiet --hover --label); } } } @include iro.bem-is('selected') { background-color: fn.color(--quiet --selected --bg); color: fn.color(--quiet --disabled --label); &:link, &:visited, &:enabled { border-color: transparent; background-color: fn.color(--quiet --selected --bg); box-shadow: none; color: fn.color(--quiet --selected --label); &:hover, &:active { border-color: transparent; background-color: fn.color(--quiet --selected --bg); box-shadow: none; color: fn.color(--quiet --selected --hover --label); } @include iro.bem-at-theme('keyboard') { &:focus { background-color: fn.color(--quiet --selected --bg); color: fn.color(--quiet --selected --hover --label); } } } } } @include iro.bem-at-theme('keyboard') { &:focus { border-color: fn.color(--key-focus --border); box-shadow: inset 0 0 0 1px fn.color(--key-focus --border), fn.color(--key-focus --shadow); } } @include iro.bem-modifier('round') { padding-right: fn.dim(--pad-y); padding-left: fn.dim(--pad-y); border-radius: 100em; } } }