@rhds/elements
Version:
Red Hat Design System Elements
128 lines (107 loc) • 4.23 kB
CSS
rh-skeleton {
background: light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.1));
block-size: calc(var(--rh-font-size-body-text-md, 1rem) * var(--rh-line-height-body-text, 1.5));
border-radius: var(--rh-border-radius-default, 3px);
display: block;
inline-size: 100%;
margin-block-end: var(--rh-space-xs, 4px);
overflow: hidden;
position: relative;
&:after {
--_placeholder-color:
light-dark(var(--rh-color-black, #000000),
var(--rh-color-white, #ffffff));
animation: shimmer 2s infinite;
background:
linear-gradient(to right,
hsla(from var(--_placeholder-color) h s l / 0) var(--rh-opacity-0, 0%),
hsla(from var(--_placeholder-color) h s l / 0.05) calc(var(--rh-opacity-20, 20%) + 5%),
hsla(from var(--_placeholder-color) h s l / 0.1) var(--rh-opacity-50, 50%),
hsla(from var(--_placeholder-color) h s l / 0.05) calc(var(--rh-opacity-70, 70%) + 5%),
hsla(from var(--_placeholder-color) h s l / 0) var(--rh-opacity-100, 100%));
content: '';
inset: 0;
position: absolute;
transform: translateX(-100%);
}
}
@keyframes shimmer {
100% {
transform: translateX(100%);
}
}
/**
* Body Copy Skeletons:
*/
rh-skeleton[size='xs'][type='body-copy']:not([type='circle'], [type='square'], [type='rectangle']) {
block-size:
calc(
var(--rh-font-size-body-text-xs, 0.75rem) * var(--rh-line-height-body-text, 1.5)
);
}
rh-skeleton[size='sm'][type='body-copy']:not([type='circle'], [type='square'], [type='rectangle']) {
block-size:
calc(
var(--rh-font-size-body-text-sm, 0.875rem) * var(--rh-line-height-body-text, 1.5)
);
}
/* Medium = default skeleton, handled above */
rh-skeleton[size='lg'][type='body-copy']:not([type='circle'], [type='square'], [type='rectangle']) {
block-size:
calc(
var(--rh-font-size-body-text-lg, 1.125rem) * var(--rh-line-height-body-text, 1.5)
);
}
rh-skeleton[size='xl'][type='body-copy']:not([type='circle'], [type='square'], [type='rectangle']) {
block-size:
calc(
var(--rh-font-size-body-text-xl, 1.25rem) * var(--rh-line-height-body-text, 1.5)
);
}
/* stylelint-disable-next-line @stylistic/max-line-length */
rh-skeleton[size='2xl'][type='body-copy']:not([type='circle'], [type='square'], [type='rectangle']) {
block-size:
calc(
var(--rh-font-size-body-text-2xl, 1.5rem) * var(--rh-line-height-body-text, 1.5)
);
}
/**
* Heading Skeletons:
*/
rh-skeleton[size='xs'][type='heading']:not([type='circle'], [type='square'], [type='rectangle']) {
block-size: calc(var(--rh-font-size-heading-xs, 1.25rem) * var(--rh-line-height-heading, 1.3));
}
rh-skeleton[size='sm'][type='heading']:not([type='circle'], [type='square'], [type='rectangle']) {
block-size: calc(var(--rh-font-size-heading-sm, 1.5rem) * var(--rh-line-height-heading, 1.3));
}
rh-skeleton[type='heading']:not([type='circle'], [type='square'], [type='rectangle']),
rh-skeleton[size='md'][type='heading']:not([type='circle'], [type='square'], [type='rectangle']) {
block-size: calc(var(--rh-font-size-heading-md, 1.75rem) * var(--rh-line-height-heading, 1.3));
}
rh-skeleton[size='lg'][type='heading']:not([type='circle'], [type='square'], [type='rectangle']) {
block-size: calc(var(--rh-font-size-heading-lg, 2.25rem) * var(--rh-line-height-heading, 1.3));
}
rh-skeleton[size='xl'][type='heading']:not([type='circle'], [type='square'], [type='rectangle']) {
block-size: calc(var(--rh-font-size-heading-xl, 2.5rem) * var(--rh-line-height-heading, 1.3));
}
rh-skeleton[size='2xl'][type='heading']:not([type='circle'], [type='square'], [type='rectangle']) {
block-size: calc(var(--rh-font-size-heading-2xl, 3rem) * var(--rh-line-height-heading, 1.3));
}
/**
* Shape Skeletons:
*/
rh-skeleton:is([type='circle'], [type='square'], [type='rectangle']) {
block-size: var(--rh-length-4xl, 64px);
}
rh-skeleton:is([type='circle'], [type='square']) {
inline-size: var(--rh-length-4xl, 64px);
}
rh-skeleton[type='circle'] {
border-radius: 50%;
}
rh-skeleton[type='square'] {
border-radius: var(--rh-border-radius-default, 3px);
}
rh-skeleton[type='rectangle'] {
inline-size: var(--rh-length-7xl, 128px);
}