Spaces:
Sleeping
Sleeping
Upload 51 files
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- assets/css/component/a11y.css +355 -0
- assets/css/component/background.css +98 -0
- assets/css/component/breadcrumb.css +116 -0
- assets/css/component/card.css +167 -0
- assets/css/component/carousel.css +299 -0
- assets/css/component/column.css +69 -0
- assets/css/component/fediverse.css +88 -0
- assets/css/component/hero.css +92 -0
- assets/css/component/keyframe.css +85 -0
- assets/css/component/link.css +81 -0
- assets/css/component/logotype.css +105 -0
- assets/css/component/marginpar.css +51 -0
- assets/css/component/menu.css +560 -0
- assets/css/component/search.css +196 -0
- assets/css/component/share.css +150 -0
- assets/css/component/skipper.css +44 -0
- assets/css/custom.css +28 -0
- assets/css/layout/_default/baseof.css +318 -0
- assets/css/layout/_default/home.css +141 -0
- assets/css/layout/_default/list.css +145 -0
- assets/css/layout/_default/single.css +344 -0
- assets/css/media/print.css +204 -0
- assets/css/optimize.css +191 -0
- assets/css/typeface-local/Cormorant.css +47 -0
- assets/css/typeface-local/Crimson.css +43 -0
- assets/css/typeface-local/EBGaramond.css +47 -0
- assets/css/typeface-local/Inconsolata.css +25 -0
- assets/css/typeface-local/Inter.css +51 -0
- assets/css/typeface-local/Montserrat.css +51 -0
- assets/css/typeface-local/OpenDyslexic.css +51 -0
- assets/css/typeface-local/Rosario.css +43 -0
- assets/css/typeface-local/icon.css +184 -0
- assets/css/typeface/Cormorant.css +47 -0
- assets/css/typeface/Crimson.css +43 -0
- assets/css/typeface/EBGaramond.css +47 -0
- assets/css/typeface/Inconsolata.css +25 -0
- assets/css/typeface/Inter.css +51 -0
- assets/css/typeface/Montserrat.css +51 -0
- assets/css/typeface/OpenDyslexic.css +51 -0
- assets/css/typeface/Rosario.css +43 -0
- assets/css/typeface/icon.css +184 -0
- assets/css/typeface/websafe.css +13 -0
- assets/css/typesetting/_template.css +306 -0
- assets/css/typesetting/default.css +293 -0
- assets/css/typesetting/sectioning.css +118 -0
- assets/css/typesetting/verbatim.css +307 -0
- assets/js/accessibility.js +174 -0
- assets/js/bionread.js +58 -0
- assets/js/default.js +178 -0
- assets/js/fediverse.js +186 -0
assets/css/component/a11y.css
ADDED
|
@@ -0,0 +1,355 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/* a11y button */
|
| 2 |
+
|
| 3 |
+
#has-a11y {
|
| 4 |
+
margin-right: auto;
|
| 5 |
+
}
|
| 6 |
+
|
| 7 |
+
#has-a11y-summary {
|
| 8 |
+
padding: .6ex 1ex;
|
| 9 |
+
font-weight: 700;
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
#has-a11y-summary::before{
|
| 13 |
+
font-family: 'base-ui';
|
| 14 |
+
font-weight: 400;
|
| 15 |
+
content: '\e900';
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
#has-a11y[open] #a11y {
|
| 19 |
+
--anm: expand 99ms forwards;
|
| 20 |
+
--tso: bottom;
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
/* a11y container */
|
| 24 |
+
#a11y {
|
| 25 |
+
display: flex;
|
| 26 |
+
position: fixed;
|
| 27 |
+
bottom: calc(1rem + var(--vfoot));
|
| 28 |
+
flex-direction: column;
|
| 29 |
+
margin: 0;
|
| 30 |
+
border: var(--border);
|
| 31 |
+
border-radius: 1ex;
|
| 32 |
+
background: var(--bg);
|
| 33 |
+
padding: 1rem;
|
| 34 |
+
max-height: calc(100vh - var(--vhead) - var(--vfoot) - 2rem );
|
| 35 |
+
overflow-y: auto;
|
| 36 |
+
gap: var(--medskip);
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
/* hide input checkbox */
|
| 40 |
+
#a11y input[type=checkbox],
|
| 41 |
+
#a11y input[type=radio],
|
| 42 |
+
#bionReadSwitch {
|
| 43 |
+
position: absolute;
|
| 44 |
+
top: -100vh;
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
#a11y select,
|
| 48 |
+
#a11y input[type=range],
|
| 49 |
+
#setColorScheme label,
|
| 50 |
+
#setOpenDyslexic,
|
| 51 |
+
button {
|
| 52 |
+
cursor: pointer;
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
/* range */
|
| 56 |
+
label.range {
|
| 57 |
+
display: flex;
|
| 58 |
+
flex-direction: row-reverse;
|
| 59 |
+
}
|
| 60 |
+
|
| 61 |
+
label.range > input {
|
| 62 |
+
flex: 1;
|
| 63 |
+
accent-color: var(--ac);
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
label.range > output {
|
| 67 |
+
width: 4rem;
|
| 68 |
+
text-align: center;
|
| 69 |
+
color: var(--ac);
|
| 70 |
+
font: 700 var(--large) var(--sf), sans-serif;
|
| 71 |
+
}
|
| 72 |
+
|
| 73 |
+
#setColorScheme {
|
| 74 |
+
display: flex;
|
| 75 |
+
flex-direction: row;
|
| 76 |
+
align-items: center;
|
| 77 |
+
margin-bottom: 1ex;
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
/* lightswitch */
|
| 81 |
+
#lightSwitch + label {
|
| 82 |
+
display: flex;
|
| 83 |
+
flex-direction: column;
|
| 84 |
+
align-items: center;
|
| 85 |
+
border-radius: 0.5ex;
|
| 86 |
+
padding: 1ex;
|
| 87 |
+
width: 4rem;
|
| 88 |
+
font-weight: 700;
|
| 89 |
+
gap: 1ex;
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
#lightSwitch:hover + label,
|
| 93 |
+
#lightSwitch:focus + label,
|
| 94 |
+
#setContrast > input:hover + label {
|
| 95 |
+
background: var(--g18s);
|
| 96 |
+
color: var(--ac);
|
| 97 |
+
}
|
| 98 |
+
|
| 99 |
+
/* credit to @mrozilla on codepen https://codepen.io/mrozilla/pen/OJJNjRb */
|
| 100 |
+
input + label > #lightSwitchIndicator {
|
| 101 |
+
--ray-size: calc(var(--size) * -0.4);
|
| 102 |
+
--offset-orthogonal: calc(var(--size) * 0.65);
|
| 103 |
+
--offset-diagonal: calc(var(--size) * 0.45);
|
| 104 |
+
--tsf: scale(0.75);
|
| 105 |
+
--size: 1.414em;
|
| 106 |
+
display: block;
|
| 107 |
+
outline: none;
|
| 108 |
+
border-radius: 999px;
|
| 109 |
+
box-shadow: inset 0 0 0 var(--size),
|
| 110 |
+
calc(var(--offset-orthogonal) * -1) 0 0 var(--ray-size),
|
| 111 |
+
var(--offset-orthogonal) 0 0 var(--ray-size),
|
| 112 |
+
0 calc(var(--offset-orthogonal) * -1) 0 var(--ray-size),
|
| 113 |
+
0 var(--offset-orthogonal) 0 var(--ray-size),
|
| 114 |
+
calc(var(--offset-diagonal) * -1) calc(var(--offset-diagonal) * -1) 0 var(--ray-size),
|
| 115 |
+
var(--offset-diagonal) var(--offset-diagonal) 0 var(--ray-size),
|
| 116 |
+
calc(var(--offset-diagonal) * -1) var(--offset-diagonal) 0 var(--ray-size),
|
| 117 |
+
var(--offset-diagonal) calc(var(--offset-diagonal) * -1) 0 var(--ray-size);
|
| 118 |
+
width: var(--size);
|
| 119 |
+
height: var(--size);
|
| 120 |
+
color: #ffaa00;
|
| 121 |
+
}
|
| 122 |
+
|
| 123 |
+
input:checked + label > #lightSwitchIndicator {
|
| 124 |
+
--tsf: scale(1);
|
| 125 |
+
box-shadow: inset calc(var(--size) * 0.33) calc(var(--size) * -0.25) 0;
|
| 126 |
+
}
|
| 127 |
+
|
| 128 |
+
/* contrast */
|
| 129 |
+
#setContrast {
|
| 130 |
+
display: flex;
|
| 131 |
+
position: relative;
|
| 132 |
+
flex: 1;
|
| 133 |
+
justify-content: center;
|
| 134 |
+
margin: 0 0 0 1ex;
|
| 135 |
+
border: none;
|
| 136 |
+
border-left: var(--bound);
|
| 137 |
+
padding: 2.5em 0 0 1ex;
|
| 138 |
+
}
|
| 139 |
+
|
| 140 |
+
#setContrast legend {
|
| 141 |
+
position: absolute;
|
| 142 |
+
top: 0;
|
| 143 |
+
padding: 1ex;
|
| 144 |
+
}
|
| 145 |
+
|
| 146 |
+
#setContrast label {
|
| 147 |
+
-webkit-transition: 99ms;
|
| 148 |
+
-moz-transition: 99ms;
|
| 149 |
+
-o-transition: 99ms;
|
| 150 |
+
transition: 99ms;
|
| 151 |
+
border-radius: 1rem;
|
| 152 |
+
padding: 3pt 7pt;
|
| 153 |
+
font-size: 0.84em !important;
|
| 154 |
+
}
|
| 155 |
+
|
| 156 |
+
#setContrast > input:checked + label {
|
| 157 |
+
background: var(--fg);
|
| 158 |
+
color: var(--bg);
|
| 159 |
+
}
|
| 160 |
+
|
| 161 |
+
#setContrast > input + label::before {
|
| 162 |
+
font-family:'base-ui';
|
| 163 |
+
content: '\e904\a0';
|
| 164 |
+
}
|
| 165 |
+
|
| 166 |
+
#setContrast > input:checked + label::before {
|
| 167 |
+
content: '\e903\a0';
|
| 168 |
+
}
|
| 169 |
+
|
| 170 |
+
/* color palette */
|
| 171 |
+
#setColorPalette {
|
| 172 |
+
align-items: baseline;
|
| 173 |
+
}
|
| 174 |
+
|
| 175 |
+
#setColorPalette > *,
|
| 176 |
+
#setOpenDyslexic > * {
|
| 177 |
+
padding: 1ex 0;
|
| 178 |
+
}
|
| 179 |
+
|
| 180 |
+
#colorPalette {
|
| 181 |
+
flex: 1;
|
| 182 |
+
margin-left: 0.5ex;
|
| 183 |
+
border: unset;
|
| 184 |
+
border-radius: 1rem;
|
| 185 |
+
background: var(--bg);
|
| 186 |
+
padding: 0.5ex 1.25ex;
|
| 187 |
+
color: var(--fg);
|
| 188 |
+
font: inherit !important;
|
| 189 |
+
}
|
| 190 |
+
|
| 191 |
+
/* font */
|
| 192 |
+
#baselineStretchState::after {
|
| 193 |
+
font-size: 0.8em;
|
| 194 |
+
content: '×';
|
| 195 |
+
}
|
| 196 |
+
|
| 197 |
+
#fontSizeState::after {
|
| 198 |
+
font-size: 0.8em;
|
| 199 |
+
content: 'pt';
|
| 200 |
+
}
|
| 201 |
+
|
| 202 |
+
#setOpenDyslexic > label {
|
| 203 |
+
display: flex;
|
| 204 |
+
align-items: center;
|
| 205 |
+
}
|
| 206 |
+
|
| 207 |
+
#OpenDyslexicState {
|
| 208 |
+
display: flex;
|
| 209 |
+
margin-left: auto;
|
| 210 |
+
border-radius: 1em;
|
| 211 |
+
background: #80808080;
|
| 212 |
+
width: 2.4em;
|
| 213 |
+
height: 0.8em;
|
| 214 |
+
}
|
| 215 |
+
|
| 216 |
+
#OpenDyslexicIndicator {
|
| 217 |
+
--tst: 0.5s ease-out;
|
| 218 |
+
position: relative;
|
| 219 |
+
align-self: center;
|
| 220 |
+
border: 1pt solid #80808008;
|
| 221 |
+
border-radius: 1em;
|
| 222 |
+
box-shadow: var(--box-shadow-focus);
|
| 223 |
+
background: #fff;
|
| 224 |
+
padding: 6pt;
|
| 225 |
+
}
|
| 226 |
+
|
| 227 |
+
#OpenDyslexic:hover + label #OpenDyslexicIndicator,
|
| 228 |
+
#OpenDyslexic:focus + label #OpenDyslexicIndicator {
|
| 229 |
+
--anm: grab 3s ease-out 3;
|
| 230 |
+
}
|
| 231 |
+
|
| 232 |
+
#OpenDyslexic:checked:hover + label #OpenDyslexicIndicator,
|
| 233 |
+
#OpenDyslexic:checked:focus + label #OpenDyslexicIndicator {
|
| 234 |
+
--anm: unset;
|
| 235 |
+
}
|
| 236 |
+
|
| 237 |
+
#OpenDyslexic:checked + label #OpenDyslexicIndicator {
|
| 238 |
+
left: 1.3em;
|
| 239 |
+
}
|
| 240 |
+
|
| 241 |
+
@keyframes grab {
|
| 242 |
+
0%, 10%, 20%, 100% {
|
| 243 |
+
left: 0;
|
| 244 |
+
}
|
| 245 |
+
5%, 15% {
|
| 246 |
+
left: 3pt;
|
| 247 |
+
}
|
| 248 |
+
}
|
| 249 |
+
|
| 250 |
+
@-webkit-keyframes grab {
|
| 251 |
+
0%, 20%, 40%, 100% {
|
| 252 |
+
left: 0;
|
| 253 |
+
}
|
| 254 |
+
10%, 30% {
|
| 255 |
+
left: 3pt;
|
| 256 |
+
}
|
| 257 |
+
}
|
| 258 |
+
|
| 259 |
+
/* menu */
|
| 260 |
+
#a11y-menu {
|
| 261 |
+
display: inline-flex;
|
| 262 |
+
align-items: center;
|
| 263 |
+
margin: 0;
|
| 264 |
+
padding: 0;
|
| 265 |
+
width: 100%;
|
| 266 |
+
gap: 1ex;
|
| 267 |
+
}
|
| 268 |
+
|
| 269 |
+
#a11y-menu > button {
|
| 270 |
+
display: inline-flex;
|
| 271 |
+
flex-direction: column;
|
| 272 |
+
align-items: center;
|
| 273 |
+
border: unset;
|
| 274 |
+
padding: 1ex;
|
| 275 |
+
}
|
| 276 |
+
|
| 277 |
+
#a11y-menu > .has-aria-label {
|
| 278 |
+
background: unset;
|
| 279 |
+
color: var(--fg);
|
| 280 |
+
}
|
| 281 |
+
|
| 282 |
+
#a11y-menu > .has-aria-label::before {
|
| 283 |
+
margin: auto;
|
| 284 |
+
padding: 0.25rem 0.5rem;
|
| 285 |
+
}
|
| 286 |
+
|
| 287 |
+
#a11y-menu .has-aria-label:after {
|
| 288 |
+
font-size: 0.7em;
|
| 289 |
+
}
|
| 290 |
+
|
| 291 |
+
#resetButton::before {
|
| 292 |
+
font-family: 'base-ui';
|
| 293 |
+
content: '\e90f';
|
| 294 |
+
}
|
| 295 |
+
|
| 296 |
+
#closeButton::before {
|
| 297 |
+
font-family: 'base-ui';
|
| 298 |
+
content: '\e913';
|
| 299 |
+
}
|
| 300 |
+
|
| 301 |
+
#bionReadButton,
|
| 302 |
+
#saveButton {
|
| 303 |
+
flex: 1;
|
| 304 |
+
margin-left: auto;
|
| 305 |
+
cursor: pointer;
|
| 306 |
+
}
|
| 307 |
+
|
| 308 |
+
/* bionRead */
|
| 309 |
+
b.k {
|
| 310 |
+
vertical-align: baseline;
|
| 311 |
+
letter-spacing: var(--bion);
|
| 312 |
+
color: var(--off);
|
| 313 |
+
font-weight: 400 !important;
|
| 314 |
+
-webkit-text-stroke: var(--bion) var(--off);
|
| 315 |
+
font-synthesis: weight;
|
| 316 |
+
}
|
| 317 |
+
|
| 318 |
+
#useBionRead {
|
| 319 |
+
display: none;
|
| 320 |
+
margin: auto;
|
| 321 |
+
letter-spacing: 0.1em;
|
| 322 |
+
font-size: var(--footnotesize);
|
| 323 |
+
}
|
| 324 |
+
|
| 325 |
+
legend,
|
| 326 |
+
.has-aria-label-top:before,
|
| 327 |
+
#setColorPalette > label,
|
| 328 |
+
input + label > span {
|
| 329 |
+
font-weight: 700;
|
| 330 |
+
}
|
| 331 |
+
|
| 332 |
+
#setContrast > input + label > span {
|
| 333 |
+
font-weight: 400;
|
| 334 |
+
}
|
| 335 |
+
|
| 336 |
+
#bionReadButton > span {
|
| 337 |
+
font-weight: 400;
|
| 338 |
+
text-transform: uppercase;
|
| 339 |
+
}
|
| 340 |
+
|
| 341 |
+
#noScript,
|
| 342 |
+
#noLocalStorage {
|
| 343 |
+
margin: auto;
|
| 344 |
+
border-top: var(--bound);
|
| 345 |
+
padding-top: 1rem;
|
| 346 |
+
max-width: 20rem;
|
| 347 |
+
}
|
| 348 |
+
|
| 349 |
+
@media only screen and (max-width: 640px) {
|
| 350 |
+
|
| 351 |
+
#has-a11y > summary > span {
|
| 352 |
+
display: none;
|
| 353 |
+
}
|
| 354 |
+
|
| 355 |
+
}
|
assets/css/component/background.css
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#background-footer,
|
| 2 |
+
#background-header,
|
| 3 |
+
#background-body {
|
| 4 |
+
display: flex;
|
| 5 |
+
position: fixed;
|
| 6 |
+
top: 0;
|
| 7 |
+
left: 0;
|
| 8 |
+
z-index: -2;
|
| 9 |
+
width: 100vw;
|
| 10 |
+
height: 100vh;
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
#background-footer,
|
| 14 |
+
#background-header,
|
| 15 |
+
#background-body,
|
| 16 |
+
#a11y,
|
| 17 |
+
#lightSwitchIndicator,
|
| 18 |
+
#setContrast,
|
| 19 |
+
#colorPalette,
|
| 20 |
+
ul.carousel__viewport > li > a > span::before,
|
| 21 |
+
ul.carousel__viewport > li > a > span::after,
|
| 22 |
+
ul.carousel__viewport > li > a > span,
|
| 23 |
+
#list-categories a:hover::after,
|
| 24 |
+
.letterine > i {
|
| 25 |
+
-webkit-transition: var(--flashGuard);
|
| 26 |
+
-moz-transition: var(--flashGuard);
|
| 27 |
+
-o-transition: var(--flashGuard);
|
| 28 |
+
transition: var(--flashGuard);
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
#background-body,
|
| 32 |
+
.background {
|
| 33 |
+
background-color: var(--bg);
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
#background-header {
|
| 37 |
+
/* border-bottom: var(--border); */
|
| 38 |
+
height: var(--vhead);
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
#background-footer {
|
| 42 |
+
top: unset;
|
| 43 |
+
bottom: 0;
|
| 44 |
+
/* border-top: var(--border); */
|
| 45 |
+
height: var(--vfoot);
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
/* grain */
|
| 49 |
+
|
| 50 |
+
.grain,
|
| 51 |
+
#grain {
|
| 52 |
+
background-image: url("data:image/svg+xml;utf8,<svg version='1.1' viewBox='0 0 256 256' width='256' height='256' opacity='1' id='svgrain' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'><defs id='defs'><filter id='grain' x='0' y='0' width='1' height='1' filterUnits='objectBoundingBox' primitiveUnits='userSpaceOnUse' color-interpolation-filters='linearRGB'><feTurbulence type='turbulence' baseFrequency='0.7' numOctaves='7' seed='42' stitchTiles='stitch' x='-1%' y='-1%' width='102%' height='102%' result='turbulence' id='feTurbulence' /><feSpecularLighting surfaceScale='7' specularConstant='3' specularExponent='10' lighting-color='%23ffffff' x='-1%' y='-1%' width='102%' height='102%' in='turbulence' result='specularLighting' id='feSpecularLighting'><feDistantLight azimuth='3' elevation='163' id='feDistantLight4' /></feSpecularLighting></filter></defs><rect width='320' height='320' fill='%23000000' id='blackbody' x='-32' y='-32' opacity='0.03' /><rect width='320' height='320' fill='%23ffffff' filter='url(%23grain)' id='noise' x='-32' y='-32' opacity='0.03' /></svg>");
|
| 53 |
+
mix-blend-mode: difference;
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
#grain {
|
| 57 |
+
position: absolute;
|
| 58 |
+
width: 100%;
|
| 59 |
+
height: 100%;
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
/* distraction */
|
| 63 |
+
|
| 64 |
+
#dwclock {
|
| 65 |
+
opacity: 0.33;
|
| 66 |
+
margin: auto;
|
| 67 |
+
width: 100vmin;
|
| 68 |
+
height: 100vmin;
|
| 69 |
+
filter: blur(2vmin) saturate(2);
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
#hour,
|
| 73 |
+
#min {
|
| 74 |
+
position: absolute;
|
| 75 |
+
width: 100vmin;
|
| 76 |
+
height: 100vmin;
|
| 77 |
+
}
|
| 78 |
+
|
| 79 |
+
.hand {
|
| 80 |
+
--min: 40vmin;
|
| 81 |
+
--hour: 28vmin;
|
| 82 |
+
--tsf: translateY(calc(50vmin - var(--min)));
|
| 83 |
+
margin: 0 auto auto ;
|
| 84 |
+
border-right: 2vmin solid transparent;
|
| 85 |
+
border-bottom: var(--min) solid #60f;
|
| 86 |
+
border-left: 2vmin solid transparent;
|
| 87 |
+
border-radius: 2vmin;
|
| 88 |
+
background-image: linear-gradient(0deg, var(--bg) 0%, #60f 100%);
|
| 89 |
+
width: 3vmin;
|
| 90 |
+
height: var(--min);
|
| 91 |
+
}
|
| 92 |
+
|
| 93 |
+
#hour .hand {
|
| 94 |
+
--tsf: translateY(calc(50vmin - var(--hour)));
|
| 95 |
+
border-bottom: var(--hour) solid #20f;
|
| 96 |
+
background-image: linear-gradient(0deg, var(--bg) 0%, #20f 100%);
|
| 97 |
+
height: var(--hour);
|
| 98 |
+
}
|
assets/css/component/breadcrumb.css
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
main > header.pagewidth {
|
| 2 |
+
margin-top: var(--medskip);
|
| 3 |
+
padding-left: calc(var(--void) - 0.5ex - 4pt);
|
| 4 |
+
height: 2.5rem;
|
| 5 |
+
}
|
| 6 |
+
|
| 7 |
+
#back {
|
| 8 |
+
display: inline-flex;
|
| 9 |
+
position: relative;
|
| 10 |
+
top: 2.8pt;
|
| 11 |
+
float: left;
|
| 12 |
+
border: none;
|
| 13 |
+
background: none;
|
| 14 |
+
padding: 0;
|
| 15 |
+
color: inherit;
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
#back::before,
|
| 19 |
+
header > menu a::before {
|
| 20 |
+
padding: 6pt 9pt;
|
| 21 |
+
font-size: var(--large);
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
#rss-button::before {
|
| 25 |
+
font-family: 'base-ui';
|
| 26 |
+
content: '\e910';
|
| 27 |
+
}
|
| 28 |
+
|
| 29 |
+
#print-button::before {
|
| 30 |
+
font-family: 'base-ui';
|
| 31 |
+
content: '\e90c';
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
#navigatorShare::before {
|
| 35 |
+
font-family: 'base-ui';
|
| 36 |
+
content: '\e912';
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
#copyPermalink::before {
|
| 40 |
+
font-family: base-ui;
|
| 41 |
+
content: '\e905';
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
main > header > menu {
|
| 45 |
+
float: right;
|
| 46 |
+
visibility: hidden;
|
| 47 |
+
margin: 0 0 0 auto;
|
| 48 |
+
padding: 0;
|
| 49 |
+
list-style: none;
|
| 50 |
+
font-size: 1.1rem;
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
main#term > header > menu,
|
| 54 |
+
main#page > header > menu {
|
| 55 |
+
visibility: visible;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
main#term #print-button {
|
| 59 |
+
visibility: hidden;
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
main > header > menu > li,
|
| 63 |
+
ul.breadcrumb > li {
|
| 64 |
+
display: inline;
|
| 65 |
+
}
|
| 66 |
+
|
| 67 |
+
main > header > menu > li > a {
|
| 68 |
+
opacity: 0.86;
|
| 69 |
+
color: var(--fg) !important;
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
.pagination .rfill a::before,
|
| 73 |
+
.carousel__viewport__slide:last-child > nav a::before,
|
| 74 |
+
#back::before {
|
| 75 |
+
--tsf: rotate(-90deg) translateX(1pt);
|
| 76 |
+
font-family: base-ui;
|
| 77 |
+
content: '\e902';
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
#has-breadcrumb a {
|
| 81 |
+
margin: 2pt;
|
| 82 |
+
padding: 0.5ex;
|
| 83 |
+
text-transform: uppercase;
|
| 84 |
+
letter-spacing: 0.1rem;
|
| 85 |
+
color: var(--fg);
|
| 86 |
+
font-size: var(--small);
|
| 87 |
+
}
|
| 88 |
+
|
| 89 |
+
ul.breadcrumb {
|
| 90 |
+
display: block;
|
| 91 |
+
padding: 5pt 0;
|
| 92 |
+
overflow: auto;
|
| 93 |
+
text-overflow: ellipsis;
|
| 94 |
+
white-space: nowrap;
|
| 95 |
+
-ms-overflow-style: none;
|
| 96 |
+
scrollbar-width: none;
|
| 97 |
+
}
|
| 98 |
+
|
| 99 |
+
header > menu a {
|
| 100 |
+
display: inline-flex;
|
| 101 |
+
position: relative;
|
| 102 |
+
}
|
| 103 |
+
|
| 104 |
+
ul.breadcrumb > li:last-child a {
|
| 105 |
+
-webkit-user-select: none;
|
| 106 |
+
-khtml-user-select: none;
|
| 107 |
+
-moz-user-select: none;
|
| 108 |
+
-ms-user-select: none;
|
| 109 |
+
user-select: none;
|
| 110 |
+
-webkit-touch-callout: none;
|
| 111 |
+
}
|
| 112 |
+
|
| 113 |
+
ul.breadcrumb > li + li:before {
|
| 114 |
+
color: var(--mid);
|
| 115 |
+
content: '/';
|
| 116 |
+
}
|
assets/css/component/card.css
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.feed-item {
|
| 2 |
+
position: relative;
|
| 3 |
+
transition: 99ms;
|
| 4 |
+
margin: var(--medskip) auto var(--medskip) 0;
|
| 5 |
+
padding: 1rem;
|
| 6 |
+
width: var(--golden-ratio);
|
| 7 |
+
font-size: var(--small);
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
.feed-item:hover,
|
| 11 |
+
.feed-item:focus-within {
|
| 12 |
+
--tsf: scale(1.01);
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
.feed-item * {
|
| 16 |
+
margin-top: 0;
|
| 17 |
+
margin-bottom: 0;
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
.feed-item h1 {
|
| 21 |
+
margin: 8pt 0 0 0;
|
| 22 |
+
font-size: var(--Large);
|
| 23 |
+
font-weight: 700;
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
.feed-item img {
|
| 27 |
+
width: auto;
|
| 28 |
+
height: auto;
|
| 29 |
+
max-height: 38vh;
|
| 30 |
+
aspect-ratio: 10/8;
|
| 31 |
+
object-fit: cover;
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
.feed-item .par {
|
| 35 |
+
--grd: linear-gradient(var(--off) 50%, transparent 100%);
|
| 36 |
+
opacity: 0.86;
|
| 37 |
+
margin-right: auto;
|
| 38 |
+
-webkit-mask-image: var(--grd);
|
| 39 |
+
mask-image: var(--grd);
|
| 40 |
+
clip-path: text;
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
.feed-item img + .par {
|
| 44 |
+
width: var(--golden-ratio);
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
.feed-item > a {
|
| 48 |
+
position: absolute;
|
| 49 |
+
top: 2.5rem;
|
| 50 |
+
right: 0;
|
| 51 |
+
bottom: 3rem;
|
| 52 |
+
left: 0;
|
| 53 |
+
transition: 0.2s;
|
| 54 |
+
z-index: 1;
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
.feed-item > a:hover,
|
| 58 |
+
.feed-item > a:focus {
|
| 59 |
+
top: 0;
|
| 60 |
+
bottom: 0;
|
| 61 |
+
background-color: #80808008;
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
.feed-item > hgroup {
|
| 65 |
+
display: flex;
|
| 66 |
+
flex-direction: column;
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
.feed-item > section {
|
| 70 |
+
display: flex;
|
| 71 |
+
flex-direction: row-reverse;
|
| 72 |
+
margin: 8pt 0;
|
| 73 |
+
width: 100%;
|
| 74 |
+
overflow: hidden;
|
| 75 |
+
text-overflow: ellipsis;
|
| 76 |
+
gap: 1rem;
|
| 77 |
+
}
|
| 78 |
+
|
| 79 |
+
.feed-item > section.has-cover {
|
| 80 |
+
aspect-ratio: 10/3;
|
| 81 |
+
}
|
| 82 |
+
|
| 83 |
+
.feed-item > footer,
|
| 84 |
+
.feed-item > hgroup > div {
|
| 85 |
+
display: flex;
|
| 86 |
+
flex-flow: nowrap;
|
| 87 |
+
align-items: center;
|
| 88 |
+
white-space: nowrap;
|
| 89 |
+
}
|
| 90 |
+
|
| 91 |
+
.feed-item > footer > ul,
|
| 92 |
+
.feed-item > hgroup > div > span {
|
| 93 |
+
display: block;
|
| 94 |
+
overflow-x: auto;
|
| 95 |
+
-ms-overflow-style: none;
|
| 96 |
+
scrollbar-width: none;
|
| 97 |
+
text-overflow: ellipsis;
|
| 98 |
+
}
|
| 99 |
+
|
| 100 |
+
.feed-item > hgroup > div > div {
|
| 101 |
+
margin-left: auto;
|
| 102 |
+
padding-left: 1rem;
|
| 103 |
+
}
|
| 104 |
+
|
| 105 |
+
.feed-item > footer > ul {
|
| 106 |
+
text-align: right;
|
| 107 |
+
font-size: var(--scriptsize);
|
| 108 |
+
}
|
| 109 |
+
|
| 110 |
+
.readingTime {
|
| 111 |
+
margin-right: auto;
|
| 112 |
+
padding-right: 1rem;
|
| 113 |
+
}
|
| 114 |
+
|
| 115 |
+
.readingTime + .baselineskip {
|
| 116 |
+
height: 1em;
|
| 117 |
+
}
|
| 118 |
+
|
| 119 |
+
.flowlines {
|
| 120 |
+
border: var(--border);
|
| 121 |
+
object-fit: none !important;
|
| 122 |
+
}
|
| 123 |
+
|
| 124 |
+
ul.pagination {
|
| 125 |
+
display: flex;
|
| 126 |
+
margin: var(--medskip) 1ex;
|
| 127 |
+
}
|
| 128 |
+
|
| 129 |
+
.pagination a {
|
| 130 |
+
display: flex;
|
| 131 |
+
padding: 1ex 1em;
|
| 132 |
+
text-transform: uppercase;
|
| 133 |
+
letter-spacing: 0.2ex;
|
| 134 |
+
color: var(--ac);
|
| 135 |
+
gap: 1ex;
|
| 136 |
+
}
|
| 137 |
+
|
| 138 |
+
@media only screen and (max-width: 640px) {
|
| 139 |
+
|
| 140 |
+
.feed-item {
|
| 141 |
+
width: unset;
|
| 142 |
+
}
|
| 143 |
+
|
| 144 |
+
aside + #list-posts .feed-item {
|
| 145 |
+
width: var(--golden-ratio);
|
| 146 |
+
}
|
| 147 |
+
|
| 148 |
+
aside + #list-posts .feed-item > section {
|
| 149 |
+
flex-direction: column;
|
| 150 |
+
aspect-ratio: unset;
|
| 151 |
+
}
|
| 152 |
+
|
| 153 |
+
aside + #list-posts .feed-item .par {
|
| 154 |
+
max-height: 25vh;
|
| 155 |
+
width: unset;
|
| 156 |
+
}
|
| 157 |
+
|
| 158 |
+
}
|
| 159 |
+
|
| 160 |
+
@media only screen and (max-width: 480px) {
|
| 161 |
+
|
| 162 |
+
.feed-item > section {
|
| 163 |
+
flex-direction: column;
|
| 164 |
+
aspect-ratio: unset !important;
|
| 165 |
+
}
|
| 166 |
+
|
| 167 |
+
}
|
assets/css/component/carousel.css
ADDED
|
@@ -0,0 +1,299 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*
|
| 2 |
+
<!----- V container ----->
|
| 3 |
+
<div class='has-carousel'>
|
| 4 |
+
<!--- H container --->
|
| 5 |
+
<div class='carousel'>
|
| 6 |
+
<div>---- <div>---- <div>---- <div>---- <div>----
|
| 7 |
+
| | | | | | | | | |
|
| 8 |
+
| | | | | | | | | |
|
| 9 |
+
| | | | | | | | | |
|
| 10 |
+
| | | | | | | | | |
|
| 11 |
+
---</div> | | ---</div> | | ---</div>
|
| 12 |
+
---</div> ---</div>
|
| 13 |
+
</div>
|
| 14 |
+
<div>
|
| 15 |
+
*/
|
| 16 |
+
.carousel {
|
| 17 |
+
position: relative;
|
| 18 |
+
width: 100%;
|
| 19 |
+
overflow: hidden;
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
.carousel__nav {
|
| 23 |
+
display: flex;
|
| 24 |
+
position: absolute;
|
| 25 |
+
right: 2rem;
|
| 26 |
+
bottom: 2rem;
|
| 27 |
+
justify-content: flex-end;
|
| 28 |
+
z-index: 1;
|
| 29 |
+
width: calc(100% - 4rem);
|
| 30 |
+
font-size: var(--small);
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
.carousel__nav > ul {
|
| 34 |
+
overflow-x: auto;
|
| 35 |
+
white-space: nowrap;
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
.carousel__viewport nav a {
|
| 39 |
+
display: flex;
|
| 40 |
+
z-index: 2;
|
| 41 |
+
font-size: var(--small);
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
.carousel__viewport {
|
| 45 |
+
display: flex;
|
| 46 |
+
height: 100%;
|
| 47 |
+
overflow-x: auto;
|
| 48 |
+
-webkit-overflow-scrolling: touch;
|
| 49 |
+
scroll-behavior: smooth;
|
| 50 |
+
scroll-snap-type: x mandatory;
|
| 51 |
+
scrollbar-width: none;
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
ul.carousel__viewport {
|
| 55 |
+
border: none;
|
| 56 |
+
padding: 0;
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
.carousel__viewport > div,
|
| 60 |
+
.carousel__viewport > section,
|
| 61 |
+
ul.carousel__viewport > li,
|
| 62 |
+
.carousel__viewport__slide {
|
| 63 |
+
display: flex;
|
| 64 |
+
position: relative;
|
| 65 |
+
flex-direction: row;
|
| 66 |
+
flex-shrink: 0;
|
| 67 |
+
flex-wrap: wrap;
|
| 68 |
+
align-items: center;
|
| 69 |
+
width: 100%;
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
ul.carousel__viewport > li {
|
| 73 |
+
position: relative;
|
| 74 |
+
margin: 1ex;
|
| 75 |
+
border-radius: 1ex;
|
| 76 |
+
background-size: cover;
|
| 77 |
+
width: 16rem;
|
| 78 |
+
height: 12.8rem;
|
| 79 |
+
}
|
| 80 |
+
|
| 81 |
+
ul.carousel__viewport > li > a {
|
| 82 |
+
position: absolute;
|
| 83 |
+
top: -1px;
|
| 84 |
+
right: 0;
|
| 85 |
+
bottom: 0;
|
| 86 |
+
left: -1px;
|
| 87 |
+
border-radius: 0.82ex;
|
| 88 |
+
overflow: clip;
|
| 89 |
+
color: var(--fg);
|
| 90 |
+
font-size: var(--small);
|
| 91 |
+
font-weight: bold;
|
| 92 |
+
}
|
| 93 |
+
|
| 94 |
+
ul.carousel__viewport > li:hover,
|
| 95 |
+
ul.carousel__viewport > li:focus-within {
|
| 96 |
+
--tsf: scale(0.96);
|
| 97 |
+
opacity: 0.86;
|
| 98 |
+
}
|
| 99 |
+
|
| 100 |
+
ul.carousel__viewport > li > a > span {
|
| 101 |
+
display: inline-block;
|
| 102 |
+
position: relative;
|
| 103 |
+
border-radius: 0 0 1ex 0;
|
| 104 |
+
background-color: var(--bg);
|
| 105 |
+
padding: 0.7ex 2ex;
|
| 106 |
+
max-width: 12.8rem;
|
| 107 |
+
}
|
| 108 |
+
|
| 109 |
+
ul.carousel__viewport > li > a > span::before,
|
| 110 |
+
ul.carousel__viewport > li > a > span::after {
|
| 111 |
+
position: absolute;
|
| 112 |
+
border-top-left-radius: 1ex;
|
| 113 |
+
box-shadow: 0 -1ex 0 0 var(--bg);
|
| 114 |
+
background-color: transparent;
|
| 115 |
+
width: 1ex;
|
| 116 |
+
height: 2ex;
|
| 117 |
+
content: '';
|
| 118 |
+
}
|
| 119 |
+
|
| 120 |
+
ul.carousel__viewport > li > a > span::before {
|
| 121 |
+
bottom: -2ex;
|
| 122 |
+
left: 0;
|
| 123 |
+
}
|
| 124 |
+
|
| 125 |
+
ul.carousel__viewport > li > a > span::after {
|
| 126 |
+
top: 0;
|
| 127 |
+
right: -1ex;
|
| 128 |
+
}
|
| 129 |
+
|
| 130 |
+
.carousel__viewport__slide__cover {
|
| 131 |
+
flex: 1 1 40%;
|
| 132 |
+
padding: 1.5rem 0 5rem 1.5rem;
|
| 133 |
+
height: 100%;
|
| 134 |
+
max-height: 1024px;
|
| 135 |
+
}
|
| 136 |
+
|
| 137 |
+
.carousel__viewport__slide__content {
|
| 138 |
+
margin-bottom: auto;
|
| 139 |
+
padding: 0 2rem;
|
| 140 |
+
width: 100%;
|
| 141 |
+
max-height: calc(100% - 5rem);
|
| 142 |
+
overflow-y: auto;
|
| 143 |
+
}
|
| 144 |
+
|
| 145 |
+
.carousel__viewport__slide__content h1.section-title {
|
| 146 |
+
margin: 0 !important;
|
| 147 |
+
padding: var(--smallskip) 0 1ex;
|
| 148 |
+
font: italic var(--Large) var(--rm), serif;
|
| 149 |
+
}
|
| 150 |
+
|
| 151 |
+
.carousel__viewport__slide__content h2 {
|
| 152 |
+
font-size: var(--large);
|
| 153 |
+
}
|
| 154 |
+
|
| 155 |
+
.carousel__viewport__slide__content h3 {
|
| 156 |
+
font-size: var(--normalsize);
|
| 157 |
+
}
|
| 158 |
+
|
| 159 |
+
.carousel__viewport__slide__content p {
|
| 160 |
+
max-width: var(--canonic);
|
| 161 |
+
}
|
| 162 |
+
|
| 163 |
+
.carousel__viewport__slide__content .footnotes p {
|
| 164 |
+
max-width: unset;
|
| 165 |
+
}
|
| 166 |
+
|
| 167 |
+
.carousel__viewport__slide__cover + .carousel__viewport__slide__content {
|
| 168 |
+
flex: 1 1 60%;
|
| 169 |
+
margin-bottom: 5rem;
|
| 170 |
+
}
|
| 171 |
+
|
| 172 |
+
.carousel__viewport__slide__cover + .carousel__viewport__slide__content p {
|
| 173 |
+
width: unset;
|
| 174 |
+
}
|
| 175 |
+
|
| 176 |
+
.carousel__viewport__slide__cover img {
|
| 177 |
+
border-radius: 1ex;
|
| 178 |
+
width: 100%;
|
| 179 |
+
height: 100%;
|
| 180 |
+
object-fit: cover;
|
| 181 |
+
}
|
| 182 |
+
|
| 183 |
+
/* 2 item */
|
| 184 |
+
|
| 185 |
+
#list-tags > nav a,
|
| 186 |
+
.carousel__viewport__slide > nav a {
|
| 187 |
+
display: inline-flex;
|
| 188 |
+
padding: 1ex;
|
| 189 |
+
gap: 1ex;
|
| 190 |
+
}
|
| 191 |
+
|
| 192 |
+
.carousel__viewport__slide > nav a {
|
| 193 |
+
text-transform: uppercase;
|
| 194 |
+
letter-spacing: 0.1em;
|
| 195 |
+
color: var(--fg);
|
| 196 |
+
}
|
| 197 |
+
|
| 198 |
+
.pagination .lfill a::after,
|
| 199 |
+
#list-tags > nav a::after,
|
| 200 |
+
.carousel__viewport__slide:first-child > nav a::after {
|
| 201 |
+
/* -> */
|
| 202 |
+
--tsf: rotate(90deg);
|
| 203 |
+
font-family: base-ui;
|
| 204 |
+
content: '\e902';
|
| 205 |
+
}
|
| 206 |
+
|
| 207 |
+
.carousel__viewport .rfill {
|
| 208 |
+
display: inline-block !important;
|
| 209 |
+
}
|
| 210 |
+
|
| 211 |
+
#list-taxonomy > .carousel__viewport {
|
| 212 |
+
flex-direction: column;
|
| 213 |
+
height: calc(14.8rem + 2ex);
|
| 214 |
+
overflow-y: auto;
|
| 215 |
+
scroll-snap-type: y mandatory;
|
| 216 |
+
}
|
| 217 |
+
|
| 218 |
+
#list-taxonomy #list-series,
|
| 219 |
+
#list-taxonomy #list-categories {
|
| 220 |
+
padding: 1rem 0;
|
| 221 |
+
}
|
| 222 |
+
|
| 223 |
+
#list-series ul.carousel__viewport,
|
| 224 |
+
#list-categories ul.carousel__viewport,
|
| 225 |
+
#list-author ul.carousel__viewport {
|
| 226 |
+
scrollbar-width: thin;
|
| 227 |
+
}
|
| 228 |
+
|
| 229 |
+
#list-categories a:hover::after {
|
| 230 |
+
position: absolute;
|
| 231 |
+
right: 1ex;
|
| 232 |
+
bottom: 1ex;
|
| 233 |
+
border-radius: 0.7ex;
|
| 234 |
+
background: var(--bg);
|
| 235 |
+
padding: 0.7ex 0;
|
| 236 |
+
width: calc(3.2rem - 2ex);
|
| 237 |
+
text-align: center;
|
| 238 |
+
text-overflow: ellipsis;
|
| 239 |
+
white-space: nowrap;
|
| 240 |
+
content: attr(data-post-counter);
|
| 241 |
+
}
|
| 242 |
+
|
| 243 |
+
@media only screen and (max-width: 960px) {
|
| 244 |
+
|
| 245 |
+
aside.carousel {
|
| 246 |
+
width: unset;
|
| 247 |
+
}
|
| 248 |
+
|
| 249 |
+
}
|
| 250 |
+
|
| 251 |
+
@media only screen and (max-width: 640px) {
|
| 252 |
+
|
| 253 |
+
.carousel__nav {
|
| 254 |
+
right: 0;
|
| 255 |
+
bottom: 0;
|
| 256 |
+
background: var(--bg);
|
| 257 |
+
width: unset;
|
| 258 |
+
}
|
| 259 |
+
|
| 260 |
+
.carousel__viewport__slide > .carousel__nav {
|
| 261 |
+
position: sticky;
|
| 262 |
+
position: -webkit-sticky;
|
| 263 |
+
}
|
| 264 |
+
|
| 265 |
+
aside .carousel__viewport > div,
|
| 266 |
+
aside .carousel__viewport > section,
|
| 267 |
+
aside .carousel__viewport__slide {
|
| 268 |
+
display: block;
|
| 269 |
+
height: 100%;
|
| 270 |
+
overflow-y: auto;
|
| 271 |
+
}
|
| 272 |
+
|
| 273 |
+
.carousel__viewport__slide__cover {
|
| 274 |
+
padding: unset;
|
| 275 |
+
height: unset;
|
| 276 |
+
}
|
| 277 |
+
|
| 278 |
+
.carousel__viewport__slide__cover img {
|
| 279 |
+
border-radius: 0;
|
| 280 |
+
padding: 0 1rem;
|
| 281 |
+
height: unset;
|
| 282 |
+
}
|
| 283 |
+
|
| 284 |
+
.carousel__viewport__slide__content {
|
| 285 |
+
padding: 0 1rem 5rem;
|
| 286 |
+
max-height: unset;
|
| 287 |
+
}
|
| 288 |
+
|
| 289 |
+
.carousel__viewport__slide__cover + .carousel__viewport__slide__content {
|
| 290 |
+
margin-bottom: 1rem;
|
| 291 |
+
}
|
| 292 |
+
|
| 293 |
+
.carousel__nav > ul.rounded {
|
| 294 |
+
padding: 1ex 0;
|
| 295 |
+
width: calc(100vw - 2rem);
|
| 296 |
+
text-align: right;
|
| 297 |
+
}
|
| 298 |
+
|
| 299 |
+
}
|
assets/css/component/column.css
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.column {
|
| 2 |
+
/* auto column count */
|
| 3 |
+
--col: 16rem;
|
| 4 |
+
display: block;
|
| 5 |
+
-webkit-column-gap: 1.618rem;
|
| 6 |
+
-moz-column-gap: 1.618rem;
|
| 7 |
+
column-gap: 1.618rem;
|
| 8 |
+
column-fill: balance;
|
| 9 |
+
-webkit-column-width: var(--col);
|
| 10 |
+
-moz-column-width: var(--col);
|
| 11 |
+
column-width: var(--col);
|
| 12 |
+
}
|
| 13 |
+
|
| 14 |
+
.column--multicols {
|
| 15 |
+
/* modify column count on element inline:
|
| 16 |
+
<e class='column column--multicols' style='--multicols:2'></e> */
|
| 17 |
+
--col: unset;
|
| 18 |
+
--multicols: 3;
|
| 19 |
+
-webkit-column-count: var(--multicols);
|
| 20 |
+
-moz-column-count: var(--multicols);
|
| 21 |
+
column-count: var(--multicols);
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
.column__span {
|
| 25 |
+
column-span: all;
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
.column > *,
|
| 29 |
+
.column__item {
|
| 30 |
+
margin-bottom: 1.618rem;
|
| 31 |
+
break-after: auto;
|
| 32 |
+
break-before: auto;
|
| 33 |
+
break-inside: avoid;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
.column img {
|
| 37 |
+
width: 100%;
|
| 38 |
+
height: auto;
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
.column.pin {
|
| 42 |
+
--col: 12rem;
|
| 43 |
+
}
|
| 44 |
+
|
| 45 |
+
.has-quote {
|
| 46 |
+
display: flex;
|
| 47 |
+
flex-direction: column-reverse;
|
| 48 |
+
color: var(--fg);
|
| 49 |
+
}
|
| 50 |
+
|
| 51 |
+
.has-quote::after {
|
| 52 |
+
margin: unset;
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
.has-quote > div {
|
| 56 |
+
margin-left: auto;
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
.has-quote > img {
|
| 60 |
+
margin: 1ex 0;
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
@media screen and (max-width: 640px) {
|
| 64 |
+
|
| 65 |
+
.column.pin {
|
| 66 |
+
--col: 10rem;
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
}
|
assets/css/component/fediverse.css
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/* this style is used inline in fediverse.js */
|
| 2 |
+
|
| 3 |
+
#comments > * {
|
| 4 |
+
width: var(--golden-ratio);
|
| 5 |
+
}
|
| 6 |
+
|
| 7 |
+
#comments noscript {
|
| 8 |
+
margin: var(--medskip) 0;
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
#discussion-starter {
|
| 12 |
+
margin-bottom: var(--medskip);
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
#discussion-starter > footer {
|
| 16 |
+
display: flex;
|
| 17 |
+
align-items: center;
|
| 18 |
+
justify-content: space-between;
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
.mastodon-comment {
|
| 22 |
+
margin: 1rem 0 1rem calc(var(--mul) * var(--indent));
|
| 23 |
+
border: 1pt solid #fff4;
|
| 24 |
+
border-left: 2pt solid var(--ac);
|
| 25 |
+
box-shadow: 0 0.5pt 1pt 0 var(--g18s);
|
| 26 |
+
background: #80808008;
|
| 27 |
+
padding: 1rem 1rem 1ex;
|
| 28 |
+
overflow: auto;
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
.mastodon-comment .content {
|
| 32 |
+
margin-left: 4rem;
|
| 33 |
+
line-height: calc(var(--baselineStretch) * 1.272);
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
.mastodon-comment .par a {
|
| 37 |
+
max-width: 100%;
|
| 38 |
+
vertical-align: bottom;
|
| 39 |
+
white-space: break-spaces;
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
.mastodon-comment .attachments * {
|
| 43 |
+
width: 100%;
|
| 44 |
+
height: auto;
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
.mastodon-comment > footer {
|
| 48 |
+
margin-top: 1rem;
|
| 49 |
+
margin-left: 3.5rem;
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
.mastodon-comment > footer .stat {
|
| 53 |
+
display: inline-flex;
|
| 54 |
+
flex-shrink: 0;
|
| 55 |
+
gap: 5pt;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
.stat a {
|
| 59 |
+
display: inline-flex;
|
| 60 |
+
align-items: center;
|
| 61 |
+
padding: 2pt;
|
| 62 |
+
color: var(--mid);
|
| 63 |
+
gap: 2pt;
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
.stat a::before {
|
| 67 |
+
vertical-align: text-top;
|
| 68 |
+
}
|
| 69 |
+
|
| 70 |
+
a.favourites.active {
|
| 71 |
+
color: var(--i3i);
|
| 72 |
+
}
|
| 73 |
+
|
| 74 |
+
.mastodon-comment .date {
|
| 75 |
+
margin-left: auto;
|
| 76 |
+
padding-left: 1rem;
|
| 77 |
+
color: var(--mid);
|
| 78 |
+
font-size: calc(10pt * var(--fontScale));;
|
| 79 |
+
}
|
| 80 |
+
|
| 81 |
+
@media only screen and (max-width: 960px) {
|
| 82 |
+
|
| 83 |
+
.mastodon-comment .content,
|
| 84 |
+
.mastodon-comment > footer {
|
| 85 |
+
margin-left: 0;
|
| 86 |
+
}
|
| 87 |
+
|
| 88 |
+
}
|
assets/css/component/hero.css
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*
|
| 2 |
+
<!----- V container ----->
|
| 3 |
+
<div class='has-carousel'>
|
| 4 |
+
<!--- H container --->
|
| 5 |
+
<div class='carousel'>
|
| 6 |
+
<div>---- <div>---- <div>---- <div>---- <div>----
|
| 7 |
+
| | | | | | | | | |
|
| 8 |
+
| | | | | | | | | |
|
| 9 |
+
| | | | | | | | | |
|
| 10 |
+
| | | | | | | | | |
|
| 11 |
+
---</div> | | ---</div> | | ---</div>
|
| 12 |
+
---</div> ---</div>
|
| 13 |
+
</div>
|
| 14 |
+
<div>
|
| 15 |
+
*/
|
| 16 |
+
.hero {
|
| 17 |
+
display: flex;
|
| 18 |
+
position: relative;
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
.hero__image {
|
| 22 |
+
display: flex;
|
| 23 |
+
position: -webkit-sticky;
|
| 24 |
+
position: sticky;
|
| 25 |
+
top: 0;
|
| 26 |
+
float: left;
|
| 27 |
+
height: calc(var(--vbody) - 14.8rem - 1rem - 2ex);
|
| 28 |
+
max-height: 1024px;
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
.hero > * {
|
| 32 |
+
width: 50%;
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
.hero img {
|
| 36 |
+
margin-left: auto;
|
| 37 |
+
padding: 2rem;
|
| 38 |
+
max-width: 100%;
|
| 39 |
+
max-height: calc(var(--vbody) - 14.8rem - 1rem - 2ex);
|
| 40 |
+
object-fit: cover;
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
.hero__content {
|
| 44 |
+
--col: 27rem;
|
| 45 |
+
padding: 2rem 0;
|
| 46 |
+
max-width: var(--col);
|
| 47 |
+
font-size: var(--small);
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
.hero__content h1,
|
| 51 |
+
.hero__content h2,
|
| 52 |
+
.hero__content h3 {
|
| 53 |
+
margin: 4pt 0;
|
| 54 |
+
font: italic var(--Large) var(--rm), serif;
|
| 55 |
+
line-height: 1.618;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
@media only screen and (max-width: 960px) {
|
| 59 |
+
|
| 60 |
+
.hero {
|
| 61 |
+
width: 100%;
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
@media only screen and (max-width: 640px) {
|
| 67 |
+
|
| 68 |
+
.hero {
|
| 69 |
+
display: flex;
|
| 70 |
+
flex-direction: column;
|
| 71 |
+
}
|
| 72 |
+
|
| 73 |
+
.hero > * {
|
| 74 |
+
align-self: center;
|
| 75 |
+
width: 86%;
|
| 76 |
+
}
|
| 77 |
+
|
| 78 |
+
.hero__image {
|
| 79 |
+
position: inherit;
|
| 80 |
+
width: unset;
|
| 81 |
+
height: unset;
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
}
|
| 85 |
+
|
| 86 |
+
@media only screen and (max-width: 480px) {
|
| 87 |
+
|
| 88 |
+
.hero img {
|
| 89 |
+
padding: 1rem;
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
}
|
assets/css/component/keyframe.css
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@keyframes ellipsis {
|
| 2 |
+
0% {content: '...';}
|
| 3 |
+
25% {content: '';}
|
| 4 |
+
50% {content: '.';}
|
| 5 |
+
100% {content: '..';}
|
| 6 |
+
}
|
| 7 |
+
|
| 8 |
+
@-webkit-keyframes ellipsis {
|
| 9 |
+
0% {content: '...';}
|
| 10 |
+
25% {content: '';}
|
| 11 |
+
50% {content: '.';}
|
| 12 |
+
100% {content: '..';}
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
@-webkit-keyframes idle {
|
| 16 |
+
from, to {border-color: var(--paper);}
|
| 17 |
+
50% {border-color: transparent;}
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
@keyframes idle {
|
| 21 |
+
from, to {border-color: var(--paper);}
|
| 22 |
+
50% {border-color: transparent;}
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
@-webkit-keyframes blinking {
|
| 26 |
+
from, to {visibility: visible;}
|
| 27 |
+
50% {visibility: hidden;}
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
@keyframes blinking {
|
| 31 |
+
from, to {visibility: visible;}
|
| 32 |
+
50% {visibility: hidden;}
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
@keyframes expand {
|
| 36 |
+
from {
|
| 37 |
+
-webkit-transform: scale(1 , 0);
|
| 38 |
+
-moz-transform: scale(1 , 0);
|
| 39 |
+
-ms-transform: scale(1 , 0);
|
| 40 |
+
-o-transform: scale(1 , 0);
|
| 41 |
+
transform: scale(1 , 0);
|
| 42 |
+
}
|
| 43 |
+
to {
|
| 44 |
+
-webkit-transform: scale(1 , 1);
|
| 45 |
+
-moz-transform: scale(1 , 1);
|
| 46 |
+
-ms-transform: scale(1 , 1);
|
| 47 |
+
-o-transform: scale(1 , 1);
|
| 48 |
+
transform: scale(1 , 1);
|
| 49 |
+
}
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
@-webkit-keyframes expand {
|
| 53 |
+
from {
|
| 54 |
+
-webkit-transform: scale(1 , 0);
|
| 55 |
+
transform: scale(1 , 0);
|
| 56 |
+
}
|
| 57 |
+
to {
|
| 58 |
+
-webkit-transform: scale(1 , 1);
|
| 59 |
+
transform: scale(1 , 1);
|
| 60 |
+
}
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
@media (prefers-reduced-motion) {
|
| 64 |
+
|
| 65 |
+
@keyframes expand {
|
| 66 |
+
from {
|
| 67 |
+
-webkit-transform: unset;
|
| 68 |
+
-moz-transform: unset;
|
| 69 |
+
-ms-transform: unset;
|
| 70 |
+
-o-transform: unset;
|
| 71 |
+
transform: unset;
|
| 72 |
+
}
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
@-webkit-keyframes expand {
|
| 76 |
+
from {
|
| 77 |
+
-webkit-transform: unset;
|
| 78 |
+
-moz-transform: unset;
|
| 79 |
+
-ms-transform: unset;
|
| 80 |
+
-o-transform: unset;
|
| 81 |
+
transform: unset;
|
| 82 |
+
}
|
| 83 |
+
}
|
| 84 |
+
|
| 85 |
+
}
|
assets/css/component/link.css
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
a {
|
| 2 |
+
text-decoration: none;
|
| 3 |
+
color: var(--ac);
|
| 4 |
+
}
|
| 5 |
+
|
| 6 |
+
#bionReadSwitch + label,
|
| 7 |
+
#join-discussion,
|
| 8 |
+
#saveButton,
|
| 9 |
+
#share,
|
| 10 |
+
a.cta {
|
| 11 |
+
border-radius: 2em;
|
| 12 |
+
background: var(--fg);
|
| 13 |
+
padding: 6pt 12pt;
|
| 14 |
+
color: var(--bg);
|
| 15 |
+
font-weight: 700;
|
| 16 |
+
text-align: center;
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
#has-a11y-summary,
|
| 20 |
+
a.underline {
|
| 21 |
+
border: 2pt solid transparent;
|
| 22 |
+
border-width: 0 0 2pt 0;
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
#to-top:focus,
|
| 26 |
+
#has-a11y-summary:hover,
|
| 27 |
+
#has-a11y-summary:focus,
|
| 28 |
+
#has-a11y[open] #has-a11y-summary,
|
| 29 |
+
a.underline:hover,
|
| 30 |
+
a.underline:focus {
|
| 31 |
+
--anm: underline 127ms ease-in;
|
| 32 |
+
border-color: var(--ac);
|
| 33 |
+
-webkit-animation: var(--anm);
|
| 34 |
+
-moz-animation: var(--anm);
|
| 35 |
+
-o-animation: var(--anm);
|
| 36 |
+
animation: var(--anm);
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
ul.rounded li {
|
| 40 |
+
margin: 0.5ex;
|
| 41 |
+
display: inline-block;
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
ul.rounded a {
|
| 45 |
+
display: inline-flex;
|
| 46 |
+
opacity: 0.86;
|
| 47 |
+
border: var(--border);
|
| 48 |
+
border-radius: 2rem;
|
| 49 |
+
background: #80808008;
|
| 50 |
+
padding: 0.5ex 1em;
|
| 51 |
+
color: var(--fg);
|
| 52 |
+
gap: 1pt;
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
ul.rounded a:hover {
|
| 56 |
+
border-color: #80808022;
|
| 57 |
+
box-shadow: var(--box-shadow-active);
|
| 58 |
+
background: #80808016;
|
| 59 |
+
}
|
| 60 |
+
|
| 61 |
+
ul.invert a {
|
| 62 |
+
opacity: 0.86;
|
| 63 |
+
border: unset;
|
| 64 |
+
background: var(--fg) !important;
|
| 65 |
+
color: var(--bg) !important;
|
| 66 |
+
}
|
| 67 |
+
|
| 68 |
+
ul.invert a:visited {
|
| 69 |
+
color: var(--bg);
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
ul.has-hash a {
|
| 73 |
+
text-transform: uppercase;
|
| 74 |
+
letter-spacing: 0.1rem;
|
| 75 |
+
font-size: 0.9em;
|
| 76 |
+
}
|
| 77 |
+
|
| 78 |
+
#term .section-title > .tag::before,
|
| 79 |
+
ul.has-hash a::before {
|
| 80 |
+
content: '#';
|
| 81 |
+
}
|
assets/css/component/logotype.css
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/* _____ _ _ _ ____ __ __
|
| 2 |
+
| ___| / \ | \ | | / ___| \ \ / /
|
| 3 |
+
| |_ / _ \ | \| | | | \ V /
|
| 4 |
+
| _| / ___ \ | |\ | | |___ | |
|
| 5 |
+
|_| /_/ \_\ |_| \_| \____| |_|
|
| 6 |
+
|
| 7 |
+
<svg id='logotype__svg'
|
| 8 |
+
xmlns...
|
| 9 |
+
width='<!--estimated width-->'
|
| 10 |
+
>
|
| 11 |
+
<text id='logotype__svg__text'y='74%'>
|
| 12 |
+
FANCY LOGOTYPE
|
| 13 |
+
</text>
|
| 14 |
+
</svg>
|
| 15 |
+
|
| 16 |
+
simplified from :
|
| 17 |
+
https://codepen.io/alvarotrigo/pen/rNbxNWg */
|
| 18 |
+
|
| 19 |
+
#logo {
|
| 20 |
+
--h: calc(3.33rem - 10pt);
|
| 21 |
+
display: flex;
|
| 22 |
+
align-items: center;
|
| 23 |
+
justify-content: center;
|
| 24 |
+
margin: 5pt 0;
|
| 25 |
+
height: var(--h);
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
#logo > * {
|
| 29 |
+
height: var(--h);
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
#logo #logotype__text {
|
| 33 |
+
--anm: dash 30s infinite alternate;
|
| 34 |
+
text-transform: uppercase;
|
| 35 |
+
letter-spacing: 0.2ex;
|
| 36 |
+
font-family: var(--sf), sans-serif;
|
| 37 |
+
font-size: calc(27pt * var(--fontScale));
|
| 38 |
+
font-weight: 700;
|
| 39 |
+
stroke: var(--off);
|
| 40 |
+
stroke-width: 1px;
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
#logo:focus #logotype__text {
|
| 44 |
+
--anm: unset;
|
| 45 |
+
outline-color: var(--off);
|
| 46 |
+
stroke: none;
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
@-webkit-keyframes dash {
|
| 50 |
+
0% {
|
| 51 |
+
fill:var(--off);
|
| 52 |
+
stroke-dasharray: 0 50%;
|
| 53 |
+
stroke-dashoffset: 20%;
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
100% {
|
| 57 |
+
fill: #0000;
|
| 58 |
+
stroke-dasharray: 50% 0;
|
| 59 |
+
stroke-dashoffset: -20%;
|
| 60 |
+
}
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
@keyframes dash {
|
| 64 |
+
0% {
|
| 65 |
+
fill: var(--off);
|
| 66 |
+
stroke-dasharray: 0 50%;
|
| 67 |
+
stroke-dashoffset: 20%;
|
| 68 |
+
}
|
| 69 |
+
|
| 70 |
+
100% {
|
| 71 |
+
fill: #0000;
|
| 72 |
+
stroke-dasharray: 50% 0;
|
| 73 |
+
stroke-dashoffset: -20%;
|
| 74 |
+
}
|
| 75 |
+
}
|
| 76 |
+
|
| 77 |
+
/* logomark default */
|
| 78 |
+
|
| 79 |
+
#logomark--dark + #logomark {
|
| 80 |
+
display: inline-block;
|
| 81 |
+
}
|
| 82 |
+
|
| 83 |
+
@media (prefers-color-scheme: light) {
|
| 84 |
+
|
| 85 |
+
#logomark--dark {
|
| 86 |
+
display: none;
|
| 87 |
+
}
|
| 88 |
+
|
| 89 |
+
#logomark--dark + #logomark {
|
| 90 |
+
display: inline-block;
|
| 91 |
+
}
|
| 92 |
+
|
| 93 |
+
}
|
| 94 |
+
|
| 95 |
+
@media (prefers-color-scheme: dark) {
|
| 96 |
+
|
| 97 |
+
#logomark--dark {
|
| 98 |
+
display: inline-block;
|
| 99 |
+
}
|
| 100 |
+
|
| 101 |
+
#logomark--dark + #logomark {
|
| 102 |
+
display: none;
|
| 103 |
+
}
|
| 104 |
+
|
| 105 |
+
}
|
assets/css/component/marginpar.css
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.marginpar {
|
| 2 |
+
left: var(--golden-ratio);
|
| 3 |
+
margin-right: 0;
|
| 4 |
+
margin-left: calc(var(--marginparwidth) * -1);
|
| 5 |
+
font-size: var(--small);
|
| 6 |
+
font-style: italic;
|
| 7 |
+
}
|
| 8 |
+
|
| 9 |
+
.marginpar.abs {
|
| 10 |
+
/* will ignore clear attribute */
|
| 11 |
+
position: absolute;
|
| 12 |
+
right: var(--void);
|
| 13 |
+
left: unset;
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
.marginpar-ctrl,
|
| 17 |
+
.marginpar-ctrl + label::before {
|
| 18 |
+
position: absolute;
|
| 19 |
+
top: -100vh;
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
@media screen and (max-width: 640px) {
|
| 23 |
+
|
| 24 |
+
.marginpar-ctrl + label {
|
| 25 |
+
display: inline-flex;
|
| 26 |
+
padding: 2pt;
|
| 27 |
+
}
|
| 28 |
+
|
| 29 |
+
.marginpar-ctrl + label::before {
|
| 30 |
+
position: unset;
|
| 31 |
+
display: block !important;
|
| 32 |
+
left: 0;
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
.marginpar-ctrl:checked + label::before {
|
| 36 |
+
--anm: unset;
|
| 37 |
+
color: var(--ac);
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
.marginpar {
|
| 41 |
+
display: none;
|
| 42 |
+
float: unset;
|
| 43 |
+
}
|
| 44 |
+
|
| 45 |
+
.marginpar-ctrl:checked + label + .marginpar {
|
| 46 |
+
display: block;
|
| 47 |
+
position: unset;
|
| 48 |
+
margin: 1ex 0;
|
| 49 |
+
}
|
| 50 |
+
|
| 51 |
+
}
|
assets/css/component/menu.css
ADDED
|
@@ -0,0 +1,560 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
ul.delimiter,
|
| 2 |
+
ul.breadcrumb,
|
| 3 |
+
nav > ul,
|
| 4 |
+
ul[role=presentation] {
|
| 5 |
+
margin: 0;
|
| 6 |
+
list-style: none;
|
| 7 |
+
font-size: inherit;
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
ul.delimiter,
|
| 11 |
+
ul.delimiter li,
|
| 12 |
+
ul.inline,
|
| 13 |
+
ul.inline li,
|
| 14 |
+
nav > ul,
|
| 15 |
+
nav > ul > li {
|
| 16 |
+
display: inline;
|
| 17 |
+
padding: 0;
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
/* container */
|
| 21 |
+
|
| 22 |
+
body > header,
|
| 23 |
+
body > header > nav {
|
| 24 |
+
display: flex;
|
| 25 |
+
z-index: 2;
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
#top-nav {
|
| 29 |
+
margin-left: auto;
|
| 30 |
+
font-weight: bold;
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
#top-nav[open],
|
| 34 |
+
#has-main-menu {
|
| 35 |
+
flex: 1;
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
#top-nav > nav {
|
| 39 |
+
display: flex;
|
| 40 |
+
justify-content: flex-end;
|
| 41 |
+
gap: 1ex;
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
#logo + #top-nav #main-menu,
|
| 45 |
+
#logo + #top-nav #main-menu .l1 {
|
| 46 |
+
/* flush item to right-end when logotype on the left */
|
| 47 |
+
justify-content: flex-end;
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
#main-menu .l1 {
|
| 51 |
+
display: flex;
|
| 52 |
+
gap: 1ex;
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
/* menu icon */
|
| 56 |
+
|
| 57 |
+
.menu-icon::before {
|
| 58 |
+
content: '\e90b';
|
| 59 |
+
font-family: 'base-ui';
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
.keydown .menu-icon::before {
|
| 63 |
+
border: var(--border);
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
#has-more-menu > summary {
|
| 67 |
+
width: 43pt;
|
| 68 |
+
}
|
| 69 |
+
|
| 70 |
+
#has-a11y[open] > summary .icon::before,
|
| 71 |
+
#has-search[open] .icon::before,
|
| 72 |
+
details[open] > summary > .menu-icon::before {
|
| 73 |
+
--anm: blinking 2s step-end infinite;
|
| 74 |
+
color: var(--ac);
|
| 75 |
+
}
|
| 76 |
+
|
| 77 |
+
/* on 'hull' viewport */
|
| 78 |
+
|
| 79 |
+
#i18n-menu,
|
| 80 |
+
#more-menu,
|
| 81 |
+
.on-hull,
|
| 82 |
+
.screening {
|
| 83 |
+
/* 'hull' --vbody container */
|
| 84 |
+
position: fixed;
|
| 85 |
+
top: var(--vhead);
|
| 86 |
+
left: 0;
|
| 87 |
+
width: 100vw;
|
| 88 |
+
height: var(--vbody);
|
| 89 |
+
}
|
| 90 |
+
|
| 91 |
+
.screening {
|
| 92 |
+
/* obscure main body */
|
| 93 |
+
--blur: blur(0.2vmin);
|
| 94 |
+
--dim: brightness(0.96);
|
| 95 |
+
z-index: -1;
|
| 96 |
+
background-color: #80808008;
|
| 97 |
+
-webkit-backdrop-filter: var(--blur) var(--dim);
|
| 98 |
+
backdrop-filter: var(--blur) var(--dim);
|
| 99 |
+
}
|
| 100 |
+
|
| 101 |
+
/* item on 'deck' */
|
| 102 |
+
|
| 103 |
+
.on-deck,
|
| 104 |
+
a#has-i18n {
|
| 105 |
+
display: flex;
|
| 106 |
+
align-items: center;
|
| 107 |
+
justify-content: center;
|
| 108 |
+
margin: auto 0;
|
| 109 |
+
padding: unset;
|
| 110 |
+
min-width: var(--vhead);
|
| 111 |
+
height: calc(var(--vhead) - 12pt);
|
| 112 |
+
max-height: 4.2rem;
|
| 113 |
+
}
|
| 114 |
+
|
| 115 |
+
#has-i18n > .on-deck {
|
| 116 |
+
padding: 0 1ex;
|
| 117 |
+
width: unset;
|
| 118 |
+
}
|
| 119 |
+
|
| 120 |
+
/* item on 'plank' */
|
| 121 |
+
|
| 122 |
+
.on-plank {
|
| 123 |
+
/* add on-plank */
|
| 124 |
+
display: flex;
|
| 125 |
+
flex-direction: column;
|
| 126 |
+
border: var(--border);
|
| 127 |
+
border-radius: 1ex;
|
| 128 |
+
background: var(--bg);
|
| 129 |
+
padding: 1.414ex;
|
| 130 |
+
width: fit-content;
|
| 131 |
+
max-height: calc(var(--vbody) - 2rem);
|
| 132 |
+
overflow-y: auto;
|
| 133 |
+
gap: 1ex;
|
| 134 |
+
}
|
| 135 |
+
|
| 136 |
+
.on-plank ul {
|
| 137 |
+
display: flex;
|
| 138 |
+
flex-direction: column;
|
| 139 |
+
margin: 0 1ex;
|
| 140 |
+
border-right: var(--bound);
|
| 141 |
+
padding: 1ex;
|
| 142 |
+
gap: 1ex;
|
| 143 |
+
}
|
| 144 |
+
|
| 145 |
+
details[open] .on-plank,
|
| 146 |
+
.l1 details[open] > ul,
|
| 147 |
+
.marginpar-ctrl:checked + label + .marginpar {
|
| 148 |
+
--anm: expand 99ms forwards;
|
| 149 |
+
--tso: top;
|
| 150 |
+
}
|
| 151 |
+
|
| 152 |
+
#main-menu .on-plank {
|
| 153 |
+
position: fixed;
|
| 154 |
+
top: calc(var(--vhead) + 1rem);
|
| 155 |
+
max-width: 20rem;
|
| 156 |
+
translate: -1.414ex;
|
| 157 |
+
}
|
| 158 |
+
|
| 159 |
+
#i18n-menu > .on-plank,
|
| 160 |
+
#more-menu > .on-plank {
|
| 161 |
+
/* .on-hull > .on-plank */
|
| 162 |
+
margin: 1rem var(--void) 1rem auto;
|
| 163 |
+
max-width: var(--max-width);
|
| 164 |
+
}
|
| 165 |
+
|
| 166 |
+
/* visible menu item */
|
| 167 |
+
|
| 168 |
+
#has-l10n a,
|
| 169 |
+
#top-nav a,
|
| 170 |
+
.anchor {
|
| 171 |
+
display: flex;
|
| 172 |
+
align-items: baseline;
|
| 173 |
+
border: 2pt solid transparent;
|
| 174 |
+
border-width: 0 0 2pt 0;
|
| 175 |
+
padding: 1ex;
|
| 176 |
+
width: 100%;
|
| 177 |
+
color: var(--fg);
|
| 178 |
+
}
|
| 179 |
+
|
| 180 |
+
#top-nav a > .icon::after {
|
| 181 |
+
content: '\a0';
|
| 182 |
+
}
|
| 183 |
+
|
| 184 |
+
#top-nav a.has-desc {
|
| 185 |
+
flex-direction: column;
|
| 186 |
+
}
|
| 187 |
+
|
| 188 |
+
.anchor {
|
| 189 |
+
align-items: center;
|
| 190 |
+
}
|
| 191 |
+
|
| 192 |
+
#has-l10n a:hover,
|
| 193 |
+
#has-l10n a:focus,
|
| 194 |
+
#top-nav a:hover,
|
| 195 |
+
#top-nav a:focus,
|
| 196 |
+
.anchor:hover,
|
| 197 |
+
.anchor:focus {
|
| 198 |
+
--anm: underline 127ms ease-in;
|
| 199 |
+
color: var(--ac);
|
| 200 |
+
border-color: var(--ac);
|
| 201 |
+
}
|
| 202 |
+
|
| 203 |
+
@-webkit-keyframes underline {
|
| 204 |
+
from {
|
| 205 |
+
border-image: linear-gradient(to right, var(--ac), transparent 100%) 1;
|
| 206 |
+
}
|
| 207 |
+
|
| 208 |
+
50% {
|
| 209 |
+
border-image: linear-gradient(to right, var(--ac), transparent 50%) 1;
|
| 210 |
+
}
|
| 211 |
+
|
| 212 |
+
to {
|
| 213 |
+
border-image: linear-gradient(to right, var(--ac), transparent 0%) 1;
|
| 214 |
+
}
|
| 215 |
+
}
|
| 216 |
+
|
| 217 |
+
@keyframes underline {
|
| 218 |
+
from {
|
| 219 |
+
border-image: linear-gradient(to right, transparent, transparent) 1;
|
| 220 |
+
}
|
| 221 |
+
|
| 222 |
+
50% {
|
| 223 |
+
border-image: linear-gradient(to right, var(--ac), transparent) 1;
|
| 224 |
+
}
|
| 225 |
+
|
| 226 |
+
to {
|
| 227 |
+
border-image: linear-gradient(to right, var(--ac), var(--ac)) 1;
|
| 228 |
+
}
|
| 229 |
+
}
|
| 230 |
+
|
| 231 |
+
.marginpar-ctrl + label::before,
|
| 232 |
+
.anchor:after {
|
| 233 |
+
/* add indicator [v] */
|
| 234 |
+
--tst: 200ms ease-out;
|
| 235 |
+
position: relative;
|
| 236 |
+
top: 0.23em;
|
| 237 |
+
left: 0.43em;
|
| 238 |
+
margin-left: auto;
|
| 239 |
+
background: linear-gradient(to top, transparent 49%, var(--g18) 51%);
|
| 240 |
+
-webkit-background-clip: text;
|
| 241 |
+
background-clip: text;
|
| 242 |
+
color: transparent;
|
| 243 |
+
font: 8pt 'base-ui';
|
| 244 |
+
content: '\e913';
|
| 245 |
+
}
|
| 246 |
+
|
| 247 |
+
.anchor:hover::after {
|
| 248 |
+
background: linear-gradient(to top, transparent 49%, var(--ac) 51%);
|
| 249 |
+
-webkit-background-clip: text;
|
| 250 |
+
background-clip: text;
|
| 251 |
+
color: transparent;
|
| 252 |
+
}
|
| 253 |
+
|
| 254 |
+
#has-i18n .anchor::after {
|
| 255 |
+
left: unset;
|
| 256 |
+
}
|
| 257 |
+
|
| 258 |
+
.marginpar-ctrl:checked + label::before,
|
| 259 |
+
details[open] > .anchor:after {
|
| 260 |
+
/* change indicator state [x] */
|
| 261 |
+
--anm: blinking 3s step-end infinite;
|
| 262 |
+
background: unset;
|
| 263 |
+
top: 0;
|
| 264 |
+
color: var(--g18);
|
| 265 |
+
}
|
| 266 |
+
|
| 267 |
+
details[open] > .anchor.on-deck:after {
|
| 268 |
+
/* make opened <details> element more prominent */
|
| 269 |
+
color: red;
|
| 270 |
+
}
|
| 271 |
+
|
| 272 |
+
/* bilingual */
|
| 273 |
+
|
| 274 |
+
a#has-i18n {
|
| 275 |
+
width: auto;
|
| 276 |
+
font-weight: 700;
|
| 277 |
+
font-size: 0.9em;
|
| 278 |
+
gap: 3pt;
|
| 279 |
+
}
|
| 280 |
+
|
| 281 |
+
a#has-i18n > .alt,
|
| 282 |
+
a#has-i18n:hover > .act,
|
| 283 |
+
a#has-i18n:focus > .act,
|
| 284 |
+
a#has-i18n:active > .act {
|
| 285 |
+
/* active/current language */
|
| 286 |
+
color: var(--g18);
|
| 287 |
+
}
|
| 288 |
+
|
| 289 |
+
a#has-i18n:hover > .alt,
|
| 290 |
+
a#has-i18n:focus > .alt,
|
| 291 |
+
a#has-i18n:active > .alt {
|
| 292 |
+
/* alternate language */
|
| 293 |
+
color: var(--fg);
|
| 294 |
+
}
|
| 295 |
+
|
| 296 |
+
/* multilingual */
|
| 297 |
+
|
| 298 |
+
#has-i18n .on-deck {
|
| 299 |
+
gap: 3pt;
|
| 300 |
+
}
|
| 301 |
+
|
| 302 |
+
#has-l10n {
|
| 303 |
+
display: inline-block;
|
| 304 |
+
}
|
| 305 |
+
|
| 306 |
+
#has-l10n summary {
|
| 307 |
+
display: block !important;
|
| 308 |
+
padding: 3.5pt 1.4ex 3.5pt 3.5pt;
|
| 309 |
+
font-size: 0.9em;
|
| 310 |
+
}
|
| 311 |
+
|
| 312 |
+
#has-l10n > summary::before {
|
| 313 |
+
font-family: 'base-ui';
|
| 314 |
+
content: '\e90a\a0';
|
| 315 |
+
}
|
| 316 |
+
|
| 317 |
+
#has-l10n a,
|
| 318 |
+
#i18n-menu a {
|
| 319 |
+
align-items: center;
|
| 320 |
+
gap: 1ex;
|
| 321 |
+
}
|
| 322 |
+
|
| 323 |
+
#has-l10n img,
|
| 324 |
+
#has-i18n img {
|
| 325 |
+
border-radius: 2pt;
|
| 326 |
+
width: auto;
|
| 327 |
+
height: 8pt;
|
| 328 |
+
object-fit: cover;
|
| 329 |
+
}
|
| 330 |
+
|
| 331 |
+
#has-l10n .on-plank {
|
| 332 |
+
position: absolute;
|
| 333 |
+
z-index: 1;
|
| 334 |
+
margin-top: 1ex;
|
| 335 |
+
border: var(--border);
|
| 336 |
+
background: var(--bg);
|
| 337 |
+
width: auto;
|
| 338 |
+
}
|
| 339 |
+
|
| 340 |
+
.parent-anchor a::after,
|
| 341 |
+
#i18n-menu a::after,
|
| 342 |
+
#content a::after {
|
| 343 |
+
--tsf: rotate(45deg);
|
| 344 |
+
display: inline-block;
|
| 345 |
+
margin-top: 0.3em;
|
| 346 |
+
margin-left: auto;
|
| 347 |
+
font: 0.7em 'base-ui';
|
| 348 |
+
content: '\e902';
|
| 349 |
+
}
|
| 350 |
+
|
| 351 |
+
.parent-anchor a::after,
|
| 352 |
+
#i18n-menu a::after {
|
| 353 |
+
color: var(--g18);
|
| 354 |
+
}
|
| 355 |
+
|
| 356 |
+
.hero nav a {
|
| 357 |
+
color: var(--fg);
|
| 358 |
+
position: relative;
|
| 359 |
+
}
|
| 360 |
+
|
| 361 |
+
.hero nav .t {
|
| 362 |
+
top: 150%;
|
| 363 |
+
}
|
| 364 |
+
|
| 365 |
+
.hero nav a .icon {
|
| 366 |
+
display: inline-flex;
|
| 367 |
+
margin: 2pt;
|
| 368 |
+
padding: 6pt;
|
| 369 |
+
font-size: var(--large);
|
| 370 |
+
}
|
| 371 |
+
|
| 372 |
+
@media only screen and (max-width: 640px) {
|
| 373 |
+
|
| 374 |
+
/* container behaviour */
|
| 375 |
+
|
| 376 |
+
#top-nav * {
|
| 377 |
+
outline: none !important;
|
| 378 |
+
}
|
| 379 |
+
|
| 380 |
+
#top-nav[open] > nav {
|
| 381 |
+
--anm: expand 99ms forwards;
|
| 382 |
+
--tso: top;
|
| 383 |
+
}
|
| 384 |
+
|
| 385 |
+
#main-menu {
|
| 386 |
+
display: unset;
|
| 387 |
+
}
|
| 388 |
+
|
| 389 |
+
#main-menu .l1 {
|
| 390 |
+
flex-direction: column;
|
| 391 |
+
}
|
| 392 |
+
|
| 393 |
+
/* swap menu-icon */
|
| 394 |
+
|
| 395 |
+
#top-nav > summary,
|
| 396 |
+
#top-nav[open] > summary {
|
| 397 |
+
display: flex !important;
|
| 398 |
+
margin-left: auto;
|
| 399 |
+
width: 43pt;
|
| 400 |
+
}
|
| 401 |
+
|
| 402 |
+
#has-more-menu > summary {
|
| 403 |
+
width: 100%;
|
| 404 |
+
}
|
| 405 |
+
|
| 406 |
+
#has-more-menu .t,
|
| 407 |
+
#has-search .t {
|
| 408 |
+
display: initial;
|
| 409 |
+
position: unset;
|
| 410 |
+
visibility: unset;
|
| 411 |
+
background: unset;
|
| 412 |
+
width: 100%;
|
| 413 |
+
color: inherit;
|
| 414 |
+
font: inherit;
|
| 415 |
+
}
|
| 416 |
+
|
| 417 |
+
/* swap screen element */
|
| 418 |
+
|
| 419 |
+
#top-nav-screen.screening {
|
| 420 |
+
display: block;
|
| 421 |
+
background-color: var(--bg);
|
| 422 |
+
backdrop-filter: blur(5vmin);
|
| 423 |
+
}
|
| 424 |
+
|
| 425 |
+
/* swap hull element */
|
| 426 |
+
|
| 427 |
+
#top-nav > nav {
|
| 428 |
+
position: fixed;
|
| 429 |
+
top: var(--vhead);
|
| 430 |
+
left: 0;
|
| 431 |
+
flex-direction: column;
|
| 432 |
+
justify-content: unset;
|
| 433 |
+
z-index: 3;
|
| 434 |
+
padding: 1.414ex;
|
| 435 |
+
width: 100vw;
|
| 436 |
+
height: var(--vbody);
|
| 437 |
+
overflow-y: auto;
|
| 438 |
+
}
|
| 439 |
+
|
| 440 |
+
#i18n-menu,
|
| 441 |
+
#more-menu,
|
| 442 |
+
#hasDuckDuckGo,
|
| 443 |
+
#main-menu .on-plank {
|
| 444 |
+
/* also unset main menu plank */
|
| 445 |
+
position: unset;
|
| 446 |
+
width: unset;
|
| 447 |
+
max-width: unset;
|
| 448 |
+
height: unset;
|
| 449 |
+
}
|
| 450 |
+
|
| 451 |
+
/* reorder hull item */
|
| 452 |
+
|
| 453 |
+
#has-search {
|
| 454 |
+
order: 1;
|
| 455 |
+
}
|
| 456 |
+
|
| 457 |
+
#has-main-menu {
|
| 458 |
+
flex: unset;
|
| 459 |
+
order: 2;
|
| 460 |
+
}
|
| 461 |
+
|
| 462 |
+
#has-more-menu {
|
| 463 |
+
order: 3;
|
| 464 |
+
}
|
| 465 |
+
|
| 466 |
+
#has-i18n {
|
| 467 |
+
order: 4;
|
| 468 |
+
margin: auto 1ex 2rem;
|
| 469 |
+
}
|
| 470 |
+
|
| 471 |
+
/* redefine deck element */
|
| 472 |
+
|
| 473 |
+
#top-nav > nav .on-deck {
|
| 474 |
+
justify-content: unset;
|
| 475 |
+
height: unset;
|
| 476 |
+
}
|
| 477 |
+
|
| 478 |
+
#top-nav > nav #has-i18n .on-deck {
|
| 479 |
+
padding: 1ex;
|
| 480 |
+
}
|
| 481 |
+
|
| 482 |
+
/* swap plank element */
|
| 483 |
+
|
| 484 |
+
.on-plank {
|
| 485 |
+
border: unset;
|
| 486 |
+
background: unset;
|
| 487 |
+
min-width: unset;
|
| 488 |
+
max-height: unset;
|
| 489 |
+
}
|
| 490 |
+
|
| 491 |
+
#main-menu .on-plank {
|
| 492 |
+
margin: 0 1ex;
|
| 493 |
+
border-right: var(--bound);
|
| 494 |
+
border-radius: 0;
|
| 495 |
+
padding: 1ex;
|
| 496 |
+
translate: unset;
|
| 497 |
+
}
|
| 498 |
+
|
| 499 |
+
#i18n-menu > .on-plank ,
|
| 500 |
+
#more-menu > .on-plank {
|
| 501 |
+
/* .on-hull > .on-plank */
|
| 502 |
+
margin: unset;
|
| 503 |
+
padding: 0;
|
| 504 |
+
width: 100%;
|
| 505 |
+
}
|
| 506 |
+
|
| 507 |
+
#has-main-menu,
|
| 508 |
+
#has-more-menu,
|
| 509 |
+
#has-search {
|
| 510 |
+
/* make as plank */
|
| 511 |
+
margin: 1ex;
|
| 512 |
+
border: var(--border);
|
| 513 |
+
border-radius: 1ex;
|
| 514 |
+
background: var(--bg);
|
| 515 |
+
padding: 1ex;
|
| 516 |
+
}
|
| 517 |
+
|
| 518 |
+
details[open] > .anchor.on-deck:after {
|
| 519 |
+
color: var(--g18);
|
| 520 |
+
}
|
| 521 |
+
|
| 522 |
+
/* bilingual */
|
| 523 |
+
|
| 524 |
+
a#has-i18n::after {
|
| 525 |
+
margin: 0 auto 0 1.5ex;
|
| 526 |
+
content: attr(aria-label);
|
| 527 |
+
}
|
| 528 |
+
|
| 529 |
+
a#has-i18n > img {
|
| 530 |
+
display: initial;
|
| 531 |
+
}
|
| 532 |
+
|
| 533 |
+
/* multilingual */
|
| 534 |
+
|
| 535 |
+
#has-i18n img {
|
| 536 |
+
height: 12pt;
|
| 537 |
+
}
|
| 538 |
+
|
| 539 |
+
#i18n-menu {
|
| 540 |
+
margin-top: 1ex;
|
| 541 |
+
}
|
| 542 |
+
|
| 543 |
+
.languangeName {
|
| 544 |
+
display: block !important;
|
| 545 |
+
margin-left: 0.5ex;
|
| 546 |
+
}
|
| 547 |
+
|
| 548 |
+
/* hide desktop element */
|
| 549 |
+
|
| 550 |
+
#top-nav > nav .screening,
|
| 551 |
+
#top-nav > summary > .t,
|
| 552 |
+
#has-search[open] > summary,
|
| 553 |
+
#has-more-menu[open] > summary,
|
| 554 |
+
#has-more-menu .menu-icon,
|
| 555 |
+
#has-search .icon,
|
| 556 |
+
.iso639 {
|
| 557 |
+
display: none;
|
| 558 |
+
}
|
| 559 |
+
|
| 560 |
+
}
|
assets/css/component/search.css
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#has-search > summary::before {
|
| 2 |
+
padding: 0 1ex;
|
| 3 |
+
font-family: 'base-ui';
|
| 4 |
+
font-weight: 400;
|
| 5 |
+
content: '\e911';
|
| 6 |
+
}
|
| 7 |
+
|
| 8 |
+
#duckduckgo,
|
| 9 |
+
.pagefind-ui {
|
| 10 |
+
margin: 1rem var(--void) 1rem auto;
|
| 11 |
+
width: calc(var(--marginparwidth) - 1rem);
|
| 12 |
+
min-width: 17rem;
|
| 13 |
+
max-height: calc(var(--vbody) - 2rem);
|
| 14 |
+
font-weight: normal;
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
.pagefind-ui {
|
| 18 |
+
display: flex;
|
| 19 |
+
flex-direction: column;
|
| 20 |
+
border: var(--border);
|
| 21 |
+
border-radius: 1ex;
|
| 22 |
+
background: var(--bg);
|
| 23 |
+
padding: 1.414ex;
|
| 24 |
+
overflow-y: auto;
|
| 25 |
+
gap: 1ex;
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
#has-search[open] > summary > .t,
|
| 29 |
+
.pagefind-ui__search-clear {
|
| 30 |
+
display: none;
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
.pagefind-ui__drawer p {
|
| 34 |
+
margin: 0;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
#duckduckgo {
|
| 38 |
+
flex-direction: row;
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
.form {
|
| 42 |
+
align-items: center;
|
| 43 |
+
}
|
| 44 |
+
|
| 45 |
+
/* the search box */
|
| 46 |
+
|
| 47 |
+
.form__input {
|
| 48 |
+
flex: 1;
|
| 49 |
+
border: none;
|
| 50 |
+
border-radius: 2rem 0 0 2rem;
|
| 51 |
+
background: none;
|
| 52 |
+
padding: 0;
|
| 53 |
+
padding-left: 1em;
|
| 54 |
+
color: var(--fg);
|
| 55 |
+
font-family: var(--sf), sans-serif;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
#duckduckgo .form__input {
|
| 59 |
+
--ac: #de5833;
|
| 60 |
+
flex: 1;
|
| 61 |
+
border-bottom: 2pt solid var(--g18s);
|
| 62 |
+
border-radius: 0.25ex;
|
| 63 |
+
padding: 1ex;
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
.pagefind-ui__search-input:hover,
|
| 67 |
+
.pagefind-ui__search-input:focus,
|
| 68 |
+
#duckduckgo .form__input:hover,
|
| 69 |
+
#duckduckgo .form__input:focus {
|
| 70 |
+
--anm: underline 127ms ease-in;
|
| 71 |
+
outline: none !important;
|
| 72 |
+
border-color: var(--ac);
|
| 73 |
+
-webkit-animation: var(--anm);
|
| 74 |
+
-moz-animation: var(--anm);
|
| 75 |
+
-o-animation: var(--anm);
|
| 76 |
+
animation: var(--anm);
|
| 77 |
+
}
|
| 78 |
+
|
| 79 |
+
/* the search button */
|
| 80 |
+
|
| 81 |
+
.pagefind-ui__button,
|
| 82 |
+
.form__reset,
|
| 83 |
+
.form__button {
|
| 84 |
+
display: inline-flex;
|
| 85 |
+
position: relative;
|
| 86 |
+
border: none;
|
| 87 |
+
border-radius: 0 50% 50% 0;
|
| 88 |
+
background: none;
|
| 89 |
+
padding: 0;
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
#duckduckgo .form__button,
|
| 93 |
+
#duckduckgo .form__button > img {
|
| 94 |
+
width: 2rem;
|
| 95 |
+
height: 2rem;
|
| 96 |
+
}
|
| 97 |
+
|
| 98 |
+
#duckduckgo .form__input:hover + .form__button,
|
| 99 |
+
#duckduckgo .form__input:focus + .form__button {
|
| 100 |
+
--tsf: scaleX(-1);
|
| 101 |
+
}
|
| 102 |
+
|
| 103 |
+
#duckduckgo .form__button:hover,
|
| 104 |
+
#duckduckgo .form__button:focus {
|
| 105 |
+
--tsf: scale(1.1);
|
| 106 |
+
}
|
| 107 |
+
|
| 108 |
+
.form:invalid .form__reset {
|
| 109 |
+
opacity: 0;
|
| 110 |
+
pointer-events: none;
|
| 111 |
+
}
|
| 112 |
+
|
| 113 |
+
.form:valid .form__reset {
|
| 114 |
+
opacity: 1;
|
| 115 |
+
pointer-events: all;
|
| 116 |
+
}
|
| 117 |
+
|
| 118 |
+
/* additional pagefind styles */
|
| 119 |
+
|
| 120 |
+
.pagefind-ui__form {
|
| 121 |
+
display: flex;
|
| 122 |
+
flex-direction: column;
|
| 123 |
+
gap: 1ex;
|
| 124 |
+
}
|
| 125 |
+
|
| 126 |
+
.pagefind-ui__search-input {
|
| 127 |
+
margin: 1ex 1ex 0.5ex;
|
| 128 |
+
border: 0;
|
| 129 |
+
border-bottom: 2pt solid var(--g18s);
|
| 130 |
+
background: none;
|
| 131 |
+
padding: 1ex !important;
|
| 132 |
+
color: var(--fg);
|
| 133 |
+
}
|
| 134 |
+
|
| 135 |
+
.pagefind-ui__drawer {
|
| 136 |
+
margin: 0 1ex;
|
| 137 |
+
padding: 0 1ex;
|
| 138 |
+
}
|
| 139 |
+
|
| 140 |
+
p.pagefind-ui__message {
|
| 141 |
+
margin: 1ex 0;
|
| 142 |
+
}
|
| 143 |
+
|
| 144 |
+
.pagefind-ui__result-excerpt {
|
| 145 |
+
color: var(--mid);
|
| 146 |
+
font-size: var(--small);
|
| 147 |
+
}
|
| 148 |
+
|
| 149 |
+
ol.pagefind-ui__results {
|
| 150 |
+
margin: 0;
|
| 151 |
+
padding: 0;
|
| 152 |
+
list-style: none;
|
| 153 |
+
}
|
| 154 |
+
|
| 155 |
+
.pagefind-ui__result {
|
| 156 |
+
margin-bottom: 1rem;
|
| 157 |
+
}
|
| 158 |
+
|
| 159 |
+
a.pagefind-ui__result-link {
|
| 160 |
+
border-bottom: 0 !important;
|
| 161 |
+
padding: 1ex 1ex 0.5ex !important;
|
| 162 |
+
font-weight: 700;
|
| 163 |
+
}
|
| 164 |
+
|
| 165 |
+
.pagefind-ui__result-excerpt {
|
| 166 |
+
padding: 0 1ex;
|
| 167 |
+
font-size: 0.9em;
|
| 168 |
+
}
|
| 169 |
+
|
| 170 |
+
@media only screen and (max-width: 640px) {
|
| 171 |
+
|
| 172 |
+
#has-search .on-deck {
|
| 173 |
+
flex-direction: row-reverse;
|
| 174 |
+
}
|
| 175 |
+
|
| 176 |
+
#has-search .t {
|
| 177 |
+
padding: 1ex;
|
| 178 |
+
text-align: unset;
|
| 179 |
+
}
|
| 180 |
+
|
| 181 |
+
#search,
|
| 182 |
+
#hasDuckDuckGo {
|
| 183 |
+
position: unset;
|
| 184 |
+
padding: 0;
|
| 185 |
+
width: unset;
|
| 186 |
+
height: unset;
|
| 187 |
+
}
|
| 188 |
+
|
| 189 |
+
.pagefind-ui,
|
| 190 |
+
#duckduckgo {
|
| 191 |
+
margin: 1ex;
|
| 192 |
+
padding: 0;
|
| 193 |
+
border: unset;
|
| 194 |
+
}
|
| 195 |
+
|
| 196 |
+
}
|
assets/css/component/share.css
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.form#mastodon {
|
| 2 |
+
display: inline-flex;
|
| 3 |
+
width: 100%;
|
| 4 |
+
}
|
| 5 |
+
|
| 6 |
+
#mastodonInstance {
|
| 7 |
+
/* passive mode; display as button */
|
| 8 |
+
display: none;
|
| 9 |
+
height: 2.654rem;
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
#has-mastodon.active {
|
| 13 |
+
/* active mode display as form */
|
| 14 |
+
flex: 1;
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
#has-mastodon.active #mastodonInstance {
|
| 18 |
+
display: initial !important;
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
#has-mastodon.active #mastodon {
|
| 22 |
+
border: 3pt solid #563acc02;
|
| 23 |
+
border-radius: 2rem;
|
| 24 |
+
background: #563acc22;
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
#mastodonInstance ~ button:focus .mastodon,
|
| 28 |
+
#mastodonInstance:focus ~ button .mastodon {
|
| 29 |
+
background: #4f36b5;
|
| 30 |
+
color: #fff;
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
#has-share {
|
| 34 |
+
margin:var(--vskip);
|
| 35 |
+
padding-bottom: 2pt;
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
#has-share[open] {
|
| 39 |
+
padding-bottom: 0;
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
#share {
|
| 43 |
+
float: left;
|
| 44 |
+
margin: 1pt 0;
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
#has-share[open] #share {
|
| 48 |
+
background: unset;
|
| 49 |
+
padding-left: 0;
|
| 50 |
+
color: unset;
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
#has-share[open] #share::after {
|
| 54 |
+
content: ':';
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
#has-share ul {
|
| 58 |
+
display: flex;
|
| 59 |
+
position: relative;
|
| 60 |
+
flex-wrap: wrap;
|
| 61 |
+
align-items: center;
|
| 62 |
+
justify-content: center;
|
| 63 |
+
text-align: center;
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
#has-share a {
|
| 67 |
+
display: inline-flex;
|
| 68 |
+
position: relative;
|
| 69 |
+
}
|
| 70 |
+
|
| 71 |
+
#has-share i {
|
| 72 |
+
border-radius: 2rem;
|
| 73 |
+
padding: 0.62rem;
|
| 74 |
+
font-size: var(--Large);
|
| 75 |
+
}
|
| 76 |
+
|
| 77 |
+
#has-share i:hover {
|
| 78 |
+
--tst: 200ms ease-in;
|
| 79 |
+
opacity: 1;
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
#has-share a:focus i,
|
| 83 |
+
#has-share i:hover {
|
| 84 |
+
color: #fff !important;
|
| 85 |
+
}
|
| 86 |
+
|
| 87 |
+
/* Social sharing button */
|
| 88 |
+
#has-share .email {color: var(--mid)}
|
| 89 |
+
#has-share a:focus .email,
|
| 90 |
+
#has-share .email:hover {background: var(--mid)}
|
| 91 |
+
#has-share .bluesky {color: #1185fe}
|
| 92 |
+
#has-share a:focus .bluesky,
|
| 93 |
+
#has-share .bluesky:hover {background: #0072ce}
|
| 94 |
+
#has-share .facebook {color: #3b5998}
|
| 95 |
+
#has-share a:focus .facebook,
|
| 96 |
+
#has-share .facebook:hover {background: #2d4373}
|
| 97 |
+
#has-share .hackernews {color: #FF6600}
|
| 98 |
+
#has-share a:focus .hackernews,
|
| 99 |
+
#has-share .hackernews:hover {background: #FB6200}
|
| 100 |
+
#has-share .linkedin {color: #0077b5}
|
| 101 |
+
#has-share a:focus .linkedin,
|
| 102 |
+
#has-share .linkedin:hover {background: #046293}
|
| 103 |
+
#has-share .mastodon {color: #563acc}
|
| 104 |
+
#has-share a:focus .mastodon,
|
| 105 |
+
#has-share .mastodon:hover {background: #4f36b5}
|
| 106 |
+
#has-share .pinterest {color: #bd081c}
|
| 107 |
+
#has-share a:focus .pinterest,
|
| 108 |
+
#has-share .pinterest:hover {background: #8c0615}
|
| 109 |
+
#has-share .reddit {color: #5f99cf}
|
| 110 |
+
#has-share a:focus .reddit,
|
| 111 |
+
#has-share .reddit:hover {background: #3a80c1}
|
| 112 |
+
#has-share .telegram {color: #54A9EB}
|
| 113 |
+
#has-share a:focus .telegram,
|
| 114 |
+
#has-share .telegram:hover {background: #4B97D1}
|
| 115 |
+
#has-share .tumblr {color: #35465C}
|
| 116 |
+
#has-share a:focus .tumblr,
|
| 117 |
+
#has-share .tumblr:hover {background: #222d3c}
|
| 118 |
+
#has-share .twitter {color: #55acee}
|
| 119 |
+
#has-share a:focus .twitter,
|
| 120 |
+
#has-share .twitter:hover {background: #2795e9}
|
| 121 |
+
#has-share .vk {color: #507299}
|
| 122 |
+
#has-share a:focus .vk,
|
| 123 |
+
#has-share .vk:hover {background: #43648c}
|
| 124 |
+
#has-share .whatsapp {color: #25D366}
|
| 125 |
+
#has-share a:focus .whatsapp,
|
| 126 |
+
#has-share .whatsapp:hover {background: #1DA851}
|
| 127 |
+
#has-share .xing {color: #1a7576}
|
| 128 |
+
#has-share a:focus .xing,
|
| 129 |
+
#has-share .xing:hover {background: #114C4C}
|
| 130 |
+
|
| 131 |
+
@media only screen and (max-width: 844px) {
|
| 132 |
+
|
| 133 |
+
#share {
|
| 134 |
+
float: unset;
|
| 135 |
+
}
|
| 136 |
+
|
| 137 |
+
#has-share[open] #share {
|
| 138 |
+
padding-left: 16.18pt;
|
| 139 |
+
}
|
| 140 |
+
|
| 141 |
+
#has-mastodon.active {
|
| 142 |
+
flex: 0 0 100%;
|
| 143 |
+
}
|
| 144 |
+
|
| 145 |
+
#has-mastodon.active #mastodon {
|
| 146 |
+
margin-bottom: 1ex;
|
| 147 |
+
max-width: 27em;
|
| 148 |
+
}
|
| 149 |
+
|
| 150 |
+
}
|
assets/css/component/skipper.css
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#to-content {
|
| 2 |
+
/* displayed to screen reader,
|
| 3 |
+
but visually removed to oustide canvas */
|
| 4 |
+
--tsf: translateY(-100vmax);
|
| 5 |
+
display: flex;
|
| 6 |
+
position: fixed;
|
| 7 |
+
top: 0;
|
| 8 |
+
left: 0;
|
| 9 |
+
align-items: center;
|
| 10 |
+
justify-content: center;
|
| 11 |
+
z-index: 3;
|
| 12 |
+
outline: none !important;
|
| 13 |
+
background: var(--bg) !important;
|
| 14 |
+
width: 100vw;
|
| 15 |
+
height: var(--vhead);
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
#to-content:focus {
|
| 19 |
+
/* replace top nav on focus */
|
| 20 |
+
--tsf: translate(0);
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
body > footer > nav {
|
| 24 |
+
margin-left: auto;
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
#to-top {
|
| 28 |
+
padding: 1ex;
|
| 29 |
+
color: var(--fg);
|
| 30 |
+
overflow: hidden;
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
#to-top::before {
|
| 34 |
+
--tsf: rotate(-45deg);
|
| 35 |
+
display: inline-flex;
|
| 36 |
+
transition: 0.2s;
|
| 37 |
+
font-family: 'base-ui';
|
| 38 |
+
content: '\e902';
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
#to-top:hover::before,
|
| 42 |
+
#to-top:focus::before {
|
| 43 |
+
--tsf: unset;
|
| 44 |
+
}
|
assets/css/custom.css
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
:root {
|
| 2 |
+
/* default contrast */
|
| 3 |
+
--ac-light: #36c;
|
| 4 |
+
--fg-light: #111;
|
| 5 |
+
--bg-light: #f9f9fb;
|
| 6 |
+
--midtone: gray;
|
| 7 |
+
--fg-dark: #f9f9fb;
|
| 8 |
+
--bg-dark: #111;
|
| 9 |
+
--ac-dark: #fa0;
|
| 10 |
+
|
| 11 |
+
/* less contrast */
|
| 12 |
+
--ac-light-less: var(--ac-light);
|
| 13 |
+
--fg-light-less: #13253d;
|
| 14 |
+
--bg-light-less: #e7e2e2;
|
| 15 |
+
--midtone-less: #7d8490;
|
| 16 |
+
--fg-dark-less: #e7e2e2;
|
| 17 |
+
--bg-dark-less: #13253d;
|
| 18 |
+
--ac-dark-less: var(--ac-dark);
|
| 19 |
+
|
| 20 |
+
/* more contrast */
|
| 21 |
+
--ac-light-more: var(--ac-light);
|
| 22 |
+
--fg-light-more: #000;
|
| 23 |
+
--bg-light-more: #fff;
|
| 24 |
+
--midtone-more: gray;
|
| 25 |
+
--fg-dark-more: #fff;
|
| 26 |
+
--bg-dark-more: #000;
|
| 27 |
+
--ac-dark-more: var(--ac-dark);
|
| 28 |
+
}
|
assets/css/layout/_default/baseof.css
ADDED
|
@@ -0,0 +1,318 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*
|
| 2 |
+
<body
|
| 3 |
+
id='$layout'
|
| 4 |
+
class='$colorpalette'
|
| 5 |
+
>
|
| 6 |
+
<header>=====[sticky]======</header>
|
| 7 |
+
<main id='$kind'>
|
| 8 |
+
<footer id=main-footer></footer>
|
| 9 |
+
</main>
|
| 10 |
+
<footer>=====[sticky]======<</footer>
|
| 11 |
+
</body>
|
| 12 |
+
*/
|
| 13 |
+
|
| 14 |
+
:root {
|
| 15 |
+
--golden-ratio: 61.803398%;
|
| 16 |
+
--canonic: 70.710678%;
|
| 17 |
+
--max-width: 1024px;
|
| 18 |
+
--void: calc((100vw - var(--canonic) - 1rem) / 2);
|
| 19 |
+
--vhead: 4.2rem;
|
| 20 |
+
--vfoot: 3.33rem;
|
| 21 |
+
--vbody: calc(100vh - var(--vhead) - var(--vfoot));
|
| 22 |
+
--marginparwidth: 27vw; /* --canonic - ( --canonic * --golden-ratio) */
|
| 23 |
+
--g18: #80808080;
|
| 24 |
+
--g18s: #80808022;
|
| 25 |
+
--bound: 1pt dotted var(--g18);
|
| 26 |
+
--border: 1pt solid var(--g18s);
|
| 27 |
+
--box-shadow-hover: 0 1px 0.5px var(--g18);
|
| 28 |
+
--box-shadow-focus: 0 0.5px 1px var(--g18);
|
| 29 |
+
--box-shadow-active: 0 0.5px 0.5px var(--mid);
|
| 30 |
+
font-size: calc(var(--fontScale) * 10pt);
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
::-webkit-scrollbar {
|
| 34 |
+
/* width: 8pt;
|
| 35 |
+
height: 8pt; */
|
| 36 |
+
scroll-behavior: smooth;
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
::-webkit-scrollbar-track {
|
| 40 |
+
background: transparent;
|
| 41 |
+
border-radius: 9pt !important;
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
::-webkit-scrollbar-thumb {
|
| 45 |
+
background: var(--g18);
|
| 46 |
+
opacity: 0.86;
|
| 47 |
+
border-radius: 9pt !important;
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
* {
|
| 51 |
+
box-sizing: border-box;
|
| 52 |
+
scroll-margin-top: calc(var(--vhead) + 4.118rem);
|
| 53 |
+
scroll-behavior: smooth;
|
| 54 |
+
scrollbar-color: var(--g18) transparent;
|
| 55 |
+
scrollbar-width: thin;
|
| 56 |
+
text-rendering: optimizeLegibility;
|
| 57 |
+
kerning: auto;
|
| 58 |
+
font-kerning: auto;
|
| 59 |
+
-webkit-font-feature-settings: 'kern' 1;
|
| 60 |
+
-moz-font-feature-settings: 'kern' 1;
|
| 61 |
+
font-feature-settings: 'kern' 1;
|
| 62 |
+
-webkit-hyphens: auto;
|
| 63 |
+
-moz-hyphens: auto;
|
| 64 |
+
hyphens: auto;
|
| 65 |
+
-webkit-hyphenate-after: 3;
|
| 66 |
+
hyphenate-after: 3;
|
| 67 |
+
-webkit-hyphenate-before: 3;
|
| 68 |
+
hyphenate-before: 3;
|
| 69 |
+
-webkit-hyphenate-lines: 2;
|
| 70 |
+
hyphenate-lines: 2;
|
| 71 |
+
orphans: 2;
|
| 72 |
+
widows: 2;
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
body {
|
| 76 |
+
margin: 0 !important;
|
| 77 |
+
padding: unset !important;
|
| 78 |
+
line-height: calc(var(--baselineStretch) * 1.414);
|
| 79 |
+
color: var(--fg);
|
| 80 |
+
font-family: var(--sf), sans-serif;
|
| 81 |
+
font-size: var(--normalsize);
|
| 82 |
+
--y6a: #af7c9d; --w8u: #628618; --s8i: #ed7495; --n8e: #6c80b3;
|
| 83 |
+
--m4i: #355240; --y4i: #921823; --f8a: #7972b6; --s4n: #018ace;
|
| 84 |
+
--d3u: #654b3c; --r6a: #534b1a; --y4a: #13355b; --k8i: #ee850f;
|
| 85 |
+
--y6i: #00728c; --o5a: #8d2f4a; --c3u: #5b516a; --s5o: #365b75;
|
| 86 |
+
--s5e: #493280; --y7i: #00b1dd; --i3i: #e9142a; --t9u: #014d1f;
|
| 87 |
+
}
|
| 88 |
+
|
| 89 |
+
body {
|
| 90 |
+
max-width: unset !important;
|
| 91 |
+
padding: unset !important;
|
| 92 |
+
}
|
| 93 |
+
|
| 94 |
+
body > header {
|
| 95 |
+
position: -webkit-sticky;
|
| 96 |
+
position: sticky;
|
| 97 |
+
top: 0;
|
| 98 |
+
align-items: center;
|
| 99 |
+
justify-content: space-between;
|
| 100 |
+
height: var(--vhead);
|
| 101 |
+
}
|
| 102 |
+
|
| 103 |
+
body > main {
|
| 104 |
+
min-height: var(--vbody);
|
| 105 |
+
}
|
| 106 |
+
|
| 107 |
+
.marginpar,
|
| 108 |
+
body > main > aside {
|
| 109 |
+
position: relative;
|
| 110 |
+
float: right;
|
| 111 |
+
clear: right;
|
| 112 |
+
padding-left: var(--indent);
|
| 113 |
+
width: var(--marginparwidth);
|
| 114 |
+
}
|
| 115 |
+
|
| 116 |
+
body > main > #main-footer {
|
| 117 |
+
position: relative;
|
| 118 |
+
margin: var(--bigskip) 1ex 1rem;
|
| 119 |
+
border: var(--border);
|
| 120 |
+
border-radius: 1ex;
|
| 121 |
+
background: #000;
|
| 122 |
+
width: calc(100% - 2ex);
|
| 123 |
+
color: #fff;
|
| 124 |
+
}
|
| 125 |
+
|
| 126 |
+
body > footer {
|
| 127 |
+
display: flex !important;
|
| 128 |
+
position: -webkit-sticky;
|
| 129 |
+
position: sticky;
|
| 130 |
+
bottom: 0;
|
| 131 |
+
align-items: center;
|
| 132 |
+
justify-content: space-between;
|
| 133 |
+
z-index: 2;
|
| 134 |
+
height: var(--vfoot);
|
| 135 |
+
font-size: var(--small);
|
| 136 |
+
}
|
| 137 |
+
|
| 138 |
+
#top,
|
| 139 |
+
.pagewidth {
|
| 140 |
+
padding-right: var(--void);
|
| 141 |
+
padding-left: var(--void);
|
| 142 |
+
/* width: var(--canonic);
|
| 143 |
+
max-width: var(--max-width); */
|
| 144 |
+
}
|
| 145 |
+
|
| 146 |
+
.textwidth {
|
| 147 |
+
width: var(--golden-ratio);
|
| 148 |
+
}
|
| 149 |
+
|
| 150 |
+
#main-footer .pagewidth {
|
| 151 |
+
padding: 0 calc(var(--void) - 1ex - 1rem);
|
| 152 |
+
margin: 1ex 1ex 2ex;
|
| 153 |
+
}
|
| 154 |
+
|
| 155 |
+
#main-footer .column > *,
|
| 156 |
+
#main-footer .column__item {
|
| 157 |
+
/* margin: 1ex 0; */
|
| 158 |
+
border: 0.1pt solid transparent;
|
| 159 |
+
}
|
| 160 |
+
|
| 161 |
+
#main-footer .section-title,
|
| 162 |
+
#menu-footer::before {
|
| 163 |
+
display: block;
|
| 164 |
+
margin: 1ex 0 0;
|
| 165 |
+
font-size: var(--small);
|
| 166 |
+
}
|
| 167 |
+
|
| 168 |
+
#main-footer-primary,
|
| 169 |
+
#main-footer-secondary > * {
|
| 170 |
+
break-inside: avoid-column;
|
| 171 |
+
}
|
| 172 |
+
|
| 173 |
+
#main-footer p {
|
| 174 |
+
margin: 0;
|
| 175 |
+
font-size: var(--small);
|
| 176 |
+
}
|
| 177 |
+
|
| 178 |
+
#menu-footer a {
|
| 179 |
+
display: inline-flex;
|
| 180 |
+
position: relative;
|
| 181 |
+
padding: 0.62rem;
|
| 182 |
+
color: #fff;
|
| 183 |
+
font-size: var(--large);
|
| 184 |
+
}
|
| 185 |
+
|
| 186 |
+
#menu-footer a .t{
|
| 187 |
+
--tsf: translate(-3em);
|
| 188 |
+
}
|
| 189 |
+
|
| 190 |
+
hr {
|
| 191 |
+
border-top: var(--border);
|
| 192 |
+
border-width: 1pt 0 0 0;
|
| 193 |
+
}
|
| 194 |
+
|
| 195 |
+
@media only screen and (min-width: 1440px) {
|
| 196 |
+
|
| 197 |
+
:root {
|
| 198 |
+
--void: calc((100vw - var(--max-width) - 1rem) / 2) !important;
|
| 199 |
+
--marginparwidth: 391.13320448px !important;
|
| 200 |
+
/* --max-width - (100% - --golden-ratio) */
|
| 201 |
+
}
|
| 202 |
+
|
| 203 |
+
}
|
| 204 |
+
|
| 205 |
+
@media only screen and (max-width: 960px) {
|
| 206 |
+
|
| 207 |
+
:root {
|
| 208 |
+
--void: calc((100vw - var(--canonic) - var(--vfoot) - var(--vhead)) / 2);
|
| 209 |
+
}
|
| 210 |
+
|
| 211 |
+
}
|
| 212 |
+
|
| 213 |
+
@media only screen and (max-width: 640px) {
|
| 214 |
+
|
| 215 |
+
:root {
|
| 216 |
+
--void: var(--vfoot) !important;
|
| 217 |
+
--marginparwidth: 100% !important;
|
| 218 |
+
--canonic: 86%;
|
| 219 |
+
--golden-ratio: 100%;
|
| 220 |
+
}
|
| 221 |
+
|
| 222 |
+
#main-footer .pagewidth {
|
| 223 |
+
padding-right: calc(var(--void) / 2);
|
| 224 |
+
padding-left: calc(var(--void) / 2);
|
| 225 |
+
}
|
| 226 |
+
|
| 227 |
+
}
|
| 228 |
+
|
| 229 |
+
@media only screen and (max-width: 540px) {
|
| 230 |
+
|
| 231 |
+
:root {
|
| 232 |
+
--void: calc(var(--vfoot) / 1.414) !important;
|
| 233 |
+
}
|
| 234 |
+
|
| 235 |
+
#main-footer-primary,
|
| 236 |
+
#main-footer-secondary {
|
| 237 |
+
column-span: all;
|
| 238 |
+
}
|
| 239 |
+
|
| 240 |
+
}
|
| 241 |
+
|
| 242 |
+
@media only screen and (max-width: 480px) {
|
| 243 |
+
|
| 244 |
+
:root {
|
| 245 |
+
--void: calc(var(--vfoot) / 2) !important;
|
| 246 |
+
}
|
| 247 |
+
|
| 248 |
+
}
|
| 249 |
+
|
| 250 |
+
@media (prefers-color-scheme: light) {
|
| 251 |
+
|
| 252 |
+
body {
|
| 253 |
+
--bg: var(--bg-light);
|
| 254 |
+
--mid: var(--midtone);
|
| 255 |
+
--fg: var(--fg-light);
|
| 256 |
+
--ac: var(--ac-light);
|
| 257 |
+
--off: #000;
|
| 258 |
+
}
|
| 259 |
+
|
| 260 |
+
@media (prefers-contrast: more),
|
| 261 |
+
(-ms-high-contrast: active) {
|
| 262 |
+
|
| 263 |
+
body {
|
| 264 |
+
--bg: var(--bg-light-more);
|
| 265 |
+
--mid: var(--midtone-more);
|
| 266 |
+
--fg: var(--fg-light-more);
|
| 267 |
+
--ac: var(--ac-light-more);
|
| 268 |
+
}
|
| 269 |
+
|
| 270 |
+
}
|
| 271 |
+
|
| 272 |
+
@media (prefers-contrast: less) {
|
| 273 |
+
|
| 274 |
+
body {
|
| 275 |
+
--bg: var(--bg-light-less);
|
| 276 |
+
--mid: var(--midtone-less);
|
| 277 |
+
--fg: var(--fg-light-less);
|
| 278 |
+
--ac: var(--ac-light-less);
|
| 279 |
+
}
|
| 280 |
+
|
| 281 |
+
}
|
| 282 |
+
|
| 283 |
+
}
|
| 284 |
+
|
| 285 |
+
@media (prefers-color-scheme: dark) {
|
| 286 |
+
|
| 287 |
+
body {
|
| 288 |
+
--bg: var(--bg-dark);
|
| 289 |
+
--mid: var(--midtone);
|
| 290 |
+
--fg: var(--fg-dark);
|
| 291 |
+
--ac: var(--ac-dark);
|
| 292 |
+
--off: #fff;
|
| 293 |
+
}
|
| 294 |
+
|
| 295 |
+
@media (prefers-contrast: more),
|
| 296 |
+
(-ms-high-contrast: active) {
|
| 297 |
+
|
| 298 |
+
body {
|
| 299 |
+
--bg: var(--bg-dark-more);
|
| 300 |
+
--mid: var(--midtone-more);
|
| 301 |
+
--fg: var(--fg-dark-more);
|
| 302 |
+
--ac: var(--ac-dark-more);
|
| 303 |
+
}
|
| 304 |
+
|
| 305 |
+
}
|
| 306 |
+
|
| 307 |
+
@media (prefers-contrast: less) {
|
| 308 |
+
|
| 309 |
+
body {
|
| 310 |
+
--bg: var(--bg-dark-less);
|
| 311 |
+
--mid: var(--midtone-less);
|
| 312 |
+
--fg: var(--fg-dark-less);
|
| 313 |
+
--ac: var(--ac-dark-less);
|
| 314 |
+
}
|
| 315 |
+
|
| 316 |
+
}
|
| 317 |
+
|
| 318 |
+
}
|
assets/css/layout/_default/home.css
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/* this style is used inline in list.html */
|
| 2 |
+
|
| 3 |
+
body {
|
| 4 |
+
margin: auto;
|
| 5 |
+
max-width: 2560px;
|
| 6 |
+
}
|
| 7 |
+
|
| 8 |
+
body > footer.pagewidth,
|
| 9 |
+
body > header.pagewidth {
|
| 10 |
+
padding: 0 calc(1.5rem + 1ex);
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
body > aside.carousel {
|
| 14 |
+
position: sticky;
|
| 15 |
+
position: -webkit-sticky;
|
| 16 |
+
left: 0;
|
| 17 |
+
float: left;
|
| 18 |
+
/* border: var(--border);
|
| 19 |
+
border-radius: 1ex; */
|
| 20 |
+
padding: 1rem;
|
| 21 |
+
width: 38vw;
|
| 22 |
+
height: var(--vbody);
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
body > main#home {
|
| 26 |
+
height: var(--vbody);
|
| 27 |
+
overflow-y: auto;
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
body > main#home > aside#list-tags {
|
| 31 |
+
top: 0;
|
| 32 |
+
right: 0;
|
| 33 |
+
margin: 1rem auto;
|
| 34 |
+
width: calc(100% - var(--golden-ratio))
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
#home #top {
|
| 38 |
+
padding: 1rem;
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
#home #list-posts {
|
| 42 |
+
padding: 1rem;
|
| 43 |
+
width: var(--golden-ratio);
|
| 44 |
+
}
|
| 45 |
+
|
| 46 |
+
div[role='feed'] {
|
| 47 |
+
padding: 1ex;
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
.carousel .feed-item,
|
| 51 |
+
#home .feed-item,
|
| 52 |
+
hr.ldots {
|
| 53 |
+
width: unset;
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
#main-footer > .pagewidth {
|
| 57 |
+
padding: 0 1ex;
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
#duckduckgo,
|
| 61 |
+
#i18n-menu > .on-plank,
|
| 62 |
+
#more-menu > .on-plank,
|
| 63 |
+
.pagefind-ui {
|
| 64 |
+
margin-right: 1rem;
|
| 65 |
+
}
|
| 66 |
+
|
| 67 |
+
#hasDuckDuckGo.pagewidth {
|
| 68 |
+
padding-right: 1rem;
|
| 69 |
+
}
|
| 70 |
+
|
| 71 |
+
#grain {
|
| 72 |
+
display: none;
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
@media only screen and (max-width: 960px) {
|
| 76 |
+
|
| 77 |
+
body > footer,
|
| 78 |
+
body > header {
|
| 79 |
+
background: var(--bg);
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
body > aside.carousel {
|
| 83 |
+
float: unset;
|
| 84 |
+
margin: 0 1rem;
|
| 85 |
+
padding: 1rem 0;
|
| 86 |
+
width: unset;
|
| 87 |
+
}
|
| 88 |
+
|
| 89 |
+
body > main#home {
|
| 90 |
+
height: unset;
|
| 91 |
+
overflow-y: unset;
|
| 92 |
+
}
|
| 93 |
+
|
| 94 |
+
body > main#home > aside#list-tags {
|
| 95 |
+
top: var(--vhead);
|
| 96 |
+
}
|
| 97 |
+
|
| 98 |
+
}
|
| 99 |
+
|
| 100 |
+
@media only screen and (max-width: 640px) {
|
| 101 |
+
|
| 102 |
+
#main-footer > .pagewidth {
|
| 103 |
+
padding: 0 calc(var(--void) / 2);
|
| 104 |
+
}
|
| 105 |
+
|
| 106 |
+
body > main#home > aside#list-tags {
|
| 107 |
+
padding: unset;
|
| 108 |
+
width: var(--canonic);
|
| 109 |
+
}
|
| 110 |
+
|
| 111 |
+
aside + #list-posts .feed-item > section {
|
| 112 |
+
flex-direction: row-reverse;
|
| 113 |
+
aspect-ratio: 10/3;
|
| 114 |
+
}
|
| 115 |
+
|
| 116 |
+
#home #list-posts {
|
| 117 |
+
margin: var(--bigskip) auto;
|
| 118 |
+
padding: unset;
|
| 119 |
+
width: var(--canonic);
|
| 120 |
+
}
|
| 121 |
+
|
| 122 |
+
#list-posts .section-title {
|
| 123 |
+
padding-left: unset;
|
| 124 |
+
}
|
| 125 |
+
|
| 126 |
+
#duckduckgo,
|
| 127 |
+
.pagefind-ui {
|
| 128 |
+
margin-right: 1ex;
|
| 129 |
+
}
|
| 130 |
+
|
| 131 |
+
}
|
| 132 |
+
|
| 133 |
+
@media only screen and (max-width: 480px) {
|
| 134 |
+
|
| 135 |
+
aside + #list-posts .feed-item > section {
|
| 136 |
+
flex-direction: column;
|
| 137 |
+
aspect-ratio: unset;
|
| 138 |
+
}
|
| 139 |
+
|
| 140 |
+
}
|
| 141 |
+
|
assets/css/layout/_default/list.css
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
hr.ldots {
|
| 2 |
+
margin-left: 0;
|
| 3 |
+
border: none;
|
| 4 |
+
width: var(--golden-ratio);
|
| 5 |
+
}
|
| 6 |
+
|
| 7 |
+
hr.ldots::after {
|
| 8 |
+
--tsf: translateY(-2.3rem);
|
| 9 |
+
display: block;
|
| 10 |
+
width: 100%;
|
| 11 |
+
height: 1rem;
|
| 12 |
+
text-align: center;
|
| 13 |
+
color: var(--g18s);
|
| 14 |
+
font-size: 3rem;
|
| 15 |
+
content: '…';
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
#list-subsection {
|
| 19 |
+
padding: 0 calc(1rem - 1ex);
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
#list-subsection .carousel__viewport,
|
| 23 |
+
#taxonomy .carousel__viewport,
|
| 24 |
+
#taxonomy #list-tags ul {
|
| 25 |
+
padding: 0 1rem;
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
#list-series,
|
| 29 |
+
#list-categories {
|
| 30 |
+
display: flex;
|
| 31 |
+
flex-direction: row-reverse;
|
| 32 |
+
flex-wrap: nowrap;
|
| 33 |
+
align-items: flex-start;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
#list-series .section-title,
|
| 37 |
+
#list-categories .section-title {
|
| 38 |
+
margin: var(--smallskip);
|
| 39 |
+
writing-mode: tb;
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
#list-tags {
|
| 43 |
+
position: sticky;
|
| 44 |
+
position: -webkit-sticky;
|
| 45 |
+
top: var(--vhead);
|
| 46 |
+
right: var(--void);
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
.section-title,
|
| 50 |
+
#list-tags > ul {
|
| 51 |
+
margin: var(--medskip) 0 1ex;
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
#term section.pagewidth,
|
| 55 |
+
#taxonomy section.pagewidth,
|
| 56 |
+
#list-posts {
|
| 57 |
+
min-height: calc(var(--vbody) - 7.258rem);
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
#taxonomy #list-tags {
|
| 61 |
+
position: unset;
|
| 62 |
+
float: unset;
|
| 63 |
+
margin: unset;
|
| 64 |
+
padding: 0 var(--void);
|
| 65 |
+
width: unset;
|
| 66 |
+
}
|
| 67 |
+
|
| 68 |
+
#taxonomy #list-series,
|
| 69 |
+
#taxonomy #list-categories {
|
| 70 |
+
display: unset;
|
| 71 |
+
}
|
| 72 |
+
|
| 73 |
+
#taxonomy #list-tags .section-title,
|
| 74 |
+
#taxonomy #list-series .section-title,
|
| 75 |
+
#taxonomy #list-categories .section-title {
|
| 76 |
+
margin: var(--bigskip) 0 var(--smallskip);
|
| 77 |
+
writing-mode: unset;
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
#has-pagination {
|
| 81 |
+
margin-top: 1in;
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
.section-title#series {
|
| 85 |
+
margin-left: auto;
|
| 86 |
+
width: var(--golden-ratio);
|
| 87 |
+
}
|
| 88 |
+
|
| 89 |
+
.list-year.textwidth {
|
| 90 |
+
display: flex;
|
| 91 |
+
position: relative;
|
| 92 |
+
align-items: baseline;
|
| 93 |
+
margin-left: auto;
|
| 94 |
+
}
|
| 95 |
+
|
| 96 |
+
.list-year > .section-title {
|
| 97 |
+
padding: 8pt;
|
| 98 |
+
width: 5rem;
|
| 99 |
+
text-align: right;
|
| 100 |
+
}
|
| 101 |
+
|
| 102 |
+
.list-year > div {
|
| 103 |
+
flex: 1;
|
| 104 |
+
}
|
| 105 |
+
|
| 106 |
+
.list-month > summary {
|
| 107 |
+
padding-left: 1rem;
|
| 108 |
+
list-style: none;
|
| 109 |
+
}
|
| 110 |
+
|
| 111 |
+
.list-day a {
|
| 112 |
+
display: block;
|
| 113 |
+
margin: 1ex 1rem;
|
| 114 |
+
padding: 1ex 0;
|
| 115 |
+
width: 100%;
|
| 116 |
+
font-size: var(--normalsize);
|
| 117 |
+
}
|
| 118 |
+
|
| 119 |
+
.list-day a.has-pre::before {
|
| 120 |
+
position: absolute;
|
| 121 |
+
left: -9pt;
|
| 122 |
+
padding: 0.25rem 0;
|
| 123 |
+
width: 5rem;
|
| 124 |
+
text-align: right;
|
| 125 |
+
text-transform: uppercase;
|
| 126 |
+
letter-spacing: .1em;
|
| 127 |
+
font-size: var(--footnotesize);
|
| 128 |
+
}
|
| 129 |
+
|
| 130 |
+
#feed ul.rounded.invert a {
|
| 131 |
+
font-size: var(--footnotesize);
|
| 132 |
+
}
|
| 133 |
+
|
| 134 |
+
@media only screen and (max-width: 640px) {
|
| 135 |
+
|
| 136 |
+
body > main > aside#list-tags {
|
| 137 |
+
position: unset;
|
| 138 |
+
position: unset;
|
| 139 |
+
float: unset;
|
| 140 |
+
margin: var(--bigskip) auto;
|
| 141 |
+
padding: 0;
|
| 142 |
+
width: var(--canonic);
|
| 143 |
+
}
|
| 144 |
+
|
| 145 |
+
}
|
assets/css/layout/_default/single.css
ADDED
|
@@ -0,0 +1,344 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#main-article {
|
| 2 |
+
margin-top: 1in;
|
| 3 |
+
line-height: calc(var(--baselineStretch) * 1.618);
|
| 4 |
+
font-family: var(--rm), serif;
|
| 5 |
+
}
|
| 6 |
+
|
| 7 |
+
/* article frontmatter */
|
| 8 |
+
|
| 9 |
+
#main-article > header {
|
| 10 |
+
display: flex;
|
| 11 |
+
flex-direction: column;
|
| 12 |
+
margin:var(--vskip);
|
| 13 |
+
gap: 1rem;
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
.subtitle {
|
| 17 |
+
opacity: 0.86;
|
| 18 |
+
margin: 1ex 0 0;
|
| 19 |
+
font-style: italic;
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
#main-article [role=doc-credit],
|
| 23 |
+
#main-article [role=doc-colophon] {
|
| 24 |
+
font-size: var(--small);
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
#doc-cover > img {
|
| 28 |
+
margin: 2rem 0;
|
| 29 |
+
aspect-ratio: 10 / 8;
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
figure img,
|
| 33 |
+
figure svg {
|
| 34 |
+
width: 100%;
|
| 35 |
+
height: auto;
|
| 36 |
+
object-fit: cover;
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
#doc-author,
|
| 40 |
+
#doc-author a {
|
| 41 |
+
color: var(--fg);
|
| 42 |
+
font-style: italic;
|
| 43 |
+
}
|
| 44 |
+
|
| 45 |
+
/* with avatar */
|
| 46 |
+
#avatar,
|
| 47 |
+
.author,
|
| 48 |
+
.mastodon-comment > footer {
|
| 49 |
+
display: flex;
|
| 50 |
+
align-items: center;
|
| 51 |
+
line-height: 1.272;
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
#doc-author .has-aria-label::after {
|
| 55 |
+
font: 1rem var(--sf);
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
.mastodon-comment > .author > img,
|
| 59 |
+
#avatar {
|
| 60 |
+
margin-right: 12pt;
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
.author img {
|
| 64 |
+
border-radius: 50%;
|
| 65 |
+
width: 3rem;
|
| 66 |
+
height: 3rem;
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
.author > a::after {
|
| 70 |
+
font-size: 0.9em;
|
| 71 |
+
color: var(--mid);
|
| 72 |
+
}
|
| 73 |
+
|
| 74 |
+
.author > a > span {
|
| 75 |
+
color: var(--fg);
|
| 76 |
+
font-weight: bold;
|
| 77 |
+
}
|
| 78 |
+
|
| 79 |
+
.author > a > span img {
|
| 80 |
+
width: 1em;
|
| 81 |
+
height: 1em;
|
| 82 |
+
vertical-align: text-top;
|
| 83 |
+
}
|
| 84 |
+
|
| 85 |
+
header time {
|
| 86 |
+
font-style: italic;
|
| 87 |
+
-webkit-font-feature-settings:'onum' 1;
|
| 88 |
+
-moz-font-feature-settings:'onum' 1;
|
| 89 |
+
font-feature-settings:'onum' 1;
|
| 90 |
+
font-variant-numeric: oldstyle-nums;
|
| 91 |
+
}
|
| 92 |
+
|
| 93 |
+
#page .date-has-label > time:before {
|
| 94 |
+
content: attr(data-time-label)' ';
|
| 95 |
+
}
|
| 96 |
+
|
| 97 |
+
#page .date-has-label > time,
|
| 98 |
+
#keywords li {
|
| 99 |
+
text-transform: lowercase;
|
| 100 |
+
}
|
| 101 |
+
|
| 102 |
+
.doc-publish-date::before {
|
| 103 |
+
text-transform: initial;
|
| 104 |
+
}
|
| 105 |
+
|
| 106 |
+
#has-TableOfContents,
|
| 107 |
+
#comments-error {
|
| 108 |
+
margin: var(--medskip) 0;
|
| 109 |
+
}
|
| 110 |
+
|
| 111 |
+
#has-TableOfContents ul {
|
| 112 |
+
list-style: none;
|
| 113 |
+
font-style: italic;
|
| 114 |
+
}
|
| 115 |
+
|
| 116 |
+
#main-article audio {
|
| 117 |
+
border-radius: 2rem;
|
| 118 |
+
}
|
| 119 |
+
|
| 120 |
+
#main-article audio,
|
| 121 |
+
#main-article section > p {
|
| 122 |
+
margin: 0.618pc 0;
|
| 123 |
+
width: var(--golden-ratio);
|
| 124 |
+
}
|
| 125 |
+
|
| 126 |
+
/* article mainmatter */
|
| 127 |
+
|
| 128 |
+
#content hr {
|
| 129 |
+
display: block;
|
| 130 |
+
margin: 0.618pc 0;
|
| 131 |
+
border: 0;
|
| 132 |
+
border-bottom: var(--bound);
|
| 133 |
+
}
|
| 134 |
+
|
| 135 |
+
#content table {
|
| 136 |
+
margin: 0.618pc 0;
|
| 137 |
+
width: 100%;
|
| 138 |
+
overflow-x: auto;
|
| 139 |
+
}
|
| 140 |
+
|
| 141 |
+
#content figure {
|
| 142 |
+
clear: both;
|
| 143 |
+
max-width: var(--golden-ratio);
|
| 144 |
+
overflow: auto;
|
| 145 |
+
}
|
| 146 |
+
|
| 147 |
+
#content figure.fullwidth {
|
| 148 |
+
max-width: none;
|
| 149 |
+
}
|
| 150 |
+
|
| 151 |
+
#content p:not(:first-of-type) {
|
| 152 |
+
text-indent: var(--indent);
|
| 153 |
+
}
|
| 154 |
+
|
| 155 |
+
#content p img {
|
| 156 |
+
width: calc(100% - var(--indent));
|
| 157 |
+
}
|
| 158 |
+
|
| 159 |
+
/* article backmatter */
|
| 160 |
+
|
| 161 |
+
#main-article > footer {
|
| 162 |
+
margin:var(--vskip);
|
| 163 |
+
border-bottom: var(--bound) ;
|
| 164 |
+
}
|
| 165 |
+
|
| 166 |
+
.footnote-ref {
|
| 167 |
+
padding: 0 0.5ex;
|
| 168 |
+
font-size: var(--footnotesize);
|
| 169 |
+
}
|
| 170 |
+
|
| 171 |
+
.footnotes {
|
| 172 |
+
font-size: var(--footnotesize);
|
| 173 |
+
}
|
| 174 |
+
|
| 175 |
+
.footnotes hr {
|
| 176 |
+
margin: 3rem 0 0;
|
| 177 |
+
border-bottom: 1px solid;
|
| 178 |
+
width: 16.18rem;
|
| 179 |
+
}
|
| 180 |
+
|
| 181 |
+
#has-timeline > p,
|
| 182 |
+
.footnotes ol {
|
| 183 |
+
margin-top: 0;
|
| 184 |
+
padding: 0;
|
| 185 |
+
}
|
| 186 |
+
|
| 187 |
+
.footnotes li::marker {
|
| 188 |
+
font-feature-settings: 'sups' 1;
|
| 189 |
+
font-variant-position: super;
|
| 190 |
+
}
|
| 191 |
+
|
| 192 |
+
#content,
|
| 193 |
+
#keywords,
|
| 194 |
+
#contentinfo {
|
| 195 |
+
margin: var(--vskip);
|
| 196 |
+
overflow-wrap: break-word;
|
| 197 |
+
}
|
| 198 |
+
|
| 199 |
+
.verbose {
|
| 200 |
+
font: 1rem/2rem monospace;
|
| 201 |
+
overflow-wrap: anywhere;
|
| 202 |
+
}
|
| 203 |
+
|
| 204 |
+
#colophon{
|
| 205 |
+
grid-column: 1;
|
| 206 |
+
}
|
| 207 |
+
|
| 208 |
+
#colophon > div {
|
| 209 |
+
display: flex;
|
| 210 |
+
margin-top: 1ex;
|
| 211 |
+
gap: 1rem;
|
| 212 |
+
}
|
| 213 |
+
|
| 214 |
+
#qr {
|
| 215 |
+
padding-top: 4pt;
|
| 216 |
+
}
|
| 217 |
+
|
| 218 |
+
#contribute {
|
| 219 |
+
grid-column: 2;
|
| 220 |
+
border-radius: 1ex;
|
| 221 |
+
background-color: var(--g18s);
|
| 222 |
+
padding: 1.4rem 1.4rem 1rem;
|
| 223 |
+
height: fit-content;
|
| 224 |
+
line-height: 1.618;
|
| 225 |
+
font-family: var(--sf);
|
| 226 |
+
font-size: var(--small);
|
| 227 |
+
}
|
| 228 |
+
|
| 229 |
+
#contrib-menu li {
|
| 230 |
+
margin: 1ex 1ex 1ex 0;
|
| 231 |
+
}
|
| 232 |
+
|
| 233 |
+
#contrib-menu a {
|
| 234 |
+
display: inline-block;
|
| 235 |
+
border-radius: 1ex;
|
| 236 |
+
background: var(--ac);
|
| 237 |
+
padding: 4pt 9pt 3pt 7pt;
|
| 238 |
+
color: var(--bg);
|
| 239 |
+
}
|
| 240 |
+
|
| 241 |
+
#contentinfo ol {
|
| 242 |
+
position: relative;
|
| 243 |
+
margin-bottom: 0;
|
| 244 |
+
padding-left: 2.5rem;
|
| 245 |
+
list-style: none;
|
| 246 |
+
counter-reset: li;
|
| 247 |
+
}
|
| 248 |
+
|
| 249 |
+
#contentinfo ol li {
|
| 250 |
+
margin-bottom: 1ex;
|
| 251 |
+
padding-bottom: 1ex;
|
| 252 |
+
}
|
| 253 |
+
|
| 254 |
+
#contentinfo ol li::before {
|
| 255 |
+
display: inline-block;
|
| 256 |
+
position: absolute;
|
| 257 |
+
left: 0;
|
| 258 |
+
border-radius: 2rem;
|
| 259 |
+
background: var(--g18s);
|
| 260 |
+
padding: 4pt 7pt;
|
| 261 |
+
color: var(--mid);
|
| 262 |
+
font: 0.7em monospace;
|
| 263 |
+
content: counter(li);
|
| 264 |
+
counter-increment: li;
|
| 265 |
+
}
|
| 266 |
+
|
| 267 |
+
#contentinfo ol li.see-more::before {
|
| 268 |
+
content: '>';
|
| 269 |
+
}
|
| 270 |
+
|
| 271 |
+
#has-timeline ol {
|
| 272 |
+
margin: 1ex 0 0 1rem;
|
| 273 |
+
border-left: 2.5pt solid var(--g18s);
|
| 274 |
+
padding: 1ex 0 0 1rem;
|
| 275 |
+
}
|
| 276 |
+
|
| 277 |
+
#has-timeline ol li::before {
|
| 278 |
+
left: -1rem;
|
| 279 |
+
border: 4pt solid var(--bg);
|
| 280 |
+
background: var(--mid);
|
| 281 |
+
padding: 0 3pt;
|
| 282 |
+
font-size: 0.6em;
|
| 283 |
+
content: '\a0';
|
| 284 |
+
}
|
| 285 |
+
|
| 286 |
+
#TableOfContents,
|
| 287 |
+
.letterine {
|
| 288 |
+
text-transform: lowercase;
|
| 289 |
+
letter-spacing: 0.1em;
|
| 290 |
+
font-variant: small-caps;
|
| 291 |
+
-webkit-font-feature-settings: 'smcp' 1;
|
| 292 |
+
-moz-font-feature-settings: 'smcp' 1;
|
| 293 |
+
font-feature-settings: 'smcp' 1;
|
| 294 |
+
}
|
| 295 |
+
|
| 296 |
+
.letterine::before {
|
| 297 |
+
display: block;
|
| 298 |
+
border-bottom: 2pt solid var(--ac);
|
| 299 |
+
content: '';
|
| 300 |
+
}
|
| 301 |
+
|
| 302 |
+
.letterine > i {
|
| 303 |
+
/* <span class='letterine'><i>e</i>xample</span>
|
| 304 |
+
inconsistence result across browsers
|
| 305 |
+
*/
|
| 306 |
+
position: relative;
|
| 307 |
+
top: -0.2rem;
|
| 308 |
+
float: left;
|
| 309 |
+
background: var(--bg);
|
| 310 |
+
padding-right: .1em;
|
| 311 |
+
line-height: 0.5;
|
| 312 |
+
color: var(--ac);
|
| 313 |
+
font-size: 6em;
|
| 314 |
+
}
|
| 315 |
+
|
| 316 |
+
#has-timeline .has-aria-label-top {
|
| 317 |
+
margin: 5pt 0;
|
| 318 |
+
}
|
| 319 |
+
|
| 320 |
+
#contentinfo {
|
| 321 |
+
display: grid;
|
| 322 |
+
grid-template-columns: 6fr 4fr;
|
| 323 |
+
gap: var(--medskip);
|
| 324 |
+
}
|
| 325 |
+
|
| 326 |
+
#has-share,
|
| 327 |
+
#comments {
|
| 328 |
+
grid-column: 1 / 3;
|
| 329 |
+
}
|
| 330 |
+
|
| 331 |
+
@media screen and (max-width: 640px) {
|
| 332 |
+
|
| 333 |
+
#contentinfo {
|
| 334 |
+
display: block;
|
| 335 |
+
}
|
| 336 |
+
|
| 337 |
+
#contentinfo > * {
|
| 338 |
+
margin-bottom: var(--bigskip) ;
|
| 339 |
+
}
|
| 340 |
+
.katex-display {
|
| 341 |
+
overflow-x: auto;
|
| 342 |
+
}
|
| 343 |
+
|
| 344 |
+
}
|
assets/css/media/print.css
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@media print {
|
| 2 |
+
|
| 3 |
+
:root {
|
| 4 |
+
font-size: 10pt;
|
| 5 |
+
}
|
| 6 |
+
|
| 7 |
+
@page {
|
| 8 |
+
margin: 10vmin;
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
body {
|
| 12 |
+
background: none;
|
| 13 |
+
padding-left: 0;
|
| 14 |
+
max-width: 100vw;
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
body > header,
|
| 18 |
+
body > footer,
|
| 19 |
+
body > footer *,
|
| 20 |
+
body > div,
|
| 21 |
+
body > aside,
|
| 22 |
+
body > main > header,
|
| 23 |
+
audio,
|
| 24 |
+
#has-share,
|
| 25 |
+
#background-body,
|
| 26 |
+
#contribute,
|
| 27 |
+
#related,
|
| 28 |
+
#coffee-counter,
|
| 29 |
+
#menu-footer
|
| 30 |
+
{
|
| 31 |
+
display: none;
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
body > main {
|
| 35 |
+
height: unset;
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
body > main > #main-footer {
|
| 39 |
+
border: unset;
|
| 40 |
+
margin:var(--vskip);
|
| 41 |
+
padding: unset;
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
.pagewidth,
|
| 45 |
+
#main-footer .pagewidth {
|
| 46 |
+
padding: 0;
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
body > main > #main-footer {
|
| 50 |
+
background: none;
|
| 51 |
+
color: var(--fg);
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
body h1:first-of-type {
|
| 55 |
+
margin-top: 0;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
/* dont work properly on firefox
|
| 59 |
+
h1,
|
| 60 |
+
section > h1,
|
| 61 |
+
.section-title {
|
| 62 |
+
page-break-before: always;
|
| 63 |
+
break-before: always;
|
| 64 |
+
|
| 65 |
+
header > h1 {
|
| 66 |
+
page-break-before: avoid !important;
|
| 67 |
+
break-before: avoid !important;
|
| 68 |
+
}
|
| 69 |
+
} */
|
| 70 |
+
|
| 71 |
+
h1,
|
| 72 |
+
h2,
|
| 73 |
+
h3,
|
| 74 |
+
h4,
|
| 75 |
+
h5,
|
| 76 |
+
h6,
|
| 77 |
+
.section-title {
|
| 78 |
+
page-break-after: avoid;
|
| 79 |
+
break-after: avoid;
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
table,
|
| 83 |
+
img,
|
| 84 |
+
svg,
|
| 85 |
+
figure,
|
| 86 |
+
.sidenote,
|
| 87 |
+
.marginnote,
|
| 88 |
+
#comments article,
|
| 89 |
+
article#feed-item {
|
| 90 |
+
page-break-inside: avoid;
|
| 91 |
+
break-inside: avoid;
|
| 92 |
+
}
|
| 93 |
+
|
| 94 |
+
pre > code {
|
| 95 |
+
margin-left: 0;
|
| 96 |
+
min-width: 62%;
|
| 97 |
+
max-width: 100%;
|
| 98 |
+
white-space: pre-wrap;
|
| 99 |
+
word-break: break-all;
|
| 100 |
+
word-wrap: break-word;
|
| 101 |
+
}
|
| 102 |
+
|
| 103 |
+
article #content a::after {
|
| 104 |
+
--tsf: unset;
|
| 105 |
+
-webkit-transform: var(--tsf);
|
| 106 |
+
-moz-transform: var(--tsf);
|
| 107 |
+
-ms-transform: var(--tsf);
|
| 108 |
+
-o-transform: var(--tsf);
|
| 109 |
+
transform: var(--tsf);
|
| 110 |
+
font: unset;
|
| 111 |
+
content: '\a0('attr(href)')';
|
| 112 |
+
}
|
| 113 |
+
|
| 114 |
+
#keywords a::after {
|
| 115 |
+
content: unset;
|
| 116 |
+
}
|
| 117 |
+
|
| 118 |
+
.marginpar {
|
| 119 |
+
width: var(--golden-ratio);
|
| 120 |
+
margin-left: calc(var(--golden-ratio) * -1);
|
| 121 |
+
}
|
| 122 |
+
|
| 123 |
+
.marginpar.abs {
|
| 124 |
+
right: 0;
|
| 125 |
+
width: 38%;
|
| 126 |
+
}
|
| 127 |
+
|
| 128 |
+
#contentinfo {
|
| 129 |
+
display: block;
|
| 130 |
+
}
|
| 131 |
+
}
|
| 132 |
+
|
| 133 |
+
/* font-size scaling = 1/sqrt(640/device-width)
|
| 134 |
+
@media (max-width: 640px) {
|
| 135 |
+
:root {
|
| 136 |
+
font-size: calc(var(--fontScale)*100%);
|
| 137 |
+
}
|
| 138 |
+
}
|
| 139 |
+
|
| 140 |
+
@media (max-width: 601px) {
|
| 141 |
+
:root {
|
| 142 |
+
font-size: calc(var(--fontScale)*96.9%);
|
| 143 |
+
}
|
| 144 |
+
}
|
| 145 |
+
|
| 146 |
+
@media (max-width: 576px) {
|
| 147 |
+
:root {
|
| 148 |
+
font-size: calc(var(--fontScale)*94.8%);
|
| 149 |
+
}
|
| 150 |
+
}
|
| 151 |
+
|
| 152 |
+
@media (max-width: 540px) {
|
| 153 |
+
:root {
|
| 154 |
+
font-size: calc(var(--fontScale)*91.8%);
|
| 155 |
+
}
|
| 156 |
+
}
|
| 157 |
+
|
| 158 |
+
@media (max-width: 512px) {
|
| 159 |
+
:root {
|
| 160 |
+
font-size: calc(var(--fontScale)*89.4%);
|
| 161 |
+
}
|
| 162 |
+
}
|
| 163 |
+
|
| 164 |
+
@media (max-width: 480px) {
|
| 165 |
+
:root {
|
| 166 |
+
font-size: calc(var(--fontScale)*86.6%);
|
| 167 |
+
}
|
| 168 |
+
}
|
| 169 |
+
|
| 170 |
+
@media (max-width: 428px) {
|
| 171 |
+
:root {
|
| 172 |
+
font-size: calc(var(--fontScale)*81.7%);
|
| 173 |
+
}
|
| 174 |
+
}
|
| 175 |
+
|
| 176 |
+
@media (max-width: 414px) {
|
| 177 |
+
:root {
|
| 178 |
+
font-size: calc(var(--fontScale)*80.4%);
|
| 179 |
+
}
|
| 180 |
+
}
|
| 181 |
+
|
| 182 |
+
@media (max-width: 390px) {
|
| 183 |
+
:root {
|
| 184 |
+
font-size: calc(var(--fontScale)*78%);
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
|
| 188 |
+
@media (max-width: 375px) {
|
| 189 |
+
:root {
|
| 190 |
+
font-size: calc(var(--fontScale)*76.5%);
|
| 191 |
+
}
|
| 192 |
+
}
|
| 193 |
+
|
| 194 |
+
@media (max-width: 360px) {
|
| 195 |
+
:root {
|
| 196 |
+
font-size: calc(var(--fontScale)*75%);
|
| 197 |
+
}
|
| 198 |
+
}
|
| 199 |
+
|
| 200 |
+
@media (max-width: 320px) {
|
| 201 |
+
:root {
|
| 202 |
+
font-size: calc(var(--fontScale)*70.7%);
|
| 203 |
+
}
|
| 204 |
+
} */
|
assets/css/optimize.css
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#setContrast > input:checked:focus + label,
|
| 2 |
+
#OpenDyslexic:checked + label #OpenDyslexicState,
|
| 3 |
+
#saveButton:hover,
|
| 4 |
+
#saveButton:focus,
|
| 5 |
+
#bionReadSwitch:hover + label,
|
| 6 |
+
#bionReadSwitch:focus + label,
|
| 7 |
+
#bionReadSwitch:active + label,
|
| 8 |
+
#bionReadSwitch:checked + label,
|
| 9 |
+
#join-discussion:hover,
|
| 10 |
+
#join-discussion:focus,
|
| 11 |
+
a.cta:hover,
|
| 12 |
+
a.cta:focus {
|
| 13 |
+
background: var(--ac);
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
#has-a11y[open] > #has-a11y-summary,
|
| 17 |
+
#lightSwitch:hover + label span::after,
|
| 18 |
+
#lightSwitch:focus + label span::after,
|
| 19 |
+
#a11y-menu > .has-aria-label:focus,
|
| 20 |
+
#a11y-menu > .has-aria-label:hover,
|
| 21 |
+
#menu-footer a:hover,
|
| 22 |
+
#menu-footer a:focus,
|
| 23 |
+
a.replies.active,
|
| 24 |
+
a.reblogs.active,
|
| 25 |
+
#has-author-name-menu a:hover,
|
| 26 |
+
#has-author-name-menu a:focus,
|
| 27 |
+
#related a:hover,
|
| 28 |
+
#related a:focus {
|
| 29 |
+
color: var(--ac);
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
.feed-item > hgroup > div a,
|
| 33 |
+
#related a {
|
| 34 |
+
color: var(--fg);
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
.readingTime,
|
| 38 |
+
.feed-item > section > div,
|
| 39 |
+
.feed-item > hgroup > div,
|
| 40 |
+
.feed-item:hover img,
|
| 41 |
+
#contrib-menu a:hover,
|
| 42 |
+
#contrib-menu a:focus {
|
| 43 |
+
opacity: 0.86;
|
| 44 |
+
}
|
| 45 |
+
|
| 46 |
+
main > header > menu > li > a:hover,
|
| 47 |
+
main > header > menu > li > a:focus,
|
| 48 |
+
.feed-item:hover .par,
|
| 49 |
+
.feed-item:focus .par,
|
| 50 |
+
ul.invert a:hover,
|
| 51 |
+
::-webkit-scrollbar-thumb:hover {
|
| 52 |
+
opacity: 1;
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
main#page + footer #setBaselineStretch,
|
| 56 |
+
main#page + footer #useBionRead,
|
| 57 |
+
input[type=checkbox] + label .off,
|
| 58 |
+
input[type=checkbox]:checked + label .on,
|
| 59 |
+
#TableOfContents + nav > ul,
|
| 60 |
+
#TableOfContents + nav > ul > li,
|
| 61 |
+
.has-desc:after {
|
| 62 |
+
display: block;
|
| 63 |
+
}
|
| 64 |
+
|
| 65 |
+
input[type=checkbox]:checked + label .off,
|
| 66 |
+
input[type=checkbox] + label .on,
|
| 67 |
+
#setBaselineStretch,
|
| 68 |
+
#has-breadcrumb summary,
|
| 69 |
+
#has-pagination summary,
|
| 70 |
+
#page #back,
|
| 71 |
+
.feed-item > footer > ul::-webkit-scrollbar,
|
| 72 |
+
.feed-item > hgroup > div > span::-webkit-scrollbar,
|
| 73 |
+
.feed-item .date-has-label .doc-publish-date,
|
| 74 |
+
.carousel__viewport::-webkit-scrollbar,
|
| 75 |
+
#logomark--dark,
|
| 76 |
+
#top-nav[open] > summary,
|
| 77 |
+
#top-nav-screen,
|
| 78 |
+
#has-more-menu[open] > summary > .t,
|
| 79 |
+
.languangeName,
|
| 80 |
+
a#has-i18n > img,
|
| 81 |
+
.list-month > summary::marker,
|
| 82 |
+
.list-month > summary::-webkit-details-marker,
|
| 83 |
+
#series ~ .list-year .has-post::after,
|
| 84 |
+
#content a.footnote-ref::after,
|
| 85 |
+
#content a.footnote-backref::after,
|
| 86 |
+
details.presentation > summary::-webkit-details-marker,
|
| 87 |
+
details.presentation > summary::marker,
|
| 88 |
+
td.lntd:first-child code.hljs {
|
| 89 |
+
display: none;
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
#has-a11y[open] #a11y,
|
| 93 |
+
#OpenDyslexic:hover + label #OpenDyslexicIndicator,
|
| 94 |
+
#OpenDyslexic:focus + label #OpenDyslexicIndicator,
|
| 95 |
+
#logo #logotype__text,
|
| 96 |
+
.marginpar-ctrl:checked + label::before,
|
| 97 |
+
details[open] > .anchor:after,
|
| 98 |
+
details[open] .on-plank,
|
| 99 |
+
.l1 details[open] > ul,
|
| 100 |
+
.marginpar-ctrl:checked + label + .marginpar,
|
| 101 |
+
#has-l10n a:hover,
|
| 102 |
+
#has-l10n a:focus,
|
| 103 |
+
#top-nav a:hover,
|
| 104 |
+
#top-nav a:focus,
|
| 105 |
+
.anchor:hover,
|
| 106 |
+
.anchor:focus,
|
| 107 |
+
#has-a11y[open] > summary .icon::before,
|
| 108 |
+
#has-search[open] .icon::before,
|
| 109 |
+
details[open] > summary > .menu-icon::before,
|
| 110 |
+
.loading:after,
|
| 111 |
+
#top-nav[open] > nav {
|
| 112 |
+
-webkit-animation: var(--anm);
|
| 113 |
+
-moz-animation: var(--anm);
|
| 114 |
+
-o-animation: var(--anm);
|
| 115 |
+
animation: var(--anm);
|
| 116 |
+
}
|
| 117 |
+
|
| 118 |
+
hr.ldots::after,
|
| 119 |
+
#to-top::before,
|
| 120 |
+
input + label > #lightSwitchIndicator,
|
| 121 |
+
.hand,
|
| 122 |
+
.pagination .rfill a::before,
|
| 123 |
+
.carousel__viewport__slide:last-child > nav a::before,
|
| 124 |
+
#back::before,
|
| 125 |
+
.feed-item:hover,
|
| 126 |
+
.feed-item:focus-within,
|
| 127 |
+
ul.carousel__viewport > li:hover,
|
| 128 |
+
ul.carousel__viewport > li:focus-within,
|
| 129 |
+
.pagination .lfill a::after,
|
| 130 |
+
#list-tags > nav a::after,
|
| 131 |
+
.carousel__viewport__slide:first-child > nav a::after,
|
| 132 |
+
.parent-anchor a::after,
|
| 133 |
+
#i18n-menu a::after,
|
| 134 |
+
#content a::after,
|
| 135 |
+
#duckduckgo .form__button,
|
| 136 |
+
#to-content,
|
| 137 |
+
.t {
|
| 138 |
+
-webkit-transform: var(--tsf);
|
| 139 |
+
-moz-transform: var(--tsf);
|
| 140 |
+
-ms-transform: var(--tsf);
|
| 141 |
+
-o-transform: var(--tsf);
|
| 142 |
+
transform: var(--tsf);
|
| 143 |
+
}
|
| 144 |
+
|
| 145 |
+
#OpenDyslexicIndicator,
|
| 146 |
+
.marginpar-ctrl + label::before,
|
| 147 |
+
.anchor:after,
|
| 148 |
+
#has-share i:hover {
|
| 149 |
+
-webkit-transition: var(--tst);
|
| 150 |
+
-moz-transition: var(--tst);
|
| 151 |
+
-o-transition: var(--tst);
|
| 152 |
+
transition: var(--tst);
|
| 153 |
+
}
|
| 154 |
+
|
| 155 |
+
#has-a11y[open] #a11y,
|
| 156 |
+
details[open] .on-plank,
|
| 157 |
+
.l1 details[open] > ul,
|
| 158 |
+
.marginpar-ctrl:checked + label + .marginpar,
|
| 159 |
+
#top-nav[open] > nav {
|
| 160 |
+
-webkit-transform-origin: var(--tso);
|
| 161 |
+
-moz-transform-origin: var(--tso);
|
| 162 |
+
-ms-transform-origin: var(--tso);
|
| 163 |
+
-o-transform-origin: var(--tso);
|
| 164 |
+
transform-origin: var(--tso);
|
| 165 |
+
}
|
| 166 |
+
|
| 167 |
+
#has-share a:focus,
|
| 168 |
+
.form > *:focus {
|
| 169 |
+
outline: none !important;
|
| 170 |
+
}
|
| 171 |
+
|
| 172 |
+
hgroup,
|
| 173 |
+
hgroup > h1,
|
| 174 |
+
figure,
|
| 175 |
+
#setOpenDyslexic > label::before,
|
| 176 |
+
#main-footer-secondary,
|
| 177 |
+
#menu-footer {
|
| 178 |
+
margin: 0;
|
| 179 |
+
}
|
| 180 |
+
|
| 181 |
+
ul.rounded,
|
| 182 |
+
.list-day {
|
| 183 |
+
padding: 0;
|
| 184 |
+
}
|
| 185 |
+
|
| 186 |
+
ul.delimiter:first-child li:first-child:before,
|
| 187 |
+
.feed-item > hgroup ul.delimiter:first-child li:last-child::after,
|
| 188 |
+
#content a.has-img::after,
|
| 189 |
+
#doc-author .delimiter li:last-child::after {
|
| 190 |
+
content: '';
|
| 191 |
+
}
|
assets/css/typeface-local/Cormorant.css
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@font-face {
|
| 2 |
+
font-family: 'Cormorant';
|
| 3 |
+
font-style: normal;
|
| 4 |
+
font-weight: 400;
|
| 5 |
+
font-display: swap;
|
| 6 |
+
src: url(/css/fonts/Cormorant-Regular.woff2) format('woff2');
|
| 7 |
+
size-adjust: 110%;
|
| 8 |
+
ascent-override: 80%;
|
| 9 |
+
descent-override: 28%;
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
@font-face {
|
| 13 |
+
font-family: 'Cormorant';
|
| 14 |
+
font-style: italic;
|
| 15 |
+
font-weight: 400;
|
| 16 |
+
font-display: swap;
|
| 17 |
+
src: url(/css/fonts/Cormorant-Italic.woff2) format('woff2');
|
| 18 |
+
size-adjust: 110%;
|
| 19 |
+
ascent-override: 80%;
|
| 20 |
+
descent-override: 28%;
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
@font-face {
|
| 24 |
+
font-family: 'Cormorant';
|
| 25 |
+
font-style: normal;
|
| 26 |
+
font-weight: 700;
|
| 27 |
+
font-display: swap;
|
| 28 |
+
src: url(/css/fonts/Cormorant-Bold.woff2) format('woff2');
|
| 29 |
+
size-adjust: 110%;
|
| 30 |
+
ascent-override: 80%;
|
| 31 |
+
descent-override: 28%;
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
@font-face {
|
| 35 |
+
font-family: 'Cormorant';
|
| 36 |
+
font-style: italic;
|
| 37 |
+
font-weight: 700;
|
| 38 |
+
font-display: swap;
|
| 39 |
+
src: url(/css/fonts/Cormorant-BoldItalic.woff2) format('woff2');
|
| 40 |
+
size-adjust: 110%;
|
| 41 |
+
ascent-override: 80%;
|
| 42 |
+
descent-override: 28%;
|
| 43 |
+
}
|
| 44 |
+
|
| 45 |
+
:root {
|
| 46 |
+
--rm: 'Cormorant';
|
| 47 |
+
}
|
assets/css/typeface-local/Crimson.css
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@font-face {
|
| 2 |
+
font-family: 'crimson';
|
| 3 |
+
font-style: normal;
|
| 4 |
+
font-weight: 400;
|
| 5 |
+
font-display: swap;
|
| 6 |
+
src: local('Crimson Roman'),
|
| 7 |
+
url(/css/fonts/crimson-roman-webfont.woff2) format('woff2');
|
| 8 |
+
size-adjust: 95%;
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
@font-face {
|
| 12 |
+
font-family: 'crimson';
|
| 13 |
+
font-style: italic;
|
| 14 |
+
font-weight: 400;
|
| 15 |
+
font-display: swap;
|
| 16 |
+
src: local('Crimson Italic'),
|
| 17 |
+
url(/css/fonts/crimson-italic-webfont.woff2) format('woff2');
|
| 18 |
+
size-adjust: 95%;
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
@font-face {
|
| 22 |
+
font-family: 'crimson';
|
| 23 |
+
font-style: normal;
|
| 24 |
+
font-weight: 700;
|
| 25 |
+
font-display: swap;
|
| 26 |
+
src: local('Crimson Bold'),
|
| 27 |
+
url(/css/fonts/crimson-bold-webfont.woff2) format('woff2');
|
| 28 |
+
size-adjust: 95%;
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
@font-face {
|
| 32 |
+
font-family: 'crimson';
|
| 33 |
+
font-style: italic;
|
| 34 |
+
font-weight: 700;
|
| 35 |
+
font-display: swap;
|
| 36 |
+
src: local('Crimson BoldItalic'),
|
| 37 |
+
url(/css/fonts/crimson-bolditalic-webfont.woff2) format('woff2');
|
| 38 |
+
size-adjust: 95%;
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
:root {
|
| 42 |
+
--rm: 'crimson';
|
| 43 |
+
}
|
assets/css/typeface-local/EBGaramond.css
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@font-face {
|
| 2 |
+
font-family: 'EB Garamond';
|
| 3 |
+
font-style: normal;
|
| 4 |
+
font-weight: 400;
|
| 5 |
+
font-display: swap;
|
| 6 |
+
src: url(/css/fonts/EBGaramond12-Regular.woff2) format('woff2');
|
| 7 |
+
size-adjust: 102%;
|
| 8 |
+
ascent-override: 87%;
|
| 9 |
+
descent-override: 30%;
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
@font-face {
|
| 13 |
+
font-family: 'EB Garamond';
|
| 14 |
+
font-style: italic;
|
| 15 |
+
font-weight: 400;
|
| 16 |
+
font-display: swap;
|
| 17 |
+
src: url(/css/fonts/EBGaramond12-Italic.woff2) format('woff2');
|
| 18 |
+
size-adjust: 102%;
|
| 19 |
+
ascent-override: 87%;
|
| 20 |
+
descent-override: 30%;
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
@font-face {
|
| 24 |
+
font-family: 'EB Garamond';
|
| 25 |
+
font-style: normal;
|
| 26 |
+
font-weight: 700;
|
| 27 |
+
font-display: swap;
|
| 28 |
+
src: url(/css/fonts/EBGaramond12-Bold.woff) format('woff');
|
| 29 |
+
size-adjust: 102%;
|
| 30 |
+
ascent-override: 87%;
|
| 31 |
+
descent-override: 30%;
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
@font-face {
|
| 35 |
+
font-family: 'EB Garamond';
|
| 36 |
+
font-style: italic;
|
| 37 |
+
font-weight: 700;
|
| 38 |
+
font-display: swap;
|
| 39 |
+
src: url(/css/fonts/EBGaramond12-BoldItalic.woff) format('woff');
|
| 40 |
+
size-adjust: 102%;
|
| 41 |
+
ascent-override: 87%;
|
| 42 |
+
descent-override: 30%;
|
| 43 |
+
}
|
| 44 |
+
|
| 45 |
+
:root {
|
| 46 |
+
--rm: 'EB Garamond';
|
| 47 |
+
}
|
assets/css/typeface-local/Inconsolata.css
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@font-face {
|
| 2 |
+
font-family: 'Inconsolata';
|
| 3 |
+
font-style: normal;
|
| 4 |
+
font-weight: 400;
|
| 5 |
+
font-display: swap;
|
| 6 |
+
src: local('Inconsolata'),
|
| 7 |
+
url(/css/fonts/Inconsolata-Regular.woff2) format('woff2');
|
| 8 |
+
ascent-override: 88%;
|
| 9 |
+
descent-override: 30%;
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
@font-face {
|
| 13 |
+
font-family: 'Inconsolata';
|
| 14 |
+
font-style: normal;
|
| 15 |
+
font-weight: 700;
|
| 16 |
+
font-display: swap;
|
| 17 |
+
src: local('Inconsolata Bold'),
|
| 18 |
+
url(/css/fonts/Inconsolata-Bold.woff2) format('woff2');
|
| 19 |
+
ascent-override: 88%;
|
| 20 |
+
descent-override: 30%;
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
:root {
|
| 24 |
+
--tt: 'Inconsolata';
|
| 25 |
+
}
|
assets/css/typeface-local/Inter.css
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@font-face {
|
| 2 |
+
font-family: 'Inter';
|
| 3 |
+
font-style: normal;
|
| 4 |
+
font-weight: 400;
|
| 5 |
+
font-display: swap;
|
| 6 |
+
src: local('Inter'),
|
| 7 |
+
url(/css/fonts/Inter-Regular.woff2) format('woff2');
|
| 8 |
+
size-adjust: 84%;
|
| 9 |
+
ascent-override: 104%;
|
| 10 |
+
descent-override: 36%;
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
@font-face {
|
| 14 |
+
font-family: 'Inter';
|
| 15 |
+
font-style: italic;
|
| 16 |
+
font-weight: 400;
|
| 17 |
+
font-display: swap;
|
| 18 |
+
src: local('Inter Italic'),
|
| 19 |
+
url(/css/fonts/Inter-Italic.woff2) format('woff2');
|
| 20 |
+
size-adjust: 84%;
|
| 21 |
+
ascent-override: 104%;
|
| 22 |
+
descent-override: 36%;
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
@font-face {
|
| 26 |
+
font-family: 'Inter';
|
| 27 |
+
font-style: normal;
|
| 28 |
+
font-weight: 700;
|
| 29 |
+
font-display: swap;
|
| 30 |
+
src: local('Inter Bold'),
|
| 31 |
+
url(/css/fonts/Inter-Bold.woff2) format('woff2');
|
| 32 |
+
size-adjust: 84%;
|
| 33 |
+
ascent-override: 104%;
|
| 34 |
+
descent-override: 36%;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
@font-face {
|
| 38 |
+
font-family: 'Inter';
|
| 39 |
+
font-style: italic;
|
| 40 |
+
font-weight: 700;
|
| 41 |
+
font-display: swap;
|
| 42 |
+
src: local('Inter Bold Italic'),
|
| 43 |
+
url(/css/fonts/Inter-BoldItalic.woff2) format('woff2');
|
| 44 |
+
size-adjust: 84%;
|
| 45 |
+
ascent-override: 104%;
|
| 46 |
+
descent-override: 36%;
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
:root {
|
| 50 |
+
--sf: 'Inter';
|
| 51 |
+
}
|
assets/css/typeface-local/Montserrat.css
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@font-face {
|
| 2 |
+
font-family: 'Montserrat';
|
| 3 |
+
font-style: normal;
|
| 4 |
+
font-weight: 400;
|
| 5 |
+
font-display: swap;
|
| 6 |
+
src: url(/css/fonts/Montserrat-Regular.woff2) format('woff2');
|
| 7 |
+
size-adjust: 85%;
|
| 8 |
+
ascent-override: 104%;
|
| 9 |
+
descent-override: 36%;
|
| 10 |
+
line-gap-override: 50%;
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
@font-face {
|
| 14 |
+
font-family: 'Montserrat';
|
| 15 |
+
font-style: italic;
|
| 16 |
+
font-weight: 400;
|
| 17 |
+
font-display: swap;
|
| 18 |
+
src: url(/css/fonts/Montserrat-Italic.woff2) format('woff2');
|
| 19 |
+
size-adjust: 85%;
|
| 20 |
+
ascent-override: 104%;
|
| 21 |
+
descent-override: 36%;
|
| 22 |
+
line-gap-override: 50%;
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
@font-face {
|
| 26 |
+
font-family: 'Montserrat';
|
| 27 |
+
font-style: normal;
|
| 28 |
+
font-weight: 700;
|
| 29 |
+
font-display: swap;
|
| 30 |
+
src: url(/css/fonts/Montserrat-Bold.woff2) format('woff2');
|
| 31 |
+
size-adjust: 85%;
|
| 32 |
+
ascent-override: 104%;
|
| 33 |
+
descent-override: 36%;
|
| 34 |
+
line-gap-override: 50%;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
@font-face {
|
| 38 |
+
font-family: 'Montserrat';
|
| 39 |
+
font-style: italic;
|
| 40 |
+
font-weight: 700;
|
| 41 |
+
font-display: swap;
|
| 42 |
+
src: url(/css/fonts/Montserrat-BoldItalic.woff2) format('woff2');
|
| 43 |
+
size-adjust: 85%;
|
| 44 |
+
ascent-override: 104%;
|
| 45 |
+
descent-override: 36%;
|
| 46 |
+
line-gap-override: 50%;
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
:root {
|
| 50 |
+
--sf: 'Montserrat';
|
| 51 |
+
}
|
assets/css/typeface-local/OpenDyslexic.css
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@font-face {
|
| 2 |
+
font-family: 'OpenDyslexic';
|
| 3 |
+
font-style: normal;
|
| 4 |
+
font-weight: 400;
|
| 5 |
+
font-display: swap;
|
| 6 |
+
src: local('OpenDyslexic'),
|
| 7 |
+
url(/css/fonts/OpenDyslexic-Regular.woff2) format('woff2');
|
| 8 |
+
size-adjust: 83%;
|
| 9 |
+
ascent-override: 106%;
|
| 10 |
+
descent-override: 36%;
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
@font-face {
|
| 14 |
+
font-family: 'OpenDyslexic';
|
| 15 |
+
font-style: italic;
|
| 16 |
+
font-weight: 400;
|
| 17 |
+
font-display: swap;
|
| 18 |
+
src: local('OpenDyslexic Italic'),
|
| 19 |
+
url(/css/fonts/OpenDyslexic-Italic.woff2) format('woff2');
|
| 20 |
+
size-adjust: 83%;
|
| 21 |
+
ascent-override: 106%;
|
| 22 |
+
descent-override: 36%;
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
@font-face {
|
| 26 |
+
font-family: 'OpenDyslexic';
|
| 27 |
+
font-style: normal;
|
| 28 |
+
font-weight: 700;
|
| 29 |
+
font-display: swap;
|
| 30 |
+
src: local('OpenDyslexic Bold'),
|
| 31 |
+
url(/css/fonts/OpenDyslexic-Bold.woff2) format('woff2');
|
| 32 |
+
size-adjust: 83%;
|
| 33 |
+
ascent-override: 106%;
|
| 34 |
+
descent-override: 36%;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
@font-face {
|
| 38 |
+
font-family: 'OpenDyslexic';
|
| 39 |
+
font-style: italic;
|
| 40 |
+
font-weight: 700;
|
| 41 |
+
font-display: swap;
|
| 42 |
+
src: local('OpenDyslexic Bold Italic'),
|
| 43 |
+
url(/css/fonts/OpenDyslexic-Bold-Italic.woff2) format('woff2');
|
| 44 |
+
size-adjust: 83%;
|
| 45 |
+
ascent-override: 106%;
|
| 46 |
+
descent-override: 36%;
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
:root {
|
| 50 |
+
--od: 'OpenDyslexic';
|
| 51 |
+
}
|
assets/css/typeface-local/Rosario.css
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@font-face {
|
| 2 |
+
font-family: 'Rosario';
|
| 3 |
+
font-style: normal;
|
| 4 |
+
font-weight: 400;
|
| 5 |
+
font-display: swap;
|
| 6 |
+
src: url(/css/fonts/Rosario-Regular.woff2) format('woff2');
|
| 7 |
+
size-adjust: 90%;
|
| 8 |
+
descent-override: 33%;
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
@font-face {
|
| 12 |
+
font-family: 'Rosario';
|
| 13 |
+
font-style: italic;
|
| 14 |
+
font-weight: 400;
|
| 15 |
+
font-display: swap;
|
| 16 |
+
src: url(/css/fonts/Rosario-Italic.woff2) format('woff2');
|
| 17 |
+
size-adjust: 90%;
|
| 18 |
+
descent-override: 33%;
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
@font-face {
|
| 22 |
+
font-family: 'Rosario';
|
| 23 |
+
font-style: normal;
|
| 24 |
+
font-weight: 700;
|
| 25 |
+
font-display: swap;
|
| 26 |
+
src: url(/css/fonts/Rosario-Bold.woff2) format('woff2');
|
| 27 |
+
size-adjust: 90%;
|
| 28 |
+
descent-override: 33%;
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
@font-face {
|
| 32 |
+
font-family: 'Rosario';
|
| 33 |
+
font-style: italic;
|
| 34 |
+
font-weight: 700;
|
| 35 |
+
font-display: swap;
|
| 36 |
+
src: url(/css/fonts/Rosario-BoldItalic.woff2) format('woff2');
|
| 37 |
+
size-adjust: 90%;
|
| 38 |
+
descent-override: 33%;
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
:root {
|
| 42 |
+
--sf: 'Rosario';
|
| 43 |
+
}
|
assets/css/typeface-local/icon.css
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/* Icon Fonts */
|
| 2 |
+
@font-face {
|
| 3 |
+
font-family: 'base-ui';
|
| 4 |
+
font-weight: normal;
|
| 5 |
+
font-style: normal;
|
| 6 |
+
font-display: block;
|
| 7 |
+
src: url('/css/fonts/base-ui.woff2') format('woff2');
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
/* fallback setting for websafefonts */
|
| 11 |
+
|
| 12 |
+
@font-face {
|
| 13 |
+
font-family: 'Times New Roman';
|
| 14 |
+
src: local('Times New Roman');
|
| 15 |
+
size-adjust: 102%;
|
| 16 |
+
ascent-override: 87%;
|
| 17 |
+
descent-override: 30%;
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
@font-face {
|
| 21 |
+
font-family: 'Arial';
|
| 22 |
+
src: local('Arial');
|
| 23 |
+
size-adjust: 87%;
|
| 24 |
+
ascent-override: 101%;
|
| 25 |
+
descent-override: 34%;
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
@font-face {
|
| 29 |
+
font-family: 'Courier New';
|
| 30 |
+
src: local('Courier New');
|
| 31 |
+
size-adjust: 107%;
|
| 32 |
+
ascent-override: 83%;
|
| 33 |
+
descent-override: 28%;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
#mastodonInstance::before,
|
| 37 |
+
#has-share i,
|
| 38 |
+
.stat a::before,
|
| 39 |
+
.icon {
|
| 40 |
+
font-family: 'base-ui' !important;
|
| 41 |
+
speak: never;
|
| 42 |
+
font-style: normal;
|
| 43 |
+
font-weight: normal;
|
| 44 |
+
font-variant: normal;
|
| 45 |
+
text-transform: none;
|
| 46 |
+
line-height: 1;
|
| 47 |
+
-webkit-font-smoothing: antialiased;
|
| 48 |
+
-moz-osx-font-smoothing: grayscale;
|
| 49 |
+
-webkit-font-feature-settings: 'liga';
|
| 50 |
+
-moz-font-feature-settings: 'liga=1';
|
| 51 |
+
-moz-font-feature-settings: 'liga';
|
| 52 |
+
-ms-font-feature-settings: 'liga' 1;
|
| 53 |
+
font-feature-settings: 'liga';
|
| 54 |
+
-webkit-font-variant-ligatures: discretionary-ligatures;
|
| 55 |
+
font-variant-ligatures: discretionary-ligatures;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
.emoji {
|
| 59 |
+
font-family: 'Apple Color Emoji', 'Segoe UI Emoji', NotoColorEmoji, 'Segoe UI Symbol', 'Android Emoji', EmojiSymbols;
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
.icon.accessibility:before {content: '\e900';}
|
| 63 |
+
.icon.arrow:before {content: '\e902';}
|
| 64 |
+
.icon.circle-checked:before {content: '\e903';}
|
| 65 |
+
.icon.circle-unchecked:before {content: '\e904';}
|
| 66 |
+
.icon.copyleft:before {content: '\e906';}
|
| 67 |
+
#has-share .email:before,
|
| 68 |
+
.icon.email:before {content: '\e907';}
|
| 69 |
+
a.favourites::before,
|
| 70 |
+
.icon.heart:before {content: '\e908';}
|
| 71 |
+
.icon.internationalization:before {content: '\e909';}
|
| 72 |
+
.icon.localization:before {content: '\e90a';}
|
| 73 |
+
.icon.menu:before {content: '\e90b';}
|
| 74 |
+
#has-share .print:before,
|
| 75 |
+
.icon.print:before {content: '\e90c';}
|
| 76 |
+
.reblogs::before,
|
| 77 |
+
.icon.reblog:before {content: '\e90d';}
|
| 78 |
+
a.replies::before,
|
| 79 |
+
.icon.reply:before {content: '\e90e';}
|
| 80 |
+
.icon.reset:before {content: '\e90f';}
|
| 81 |
+
.icon.rss:before {content: '\e910';}
|
| 82 |
+
.icon.search:before {content: '\e911';}
|
| 83 |
+
.icon.share:before {content: '\e912';}
|
| 84 |
+
.icon.xmark:before {content: '\e913';}
|
| 85 |
+
.icon.behance:before {content: '\e914';}
|
| 86 |
+
.icon.bigcartel:before {content: '\e915';}
|
| 87 |
+
.icon.bitbucket:before {content: '\e916';}
|
| 88 |
+
.icon.blogger:before {content: '\e917';}
|
| 89 |
+
#has-share .bluesky:before,
|
| 90 |
+
.icon.bluesky:before {content: '\e918';}
|
| 91 |
+
.icon.bukalapak:before {content: '\e919';}
|
| 92 |
+
.icon.buymeacoffee:before {content: '\e91a';}
|
| 93 |
+
.icon.clubhouse:before {content: '\e91b';}
|
| 94 |
+
.icon.codepen:before {content: '\e91c';}
|
| 95 |
+
.icon.creativefabrica:before {content: '\e91d';}
|
| 96 |
+
.icon.dailymotion:before {content: '\e91e';}
|
| 97 |
+
.icon.dev:before {content: '\e91f';}
|
| 98 |
+
.icon.deviantart:before {content: '\e920';}
|
| 99 |
+
.icon.digg:before {content: '\e921';}
|
| 100 |
+
.icon.discord:before {content: '\e922';}
|
| 101 |
+
.icon.dribbble:before {content: '\e923';}
|
| 102 |
+
.icon.ebay:before {content: '\e924';}
|
| 103 |
+
.icon.etsy:before {content: '\e925';}
|
| 104 |
+
#has-share .facebook:before,
|
| 105 |
+
.icon.facebook:before {content: '\e926';}
|
| 106 |
+
.icon.figma:before {content: '\e927';}
|
| 107 |
+
.icon.flickr:before {content: '\e928';}
|
| 108 |
+
.icon.flipkart:before {content: '\e929';}
|
| 109 |
+
.icon.github:before {content: '\e92a';}
|
| 110 |
+
.icon.githubsponsors:before {content: '\e92b';}
|
| 111 |
+
.icon.gitlab:before {content: '\e92c';}
|
| 112 |
+
.icon.gnusocial:before {content: '\e92d';}
|
| 113 |
+
.icon.goodreads:before {content: '\e92e';}
|
| 114 |
+
.icon.googlescholar:before {content: '\e92f';}
|
| 115 |
+
.icon.gumroad:before {content: '\e930';}
|
| 116 |
+
#has-share .hackernews:before,
|
| 117 |
+
.icon.hackernews:before {content: '\e931';}
|
| 118 |
+
.icon.hashnode:before {content: '\e932';}
|
| 119 |
+
.icon.icon--500px:before {content: '\e933';}
|
| 120 |
+
.icon.instagram:before {content: '\e934';}
|
| 121 |
+
.icon.jsfiddle:before {content: '\e935';}
|
| 122 |
+
.icon.karyakarsa:before {content: '\e936';}
|
| 123 |
+
.icon.keybase:before {content: '\e937';}
|
| 124 |
+
.icon.keycdn:before {content: '\e938';}
|
| 125 |
+
.icon.kickstarter:before {content: '\e939';}
|
| 126 |
+
.icon.kofi:before {content: '\e93a';}
|
| 127 |
+
.icon.lazada:before {content: '\e93b';}
|
| 128 |
+
.icon.liberapay:before {content: '\e93c';}
|
| 129 |
+
#has-share .linkedin:before,
|
| 130 |
+
.icon.linkedin:before {content: '\e93d';}
|
| 131 |
+
.icon.mastodon:before {content: '\e93e';}
|
| 132 |
+
.icon.medium:before {content: '\e93f';}
|
| 133 |
+
.icon.olx:before {content: '\e940';}
|
| 134 |
+
.icon.opencollective:before {content: '\e941';}
|
| 135 |
+
.icon.openid:before {content: '\e942';}
|
| 136 |
+
.icon.orcid:before {content: '\e943';}
|
| 137 |
+
.icon.patreon:before {content: '\e944';}
|
| 138 |
+
.icon.paypal:before {content: '\e945';}
|
| 139 |
+
.icon.peertube:before {content: '\e946';}
|
| 140 |
+
#has-share .pinterest:before,
|
| 141 |
+
.icon.pinterest:before {content: '\e947';}
|
| 142 |
+
.icon.pleroma:before {content: '\e948';}
|
| 143 |
+
.icon.publons:before {content: '\e949';}
|
| 144 |
+
.icon.quora:before {content: '\e94a';}
|
| 145 |
+
#has-share .reddit:before,
|
| 146 |
+
.icon.reddit:before {content: '\e94b';}
|
| 147 |
+
.icon.researchgate:before {content: '\e94c';}
|
| 148 |
+
.icon.saweria:before {content: '\e94d';}
|
| 149 |
+
.icon.sellfy:before {content: '\e94e';}
|
| 150 |
+
.icon.shopee:before {content: '\e94f';}
|
| 151 |
+
.icon.shopify:before {content: '\e950';}
|
| 152 |
+
.icon.signal:before {content: '\e951';}
|
| 153 |
+
.icon.snapchat:before {content: '\e952';}
|
| 154 |
+
.icon.soundcloud:before {content: '\e953';}
|
| 155 |
+
.icon.stackexchange:before {content: '\e954';}
|
| 156 |
+
.icon.stackoverflow:before {content: '\e955';}
|
| 157 |
+
.icon.stripe:before {content: '\e956';}
|
| 158 |
+
.icon.substack:before {content: '\e957';}
|
| 159 |
+
#has-share .telegram:before,
|
| 160 |
+
.icon.telegram:before {content: '\e958';}
|
| 161 |
+
.icon.threads:before {content: '\e959';}
|
| 162 |
+
.icon.tiktok:before {content: '\e95a';}
|
| 163 |
+
.icon.tokopedia:before {content: '\e95b';}
|
| 164 |
+
#has-share .tumblr:before,
|
| 165 |
+
.icon.tumblr:before {content: '\e95c';}
|
| 166 |
+
.icon.twitch:before {content: '\e95d';}
|
| 167 |
+
#has-share .twitter:before,
|
| 168 |
+
.icon.twitter:before {content: '\e95e';}
|
| 169 |
+
.icon.vimeo:before {content: '\e95f';}
|
| 170 |
+
.icon.vine:before {content: '\e960';}
|
| 171 |
+
#has-share .vk:before,
|
| 172 |
+
.icon.vk:before {content: '\e961';}
|
| 173 |
+
.icon.wattpad:before {content: '\e962';}
|
| 174 |
+
.icon.weibo:before {content: '\e963';}
|
| 175 |
+
#has-share .whatsapp:before,
|
| 176 |
+
.icon.whatsapp:before {content: '\e964';}
|
| 177 |
+
.icon.wikipedia:before {content: '\e965';}
|
| 178 |
+
.icon.wordpress:before {content: '\e966';}
|
| 179 |
+
.icon.write-dot-as:before {content: '\e967';}
|
| 180 |
+
.icon.x:before {content: '\e968';}
|
| 181 |
+
#has-share .xing:before,
|
| 182 |
+
.icon.xing:before {content: '\e969';}
|
| 183 |
+
.icon.xmpp:before {content: '\e96a';}
|
| 184 |
+
.icon.youtube:before {content: '\e96b';}
|
assets/css/typeface/Cormorant.css
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@font-face {
|
| 2 |
+
font-family: 'Cormorant';
|
| 3 |
+
font-style: normal;
|
| 4 |
+
font-weight: 400;
|
| 5 |
+
font-display: swap;
|
| 6 |
+
src: url(https://raw.githubusercontent.com/CatharsisFonts/Cormorant/master/fonts/webfonts/Cormorant-Regular.woff2) format('woff2');
|
| 7 |
+
size-adjust: 110%;
|
| 8 |
+
ascent-override: 80%;
|
| 9 |
+
descent-override: 28%;
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
@font-face {
|
| 13 |
+
font-family: 'Cormorant';
|
| 14 |
+
font-style: italic;
|
| 15 |
+
font-weight: 400;
|
| 16 |
+
font-display: swap;
|
| 17 |
+
src: url(https://raw.githubusercontent.com/CatharsisFonts/Cormorant/master/fonts/webfonts/Cormorant-Italic.woff2) format('woff2');
|
| 18 |
+
size-adjust: 110%;
|
| 19 |
+
ascent-override: 80%;
|
| 20 |
+
descent-override: 28%;
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
@font-face {
|
| 24 |
+
font-family: 'Cormorant';
|
| 25 |
+
font-style: normal;
|
| 26 |
+
font-weight: 700;
|
| 27 |
+
font-display: swap;
|
| 28 |
+
src: url(https://raw.githubusercontent.com/CatharsisFonts/Cormorant/master/fonts/webfonts/Cormorant-Bold.woff2) format('woff2');
|
| 29 |
+
size-adjust: 110%;
|
| 30 |
+
ascent-override: 80%;
|
| 31 |
+
descent-override: 28%;
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
@font-face {
|
| 35 |
+
font-family: 'Cormorant';
|
| 36 |
+
font-style: italic;
|
| 37 |
+
font-weight: 700;
|
| 38 |
+
font-display: swap;
|
| 39 |
+
src: url(https://raw.githubusercontent.com/CatharsisFonts/Cormorant/master/fonts/webfonts/Cormorant-BoldItalic.woff2) format('woff2');
|
| 40 |
+
size-adjust: 110%;
|
| 41 |
+
ascent-override: 80%;
|
| 42 |
+
descent-override: 28%;
|
| 43 |
+
}
|
| 44 |
+
|
| 45 |
+
:root {
|
| 46 |
+
--rm: 'Cormorant';
|
| 47 |
+
}
|
assets/css/typeface/Crimson.css
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@font-face {
|
| 2 |
+
font-family: 'crimson';
|
| 3 |
+
font-style: normal;
|
| 4 |
+
font-weight: 400;
|
| 5 |
+
font-display: swap;
|
| 6 |
+
src: local('Crimson Roman'),
|
| 7 |
+
url(https://raw.githubusercontent.com/skosch/Crimson/master/Web%20Fonts/crimson-roman-webfont.woff2) format('woff2');
|
| 8 |
+
size-adjust: 95%;
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
@font-face {
|
| 12 |
+
font-family: 'crimson';
|
| 13 |
+
font-style: italic;
|
| 14 |
+
font-weight: 400;
|
| 15 |
+
font-display: swap;
|
| 16 |
+
src: local('Crimson Italic'),
|
| 17 |
+
url(https://raw.githubusercontent.com/skosch/Crimson/master/Web%20Fonts/crimson-italic-webfont.woff2) format('woff2');
|
| 18 |
+
size-adjust: 95%;
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
@font-face {
|
| 22 |
+
font-family: 'crimson';
|
| 23 |
+
font-style: normal;
|
| 24 |
+
font-weight: 700;
|
| 25 |
+
font-display: swap;
|
| 26 |
+
src: local('Crimson Bold'),
|
| 27 |
+
url(https://raw.githubusercontent.com/skosch/Crimson/master/Web%20Fonts/crimson-bold-webfont.woff2) format('woff2');
|
| 28 |
+
size-adjust: 95%;
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
@font-face {
|
| 32 |
+
font-family: 'crimson';
|
| 33 |
+
font-style: italic;
|
| 34 |
+
font-weight: 700;
|
| 35 |
+
font-display: swap;
|
| 36 |
+
src: local('Crimson BoldItalic'),
|
| 37 |
+
url(https://raw.githubusercontent.com/skosch/Crimson/master/Web%20Fonts/crimson-bolditalic-webfont.woff2) format('woff2');
|
| 38 |
+
size-adjust: 95%;
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
:root {
|
| 42 |
+
--rm: 'crimson';
|
| 43 |
+
}
|
assets/css/typeface/EBGaramond.css
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@font-face {
|
| 2 |
+
font-family: 'EB Garamond';
|
| 3 |
+
font-style: normal;
|
| 4 |
+
font-weight: 400;
|
| 5 |
+
font-display: swap;
|
| 6 |
+
src: url(https://raw.githubusercontent.com/imedadel/typeface-eb-garamond-latest/master/files/EBGaramond12-Regular.woff2) format('woff2');
|
| 7 |
+
size-adjust: 102%;
|
| 8 |
+
ascent-override: 87%;
|
| 9 |
+
descent-override: 30%;
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
@font-face {
|
| 13 |
+
font-family: 'EB Garamond';
|
| 14 |
+
font-style: italic;
|
| 15 |
+
font-weight: 400;
|
| 16 |
+
font-display: swap;
|
| 17 |
+
src: url(https://raw.githubusercontent.com/imedadel/typeface-eb-garamond-latest/master/files/EBGaramond12-Italic.woff2) format('woff2');
|
| 18 |
+
size-adjust: 102%;
|
| 19 |
+
ascent-override: 87%;
|
| 20 |
+
descent-override: 30%;
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
@font-face {
|
| 24 |
+
font-family: 'EB Garamond';
|
| 25 |
+
font-style: normal;
|
| 26 |
+
font-weight: 700;
|
| 27 |
+
font-display: swap;
|
| 28 |
+
src: url(https://raw.githubusercontent.com/googlefonts/ebgaramond-specimen/main/docs/fonts/EBGaramond12-Bold.woff) format('woff');
|
| 29 |
+
size-adjust: 102%;
|
| 30 |
+
ascent-override: 87%;
|
| 31 |
+
descent-override: 30%;
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
@font-face {
|
| 35 |
+
font-family: 'EB Garamond';
|
| 36 |
+
font-style: italic;
|
| 37 |
+
font-weight: 700;
|
| 38 |
+
font-display: swap;
|
| 39 |
+
src: url(https://raw.githubusercontent.com/googlefonts/ebgaramond-specimen/main/docs/fonts/EBGaramond12-BoldItalic.woff) format('woff');
|
| 40 |
+
size-adjust: 102%;
|
| 41 |
+
ascent-override: 87%;
|
| 42 |
+
descent-override: 30%;
|
| 43 |
+
}
|
| 44 |
+
|
| 45 |
+
:root {
|
| 46 |
+
--rm: 'EB Garamond';
|
| 47 |
+
}
|
assets/css/typeface/Inconsolata.css
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@font-face {
|
| 2 |
+
font-family: 'Inconsolata';
|
| 3 |
+
font-style: normal;
|
| 4 |
+
font-weight: 400;
|
| 5 |
+
font-display: swap;
|
| 6 |
+
src: local('Inconsolata'),
|
| 7 |
+
url(https://raw.githubusercontent.com/googlefonts/Inconsolata/main/fonts/webfonts/Inconsolata-Regular.woff2) format('woff2');
|
| 8 |
+
ascent-override: 88%;
|
| 9 |
+
descent-override: 30%;
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
@font-face {
|
| 13 |
+
font-family: 'Inconsolata';
|
| 14 |
+
font-style: normal;
|
| 15 |
+
font-weight: 700;
|
| 16 |
+
font-display: swap;
|
| 17 |
+
src: local('Inconsolata Bold'),
|
| 18 |
+
url(https://raw.githubusercontent.com/googlefonts/Inconsolata/main/fonts/webfonts/Inconsolata-Bold.woff2) format('woff2');
|
| 19 |
+
ascent-override: 88%;
|
| 20 |
+
descent-override: 30%;
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
:root {
|
| 24 |
+
--tt: 'Inconsolata';
|
| 25 |
+
}
|
assets/css/typeface/Inter.css
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@font-face {
|
| 2 |
+
font-family: 'Inter';
|
| 3 |
+
font-style: normal;
|
| 4 |
+
font-weight: 400;
|
| 5 |
+
font-display: swap;
|
| 6 |
+
src: local('Inter'),
|
| 7 |
+
url(https://raw.githubusercontent.com/rsms/inter/master/docs/font-files/Inter-Regular.woff2) format('woff2');
|
| 8 |
+
size-adjust: 84%;
|
| 9 |
+
ascent-override: 104%;
|
| 10 |
+
descent-override: 36%;
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
@font-face {
|
| 14 |
+
font-family: 'Inter';
|
| 15 |
+
font-style: italic;
|
| 16 |
+
font-weight: 400;
|
| 17 |
+
font-display: swap;
|
| 18 |
+
src: local('Inter Italic'),
|
| 19 |
+
url(https://raw.githubusercontent.com/rsms/inter/master/docs/font-files/Inter-Italic.woff2) format('woff2');
|
| 20 |
+
size-adjust: 84%;
|
| 21 |
+
ascent-override: 104%;
|
| 22 |
+
descent-override: 36%;
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
@font-face {
|
| 26 |
+
font-family: 'Inter';
|
| 27 |
+
font-style: normal;
|
| 28 |
+
font-weight: 700;
|
| 29 |
+
font-display: swap;
|
| 30 |
+
src: local('Inter Bold'),
|
| 31 |
+
url(https://raw.githubusercontent.com/rsms/inter/master/docs/font-files/Inter-Bold.woff2) format('woff2');
|
| 32 |
+
size-adjust: 84%;
|
| 33 |
+
ascent-override: 104%;
|
| 34 |
+
descent-override: 36%;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
@font-face {
|
| 38 |
+
font-family: 'Inter';
|
| 39 |
+
font-style: italic;
|
| 40 |
+
font-weight: 700;
|
| 41 |
+
font-display: swap;
|
| 42 |
+
src: local('Inter Bold Italic'),
|
| 43 |
+
url(https://raw.githubusercontent.com/rsms/inter/master/docs/font-files/Inter-BoldItalic.woff2) format('woff2');
|
| 44 |
+
size-adjust: 84%;
|
| 45 |
+
ascent-override: 104%;
|
| 46 |
+
descent-override: 36%;
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
:root {
|
| 50 |
+
--sf: 'Inter';
|
| 51 |
+
}
|
assets/css/typeface/Montserrat.css
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@font-face {
|
| 2 |
+
font-family: 'Montserrat';
|
| 3 |
+
font-style: normal;
|
| 4 |
+
font-weight: 400;
|
| 5 |
+
font-display: swap;
|
| 6 |
+
src: url(https://raw.githubusercontent.com/JulietaUla/Montserrat/master/fonts/webfonts/Montserrat-Regular.woff2) format('woff2');
|
| 7 |
+
size-adjust: 85%;
|
| 8 |
+
ascent-override: 104%;
|
| 9 |
+
descent-override: 36%;
|
| 10 |
+
line-gap-override: 50%;
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
@font-face {
|
| 14 |
+
font-family: 'Montserrat';
|
| 15 |
+
font-style: italic;
|
| 16 |
+
font-weight: 400;
|
| 17 |
+
font-display: swap;
|
| 18 |
+
src: url(https://raw.githubusercontent.com/JulietaUla/Montserrat/master/fonts/webfonts/Montserrat-Italic.woff2) format('woff2');
|
| 19 |
+
size-adjust: 85%;
|
| 20 |
+
ascent-override: 104%;
|
| 21 |
+
descent-override: 36%;
|
| 22 |
+
line-gap-override: 50%;
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
@font-face {
|
| 26 |
+
font-family: 'Montserrat';
|
| 27 |
+
font-style: normal;
|
| 28 |
+
font-weight: 700;
|
| 29 |
+
font-display: swap;
|
| 30 |
+
src: url(https://raw.githubusercontent.com/JulietaUla/Montserrat/master/fonts/webfonts/Montserrat-Bold.woff2) format('woff2');
|
| 31 |
+
size-adjust: 85%;
|
| 32 |
+
ascent-override: 104%;
|
| 33 |
+
descent-override: 36%;
|
| 34 |
+
line-gap-override: 50%;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
@font-face {
|
| 38 |
+
font-family: 'Montserrat';
|
| 39 |
+
font-style: italic;
|
| 40 |
+
font-weight: 700;
|
| 41 |
+
font-display: swap;
|
| 42 |
+
src: url(https://raw.githubusercontent.com/JulietaUla/Montserrat/master/fonts/webfonts/Montserrat-BoldItalic.woff2) format('woff2');
|
| 43 |
+
size-adjust: 85%;
|
| 44 |
+
ascent-override: 104%;
|
| 45 |
+
descent-override: 36%;
|
| 46 |
+
line-gap-override: 50%;
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
:root {
|
| 50 |
+
--sf: 'Montserrat';
|
| 51 |
+
}
|
assets/css/typeface/OpenDyslexic.css
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@font-face {
|
| 2 |
+
font-family: 'OpenDyslexic';
|
| 3 |
+
font-style: normal;
|
| 4 |
+
font-weight: 400;
|
| 5 |
+
font-display: swap;
|
| 6 |
+
src: local('OpenDyslexic'),
|
| 7 |
+
url(https://raw.githubusercontent.com/antijingoist/OpenDyslexic/master/compiled/OpenDyslexic-Regular.woff2) format('woff2');
|
| 8 |
+
size-adjust: 83%;
|
| 9 |
+
ascent-override: 106%;
|
| 10 |
+
descent-override: 36%;
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
@font-face {
|
| 14 |
+
font-family: 'OpenDyslexic';
|
| 15 |
+
font-style: italic;
|
| 16 |
+
font-weight: 400;
|
| 17 |
+
font-display: swap;
|
| 18 |
+
src: local('OpenDyslexic Italic'),
|
| 19 |
+
url(https://raw.githubusercontent.com/antijingoist/OpenDyslexic/master/compiled/OpenDyslexic-Italic.woff2) format('woff2');
|
| 20 |
+
size-adjust: 83%;
|
| 21 |
+
ascent-override: 106%;
|
| 22 |
+
descent-override: 36%;
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
@font-face {
|
| 26 |
+
font-family: 'OpenDyslexic';
|
| 27 |
+
font-style: normal;
|
| 28 |
+
font-weight: 700;
|
| 29 |
+
font-display: swap;
|
| 30 |
+
src: local('OpenDyslexic Bold'),
|
| 31 |
+
url(https://raw.githubusercontent.com/antijingoist/OpenDyslexic/master/compiled/OpenDyslexic-Bold.woff2) format('woff2');
|
| 32 |
+
size-adjust: 83%;
|
| 33 |
+
ascent-override: 106%;
|
| 34 |
+
descent-override: 36%;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
@font-face {
|
| 38 |
+
font-family: 'OpenDyslexic';
|
| 39 |
+
font-style: italic;
|
| 40 |
+
font-weight: 700;
|
| 41 |
+
font-display: swap;
|
| 42 |
+
src: local('OpenDyslexic Bold Italic'),
|
| 43 |
+
url(https://raw.githubusercontent.com/antijingoist/OpenDyslexic/master/compiled/OpenDyslexic-Bold-Italic.woff2) format('woff2');
|
| 44 |
+
size-adjust: 83%;
|
| 45 |
+
ascent-override: 106%;
|
| 46 |
+
descent-override: 36%;
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
:root {
|
| 50 |
+
--od: 'OpenDyslexic';
|
| 51 |
+
}
|
assets/css/typeface/Rosario.css
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@font-face {
|
| 2 |
+
font-family: 'Rosario';
|
| 3 |
+
font-style: normal;
|
| 4 |
+
font-weight: 400;
|
| 5 |
+
font-display: swap;
|
| 6 |
+
src: url(https://raw.githubusercontent.com/Omnibus-Type/Rosario/master/fonts/webfonts/Rosario-Regular.woff2) format('woff2');
|
| 7 |
+
size-adjust: 90%;
|
| 8 |
+
descent-override: 33%;
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
@font-face {
|
| 12 |
+
font-family: 'Rosario';
|
| 13 |
+
font-style: italic;
|
| 14 |
+
font-weight: 400;
|
| 15 |
+
font-display: swap;
|
| 16 |
+
src: url(https://raw.githubusercontent.com/Omnibus-Type/Rosario/master/fonts/webfonts/Rosario-Italic.woff2) format('woff2');
|
| 17 |
+
size-adjust: 90%;
|
| 18 |
+
descent-override: 33%;
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
@font-face {
|
| 22 |
+
font-family: 'Rosario';
|
| 23 |
+
font-style: normal;
|
| 24 |
+
font-weight: 700;
|
| 25 |
+
font-display: swap;
|
| 26 |
+
src: url(https://raw.githubusercontent.com/Omnibus-Type/Rosario/master/fonts/webfonts/Rosario-Bold.woff2) format('woff2');
|
| 27 |
+
size-adjust: 90%;
|
| 28 |
+
descent-override: 33%;
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
@font-face {
|
| 32 |
+
font-family: 'Rosario';
|
| 33 |
+
font-style: italic;
|
| 34 |
+
font-weight: 700;
|
| 35 |
+
font-display: swap;
|
| 36 |
+
src: url(https://raw.githubusercontent.com/Omnibus-Type/Rosario/master/fonts/webfonts/Rosario-BoldItalic.woff2) format('woff2');
|
| 37 |
+
size-adjust: 90%;
|
| 38 |
+
descent-override: 33%;
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
:root {
|
| 42 |
+
--sf: 'Rosario';
|
| 43 |
+
}
|
assets/css/typeface/icon.css
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/* Icon Fonts */
|
| 2 |
+
@font-face {
|
| 3 |
+
font-family: 'base-ui';
|
| 4 |
+
font-weight: normal;
|
| 5 |
+
font-style: normal;
|
| 6 |
+
font-display: block;
|
| 7 |
+
src: url(https://raw.githubusercontent.com/foxihd/hugo-brewm/main/static/css/fonts/base-ui.woff2) format('woff2');
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
/* fallback setting for websafefonts */
|
| 11 |
+
|
| 12 |
+
@font-face {
|
| 13 |
+
font-family: 'Times New Roman';
|
| 14 |
+
src: local('Times New Roman');
|
| 15 |
+
size-adjust: 102%;
|
| 16 |
+
ascent-override: 87%;
|
| 17 |
+
descent-override: 30%;
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
@font-face {
|
| 21 |
+
font-family: 'Arial';
|
| 22 |
+
src: local('Arial');
|
| 23 |
+
size-adjust: 87%;
|
| 24 |
+
ascent-override: 101%;
|
| 25 |
+
descent-override: 34%;
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
@font-face {
|
| 29 |
+
font-family: 'Courier New';
|
| 30 |
+
src: local('Courier New');
|
| 31 |
+
size-adjust: 107%;
|
| 32 |
+
ascent-override: 83%;
|
| 33 |
+
descent-override: 28%;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
#mastodonInstance::before,
|
| 37 |
+
#has-share i,
|
| 38 |
+
.stat a::before,
|
| 39 |
+
.icon {
|
| 40 |
+
font-family: 'base-ui' !important;
|
| 41 |
+
speak: never;
|
| 42 |
+
font-style: normal;
|
| 43 |
+
font-weight: normal;
|
| 44 |
+
font-variant: normal;
|
| 45 |
+
text-transform: none;
|
| 46 |
+
line-height: 1;
|
| 47 |
+
-webkit-font-smoothing: antialiased;
|
| 48 |
+
-moz-osx-font-smoothing: grayscale;
|
| 49 |
+
-webkit-font-feature-settings: 'liga';
|
| 50 |
+
-moz-font-feature-settings: 'liga=1';
|
| 51 |
+
-moz-font-feature-settings: 'liga';
|
| 52 |
+
-ms-font-feature-settings: 'liga' 1;
|
| 53 |
+
font-feature-settings: 'liga';
|
| 54 |
+
-webkit-font-variant-ligatures: discretionary-ligatures;
|
| 55 |
+
font-variant-ligatures: discretionary-ligatures;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
.emoji {
|
| 59 |
+
font-family: 'Apple Color Emoji', 'Segoe UI Emoji', NotoColorEmoji, 'Segoe UI Symbol', 'Android Emoji', EmojiSymbols;
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
.icon.accessibility:before {content: '\e900';}
|
| 63 |
+
.icon.arrow:before {content: '\e902';}
|
| 64 |
+
.icon.circle-checked:before {content: '\e903';}
|
| 65 |
+
.icon.circle-unchecked:before {content: '\e904';}
|
| 66 |
+
.icon.copyleft:before {content: '\e906';}
|
| 67 |
+
#has-share .email:before,
|
| 68 |
+
.icon.email:before {content: '\e907';}
|
| 69 |
+
a.favourites::before,
|
| 70 |
+
.icon.heart:before {content: '\e908';}
|
| 71 |
+
.icon.internationalization:before {content: '\e909';}
|
| 72 |
+
.icon.localization:before {content: '\e90a';}
|
| 73 |
+
.icon.menu:before {content: '\e90b';}
|
| 74 |
+
#has-share .print:before,
|
| 75 |
+
.icon.print:before {content: '\e90c';}
|
| 76 |
+
.reblogs::before,
|
| 77 |
+
.icon.reblog:before {content: '\e90d';}
|
| 78 |
+
a.replies::before,
|
| 79 |
+
.icon.reply:before {content: '\e90e';}
|
| 80 |
+
.icon.reset:before {content: '\e90f';}
|
| 81 |
+
.icon.rss:before {content: '\e910';}
|
| 82 |
+
.icon.search:before {content: '\e911';}
|
| 83 |
+
.icon.share:before {content: '\e912';}
|
| 84 |
+
.icon.xmark:before {content: '\e913';}
|
| 85 |
+
.icon.behance:before {content: '\e914';}
|
| 86 |
+
.icon.bigcartel:before {content: '\e915';}
|
| 87 |
+
.icon.bitbucket:before {content: '\e916';}
|
| 88 |
+
.icon.blogger:before {content: '\e917';}
|
| 89 |
+
#has-share .bluesky:before,
|
| 90 |
+
.icon.bluesky:before {content: '\e918';}
|
| 91 |
+
.icon.bukalapak:before {content: '\e919';}
|
| 92 |
+
.icon.buymeacoffee:before {content: '\e91a';}
|
| 93 |
+
.icon.clubhouse:before {content: '\e91b';}
|
| 94 |
+
.icon.codepen:before {content: '\e91c';}
|
| 95 |
+
.icon.creativefabrica:before {content: '\e91d';}
|
| 96 |
+
.icon.dailymotion:before {content: '\e91e';}
|
| 97 |
+
.icon.dev:before {content: '\e91f';}
|
| 98 |
+
.icon.deviantart:before {content: '\e920';}
|
| 99 |
+
.icon.digg:before {content: '\e921';}
|
| 100 |
+
.icon.discord:before {content: '\e922';}
|
| 101 |
+
.icon.dribbble:before {content: '\e923';}
|
| 102 |
+
.icon.ebay:before {content: '\e924';}
|
| 103 |
+
.icon.etsy:before {content: '\e925';}
|
| 104 |
+
#has-share .facebook:before,
|
| 105 |
+
.icon.facebook:before {content: '\e926';}
|
| 106 |
+
.icon.figma:before {content: '\e927';}
|
| 107 |
+
.icon.flickr:before {content: '\e928';}
|
| 108 |
+
.icon.flipkart:before {content: '\e929';}
|
| 109 |
+
.icon.github:before {content: '\e92a';}
|
| 110 |
+
.icon.githubsponsors:before {content: '\e92b';}
|
| 111 |
+
.icon.gitlab:before {content: '\e92c';}
|
| 112 |
+
.icon.gnusocial:before {content: '\e92d';}
|
| 113 |
+
.icon.goodreads:before {content: '\e92e';}
|
| 114 |
+
.icon.googlescholar:before {content: '\e92f';}
|
| 115 |
+
.icon.gumroad:before {content: '\e930';}
|
| 116 |
+
#has-share .hackernews:before,
|
| 117 |
+
.icon.hackernews:before {content: '\e931';}
|
| 118 |
+
.icon.hashnode:before {content: '\e932';}
|
| 119 |
+
.icon.icon--500px:before {content: '\e933';}
|
| 120 |
+
.icon.instagram:before {content: '\e934';}
|
| 121 |
+
.icon.jsfiddle:before {content: '\e935';}
|
| 122 |
+
.icon.karyakarsa:before {content: '\e936';}
|
| 123 |
+
.icon.keybase:before {content: '\e937';}
|
| 124 |
+
.icon.keycdn:before {content: '\e938';}
|
| 125 |
+
.icon.kickstarter:before {content: '\e939';}
|
| 126 |
+
.icon.kofi:before {content: '\e93a';}
|
| 127 |
+
.icon.lazada:before {content: '\e93b';}
|
| 128 |
+
.icon.liberapay:before {content: '\e93c';}
|
| 129 |
+
#has-share .linkedin:before,
|
| 130 |
+
.icon.linkedin:before {content: '\e93d';}
|
| 131 |
+
.icon.mastodon:before {content: '\e93e';}
|
| 132 |
+
.icon.medium:before {content: '\e93f';}
|
| 133 |
+
.icon.olx:before {content: '\e940';}
|
| 134 |
+
.icon.opencollective:before {content: '\e941';}
|
| 135 |
+
.icon.openid:before {content: '\e942';}
|
| 136 |
+
.icon.orcid:before {content: '\e943';}
|
| 137 |
+
.icon.patreon:before {content: '\e944';}
|
| 138 |
+
.icon.paypal:before {content: '\e945';}
|
| 139 |
+
.icon.peertube:before {content: '\e946';}
|
| 140 |
+
#has-share .pinterest:before,
|
| 141 |
+
.icon.pinterest:before {content: '\e947';}
|
| 142 |
+
.icon.pleroma:before {content: '\e948';}
|
| 143 |
+
.icon.publons:before {content: '\e949';}
|
| 144 |
+
.icon.quora:before {content: '\e94a';}
|
| 145 |
+
#has-share .reddit:before,
|
| 146 |
+
.icon.reddit:before {content: '\e94b';}
|
| 147 |
+
.icon.researchgate:before {content: '\e94c';}
|
| 148 |
+
.icon.saweria:before {content: '\e94d';}
|
| 149 |
+
.icon.sellfy:before {content: '\e94e';}
|
| 150 |
+
.icon.shopee:before {content: '\e94f';}
|
| 151 |
+
.icon.shopify:before {content: '\e950';}
|
| 152 |
+
.icon.signal:before {content: '\e951';}
|
| 153 |
+
.icon.snapchat:before {content: '\e952';}
|
| 154 |
+
.icon.soundcloud:before {content: '\e953';}
|
| 155 |
+
.icon.stackexchange:before {content: '\e954';}
|
| 156 |
+
.icon.stackoverflow:before {content: '\e955';}
|
| 157 |
+
.icon.stripe:before {content: '\e956';}
|
| 158 |
+
.icon.substack:before {content: '\e957';}
|
| 159 |
+
#has-share .telegram:before,
|
| 160 |
+
.icon.telegram:before {content: '\e958';}
|
| 161 |
+
.icon.threads:before {content: '\e959';}
|
| 162 |
+
.icon.tiktok:before {content: '\e95a';}
|
| 163 |
+
.icon.tokopedia:before {content: '\e95b';}
|
| 164 |
+
#has-share .tumblr:before,
|
| 165 |
+
.icon.tumblr:before {content: '\e95c';}
|
| 166 |
+
.icon.twitch:before {content: '\e95d';}
|
| 167 |
+
#has-share .twitter:before,
|
| 168 |
+
.icon.twitter:before {content: '\e95e';}
|
| 169 |
+
.icon.vimeo:before {content: '\e95f';}
|
| 170 |
+
.icon.vine:before {content: '\e960';}
|
| 171 |
+
#has-share .vk:before,
|
| 172 |
+
.icon.vk:before {content: '\e961';}
|
| 173 |
+
.icon.wattpad:before {content: '\e962';}
|
| 174 |
+
.icon.weibo:before {content: '\e963';}
|
| 175 |
+
#has-share .whatsapp:before,
|
| 176 |
+
.icon.whatsapp:before {content: '\e964';}
|
| 177 |
+
.icon.wikipedia:before {content: '\e965';}
|
| 178 |
+
.icon.wordpress:before {content: '\e966';}
|
| 179 |
+
.icon.write-dot-as:before {content: '\e967';}
|
| 180 |
+
.icon.x:before {content: '\e968';}
|
| 181 |
+
#has-share .xing:before,
|
| 182 |
+
.icon.xing:before {content: '\e969';}
|
| 183 |
+
.icon.xmpp:before {content: '\e96a';}
|
| 184 |
+
.icon.youtube:before {content: '\e96b';}
|
assets/css/typeface/websafe.css
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
:root {
|
| 2 |
+
--rm: 'Times New Roman';
|
| 3 |
+
--rmosf: 'Palatino';
|
| 4 |
+
--sf: Arial;
|
| 5 |
+
--tt: 'Courier New';
|
| 6 |
+
}
|
| 7 |
+
|
| 8 |
+
/* :root {
|
| 9 |
+
--rm: Garamond, Palatino, 'Times New Roman';
|
| 10 |
+
--rmosf: 'Palatino';
|
| 11 |
+
--sf: Helvetica, Verdana, Arial;
|
| 12 |
+
--tt: Courier, Consolas, 'Courier New';
|
| 13 |
+
} */
|
assets/css/typesetting/_template.css
ADDED
|
@@ -0,0 +1,306 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/* font-style */
|
| 2 |
+
.normalfont {
|
| 3 |
+
font-style: normal;
|
| 4 |
+
font-weight: normal;
|
| 5 |
+
}
|
| 6 |
+
|
| 7 |
+
.md
|
| 8 |
+
.textmd,
|
| 9 |
+
.mdseries {
|
| 10 |
+
font-weight: normal;
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
.bf,
|
| 14 |
+
.textbf,
|
| 15 |
+
.bfseries {
|
| 16 |
+
font-weight: bold;
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
.up,
|
| 20 |
+
.textup,
|
| 21 |
+
.upshape {
|
| 22 |
+
font-style: normal;
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
.it,
|
| 26 |
+
.textit,
|
| 27 |
+
.itshape {
|
| 28 |
+
font-style: italic;
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
.sl,
|
| 32 |
+
.textsl,
|
| 33 |
+
.slshape {
|
| 34 |
+
--tsf: skew(-7deg, 0deg);
|
| 35 |
+
-webkit-transform: var(--tsf);
|
| 36 |
+
-moz-transform: var(--tsf);
|
| 37 |
+
-ms-transform: var(--tsf);
|
| 38 |
+
-o-transform: var(--tsf);
|
| 39 |
+
transform: var(--tsf);
|
| 40 |
+
font-style: oblique;
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
.sw,
|
| 44 |
+
.textsw,
|
| 45 |
+
.swshape {
|
| 46 |
+
font-variant-alternates: swash(swsh);
|
| 47 |
+
font-feature-settings: 'swsh' 1;
|
| 48 |
+
-moz-font-feature-settings: 'swsh' 1;
|
| 49 |
+
-webkit-font-feature-settings: 'swsh' 1;
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
.sc,
|
| 53 |
+
.ssc,
|
| 54 |
+
.textsc,
|
| 55 |
+
.scshape {
|
| 56 |
+
font-variant: small-caps;
|
| 57 |
+
font-feature-settings: 'smcp' 1;
|
| 58 |
+
-moz-font-feature-settings: 'smcp' 1;
|
| 59 |
+
-webkit-font-feature-settings: 'smcp' 1;
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
.allsmallcaps,
|
| 63 |
+
.ssc {
|
| 64 |
+
font-variant-caps: all-small-caps;
|
| 65 |
+
font-feature-settings: 'c2sc' 1;
|
| 66 |
+
-moz-font-feature-settings: 'c2sc' 1;
|
| 67 |
+
-webkit-font-feature-settings: 'c2sc' 1;
|
| 68 |
+
letter-spacing: 0.16em;
|
| 69 |
+
word-spacing: 16%;
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
/* font-family */
|
| 73 |
+
.rm,
|
| 74 |
+
.textrm {
|
| 75 |
+
font-family: var(--rm), serif;
|
| 76 |
+
}
|
| 77 |
+
|
| 78 |
+
.tt,
|
| 79 |
+
.texttt {
|
| 80 |
+
font-family: var(--tt), monospace;
|
| 81 |
+
}
|
| 82 |
+
|
| 83 |
+
.sf,
|
| 84 |
+
.textsf {
|
| 85 |
+
font-family: var(--sf), sans-serif;
|
| 86 |
+
}
|
| 87 |
+
|
| 88 |
+
.od,
|
| 89 |
+
.textod {
|
| 90 |
+
font-family: var(--od), sans-serif;
|
| 91 |
+
}
|
| 92 |
+
|
| 93 |
+
/* numeral */
|
| 94 |
+
.pnum,
|
| 95 |
+
.pl,
|
| 96 |
+
.po,
|
| 97 |
+
.textpl,
|
| 98 |
+
.textpo {
|
| 99 |
+
font-variant-numeric: proportional-nums;
|
| 100 |
+
font-feature-settings: 'pnum' 1;
|
| 101 |
+
-moz-font-feature-settings: 'pnum' 1;
|
| 102 |
+
-webkit-font-feature-settings: 'pnum' 1;
|
| 103 |
+
}
|
| 104 |
+
|
| 105 |
+
.onum,
|
| 106 |
+
.po,
|
| 107 |
+
.to,
|
| 108 |
+
.textpo,
|
| 109 |
+
.textto {
|
| 110 |
+
font-variant-numeric: oldstyle-nums;
|
| 111 |
+
font-feature-settings:'onum' 1;
|
| 112 |
+
-moz-font-feature-settings:'onum' 1;
|
| 113 |
+
-webkit-font-feature-settings:'onum' 1;
|
| 114 |
+
}
|
| 115 |
+
|
| 116 |
+
.lnum,
|
| 117 |
+
.tl,
|
| 118 |
+
.pl
|
| 119 |
+
.texttl,
|
| 120 |
+
.textpl {
|
| 121 |
+
font-variant-numeric: lining-nums;
|
| 122 |
+
font-feature-settings: 'lnum' 1;
|
| 123 |
+
-moz-font-feature-settings: 'lnum' 1;
|
| 124 |
+
-webkit-font-feature-settings: 'lnum' 1;
|
| 125 |
+
}
|
| 126 |
+
|
| 127 |
+
.tnum,
|
| 128 |
+
.to,
|
| 129 |
+
.po,
|
| 130 |
+
.textto,
|
| 131 |
+
.textpo {
|
| 132 |
+
font-variant-numeric: tabular-nums;
|
| 133 |
+
font-feature-settings: 'tnum' 1, 'kern' 0;
|
| 134 |
+
-moz-font-feature-settings: 'tnum' 1, 'kern' 0;
|
| 135 |
+
-webkit-font-feature-settings: 'tnum' 1, 'kern' 0;
|
| 136 |
+
}
|
| 137 |
+
|
| 138 |
+
.sz0 {
|
| 139 |
+
font-variant-numeric: slashed-zero;
|
| 140 |
+
font-feature-settings: 'zero' 1;
|
| 141 |
+
-moz-font-feature-settings: 'zero' 1;
|
| 142 |
+
-webkit-font-feature-settings: 'zero' 1;
|
| 143 |
+
}
|
| 144 |
+
|
| 145 |
+
.sub,
|
| 146 |
+
.textsub {
|
| 147 |
+
font-variant-position: sub;
|
| 148 |
+
font-feature-settings: 'subs' 1;
|
| 149 |
+
}
|
| 150 |
+
|
| 151 |
+
.sup,
|
| 152 |
+
.textsup {
|
| 153 |
+
font-variant-position: super;
|
| 154 |
+
font-feature-settings: 'sups' 1;
|
| 155 |
+
}
|
| 156 |
+
|
| 157 |
+
.ldots {
|
| 158 |
+
text-overflow: ellipsis;
|
| 159 |
+
overflow-x: clip;
|
| 160 |
+
white-space: nowrap;
|
| 161 |
+
}
|
| 162 |
+
|
| 163 |
+
/* presentation */
|
| 164 |
+
.smallskip {
|
| 165 |
+
margin: var(--smallskip) 0;
|
| 166 |
+
}
|
| 167 |
+
|
| 168 |
+
.medskip {
|
| 169 |
+
margin: var(--medskip) 0;
|
| 170 |
+
}
|
| 171 |
+
|
| 172 |
+
.bigskip {
|
| 173 |
+
margin:var(--vskip);
|
| 174 |
+
}
|
| 175 |
+
|
| 176 |
+
.hfill,
|
| 177 |
+
.lfill {
|
| 178 |
+
margin-left: auto;
|
| 179 |
+
}
|
| 180 |
+
|
| 181 |
+
.hfill,
|
| 182 |
+
.rfill {
|
| 183 |
+
margin-right: auto;
|
| 184 |
+
}
|
| 185 |
+
|
| 186 |
+
.vfill,
|
| 187 |
+
.tfill {
|
| 188 |
+
margin-top: auto;
|
| 189 |
+
}
|
| 190 |
+
|
| 191 |
+
.vfill,
|
| 192 |
+
.bfill {
|
| 193 |
+
margin-bottom: auto;
|
| 194 |
+
}
|
| 195 |
+
|
| 196 |
+
.center {
|
| 197 |
+
margin: auto;
|
| 198 |
+
align-self: center;
|
| 199 |
+
}
|
| 200 |
+
|
| 201 |
+
.center,
|
| 202 |
+
.centering {
|
| 203 |
+
text-align: center;
|
| 204 |
+
}
|
| 205 |
+
|
| 206 |
+
.justifying {
|
| 207 |
+
text-align: justify;
|
| 208 |
+
}
|
| 209 |
+
|
| 210 |
+
.flushleft,
|
| 211 |
+
.raggedright {
|
| 212 |
+
text-align: left;
|
| 213 |
+
}
|
| 214 |
+
|
| 215 |
+
.flushright,
|
| 216 |
+
.raggedleft {
|
| 217 |
+
text-align: right;
|
| 218 |
+
}
|
| 219 |
+
|
| 220 |
+
.nomargin {
|
| 221 |
+
margin: 0;
|
| 222 |
+
}
|
| 223 |
+
|
| 224 |
+
.nopadding {
|
| 225 |
+
padding: 0;
|
| 226 |
+
}
|
| 227 |
+
|
| 228 |
+
.noindent {
|
| 229 |
+
text-indent: 0 !important;
|
| 230 |
+
}
|
| 231 |
+
|
| 232 |
+
.parindent {
|
| 233 |
+
text-indent: var(--indent);
|
| 234 |
+
}
|
| 235 |
+
|
| 236 |
+
/* break */
|
| 237 |
+
.nobreak {
|
| 238 |
+
break-inside: avoid;
|
| 239 |
+
}
|
| 240 |
+
|
| 241 |
+
.nopagebreak {
|
| 242 |
+
break-after: avoid-page;
|
| 243 |
+
page-break-after: avoid;
|
| 244 |
+
}
|
| 245 |
+
|
| 246 |
+
.break {
|
| 247 |
+
break-after: always;
|
| 248 |
+
}
|
| 249 |
+
|
| 250 |
+
.columnbreak {
|
| 251 |
+
break-after: column;
|
| 252 |
+
}
|
| 253 |
+
|
| 254 |
+
.pagebreak {
|
| 255 |
+
break-after: page;
|
| 256 |
+
page-break-after: always;
|
| 257 |
+
}
|
| 258 |
+
|
| 259 |
+
.newpage {
|
| 260 |
+
break-before: always;
|
| 261 |
+
page-break-before: always;
|
| 262 |
+
}
|
| 263 |
+
|
| 264 |
+
.clearpage {
|
| 265 |
+
break-after: verso;
|
| 266 |
+
}
|
| 267 |
+
|
| 268 |
+
.creardoublepage {
|
| 269 |
+
break-after: recto;
|
| 270 |
+
}
|
| 271 |
+
|
| 272 |
+
/* quotation */
|
| 273 |
+
q {
|
| 274 |
+
font-style: italic;
|
| 275 |
+
}
|
| 276 |
+
|
| 277 |
+
/* enquote */
|
| 278 |
+
q {
|
| 279 |
+
quotes: '“' '”' '‘' '’';
|
| 280 |
+
}
|
| 281 |
+
|
| 282 |
+
q.alt {
|
| 283 |
+
quotes: '”' '”' '’' '’';
|
| 284 |
+
}
|
| 285 |
+
|
| 286 |
+
/* guillemet */
|
| 287 |
+
q.gm,
|
| 288 |
+
q.guillemet {
|
| 289 |
+
quotes: '«' '»' '‹' '›';
|
| 290 |
+
}
|
| 291 |
+
|
| 292 |
+
q.gm.alt,
|
| 293 |
+
q.guillemet.alt {
|
| 294 |
+
quotes: '»' '«' '›' '‹';
|
| 295 |
+
}
|
| 296 |
+
|
| 297 |
+
/* goosefeet */
|
| 298 |
+
q.gf,
|
| 299 |
+
q.goosefeet {
|
| 300 |
+
quotes: '„' '“' '‚' '‘';
|
| 301 |
+
}
|
| 302 |
+
|
| 303 |
+
q.gf.alt,
|
| 304 |
+
q.goosefeet.alt {
|
| 305 |
+
quotes: '„' '”' '‚' '’';
|
| 306 |
+
}
|
assets/css/typesetting/default.css
ADDED
|
@@ -0,0 +1,293 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
:root {
|
| 2 |
+
--tiny: 0.618rem;
|
| 3 |
+
--scriptsize: 0.786rem;
|
| 4 |
+
--footnotesize: 1rem;
|
| 5 |
+
--small: 1.144rem;
|
| 6 |
+
--normalsize: 1.272rem;
|
| 7 |
+
--large: 1.414rem;
|
| 8 |
+
--Large: 1.618rem;
|
| 9 |
+
--LARGE: 2.058rem;
|
| 10 |
+
--huge: 2.618rem;
|
| 11 |
+
--Huge: 3.33rem;
|
| 12 |
+
--fontScale: 1;
|
| 13 |
+
--baselineStretch: 1;
|
| 14 |
+
--indent: 1.618pc;
|
| 15 |
+
--smallskip: 1rem;
|
| 16 |
+
--medskip: 1.618rem;
|
| 17 |
+
--bigskip: 3.14rem;
|
| 18 |
+
--vskip:var(--bigskip) 0;
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
h1 + p,
|
| 22 |
+
h2 + p,
|
| 23 |
+
h3 + p,
|
| 24 |
+
h4 + p,
|
| 25 |
+
h5 + p,
|
| 26 |
+
h6 + p,
|
| 27 |
+
p * {
|
| 28 |
+
margin-top: 0;
|
| 29 |
+
padding-top: 0;
|
| 30 |
+
text-indent: 0 !important;
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
blockquote {
|
| 34 |
+
margin: 0;
|
| 35 |
+
background: #ffe8aa22;
|
| 36 |
+
padding: 1pt var(--indent);
|
| 37 |
+
width: var(--golden-ratio);
|
| 38 |
+
font-style: italic;
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
blockquote blockquote {
|
| 42 |
+
margin-bottom: var(--indent);
|
| 43 |
+
border-left: var(--bound);
|
| 44 |
+
background: none;
|
| 45 |
+
width: unset;
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
blockquote cite {
|
| 49 |
+
font-style: italic;
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
kbd {
|
| 53 |
+
/* border: 1pt solid var(--mid); */
|
| 54 |
+
-webkit-transition: 0.2s;
|
| 55 |
+
-moz-transition: 0.2s;
|
| 56 |
+
-o-transition: 0.2s;
|
| 57 |
+
transition: 0.2s;
|
| 58 |
+
margin: 0 2pt;
|
| 59 |
+
border-radius: 0.7ex;
|
| 60 |
+
padding: 0.3ex 1ex;
|
| 61 |
+
font-size: var(--footnotesize);
|
| 62 |
+
box-shadow: var(--box-shadow-focus);
|
| 63 |
+
}
|
| 64 |
+
|
| 65 |
+
kbd:hover {
|
| 66 |
+
box-shadow: var(--box-shadow-hover);
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
kbd:has(kbd) {
|
| 70 |
+
border-radius: 1ex;
|
| 71 |
+
padding: 1ex 0.7ex;
|
| 72 |
+
}
|
| 73 |
+
|
| 74 |
+
.key {
|
| 75 |
+
display: none;
|
| 76 |
+
text-transform: uppercase;
|
| 77 |
+
}
|
| 78 |
+
|
| 79 |
+
.keydown .key {
|
| 80 |
+
display: initial !important;
|
| 81 |
+
font-family: var(--sf), sans-serif;
|
| 82 |
+
font-weight: unset;
|
| 83 |
+
}
|
| 84 |
+
|
| 85 |
+
code {
|
| 86 |
+
border-radius: 0.25em;
|
| 87 |
+
background: var(--g18s);
|
| 88 |
+
}
|
| 89 |
+
|
| 90 |
+
pre > code {
|
| 91 |
+
display: block;
|
| 92 |
+
border-radius: 1ex;
|
| 93 |
+
background: unset;
|
| 94 |
+
width: fit-content;
|
| 95 |
+
max-width: 100%;
|
| 96 |
+
overflow-x: auto;
|
| 97 |
+
}
|
| 98 |
+
|
| 99 |
+
code,
|
| 100 |
+
pre > code {
|
| 101 |
+
line-height: 1.618;
|
| 102 |
+
letter-spacing: 0.05em;
|
| 103 |
+
font-family: var(--tt), monospace;
|
| 104 |
+
font-kerning: none;
|
| 105 |
+
font-size: 0.8em;
|
| 106 |
+
-webkit-font-feature-settings: 'kern' 0;
|
| 107 |
+
-moz-font-feature-settings: 'kern' 0;
|
| 108 |
+
font-feature-settings: 'kern' 0;
|
| 109 |
+
}
|
| 110 |
+
|
| 111 |
+
pre > code table {
|
| 112 |
+
border: unset;
|
| 113 |
+
}
|
| 114 |
+
|
| 115 |
+
dl,
|
| 116 |
+
ol,
|
| 117 |
+
ul {
|
| 118 |
+
padding-left: var(--indent);
|
| 119 |
+
}
|
| 120 |
+
|
| 121 |
+
.ldots {
|
| 122 |
+
text-overflow: ellipsis;
|
| 123 |
+
overflow-x: clip;
|
| 124 |
+
white-space: nowrap;
|
| 125 |
+
}
|
| 126 |
+
|
| 127 |
+
.lfill {
|
| 128 |
+
margin-left: auto;
|
| 129 |
+
}
|
| 130 |
+
|
| 131 |
+
.rfill {
|
| 132 |
+
margin-right: auto;
|
| 133 |
+
}
|
| 134 |
+
|
| 135 |
+
.sw,
|
| 136 |
+
.textsw,
|
| 137 |
+
.swshape {
|
| 138 |
+
font-variant-alternates: swash(swsh);
|
| 139 |
+
-webkit-font-feature-settings: 'swsh' 1;
|
| 140 |
+
-moz-font-feature-settings: 'swsh' 1;
|
| 141 |
+
font-feature-settings: 'swsh' 1;
|
| 142 |
+
}
|
| 143 |
+
|
| 144 |
+
.up,
|
| 145 |
+
.textup,
|
| 146 |
+
.upshape {
|
| 147 |
+
font-style: normal;
|
| 148 |
+
}
|
| 149 |
+
|
| 150 |
+
table,
|
| 151 |
+
thead {
|
| 152 |
+
border-collapse: collapse;
|
| 153 |
+
border: solid var(--off);
|
| 154 |
+
border-width: 1pt 0;
|
| 155 |
+
}
|
| 156 |
+
|
| 157 |
+
thead {
|
| 158 |
+
background: var(--g18s);
|
| 159 |
+
}
|
| 160 |
+
|
| 161 |
+
th {
|
| 162 |
+
padding: 2pt 0;
|
| 163 |
+
}
|
| 164 |
+
|
| 165 |
+
td {
|
| 166 |
+
padding: 1pt 0;
|
| 167 |
+
}
|
| 168 |
+
|
| 169 |
+
th + th {
|
| 170 |
+
border-left: 1pt dotted var(--g18s);
|
| 171 |
+
}
|
| 172 |
+
|
| 173 |
+
tbody tr:nth-child(2n) {
|
| 174 |
+
background-color: #80808008;
|
| 175 |
+
}
|
| 176 |
+
|
| 177 |
+
.carousel__viewport h2,
|
| 178 |
+
.carousel__viewport h3,
|
| 179 |
+
.hero__content h1,
|
| 180 |
+
.hero__content h2,
|
| 181 |
+
.hero__content h3,
|
| 182 |
+
#share > span,
|
| 183 |
+
#menu-footer::before,
|
| 184 |
+
.section-title {
|
| 185 |
+
vertical-align: middle;
|
| 186 |
+
text-transform: uppercase;
|
| 187 |
+
letter-spacing: 2pt;
|
| 188 |
+
font-weight: 700;
|
| 189 |
+
font-variant: small-caps;
|
| 190 |
+
font-style: normal;
|
| 191 |
+
/* font-variant-caps: all-small-caps; */
|
| 192 |
+
}
|
| 193 |
+
|
| 194 |
+
details.presentation > summary {
|
| 195 |
+
cursor: pointer;
|
| 196 |
+
list-style: none;
|
| 197 |
+
}
|
| 198 |
+
|
| 199 |
+
.has-aria-label-top:before,
|
| 200 |
+
.has-aria-label:after {
|
| 201 |
+
display: block;
|
| 202 |
+
margin: auto;
|
| 203 |
+
content: attr(aria-label);
|
| 204 |
+
}
|
| 205 |
+
|
| 206 |
+
.has-pre::before,
|
| 207 |
+
.has-post:after,
|
| 208 |
+
.has-desc:after {
|
| 209 |
+
display: inline-block;
|
| 210 |
+
color: var(--mid);
|
| 211 |
+
font-size: 0.9em;
|
| 212 |
+
font-weight: normal;
|
| 213 |
+
content: attr(aria-description);
|
| 214 |
+
}
|
| 215 |
+
|
| 216 |
+
.t {
|
| 217 |
+
--tsf: translate(-2em);
|
| 218 |
+
display: inline-flex;
|
| 219 |
+
position: absolute;
|
| 220 |
+
top: 125%;
|
| 221 |
+
justify-content: center;
|
| 222 |
+
visibility: hidden;
|
| 223 |
+
z-index: 1;
|
| 224 |
+
border-radius: 1em;
|
| 225 |
+
background: var(--fg);
|
| 226 |
+
padding: 0.25em;
|
| 227 |
+
width: 7.5em;
|
| 228 |
+
text-align: center;
|
| 229 |
+
color: var(--bg);
|
| 230 |
+
font: var(--scriptsize) var(--sf), sans-serif;
|
| 231 |
+
}
|
| 232 |
+
|
| 233 |
+
.t.t2 {
|
| 234 |
+
--tsf: unset;
|
| 235 |
+
display: block;
|
| 236 |
+
top: var(--vhead);
|
| 237 |
+
}
|
| 238 |
+
|
| 239 |
+
.t::after {
|
| 240 |
+
position: absolute;
|
| 241 |
+
bottom: 100%;
|
| 242 |
+
left: 47.5%;
|
| 243 |
+
border-style: solid;
|
| 244 |
+
border-color: transparent transparent var(--fg) transparent;
|
| 245 |
+
content: '';
|
| 246 |
+
}
|
| 247 |
+
|
| 248 |
+
button:focus > .t,
|
| 249 |
+
.icon:hover + .t,
|
| 250 |
+
a:hover .t,
|
| 251 |
+
a:focus .t,
|
| 252 |
+
summary:hover > .t,
|
| 253 |
+
summary:focus > .t {
|
| 254 |
+
visibility: visible;
|
| 255 |
+
}
|
| 256 |
+
|
| 257 |
+
.loading:after {
|
| 258 |
+
--anm: ellipsis steps(4,end) 2s infinite;
|
| 259 |
+
display: inline-block;
|
| 260 |
+
overflow: hidden;
|
| 261 |
+
vertical-align: bottom;
|
| 262 |
+
content: '';
|
| 263 |
+
}
|
| 264 |
+
|
| 265 |
+
.letterine > i {
|
| 266 |
+
font-style: normal;
|
| 267 |
+
}
|
| 268 |
+
|
| 269 |
+
.hide {
|
| 270 |
+
display: none !important;
|
| 271 |
+
}
|
| 272 |
+
|
| 273 |
+
ul.inline::before,
|
| 274 |
+
ul.delimiter::after,
|
| 275 |
+
ul.delimiter li:first-child:before,
|
| 276 |
+
ul.delimiter li:nth-last-child(2)::after {
|
| 277 |
+
content: '\a0';
|
| 278 |
+
}
|
| 279 |
+
|
| 280 |
+
#page .date-has-label > .doc-publish-date::after,
|
| 281 |
+
ul.delimiter li:after {
|
| 282 |
+
content: ',\a0';
|
| 283 |
+
}
|
| 284 |
+
|
| 285 |
+
ul.delimiter li:last-child:before {
|
| 286 |
+
content: '&\a0';
|
| 287 |
+
}
|
| 288 |
+
|
| 289 |
+
#page .doc-lastmod-date::after,
|
| 290 |
+
#keywords .inline li::after,
|
| 291 |
+
ul.delimiter li:last-child:after {
|
| 292 |
+
content: '.';
|
| 293 |
+
}
|
assets/css/typesetting/sectioning.css
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
h1,
|
| 2 |
+
h2,
|
| 3 |
+
h3,
|
| 4 |
+
h4,
|
| 5 |
+
h5,
|
| 6 |
+
h6 {
|
| 7 |
+
line-height: calc(var(--baselineStretch) * 1);
|
| 8 |
+
font-weight: 400;
|
| 9 |
+
clear: both;
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
h2,
|
| 13 |
+
h3,
|
| 14 |
+
h4 {
|
| 15 |
+
margin: var(--bigskip) 0 var(--smallskip);
|
| 16 |
+
font-style: italic;
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
h1 {
|
| 20 |
+
margin: var(--bigskip) 0 var(--smallskip);
|
| 21 |
+
text-transform: capitalize;
|
| 22 |
+
font-size: var(--huge);
|
| 23 |
+
counter-reset: section;
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
article > section {
|
| 27 |
+
counter-reset: section;
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
h2 {
|
| 31 |
+
font-size: var(--LARGE);
|
| 32 |
+
counter-reset: subsection;
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
h3 {
|
| 36 |
+
font-size: var(--Large);
|
| 37 |
+
counter-reset: subsubsection;
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
h4 {
|
| 41 |
+
font-size: var(--large);
|
| 42 |
+
counter-reset: paragraph;
|
| 43 |
+
}
|
| 44 |
+
|
| 45 |
+
h5 {
|
| 46 |
+
counter-reset: subparagraph;
|
| 47 |
+
margin: var(--smallskip) 0 0;
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
h5,
|
| 51 |
+
h6 {
|
| 52 |
+
word-spacing: 16%;
|
| 53 |
+
letter-spacing: 0.16em;
|
| 54 |
+
font: var(--normalsize) var(--sf), sans-serif;
|
| 55 |
+
-webkit-font-feature-settings: 'c2sc' 1;
|
| 56 |
+
-moz-font-feature-settings: 'c2sc' 1;
|
| 57 |
+
font-feature-settings: 'c2sc' 1;
|
| 58 |
+
font-variant-caps: all-small-caps;
|
| 59 |
+
}
|
| 60 |
+
|
| 61 |
+
h6 {
|
| 62 |
+
float: left;
|
| 63 |
+
margin: 0.2em 0.2em 0 0;
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
/* section labeling */
|
| 67 |
+
|
| 68 |
+
/* h1::before {
|
| 69 |
+
counter-increment: chapter;
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
h2::before {
|
| 73 |
+
counter-increment: section;
|
| 74 |
+
}
|
| 75 |
+
|
| 76 |
+
h3::before {
|
| 77 |
+
counter-increment: subsection;
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
h4::before {
|
| 81 |
+
counter-increment: subsubsection;
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
h5::before {
|
| 85 |
+
counter-increment: paragraph;
|
| 86 |
+
}
|
| 87 |
+
|
| 88 |
+
h6::before {
|
| 89 |
+
counter-increment: subparagraph;
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
#content.secnum {
|
| 93 |
+
counter-reset: chapter;
|
| 94 |
+
}
|
| 95 |
+
|
| 96 |
+
#content.secnum h1::before {
|
| 97 |
+
content: counter(chapter);
|
| 98 |
+
}
|
| 99 |
+
|
| 100 |
+
#content.secnum h2::before {
|
| 101 |
+
content: counter(section) '. ';
|
| 102 |
+
}
|
| 103 |
+
|
| 104 |
+
#content.secnum h3::before {
|
| 105 |
+
content: counter(subsection)'. ';
|
| 106 |
+
}
|
| 107 |
+
|
| 108 |
+
#content.secnum h4::before {
|
| 109 |
+
content: counter(subsubsection)'. ';
|
| 110 |
+
}
|
| 111 |
+
|
| 112 |
+
#content.secnum h5::before {
|
| 113 |
+
content: counter(paragraph);
|
| 114 |
+
}
|
| 115 |
+
|
| 116 |
+
#content.secnum h6::before {
|
| 117 |
+
content: counter(subparagraph);
|
| 118 |
+
} */
|
assets/css/typesetting/verbatim.css
ADDED
|
@@ -0,0 +1,307 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
body.deuteranopia {
|
| 2 |
+
--y6a: #d17991; --w8u: #3e8620; --s8i: #ff727b; --n8e: #6f7eb5;
|
| 3 |
+
--m4i: #265245; --y4i: #d61906; --f8a: #8671b2; --s4n: #008ae7;
|
| 4 |
+
--d3u: #6d4835; --r6a: #4d4a17; --y4a: #0b3460; --k8i: #fe8500;
|
| 5 |
+
--y6i: #0070a0; --o5a: #bf2d37; --c3u: #635169; --s5o: #2d5a7b;
|
| 6 |
+
--s5e: #61317b; --y7i: #00b0fb; --i3i: #ff1202; --t9u: #014c2d;
|
| 7 |
+
}
|
| 8 |
+
|
| 9 |
+
body.protanopia {
|
| 10 |
+
--y6a: #b095c0; --w8u: #616f00; --s8i: #eeb0df; --n8e: #6d78ae;
|
| 11 |
+
--m4i: #35432c; --y4i: #9a596f; --f8a: #7777bd; --s4n: #024b82;
|
| 12 |
+
--d3u: #645649; --r6a: #524c18; --y4a: #122448; --k8i: #efb440;
|
| 13 |
+
--y6i: #013c4c; --o5a: #8d5d85; --c3u: #5a5774; --s5o: #364a63;
|
| 14 |
+
--s5e: #494093; --y7i: #086078; --i3i: #e87aab; --t9u: #012500;
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
body.tritanopia {
|
| 18 |
+
--y6a: #b98a9c; --w8u: #235e1a; --s8i: #e58795; --n8e: #958fb3;
|
| 19 |
+
--m4i: #304a3f; --y4i: #7e2521; --f8a: #a288b5; --s4n: #5196cd;
|
| 20 |
+
--d3u: #54463b; --r6a: #303b19; --y4a: #343d5a; --k8i: #83630c;
|
| 21 |
+
--y6i: #30728c; --o5a: #873d4a; --c3u: #695b6c; --s5o: #506175;
|
| 22 |
+
--s5e: #764e82; --y7i: #4bb0dc; --i3i: #c02a2b; --t9u: #00361e;
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
body.monochrome {
|
| 26 |
+
--y6a: var(--fg); --w8u: var(--fg); --s8i: var(--fg); --n8e: var(--fg);
|
| 27 |
+
--m4i: var(--fg); --y4i: var(--fg); --f8a: var(--fg); --s4n: var(--fg);
|
| 28 |
+
--d3u: var(--fg); --r6a: var(--fg); --y4a: var(--fg); --k8i: var(--fg);
|
| 29 |
+
--y6i: var(--fg); --o5a: var(--fg); --c3u: var(--fg); --s5o: var(--fg);
|
| 30 |
+
--s5e: var(--fg); --y7i: var(--fg); --i3i: var(--fg); --t9u: var(--fg);
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
@media (prefers-contrast: less) {
|
| 34 |
+
body.monochrome {
|
| 35 |
+
--y6a: #8f8f8f; --w8u: #6f6f6f; --s8i: #9c9c9c; --n8e: #808080;
|
| 36 |
+
--m4i: #474747; --y4i: #3e3e3e; --f8a: #7c7c7c; --s4n: #686868;
|
| 37 |
+
--d3u: #515151; --r6a: #484848; --y4a: #2f2f2f; --k8i: #989898;
|
| 38 |
+
--y6i: #535353; --o5a: #4e4e4e; --c3u: #575757; --s5o: #535353;
|
| 39 |
+
--s5e: #414141; --y7i: #818181; --i3i: #565656; --t9u: #313131;
|
| 40 |
+
}
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
.lntable {
|
| 44 |
+
display: block;
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
.highlight > pre:not(.chroma) {
|
| 48 |
+
background: unset !important;
|
| 49 |
+
color: inherit !important;
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
.highlight > pre.chroma {
|
| 53 |
+
margin-left: 2rem;
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
pre > code {
|
| 57 |
+
padding: 1ex 0;
|
| 58 |
+
/* background: var(--g18s); */
|
| 59 |
+
}
|
| 60 |
+
|
| 61 |
+
.lntd > .chroma{
|
| 62 |
+
margin: 0;
|
| 63 |
+
}
|
| 64 |
+
|
| 65 |
+
.lntd:first-child * {
|
| 66 |
+
background: unset !important;
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
.lntd:first-child .hl {
|
| 70 |
+
font-weight: bold;
|
| 71 |
+
}
|
| 72 |
+
|
| 73 |
+
.hljs-ln-numbers,
|
| 74 |
+
.lntd:first-child pre > code,
|
| 75 |
+
.chroma .lnt {/* LineNumbersTable */
|
| 76 |
+
min-width: 2rem;
|
| 77 |
+
max-width: 2rem;
|
| 78 |
+
overflow: hidden;
|
| 79 |
+
vertical-align: top;
|
| 80 |
+
color: var(--n8e);
|
| 81 |
+
-webkit-user-select: none;
|
| 82 |
+
-khtml-user-select: none;
|
| 83 |
+
-moz-user-select: none;
|
| 84 |
+
-ms-user-select: none;
|
| 85 |
+
user-select: none;
|
| 86 |
+
-webkit-touch-callout: none;
|
| 87 |
+
}
|
| 88 |
+
|
| 89 |
+
.chroma .lntd { /* LineTableTD */
|
| 90 |
+
vertical-align: top;
|
| 91 |
+
}
|
| 92 |
+
|
| 93 |
+
.chroma .lntable {/* LineTable */
|
| 94 |
+
border: unset;
|
| 95 |
+
border-spacing: 0;
|
| 96 |
+
}
|
| 97 |
+
|
| 98 |
+
.chroma .hl { /* LineHighlight */
|
| 99 |
+
display: block;
|
| 100 |
+
background: var(--g18s);
|
| 101 |
+
width: auto;
|
| 102 |
+
}
|
| 103 |
+
|
| 104 |
+
.chroma .c, /* Comment */
|
| 105 |
+
.chroma .ch, /* CommentHashbang */
|
| 106 |
+
.chroma .cm, /* CommentMultiline */
|
| 107 |
+
.chroma .c1, /* CommentSingle */
|
| 108 |
+
.chroma .cs, /* CommentSpecial */
|
| 109 |
+
.chroma .cp, /* CommentPreproc */
|
| 110 |
+
.chroma .cpf, /* CommentPreprocFile */
|
| 111 |
+
.hljs-emphasis {
|
| 112 |
+
font-style: italic;
|
| 113 |
+
}
|
| 114 |
+
|
| 115 |
+
.chroma .m, /* LiteralNumber */
|
| 116 |
+
.chroma .mb, /* LiteralNumberBin */
|
| 117 |
+
.chroma .mf, /* LiteralNumberFloat */
|
| 118 |
+
.chroma .mh, /* LiteralNumberHex */
|
| 119 |
+
.chroma .mi, /* LiteralNumberInteger */
|
| 120 |
+
.chroma .il, /* LiteralNumberIntegerLong */
|
| 121 |
+
.chroma .mo, /* LiteralNumberOct */
|
| 122 |
+
.chroma .kc, /* KeywordConstant */
|
| 123 |
+
.chroma .kt, /* KeywordType */
|
| 124 |
+
.chroma .nt, /* NameTag */
|
| 125 |
+
.hljs-strong {
|
| 126 |
+
/* font-weight: bold; */
|
| 127 |
+
}
|
| 128 |
+
|
| 129 |
+
.chroma .x, /* Other */
|
| 130 |
+
.chroma .err, /* Error */
|
| 131 |
+
.chroma .ln,/* LineNumbers */
|
| 132 |
+
.chroma .o, /* Operator */
|
| 133 |
+
.chroma .p, /* Punctuation */
|
| 134 |
+
.chroma .w { /* TextWhitespace */
|
| 135 |
+
}
|
| 136 |
+
|
| 137 |
+
.chroma .kn {/* KeywordNamespace */
|
| 138 |
+
color: var(--y4i);
|
| 139 |
+
font-weight: bold;
|
| 140 |
+
}
|
| 141 |
+
|
| 142 |
+
.chroma .ow { /* OperatorWord */
|
| 143 |
+
color: var(--y4a);
|
| 144 |
+
}
|
| 145 |
+
|
| 146 |
+
.chroma .c, /* Comment */
|
| 147 |
+
.chroma .ch, /* CommentHashbang */
|
| 148 |
+
.chroma .cm, /* CommentMultiline */
|
| 149 |
+
.chroma .c1, /* CommentSingle */
|
| 150 |
+
.chroma .cs, /* CommentSpecial */
|
| 151 |
+
.chroma .cp, /* CommentPreproc */
|
| 152 |
+
.chroma .cpf, /* CommentPreprocFile */
|
| 153 |
+
.hljs-comment,
|
| 154 |
+
.hljs-quote {
|
| 155 |
+
color: var(--i3i);
|
| 156 |
+
}
|
| 157 |
+
|
| 158 |
+
.chroma .n, /* Name */
|
| 159 |
+
.chroma .nc, /* NameClass */
|
| 160 |
+
.chroma .nd, /* NameDecorator*/
|
| 161 |
+
.chroma .ne, /* NameException */
|
| 162 |
+
.chroma .fm, /* NameFunctionMagic */
|
| 163 |
+
.chroma .nl, /* NameLabel */
|
| 164 |
+
.chroma .nn, /* NameNamespace */
|
| 165 |
+
.chroma .nx, /* NameOther */
|
| 166 |
+
.chroma .py, /* NameProperty ---*/
|
| 167 |
+
.chroma .nt, /* NameTag */
|
| 168 |
+
.chroma .nv, /* NameVariable */
|
| 169 |
+
.chroma .vc, /* NameVariableClass */
|
| 170 |
+
.chroma .vg, /* NameVariableGlobal */
|
| 171 |
+
.chroma .vi, /* NameVariableInstance */
|
| 172 |
+
.chroma .vm, /* NameVariableMagic */
|
| 173 |
+
.hljs-deletion,
|
| 174 |
+
.hljs-name,
|
| 175 |
+
.hljs-regexp,
|
| 176 |
+
.hljs-selector-class,
|
| 177 |
+
.hljs-selector-id,
|
| 178 |
+
.hljs-tag,
|
| 179 |
+
.hljs-template-variable,
|
| 180 |
+
.hljs-variable {
|
| 181 |
+
color: var(--k8i);
|
| 182 |
+
}
|
| 183 |
+
|
| 184 |
+
.chroma .nb, /* NameBuiltin */
|
| 185 |
+
.chroma .bp, /* NameBuiltinPseudo */
|
| 186 |
+
.chroma .l, /* Literal */
|
| 187 |
+
.chroma .ld, /* LiteralDate */
|
| 188 |
+
.chroma .m, /* LiteralNumber */
|
| 189 |
+
.chroma .mb, /* LiteralNumberBin */
|
| 190 |
+
.chroma .mf, /* LiteralNumberFloat */
|
| 191 |
+
.chroma .mh, /* LiteralNumberHex */
|
| 192 |
+
.chroma .mi, /* LiteralNumberInteger */
|
| 193 |
+
.chroma .il, /* LiteralNumberIntegerLong */
|
| 194 |
+
.chroma .mo, /* LiteralNumberOct */
|
| 195 |
+
.hljs-built_in,
|
| 196 |
+
.hljs-lfg,
|
| 197 |
+
.hljs-literal,
|
| 198 |
+
.hljs-meta,
|
| 199 |
+
.hljs-number,
|
| 200 |
+
.hljs-params,
|
| 201 |
+
.hljs-type {
|
| 202 |
+
color: var(--s8i);
|
| 203 |
+
}
|
| 204 |
+
|
| 205 |
+
.chroma .na, /* NameAttribute */
|
| 206 |
+
.hljs-attribute {
|
| 207 |
+
color: var(--y6a);
|
| 208 |
+
}
|
| 209 |
+
|
| 210 |
+
.chroma .s, /* LiteralString */
|
| 211 |
+
.chroma .sa, /* LiteralStringAffix */
|
| 212 |
+
.chroma .sb, /* LiteralStringBacktick */
|
| 213 |
+
.chroma .sc, /* LiteralStringChar */
|
| 214 |
+
.chroma .dl, /* LiteralStringDelimiter */
|
| 215 |
+
.chroma .sd, /* LiteralStringDoc */
|
| 216 |
+
.chroma .s2, /* LiteralStringDouble */
|
| 217 |
+
.chroma .se, /* LiteralStringEscape */
|
| 218 |
+
.chroma .sh, /* LiteralStringHeredoc */
|
| 219 |
+
.chroma .si, /* LiteralStringInterpol */
|
| 220 |
+
.chroma .sx, /* LiteralStringOther */
|
| 221 |
+
.chroma .sr, /* LiteralStringRegex */
|
| 222 |
+
.chroma .s1, /* LiteralStringSingle */
|
| 223 |
+
.chroma .ss, /* LiteralStringSymbol */
|
| 224 |
+
.hljs-addition,
|
| 225 |
+
.hljs-bullet,
|
| 226 |
+
.hljs-string,
|
| 227 |
+
.hljs-symbol {
|
| 228 |
+
color: var(--y7i);
|
| 229 |
+
}
|
| 230 |
+
|
| 231 |
+
.chroma .no, /* NameConstant */
|
| 232 |
+
.chroma .nf, /* NameFunction */
|
| 233 |
+
.chroma .ni, /* NameEntity */
|
| 234 |
+
.chroma .g, /* Generic */
|
| 235 |
+
.chroma .gd, /* GenericDeleted */
|
| 236 |
+
.chroma .ge, /* GenericEmph */
|
| 237 |
+
.chroma .gr, /* GenericError */
|
| 238 |
+
.chroma .gh, /* GenericHeading */
|
| 239 |
+
.chroma .gi, /* GenericInserted */
|
| 240 |
+
.chroma .go, /* GenericOutput */
|
| 241 |
+
.chroma .gp, /* GenericPrompt */
|
| 242 |
+
.chroma .gs, /* GenericStrong */
|
| 243 |
+
.chroma .gu, /* GenericSubheading */
|
| 244 |
+
.chroma .gt, /* GenericTraceback */
|
| 245 |
+
.chroma .gl, /* GenericUnderline */
|
| 246 |
+
.hljs-section,
|
| 247 |
+
.hljs-title {
|
| 248 |
+
color: var(--w8u);
|
| 249 |
+
}
|
| 250 |
+
|
| 251 |
+
.chroma .k, /* Keyword */
|
| 252 |
+
.chroma .kc, /* KeywordConstant */
|
| 253 |
+
.chroma .kt, /* KeywordType */
|
| 254 |
+
.chroma .kd, /* KeywordDeclaration */
|
| 255 |
+
.chroma .kp, /* KeywordPseudo */
|
| 256 |
+
.chroma .kr, /* KeywordReserved */
|
| 257 |
+
.hljs-keyword,
|
| 258 |
+
.hljs-selector-tag {
|
| 259 |
+
color: var(--s4n);
|
| 260 |
+
}
|
| 261 |
+
|
| 262 |
+
@media screen and (-ms-high-contrast: active),
|
| 263 |
+
screen and (prefers-contrast: more) {
|
| 264 |
+
:root {
|
| 265 |
+
--y6a: var(--fg);
|
| 266 |
+
--w8u: var(--fg);
|
| 267 |
+
--s8i: var(--fg);
|
| 268 |
+
--n8e: var(--fg);
|
| 269 |
+
--m4i: var(--fg);
|
| 270 |
+
--y4i: var(--fg);
|
| 271 |
+
--f8a: var(--fg);
|
| 272 |
+
--s4n: var(--fg);
|
| 273 |
+
--d3u: var(--fg);
|
| 274 |
+
--r6a: var(--fg);
|
| 275 |
+
--y4a: var(--fg);
|
| 276 |
+
--k8i: var(--fg);
|
| 277 |
+
--y6i: var(--fg);
|
| 278 |
+
--o5a: var(--fg);
|
| 279 |
+
--c3u: var(--fg);
|
| 280 |
+
--s5o: var(--fg);
|
| 281 |
+
--s5e: var(--fg);
|
| 282 |
+
--y7i: var(--fg);
|
| 283 |
+
--i3i: var(--fg);
|
| 284 |
+
--t9u: var(--fg);
|
| 285 |
+
}
|
| 286 |
+
|
| 287 |
+
.hljs *,
|
| 288 |
+
.chroma * {
|
| 289 |
+
background: var(--bg) !important;
|
| 290 |
+
color: var(--fg) !important;
|
| 291 |
+
}
|
| 292 |
+
|
| 293 |
+
.hljs-keyword,
|
| 294 |
+
.hljs-selector-tag {
|
| 295 |
+
font-weight: 700;
|
| 296 |
+
}
|
| 297 |
+
|
| 298 |
+
}
|
| 299 |
+
|
| 300 |
+
@media print {
|
| 301 |
+
|
| 302 |
+
.lntd:first-child * {
|
| 303 |
+
/* hide line numbering; not coupled when code break into new line */
|
| 304 |
+
/* display: none; */
|
| 305 |
+
}
|
| 306 |
+
|
| 307 |
+
}
|
assets/js/accessibility.js
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
const bodySty = document.body;
|
| 2 |
+
const htmlSty = document.documentElement.style;
|
| 3 |
+
|
| 4 |
+
// Enable accessibility settings when JavaScript is permitted
|
| 5 |
+
getElement('a11y').disabled = false;
|
| 6 |
+
|
| 7 |
+
// Close console
|
| 8 |
+
const closeA11yConsole = () => getElement('has-a11y').removeAttribute('open');
|
| 9 |
+
|
| 10 |
+
// Color scheme and contrast functions
|
| 11 |
+
const matchMediaColor = () => {
|
| 12 |
+
lightSwitch.checked = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
| 13 |
+
|
| 14 |
+
if (window.matchMedia('(prefers-contrast: more)').matches) {
|
| 15 |
+
moreContrast.checked = true;
|
| 16 |
+
} else if (window.matchMedia('(prefers-contrast: less)').matches) {
|
| 17 |
+
lessContrast.checked = true;
|
| 18 |
+
} else {
|
| 19 |
+
defaultContrast.checked = true;
|
| 20 |
+
}
|
| 21 |
+
};
|
| 22 |
+
|
| 23 |
+
function setColor() {
|
| 24 |
+
const styles = {
|
| 25 |
+
light: {
|
| 26 |
+
default: '--off: #000; --fg: var(--fg-light); --mid: var(--midtone); --ac: var(--ac-light); --bg: var(--bg-light);',
|
| 27 |
+
less: '--off: #000; --fg: var(--fg-light-less); --mid: var(--midtone-less); --ac: var(--ac-light-less); --bg: var(--bg-light-less);',
|
| 28 |
+
more: '--off: #000; --fg: var(--fg-light-more); --mid: var(--midtone-more); --ac: var(--ac-light-more); --bg: var(--bg-light-more); --border: 1pt solid var(--fg); --bound: var(--border);'
|
| 29 |
+
},
|
| 30 |
+
dark: {
|
| 31 |
+
default: '--off: #fff; --fg: var(--fg-dark); --mid: var(--midtone); --ac: var(--ac-dark); --bg: var(--bg-dark);',
|
| 32 |
+
less: '--off: #fff; --fg: var(--fg-dark-less); --mid: var(--midtone-less); --ac: var(--ac-dark-less); --bg: var(--bg-dark-less);',
|
| 33 |
+
more: '--off: #fff; --fg: var(--fg-dark-more); --mid: var(--midtone-more); --ac: var(--ac-dark-more); --bg: var(--bg-dark-more); --border: 1pt solid var(--fg); --bound: var(--border);'
|
| 34 |
+
}
|
| 35 |
+
};
|
| 36 |
+
const scheme = lightSwitch.checked ? 'dark' : 'light';
|
| 37 |
+
const logomarkDark = getElement('logomark--dark');
|
| 38 |
+
if (logomarkDark) {
|
| 39 |
+
const logomark = getElement('logomark');
|
| 40 |
+
logomark.style.display = lightSwitch.checked ? 'none' : 'inline-block';
|
| 41 |
+
logomarkDark.style.display = lightSwitch.checked ? 'inline-block' : 'none';
|
| 42 |
+
}
|
| 43 |
+
const contrast = lessContrast.checked ? 'less' : (moreContrast.checked ? 'more' : 'default');
|
| 44 |
+
bodySty.setAttribute('style', styles[scheme][contrast]);
|
| 45 |
+
};
|
| 46 |
+
|
| 47 |
+
// Flash guard
|
| 48 |
+
addEvent(document, 'DOMContentLoaded', () => {
|
| 49 |
+
setTimeout(() => htmlSty.setProperty('--flashGuard', '1s ease-in 0.1s'), 99);
|
| 50 |
+
});
|
| 51 |
+
|
| 52 |
+
// Switch to keyboard-friendly mode
|
| 53 |
+
addEvent(document, 'keydown', (element) => {
|
| 54 |
+
if (element.key === 'Tab') {
|
| 55 |
+
document.body.classList.add('keydown');
|
| 56 |
+
}
|
| 57 |
+
if (element.key === 'Escape') {
|
| 58 |
+
document.body.classList.remove('keydown');
|
| 59 |
+
}
|
| 60 |
+
});
|
| 61 |
+
|
| 62 |
+
// Color palette functions
|
| 63 |
+
function setColorPalette() {
|
| 64 |
+
document.body.className = colorPalette.value;
|
| 65 |
+
};
|
| 66 |
+
|
| 67 |
+
// OpenDyslexic functions
|
| 68 |
+
function useOpenDyslexic() {
|
| 69 |
+
if (OpenDyslexic.checked) {
|
| 70 |
+
htmlSty.setProperty('--rm', 'OpenDyslexic');
|
| 71 |
+
htmlSty.setProperty('--sf', 'OpenDyslexic');
|
| 72 |
+
} else {
|
| 73 |
+
htmlSty.removeProperty('--rm');
|
| 74 |
+
htmlSty.removeProperty('--sf');
|
| 75 |
+
}
|
| 76 |
+
recalcLogotypeWidth();
|
| 77 |
+
};
|
| 78 |
+
|
| 79 |
+
// Font size functions
|
| 80 |
+
function setFontSize() {
|
| 81 |
+
fontSizeState.value = fontSize.value;
|
| 82 |
+
htmlSty.setProperty('--fontScale', fontSize.value / 10);
|
| 83 |
+
};
|
| 84 |
+
|
| 85 |
+
// Baseline stretch functions
|
| 86 |
+
function setStretch() {
|
| 87 |
+
baselineStretchState.value = baselineStretch.value;
|
| 88 |
+
htmlSty.setProperty('--baselineStretch', baselineStretch.value);
|
| 89 |
+
};
|
| 90 |
+
|
| 91 |
+
// Initialize localStorage
|
| 92 |
+
function hasLocalStorage() {
|
| 93 |
+
try {
|
| 94 |
+
localStorage.is = 'enable';
|
| 95 |
+
localStorage.removeItem('is');
|
| 96 |
+
return true;
|
| 97 |
+
} catch(e) {
|
| 98 |
+
defaultContrast.checked = true;
|
| 99 |
+
getElement('noLocalStorage').className = '';
|
| 100 |
+
return false;
|
| 101 |
+
};
|
| 102 |
+
};
|
| 103 |
+
|
| 104 |
+
if (hasLocalStorage()) {
|
| 105 |
+
getElement('a11y-menu').className = '';
|
| 106 |
+
saveButton.disabled = false;
|
| 107 |
+
resetButton.disabled = false;
|
| 108 |
+
|
| 109 |
+
// Reset function
|
| 110 |
+
function resetA11y() {
|
| 111 |
+
localStorage.clear();
|
| 112 |
+
matchMediaColor();
|
| 113 |
+
colorPalette.reset;
|
| 114 |
+
fontSize.value = '';
|
| 115 |
+
baselineStretch.value = '';
|
| 116 |
+
OpenDyslexic.checked = false;
|
| 117 |
+
setTimeout(() => window.location.reload(), 100);
|
| 118 |
+
};
|
| 119 |
+
|
| 120 |
+
// Save function
|
| 121 |
+
function saveA11y() {
|
| 122 |
+
setTimeout(() => closeA11yConsole(), 618);
|
| 123 |
+
|
| 124 |
+
localStorage.scheme = lightSwitch.checked ? 'light' : 'dark';
|
| 125 |
+
|
| 126 |
+
if (defaultContrast.checked) localStorage.contrast = 'default';
|
| 127 |
+
if (lessContrast.checked) localStorage.contrast = 'less';
|
| 128 |
+
if (moreContrast.checked) localStorage.contrast = 'more';
|
| 129 |
+
|
| 130 |
+
localStorage.colorPalette = colorPalette.value;
|
| 131 |
+
localStorage.font = OpenDyslexic.checked ? 'OpenDyslexic' : '';
|
| 132 |
+
localStorage.fontSize = fontSize.value;
|
| 133 |
+
localStorage.stretchSize = baselineStretch.value;
|
| 134 |
+
};
|
| 135 |
+
|
| 136 |
+
// Read settings from localStorage
|
| 137 |
+
|
| 138 |
+
if (!localStorage.getItem('scheme') && !localStorage.getItem('contrast')) {
|
| 139 |
+
matchMediaColor();
|
| 140 |
+
} else {
|
| 141 |
+
lightSwitch.checked = localStorage.scheme !== 'dark';
|
| 142 |
+
|
| 143 |
+
if (localStorage.contrast === 'more') {
|
| 144 |
+
moreContrast.checked = true;
|
| 145 |
+
} else if (localStorage.contrast === 'less') {
|
| 146 |
+
lessContrast.checked = true;
|
| 147 |
+
} else {
|
| 148 |
+
defaultContrast.checked = true;
|
| 149 |
+
}
|
| 150 |
+
|
| 151 |
+
setColor();
|
| 152 |
+
}
|
| 153 |
+
|
| 154 |
+
if (localStorage.getItem('colorPalette')) {
|
| 155 |
+
colorPalette.value = localStorage.colorPalette;
|
| 156 |
+
setColorPalette();
|
| 157 |
+
}
|
| 158 |
+
|
| 159 |
+
if (localStorage.font === 'OpenDyslexic') {
|
| 160 |
+
OpenDyslexic.setAttribute('checked', 'checked');
|
| 161 |
+
useOpenDyslexic();
|
| 162 |
+
}
|
| 163 |
+
|
| 164 |
+
if (localStorage.getItem('fontSize')) {
|
| 165 |
+
fontSize.value = localStorage.fontSize;
|
| 166 |
+
setFontSize();
|
| 167 |
+
}
|
| 168 |
+
|
| 169 |
+
if (localStorage.getItem('stretchSize')) {
|
| 170 |
+
baselineStretch.value = localStorage.stretchSize;
|
| 171 |
+
setStretch();
|
| 172 |
+
}
|
| 173 |
+
|
| 174 |
+
}
|
assets/js/bionread.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// make sure the switch unchecked on reload
|
| 2 |
+
getElement('useBionRead').className = '';
|
| 3 |
+
bionReadSwitch.checked = false;
|
| 4 |
+
// define the function
|
| 5 |
+
function bionRead() {
|
| 6 |
+
// define capture and restore environment variable
|
| 7 |
+
const bionReadMainContent = getElement('content');
|
| 8 |
+
const bionReadSnapshot = getElement('bionReadSnapshot');
|
| 9 |
+
|
| 10 |
+
if (!bionReadMainContent || !bionReadSnapshot) {
|
| 11 |
+
console.error('Required elements not found');
|
| 12 |
+
return;
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
// switch conditioning
|
| 16 |
+
if (bionReadSwitch.checked) {
|
| 17 |
+
// capture snapshot
|
| 18 |
+
bionReadSnapshot.innerHTML = bionReadMainContent.innerHTML;
|
| 19 |
+
|
| 20 |
+
// split words into 'anchored' and 'floated' part
|
| 21 |
+
const safeElements = getElements('[data-bionRead-safe]');
|
| 22 |
+
safeElements.forEach(element => {
|
| 23 |
+
const targetElements = element.querySelectorAll('h1, h2, h3, h4, h5, p, a, li, blockquote');
|
| 24 |
+
targetElements.forEach(el => {
|
| 25 |
+
const words = el.innerText.split(' ');
|
| 26 |
+
const processedWords = words.map(word => {
|
| 27 |
+
const length = word.length;
|
| 28 |
+
if (length === 1) return `<b class=k>${word}</b>`;
|
| 29 |
+
const midPoint = Math.ceil(length / 2);
|
| 30 |
+
return word
|
| 31 |
+
.split('')
|
| 32 |
+
.map((char, index) => index < midPoint ? `<b k>${char}</b>` : char)
|
| 33 |
+
.join('');
|
| 34 |
+
});
|
| 35 |
+
el.innerHTML = processedWords.join(' ');
|
| 36 |
+
});
|
| 37 |
+
});
|
| 38 |
+
|
| 39 |
+
// make 'floated' text slices less contrast
|
| 40 |
+
htmlSty.setProperty('--fg', lightSwitch.checked ? '#333' : '#ccc');
|
| 41 |
+
|
| 42 |
+
// make 'anchored' text slices a bit weighted
|
| 43 |
+
htmlSty.setProperty('--bion', '0.028em');
|
| 44 |
+
} else {
|
| 45 |
+
// restore snapshot
|
| 46 |
+
bionReadMainContent.innerHTML = bionReadSnapshot.innerHTML;
|
| 47 |
+
|
| 48 |
+
// purge snapshot
|
| 49 |
+
bionReadSnapshot.innerHTML = '';
|
| 50 |
+
|
| 51 |
+
// restore style
|
| 52 |
+
htmlSty.removeProperty('--fg');
|
| 53 |
+
htmlSty.removeProperty('--bion');
|
| 54 |
+
|
| 55 |
+
// reset color settings
|
| 56 |
+
setColor();
|
| 57 |
+
}
|
| 58 |
+
}
|
assets/js/default.js
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// Event listener helper function
|
| 2 |
+
function addEvent(element, event, handler) {
|
| 3 |
+
if (element?.attachEvent) {
|
| 4 |
+
return element.attachEvent('on' + event, handler);
|
| 5 |
+
}
|
| 6 |
+
return element?.addEventListener(event, handler, false);
|
| 7 |
+
}
|
| 8 |
+
|
| 9 |
+
// DOM element getters
|
| 10 |
+
const getElement = id => document.getElementById(id);
|
| 11 |
+
const getElements = selector => document.querySelectorAll(selector);
|
| 12 |
+
|
| 13 |
+
// Logotype width calculation
|
| 14 |
+
function recalcLogotypeWidth() {
|
| 15 |
+
const logotype = getElement('logotype');
|
| 16 |
+
const logotypeText = getElement('logotype__text');
|
| 17 |
+
logotype?.setAttribute('width', `${logotypeText.getBoundingClientRect().width}px`);
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
// Viewport adaptation
|
| 21 |
+
function adaptViewport() {
|
| 22 |
+
// fix logotype when font loading delayed
|
| 23 |
+
document.fonts.ready.then(() => {
|
| 24 |
+
recalcLogotypeWidth();
|
| 25 |
+
});
|
| 26 |
+
if (window.innerWidth < 640) {
|
| 27 |
+
getElement('has-search')?.setAttribute('open', 'open');
|
| 28 |
+
getElement('has-search')?.removeAttribute('name');
|
| 29 |
+
getElement('has-more-menu')?.setAttribute('open', 'open');
|
| 30 |
+
} else {
|
| 31 |
+
getElement('top-nav')?.setAttribute('open', 'open')
|
| 32 |
+
addEvent(visualViewport, 'resize', adaptViewport);
|
| 33 |
+
}
|
| 34 |
+
}
|
| 35 |
+
addEvent(window, 'DOMContentLoaded', adaptViewport);
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
// Node collapse handlers
|
| 39 |
+
const collapseParentNode = getElements('.js-cpn');
|
| 40 |
+
const collapseGrandParentNode = getElements('.js-cgpn');
|
| 41 |
+
const detailsElements = getElements('details.js-details');
|
| 42 |
+
|
| 43 |
+
collapseParentNode.forEach(element => {
|
| 44 |
+
const handler = () => element.parentNode?.removeAttribute('open');
|
| 45 |
+
addEvent(element, 'click', handler);
|
| 46 |
+
});
|
| 47 |
+
|
| 48 |
+
collapseGrandParentNode.forEach(element => {
|
| 49 |
+
const handler = () => element.parentNode?.parentNode?.removeAttribute('open');
|
| 50 |
+
addEvent(element, 'click', handler);
|
| 51 |
+
});
|
| 52 |
+
|
| 53 |
+
if (window.innerWidth > 640) {
|
| 54 |
+
// Details element handler for firefox based browsers which do not respect the same name attribute
|
| 55 |
+
detailsElements.forEach(detail => {
|
| 56 |
+
const handler = (e) => {
|
| 57 |
+
const name = detail.getAttribute('name');
|
| 58 |
+
if (name) {
|
| 59 |
+
getElements(`details.js-details[name="${name}"]`).forEach(otherDetail => {
|
| 60 |
+
if (otherDetail !== detail && otherDetail.hasAttribute('open')) {
|
| 61 |
+
otherDetail.removeAttribute('open');
|
| 62 |
+
}
|
| 63 |
+
});
|
| 64 |
+
}
|
| 65 |
+
};
|
| 66 |
+
addEvent(detail, 'click', handler);
|
| 67 |
+
});
|
| 68 |
+
}
|
| 69 |
+
|
| 70 |
+
// Share functionality
|
| 71 |
+
if (typeof navigatorShare !== 'undefined') {
|
| 72 |
+
getElement('navigatorShare')?.setAttribute(
|
| 73 |
+
'href',
|
| 74 |
+
'javascript:navigator.share({title: document.title, url: window.location.href})'
|
| 75 |
+
);
|
| 76 |
+
|
| 77 |
+
if (location.protocol === 'https:') {
|
| 78 |
+
getElement('copyPermalink')?.removeAttribute('class');
|
| 79 |
+
}
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
getElement('print-button')?.removeAttribute('class');
|
| 83 |
+
getElement('back')?.removeAttribute('class');
|
| 84 |
+
|
| 85 |
+
// Date handling
|
| 86 |
+
const date = new Date();
|
| 87 |
+
|
| 88 |
+
// Mastodon and QR code functionality
|
| 89 |
+
if (typeof mastodonInstance !== 'undefined') {
|
| 90 |
+
getElement('has-mastodon').className = 'active';
|
| 91 |
+
|
| 92 |
+
const mastodonHandler = () => {
|
| 93 |
+
mastodonTitle.disabled = true;
|
| 94 |
+
mastodonPermalink.disabled = true;
|
| 95 |
+
mastodonText.disabled = false;
|
| 96 |
+
mastodon?.setAttribute('action', `${mastodonInstance.value}/share`);
|
| 97 |
+
};
|
| 98 |
+
|
| 99 |
+
addEvent(mastodonInstance, 'input', mastodonHandler);
|
| 100 |
+
|
| 101 |
+
if (typeof QRCode !== 'undefined') {
|
| 102 |
+
getElement('colophon').removeAttribute('style');
|
| 103 |
+
|
| 104 |
+
qr?.appendChild(
|
| 105 |
+
QRCode({
|
| 106 |
+
msg: window.location.href,
|
| 107 |
+
ecl: 'M',
|
| 108 |
+
pal: ['#000', '#fff'],
|
| 109 |
+
pad: 2,
|
| 110 |
+
dim: 96,
|
| 111 |
+
})
|
| 112 |
+
);
|
| 113 |
+
|
| 114 |
+
const isoTime = date.toISOString();
|
| 115 |
+
const timeStamp = getElement('time-stamp');
|
| 116 |
+
timeStamp.innerHTML = isoTime;
|
| 117 |
+
timeStamp?.setAttribute('datetime', isoTime);
|
| 118 |
+
}
|
| 119 |
+
}
|
| 120 |
+
|
| 121 |
+
// Digital well-being clock
|
| 122 |
+
const hour = date.getHours();
|
| 123 |
+
const isDaytime = hour > 6 && hour < 21;
|
| 124 |
+
|
| 125 |
+
function toggleNightElements(hidden) {
|
| 126 |
+
const elements = ['grain', 'dwclock'];
|
| 127 |
+
elements.forEach(id => {
|
| 128 |
+
const element = getElement(id);
|
| 129 |
+
element?.[hidden ? 'setAttribute' : 'removeAttribute']('hidden', 'hidden');
|
| 130 |
+
});
|
| 131 |
+
}
|
| 132 |
+
|
| 133 |
+
if (isDaytime) {
|
| 134 |
+
toggleNightElements(true);
|
| 135 |
+
} else {
|
| 136 |
+
toggleNightElements(false);
|
| 137 |
+
|
| 138 |
+
let clockInterval;
|
| 139 |
+
function updateClock() {
|
| 140 |
+
const minutes = date.getMinutes();
|
| 141 |
+
const seconds = date.getSeconds();
|
| 142 |
+
const minutesDegrees = ((minutes / 60) * 360) + ((seconds/60)*6);
|
| 143 |
+
const hourDegrees = ((hour / 12) * 360) + ((minutes/60)*30);
|
| 144 |
+
|
| 145 |
+
const transforms = ['transform', 'webkitTransform', 'mozTransform', 'msTransform', 'oTransform'];
|
| 146 |
+
const hands = {
|
| 147 |
+
'#min': minutesDegrees,
|
| 148 |
+
'#hour': hourDegrees
|
| 149 |
+
};
|
| 150 |
+
|
| 151 |
+
Object.entries(hands).forEach(([selector, degrees]) => {
|
| 152 |
+
const hand = document.querySelector(selector);
|
| 153 |
+
transforms.forEach(transform => {
|
| 154 |
+
hand.style[transform] = `rotate(${degrees}deg)`;
|
| 155 |
+
});
|
| 156 |
+
});
|
| 157 |
+
}
|
| 158 |
+
|
| 159 |
+
updateClock();
|
| 160 |
+
clockInterval = setInterval(updateClock, 10000);
|
| 161 |
+
}
|
| 162 |
+
|
| 163 |
+
// Overwrite browser search bar (canceled)
|
| 164 |
+
// addEvent(document, 'keydown', function(e) {
|
| 165 |
+
// if (e.ctrlKey && e.key === 'k') {
|
| 166 |
+
// e.preventDefault();
|
| 167 |
+
// getElement('has-search')?.setAttribute('open', 'open');
|
| 168 |
+
// const searchInput = document.querySelector('.pagefind-ui__search-input');
|
| 169 |
+
// searchInput?.focus();
|
| 170 |
+
// }
|
| 171 |
+
// });
|
| 172 |
+
|
| 173 |
+
// clashes with details handler, need workaround
|
| 174 |
+
addEvent(window, 'beforeprint', function() {
|
| 175 |
+
getElements('[name="redaction-history"]')?.forEach(e => {
|
| 176 |
+
e.setAttribute('open', 'open');
|
| 177 |
+
});
|
| 178 |
+
});
|
assets/js/fediverse.js
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
const id = getElement('metadata-post').innerText;
|
| 2 |
+
|
| 3 |
+
if (id) {
|
| 4 |
+
const host = getElement('metadata-instance').innerText;
|
| 5 |
+
const i18nreplies = getElement('i18n--is-replies').innerHTML;
|
| 6 |
+
const i18nreblogs = getElement('i18n--is-reblogs').innerHTML;
|
| 7 |
+
const i18nfavourites = getElement('i18n--is-favourites').innerHTML;
|
| 8 |
+
const style = document.createElement('style');
|
| 9 |
+
style.textContent = `
|
| 10 |
+
#comments > * {width: var(--golden-ratio)}
|
| 11 |
+
#comments noscript {margin: var(--medskip) 0}
|
| 12 |
+
#discussion-starter {margin-bottom: var(--medskip)}
|
| 13 |
+
#discussion-starter > footer {display: flex; align-items: center; justify-content: space-between}
|
| 14 |
+
.mastodon-comment {margin: 1rem 0 1rem calc(var(--mul) * var(--indent)); border: 1pt solid #fff4; border-left: 2pt solid var(--ac); background: #80808008; padding: 1rem 1rem 1ex; box-shadow: 0 .5pt 1pt 0 var(--g18s); overflow: auto}
|
| 15 |
+
.mastodon-comment .content {margin-left: 4rem; line-height: calc(var(--baselineStretch) * 1.272)}
|
| 16 |
+
.mastodon-comment .par a {max-width: 100%; vertical-align: bottom; white-space: break-spaces}
|
| 17 |
+
.mastodon-comment .attachments * {width: 100%; height: auto}
|
| 18 |
+
.mastodon-comment > footer {margin-top: 1rem; margin-left: 3.5rem}
|
| 19 |
+
.mastodon-comment > footer .stat {display: inline-flex; flex-shrink: 0; gap: 5pt}
|
| 20 |
+
.stat a {display: inline-flex; align-items: center; padding: 2pt; color: var(--mid); gap: 2pt}
|
| 21 |
+
.stat a::before {vertical-align: text-top}
|
| 22 |
+
a.replies.active, a.reblogs.active {color: var(--ac)}
|
| 23 |
+
a.favourites.active {color: var(--i3i)}
|
| 24 |
+
.mastodon-comment .date {margin-left: auto; padding-left: 1rem; color: var(--mid); font-size: calc(10pt * var(--fontScale))}
|
| 25 |
+
@media only screen and (max-width: 960px) {
|
| 26 |
+
.mastodon-comment .content, .mastodon-comment > footer {margin-left: 0}
|
| 27 |
+
}
|
| 28 |
+
`;
|
| 29 |
+
document.head.appendChild(style);
|
| 30 |
+
|
| 31 |
+
function escapeHtml(unsafe) {
|
| 32 |
+
return unsafe
|
| 33 |
+
.replace(/&/g, "&")
|
| 34 |
+
.replace(/</g, "<")
|
| 35 |
+
.replace(/>/g, ">")
|
| 36 |
+
.replace(/"/g, """)
|
| 37 |
+
.replace(/'/g, "'");
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
let commentsLoaded = false;
|
| 41 |
+
|
| 42 |
+
const toot_active = (toot, what) => {
|
| 43 |
+
const count = toot[`${what}_count`];
|
| 44 |
+
return count > 0 ? 'active' : '';
|
| 45 |
+
};
|
| 46 |
+
|
| 47 |
+
const toot_count = (toot, what) => {
|
| 48 |
+
const count = toot[`${what}_count`];
|
| 49 |
+
return count > 0 ? count : '';
|
| 50 |
+
};
|
| 51 |
+
|
| 52 |
+
const user_account = (account) => {
|
| 53 |
+
let result = `@${account.acct}`;
|
| 54 |
+
if (!account.acct.includes('@')) {
|
| 55 |
+
const domain = new URL(account.url);
|
| 56 |
+
result += `@${domain.hostname}`;
|
| 57 |
+
}
|
| 58 |
+
return result;
|
| 59 |
+
};
|
| 60 |
+
|
| 61 |
+
const render_toots = (toots, in_reply_to, depth) => {
|
| 62 |
+
const tootsToRender = toots
|
| 63 |
+
.filter(toot => toot.in_reply_to_id === in_reply_to)
|
| 64 |
+
.sort((a, b) => a.created_at.localeCompare(b.created_at));
|
| 65 |
+
tootsToRender.forEach(toot => render_toot(toots, toot, depth));
|
| 66 |
+
};
|
| 67 |
+
|
| 68 |
+
const render_toot = (toots, toot, depth) => {
|
| 69 |
+
toot.account.display_name = escapeHtml(toot.account.display_name);
|
| 70 |
+
toot.account.emojis.forEach(emoji => {
|
| 71 |
+
toot.account.display_name = toot.account.display_name.replace(
|
| 72 |
+
`:${emoji.shortcode}:`,
|
| 73 |
+
`<img src="${escapeHtml(emoji.static_url)}" alt="Emoji ${emoji.shortcode}" height="20" width="20" />`
|
| 74 |
+
);
|
| 75 |
+
});
|
| 76 |
+
|
| 77 |
+
const renderAttachment = attachment => {
|
| 78 |
+
const attachmentTypes = {
|
| 79 |
+
image: () => `<a href="${attachment.url}" rel="nofollow"><img src="${attachment.preview_url}" alt="${attachment.description}" loading="lazy" /></a>`,
|
| 80 |
+
video: () => `<video controls><source src="${attachment.url}" type="${attachment.mime_type}"></video>`,
|
| 81 |
+
gifv: () => `<video autoplay loop muted playsinline><source src="${attachment.url}" type="${attachment.mime_type}"></video>`,
|
| 82 |
+
audio: () => `<audio controls><source src="${attachment.url}" type="${attachment.mime_type}"></audio>`,
|
| 83 |
+
default: () => `<a href="${attachment.url}" rel="nofollow">${attachment.type}</a>`
|
| 84 |
+
};
|
| 85 |
+
|
| 86 |
+
return (attachmentTypes[attachment.type] || attachmentTypes.default)();
|
| 87 |
+
};
|
| 88 |
+
|
| 89 |
+
const mastodonComment = `
|
| 90 |
+
<article class="mastodon-comment" style="--mul: ${depth}">
|
| 91 |
+
<header class="author">
|
| 92 |
+
<img src="${escapeHtml(toot.account.avatar_static)}" height=48 width=48 alt="${user_account(toot.account)}" loading="lazy"/>
|
| 93 |
+
<a class="has-aria-label" href="${toot.account.url}" rel="nofollow" title="${toot.account.display_name}" aria-label="${user_account(toot.account)}">
|
| 94 |
+
<span>${toot.account.display_name}</span>
|
| 95 |
+
</a>
|
| 96 |
+
</header>
|
| 97 |
+
<div class="content">
|
| 98 |
+
<div class="par" data-bionRead-safe>${toot.content}</div>
|
| 99 |
+
<div class="attachments">
|
| 100 |
+
${toot.media_attachments.map(renderAttachment).join('')}
|
| 101 |
+
</div>
|
| 102 |
+
</div>
|
| 103 |
+
<footer>
|
| 104 |
+
<div class="stat">
|
| 105 |
+
<a class="replies ${toot_active(toot, 'replies')}" href="${toot.url}" rel="nofollow" aria-label="${i18nreplies}">
|
| 106 |
+
${toot_count(toot, 'replies')}
|
| 107 |
+
</a>
|
| 108 |
+
<a class="reblogs ${toot_active(toot, 'reblogs')}" href="${toot.url}" rel="nofollow" aria-label="${i18nreblogs}">
|
| 109 |
+
${toot_count(toot, 'reblogs')}
|
| 110 |
+
</a>
|
| 111 |
+
<a class="favourites ${toot_active(toot, 'favourites')}" href="${toot.url}" rel="nofollow" aria-label="${i18nfavourites}">
|
| 112 |
+
${toot_count(toot, 'favourites')}
|
| 113 |
+
</a>
|
| 114 |
+
</div>
|
| 115 |
+
<a class="date" href="${toot.url}" rel="nofollow">
|
| 116 |
+
<time>${toot.created_at.substr(0, 10)} ${toot.created_at.substr(11, 8)}</time>
|
| 117 |
+
</a>
|
| 118 |
+
</footer>
|
| 119 |
+
</article>`;
|
| 120 |
+
|
| 121 |
+
getElement('mastodon-comments-list')
|
| 122 |
+
.appendChild(DOMPurify.sanitize(mastodonComment, {'RETURN_DOM_FRAGMENT': true}));
|
| 123 |
+
|
| 124 |
+
render_toots(toots, toot.id, depth + 1);
|
| 125 |
+
};
|
| 126 |
+
|
| 127 |
+
const toot_stats = toot => `
|
| 128 |
+
<a class="replies ${toot_active(toot, 'replies')}" href="${toot.url}" rel="nofollow" aria-label="${i18nreplies}">
|
| 129 |
+
${toot_count(toot, 'replies')}
|
| 130 |
+
</a>
|
| 131 |
+
<a class="reblogs ${toot_active(toot, 'reblogs')}" href="${toot.url}" rel="nofollow" aria-label="${i18nreblogs}">
|
| 132 |
+
${toot_count(toot, 'reblogs')}
|
| 133 |
+
</a>
|
| 134 |
+
<a class="favourites ${toot_active(toot, 'favourites')}" href="${toot.url}" rel="nofollow" aria-label="${i18nfavourites}">
|
| 135 |
+
${toot_count(toot, 'favourites')}
|
| 136 |
+
</a>`;
|
| 137 |
+
|
| 138 |
+
const loadComments = async () => {
|
| 139 |
+
if (commentsLoaded) return;
|
| 140 |
+
|
| 141 |
+
const commentsList = getElement('mastodon-comments-list');
|
| 142 |
+
commentsList.innerHTML = getElement('i18n--is-loading').innerHTML;
|
| 143 |
+
|
| 144 |
+
try {
|
| 145 |
+
const [tootResponse, contextResponse] = await Promise.all([
|
| 146 |
+
fetch(`https://${host}/api/v1/statuses/${id}`),
|
| 147 |
+
fetch(`https://${host}/api/v1/statuses/${id}/context`)
|
| 148 |
+
]);
|
| 149 |
+
|
| 150 |
+
const [toot, data] = await Promise.all([
|
| 151 |
+
tootResponse.json(),
|
| 152 |
+
contextResponse.json()
|
| 153 |
+
]);
|
| 154 |
+
|
| 155 |
+
getElement("mastodon-stats").innerHTML = toot_stats(toot);
|
| 156 |
+
|
| 157 |
+
if (data.descendants?.length > 0) {
|
| 158 |
+
commentsList.innerHTML = "";
|
| 159 |
+
render_toots(data.descendants, id, 0);
|
| 160 |
+
} else {
|
| 161 |
+
commentsList.innerHTML = getElement('i18n--no-comment').innerHTML;
|
| 162 |
+
}
|
| 163 |
+
|
| 164 |
+
commentsLoaded = true;
|
| 165 |
+
commentsList.setAttribute('aria-busy', 'false');
|
| 166 |
+
} catch (error) {
|
| 167 |
+
console.error('Error loading comments:', error);
|
| 168 |
+
commentsList.innerHTML = 'Error loading comments';
|
| 169 |
+
}
|
| 170 |
+
};
|
| 171 |
+
|
| 172 |
+
const respondToVisibility = (element, callback) => {
|
| 173 |
+
const observer = new IntersectionObserver((entries) => {
|
| 174 |
+
entries.forEach(entry => {
|
| 175 |
+
if (entry.intersectionRatio > 0) {
|
| 176 |
+
callback();
|
| 177 |
+
}
|
| 178 |
+
});
|
| 179 |
+
}, { root: null });
|
| 180 |
+
|
| 181 |
+
observer.observe(element);
|
| 182 |
+
};
|
| 183 |
+
|
| 184 |
+
const comments = getElement("mastodon-comments-list");
|
| 185 |
+
respondToVisibility(comments, loadComments);
|
| 186 |
+
}
|