diff options
| -rw-r--r-- | src/objects/_avatar.scss | 17 | ||||
| -rw-r--r-- | src_demo/index.scss | 2 | ||||
| -rw-r--r-- | tpl/objects/avatar.pug | 6 | ||||
| -rw-r--r-- | tpl/views/avatar.pug | 2 |
4 files changed, 25 insertions, 2 deletions
diff --git a/src/objects/_avatar.scss b/src/objects/_avatar.scss index 9d51ffb..ac289e9 100644 --- a/src/objects/_avatar.scss +++ b/src/objects/_avatar.scss | |||
| @@ -56,7 +56,20 @@ | |||
| 56 | inset-inline-end: 0; | 56 | inset-inline-end: 0; |
| 57 | } | 57 | } |
| 58 | 58 | ||
| 59 | @include status(vars.$indicator-size); | 59 | @include bem.elem('icon') { |
| 60 | position: absolute; | ||
| 61 | inset-block-end: 0; | ||
| 62 | inset-inline-end: 0; | ||
| 63 | display: flex; | ||
| 64 | align-items: center; | ||
| 65 | justify-content: center; | ||
| 66 | inline-size: 40%; | ||
| 67 | block-size: 40%; | ||
| 68 | |||
| 69 | @include bem.sibling-elem('content') { | ||
| 70 | clip-path: url('data:image/svg+xml;utf8,<svg version="1.1" xmlns="http://www.w3.org/2000/svg"><defs><clipPath id="avatar_mask" clipPathUnits="objectBoundingBox" transform="scale(0.1)"><path d="M 0,0 H 10 V 5 H 6.5 C 5.55,5 5,5.55 5,6.5 V 10 H 0 Z" /></clipPath></defs></svg>#avatar_mask') | ||
| 71 | } | ||
| 72 | } | ||
| 60 | 73 | ||
| 61 | @include bem.elem('content') { | 74 | @include bem.elem('content') { |
| 62 | display: block; | 75 | display: block; |
| @@ -103,6 +116,8 @@ | |||
| 103 | } | 116 | } |
| 104 | } | 117 | } |
| 105 | 118 | ||
| 119 | @include status(vars.$indicator-size); | ||
| 120 | |||
| 106 | @each $mod, $size, $font-size, $indicator-size in vars.$sizes { | 121 | @each $mod, $size, $font-size, $indicator-size in vars.$sizes { |
| 107 | @include bem.modifier($mod) { | 122 | @include bem.modifier($mod) { |
| 108 | font-size: props.get($font-size); | 123 | font-size: props.get($font-size); |
diff --git a/src_demo/index.scss b/src_demo/index.scss index 2ac8e9d..53b01af 100644 --- a/src_demo/index.scss +++ b/src_demo/index.scss | |||
| @@ -24,6 +24,7 @@ | |||
| 24 | 24 | ||
| 25 | @include iro.o-icon--styles; | 25 | @include iro.o-icon--styles; |
| 26 | @include iro.o-alert--styles; | 26 | @include iro.o-alert--styles; |
| 27 | @include iro.o-status-indicator--styles; | ||
| 27 | @include iro.o-avatar--styles; | 28 | @include iro.o-avatar--styles; |
| 28 | @include iro.o-backdrop--styles; | 29 | @include iro.o-backdrop--styles; |
| 29 | @include iro.o-button--styles; | 30 | @include iro.o-button--styles; |
| @@ -42,7 +43,6 @@ | |||
| 42 | @include iro.o-popover--styles; | 43 | @include iro.o-popover--styles; |
| 43 | @include iro.o-radio--styles; | 44 | @include iro.o-radio--styles; |
| 44 | @include iro.o-side-nav--styles; | 45 | @include iro.o-side-nav--styles; |
| 45 | @include iro.o-status-indicator--styles; | ||
| 46 | @include iro.o-switch--styles; | 46 | @include iro.o-switch--styles; |
| 47 | @include iro.o-table--styles; | 47 | @include iro.o-table--styles; |
| 48 | @include iro.o-tabbar--styles; | 48 | @include iro.o-tabbar--styles; |
diff --git a/tpl/objects/avatar.pug b/tpl/objects/avatar.pug index ca3de07..d464d93 100644 --- a/tpl/objects/avatar.pug +++ b/tpl/objects/avatar.pug | |||
| @@ -24,6 +24,9 @@ mixin avatar | |||
| 24 | a(class=classes style=styles href=attributes.href) | 24 | a(class=classes style=styles href=attributes.href) |
| 25 | if attributes.status | 25 | if attributes.status |
| 26 | +status-indicator(attributes.status)(class='o-avatar__status') | 26 | +status-indicator(attributes.status)(class='o-avatar__status') |
| 27 | if attributes.icon | ||
| 28 | .o-avatar__icon | ||
| 29 | +icon(attributes.icon) | ||
| 27 | if attributes.src | 30 | if attributes.src |
| 28 | img.o-avatar__content(src=attributes.src) | 31 | img.o-avatar__content(src=attributes.src) |
| 29 | else | 32 | else |
| @@ -33,6 +36,9 @@ mixin avatar | |||
| 33 | div(class=classes style=styles) | 36 | div(class=classes style=styles) |
| 34 | if attributes.status | 37 | if attributes.status |
| 35 | +status-indicator(attributes.status)(class='o-avatar__status') | 38 | +status-indicator(attributes.status)(class='o-avatar__status') |
| 39 | if attributes.icon | ||
| 40 | .o-avatar__icon | ||
| 41 | +icon(attributes.icon) | ||
| 36 | if attributes.src | 42 | if attributes.src |
| 37 | img.o-avatar__content(src=attributes.src) | 43 | img.o-avatar__content(src=attributes.src) |
| 38 | else | 44 | else |
diff --git a/tpl/views/avatar.pug b/tpl/views/avatar.pug index f345098..1c364c8 100644 --- a/tpl/views/avatar.pug +++ b/tpl/views/avatar.pug | |||
| @@ -8,6 +8,7 @@ mixin view-avatar | |||
| 8 | = 'lp' | 8 | = 'lp' |
| 9 | +avatar(size=size src='avatar.png') | 9 | +avatar(size=size src='avatar.png') |
| 10 | +avatar(size=size src='avatar.png' status='red') | 10 | +avatar(size=size src='avatar.png' status='red') |
| 11 | +avatar(size=size src='avatar.png' icon='video') | ||
| 11 | 12 | ||
| 12 | each size in ['xs', 'sm', 'md', 'lg', 'xl', 'xxl', 'xxxl'] | 13 | each size in ['xs', 'sm', 'md', 'lg', 'xl', 'xxl', 'xxxl'] |
| 13 | .c-box(style={ display: 'flex', gap: '.3em' }) | 14 | .c-box(style={ display: 'flex', gap: '.3em' }) |
| @@ -17,3 +18,4 @@ mixin view-avatar | |||
| 17 | = 'lp' | 18 | = 'lp' |
| 18 | +avatar(circle=true size=size src='avatar.png') | 19 | +avatar(circle=true size=size src='avatar.png') |
| 19 | +avatar(circle=true size=size src='avatar.png' status='red') | 20 | +avatar(circle=true size=size src='avatar.png' status='red') |
| 21 | +avatar(circle=true size=size src='avatar.png' icon='video') | ||
