Rounded avatar
by Julien Roche
HTML
<body>
<section class="avatar" data-url="https://images.pexels.com/photos/1398195/pexels-photo-1398195.jpeg?cs=srgb&dl=architecture-bay-bridge-1398195.jpg&fm=jpg"></section>
</body>
CSS
:root {
--avatarTransitionDuration: 0.3s;
--avatarTransitionTiming: ease-out;
--avatarSize: 5rem;
}
body {
background-color: white;
margin: 3rem;
}
.avatar {
background-image: attr(data-url url);
background-position: 50% 50%;
background-size: cover;
border-radius: 10rem;
cursor: pointer;
height: var(--avatarSize);
transition: filter var(--avatarTransitionDuration) var(--avatarTransitionTiming);
position: relative;
width: var(--avatarSize);
}
.avatar:hover {
filter: contrast(80%);
}
.avatar::before {
border: 1px solid lightgrey;
border-radius: calc(var(--avatarSize) * 2);
content: '';
height: var(--avatarSize);
left: -1px;
position: absolute;
transition: left var(--avatarTransitionDuration) var(--avatarTransitionTiming), top var(--avatarTransitionDuration) var(--avatarTransitionTiming), border var(--avatarTransitionDuration) var(--avatarTransitionTiming);
top: -1px;
width: var(--avatarSize);
z-index: -1;
}
.avatar:hover::before {
border-width: 4px;
left: -4px;
top: -4px;
}