Skip to content

Commit b612352

Browse files
web-padawanjouni
andauthored
refactor: update avatar and avatar-group base styles, fix overlap mask (#10082)
Co-authored-by: Jouni Koivuviita <jouni@vaadin.com>
1 parent 99a7196 commit b612352

36 files changed

+21
-21
lines changed

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

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,11 @@ export const avatarGroupStyles = css`
3131
}
3232
3333
::slotted(vaadin-avatar) {
34+
--_overlap: max(0px, var(--vaadin-avatar-group-overlap, 8px));
35+
--_gap: max(0px, var(--vaadin-avatar-group-gap, 2px));
3436
mask-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M300 0H0V300H300V0ZM150 200C177.614 200 200 177.614 200 150C200 122.386 177.614 100 150 100C122.386 100 100 122.386 100 150C100 177.614 122.386 200 150 200Z" fill="black"/></svg>');
35-
mask-size: calc(300% + var(--vaadin-avatar-group-gap, 2px) * 6 - var(--vaadin-focus-ring-width) * 6);
36-
mask-position: calc(
37-
50% +
38-
(
39-
var(--vaadin-avatar-size, 32px) - var(--vaadin-avatar-group-overlap, 8px) +
40-
var(--vaadin-avatar-group-gap, 2px)
41-
) *
42-
var(--_d)
43-
);
37+
mask-size: calc((100% - var(--vaadin-focus-ring-width) * 2) * 3);
38+
mask-position: calc(50% + (100% - var(--vaadin-focus-ring-width) * 2 - var(--_overlap)) * var(--_d));
4439
--_d: var(--_dir);
4540
}
4641
@@ -49,10 +44,7 @@ export const avatarGroupStyles = css`
4944
}
5045
5146
::slotted(vaadin-avatar:not(:first-of-type)) {
52-
margin-inline-start: calc(
53-
var(--vaadin-avatar-group-overlap, 8px) * -1 - var(--vaadin-focus-ring-width) +
54-
var(--vaadin-avatar-group-gap, 2px)
55-
);
47+
margin-inline-start: calc((var(--vaadin-focus-ring-width) + var(--_overlap) - var(--_gap)) * -1);
5648
}
5749
5850
:host(:not([theme~='reverse'])) ::slotted(vaadin-avatar:last-child),
-5 Bytes
Loading
-235 Bytes
Loading
-148 Bytes
Loading
-117 Bytes
Loading
-165 Bytes
Loading

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

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ export const avatarStyles = css`
1414
border-radius: 50%;
1515
cursor: default;
1616
color: var(--vaadin-avatar-color, var(--vaadin-color-subtle));
17-
line-height: 0;
1817
overflow: hidden;
19-
height: var(--vaadin-avatar-size, 32px);
20-
width: var(--vaadin-avatar-size, 32px);
18+
--_size: var(--vaadin-avatar-size, calc(1lh + var(--vaadin-padding-xs) * 2));
19+
height: var(--_size);
20+
width: var(--_size);
2121
border: var(--vaadin-focus-ring-width) solid transparent;
2222
margin: calc(var(--vaadin-focus-ring-width) * -1);
2323
background: var(--vaadin-avatar-background, var(--vaadin-background-container-strong));
@@ -27,6 +27,17 @@ export const avatarStyles = css`
2727
user-select: none;
2828
-webkit-tap-highlight-color: transparent;
2929
position: relative;
30+
font-weight: var(--vaadin-avatar-font-weight, 400);
31+
font-size: var(--vaadin-avatar-font-size, inherit);
32+
}
33+
34+
/* Overlay border on top of image and icon as well */
35+
:host::before {
36+
position: absolute;
37+
content: '';
38+
inset: 0;
39+
border-radius: inherit;
40+
border: var(--vaadin-avatar-border-width, 1px) solid var(--vaadin-avatar-border-color, transparent);
3041
}
3142
3243
:host([role='button']) {
@@ -61,11 +72,8 @@ export const avatarStyles = css`
6172
}
6273
6374
:host([has-color-index])::before {
64-
position: absolute;
65-
content: '';
66-
inset: 0;
67-
border-radius: inherit;
68-
border: 2px solid var(--vaadin-avatar-user-color);
75+
--vaadin-avatar-border-width: 2px;
76+
--vaadin-avatar-border-color: var(--vaadin-avatar-user-color);
6977
}
7078
7179
:host([focus-ring]) {
-36 Bytes
Loading
-193 Bytes
Loading
-86 Bytes
Loading

0 commit comments

Comments
 (0)