@use 'iro-sass/src/index' as iro; @use '../functions' as fn; @use 'sass:math'; @include iro.props-namespace('emoji') { @include iro.props-store(( --dims: ( --size: calc(1 / 14 * 18em), --pad: .3em, --rounding: 3px, --zoom: 3, --valign: -.25em, --icon: ( --valign: -.15em, ), --150: ( --size: calc(1 / 14 * 28em), --valign: -.65em, ), --200: ( --size: calc(1 / 14 * 38em), --valign: -1em, ) ) ), 'dims'); @include iro.props-store(( --colors: ( --bg: fn.global-color(--obj-hi), ) ), 'colors'); @include iro.bem-object(iro.props-namespace()) { display: inline-block; position: relative; width: calc(fn.dim(--size)); height: calc(fn.dim(--size)); margin: calc(-1 * fn.dim(--pad)); padding: calc(fn.dim(--pad)); vertical-align: fn.dim(--valign); object-fit: contain; @include iro.bem-modifier('icon') { margin: calc(-1 * fn.dim(--pad) - .5 * (fn.dim(--size) - fn.foreign-dim(--icon, --size))); vertical-align: fn.dim(--icon --valign); } @each $size in '150' '200' { @include iro.bem-modifier($size) { width: fn.dim(--#{$size} --size); height: fn.dim(--#{$size} --size); vertical-align: fn.dim(--#{$size} --valign); @include iro.bem-modifier('icon') { margin: calc(-1 * fn.dim(--pad) - .5 * (fn.dim(--#{$size} --size) - fn.foreign-dim(--icon, --size))); } } } @include iro.bem-modifier('zoomable') { transition: transform .2s ease, background-color .2s ease; border-radius: calc(fn.dim(--rounding) / fn.dim(--zoom)); &:hover { transform: scale(fn.dim(--zoom)); background-color: fn.color(--bg); } } } }