a new start

This commit is contained in:
2025-10-25 12:39:30 +02:00
commit c97cadef78
726 changed files with 454051 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pivoine/_avatar.pre.scss`
// and run `npm run build:css`.
//
// During development you can run `npm run watch:css`
// to continuosly rebuild this file.
// Copyright (c) 2017 Florian Klampfer <https://qwtel.com/>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
.avatar {
position: relative;
z-index: 1;
}

View File

@@ -0,0 +1,48 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pivoine/_base.pre.scss`
// and run `npm run build:css`.
//
// During development you can run `npm run watch:css`
// to continuosly rebuild this file.
// Copyright (c) 2021 Florian Klampfer <https://qwtel.com/>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
body {
/* Prevent side-scrolling on mobile */
display: block;
position: relative;
overflow-x: hidden;
}
hy-push-state, hy-drawer {
display: block;
overflow: hidden;
}
@media print {
html {
font-size: var(--root-font-size-print);
}
}
@page {
margin: 16mm;
}

View File

@@ -0,0 +1,100 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pivoine/_break-layout.pre.scss`
// and run `npm run build:css`.
//
// During development you can run `npm run watch:css`
// to continuosly rebuild this file.
// Copyright (c) 2017 Florian Klampfer <https://qwtel.com/>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
pre, table:not(.highlight), .katex-display, .break-layout, mjx-container[jax="CHTML"][display="true"] {
$pad: $content-padding * 2;
@media screen {
position: relative;
width: calc(100% + #{$pad});
border-top-right-radius: 0!important;
border-bottom-right-radius: 0!important;
}
@media screen and (min-width: $content-width) {
$x: null;
@if $gh-pages-compat {
$x: ($content-width / 2) - $pad;
} @else {
$x: calc(($content-width / 2) - $pad);
}
width: calc(100% + 50vw - #{$x});
}
@media screen and (min-width: $break-point-2) {
$x: null;
@if $gh-pages-compat {
$x: ($content-width-2 / 2) - $pad;
} @else {
$x: calc(($content-width-2 / 2) - $pad);
}
width: calc(100% + 50vw - #{$x});
}
@media screen and (min-width: $break-point-3) {
$x: $sidebar-width + $content-margin-3;
width: calc(100vw - #{$x});
}
@media screen and (min-width: $break-point-5) {
$x: $content-width-5 + $sidebar-width + $content-margin-5 - $pad;
width: calc(100% + 100vw - #{$x});
}
@media screen and (min-width: $break-point-dynamic) {
$x: null;
@if $gh-pages-compat {
$x: (($content-width-5 / 2) - ($content-padding * 2) + 21rem);
} @else {
$x: calc(($content-width-5 / 2) - ($content-padding * 2) + 21rem);
}
width: calc(100% + 50vw - #{$x} + 2px);
}
}
body:not(.no-break-layout) {
.katex-display > .katex, mjx-container[jax][display="true"] {
text-align: left!important;
}
}
body.no-break-layout {
width: calc(100% + #{$content-margin-5 + 2rem});
}
body.no-toc:not(.no-break-layout) {
pre, table:not(.highlight), .katex-display, .break-layout, mjx-container[jax="CHTML"][display="true"] {
@media screen and (min-width: $break-point-dynamic) {
$x: null;
@if $gh-pages-compat {
$x: (($content-width-5 / 2) - ($content-padding * 2));
} @else {
$x: calc(($content-width-5 / 2) - ($content-padding * 2));
}
width: calc(100% + 50vw - #{$x});
}
}
}

View File

@@ -0,0 +1,39 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pivoine/_content.pre.scss`
// and run `npm run build:css`.
//
// During development you can run `npm run watch:css`
// to continuosly rebuild this file.
// Copyright (c) 2017 Florian Klampfer <https://qwtel.com/>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
.content {
@media print {
padding: 1rem;
}
}
.large-only {
display: none;
@media screen and (min-width: $break-point-dynamic) {
display: block;
}
}

