folderweb/app/default/styles/styles.css

170 lines
3.5 KiB
CSS
Raw Normal View History

/* RESET */
* { box-sizing: border-box; margin-bottom: 0 }
/* VARIABLES */
:root {
--color-text: oklch(20% 0 0);
--color-background: oklch(98% 0 0);
--color-accent: oklch(50% 0.15 250);
--color-border: oklch(85% 0 0);
--color-muted: oklch(50% 0 0);
2026-01-14 14:40:44 +01:00
--space-xs: 0.5rem;
--space-s: 1rem;
--space-m: 2rem;
--space-l: 4rem;
2026-01-14 14:40:44 +01:00
--size-content: 42rem;
}
/* GLOBAL */
html {
font-family: system-ui, sans-serif;
font-size: clamp(16px, 2.3vw, 20px);
line-height: 1.6;
color: var(--color-text);
background: var(--color-background);
}
body {
margin: 0;
display: grid;
grid-template-rows: auto 1fr auto;
min-height: 100vh;
}
/* CONTENT CENTERING */
.contain, :where(main > article, main > section, main > div) {
display: grid;
grid-template-columns: minmax(var(--space-s), 1fr) minmax(0, var(--size-content)) minmax(var(--space-s), 1fr);
& > * { grid-column: 2 }
}
/* TYPOGRAPHY */
h1, h2, h3, h4, h5, h6 {
font-weight: 400;
line-height: 1.3;
margin-top: 1.3em;
text-wrap: pretty;
}
h1 { font-size: 2.3rem }
h4 { font-weight: 700 }
p, ul, ol, dl { margin-block: 1em }
a {
color: var(--color-accent);
text-decoration: none;
&:hover { text-decoration: underline }
}
img { max-width: 100%; height: auto; display: block }
/* HEADER */
header {
border-bottom: 1px solid var(--color-border);
& > div {
display: flex;
flex-wrap: wrap;
gap: var(--space-s);
align-items: center;
padding-block: var(--space-s);
}
2026-01-14 14:40:44 +01:00
& nav {
display: flex;
gap: var(--space-s);
flex-wrap: wrap;
align-items: center;
2026-01-14 14:40:44 +01:00
&:first-child { flex: 1 }
2026-01-14 14:40:44 +01:00
& a {
text-decoration: none;
&:hover { text-decoration: underline }
&[aria-current] { font-weight: bold }
}
}
}
/* MAIN */
main { padding-block: var(--space-m) }
/* FOOTER */
footer {
border-top: 1px solid var(--color-border);
padding-block: var(--space-s);
font-size: 0.875rem;
color: var(--color-muted);
& p { margin: 0 }
}
/* CODE */
code {
background: oklch(95% 0.02 250);
padding: 0.125em 0.25em;
border-radius: 0.25em;
font-size: 0.9em;
}
pre {
background: oklch(95% 0.02 250);
padding: var(--space-s);
border-radius: 0.5em;
overflow-x: auto;
& code { background: none; padding: 0 }
}
/* TABLES */
table { border-collapse: collapse; width: 100%; margin-block: var(--space-s) }
th, td { padding: var(--space-xs); text-align: start; border-bottom: 1px solid var(--color-border) }
th { font-weight: bold }
/* BLOCKQUOTES */
blockquote {
margin-inline: 0;
padding-inline-start: var(--space-s);
border-inline-start: 4px solid var(--color-accent);
color: var(--color-muted);
}
/* ARTICLE */
article time { color: var(--color-muted); font-size: 0.875rem }
/* LIST VIEWS */
.list-item {
margin-bottom: var(--space-m);
& img { margin-bottom: var(--space-xs) }
& h2 { margin-top: 0 }
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
gap: var(--space-m);
}
.card {
border: 1px solid var(--color-border);
border-radius: 0.5rem;
padding: var(--space-s);
& img { margin-bottom: var(--space-xs); border-radius: 0.25rem }
& h3 { margin-top: 0 }
}
.compact-list {
list-style: none;
padding: 0;
& li { border-bottom: 1px solid var(--color-border); padding-block: var(--space-xs) }
& a {
display: flex;
justify-content: space-between;
align-items: baseline;
gap: var(--space-s);
&:hover strong { text-decoration: underline }
}
& time { white-space: nowrap; font-size: 0.875rem }
& p { margin-top: var(--space-xs); color: var(--color-muted); font-size: 0.9rem }
}