website/assets/scss/extend.scss

320 lines
5.4 KiB
SCSS
Raw Normal View History

2023-02-20 11:04:13 +00:00
// This is copied from https://stackoverflow.com/a/19721069.
2023-02-25 00:02:05 +00:00
$tooltip-size: 5em;
$line-height: 1.45;
2023-02-20 11:04:13 +00:00
2020-11-05 04:34:37 +00:00
:root {
2023-02-27 10:21:58 +00:00
--accented-border-style: var(--foreground) solid .1vw;
2021-01-20 07:01:56 +00:00
--body-family: "Source Serif Pro", "IBM Plex Serif", "Noto Serif", serif;
--header-family: "Source Sans Pro", "IBM Plex Sans", "Noto Sans", sans-serif;
--mono-family: "Source Code Pro", "IBM Plex Mono", "Noto Mono", monospace;
2023-02-21 04:07:01 +00:00
}
2023-02-20 17:05:07 +00:00
// Base styles.
2023-02-27 10:21:58 +00:00
a:hover { color: var(--base0B); }
2022-11-22 14:36:44 +00:00
2023-02-25 00:02:05 +00:00
hr {
2023-02-27 10:21:58 +00:00
border-color: var(--foreground);
2023-02-25 00:02:05 +00:00
}
main > article {
line-height: $line-height;
}
2020-11-06 22:16:12 +00:00
// Layouts
2021-01-20 07:01:56 +00:00
.site__title {
--size: 2rem;
margin-bottom: unset;
font-size: var(--size);
2021-01-21 21:07:48 +00:00
line-height: unset;
2021-01-20 07:01:56 +00:00
}
2021-01-21 21:07:48 +00:00
article.post {
padding: 0.5em;
background: var(--base01);
}
// Asciidoctor roles (e.g., [.text-center]) on a block.
.text-center {
text-align: center;
}
.line-through {
text-decoration: line-through;
}
2021-02-01 04:34:15 +00:00
// Custom layouts
#logo {
2023-02-20 11:04:13 +00:00
display: flex;
align-items: center;
justify-content: center;
height: $tooltip-size;
width: $tooltip-size;
svg {
--size: 4em;
height: var(--size);
width: var(--size);
fill: var(--base0C);
2023-02-20 11:04:13 +00:00
position: relative;
animation: rainbow 3s infinite, pulse 2s alternate infinite, bounce 0.6s ease-in-out alternate infinite;
}
}
2023-02-20 11:04:13 +00:00
@keyframes bounce {
$baseSize: 3em;
$baseRotation: 20deg;
from {
transform: rotate($baseRotation) translateX($baseSize) translateY(-#{$baseSize / 5});
}
2023-02-20 11:04:13 +00:00
to {
transform: rotate(-$baseRotation) translateX(-$baseSize) translateY(-#{$baseSize / 5});
}
}
@keyframes pulse {
from { width: #{$tooltip-size / 2}; }
to { width: #{$tooltip-size}; }
}
@keyframes rainbow {
2023-02-20 11:04:13 +00:00
$colorOrder: "07" "08" "09" "0A" "0B" "0C" "0D" "0E" "0F";
$divide: floor(100 / length($colorOrder));
@for $i from 1 to length($colorOrder) {
#{$i * $divide}% {
fill: var(--base#{nth($colorOrder, $i)});
}
}
}
[data-tooltip] {
&::before {
--scale: 0;
background: var(--base01);
content: attr(data-tooltip);
font-size: 0.8em;
padding: 0.5em;
position: absolute;
2023-02-20 11:04:13 +00:00
transform: translateY(var(--translate-y, -#{round($tooltip-size / 2)})) scale(var(--scale));
transform-origin: bottom center;
width: max-content;
max-width: 100%;
}
&:hover::before {
--scale: 1;
}
}
2020-11-05 04:34:37 +00:00
// Asciidoctor-specific styles
sup.footnote {
vertical-align: baseline;
position: relative;
top: 0;
left: 0;
font-size: 1rem;
}
2020-11-05 04:34:37 +00:00
.anchor {
border-bottom: unset;
&:hover {
border-bottom: unset;
}
2020-11-05 04:34:37 +00:00
&::before {
content: "§";
display: inline-block;
margin-right: 0.25em;
}
}
.conum {
color: var(--base05) !important;
background-color: var(--base02);
user-select: none;
}
2020-11-05 04:34:37 +00:00
.quoteblock {
blockquote {
border: var(--accented-border-style);
margin: auto;
padding: 1em 0.5em;
}
}
2019-09-28 12:15:00 +00:00
2020-11-05 04:34:37 +00:00
@keyframes target-fade {
0% {
background: var(--base0D);
color: unset;
}
100% {
background-color: transparent;
}
2019-09-28 12:15:00 +00:00
}
2023-02-27 10:21:58 +00:00
#footnotes > :not(hr) {
2020-11-05 04:34:37 +00:00
margin: 1em;
}
2023-02-20 17:05:07 +00:00
[class$="block"], :is(.admonitionblock) {
margin: var(--vertical-rhythm) 0;
}
2023-02-26 12:51:58 +00:00
p.tableblock {
margin: unset;
}
2023-02-20 17:05:07 +00:00
*:not(.listingblock, .openblock) {
> .attribution,
> .title {
2023-02-27 10:21:58 +00:00
background: var(--foreground);
2020-11-05 04:34:37 +00:00
color: var(--base00);
font-size: 0.9em;
padding: 0.5em;
}
2023-02-20 17:05:07 +00:00
> .content {
2020-11-05 04:34:37 +00:00
border: var(--accented-border-style);
padding: 0.5em;
}
}
2019-09-28 12:15:00 +00:00
2023-02-20 17:05:07 +00:00
.listingblock {
position: relative;
> *.title {
2023-02-27 10:21:58 +00:00
background: var(--foreground);
color: var(--background);
2023-02-20 17:05:07 +00:00
font-size: 0.9em;
padding: 0.5em;
code { background: unset; }
}
2023-02-27 10:21:58 +00:00
> *.content pre {
margin-top: unset;
2023-02-20 17:05:07 +00:00
}
> .listingblock__btn-row {
$gap: 0.3em;
display: flex;
gap: $gap;
flex-flow: row;
justify-content: center;
align-items: center;
position: absolute;
top: 0;
right: 0;
> button {
2023-02-27 10:21:58 +00:00
background: var(--base01);
2023-02-20 17:05:07 +00:00
padding: $gap;
&:hover {
2023-02-27 10:21:58 +00:00
background: var(--selection-color);
color: var(--base05);
2023-02-20 17:05:07 +00:00
}
&:active {
background: var(--accent-color);
color: var(--base06);
}
}
}
&:fullscreen {
pre, code {
2023-02-26 12:51:58 +00:00
border: unset;
2023-02-20 17:05:07 +00:00
max-height: 100vh;
height: 100vh;
margin: 0;
overflow: auto;
}
> .listingblock__btn-row {
top: 0;
}
}
}
2020-11-05 04:34:37 +00:00
.admonitionblock {
2023-02-27 10:21:58 +00:00
table {
border: unset;
tbody {
tr + tr, tr:first-child { border-top: unset; }
}
}
2020-11-05 04:34:37 +00:00
.icon {
2023-02-27 10:21:58 +00:00
background: var(--foreground);
2020-11-05 04:34:37 +00:00
vertical-align: middle;
2022-11-22 14:36:44 +00:00
width: 12%;
> .title {
display: flex;
justify-content: center;
}
2020-11-05 04:34:37 +00:00
}
2023-02-20 17:05:07 +00:00
.content {
background: var(--base01);
border: unset;
}
}
.content > .paragraph:first-child > p:first-child {
margin-top: unset;
2019-09-28 12:15:00 +00:00
}
2020-11-05 04:34:37 +00:00
.imageblock {
> .content {
2019-09-28 12:15:00 +00:00
display: flex;
justify-content: center;
2020-11-05 04:34:37 +00:00
}
2021-01-20 07:01:56 +00:00
> .title {
text-align: center;
}
2019-09-28 12:15:00 +00:00
}
2020-11-06 22:16:12 +00:00
2023-02-20 17:05:07 +00:00
p {
margin-bottom: unset;
}
2022-03-01 09:55:57 +00:00
.sidebarblock {
2023-02-20 17:05:07 +00:00
> .content {
background: var(--base01);
border: unset;
padding: var(--vertical-rhythm);
> .title {
background: unset;
color: unset;
font-family: var(--header-family);
font-size: 1em;
font-weight: bold;
padding: unset;
}
2022-03-01 09:55:57 +00:00
}
}
2023-02-26 12:51:58 +00:00
// This setup will use asciidoctor-rouge.
.rouge.highlight, code[data-lang] {
&::selection, ::selection {
2023-02-27 10:21:58 +00:00
background: var(--selection-color);
2023-02-26 12:51:58 +00:00
color: unset;
}
}
2020-11-06 22:16:12 +00:00
@media all and (max-width: 860px) {
.imageblock {
> .content {
width: 100% !important;
}
}
}