@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), ), --inverted: ( --fg: prop(--colors --fg-lo, $global: true), --bg: prop(--colors --bg-hi, $global: true), ) ), --dims: ( --pad-x: 1.7rem, ) )); @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-size: 1rem; font-weight: 500; text-decoration: none; @include modifier('inverted') { background-color: prop(--colors --inverted --bg); color: prop(--colors --inverted --fg); } @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%; } @include element('icon-symbol') { display: block; width: 1.5em; height: 1.5em; } @include element('content') { height: 100%; padding-right: prop(--dims --pad-x); padding-left: prop(--dims --pad-x); line-height: prop(--dims --outer, $global: true); white-space: nowrap; } &:link, &:visited { &:hover { background-color: prop(--colors --hover --bg); color: prop(--colors --hover --fg); } } } }