From a31de87882f66d60e187bc1dbde2585e3ccd1b6e Mon Sep 17 00:00:00 2001 From: Lea Verou Date: Tue, 17 Dec 2024 03:58:58 -0500 Subject: [PATCH] [Avatar] Simplify HTML & CSS, drop `base` (rel #207) --- docs/docs/components/avatar.md | 2 +- src/components/avatar/avatar.css | 17 +++++------------ src/components/avatar/avatar.ts | 30 ++++++++---------------------- 3 files changed, 14 insertions(+), 35 deletions(-) diff --git a/docs/docs/components/avatar.md b/docs/docs/components/avatar.md index cd2b53f68..5c4081f07 100644 --- a/docs/docs/components/avatar.md +++ b/docs/docs/components/avatar.md @@ -97,7 +97,7 @@ You can group avatars with a few lines of CSS. margin-left: calc(-1 * var(--wa-space-m)); } - .avatar-group wa-avatar::part(base) { + .avatar-group wa-avatar { border: solid 2px var(--wa-color-surface-default); } diff --git a/src/components/avatar/avatar.css b/src/components/avatar/avatar.css index f2e34991a..5029f036e 100644 --- a/src/components/avatar/avatar.css +++ b/src/components/avatar/avatar.css @@ -3,10 +3,6 @@ --content-color: var(--wa-color-neutral-on-normal); --size: 3rem; - display: inline-block; -} - -.avatar { display: inline-flex; align-items: center; justify-content: center; @@ -20,19 +16,15 @@ user-select: none; -webkit-user-select: none; vertical-align: middle; -} - -:host([shape='circle']) { border-radius: var(--wa-border-radius-circle); } -.rounded, -.rounded .image { - border-radius: var(--wa-border-radius-s); +:host([shape='square']) { + border-radius: 0; } -.square { - border-radius: 0; +:host([shape='rounded']) { + border-radius: var(--wa-border-radius-s); } .icon { @@ -59,4 +51,5 @@ height: 100%; object-fit: cover; overflow: hidden; + border-radius: inherit; } diff --git a/src/components/avatar/avatar.ts b/src/components/avatar/avatar.ts index 0130c7ec0..317f35c56 100644 --- a/src/components/avatar/avatar.ts +++ b/src/components/avatar/avatar.ts @@ -1,6 +1,5 @@ import { html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; -import { classMap } from 'lit/directives/class-map.js'; import { WaErrorEvent } from '../../events/error.js'; import { watch } from '../../internal/watch.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -69,6 +68,7 @@ export default class WaAvatar extends WebAwesomeElement { src="${this.image}" loading="${this.loading}" alt="" + aria-label=${this.label} @error="${this.handleImageLoadError}" /> `; @@ -76,32 +76,18 @@ export default class WaAvatar extends WebAwesomeElement { let avatarWithoutImage = html``; if (this.initials) { - avatarWithoutImage = html`
${this.initials}
`; + avatarWithoutImage = html``; } else { avatarWithoutImage = html` - + + + `; } - return html` - - `; + return html` ${this.image && !this.hasError ? avatarWithImage : avatarWithoutImage} `; } }