1
mirror of https://github.com/jakejarvis/jarv.is.git synced 2025-04-27 16:30:28 -04:00
jarv.is/styles/index.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;
}
}