AstraOS's picture
Upload 51 files
64aaca8 verified
raw
history blame
6.8 kB
/* a11y button */
#has-a11y {
margin-right: auto;
}
#has-a11y-summary {
padding: .6ex 1ex;
font-weight: 700;
}
#has-a11y-summary::before{
font-family: 'base-ui';
font-weight: 400;
content: '\e900';
}
#has-a11y[open] #a11y {
--anm: expand 99ms forwards;
--tso: bottom;
}
/* a11y container */
#a11y {
display: flex;
position: fixed;
bottom: calc(1rem + var(--vfoot));
flex-direction: column;
margin: 0;
border: var(--border);
border-radius: 1ex;
background: var(--bg);
padding: 1rem;
max-height: calc(100vh - var(--vhead) - var(--vfoot) - 2rem );
overflow-y: auto;
gap: var(--medskip);
}
/* hide input checkbox */
#a11y input[type=checkbox],
#a11y input[type=radio],
#bionReadSwitch {
position: absolute;
top: -100vh;
}
#a11y select,
#a11y input[type=range],
#setColorScheme label,
#setOpenDyslexic,
button {
cursor: pointer;
}
/* range */
label.range {
display: flex;
flex-direction: row-reverse;
}
label.range > input {
flex: 1;
accent-color: var(--ac);
}
label.range > output {
width: 4rem;
text-align: center;
color: var(--ac);
font: 700 var(--large) var(--sf), sans-serif;
}
#setColorScheme {
display: flex;
flex-direction: row;
align-items: center;
margin-bottom: 1ex;
}
/* lightswitch */
#lightSwitch + label {
display: flex;
flex-direction: column;
align-items: center;
border-radius: 0.5ex;
padding: 1ex;
width: 4rem;
font-weight: 700;
gap: 1ex;
}
#lightSwitch:hover + label,
#lightSwitch:focus + label,
#setContrast > input:hover + label {
background: var(--g18s);
color: var(--ac);
}
/* credit to @mrozilla on codepen https://codepen.io/mrozilla/pen/OJJNjRb */
input + label > #lightSwitchIndicator {
--ray-size: calc(var(--size) * -0.4);
--offset-orthogonal: calc(var(--size) * 0.65);
--offset-diagonal: calc(var(--size) * 0.45);
--tsf: scale(0.75);
--size: 1.414em;
display: block;
outline: none;
border-radius: 999px;
box-shadow: inset 0 0 0 var(--size),
calc(var(--offset-orthogonal) * -1) 0 0 var(--ray-size),
var(--offset-orthogonal) 0 0 var(--ray-size),
0 calc(var(--offset-orthogonal) * -1) 0 var(--ray-size),
0 var(--offset-orthogonal) 0 var(--ray-size),
calc(var(--offset-diagonal) * -1) calc(var(--offset-diagonal) * -1) 0 var(--ray-size),
var(--offset-diagonal) var(--offset-diagonal) 0 var(--ray-size),
calc(var(--offset-diagonal) * -1) var(--offset-diagonal) 0 var(--ray-size),
var(--offset-diagonal) calc(var(--offset-diagonal) * -1) 0 var(--ray-size);
width: var(--size);
height: var(--size);
color: #ffaa00;
}
input:checked + label > #lightSwitchIndicator {
--tsf: scale(1);
box-shadow: inset calc(var(--size) * 0.33) calc(var(--size) * -0.25) 0;
}
/* contrast */
#setContrast {
display: flex;
position: relative;
flex: 1;
justify-content: center;
margin: 0 0 0 1ex;
border: none;
border-left: var(--bound);
padding: 2.5em 0 0 1ex;
}
#setContrast legend {
position: absolute;
top: 0;
padding: 1ex;
}
#setContrast label {
-webkit-transition: 99ms;
-moz-transition: 99ms;
-o-transition: 99ms;
transition: 99ms;
border-radius: 1rem;
padding: 3pt 7pt;
font-size: 0.84em !important;
}
#setContrast > input:checked + label {
background: var(--fg);
color: var(--bg);
}
#setContrast > input + label::before {
font-family:'base-ui';
content: '\e904\a0';
}
#setContrast > input:checked + label::before {
content: '\e903\a0';
}
/* color palette */
#setColorPalette {
align-items: baseline;
}
#setColorPalette > *,
#setOpenDyslexic > * {
padding: 1ex 0;
}
#colorPalette {
flex: 1;
margin-left: 0.5ex;
border: unset;
border-radius: 1rem;
background: var(--bg);
padding: 0.5ex 1.25ex;
color: var(--fg);
font: inherit !important;
}
/* font */
#baselineStretchState::after {
font-size: 0.8em;
content: '×';
}
#fontSizeState::after {
font-size: 0.8em;
content: 'pt';
}
#setOpenDyslexic > label {
display: flex;
align-items: center;
}
#OpenDyslexicState {
display: flex;
margin-left: auto;
border-radius: 1em;
background: #80808080;
width: 2.4em;
height: 0.8em;
}
#OpenDyslexicIndicator {
--tst: 0.5s ease-out;
position: relative;
align-self: center;
border: 1pt solid #80808008;
border-radius: 1em;
box-shadow: var(--box-shadow-focus);
background: #fff;
padding: 6pt;
}
#OpenDyslexic:hover + label #OpenDyslexicIndicator,
#OpenDyslexic:focus + label #OpenDyslexicIndicator {
--anm: grab 3s ease-out 3;
}
#OpenDyslexic:checked:hover + label #OpenDyslexicIndicator,
#OpenDyslexic:checked:focus + label #OpenDyslexicIndicator {
--anm: unset;
}
#OpenDyslexic:checked + label #OpenDyslexicIndicator {
left: 1.3em;
}
@keyframes grab {
0%, 10%, 20%, 100% {
left: 0;
}
5%, 15% {
left: 3pt;
}
}
@-webkit-keyframes grab {
0%, 20%, 40%, 100% {
left: 0;
}
10%, 30% {
left: 3pt;
}
}
/* menu */
#a11y-menu {
display: inline-flex;
align-items: center;
margin: 0;
padding: 0;
width: 100%;
gap: 1ex;
}
#a11y-menu > button {
display: inline-flex;
flex-direction: column;
align-items: center;
border: unset;
padding: 1ex;
}
#a11y-menu > .has-aria-label {
background: unset;
color: var(--fg);
}
#a11y-menu > .has-aria-label::before {
margin: auto;
padding: 0.25rem 0.5rem;
}
#a11y-menu .has-aria-label:after {
font-size: 0.7em;
}
#resetButton::before {
font-family: 'base-ui';
content: '\e90f';
}
#closeButton::before {
font-family: 'base-ui';
content: '\e913';
}
#bionReadButton,
#saveButton {
flex: 1;
margin-left: auto;
cursor: pointer;
}
/* bionRead */
b.k {
vertical-align: baseline;
letter-spacing: var(--bion);
color: var(--off);
font-weight: 400 !important;
-webkit-text-stroke: var(--bion) var(--off);
font-synthesis: weight;
}
#useBionRead {
display: none;
margin: auto;
letter-spacing: 0.1em;
font-size: var(--footnotesize);
}
legend,
.has-aria-label-top:before,
#setColorPalette > label,
input + label > span {
font-weight: 700;
}
#setContrast > input + label > span {
font-weight: 400;
}
#bionReadButton > span {
font-weight: 400;
text-transform: uppercase;
}
#noScript,
#noLocalStorage {
margin: auto;
border-top: var(--bound);
padding-top: 1rem;
max-width: 20rem;
}
@media only screen and (max-width: 640px) {
#has-a11y > summary > span {
display: none;
}
}