View File

@@ -0,0 +1,45 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pivoine/_footer.pre.scss`
// and run `npm run build:css`.
//
// During development you can run `npm run watch:css`
// to continuosly rebuild this file.
// Copyright (c) 2017 Florian Klampfer <https://qwtel.com/>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
main > footer.content {
position: absolute;
bottom: 0;
left: 0;
right: 0;
color: var(--gray);
text-align: center;
min-height: 0;
padding-top: 0;
padding-bottom: 2rem;
> p {
margin-bottom: 0;
}
@media print {
display: none;
}
}

View File

@@ -0,0 +1,72 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pivoine/_images.pre.scss`
// and run `npm run build:css`.
//
// During development you can run `npm run watch:css`
// to continuosly rebuild this file.
// Copyright (c) 2017 Florian Klampfer <https://qwtel.com/>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
.content .aspect-ratio {
// overflow: hidden;
img {
// margin: 0;
// width: 100%;
// height: 100%;
object-fit: cover;
object-position: center;
// background-color: var(--gray-bg);
}
}
figure, .figure {
@extend .faded, .fine, .centered;
margin-bottom: 2rem;
> *:first-child {
margin-bottom: 1rem;
}
}
.highlighter-rouge + .figure {
margin-top: -1.5rem;
}
.figcaption {
@extend .faded, .fine, .centered;
margin-top: -0.5rem;
margin-bottom: 2rem;
}
.gallery-wrapper {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
grid-gap: 1rem;
}
.gallery-item {
display: flex;
flex-direction: column;
overflow: hidden;
@media screen and (min-width: $break-point-1) {
border-radius: 3%;
}
}

View File

@@ -0,0 +1,32 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pivoine/_katex.pre.scss`
// and run `npm run build:css`.
//
// During development you can run `npm run watch:css`
// to continuosly rebuild this file.
// Copyright (c) 2017 Florian Klampfer <https://qwtel.com/>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
article {
.katex-display, mjx-container[jax][display="true"] {
@extend .pre-base;
padding: 2rem;
}
}

View File

@@ -0,0 +1,64 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pivoine/_links.pre.scss`
// and run `npm run build:css`.
//
// During development you can run `npm run watch:css`
// to continuosly rebuild this file.
// Copyright (c) 2017 Florian Klampfer <https://qwtel.com/>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
hy-push-state a {
// color: var(--body-color);
& {
transition: color 250ms, text-decoration-color 250ms, border-color 250ms;
}
&:hover {
transition: color 50ms, text-decoration-color 50ms, border-color 50ms;
}
}
.content a:not(.btn):not(.no-hover) {
&:hover {
@supports ((text-decoration-thickness: initial) and (text-underline-offset: initial)) {
text-decoration-color: var(--accent-color);
}
& { border-color: var(--accent-color); }
}
}
a.btn {
text-decoration: none;
}
@media print {
a:not(.no-print-link)::after {
content: " (" attr(href) ") ";
color: var(--gray);
font-size: 62%;
}
}

View File

