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,78 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_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) 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/>.
* {
box-sizing: border-box;
// // -webkit-tap-highlight-color: transparent;
}
html,
body {
margin: 0;
padding: 0;
}
html {
font-family: var(--font-family);
font-size: var(--root-font-size);
line-height: var(--root-line-height);
}
body {
@extend .color-transition;
color: var(--body-color);
background-color: var(--body-bg);
font-weight: var(--font-weight);
overflow-y: scroll;
}
p {
@extend .color-transition;
}
.content img, .img,
.content video, .video {
max-width: 100%;
height: auto;
}
.lead {
@extend .border-radius;
margin-left: -1rem;
margin-right: -1rem;
margin-bottom: 1.5rem;
}
img, video {
&.lead {
display: block;
max-width: calc(100% + 2rem);
width: calc(100% + 2rem);
height: auto;
}
}

View File

@@ -0,0 +1,25 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_code.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/>.

View File

@@ -0,0 +1,25 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_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/>.
// footer { margin-bottom: 2rem; }

View File

@@ -0,0 +1,25 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_footnotes.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/>.

View File

@@ -0,0 +1,66 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_message.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/>.
.message {
@extend .color-transition;
margin-bottom: 1rem;
padding: 1rem;
color: var(--gray-text);
background-color: var(--gray-bg);
margin-left: -1rem;
margin-right: -1rem;
}
.note-sm {
@extend .message;
background: transparent;
color: var(--body-color);
font-size: smaller;
border-left: 1px solid var(--border-color);
padding: 1.2rem 1rem 0 1rem;
margin: 1rem -1rem;
position: relative;
&:before {
font-size: 0.667rem;
font-weight: bold;
font-style: normal;
letter-spacing: .025rem;
text-transform: uppercase;
color: var(--menu-text);
position: absolute;
top: 0;
}
&[title]:before {
content: attr(title)!important;
}
}
.note {
@extend .note-sm;
font-size: 1rem;
}

View File

@@ -0,0 +1,25 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_pagination.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/>.

View File

@@ -0,0 +1,91 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_posts.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/>.
.page {
margin-bottom: 3em;
li + li {
margin-top: .25rem;
}
> header {
position: relative;
margin-bottom: 2rem;
}
.aspect-ratio.sixteen-nine.lead {
@extend .border-radius;
}
}
body:not(.no-third-column) {
.page > header {
> .lead + .note-sm,
> a.no-hover + .note-sm {
@media screen and (min-width: $break-point-dynamic) {
position: absolute;
right: -25rem;
width: 21rem;
bottom: 0;
margin-bottom: 0;
}
}
}
}
// Blog post or page title
.page-title, .post-title { margin-top: 0; }
// Meta data line below post title
.post-date {
@extend .h4;
display: flex;
justify-content: space-between;
margin-top: -.6rem;
height: 2rem;
margin-bottom: .85rem;
color: var(--gray);
> .ellipsis {
cursor: pointer;
}
[class^="icon-"] {
display: inline-block;
font-size: smaller;
margin-right: .25rem;
}
}
.img-wrapper > .hotfx-lightbox-slide {
display: none;
}
hotfx-lightbox::part(slide) {
display: inherit;
margin: 0 auto;
}

View File

@@ -0,0 +1,25 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_read-more.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/>.

View File

@@ -0,0 +1,38 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_related.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/>.
.related-posts {
padding-left: 0;
list-style: none;
margin-bottom: 2rem;
> li,
> li + li {
margin-top: 1rem;
}
}

View File

@@ -0,0 +1,25 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_table.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/>.

View File

