forked from david-swift/duckling
Use shadows only for "heavy" elements like nav, images and disclaimers, don't use for details tho since it looks dirty
345 lines
6.0 KiB
SCSS
345 lines
6.0 KiB
SCSS
* {
|
|
-moz-box-sizing: border-box;
|
|
-webkit-box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
html {
|
|
font-size: 16px;
|
|
scroll-behavior: smooth;
|
|
// scrollbar-color: var(--primary-color) transparent;
|
|
accent-color: var(--primary-color);
|
|
overflow-wrap: break-word;
|
|
}
|
|
|
|
// Smaller font size on mobile
|
|
// @media only screen and (max-width: 480px) {
|
|
// html {
|
|
// font-size: 14px;
|
|
// }
|
|
// }
|
|
|
|
html,
|
|
body {
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
body {
|
|
font-family: var(--font-system);
|
|
line-height: 1.6;
|
|
color: var(--fg-color);
|
|
background: var(--bg-color);
|
|
// Put footer at the bottom for short pages, such as the 404
|
|
display: grid;
|
|
min-height: 100vh;
|
|
grid-template-rows: auto minmax(auto, 1fr) auto; // Header, stuff, footer
|
|
}
|
|
|
|
// Style text selection to use primary color
|
|
::selection {
|
|
color: var(--fg-color);
|
|
background-color: var(--primary-color);
|
|
}
|
|
|
|
// Make focused anchor not get covered by nav,
|
|
// and flash it with primary color when jumping to it
|
|
:target:not(#main) {
|
|
scroll-margin-top: 15vh;
|
|
animation: var(--transition-long) 1s highlight-in-out;
|
|
color: var(--primary-color);
|
|
text-shadow: var(--primary-color-alpha) 0 0 4px, var(--primary-color) 0 0 12px;
|
|
|
|
@keyframes highlight-in-out {
|
|
50% {
|
|
letter-spacing: 0.125rem;
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion) {
|
|
animation: none;
|
|
}
|
|
}
|
|
|
|
// LAYOUT
|
|
.container {
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
width: min(var(--content-width), 90%);
|
|
}
|
|
|
|
h1,
|
|
h2,
|
|
h3,
|
|
h4,
|
|
h5,
|
|
h6 {
|
|
font-family: var(--font-serif);
|
|
font-weight: lighter;
|
|
line-height: 1.25;
|
|
margin: 3rem 0 1rem;
|
|
|
|
.zola-anchor {
|
|
display: none;
|
|
visibility: hidden;
|
|
}
|
|
|
|
&:hover .zola-anchor {
|
|
display: inline-block;
|
|
text-decoration: none;
|
|
visibility: visible;
|
|
}
|
|
}
|
|
|
|
h1 {
|
|
font-size: 3rem;
|
|
font-weight: normal;
|
|
letter-spacing: -0.15rem;
|
|
}
|
|
|
|
h2 {
|
|
font-size: 2.4rem;
|
|
letter-spacing: -0.15rem;
|
|
}
|
|
|
|
h3 {
|
|
font-size: 1.5rem;
|
|
letter-spacing: -0.1rem;
|
|
}
|
|
|
|
h4 {
|
|
font-size: 1.25rem;
|
|
letter-spacing: -0.05rem;
|
|
}
|
|
|
|
h5 {
|
|
font-size: 1rem;
|
|
letter-spacing: -0.05rem;
|
|
}
|
|
|
|
h6 {
|
|
font-size: 0.75rem;
|
|
}
|
|
|
|
a {
|
|
color: var(--primary-color);
|
|
cursor: pointer;
|
|
font-weight: bold;
|
|
text-decoration: underline dotted;
|
|
|
|
&:hover {
|
|
text-decoration: underline wavy;
|
|
}
|
|
}
|
|
|
|
small {
|
|
color: var(--fg-muted-5);
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
dl {
|
|
padding: 0;
|
|
|
|
dt {
|
|
padding: 0;
|
|
margin-top: 1rem;
|
|
font-size: 1rem;
|
|
font-weight: bold;
|
|
}
|
|
|
|
dd {
|
|
padding: 0;
|
|
margin-bottom: 1rem;
|
|
}
|
|
}
|
|
|
|
hr {
|
|
border: 0;
|
|
border-top: 1px solid var(--fg-muted-2);
|
|
margin: 2rem auto;
|
|
width: 100%;
|
|
}
|
|
|
|
.blog-list hr:last-of-type {
|
|
display: none;
|
|
}
|
|
|
|
blockquote {
|
|
border-left: 0.25rem solid var(--primary-color);
|
|
border-radius: 0.2rem;
|
|
color: var(--fg-muted-5);
|
|
margin: 0;
|
|
padding: 0 0.75rem;
|
|
|
|
& & {
|
|
border-radius: 0;
|
|
}
|
|
}
|
|
|
|
abbr {
|
|
cursor: help;
|
|
text-decoration: underline dotted;
|
|
}
|
|
|
|
aside {
|
|
-webkit-backdrop-filter: var(--blur);
|
|
backdrop-filter: var(--blur);
|
|
background-color: var(--primary-color-alpha);
|
|
border-radius: var(--rounded-corner);
|
|
box-shadow: var(--edge-highlight);
|
|
float: right;
|
|
margin-inline-start: 1rem;
|
|
padding: 1rem;
|
|
width: 30%;
|
|
|
|
@media only screen and (max-width: 720px) {
|
|
& {
|
|
width: 100%;
|
|
float: none;
|
|
margin-inline-start: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
// CODE
|
|
pre,
|
|
code,
|
|
kbd {
|
|
font-family: var(--font-monospace);
|
|
}
|
|
|
|
code:not(pre code) {
|
|
-webkit-backdrop-filter: var(--blur);
|
|
backdrop-filter: var(--blur);
|
|
background-color: var(--fg-muted-2);
|
|
border-radius: var(--rounded-corner-small);
|
|
color: var(--red-fg);
|
|
padding: 0.125rem 0.375rem;
|
|
}
|
|
|
|
pre {
|
|
line-height: normal; // Unset line height
|
|
padding: 1rem;
|
|
margin: 1rem 0 1rem;
|
|
border-radius: var(--rounded-corner);
|
|
max-width: 100vw;
|
|
box-shadow: var(--edge-highlight), var(--shadow);
|
|
overflow: auto;
|
|
|
|
table td {
|
|
padding: 0;
|
|
border: none;
|
|
}
|
|
|
|
// The line number cells
|
|
table td:nth-of-type(1) {
|
|
text-align: center;
|
|
user-select: none;
|
|
}
|
|
|
|
mark {
|
|
background-color: var(--fg-muted-1);
|
|
border-radius: 0; // Unset code block border radius
|
|
color: var(--fg-color); // Unset mark color from primary color to text color
|
|
display: block;
|
|
padding: 0; // Unset mark padding
|
|
}
|
|
|
|
table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
}
|
|
|
|
// The line numbers already provide some kind of left/right padding
|
|
&[data-linenos] {
|
|
padding: 1rem 0;
|
|
}
|
|
}
|
|
|
|
kbd {
|
|
-webkit-backdrop-filter: var(--blur);
|
|
backdrop-filter: var(--blur);
|
|
background-color: var(--fg-muted-2);
|
|
border-radius: var(--rounded-corner-small);
|
|
box-shadow: inset 0 -2px 0 var(--fg-muted-2), 0 -1px 0 var(--fg-muted-3);
|
|
cursor: pointer;
|
|
display: inline-block;
|
|
font-size: 0.8rem;
|
|
line-height: normal;
|
|
padding: 0.125rem 0.375rem;
|
|
transition: var(--transition);
|
|
|
|
// Small nice thingy, keys can be pressed!
|
|
&:active {
|
|
background-color: var(--fg-muted-3);
|
|
box-shadow: inset 0 1px 0 var(--fg-muted-2);
|
|
transform: translateY(2px);
|
|
}
|
|
}
|
|
|
|
mark {
|
|
-webkit-backdrop-filter: var(--blur);
|
|
backdrop-filter: var(--blur);
|
|
background-color: var(--primary-color-alpha);
|
|
border-radius: var(--rounded-corner-small);
|
|
box-shadow: var(--edge-highlight);
|
|
color: var(--primary-color);
|
|
padding: 0.125rem 0.375rem;
|
|
}
|
|
|
|
figcaption {
|
|
display: block;
|
|
text-align: center;
|
|
color: var(--fg-muted-4);
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
details {
|
|
-webkit-backdrop-filter: var(--blur);
|
|
backdrop-filter: var(--blur);
|
|
background-color: var(--fg-muted-1);
|
|
border-radius: var(--rounded-corner);
|
|
padding: 1rem;
|
|
|
|
& > summary {
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
|
|
// TABLES
|
|
table {
|
|
border-collapse: collapse;
|
|
border-radius: var(--rounded-corner);
|
|
overflow: hidden;
|
|
table-layout: fixed;
|
|
width: 100%;
|
|
|
|
th {
|
|
font-weight: bold;
|
|
}
|
|
|
|
th,
|
|
td {
|
|
padding: 0.5rem 1rem;
|
|
}
|
|
|
|
tr {
|
|
&:nth-child(even) {
|
|
-webkit-backdrop-filter: var(--blur);
|
|
backdrop-filter: var(--blur);
|
|
background-color: var(--fg-muted-1);
|
|
}
|
|
|
|
th {
|
|
-webkit-backdrop-filter: var(--blur);
|
|
backdrop-filter: var(--blur);
|
|
background-color: var(--fg-muted-2);
|
|
}
|
|
}
|
|
}
|
|
|
|
td,
|
|
th {
|
|
padding: 0;
|
|
}
|