1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
|
/* 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);
width: var(--icon-size);
-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;
}
}
}
|