@include namespace('outer-button') { @include store(( --colors: ( --fg: prop(--colors --bg-hi, $global: true), --bg: prop(--colors --fg-lo, $global: true), --hover: ( --bg: prop(--colors --accent --color, $global: true), --fg: prop(--colors --bg-hi, $global: true), ), --icon: ( --fg: prop(--colors --fg-lo, $global: true), --bg: prop(--colors --bg-hi, $global: true), --hover: ( --fg: prop(--colors --bg-hi, $global: true), --bg: prop(--colors --accent --color, $global: true), ) ) ) )); @include component(namespace()) { display: flex; height: prop(--dims --outer, $global: true); transition: background-color .2s, color .2s; background-color: prop(--colors --bg); color: prop(--colors --fg); font-weight: 450; text-decoration: none; @include element('icon') { display: flex; position: relative; flex: 0 0 auto; align-items: center; justify-content: center; width: prop(--dims --outer, $global: true); height: 100%; transition: background-color .2s, color .2s; background-color: prop(--colors --icon --bg); color: prop(--colors --icon --fg); } @include modifier('icon-only') { @include element('icon') { background-color: prop(--colors --bg); color: prop(--colors --fg); } } &:hover { @include multi('&', 'element' 'icon') { background-color: prop(--colors --hover --bg); color: prop(--colors --hover --fg); } } @include element('icon-symbol') { display: block; width: 1.5em; height: 1.5em; } @include element('content') { height: 100%; padding-right: prop(--dims --outer-spacing, $global: true); padding-left: prop(--dims --outer-spacing, $global: true); line-height: prop(--dims --outer, $global: true); white-space: nowrap; } } }