Files
tsuki/assets/css/typography.css
T
tiennm99 e19bb67c88 feat: visual layer with vi typography, dark mode, view transitions (Phase 6)
- 9 CSS files (tokens, reset, typography, layout, components, home,
  archive, toc, view-transitions) bundled via resources.Concat
- 3 ES module JS files (theme-toggle, code-copy, toc-active); toc-active
  loaded only on long posts
- @view-transition: navigation auto for cross-page morph (CSS-only)
- TOC partial gated by WordCount>400 and Params.toc!=false; sticky on
  wide viewports, framed block on narrow
- render-heading.html adds cosmetic anchor links
- Hugo asset pipeline: resources.Concat | minify | fingerprint (no
  SCSS, no PostCSS, no Node)
- i18n/vi.yml extended with prev/next/posts/archiveEmpty/toggleTheme
- Bundle sizes: CSS 3.3 KB gz (budget 15), JS 0.8 KB gz (budget 8)

Config: github-ascii heading IDs, :contentbasename permalink token for
clean ASCII URLs, pagination.pagerSize migration (Hugo 0.128+).
2026-05-07 21:27:46 +07:00

68 lines
1.5 KiB
CSS

/* tsuki: vi-optimized typography */
body {
font-size: var(--tsuki-fs-base);
line-height: var(--tsuki-lh-body);
font-feature-settings: "kern", "liga", "calt", "ss01";
}
h1, h2, h3, h4, h5, h6 {
line-height: var(--tsuki-lh-tight);
font-weight: 650;
letter-spacing: -0.01em;
margin-block: var(--tsuki-space-8) var(--tsuki-space-3);
}
h1 { font-size: var(--tsuki-fs-3xl); }
h2 { font-size: var(--tsuki-fs-2xl); }
h3 { font-size: var(--tsuki-fs-xl); }
h4 { font-size: var(--tsuki-fs-lg); }
p { margin-block: 0 var(--tsuki-space-4); }
blockquote {
margin-inline: 0;
padding-inline-start: var(--tsuki-space-4);
border-inline-start: 3px solid var(--tsuki-border);
color: var(--tsuki-fg-muted);
font-style: italic;
}
code {
font-family: var(--tsuki-font-mono);
font-size: 0.9em;
background: var(--tsuki-code-bg);
padding: 0.125em 0.375em;
border-radius: var(--tsuki-radius);
}
pre {
font-family: var(--tsuki-font-mono);
font-size: var(--tsuki-fs-sm);
line-height: 1.55;
background: var(--tsuki-code-bg);
padding: var(--tsuki-space-4);
border-radius: var(--tsuki-radius);
overflow-x: auto;
position: relative;
}
pre code { background: none; padding: 0; font-size: inherit; }
hr {
border: none;
border-top: 1px solid var(--tsuki-border);
margin-block: var(--tsuki-space-12);
}
table {
width: 100%;
border-collapse: collapse;
margin-block: var(--tsuki-space-6);
}
th, td {
text-align: start;
padding: var(--tsuki-space-2) var(--tsuki-space-3);
border-bottom: 1px solid var(--tsuki-border);
}
th { font-weight: 600; }