Skip to content

Commit 8594b9f

Browse files
authored
refactor: update avatar base styles and aura, add filled variant (#10524)
1 parent faf58b2 commit 8594b9f

File tree

6 files changed

+36
-15
lines changed

6 files changed

+36
-15
lines changed

packages/aura/src/color.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
:where(:host),
5151
vaadin-app-layout > :not([slot]),
5252
vaadin-notification-container,
53+
vaadin-avatar,
5354
vaadin-button,
5455
vaadin-context-menu-item,
5556
vaadin-crud-edit,
Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,38 @@
11
:where(:root),
22
:where(:host) {
3-
--vaadin-avatar-border-color: var(--vaadin-border-color-secondary);
4-
--vaadin-avatar-background: var(--vaadin-background-container);
3+
--vaadin-avatar-border-color: var(--aura-accent-border-color);
54
--vaadin-avatar-font-weight: var(--aura-font-weight-medium);
65
--vaadin-avatar-font-size: var(--aura-font-size-m);
76
}
87

9-
vaadin-avatar:not([img]) {
8+
vaadin-avatar {
9+
color: var(--vaadin-avatar-text-color, var(--aura-accent-text-color));
1010
--_shade: color-mix(in srgb, var(--vaadin-border-color) 20%, transparent);
11-
background-image: linear-gradient(
12-
light-dark(transparent, var(--_shade)),
13-
transparent 50%,
14-
light-dark(var(--_shade), transparent)
11+
background: var(
12+
--vaadin-avatar-background,
13+
linear-gradient(light-dark(transparent, var(--_shade)), transparent 50%, light-dark(var(--_shade), transparent)),
14+
var(--aura-accent-surface)
1515
);
16+
background-clip: content-box;
17+
}
18+
19+
vaadin-avatar:where([has-color-index]) {
20+
--aura-accent-color-light: var(--vaadin-avatar-user-color);
21+
--aura-accent-color-dark: var(--vaadin-avatar-user-color);
22+
--aura-accent-color: light-dark(var(--aura-accent-color-light), var(--aura-accent-color-dark));
23+
color: var(--vaadin-avatar-text-color, var(--aura-accent-text-color));
24+
--vaadin-avatar-background: var(--vaadin-accent-surface);
25+
--vaadin-avatar-text-color: var(--aura-accent-text-color);
26+
--vaadin-avatar-border-color: var(--aura-accent-border-color);
27+
--vaadin-avatar-border-width: 1px;
28+
}
29+
30+
vaadin-avatar[img][has-color-index] {
31+
--vaadin-avatar-border-color: var(--aura-accent-color);
32+
--vaadin-avatar-border-width: 2px;
33+
}
34+
35+
vaadin-avatar[theme~='filled'] {
36+
background: var(--aura-accent-color) content-box;
37+
color: var(--aura-accent-contrast-color);
1638
}
-729 Bytes
Loading

packages/avatar/src/styles/vaadin-avatar-base-styles.js

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,10 @@ export const avatarStyles = css`
3535
:host::before {
3636
position: absolute;
3737
content: '';
38-
inset: 0;
38+
inset: calc(var(--vaadin-focus-ring-width) * -1);
3939
border-radius: inherit;
40-
border: var(--vaadin-avatar-border-width, 1px) solid var(--vaadin-avatar-border-color, transparent);
40+
outline: var(--vaadin-avatar-border-width, 1px) solid var(--vaadin-avatar-border-color, transparent);
41+
outline-offset: calc((var(--vaadin-focus-ring-width) + var(--vaadin-avatar-border-width, 1px)) * -1);
4142
}
4243
4344
:host([role='button']) {
@@ -71,9 +72,6 @@ export const avatarStyles = css`
7172
color: oklch(
7273
from var(--vaadin-avatar-user-color) clamp(0, (0.62 - l) * 1000, 1) 0 0 / clamp(0.8, (0.62 - l) * 1000, 1)
7374
);
74-
}
75-
76-
:host([has-color-index])::before {
7775
--vaadin-avatar-border-width: 2px;
7876
--vaadin-avatar-border-color: var(--vaadin-avatar-user-color);
7977
}

packages/avatar/test/avatar.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -338,8 +338,8 @@ describe('vaadin-avatar', () => {
338338
it('should set border color based on color index', async () => {
339339
avatar.colorIndex = 0;
340340
await nextUpdate(avatar);
341-
const { borderColor } = getComputedStyle(avatar, '::before');
342-
expect(['rgb(255, 0, 0)', 'red'].some((v) => borderColor.indexOf(v) > -1)).to.be.true;
341+
const { outlineColor } = getComputedStyle(avatar, '::before');
342+
expect(['rgb(255, 0, 0)', 'red'].some((v) => outlineColor.indexOf(v) > -1)).to.be.true;
343343
});
344344

345345
it('should set attribute based on color index', async () => {

packages/vaadin-lumo-styles/src/components/avatar.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
}
4444

4545
:host([has-color-index])::before {
46-
border: none;
46+
outline: none;
4747
box-shadow: inset 0 0 0 2px var(--vaadin-avatar-user-color);
4848
}
4949

0 commit comments

Comments
 (0)