@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 store(( --colors: ( --border: rgba(#fff, .1), ) ), 'light'); @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: 700; letter-spacing: .5px; text-decoration: none; text-transform: uppercase; @include modifier('inverted') { background-color: prop(--colors --inverted --bg); color: prop(--colors --inverted --fg); } @include modifier('scroll-top') { position: absolute; right: 0; bottom: 0; } @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.5em; height: 1.5em; } @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 * 14em; 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; } } } } } }