Files
district-dharma/css/main.css
2026-06-22 10:38:32 -07:00

218 lines
4.1 KiB
CSS

:root {
color-scheme: light dark;
--color-dark: #202325;
--color-light: #e4edf3;
--color-blue-dark: #0c436d;
--color-blue-light: #5ca6ce;
--color-red-light: #bb362a;
--color-red-dark: #b82e1f;
--color-text: light-dark(var(--color-dark), var(--color-light));
--color-bg: light-dark(var(--color-light), var(--color-dark));
--color-accent: light-dark(var(--color-blue-dark), var(--color-blue-light));
--color-accent-flipped: light-dark(var(--color-blue-light), var(--color-blue-dark));
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
}
/* numbered components are from https://www.joshwcomeau.com/css/custom-css-reset/ */
*, *::before, *::after {
box-sizing: border-box; /* 1. Use a more-intuitive box-sizing model */
}
#root, #__next {
isolation: isolate; /* 10. Create a root stacking context */
}
*:not(dialog) {
margin: 0; /* 2. Remove default margins */
}
*:focus-visible {
outline-offset: .12rem;
outline: .12rem solid var(--color-accent);
border-radius: .25rem;
}
html {
height: 100%;
}
@media (prefers-reduced-motion: no-preference) {
html {
interpolate-size: allow-keywords; /* 3. Enable keyword animations */
}
}
body {
line-height: 1.5; /* 4. Increase line-height */
-webkit-font-smoothing: antialiased; /* 5. Improve text rendering */
font-family: sans-serif;
color: var(--color-text);
background-color: var(--color-bg);
font-family: "Atkinson Hyperlegible Next";
height: 100%;
display: grid;
grid-template-rows: auto 1fr auto;
min-height: 100%;
}
#content {
width: 65%;
max-width: 1800px;
margin-inline: auto;
margin-block-end: 3rem;
}
@media (max-width: 1050px) {
#content {
width: 85%;
}
}
@media (max-width: 650px) {
#content {
width: 92%;
}
}
img, picture, video, canvas, svg {
display: block; /* 6. Improve media defaults */
max-width: 100%; /* 6. Improve media defaults */
height: auto; /* 6. Improve media defaults */
margin: 0 auto;
}
input, button, textarea, select {
font: inherit; /* 7. Inherit fonts for form controls */
}
h1, h2, h3, h4, h5, h6, p {
overflow-wrap: break-word; /* 8. Avoid text overflows */
}
h1, h2, h3, h4, h5, h6 {
text-wrap: balance; /* 9. Improve line wrapping */
font-family: serif;
margin-block-start: 1em;
color: var(--color-accent);
font-variant: small-caps;
font-family: Montserrat;
font-weight: 400;
}
h1 {
text-align: center;
font-size: 3rem;
margin-block-end: .6em;
}
h2 { font-size: 2rem; }
h3 { font-size: 1.8rem; }
p {
text-wrap: pretty; /* 9. Improve line wrapping */
margin-block: 1.25em;
}
a {
color: var(--color-accent);
text-decoration-thickness: .15rem;
transition: text-decoration-thickness .5s;
}
a:visited {
color: var(--color-text);
text-decoration-color: var(--color-accent);
}
@media (any-hover: hover) {
a:hover {
text-decoration-thickness: .25rem;
}
}
/* Header/nav/footer */
header {
height: 20vh;
padding: calc(20vh / 8);
background-color: var(--color-accent);
}
.logo {
height: 100%;
width: auto;
padding: calc(20vh / 30);
border: calc(20vh / 50) solid var(--color-accent);
border-radius: calc(20vh / 3);
}
header a:focus-visible {
outline: none; /* covered by logo rule below */
}
header a:focus-visible .logo {
border-color: var(--color-text);
outline: calc(20vh / 30) solid var(--color-accent-flipped);
}
@media (prefers-color-scheme: light) {
.dark {
display: none;
}
}
@media (prefers-color-scheme: dark) {
.light {
display: none;
}
}
footer {
background-color: var(--color-accent);
color: var(--color-bg);
}
footer p {
text-align: center;
}
footer a,
footer a:visited {
color: var(--color-bg);
text-decoration-color: var(--color-bg);
}
footer a:focus-visible {
outline: .15rem solid var(--color-accent-flipped);
}
/* Misc */
#hero {
aspect-ratio: 40 / 9;
object-fit: cover;
}
.inset-left,
.inset-right {
margin-bottom: 1rem;
}
/* only float on larger screens */
@media (min-width: 551px) {
.inset-left,
.inset-right {
clear: both;
width: 40%;
margin: .5rem 0;
}
.inset-left {
float: left;
margin-right: 1rem;
}
.inset-right {
float: right;
margin-left: 1rem;
}
}