2024-03-21 16:11:54 +00:00
|
|
|
@use "../utilities/css-variables" as cv;
|
|
|
|
@use "../utilities/initial-variables" as iv;
|
|
|
|
@use "../utilities/extends";
|
|
|
|
@use "../utilities/mixins" as mx;
|
|
|
|
|
2024-09-18 22:53:25 +00:00
|
|
|
$menu-item-background-color: cv.getVar("scheme-main") !default;
|
|
|
|
$menu-item-color: cv.getVar("text") !default;
|
|
|
|
$menu-item-hover-background-color: hsl(
|
|
|
|
from #{cv.getVar("menu-item-background-color")} h s calc(l + #{cv.getVar(
|
|
|
|
"hover-background-l-delta"
|
|
|
|
)})
|
|
|
|
) !default;
|
|
|
|
$menu-item-hover-color: cv.getVar("text-strong") !default;
|
|
|
|
$menu-item-active-background-color: hsl(
|
|
|
|
from #{cv.getVar("menu-item-background-color")} h s calc(l + #{cv.getVar(
|
|
|
|
"active-background-l-delta"
|
|
|
|
)})
|
|
|
|
) !default;
|
|
|
|
$menu-item-active-color: cv.getVar("text-strong") !default;
|
|
|
|
$menu-item-selected-background-color: cv.getVar("link") !default;
|
|
|
|
$menu-item-selected-color: cv.getVar("link-invert") !default;
|
|
|
|
$menu-item-selected-hover-background-color: hsl(
|
|
|
|
from #{cv.getVar("menu-item-selected-background-color")} h s calc(l + #{cv.getVar(
|
|
|
|
"hover-background-l-delta"
|
|
|
|
)})
|
|
|
|
) !default;
|
|
|
|
$menu-item-selected-active-background-color: hsl(
|
|
|
|
from #{cv.getVar("menu-item-selected-background-color")} h s calc(l + #{cv.getVar(
|
|
|
|
"active-background-l-delta"
|
|
|
|
)})
|
|
|
|
) !default;
|
2024-03-21 16:11:54 +00:00
|
|
|
$menu-item-radius: cv.getVar("radius-small") !default;
|
|
|
|
|
|
|
|
$menu-list-border-left: 1px solid cv.getVar("border") !default;
|
|
|
|
$menu-list-line-height: 1.25 !default;
|
|
|
|
$menu-list-link-padding: 0.5em 0.75em !default;
|
|
|
|
$menu-nested-list-margin: 0.75em !default;
|
|
|
|
$menu-nested-list-padding-left: 0.75em !default;
|
|
|
|
|
|
|
|
$menu-label-color: cv.getVar("text-weak") !default;
|
|
|
|
$menu-label-font-size: 0.75em !default;
|
|
|
|
$menu-label-letter-spacing: 0.1em !default;
|
|
|
|
$menu-label-spacing: 1em !default;
|
|
|
|
|
|
|
|
.#{iv.$class-prefix}menu {
|
|
|
|
@include cv.register-vars(
|
|
|
|
(
|
2024-09-18 22:53:25 +00:00
|
|
|
"menu-item-background-color": #{$menu-item-background-color},
|
|
|
|
"menu-item-color": #{$menu-item-color},
|
|
|
|
"menu-item-hover-background-color": #{$menu-item-hover-background-color},
|
|
|
|
"menu-item-hover-color": #{$menu-item-hover-color},
|
|
|
|
"menu-item-active-background-color": #{$menu-item-active-background-color},
|
|
|
|
"menu-item-active-color": #{$menu-item-active-color},
|
|
|
|
"menu-item-selected-background-color": #{$menu-item-selected-background-color},
|
|
|
|
"menu-item-selected-color": #{$menu-item-selected-color},
|
|
|
|
"menu-item-selected-hover-background-color": #{$menu-item-selected-hover-background-color},
|
|
|
|
"menu-item-selected-active-background-color": #{$menu-item-selected-active-background-color},
|
2024-03-21 16:11:54 +00:00
|
|
|
"menu-item-radius": #{$menu-item-radius},
|
|
|
|
"menu-list-border-left": #{$menu-list-border-left},
|
|
|
|
"menu-list-line-height": #{$menu-list-line-height},
|
|
|
|
"menu-list-link-padding": #{$menu-list-link-padding},
|
|
|
|
"menu-nested-list-margin": #{$menu-nested-list-margin},
|
|
|
|
"menu-nested-list-padding-left": #{$menu-nested-list-padding-left},
|
|
|
|
"menu-label-color": #{$menu-label-color},
|
|
|
|
"menu-label-font-size": #{$menu-label-font-size},
|
|
|
|
"menu-label-letter-spacing": #{$menu-label-letter-spacing},
|
|
|
|
"menu-label-spacing": #{$menu-label-spacing},
|
|
|
|
)
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
.#{iv.$class-prefix}menu {
|
|
|
|
font-size: cv.getVar("size-normal");
|
|
|
|
|
|
|
|
// 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");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.#{iv.$class-prefix}menu-list {
|
|
|
|
line-height: cv.getVar("menu-list-line-height");
|
|
|
|
|
|
|
|
a,
|
|
|
|
button,
|
|
|
|
.#{iv.$class-prefix}menu-item {
|
|
|
|
@extend %reset;
|
2024-09-18 22:53:25 +00:00
|
|
|
background-color: cv.getVar("menu-item-background-color");
|
2024-03-21 16:11:54 +00:00
|
|
|
border-radius: cv.getVar("menu-item-radius");
|
2024-09-18 22:53:25 +00:00
|
|
|
color: cv.getVar("menu-item-color");
|
2024-03-21 16:11:54 +00:00
|
|
|
display: block;
|
|
|
|
padding: cv.getVar("menu-list-link-padding");
|
|
|
|
text-align: left;
|
|
|
|
width: 100%;
|
|
|
|
|
|
|
|
&:hover {
|
2024-09-18 22:53:25 +00:00
|
|
|
background-color: cv.getVar("menu-item-hover-background-color");
|
|
|
|
color: cv.getVar("menu-item-hover-color");
|
2024-03-21 16:11:54 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
&:active {
|
2024-09-18 22:53:25 +00:00
|
|
|
background-color: cv.getVar("menu-item-active-background-color");
|
|
|
|
color: cv.getVar("menu-item-active-color");
|
2024-03-21 16:11:54 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Modifiers
|
|
|
|
&.#{iv.$class-prefix}is-active,
|
|
|
|
&.#{iv.$class-prefix}is-selected {
|
2024-09-18 22:53:25 +00:00
|
|
|
background-color: cv.getVar("menu-item-selected-background-color");
|
|
|
|
color: cv.getVar("menu-item-selected-color");
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
background-color: cv.getVar(
|
|
|
|
"menu-item-selected-hover-background-color"
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
&:active {
|
|
|
|
background-color: cv.getVar(
|
|
|
|
"menu-item-selected-active-background-color"
|
|
|
|
);
|
|
|
|
}
|
2024-03-21 16:11:54 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
li {
|
|
|
|
ul {
|
|
|
|
border-inline-start: cv.getVar("menu-list-border-left");
|
|
|
|
margin: cv.getVar("menu-nested-list-margin");
|
|
|
|
padding-inline-start: cv.getVar("menu-nested-list-padding-left");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.#{iv.$class-prefix}menu-label {
|
|
|
|
color: cv.getVar("menu-label-color");
|
|
|
|
font-size: cv.getVar("menu-label-font-size");
|
|
|
|
letter-spacing: cv.getVar("menu-label-letter-spacing");
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
|
|
&:not(:first-child) {
|
|
|
|
margin-top: cv.getVar("menu-label-spacing");
|
|
|
|
}
|
|
|
|
|
|
|
|
&:not(:last-child) {
|
|
|
|
margin-bottom: cv.getVar("menu-label-spacing");
|
|
|
|
}
|
|
|
|
}
|