@@ -0,0 +1,156 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_type.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/>.
.heading {
font-family: var(--font-family-heading);
font-weight: var(--font-weight-heading);
}
.f1 {
@extend .heading;
font-size: 2rem;
line-height: 1.3;
}
.f2 {
@extend .heading;
font-size: 1.5rem;
line-height: 1.4;
}
.f3 {
@extend .heading;
font-size: 1.2em;
line-height: 1.5;
}
.f4 {
@extend .heading;
font-size: 1.08rem;
line-height: 1.6;
}
.f5 {
@extend .heading;
font-size: 1.04rem;
line-height: 1.7;
}
.f6 {
@extend .heading;
font-size: 1rem;
}
h1, .h1 { @extend .f1; }
h2, .h2 { @extend .f2; }
h3, .h3 { @extend .f3; }
h4, .h4 { @extend .f4; }
h5, .h5 { @extend .f5; }
h6, .h6 { @extend .f6; }
.content {
h1, .h1 {
> a { text-decoration: none; border-bottom: none; }
@media screen and (max-width: $break-point-1) {
font-size: 1.7rem;
line-height: 1.35;
}
@media screen and (min-width: $break-point-5) {
font-size: 2.4rem;
line-height: 1.25;
}
}
}
body:not(.no-large-headings) {
.content {
h1, .h1 {
@media screen and (min-width: $break-point-dynamic) {
width: calc(100% + 50vw - 32rem);
font-size: 3rem;
line-height: 1.2;
}
@media screen and (min-width: $break-point-font-large) {
font-size: 4rem;
line-height: 1.1;
}
}
}
}
h1, h2, h3, .h1, .h2, .h3 {
margin: 4rem 0 1rem;
}
h4, h5, h6, .h4, .h5, .h6 {
margin: 3rem 0 .5rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
&.lead {
font-size: 1.2em;
margin-top: 1.5rem;
margin-bottom: 1.5rem;
padding: 0 1rem;
}
}
ul, ol, dl {
margin-top: 0;
margin-bottom: 1rem;
}
ul, ol {
padding-left: 1.25rem;
}
hr, .hr {
@extend .color-transition;
border: 0;
margin: 1rem 0;
border-top: 1px solid var(--border-color);
}
.hr-after::after {
@extend .color-transition;
content: "";
display: block;
margin: 1rem 0;
border-top: 1px solid var(--border-color);
}
.hr-bottom {
@extend .color-transition;
border-bottom: 1px solid var(--border-color);
padding-bottom: .75rem;
margin-bottom: 1rem;
}

View File

@@ -0,0 +1,46 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_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) 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/>.
* {
// box-sizing: border-box;
// -webkit-tap-highlight-color: transparent;
}
@media (display-mode: standalone) {
body {
overscroll-behavior-y: contain;
}
}
:focus {
outline-color: var(--accent-color)!important;
}
::selection {
background: var(--accent-color-faded);
}

View File

