summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/objects/_avatar.scss17
-rw-r--r--src_demo/index.scss2
-rw-r--r--tpl/objects/avatar.pug6
-rw-r--r--tpl/views/avatar.pug2
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')