mirror of
https://github.com/jakejarvis/jarv.is.git
synced 2025-04-27 16:30:28 -04:00
120 lines
2.2 KiB
SCSS
120 lines
2.2 KiB
SCSS
body {
|
|
width: 100%;
|
|
height: 100%;
|
|
margin: 0 auto;
|
|
scroll-behavior: smooth;
|
|
background-color: var(--background-outer);
|
|
}
|
|
|
|
a {
|
|
color: var(--link);
|
|
text-decoration: none;
|
|
background-position: 0% 100%;
|
|
background-repeat: no-repeat;
|
|
background-size: 0% 2px;
|
|
padding-bottom: 2px;
|
|
transition: background-size 0.25s ease-in-out;
|
|
background-image: linear-gradient(var(--link-underline), var(--link-underline));
|
|
|
|
&:hover {
|
|
background-size: 100% 2px;
|
|
}
|
|
}
|
|
|
|
// set an anchor's class to `no-underline` to disable all of this
|
|
.no-underline {
|
|
background: none !important;
|
|
padding-bottom: 0;
|
|
}
|
|
|
|
// make SVG icons relative to surrounding text
|
|
// https://github.com/twitter/twemoji#inline-styles
|
|
.icon {
|
|
display: inline-block;
|
|
height: 1.2em;
|
|
width: 1.2em;
|
|
vertical-align: -0.2em;
|
|
}
|
|
|
|
// all code
|
|
code {
|
|
font-size: 0.925em;
|
|
page-break-inside: avoid;
|
|
}
|
|
|
|
// inline code in paragraphs/elsewhere (single backticks)
|
|
:not(pre) > code {
|
|
padding: 0.075em 0.25em;
|
|
border: 1px solid var(--kinda-light);
|
|
}
|
|
|
|
.center {
|
|
text-align: center;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
// sub-heading anchor styles
|
|
.h-anchor {
|
|
margin: 0 0.25em;
|
|
padding: 0 0.25em;
|
|
color: var(--medium-light);
|
|
background: none;
|
|
font-weight: 300;
|
|
opacity: 0; // overridden on hover
|
|
user-select: none;
|
|
|
|
&::before {
|
|
content: "\0023"; // pound sign `#`, done here to keep content DOM cleaner
|
|
}
|
|
|
|
&:hover {
|
|
color: var(--link);
|
|
}
|
|
}
|
|
|
|
// make anchor `#` link show up on hover over the corresponding heading
|
|
h2,
|
|
h3,
|
|
h4 {
|
|
&:hover {
|
|
.h-anchor {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
// offset (approximately) with sticky header so jumped-to content isn't hiding behind it
|
|
h2 {
|
|
scroll-margin-top: 4em;
|
|
}
|
|
|
|
h3,
|
|
h4 {
|
|
scroll-margin-top: 5em;
|
|
}
|
|
|
|
@media screen and (max-width: 768px) {
|
|
h2 {
|
|
scroll-margin-top: 5em;
|
|
}
|
|
|
|
h3,
|
|
h4 {
|
|
scroll-margin-top: 6em;
|
|
}
|
|
}
|
|
|
|
// https://web.dev/prefers-reduced-motion/#(bonus)-forcing-reduced-motion-on-all-websites
|
|
@media (prefers-reduced-motion: reduce) {
|
|
*,
|
|
::before,
|
|
::after {
|
|
animation-delay: -1ms !important;
|
|
animation-duration: 1ms !important;
|
|
animation-iteration-count: 1 !important;
|
|
transition-duration: 0s !important;
|
|
transition-delay: 0s !important;
|
|
}
|
|
}
|