@@ -0,0 +1,46 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pivoine/_mark-external.pre.scss`
// and run `npm run build:css`.
//
// During development you can run `npm run watch:css`
// to continuosly rebuild this file.
// Copyright (c) 2017 Florian Klampfer <https://qwtel.com/>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
@media screen {
a.external,
a[href*="://"]:not(.no-mark-external):not(.no-mark),
a.no-push-state:not(.no-mark-external):not(.no-mark) {
&::after {
content: "\2009\ea7e";
font-family: 'icomoon'!important;
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
font-size: smaller;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
color: var(--menu-text);
}
}
}

View File

@@ -0,0 +1,97 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pivoine/_menu.pre.scss`
// and run `npm run build:css`.
//
// During development you can run `npm run watch:css`
// to continuosly rebuild this file.
// Copyright (c) 2017 Florian Klampfer <https://qwtel.com/>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
$navbar-height: 5rem;
.navbar {
// @extend .color-transition;
> .content {
$shadow-padding: 3rem;
&::before {
content: "";
position: absolute;
display: block;
width: calc(100% - #{$shadow-padding * 2});
height: $navbar-height;
left: $shadow-padding;
margin: auto;
box-shadow: 0 0 2rem rgba(0,0,0,0.25);
z-index: -1;
}
}
&.fixed-top {
> .content {
&::before {
bottom: 1px;
}
}
}
&.fixed-bottom {
> .content {
&::before {
top: 1px;
}
}
}
}
a.nav-btn, button.nav-btn {
cursor: pointer;
&:hover, &:focus {
background-image: linear-gradient(90deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
}
}
.nav-span {
flex: 1;
}
.animation-main {
opacity: 0;
pointer-events: none;
}
#_navbar {
z-index: 3;
background-color: var(--body-bg);
}
.navbar {
.loading { display: none; }
@media print { display: none; }
}

View File

@@ -0,0 +1,82 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pivoine/_search.pre.scss`
// and run `npm run build:css`.
//
// During development you can run `npm run watch:css`
// to continuosly rebuild this file.
// Copyright (c) 2017 Florian Klampfer <https://qwtel.com/>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
hm-search {
// display: flex;
// flex-grow: 1;
// padding: 1em;
// position: relative;
// overflow: hidden;
@media screen {
--hm-search-input-color: var(--menu-text);
--hm-search-input-color-bg: none;
--hm-search-input-color-border: none;
--hm-search-input-color-caret: var(--accent-color);
--hm-search-font-size: larger;
}
}
.search-results {
> article {
animation: scale-in-center 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
&:hover img {
filter: grayscale(0);
}
img {
filter: grayscale(1.0);
transition: filter 250ms ease-in-out;
}
}
/* ----------------------------------------------
* Generated by Animista on 2025-4-30 22:39:13
* Licensed under FreeBSD License.
* See http://animista.net/license for more info.
* w: http://animista.net, t: @cssanimista
* ---------------------------------------------- */
/**
* ----------------------------------------
* animation scale-in-center
* ----------------------------------------
*/
@keyframes scale-in-center {
0% {
transform: scale(0);
opacity: 1;
}
100% {
transform: scale(1);
opacity: 1;
}
}
}

View File

@@ -0,0 +1,127 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pivoine/_sidebar.pre.scss`
// and run `npm run build:css`.
//
// During development you can run `npm run watch:css`
// to continuosly rebuild this file.
// Copyright (c) 2017 Florian Klampfer <https://qwtel.com/>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
hy-drawer {
// width: 100%;
// position: relative;
// overflow: hidden;
// display: block;
// z-index: 4;
@media screen {
--hy-drawer-width: 100%;
--hy-drawer-peek-width: .5rem;
--hy-drawer-box-shadow: 0 0 1rem rgba(0, 0, 0, 0.25);
}
@media screen and (min-width: $break-point-3) {
& { --hy-drawer-peek-width: #{$sidebar-width}; }
}
@media screen and (min-width: $break-point-dynamic) {
width: calc(50% - #{$half-content});
--hy-drawer-peek-width: calc(50% - #{$half-content});
}
@media screen {
&.loaded {
position: static;
}
}
}
.sidebar {
a {
&:hover {
border-bottom-color: #fff;
text-decoration-color: #fff;
}
}
&.invert a {
&:hover {
border-bottom-color: #222;
text-decoration-color: #222;
}
}
}
hy-drawer.loaded .sidebar {
min-height: 100%;
}
.sidebar-bg {
&.sidebar-overlay::after {
background: -moz-linear-gradient(top, rgba(32,32,32,0) 0%, rgba(32,32,32,0.5) 50%, rgba(32,32,32,0) 100%);
background: -webkit-linear-gradient(top, rgba(32,32,32,0) 0%,rgba(32,32,32,0.5) 50%, rgba(32,32,32,0) 100%);
// background: linear-gradient(to bottom, rgba(32,32,32,0) 0%,rgba(32,32,32,0.5) 50%, rgba(32,32,32,0) 100%);
}
}
@media print {
.sidebar {
display: none;
}
}
#_swipe {
position: absolute;
z-index: 4;
opacity: 0.33;
top: 5vw;
right: 5vw;
transform: scale(0.67);
@media screen and (min-width: $break-point-1) {
top: calc(50% - 48px);
right: 10vw;
transform: scale(1);
}
}

View File

@@ -0,0 +1,33 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pivoine/_social.pre.scss`
// and run `npm run build:css`.
//
// During development you can run `npm run watch:css`
// to continuosly rebuild this file.
// Copyright (c) 2017 Florian Klampfer <https://qwtel.com/>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
.sidebar-social {
@media print {
display: none;
}
}

View File

@@ -0,0 +1,54 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pivoine/_sound.pre.scss`
// and run `npm run build:css`.
//
// During development you can run `npm run watch:css`
// to continuosly rebuild this file.
// Copyright (c) 2017 Florian Klampfer <https://qwtel.com/>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
.sound-player {
> a {
text-transform: uppercase;
display: inline-block;
margin-bottom: 1rem;
cursor: pointer;
}
> canvas {
display: block;
margin: 0 auto;
height: 40px;
&.hidden {
display: none;
}
}
}
.sound-wrapper {
display: flex;
flex-direction: column;
> a {
text-transform: uppercase;
}
}

View File

@@ -0,0 +1,55 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pivoine/_toc.pre.scss`
// and run `npm run build:css`.
//
// During development you can run `npm run watch:css`
// to continuosly rebuild this file.
// Copyright (c) 2020 Florian Klampfer <https://qwtel.com/>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#markdown-toc {
transition: opacity 300ms ease, transform 300ms ease, border-color 1s ease;
&:before { left: 1rem; }
}
body:not(.no-toc) #markdown-toc {
@media screen and (min-width: $break-point-dynamic) {
overscroll-behavior: contain;
&.toc-hide {
opacity: 0;
transform: translateX(-2rem);
}
&.toc-show {
opacity: 1;
transform: translateX(0);
}
&.affix {
position: fixed;
top: 1rem;
max-height: calc(100vh - 1rem);
}
}
}

View File

@@ -0,0 +1,87 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pivoine/_utilities.pre.scss`
// and run `npm run build:css`.
//
// During development you can run `npm run watch:css`
// to continuosly rebuild this file.
// Copyright (c) 2017 Florian Klampfer <https://qwtel.com/>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
.fl { float: left; }
.fr { float: right; }
.mb4 { margin-bottom: 4rem }
.mb6 { margin-bottom: 6rem }
.mt0 { margin-top: 0 }
.mt1 { margin-top: 1rem }
.mt2 { margin-top: 2rem }
.mt3 { margin-top: 3rem }
.mt4 { margin-top: 4rem }
.pb0 { padding-bottom: 0 }
.ml1 { margin-left: 1rem }
.mr1 { margin-right: 1rem }
.sixteen-nine { @include aspect-ratio(16, 9); }
.sixteen-ten { @include aspect-ratio(16, 10); }
.four-three { @include aspect-ratio(4, 3); }
.one-one { @include aspect-ratio(1, 1); }
.sr-only {
// display: none;
display: unset;
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
border: 0;
}
.larger { font-size: larger; }
.smaller { font-size: smaller; }
.clearfix {
content: "";
display: table;
clear: both;
}
.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.border {
// border: 1px solid var(--border-color);
transition: border-color 1s ease;
}
.border-radius {
@include border-radius();
}
.fallback-img {
@include fallback-image();
}
.hidden {
display: none;
}