website/_includes/styles/base.scss
Foster Hangdaan 4b8e72b1d6
Pin icon images to specific version
Instead of using the `latest` version, which could introduce breaking changes.
2024-03-11 15:57:14 -04:00

340 lines
6.3 KiB
SCSS

*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
}
html {
line-height: 1.5;
}
body {
color: var(--color-fg);
background: var(--color-bg);
transition: color 0.5s, background-color 0.5s;
font-family: var(--font--sans-serif);
font-size: var(--text-base);
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.main-content {
padding: 0 1rem;
margin: 0 auto;
max-width: var(--page--max-width);
}
h1, h2, h3, h4, h5, h6 {
font-family: var(--font--sans-serif-alt);
color: var(--color-headings);
font-weight: bold;
margin-top: 1.5rem;
margin-bottom: 1.5rem;
// `.header-anchor` is added to `<a>` tags inside headings
// by the TOC plugin:
// https://deno.land/x/lume_markdown_plugins/toc.ts
a.header-anchor {
color: var(--color-headings);
text-decoration: none;
}
}
h2 {
margin-top: 3rem;
&:first-child {
margin-top: 0;
}
}
p {
margin-top: 1rem;
margin-bottom: 1rem;
}
a {
color: var(--color-links);
&.footnote-ref {
text-decoration: none;
}
&.footnote-ref:hover {
text-decoration: underline;
}
&.footnote-ref::before {
content: "[";
}
&.footnote-ref::after {
content: "]";
}
&.footnote-backref {
}
}
img {
background-color: var(--color-bg--layer-01);
width: 100%;
border-radius: 5px;
object-fit: contain;
aspect-ratio: 16 / 9;
margin-top: 1rem;
margin-bottom: 1rem;
}
ol, ul {
margin-top: 1rem;
margin-bottom: 1rem;
li {
margin-bottom: 0.4rem;
&:last-of-type {
margin-bottom: 0;
}
p:first-of-type {
margin-top: 0;
margin-bottom: 0;
}
}
}
ul {
list-style: disc;
}
hr {
height: 1px;
background-color: var(--color-black);
border: none;
margin-top: 1rem;
margin-bottom: 1rem;
}
code {
padding: 0.3em 0.4em;
color: var(--color-fg);
font-size: 0.9em;
border-radius: 3px;
background-color: var(--color-bg--layer-01);
font-family: var(--font--mono);
}
pre {
margin-top: 1rem;
margin-bottom: 1rem;
border-radius: 5px;
display: block;
overflow: auto;
page-break-inside: avoid;
word-wrap: break-word;
font-family: var(--font--mono);
background-color: var(--color-bg--layer-01);
code {
background-color: transparent !important;
font-size: 1rem;
padding: 0;
border-radius: 0;
background-color: transparent;
.hljs-comment {
font-family: var(--font--mono--code-comments);
&.docstring {
font-family: var(--font--mono--code-docstrings);
}
}
}
}
.inline {
display: inline;
}
blockquote {
position: relative;
border-radius: 5px;
border: 1px solid var(--color-black);
border-left: 3rem solid var(--color-black);
padding: 1em;
margin: 1em 0;
&::before {
display: block;
position: absolute;
height: 1.5rem;
width: 1.5rem;
top: 50%;
margin-top: -0.75rem;
left: calc(-0.75rem - 1.5rem);
filter: var(--filter-bg);
content: "";
background-image: url("https://static.fosterhangdaan.com/icons/tabler-icons/v2.47.0/svg/quote.svg");
background-repeat: no-repeat !important;
background-size: contain !important;
}
&.info {
&::before {
background-image: url("https://static.fosterhangdaan.com/icons/tabler-icons/v2.47.0/svg/info-circle.svg");
}
color: var(--color-blue);
border-color: var(--color-blue);
}
&.success {
&::before {
background-image: url("https://static.fosterhangdaan.com/icons/tabler-icons/v2.47.0/svg/check.svg");
}
color: var(--color-success);
border-color: var(--color-success);
}
&.warning {
&::before {
background-image: url("https://static.fosterhangdaan.com/icons/tabler-icons/v2.47.0/svg/alert-triangle.svg");
}
color: var(--color-warn);
border-color: var(--color-warn);
}
&.danger {
&::before {
background-image: url("https://static.fosterhangdaan.com/icons/tabler-icons/v2.47.0/svg/circle-x.svg");
}
color: var(--color-error);
border-color: var(--color-error);
}
> p:first-child {
margin-top: 0;
}
> p:last-child {
margin-bottom: 0;
}
}
table {
margin: 0.5rem 0;
border-radius: 5px;
border: 1px solid var(--color-black);
border-spacing: 0;
thead {
tr {
th {
border-bottom: 2px solid var(--color-black);
border-right: 1px solid var(--color-black);
padding: 0.75rem;
font-weight: bold;
&:last-child {
border-right: none;
}
}
}
}
tbody {
tr {
&:nth-child(odd) {
background-color: var(--color-table-stripe);
}
td {
border-bottom: 1px solid var(--color-black);
border-right: 1px solid var(--color-black);
padding: 0.75rem;
&:last-child {
border-right: none;
}
}
&:last-child {
td {
border-bottom: none;
}
}
}
}
}
img.icon {
background-color: initial;
border-radius: initial;
object-fit: initial;
object-position: initial;
aspect-ratio: initial;
margin: initial;
width: 1em;
height: 1em;
user-select: none;
}
.tag-list {
display: flex;
align-items: center;
gap: 0.5rem;
list-style: none;
padding-left: 0;
padding-top: 0.5rem;
padding-bottom: 0.5rem;
> li {
margin: 0;
}
}
.tag {
padding: 0.1em 0.3em;
font-size: 0.9em;
border: 1px solid var(--color-fg);
border-radius: 3px;
}
figure {
margin-top: 2rem;
margin-bottom: 2rem;
img {
margin: 0;
}
figcaption {
text-align: center;
font-style: italic;
}
}
nav.toc {
line-height: normal;
margin-bottom: 3rem;
h2 {
border: none;
text-transform: uppercase;
font-size: 1rem;
margin-bottom: 1rem;
}
li {
font-size: 0.9rem;
font-family: var(--font--sans-serif-alt);
}
> ol {
padding-left: 1rem;
}
ul {
margin: .5rem;
padding-left: 1rem;
}
}
ol.footnotes {
margin-top: 3rem;
margin-bottom: 0;
padding: 1rem;
border-top: 1px solid var(--color-black);
font-family: var(--font--sans-serif-alt);
line-height: normal;
li {
font-size: 0.95rem;
p {
display: inline-block;
}
}
a.footnote-backref {
margin-left: 0.3rem;
}
}
kbd {
font-family: var(--font--mono);
font-size: .9em;
font-weight: bold;
padding: 0.2rem 0.4rem;
border-radius: 3px;
background-color: var(--color-bg--layer-01);
border: 1px solid var(--color-black);
}