html, body { font-family: var(--font-body); font-weight: var(--font-weight-light); color: var(--text-color); background: var(--background-color); } html { scrollbar-color: var(--accent-color) var(--gray-light); } ::-webkit-scrollbar { width: var(--sizing-md); } ::-webkit-scrollbar-track { background: var(--gray-light); } ::-webkit-scrollbar-thumb { background: var(--accent-color); border-radius: var(--border-radius-full); } ::-webkit-scrollbar-thumb:hover { background: var(--accent-color-hover); } ::selection { color: var(--color-lightest); background: var(--accent-color); } p { margin: var(--margin-vertical-base-horizontal-zero); } mark { font-weight: var(--font-weight-bold); color: var(--text-color-inverted); background-color: var(--section-color, var(--accent-color)); padding: var(--spacing-xs); border-radius: var(--border-radius-slight); & > * { color: var(--text-color-inverted); } } blockquote { font-size: var(--font-size-lg); color: var(--gray-dark); padding-left: var(--spacing-lg); border-left: var(--sizing-xs) solid var(--gray-dark); margin: var(--margin-vertical-base-horizontal-zero); } :is(h1, h2, h3) svg { stroke-width: var(--stroke-width-bold); } strong, blockquote { font-weight: var(--font-weight-bold); } em, blockquote { font-style: italic; } svg { width: var(--sizing-svg); height: var(--sizing-svg); stroke: var(--icon-color); stroke-width: var(--stroke-width-default); } /* images */ img { border-radius: var(--border-radius-slight); &.image-banner { border: var(--border-gray); height: auto; width: var(--sizing-full); margin: var(--margin-vertical-base-horizontal-zero); } } /* lists */ ul, ol { margin: var(--margin-vertical-base-horizontal-zero); &:not(.standalone) { padding-left: var(--spacing-base); } li:not(:last-child) { margin-bottom: var(--spacing-lg); } } /* brand + section colors */ .article, .books, .brand-github, .brand-mastodon, .brand-npm, .calendar, .coffee, .concerts, .country, .device-tv-old, .device-watch, .error, .favorite, .forgejo, .github, .headphones, .heart-handshake, .info-circle, .link, .mail, .mail-plus, .mastodon, .movies, .music, .npm, .old-post, .rss, .search, .tattoo, .tv, .warning { &.article { --section-color: var(--article); } &.books { --section-color: var(--books); } &.brand-github, &.github { --section-color: var(--brand-github); } &.brand-mastodon, &.mastodon { --section-color: var(--brand-mastodon); } &.brand-npm { --section-color: var(--brand-npm); } &.calendar { --section-color: var(--calendar); } &.coffee { --section-color: var(--brand-buy-me-a-coffee); } &.concerts { --section-color: var(--concerts); } &.country { --section-color: var(--country); } &.device-tv-old { --section-color: var(--tv); } &.device-watch { --section-color: var(--now); } &.error { --section-color: var(--error); } &.favorite { --section-color: var(--favorite); } &.git-merge, &.forgejo { --section-color: var(--brand-forgejo); } &.headphones { --section-color: var(--music); } &.heart-handshake { --section-color: var(--webrings); } &.info-circle { --section-color: var(--about); } &.link { --section-color: var(--link); } &.mail { --section-color: var(--brand-proton); } &.mail-plus { --section-color: var(--newsletter); } &.movies, &.tv { --section-color: var(--tv); } &.music { --section-color: var(--music); } &.npm { --section-color: var(--brand-npm); } &.old-post { --section-color: var(--gray-dark); } &.rss { --section-color: var(--brand-rss); } &.search { --section-color: var(--search); } &.tattoo { --section-color: var(--tattoo); } &.warning { --section-color: var(--warning); } --icon-color: var(--section-color); --link-color: var(--section-color); --banner-border-color: var(--section-color); color: var(--section-color); } /* links */ a { color: var(--link-color); text-underline-offset: var(--underline-offset-default); transition: color var(--transition-duration-default) var(--transition-ease-in-out), text-underline-offset var(--transition-duration-default) var(--transition-ease-in-out); img { border: var(--border-default); filter: var(--filter-image-default); transition: filter var(--transition-duration-default) var(--transition-ease-in-out); } svg { transform: var(--transform-icon-default); } &.back-link { display: inline-flex; align-items: center; gap: var(--spacing-xs); margin-bottom: var(--spacing-base); &:is(:hover, :focus, :active) svg { transform: var(--transform-icon-default); } } --icon-color: var(--accent-color); &:is(:hover, :focus, :active) { color: var(--link-color-hover); text-underline-offset: var(--underline-offset-hover); img { filter: var(--filter-image-light); @media (prefers-color-scheme: dark) { filter: var(--filter-image-dark); } } svg { transition: transform var(--transition-duration-default) var(--transition-ease-in-out); transform: var(--transform-icon-tilt); } --icon-color: var(--accent-color-hover); } } :is(h1, h2, h3, a, p, span, th, td, article aside):has(svg):not(.back-link) { display: flex; align-items: center; gap: var(--spacing-xs); } /* headers */ h1, h2, h3 { font-family: var(--font-heading); font-weight: var(--font-weight-bold); line-height: var(--line-height-md); margin: var(--margin-vertical-base-horizontal-zero); a:is(:hover, :focus, :active) svg { transform: var(--transform-icon-default); } } h1 { font-size: var(--font-size-2xl); } h2 { font-size: var(--font-size-xl); &.page-title { margin-top: 0; } } h3 { font-size: var(--font-size-lg); } @media screen and (min-width: 768px) { h1 { font-size: var(--font-size-3xl); } h2 { font-size: var(--font-size-2xl); } h3 { font-size: var(--font-size-xl); } } /* dividers */ hr { color: var(--gray-light); margin: var(--margin-vertical-base-horizontal-zero); } /* articles */ time { color: var(--gray-dark); font-size: var(--font-size-sm); } article { margin-bottom: var(--spacing-base); &:not([class], :last-of-type) { border-bottom: var(--border-gray); } &.intro p { margin-top: 0; } h3 { margin-top: 0; } aside { font-size: var(--font-size-sm); button { font-weight: var(--font-weight-bold); } svg { --icon-color: var(--gray-dark); --sizing-svg: var(--sizing-svg-sm); } } .footnotes ol p, .footnotes-list p { display: inline; } } /* tables */ table { display: block; border: var(--border-gray); border-radius: var(--border-radius-slight); overflow-x: scroll; white-space: nowrap; caption-side: bottom; overscroll-behavior: none; margin: var(--margin-vertical-base-horizontal-zero); } table, th, td { border-collapse: collapse; } :is(th, td):not(:first-child, :last-child) { border-right: var(--border-gray); } th, tr:not(:last-child) { border-bottom: var(--border-gray); } th, td { padding: var(--spacing-sm); word-break: break-word; &:first-child { position: sticky; left: 0; max-width: calc(var(--sizing-3xl) * 5.5); border-inline-end: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; &::after { content: ""; position: absolute; inset-block-start: 0; inset-inline-end: 0; width: 1px; height: var(--sizing-full); background: var(--gray-light); } } } th { font-family: var(--font-heading); font-weight: var(--font-weight-bold); background-color: var(--gray-lighter); text-align: left; } td { min-width: calc(var(--spacing-3xl) * 2); white-space: nowrap; overflow: hidden; &:first-child { background: var(--background-color); width: var(--sizing-full); } } td:first-of-type, :where(thead, tfoot) th:nth-child(2) { border-inline-start: none; } /* header */ .main-title { display: flex; flex-direction: column; gap: var(--spacing-base); width: var(--sizing-full); padding-top: var(--spacing-3xl); @media screen and (min-width: 768px) { flex-direction: row; align-items: center; justify-content: space-between; gap: 0; } h1 { margin: 0; padding: 0; white-space: nowrap; } } /* nav */ .active, .active svg { --icon-color: var(--accent-color-active); cursor: not-allowed; color: var(--accent-color-active); } /* layout */ .default-wrapper { padding-top: var(--spacing-2xl); } .main-wrapper { min-height: 100vh; display: flex; flex-direction: column; } main { flex: 1 1 0%; margin: 0 auto; } main, footer { width: calc(var(--sizing-full) * .8); @media screen and (min-width: 768px) { max-width: 768px; } } footer { margin: var(--sizing-3xl) auto 0; .updated { font-size: var(--font-size-sm); text-align: center; } }