@include namespace('outer-button') { @include store(( --colors: ( --fg: prop(--colors --bg-hi, $global: true), --bg: prop(--colors --fg-lo, $global: true), --border: rgba(#000, .1), --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-family: $font-fam--large; 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 next-element('content') { margin-left: -1px; border-left: 1px solid prop(--colors --border); } } @include element('icon-symbol') { display: block; width: 1.35em; height: 1.35em; } @include element('content') { height: 100%; padding-right: prop(--dims --pad-x); padding-left: prop(--dims --pad-x); transition: border-color .2s; font-size: 1 / 16 * 15em; line-height: prop(--dims --outer, $global: true); white-space: nowrap; } &:link, &:visited { &:hover { background-color: prop(--colors --hover --bg); color: prop(--colors --hover --fg); @include element('icon') { @include next-element('content') { border-left-color: transparent; } } } } } }