From d015ddd4ab173902d515a106b356fdb167ebdb21 Mon Sep 17 00:00:00 2001 From: Volpeon Date: Wed, 4 Feb 2026 18:31:11 +0100 Subject: cHanged avatar icon --- src/objects/_avatar.scss | 22 +++++++++++++++------- src/objects/_avatar.vars.scss | 33 +++++++++++++++++++++++++++------ 2 files changed, 42 insertions(+), 13 deletions(-) diff --git a/src/objects/_avatar.scss b/src/objects/_avatar.scss index eb98378..0b14e39 100644 --- a/src/objects/_avatar.scss +++ b/src/objects/_avatar.scss @@ -27,7 +27,6 @@ @include bem.object('avatar') { position: relative; display: inline-block; - font-size: props.get(vars.$font-size); font-style: normal; vertical-align: .05em; border-radius: props.get(vars.$rounding); @@ -63,11 +62,11 @@ display: flex; align-items: center; justify-content: center; - inline-size: 45%; - block-size: 45%; + inline-size: props.get(vars.$icon-size); + block-size: props.get(vars.$icon-size); @include bem.sibling-elem('content') { - clip-path: url('data:image/svg+xml;utf8,#avatar_mask'); + clip-path: props.get(vars.$icon-mask); } } @@ -75,6 +74,7 @@ display: block; inline-size: props.get(vars.$size); block-size: props.get(vars.$size); + font-size: props.get(vars.$font-size); line-height: props.get(vars.$size); text-align: center; object-fit: cover; @@ -118,15 +118,23 @@ @include status(vars.$indicator-size); - @each $mod, $size, $font-size, $indicator-size in vars.$sizes { + @each $mod, $size, $font-size, $indicator-size, $icon-size, $icon-mask in vars.$sizes { @include bem.modifier($mod) { - font-size: props.get($font-size); - @include status($indicator-size); + + @include bem.elem('icon') { + inline-size: props.get($icon-size); + block-size: props.get($icon-size); + + @include bem.sibling-elem('content') { + clip-path: props.get($icon-mask); + } + } @include bem.elem('content') { inline-size: props.get($size); block-size: props.get($size); + font-size: props.get($font-size); line-height: props.get($size); } } diff --git a/src/objects/_avatar.vars.scss b/src/objects/_avatar.vars.scss index 2374f5a..f9ade78 100644 --- a/src/objects/_avatar.vars.scss +++ b/src/objects/_avatar.vars.scss @@ -1,35 +1,56 @@ +@use 'sass:math'; + @use 'iro-sass/src/props'; @use '../core.vars' as core; +@function icon-mask($p) { + $offset: 0.15 * math.div(0.5, $p); + @return 'data:image/svg+xml;utf8,#avatar_mask'; +} + $size: props.def(--o-avatar--size, props.get(core.$size--500)) !default; $font-size: props.def(--o-avatar--font-size, props.get(core.$font-size--100)) !default; $indicator-size: props.def(--o-avatar--indicator-size, props.get(core.$size--150)) !default; $indicator-spacing: props.def(--o-avatar--indicator-spacing, props.get(core.$size--40)) !default; $rounding: props.def(--o-avatar--rounding, 25%) !default; +$icon-size: props.def(--o-avatar--icon-size, 1.2em) !default; +$icon-mask: props.def(--o-avatar--icon-mask, url(icon-mask(.5))) !default; $size--xxxl: props.def(--o-avatar--xxxl--size, props.get(core.$size--1600)) !default; $font-size--xxxl: props.def(--o-avatar--xxxl--font-size, props.get(core.$font-size--800)) !default; $indicator-size--xxxl: props.def(--o-avatar--xxxl--indicator-size, props.get(core.$size--400)) !default; +$icon-size--xxxl: props.def(--o-avatar--xxxl--icon-size, 1.9em) !default; +$icon-mask--xxxl: props.def(--o-avatar--xxxl--icon-mask, url(icon-mask(.75))) !default; $size--xxl: props.def(--o-avatar--xxl--size, props.get(core.$size--1200)) !default; $font-size--xxl: props.def(--o-avatar--xxl--font-size, props.get(core.$font-size--600)) !default; $indicator-size--xxl: props.def(--o-avatar--xxl--indicator-size, props.get(core.$size--300)) !default; +$icon-size--xxl: props.def(--o-avatar--xxl--icon-size, 1.7em) !default; +$icon-mask--xxl: props.def(--o-avatar--xxl--icon-mask, url(icon-mask(.7))) !default; $size--xl: props.def(--o-avatar--xl--size, props.get(core.$size--800)) !default; $font-size--xl: props.def(--o-avatar--xl--font-size, props.get(core.$font-size--300)) !default; $indicator-size--xl: props.def(--o-avatar--xl--indicator-size, props.get(core.$size--225)) !default; +$icon-size--xl: props.def(--o-avatar--xl--icon-size, 1.3em) !default; +$icon-mask--xl: props.def(--o-avatar--xl--icon-mask, url(icon-mask(.65))) !default; $size--lg: props.def(--o-avatar--lg--size, props.get(core.$size--650)) !default; $font-size--lg: props.def(--o-avatar--lg--font-size, props.get(core.$font-size--200)) !default; $indicator-size--lg: props.def(--o-avatar--lg--indicator-size, props.get(core.$size--175)) !default; +$icon-size--lg: props.def(--o-avatar--lg--icon-size, 1.2em) !default; +$icon-mask--lg: props.def(--o-avatar--lg--icon-mask, url(icon-mask(.6))) !default; $size--sm: props.def(--o-avatar--sm--size, props.get(core.$size--375)) !default; $font-size--sm: props.def(--o-avatar--sm--font-size, props.get(core.$font-size--75)) !default; $indicator-size--sm: props.def(--o-avatar--sm--indicator-size, props.get(core.$size--125)) !default; +$icon-size--sm: props.def(--o-avatar--sm--icon-size, 1.2em) !default; +$icon-mask--sm: props.def(--o-avatar--sm--icon-mask, url(icon-mask(.5))) !default; $size--xs: props.def(--o-avatar--xs--size, props.get(core.$size--250)) !default; $font-size--xs: props.def(--o-avatar--xs--font-size, props.get(core.$font-size--50)) !default; $indicator-size--xs: props.def(--o-avatar--xs--indicator-size, props.get(core.$size--100)) !default; +$icon-size--xs: props.def(--o-avatar--xs--icon-size, 1.2em) !default; +$icon-mask--xs: props.def(--o-avatar--xs--icon-mask, url(icon-mask(.5))) !default; $key-focus--border-width: props.def(--o-avatar--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; $key-focus--border-offset: props.def(--o-avatar--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; @@ -49,10 +70,10 @@ $key-focus--border-color: props.def(--o-avatar--key-focus--border-color, props. $key-focus--outline-color: props.def(--o-avatar--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; $sizes: ( - 'xs' $size--xs $font-size--xs $indicator-size--xs, - 'sm' $size--sm $font-size--sm $indicator-size--sm, - 'lg' $size--lg $font-size--lg $indicator-size--lg, - 'xl' $size--xl $font-size--xl $indicator-size--xl, - 'xxl' $size--xxl $font-size--xxl $indicator-size--xxl, - 'xxxl' $size--xxxl $font-size--xxxl $indicator-size--xxxl, + 'xs' $size--xs $font-size--xs $indicator-size--xs $icon-size--xs $icon-mask--xs, + 'sm' $size--sm $font-size--sm $indicator-size--sm $icon-size--sm $icon-mask--sm, + 'lg' $size--lg $font-size--lg $indicator-size--lg $icon-size--lg $icon-mask--lg, + 'xl' $size--xl $font-size--xl $indicator-size--xl $icon-size--xl $icon-mask--xl, + 'xxl' $size--xxl $font-size--xxl $indicator-size--xxl $icon-size--xxl $icon-mask--xxl, + 'xxxl' $size--xxxl $font-size--xxxl $indicator-size--xxxl $icon-size--xxxl $icon-mask--xxxl, ) !default; -- cgit v1.2.3-70-g09d2