mirror of
https://github.com/TomHodson/tomhodson.github.com.git
synced 2025-06-26 10:01:18 +02:00
194 lines
4.0 KiB
SCSS
194 lines
4.0 KiB
SCSS
@import "vars";
|
|
@import "normalise"; // normalise CSS across browsers
|
|
|
|
@import "nav"; //the side navbar
|
|
@import "header"; // the header
|
|
@import "footer"; // the footer
|
|
@import "article"; // individual blog articles
|
|
@import "projects"; //Styles for the projects page
|
|
@import "cv"; // the CV page
|
|
@import "blogroll"; // the summaries of the blogposts
|
|
@import "comments"; //the mastodon comments
|
|
@import "model_viewer"; //Styles for the 3D model viewer
|
|
|
|
// The syntax highlighting css
|
|
// generated with rougify style bw > code_style_bw.scss
|
|
// @import "code_style_bw";
|
|
@import "code_style_github";
|
|
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
font-family: $font_stack;
|
|
text-rendering: geometricPrecision;
|
|
}
|
|
|
|
html {
|
|
width: 100vw;
|
|
scroll-behavior: smooth;
|
|
}
|
|
|
|
body {
|
|
--theme-text-color: #222;
|
|
--theme-bg-color: #fcfcfc;
|
|
--theme-model-line-color: #222;
|
|
--theme-model-bg-color: #fcfcfc;
|
|
--theme-subtle-outline: oklch(90% 0.0 50);
|
|
|
|
background: var(--theme-bg-color);
|
|
color: var(--theme-text-color);
|
|
|
|
// constrain width and center
|
|
max-width: 900px;
|
|
margin: auto;
|
|
}
|
|
|
|
// Padding to keep the keep the content to the right of the header
|
|
main {
|
|
container: main / inline-size;
|
|
|
|
max-width: 560px;
|
|
margin-left: 240px;
|
|
padding-left: 30px;
|
|
padding-top: 10vh;
|
|
min-height: 100vh;
|
|
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
|
|
h1 {
|
|
font-size: 2em;
|
|
}
|
|
|
|
// img that are direct children of p are usually img tags in markdown
|
|
p > img {
|
|
margin-top: 2em;
|
|
margin-bottom: 1em;
|
|
width: 90%;
|
|
|
|
//hack to center images in p tags
|
|
display: block;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
}
|
|
|
|
p, figcaption {
|
|
font-size: 1em;
|
|
line-height: 1.3em;
|
|
}
|
|
|
|
main :is(p,h1,h2,h3,h4,h5,h6) {
|
|
margin-block-end: 0.2em;
|
|
}
|
|
|
|
a {
|
|
text-decoration: underline;
|
|
text-underline-offset: 2px;
|
|
text-decoration-thickness: 0.5px;
|
|
color: var(--theme-text-color);
|
|
}
|
|
|
|
header a, nav a {
|
|
text-decoration: none;
|
|
}
|
|
|
|
div.highlight {
|
|
max-width: 100%;
|
|
overflow: auto;
|
|
}
|
|
|
|
p {
|
|
margin-top: 0.7em;
|
|
margin-bottom: 0.7em;
|
|
padding-right: 0;
|
|
vertical-align: baseline;
|
|
}
|
|
|
|
figure {
|
|
container: fig / inline-size;
|
|
width: 100%;
|
|
padding-bottom: 1em;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
figure > img, figure > svg, figure > canvas {
|
|
width: 100%;
|
|
margin-bottom: 1em;
|
|
border-radius: 10px;
|
|
}
|
|
|
|
// For fallback images inside custom outline-model-viewer elements
|
|
.outline-model-poster {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
outline-model-viewer {
|
|
width: 100%;
|
|
min-height: 300px;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
border: var(--theme-subtle-outline) 1px solid;
|
|
border-radius: 10px;
|
|
margin-top: 1em;
|
|
margin-bottom: 1em;
|
|
}
|
|
|
|
// If the browser doesn't support web components, hide anything with has-wc class
|
|
body.has-wc .no-wc {
|
|
display: none;
|
|
}
|
|
// If the browser does support web components, hide anything with no-wc class
|
|
body:not(.has-wc) .has-wc {
|
|
display: none;
|
|
}
|
|
|
|
@media
|
|
only screen and (max-width: $horizontal_breakpoint),
|
|
only screen and (max-height: $vertical_breakpoint)
|
|
{
|
|
main {
|
|
padding-top: 10px;
|
|
padding-left: 20px;
|
|
padding-right: 20px;
|
|
margin: auto;
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
article {
|
|
margin-left: 0px; }
|
|
|
|
h1 {font-size: 1.5em !important;}
|
|
.MathJax {
|
|
font-size: 0.8em !important;
|
|
overflow-x: auto;
|
|
overflow-y: hidden;
|
|
}
|
|
}
|
|
|
|
// For the 3D model viewer
|
|
model-viewer {
|
|
width: 100%;
|
|
height: 300px;
|
|
}
|
|
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
body {
|
|
--theme-text-color: #fcfcfc;
|
|
--theme-bg-color: #222;
|
|
--theme-subtle-outline: oklch(50% 0.0 50);
|
|
}
|
|
img {
|
|
opacity: .75;
|
|
transition: opacity .5s ease-in-out;
|
|
}
|
|
svg.invertable, img.invertable{
|
|
opacity: 1;
|
|
filter: invert(1);
|
|
}
|
|
} |