mirror of
https://git.sr.ht/~seirdy/seirdy.one
synced 2024-12-27 10:52:09 +00:00
114 lines
3 KiB
CSS
114 lines
3 KiB
CSS
/* CSS that adds the bare minimum for a simple layout */
|
|
|
|
/* This site's CSS does 10 major things:
|
|
* 1. sans-serif instead of serif for low-res screens.
|
|
* 2. Consistent font size; <pre> and <code> shouldn't be smaller than
|
|
* regular text.
|
|
* 3. max content width for readability
|
|
* 4. single-row nav links widescreen, multiline nav on narrow screens
|
|
* 5. Soft border around code and images to disginguish from the
|
|
* surrounding page. Images with white/black or transparent
|
|
* backgrounds should have clear dimensions, and multiple consecutive
|
|
* inline <code> spans should look separate. A <code> span that
|
|
* continues across multiple lines should not look like multiple different
|
|
* spans.
|
|
* 6. Increase the line-spacing a bit so users on mobile devices can
|
|
* tap links more easily.
|
|
* 7. Horizontally center non-inline images; left-aligned stick out.
|
|
* 8. dark.css changes a few colors if the browser wants dark mode.
|
|
* 9. Support unstyled lists: for webmentions, post lists, nav links.
|
|
* 10. Narrow screen optimization: less-indented blockquotes, overflow
|
|
* behavior for <pre>, no figure margins.
|
|
* Everything else is browser defaults:
|
|
* default fonts, non-dark-mode colors, etc.
|
|
*/
|
|
|
|
html {
|
|
font: 100%/1.5 sans-serif;
|
|
margin: auto;
|
|
max-width: 45em;
|
|
padding: 0 3%;
|
|
}
|
|
|
|
/* narrow screens: no margin for blockquotes and figures */
|
|
blockquote {
|
|
border-left: 6px solid #bbb;
|
|
margin-left: 0;
|
|
padding-left: 1em;
|
|
}
|
|
|
|
/* narrow screens: remove figure margin. */
|
|
figure {
|
|
margin: 0;
|
|
}
|
|
|
|
/* nav links should be easy to tap with fat fingers */
|
|
nav li {
|
|
padding-right: 0.5em;
|
|
}
|
|
|
|
/* Lists without bullets: navlinks, posts lists, webmentions */
|
|
.unstyled-list {
|
|
padding-left: 0;
|
|
}
|
|
|
|
.unstyled-list li {
|
|
list-style-type: none;
|
|
margin-bottom: 0.5em;
|
|
}
|
|
|
|
/* single-line nav on widescreen, multi-line nav on narrow screens */
|
|
@media (min-width: 32em) {
|
|
nav li {
|
|
display: inline;
|
|
}
|
|
}
|
|
|
|
/* browsers make <pre> small for some dumb legacy reason
|
|
* and this somehow fixes that. */
|
|
code,
|
|
pre {
|
|
/* stylelint-disable -- compatibility hack */
|
|
font-family: monospace, monospace;
|
|
|
|
/* stylelint-enable */
|
|
}
|
|
|
|
/* Narrow screens: long words can cause content to flow out of the
|
|
* viewport, triggering horizontal scrolling. Allow breaking words in
|
|
* content I don't control (comments). For content I do control, I just
|
|
* add soft hyphens to the HTML. */
|
|
.u-comment,
|
|
:not(pre) > code {
|
|
overflow-wrap: break-word;
|
|
|
|
/* borders shouldn't touch text */
|
|
padding: 0 0.1em;
|
|
}
|
|
|
|
/* Narrow screens: allow horizontal scroll in a pre block, but don't
|
|
* clip it vertically */
|
|
pre {
|
|
/* csslint ignore:start */
|
|
overflow: auto visible;
|
|
|
|
/* csslint ignore:end */
|
|
padding: 0.5em;
|
|
}
|
|
|
|
/* Distinguish images from the background in case their color is
|
|
* too similar to the page background color. Also put a border around
|
|
* <pre> so that it looks just like <code> (see below). */
|
|
img,
|
|
pre,
|
|
:not(pre) > code {
|
|
border: 1px solid #bbb;
|
|
}
|
|
|
|
/* center images that aren't my indieweb icon */
|
|
img:not(.u-photo) {
|
|
display: block;
|
|
height: auto;
|
|
margin: auto;
|
|
max-width: 100%;
|
|
}
|