@rhds/elements
Version:
Red Hat Design System Elements
163 lines (138 loc) • 5.15 kB
CSS
/**
* Public vars used *only* in this file must be documented in `rh-breadcrumb.ts`
* so that CEM adds them to the Code page documentation.
*/
rh-breadcrumb {
--_breadcrumb-caret-image-default:
var(--rh-breadcrumb-caret-image,
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='15' viewBox='0 0 10 15' fill='none'%3E%3Cg clip-path='url(%23clip0_232_19576)'%3E%3Cpath d='M2.5 14.5L0.5 12.5L5.5 7.5L0.5 2.5L2.5 0.5L9.5 7.5L2.5 14.5Z' fill='red' /%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_232_19576'%3E%3Crect width='10' height='14' fill='white' transform='matrix(-1 0 0 1 10 0.5)'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E")); /* stylelint-disable-line @stylistic/declaration-colon-newline-after */
--_breadcrumb-link-color:
var(--rh-breadcrumb-link-color,
var(--rh-color-interactive-primary-default));
--_breadcrumb-link-color-current-page: var(--rh-color-text-primary);
--_breadcrumb-link-color-current-page-subtle: var(--rh-color-text-secondary);
--_breadcrumb-link-color-hover: var(--rh-color-interactive-primary-hover);
--_breadcrumb-link-color-visited: var(--rh-color-interactive-primary-visited-hover);
--_breadcrumb-link-color-visited-hover: var(--rh-color-interactive-primary-visited-hover);
--_breadcrumb-link-focus-outline-color: var(--rh-color-border-interactive);
display: block;
& [hidden] {
display: none ;
}
& > ol {
container-type: inline-size;
container-name: breadcrumbs-list;
font-size: var(--rh-font-size-body-text-sm, 0.875rem);
line-height: var(--rh-line-height-body-text, 1.5);
margin-block: 0;
padding-inline-start: 0;
& > li {
display: inline-flex;
margin-block-end: var(--rh-space-md, 8px);
padding-inline-end:
var(--rh-breadcrumb-li-padding-inline-end,
var(--rh-space-lg, 16px));
vertical-align: bottom;
align-items: center;
gap: var(--rh-space-lg, 16px);
&:not(:first-of-type):before {
display: inline-block;
background-color: var(--rh-color-icon-secondary);
mask-image: var(--_breadcrumb-caret-image-default);
mask-position: center center;
mask-repeat: no-repeat;
block-size: var(--rh-font-size-body-text-sm, 0.875rem);
inline-size: var(--rh-font-size-body-text-sm, 0.875rem);
content: '';
}
&:first-child {
padding-inline-start: 0;
& > a {
margin-inline-start: 0;
}
}
&:last-child {
background-image: none;
}
/* stylelint-disable-next-line no-descending-specificity */
& > a {
text-decoration: none;
&:is(:hover, :focus, :active) {
color: var(--_breadcrumb-link-color-hover);
text-decoration: underline var(--rh-border-width-sm, 1px) dashed;
text-decoration-color: inherit;
text-underline-offset: max(5px, 0.28em);
transition-timing-function: ease;
transition-property: text-underline-offset, color, text-decoration-color;
transition-duration: 0.3s;
}
&:is(:focus, :focus-visible) {
border-radius: var(--rh-border-radius-default, 3px);
outline: 2px solid var(--_breadcrumb-link-focus-outline-color);
}
&:visited {
color: var(--_breadcrumb-link-color-visited);
}
&:visited:hover {
color: var(--_breadcrumb-link-color-visited-hover);
text-decoration: underline var(--rh-border-width-sm, 1px) dashed;
text-decoration-color: inherit;
text-underline-offset: max(5px, 0.28em);
transition-timing-function: ease;
transition-property: text-underline-offset, color, text-decoration-color;
transition-duration: 0.3s;
}
&[aria-current='page'] {
cursor: default;
pointer-events: none;
}
}
&:last-child,
& > a[aria-current='page'] {
color: var(--_breadcrumb-link-color-current-page);
text-decoration: none;
}
}
& > li,
& > li > a {
color: var(--_breadcrumb-link-color);
}
}
&[variant='subtle'] > ol > li {
&:not(:first-of-type):before {
background-color: var(--rh-color-icon-subtle, #707070);
}
&:last-child,
& > a[aria-current='page'] {
color: var(--_breadcrumb-link-color-current-page-subtle);
}
}
& .truncate-btn {
background-color: transparent;
border: 0;
color: var(--_breadcrumb-link-color);
cursor: pointer;
min-inline-size: var(--rh-length-xl, 24px);
padding: 0;
text-decoration: none;
&:hover,
&:focus {
color: var(--_breadcrumb-link-color-hover);
}
&:focus {
border-radius: var(--rh-border-radius-default, 3px);
outline: 2px solid var(--_breadcrumb-link-focus-outline-color);
}
& .visually-hidden {
border: 0;
clip: rect(0, 0, 0, 0);
block-size: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
white-space: nowrap;
inline-size: 1px;
}
}
}