140 lines
3 KiB
SCSS
140 lines
3 KiB
SCSS
|
@use "../utilities/css-variables" as cv;
|
||
|
@use "../utilities/initial-variables" as iv;
|
||
|
@use "../utilities/extends";
|
||
|
@use "../utilities/mixins";
|
||
|
|
||
|
$breadcrumb-item-color: cv.getVar("link-text") !default;
|
||
|
$breadcrumb-item-hover-color: cv.getVar("link-text-hover") !default;
|
||
|
$breadcrumb-item-active-color: cv.getVar("link-text-active") !default;
|
||
|
|
||
|
$breadcrumb-item-padding-vertical: 0 !default;
|
||
|
$breadcrumb-item-padding-horizontal: 0.75em !default;
|
||
|
|
||
|
$breadcrumb-item-separator-color: cv.getVar("border") !default;
|
||
|
|
||
|
.#{iv.$class-prefix}breadcrumb {
|
||
|
@include cv.register-vars(
|
||
|
(
|
||
|
"breadcrumb-item-color": #{$breadcrumb-item-color},
|
||
|
"breadcrumb-item-hover-color": #{$breadcrumb-item-hover-color},
|
||
|
"breadcrumb-item-active-color": #{$breadcrumb-item-active-color},
|
||
|
"breadcrumb-item-padding-vertical": #{$breadcrumb-item-padding-vertical},
|
||
|
"breadcrumb-item-padding-horizontal": #{$breadcrumb-item-padding-horizontal},
|
||
|
"breadcrumb-item-separator-color": #{$breadcrumb-item-separator-color},
|
||
|
)
|
||
|
);
|
||
|
}
|
||
|
|
||
|
.#{iv.$class-prefix}breadcrumb {
|
||
|
@extend %block;
|
||
|
@extend %unselectable;
|
||
|
font-size: cv.getVar("size-normal");
|
||
|
white-space: nowrap;
|
||
|
|
||
|
a {
|
||
|
align-items: center;
|
||
|
color: cv.getVar("breadcrumb-item-color");
|
||
|
display: flex;
|
||
|
justify-content: center;
|
||
|
padding: cv.getVar("breadcrumb-item-padding-vertical")
|
||
|
cv.getVar("breadcrumb-item-padding-horizontal");
|
||
|
|
||
|
&:hover {
|
||
|
color: cv.getVar("breadcrumb-item-hover-color");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
li {
|
||
|
align-items: center;
|
||
|
display: flex;
|
||
|
|
||
|
&:first-child a {
|
||
|
padding-inline-start: 0;
|
||
|
}
|
||
|
|
||
|
&.#{iv.$class-prefix}is-active {
|
||
|
a {
|
||
|
color: cv.getVar("breadcrumb-item-active-color");
|
||
|
cursor: default;
|
||
|
pointer-events: none;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
& + li::before {
|
||
|
color: cv.getVar("breadcrumb-item-separator-color");
|
||
|
content: "/";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
ul,
|
||
|
ol {
|
||
|
align-items: flex-start;
|
||
|
display: flex;
|
||
|
flex-wrap: wrap;
|
||
|
justify-content: flex-start;
|
||
|
}
|
||
|
|
||
|
.#{iv.$class-prefix}icon {
|
||
|
&:first-child {
|
||
|
margin-inline-end: 0.5em;
|
||
|
}
|
||
|
|
||
|
&:last-child {
|
||
|
margin-inline-start: 0.5em;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Alignment
|
||
|
&.#{iv.$class-prefix}is-centered {
|
||
|
ol,
|
||
|
ul {
|
||
|
justify-content: center;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
&.#{iv.$class-prefix}is-right {
|
||
|
ol,
|
||
|
ul {
|
||
|
justify-content: flex-end;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Sizes
|
||
|
&.#{iv.$class-prefix}is-small {
|
||
|
font-size: cv.getVar("size-small");
|
||
|
}
|
||
|
|
||
|
&.#{iv.$class-prefix}is-medium {
|
||
|
font-size: cv.getVar("size-medium");
|
||
|
}
|
||
|
|
||
|
&.#{iv.$class-prefix}is-large {
|
||
|
font-size: cv.getVar("size-large");
|
||
|
}
|
||
|
|
||
|
// Styles
|
||
|
&.#{iv.$class-prefix}has-arrow-separator {
|
||
|
li + li::before {
|
||
|
content: "→";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
&.#{iv.$class-prefix}has-bullet-separator {
|
||
|
li + li::before {
|
||
|
content: "•";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
&.#{iv.$class-prefix}has-dot-separator {
|
||
|
li + li::before {
|
||
|
content: "·";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
&.#{iv.$class-prefix}has-succeeds-separator {
|
||
|
li + li::before {
|
||
|
content: "≻";
|
||
|
}
|
||
|
}
|
||
|
}
|