148 lines
3.8 KiB
CSS
148 lines
3.8 KiB
CSS
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
:host {
|
|
--page-nav-button-border-radius: var(--button-border-radius);
|
|
--page-nav-button-text-color: var(--button-text-color-ghost);
|
|
--page-nav-button-text-color-hover: var(--button-text-color-ghost-hover);
|
|
--page-nav-button-text-color-active: var(--button-text-color-ghost-active);
|
|
--page-nav-button-background-color: var(--button-background-color-ghost);
|
|
--page-nav-button-background-color-hover: var(--button-background-color-ghost-hover);
|
|
--page-nav-button-background-color-active: var(--button-background-color-ghost-active);
|
|
--page-nav-button-background-color-selected: color-mix(in srgb, currentColor 8%, transparent);
|
|
--page-nav-button-padding: var(--space-small) var(--space-medium);
|
|
--page-nav-button-border-color-hover: var(--button-border-color-ghost-hover);
|
|
--page-nav-button-border-color-active: var(--button-border-color-ghost-active);
|
|
|
|
border-radius: var(--border-radius-small);
|
|
|
|
@media (max-width: 52rem) {
|
|
--page-nav-button-padding: var(--space-small);
|
|
}
|
|
}
|
|
|
|
:host(:not([hidden])) {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
:host([iconsrc]) {
|
|
@media (max-width: 52rem) {
|
|
width: var(--button-size-icon);
|
|
}
|
|
}
|
|
|
|
a[href],
|
|
button {
|
|
background-color: var(--page-nav-button-background-color);
|
|
transition: background-color 150ms;
|
|
border: unset;
|
|
-moz-context-properties: fill, fill-opacity;
|
|
fill: var(--icon-color);
|
|
display: flex;
|
|
gap: var(--space-medium);
|
|
align-items: center;
|
|
font-family: inherit;
|
|
font-size: inherit;
|
|
font-weight: normal;
|
|
border-radius: var(--page-nav-button-border-radius);
|
|
color: var(--page-nav-button-text-color);
|
|
text-align: start;
|
|
padding: var(--page-nav-button-padding);
|
|
position: relative;
|
|
|
|
@media (forced-colors) {
|
|
transition: none;
|
|
}
|
|
|
|
@media (prefers-contrast) {
|
|
border: 1px solid var(--page-nav-border-color);
|
|
}
|
|
}
|
|
|
|
a[href] {
|
|
text-decoration: none;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
a[href]:hover,
|
|
button:hover:not([selected]) {
|
|
color: var(--page-nav-button-text-color-hover);
|
|
background-color: var(--page-nav-button-background-color-hover);
|
|
border-color: var(--page-nav-button-border-color-hover);
|
|
|
|
&:active {
|
|
color: var(--page-nav-button-text-color-active);
|
|
background-color: var(--page-nav-button-background-color-active);
|
|
border-color: var(--page-nav-button-border-color-active);
|
|
}
|
|
}
|
|
|
|
button {
|
|
&:hover {
|
|
cursor: pointer;
|
|
}
|
|
|
|
&[selected] {
|
|
color: var(--color-accent-primary);
|
|
background-color: var(--page-nav-button-background-color-selected);
|
|
font-weight: var(--font-weight-bold);
|
|
|
|
@media (prefers-contrast) {
|
|
border-color: var(--color-accent-primary);
|
|
}
|
|
|
|
&::before {
|
|
background-color: var(--color-accent-primary);
|
|
}
|
|
}
|
|
|
|
&::before {
|
|
content: "";
|
|
display: block;
|
|
position: absolute;
|
|
inset-block: 0;
|
|
inset-inline-start: 0;
|
|
width: 4px;
|
|
background-color: transparent;
|
|
border-start-start-radius: var(--page-nav-button-border-radius);
|
|
border-end-start-radius: var(--page-nav-button-border-radius);
|
|
|
|
@media (prefers-contrast) {
|
|
border-radius: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
a[href]:focus-visible,
|
|
button:focus-visible,
|
|
button[selected]:focus-visible {
|
|
outline: var(--focus-outline);
|
|
outline-offset: var(--page-nav-focus-outline-inset);
|
|
border-radius: var(--border-radius-small);
|
|
}
|
|
|
|
.page-nav-icon {
|
|
height: var(--icon-size-default);
|
|
width: var(--icon-size-default);
|
|
-moz-context-properties: fill;
|
|
fill: currentColor;
|
|
}
|
|
|
|
slot {
|
|
margin: 0;
|
|
padding-inline-start: 0;
|
|
user-select: none;
|
|
|
|
@media (max-width: 52rem) {
|
|
display: inline-block;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
|
|
.page-nav-icon + & {
|
|
display: none;
|
|
}
|
|
}
|
|
}
|