@@ -0,0 +1,220 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_code.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/>.
code, pre {
font-family: var(--code-font-family);
}
code {
@extend .color-transition;
padding: .25em .5em;
background-color: var(--gray-bg);
font-size: smaller;
}
.figure-base {
@extend .color-transition;
margin-left: -1rem;
margin-right: -1rem;
// Prevent code linebreaks and allow side-scrolling for better readability on mobile
overflow-x: auto;
-webkit-overflow-scrolling: touch;
@include border-radius();
}
.pre-base {
@extend .figure-base;
padding: 1rem;
margin-bottom: 1.5rem;
background-color: var(--gray-bg);
// HACK: prevents painting for some reason
backface-visibility: hidden;
@media print {
width: 100%!important;
page-break-inside: avoid;
break-inside: avoid-page;
}
}
pre {
@extend .pre-base;
margin-top: 0;
display: block;
font-size: .83em;
line-height: 1.5em;
position: relative;
}
pre > code {
display: inline-block;
position: relative;
min-width: 100%;
padding: 0;
color: inherit;
background-color: transparent;
font-size: 1em;
// .__hl {
// @extend .color-transition;
// display: inline-block;
// position: absolute;
// left: -1rem;
// right: -1rem;
// background: var(--accent-color-highlight);
// border-left: .25rem solid var(--accent-color-faded);
// z-index: -1;
// }
}
.pre-header-common {
@extend .color-transition;
height: 2rem;
border: none;
border-bottom: 1px solid var(--border-color);
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
div.highlight {
position: relative;
> .pre-header {
@extend .figure-base;
@extend .pre-header-common;
display: block;
color: var(--gray)!important;
background-color: var(--gray-bg);
overflow: clip;
> span {
font-size: smaller;
}
> * {
display: inline-block;
padding: .3rem 1rem .2rem;
}
}
> button {
@extend .pre-header-common;
position: absolute;
top: 0;
right: -1rem;
color: var(--menu-text);
background: none;
border-left: 1px solid var(--border-color);
border-right: 1px solid var(--border-color);
border-top-left-radius: 0;
padding-left: 1rem;
padding-right: 1rem;
overflow: hidden;
cursor: pointer;
opacity: 0;
transition: opacity 300ms;
&:hover {
background: var(--gray-bg);
}
&.copy-success {
> .icon-copy {
animation-name: icon-copy;
animation-duration: 1.5s;
animation-timing-function: ease;
}
> .icon-checkmark {
animation-name: icon-checkmark;
animation-duration: 1.5s;
animation-timing-function: ease;
}
}
> .icon-copy {
display: inline-block;
}
> .icon-checkmark {
position: absolute;
top: 50%;
margin-top: -3em;
left: 0;
right: 0;
text-align: center;
}
}
&:hover > button {
opacity: 1;
transition: opacity 100ms;
}
> .pre-header ~ pre.highlight {
border-top-left-radius: 0;
border-top-right-radius: 0;
padding-top: .65rem;
}
> .pre-header ~ button {
opacity: 1;
}
}
body.no-break-layout {
div.highlight > button {
border-right: none;
}
}
@keyframes icon-checkmark {
0% {
transform: translateY(0);
}
15%, 85% {
transform: translateY(2.5em);
}
100% {
transform: translateY(5em);
}
}
@keyframes icon-copy {
0% {
transform: translateY(0);
}
15% {
transform: translateY(2.5em);
}
15.01%, 85% {
transform: translateY(-2.5em);
}
100% {
transform: translateY(0);
}
}

View File

@@ -0,0 +1,25 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_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/>.
footer { margin-bottom: 2rem; }

View File

@@ -0,0 +1,80 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_footnotes.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/>.
// Footnote number within body text
a[href^="#fn:"],
// Back to footnote link
a[href^="#fnref:"] {
margin-left: .1rem;
font-weight: var(--font-weight-bold);
@media screen and (max-width: $break-point-4) {
font-weight: normal;
&::before { content: "["; }
&::after { content: "]"; }
}
}
sup {
line-height: 1;
&[id^="fnref"] {
@media screen and (max-width: $break-point-4) {
vertical-align: baseline;
font-size: inherit;
}
}
}
// List of footnotes
.footnotes {
margin-top: 5rem;
margin-bottom: 5rem;
> ol {
color: var(--gray);
> li {
padding: .5rem;
margin-left: .5rem;
> p { margin: 0; }
&:focus {
outline: none;
color: var(--gray-text);
background: var(--gray-bg);
}
}
}
&::before {
@extend .color-transition;
content: "";
display: block;
margin: 1rem 0;
border: 0;
border-top: 1px solid var(--border-color);
}
}

View File

@@ -0,0 +1,25 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_message.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/>.

View File

@@ -0,0 +1,91 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_pagination.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/>.
.pagination {
@extend .color-transition;
width: calc(100% + 2rem);
margin: 0 -1rem 1rem;
color: var(--gray);
text-align: center;
> ul {
list-style: none;
padding: 0;
}
}
// Pagination items can be `span`s or `a`s
.pagination-item {
> * {
display: block;
padding: .25rem 1rem;
border: solid var(--border-color);
border-width: 1px 0;
transition: border-color 1s ease;
}
> a, > a:hover, > a:focus {
border-color: var(--border-color)!important;
text-decoration: none;
}
&:first-child > * {
margin-bottom: -1px;
}
// Only provide a hover state for linked pagination items
> a:hover, > a:focus {
background-color: var(--gray-bg);
border-bottom: 1px solid var(--border-color);
}
}
@media (min-width: 23.5em) {
.pagination {
width: 100%;
margin: 3rem 0;
}
.pagination-item {
> * {
float: left;
width: 50%;
border-width: 1px;
}
&:first-child > * {
margin-bottom: 0;
border-top-left-radius: 0.25rem;
border-bottom-left-radius: 0.25rem;
}
&:last-child > * {
margin-left: -1px;
border-top-right-radius: 0.25rem;
border-bottom-right-radius: 0.25rem;
}
}
}

View File

@@ -0,0 +1,55 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_posts.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/>.
clap-button {
margin-left: auto;
margin-right: auto;
--clap-button-color: var(--accent-color);
}
clap-button + p.message {
margin: -2rem auto 0;
max-width: 32rem;
font-size: smaller
}
hr.dingbat {
border: 0;
&:after{
content: "\2756";
display: block;
text-align: center;
font-size: 1.5rem;
color: var(--menu-text);
}
}
@media print {
.page {
margin-bottom: 0
}
}

View File

@@ -0,0 +1,46 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_read-more.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/>.
.read-more {
@extend .faded;
margin-top: 1.5rem;
margin-bottom: 3rem;
text-align: right;
&::after {
content: " \2192";
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;
}
}

View File

@@ -0,0 +1,33 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_related.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/>.
.comments {
@media print {
display: none;
}
}

View File

@@ -0,0 +1,176 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_table.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/>.
table:not(.rouge-table) {
@extend .figure-base;
border-collapse: collapse;
border-radius: 0!important;
display: block;
margin-bottom: 1.5rem;
td, th {
@extend .color-transition;
padding: .5em .75em;
&:first-child {
padding-left: 1rem;
border-left: 1px solid var(--border-color);
}
&:last-child {
padding-right: 1rem;
border-right: 1px solid var(--border-color);
}
}
> *:first-child {
border-top: 1px solid var(--border-color);
}
> *:last-child {
border-bottom: 1px solid var(--border-color);
}
thead {
@extend .color-transition;
background-color: var(--body-bg);
}
thead + tbody,
tbody + tbody,
tfoot {
@extend .color-transition;
border-top: 1px solid var(--border-color);
}
tbody tr:nth-child(even) td,
tbody tr:nth-child(even) th {
@extend .color-transition;
background-color: var(--body-bg);
}
tbody tr:nth-child(odd) td,
tbody tr:nth-child(odd) th {
@extend .color-transition;
background-color: var(--gray-bg);
}
}
// CSS only Responsive Tables
// http://dbushell.com/2016/03/04/css-only-responsive-tables/
// by David Bushell
@mixin scroll-table() {
white-space: nowrap; // optional - looks better for small cell values
}
@mixin flip-table() {
display: flex;
overflow: hidden;
thead, tbody {
display: flex;
}
thead {
flex-shrink: 0;
min-width: min-content;
border-left: 1px solid var(--border-color);
border-bottom: 1px solid var(--border-color);
th {
padding-left: 1em;
}
}
tbody {
position: relative;
overflow-x: auto;
overflow-y: hidden;
-webkit-overflow-scrolling: touch;
}
tr {
display: flex;
flex-direction: column;
min-width: min-content;
flex-shrink: 0;
&:last-child {
border-right: 1px solid var(--border-color);
td {
padding-right: 1em;
}
}
}
td, th {
display: block;
&:first-child {
padding-left: .5em;
border-left: none;
}
&:last-child {
padding-right: .5em;
border-right: none;
}
}
}
table.stretch-table {
display: table;
width: 100% !important;
width: calc(100% + 2em) !important;
// @media screen and (max-width: $break-point-4) {
// display: block!important;
// @include scroll-table();
// }
}
table.scroll-table {
@include scroll-table();
}
table.flip-table {
@include flip-table();
}
@media screen and (max-width: $break-point-4) {
table.scroll-table-small {
@include scroll-table();
}
table.flip-table-small {
@include flip-table();
}
}
@media print {
table:not(.rouge-table) {
width: 100%!important;
}
}

View File

@@ -0,0 +1,180 @@
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
//
// To change the contents of this file,
// edit `_sass/pooleparty/_type.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/>.
.heading {
font-family: var(--font-family-heading);
font-weight: var(--font-weight-heading);
}
.f1 {
@extend .heading;
font-size: 2rem;
line-height: 1.3;
}
.f2 {
@extend .heading;
font-size: 1.5rem;
line-height: 1.4;
}
.f3 {
@extend .heading;
font-size: 1.2em;
line-height: 1.5;
}
.f4 {
@extend .heading;
font-size: 1.08rem;
line-height: 1.6;
}
.f5 {
@extend .heading;
font-size: 1.04rem;
line-height: 1.7;
}
.f6 {
@extend .heading;
font-size: 1rem;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, .heading {
text-rendering: optimizeLegibility;
}
h1 + h2, .h1 + .h2, h1 + .h2, .h1 + h2,
h2 + h3, .h2 + .h3, h2 + .h3, .h2 + h3,
h3 + h4, .h3 + .h4, h3 + .h4, .h3 + h4,
h4 + h5, .h4 + .h5, h4 + .h5, .h4 + h5,
h5 + h6, .h5 + .h6, h5 + .h6, .h5 + h6 {
margin-top: 0;
}
dt, strong {
font-weight: var(--font-weight-bold);
}
dt:after{
content: " :";
color: var(--menu-text);
}
dd {
margin-bottom: .5rem;
}
abbr {
font-size: 85%;
font-weight: var(--font-weight-bold);
text-transform: uppercase;
&[title] {
cursor: help;
border-bottom: 1px dotted var(--border-color);
}
}
blockquote {
@extend .color-transition;
padding: .5rem 1rem;
margin: .8rem 0;
color: var(--gray);
border-left: .25rem solid var(--border-color);
&.lead {
font-size: 1.2em;
margin-top: 1.5rem;
margin-bottom: 1.5rem;
border-left-width: 0.4rem;
}
> p:last-child {
margin-bottom: 0;
}
}
.heading {
font-weight: var(--font-weight-heading);
}
.fine, .smaller {
font-size: smaller;
}
.faded {
@extend .color-transition;
color: var(--gray);
}
.centered {
text-align: center;
}
h1[id], h2[id], h3[id], h4[id], h5[id], h6[id] {
position: relative;
> .permalink {
text-decoration: none;
border: none;
opacity: 0;
transition: opacity 400ms;
@media print {
display: none;
}
}
&:hover > .permalink {
opacity: 0.5;
}
& > .permalink:hover,
& > .permalink:focus {
opacity: 1;
transition: opacity 200ms;
}
}
.content-hash::before {
content: '#'
}
.content-json::before {
content: '{}'
}
@media print {
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, dt {
page-break-inside: avoid;
break-inside: avoid-page;
page-break-after: avoid;
break-after: avoid-page;
}
}

View File

@@ -0,0 +1,83 @@
// 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/>.
* {
box-sizing: border-box; // inline
// -webkit-tap-highlight-color: transparent; // link
}
// <<< INLINE
html,
body {
margin: 0;
padding: 0;
}
html {
font-family: var(--font-family);
font-size: var(--root-font-size);
line-height: var(--root-line-height);
}
body {
@extend .color-transition;
color: var(--body-color);
background-color: var(--body-bg);
font-weight: var(--font-weight);
overflow-y: scroll;
}
p {
@extend .color-transition;
}
.content img, .img,
.content video, .video {
max-width: 100%;
height: auto;
}
.lead {
@extend .border-radius;
margin-left: -1rem;
margin-right: -1rem;
margin-bottom: 1.5rem;
}
img, video {
&.lead {
display: block;
max-width: calc(100% + 2rem);
width: calc(100% + 2rem);
height: auto;
}
}
// >>> INLINE
// <<< LINK
@media (display-mode: standalone) {
body {
overscroll-behavior-y: contain;
}
}
:focus {
outline-color: var(--accent-color)!important;
}
::selection {
background: var(--accent-color-faded);
}
// >>> LINK

View File

@@ -0,0 +1,211 @@
// 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/>.
// <<<<< LINK
code, pre {
font-family: var(--code-font-family);
}
code {
@extend .color-transition;
padding: .25em .5em;
background-color: var(--gray-bg);
font-size: smaller;
}
.figure-base {
@extend .color-transition;
margin-left: -1rem;
margin-right: -1rem;
// Prevent code linebreaks and allow side-scrolling for better readability on mobile
overflow-x: auto;
-webkit-overflow-scrolling: touch;
@include border-radius();
}
.pre-base {
@extend .figure-base;
padding: 1rem;
margin-bottom: 1.5rem;
background-color: var(--gray-bg);
// HACK: prevents painting for some reason
backface-visibility: hidden;
@media print {
width: 100%!important;
page-break-inside: avoid;
break-inside: avoid-page;
}
}
pre {
@extend .pre-base;
margin-top: 0;
display: block;
font-size: .83em;
line-height: 1.5em;
position: relative;
}
pre > code {
display: inline-block;
position: relative;
min-width: 100%;
padding: 0;
color: inherit;
background-color: transparent;
font-size: 1em;
// .__hl {
// @extend .color-transition;
// display: inline-block;
// position: absolute;
// left: -1rem;
// right: -1rem;
// background: var(--accent-color-highlight);
// border-left: .25rem solid var(--accent-color-faded);
// z-index: -1;
// }
}
.pre-header-common {
@extend .color-transition;
height: 2rem;
border: none;
border-bottom: 1px solid var(--border-color);
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
div.highlight {
position: relative;
> .pre-header {
@extend .figure-base;
@extend .pre-header-common;
display: block;
color: var(--gray)!important;
background-color: var(--gray-bg);
overflow: clip;
> span {
font-size: smaller;
}
> * {
display: inline-block;
padding: .3rem 1rem .2rem;
}
}
> button {
@extend .pre-header-common;
position: absolute;
top: 0;
right: -1rem;
color: var(--menu-text);
background: none;
border-left: 1px solid var(--border-color);
border-right: 1px solid var(--border-color);
border-top-left-radius: 0;
padding-left: 1rem;
padding-right: 1rem;
overflow: hidden;
cursor: pointer;
opacity: 0;
transition: opacity 300ms;
&:hover {
background: var(--gray-bg);
}
&.copy-success {
> .icon-copy {
animation-name: icon-copy;
animation-duration: 1.5s;
animation-timing-function: ease;
}
> .icon-checkmark {
animation-name: icon-checkmark;
animation-duration: 1.5s;
animation-timing-function: ease;
}
}
> .icon-copy {
display: inline-block;
}
> .icon-checkmark {
position: absolute;
top: 50%;
margin-top: -3em;
left: 0;
right: 0;
text-align: center;
}
}
&:hover > button {
opacity: 1;
transition: opacity 100ms;
}
> .pre-header ~ pre.highlight {
border-top-left-radius: 0;
border-top-right-radius: 0;
padding-top: .65rem;
}
> .pre-header ~ button {
opacity: 1;
}
}
body.no-break-layout {
div.highlight > button {
border-right: none;
}
}
@keyframes icon-checkmark {
0% {
transform: translateY(0);
}
15%, 85% {
transform: translateY(2.5em);
}
100% {
transform: translateY(5em);
}
}
@keyframes icon-copy {
0% {
transform: translateY(0);
}
15% {
transform: translateY(2.5em);
}
15.01%, 85% {
transform: translateY(-2.5em);
}
100% {
transform: translateY(0);
}
}
// >>>>> LINK

View File

@@ -0,0 +1,16 @@
// 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/>.
footer { margin-bottom: 2rem; } // link

View File

@@ -0,0 +1,71 @@
// 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/>.
// <<<<< LINK
// Footnote number within body text
a[href^="#fn:"],
// Back to footnote link
a[href^="#fnref:"] {
margin-left: .1rem;
font-weight: var(--font-weight-bold);
@media screen and (max-width: $break-point-4) {
font-weight: normal;
&::before { content: "["; }
&::after { content: "]"; }
}
}
sup {
line-height: 1;
&[id^="fnref"] {
@media screen and (max-width: $break-point-4) {
vertical-align: baseline;
font-size: inherit;
}
}
}
// List of footnotes
.footnotes {
margin-top: 5rem;
margin-bottom: 5rem;
> ol {
color: var(--gray);
> li {
padding: .5rem;
margin-left: .5rem;
> p { margin: 0; }
&:focus {
outline: none;
color: var(--gray-text);
background: var(--gray-bg);
}
}
}
&::before {
@extend .color-transition;
content: "";
display: block;
margin: 1rem 0;
border: 0;
border-top: 1px solid var(--border-color);
}
}
// >>>>> LINK

View File

@@ -0,0 +1,57 @@
// 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/>.
// <<< INLINE
.message {
@extend .color-transition;
margin-bottom: 1rem;
padding: 1rem;
color: var(--gray-text);
background-color: var(--gray-bg);
margin-left: -1rem;
margin-right: -1rem;
}
.note-sm {
@extend .message;
background: transparent;
color: var(--body-color);
font-size: smaller;
border-left: 1px solid var(--border-color);
padding: 1.2rem 1rem 0 1rem;
margin: 1rem -1rem;
position: relative;
&:before {
font-size: 0.667rem;
font-weight: bold;
font-style: normal;
letter-spacing: .025rem;
text-transform: uppercase;
color: var(--menu-text);
position: absolute;
top: 0;
}
&[title]:before {
content: attr(title)!important;
}
}
.note {
@extend .note-sm;
font-size: 1rem;
}
// >>>

View File

@@ -0,0 +1,82 @@
// 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/>.
// <<< LINK
.pagination {
@extend .color-transition;
width: calc(100% + 2rem);
margin: 0 -1rem 1rem;
color: var(--gray);
text-align: center;
> ul {
list-style: none;
padding: 0;
}
}
// Pagination items can be `span`s or `a`s
.pagination-item {
> * {
display: block;
padding: .25rem 1rem;
border: solid var(--border-color);
border-width: 1px 0;
transition: border-color 1s ease;
}
> a, > a:hover, > a:focus {
border-color: var(--border-color)!important;
text-decoration: none;
}
&:first-child > * {
margin-bottom: -1px;
}
// Only provide a hover state for linked pagination items
> a:hover, > a:focus {
background-color: var(--gray-bg);
border-bottom: 1px solid var(--border-color);
}
}
@media (min-width: 23.5em) {
.pagination {
width: 100%;
margin: 3rem 0;
}
.pagination-item {
> * {
float: left;
width: 50%;
border-width: 1px;
}
&:first-child > * {
margin-bottom: 0;
border-top-left-radius: 0.25rem;
border-bottom-left-radius: 0.25rem;
}
&:last-child > * {
margin-left: -1px;
border-top-right-radius: 0.25rem;
border-bottom-right-radius: 0.25rem;
}
}
}
// >>> LINK

View File

@@ -0,0 +1,111 @@
// 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/>.
// <<< INLINE
.page {
margin-bottom: 3em;
li + li {
margin-top: .25rem;
}
> header {
position: relative;
margin-bottom: 2rem;
}
.aspect-ratio.sixteen-nine.lead {
@extend .border-radius;
}
}
body:not(.no-third-column) {
.page > header {
> .lead + .note-sm,
> a.no-hover + .note-sm {
@media screen and (min-width: $break-point-dynamic) {
position: absolute;
right: -25rem;
width: 21rem;
bottom: 0;
margin-bottom: 0;
}
}
}
}
// Blog post or page title
.page-title, .post-title { margin-top: 0; }
// Meta data line below post title
.post-date {
@extend .h4;
display: flex;
justify-content: space-between;
margin-top: -.6rem;
height: 2rem;
margin-bottom: .85rem;
color: var(--gray);
> .ellipsis {
cursor: pointer;
}
[class^="icon-"] {
display: inline-block;
font-size: smaller;
margin-right: .25rem;
}
}
.img-wrapper > .hotfx-lightbox-slide {
display: none;
}
hotfx-lightbox::part(slide) {
display: inherit;
margin: 0 auto;
}
// >>>
// <<< LINK
clap-button {
margin-left: auto;
margin-right: auto;
--clap-button-color: var(--accent-color);
}
clap-button + p.message {
margin: -2rem auto 0;
max-width: 32rem;
font-size: smaller
}
hr.dingbat {
border: 0;
&:after{
content: "\2756";
display: block;
text-align: center;
font-size: 1.5rem;
color: var(--menu-text);
}
}
@media print {
.page {
margin-bottom: 0
}
}
// >>>

View File

@@ -0,0 +1,37 @@
// 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/>.
// <<< link
.read-more {
@extend .faded;
margin-top: 1.5rem;
margin-bottom: 3rem;
text-align: right;
&::after {
content: " \2192";
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;
}
}
// >>>

View File

@@ -0,0 +1,35 @@
// 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/>.
// <<<<< INLINE
.related-posts {
padding-left: 0;
list-style: none;
margin-bottom: 2rem;
> li,
> li + li {
margin-top: 1rem;
}
}
// >>>>>
// <<< link
.comments {
@media print {
display: none;
}
}
// >>>

View File

@@ -0,0 +1,167 @@
// 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/>.
// <<<<< LINK
table:not(.rouge-table) {
@extend .figure-base;
border-collapse: collapse;
border-radius: 0!important;
display: block;
margin-bottom: 1.5rem;
td, th {
@extend .color-transition;
padding: .5em .75em;
&:first-child {
padding-left: 1rem;
border-left: 1px solid var(--border-color);
}
&:last-child {
padding-right: 1rem;
border-right: 1px solid var(--border-color);
}
}
> *:first-child {
border-top: 1px solid var(--border-color);
}
> *:last-child {
border-bottom: 1px solid var(--border-color);
}
thead {
@extend .color-transition;
background-color: var(--body-bg);
}
thead + tbody,
tbody + tbody,
tfoot {
@extend .color-transition;
border-top: 1px solid var(--border-color);
}
tbody tr:nth-child(even) td,
tbody tr:nth-child(even) th {
@extend .color-transition;
background-color: var(--body-bg);
}
tbody tr:nth-child(odd) td,
tbody tr:nth-child(odd) th {
@extend .color-transition;
background-color: var(--gray-bg);
}
}
// CSS only Responsive Tables
// http://dbushell.com/2016/03/04/css-only-responsive-tables/
// by David Bushell
@mixin scroll-table() {
white-space: nowrap; // optional - looks better for small cell values
}
@mixin flip-table() {
display: flex;
overflow: hidden;
thead, tbody {
display: flex;
}
thead {
flex-shrink: 0;
min-width: min-content;
border-left: 1px solid var(--border-color);
border-bottom: 1px solid var(--border-color);
th {
padding-left: 1em;
}
}
tbody {
position: relative;
overflow-x: auto;
overflow-y: hidden;
-webkit-overflow-scrolling: touch;
}
tr {
display: flex;
flex-direction: column;
min-width: min-content;
flex-shrink: 0;
&:last-child {
border-right: 1px solid var(--border-color);
td {
padding-right: 1em;
}
}
}
td, th {
display: block;
&:first-child {
padding-left: .5em;
border-left: none;
}
&:last-child {
padding-right: .5em;
border-right: none;
}
}
}
table.stretch-table {
display: table;
width: 100% !important;
width: calc(100% + 2em) !important;
// @media screen and (max-width: $break-point-4) {
// display: block!important;
// @include scroll-table();
// }
}
table.scroll-table {
@include scroll-table();
}
table.flip-table {
@include flip-table();
}
@media screen and (max-width: $break-point-4) {
table.scroll-table-small {
@include scroll-table();
}
table.flip-table-small {
@include flip-table();
}
}
@media print {
table:not(.rouge-table) {
width: 100%!important;
}
}
// >>>>> LINK

View File

@@ -0,0 +1,260 @@
// 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/>.
.heading {
font-family: var(--font-family-heading);
font-weight: var(--font-weight-heading);
}
.f1 {
@extend .heading;
font-size: 2rem;
line-height: 1.3;
}
.f2 {
@extend .heading;
font-size: 1.5rem;
line-height: 1.4;
}
.f3 {
@extend .heading;
font-size: 1.2em;
line-height: 1.5;
}
.f4 {
@extend .heading;
font-size: 1.08rem;
line-height: 1.6;
}
.f5 {
@extend .heading;
font-size: 1.04rem;
line-height: 1.7;
}
.f6 {
@extend .heading;
font-size: 1rem;
}
// <<< INLINE
h1, .h1 { @extend .f1; }
h2, .h2 { @extend .f2; }
h3, .h3 { @extend .f3; }
h4, .h4 { @extend .f4; }
h5, .h5 { @extend .f5; }
h6, .h6 { @extend .f6; }
.content {
h1, .h1 {
> a { text-decoration: none; border-bottom: none; }
@media screen and (max-width: $break-point-1) {
font-size: 1.7rem;
line-height: 1.35;
}
@media screen and (min-width: $break-point-5) {
font-size: 2.4rem;
line-height: 1.25;
}
}
}
body:not(.no-large-headings) {
.content {
h1, .h1 {
@media screen and (min-width: $break-point-dynamic) {
width: calc(100% + 50vw - 32rem);
font-size: 3rem;
line-height: 1.2;
}
@media screen and (min-width: $break-point-font-large) {
font-size: 4rem;
line-height: 1.1;
}
}
}
}
h1, h2, h3, .h1, .h2, .h3 {
margin: 4rem 0 1rem;
}
h4, h5, h6, .h4, .h5, .h6 {
margin: 3rem 0 .5rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
&.lead {
font-size: 1.2em;
margin-top: 1.5rem;
margin-bottom: 1.5rem;
padding: 0 1rem;
}
}
ul, ol, dl {
margin-top: 0;
margin-bottom: 1rem;
}
ul, ol {
padding-left: 1.25rem;
}
hr, .hr {
@extend .color-transition;
border: 0;
margin: 1rem 0;
border-top: 1px solid var(--border-color);
}
.hr-after::after {
@extend .color-transition;
content: "";
display: block;
margin: 1rem 0;
border-top: 1px solid var(--border-color);
}
.hr-bottom {
@extend .color-transition;
border-bottom: 1px solid var(--border-color);
padding-bottom: .75rem;
margin-bottom: 1rem;
}
// >>>>>
// <<<<< LINK
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, .heading {
text-rendering: optimizeLegibility;
}
h1 + h2, .h1 + .h2, h1 + .h2, .h1 + h2,
h2 + h3, .h2 + .h3, h2 + .h3, .h2 + h3,
h3 + h4, .h3 + .h4, h3 + .h4, .h3 + h4,
h4 + h5, .h4 + .h5, h4 + .h5, .h4 + h5,
h5 + h6, .h5 + .h6, h5 + .h6, .h5 + h6 {
margin-top: 0;
}
dt, strong {
font-weight: var(--font-weight-bold);
}
dt:after{
content: " :";
color: var(--menu-text);
}
dd {
margin-bottom: .5rem;
}
abbr {
font-size: 85%;
font-weight: var(--font-weight-bold);
text-transform: uppercase;
&[title] {
cursor: help;
border-bottom: 1px dotted var(--border-color);
}
}
blockquote {
@extend .color-transition;
padding: .5rem 1rem;
margin: .8rem 0;
color: var(--gray);
border-left: .25rem solid var(--border-color);
&.lead {
font-size: 1.2em;
margin-top: 1.5rem;
margin-bottom: 1.5rem;
border-left-width: 0.4rem;
}
> p:last-child {
margin-bottom: 0;
}
}
.heading {
font-weight: var(--font-weight-heading);
}
.fine, .smaller {
font-size: smaller;
}
.faded {
@extend .color-transition;
color: var(--gray);
}
.centered {
text-align: center;
}
h1[id], h2[id], h3[id], h4[id], h5[id], h6[id] {
position: relative;
> .permalink {
text-decoration: none;
border: none;
opacity: 0;
transition: opacity 400ms;
@media print {
display: none;
}
}
&:hover > .permalink {
opacity: 0.5;
}
& > .permalink:hover,
& > .permalink:focus {
opacity: 1;
transition: opacity 200ms;
}
}
.content-hash::before {
content: '#'
}
.content-json::before {
content: '{}'
}
@media print {
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, dt {
page-break-inside: avoid;
break-inside: avoid-page;
page-break-after: avoid;
break-after: avoid-page;
}
}
// >>> LINK