Current section

Files

Jump to
corex priv design corex components avatar.css
Raw

priv/design/corex/components/avatar.css

@import "../main.css";
@layer components {
.avatar[dir="rtl"] [data-scope="avatar"][data-part="fallback"] {
text-align: end;
}
.avatar [data-scope="avatar"][data-part="root"] {
@apply ui-root;
position: relative;
display: inline-grid;
place-items: center;
width: --spacing(11);
height: --spacing(11);
aspect-ratio: 1 / 1;
max-width: 100%;
border-radius: var(--radius-full);
overflow: hidden;
}
.avatar [data-scope="avatar"][data-part="fallback"] {
display: inline-flex;
align-items: center;
justify-content: center;
text-align: start;
width: 100%;
height: 100%;
font-size: var(--text-base);
line-height: var(--text-base--line-height);
font-weight: var(--font-weight-normal);
border-radius: inherit;
border: 1px solid var(--color-border);
gap: --spacing(4);
color: var(--color-ink);
background-color: var(--color-ui);
}
.avatar [data-scope="avatar"][data-part="image"] {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
border-radius: inherit;
position: relative;
z-index: 1;
}
.avatar [data-scope="avatar"][data-part="skeleton"] {
position: absolute;
inset: 0;
z-index: 2;
display: block;
width: 100%;
height: 100%;
box-sizing: border-box;
border-radius: var(--radius-full);
background: linear-gradient(
90deg,
var(--color-ui-muted) 0%,
var(--color-border) 50%,
var(--color-ui-muted) 100%
);
background-size: 200% 100%;
animation: avatar-skeleton-loading 1.2s ease-in-out infinite;
}
.avatar [data-scope="avatar"][data-part="skeleton"][data-state="hidden"] {
display: none;
}
.avatar.avatar--square [data-scope="avatar"][data-part="skeleton"] {
border-radius: var(--radius-md);
}
.avatar.avatar--square [data-scope="avatar"][data-part="root"] {
border-radius: var(--radius-md);
}
.avatar.avatar--square [data-scope="avatar"][data-part="fallback"] {
border-radius: var(--radius-md);
}
.avatar.avatar--sm [data-scope="avatar"][data-part="root"] {
width: --spacing(8);
height: --spacing(8);
}
.avatar.avatar--sm [data-scope="avatar"][data-part="fallback"] {
font-size: var(--text-xs);
line-height: var(--text-xs--line-height);
}
.avatar.avatar--md [data-scope="avatar"][data-part="root"] {
width: --spacing(11);
height: --spacing(11);
}
.avatar.avatar--md [data-scope="avatar"][data-part="fallback"] {
font-size: var(--text-base);
line-height: var(--text-base--line-height);
}
.avatar.avatar--lg [data-scope="avatar"][data-part="root"] {
width: --spacing(14);
height: --spacing(14);
}
.avatar.avatar--lg [data-scope="avatar"][data-part="fallback"] {
font-size: var(--text-lg);
line-height: var(--text-lg--line-height);
}
.avatar.avatar--xl [data-scope="avatar"][data-part="root"] {
width: --spacing(18);
height: --spacing(18);
}
.avatar.avatar--xl [data-scope="avatar"][data-part="fallback"] {
font-size: var(--text-xl);
line-height: var(--text-xl--line-height);
}
}
@keyframes avatar-skeleton-loading {
0% {
background-position: 200% 0;
}
100% {
background-position: -200% 0;
}
}
@utility avatar--* {
[data-scope="avatar"][data-part="root"] {
max-width: --value(--spacing-*, [length]);
}
[data-scope="avatar"][data-part="fallback"] {
font-size: --value(--text-*, [length]);
line-height: --value(--text-*--line-height, [length]);
width: --value(--spacing-*, [length]);
height: --value(--spacing-*, [length]);
background-color: --value(--color-ui, [color]);
color: --value(--color-ink, [color]);
border-color: --value(--color-border, [color]);
}
}