Files
tsuki/assets/css/search.css
T
tiennm99 c96cea81c6 feat: Pagefind search and Giscus comments (Phase 7)
- search/list.html: Pagefind UI container + module init with full vi
  i18n strings; loads /pagefind/pagefind-ui.{css,js} from generated dir
- search-button.html in header, gated by params.search.enable
- comments.html for Giscus, opt-in via params.comments.giscus.enable;
  reads repo/repoId/category/categoryId/mapping/theme/lang from params
- giscus-theme.js: MutationObserver on data-theme, postMessage iframe
  on toggle so Giscus theme stays in sync with site
- search.css: header-actions row, search button, Pagefind UI tokens
  mapped to tsuki design tokens
- comments.css: min-block-size on iframe to prevent layout shift
- exampleSite/hugo.yaml: commented giscus params block as docs
- i18n/vi.yml: Pagefind UI strings (clear, loadMore, zeroResults...)

Both features no-op when disabled. CSS bundle 3.5 KB gz (budget 15).
2026-05-07 22:03:32 +07:00

44 lines
1.2 KiB
CSS

/* tsuki: search page — Pagefind UI overrides */
.site-header-actions {
display: flex;
align-items: center;
gap: var(--tsuki-space-2);
margin-inline-start: var(--tsuki-space-3);
}
.search-button {
display: inline-grid;
place-items: center;
width: 2rem;
height: 2rem;
border: 1px solid var(--tsuki-border);
border-radius: 999px;
color: var(--tsuki-fg-muted);
transition: var(--tsuki-transition);
}
.search-button:hover {
color: var(--tsuki-fg);
border-color: var(--tsuki-fg-muted);
text-decoration: none;
}
.search-button svg { width: 1rem; height: 1rem; }
.site-nav { margin-inline-start: auto; }
.search-container { margin-block: var(--tsuki-space-6); min-block-size: 6rem; }
/* Pagefind UI tokens — see https://pagefind.app/docs/ui/#styling */
:root {
--pagefind-ui-primary: var(--tsuki-accent);
--pagefind-ui-text: var(--tsuki-fg);
--pagefind-ui-background: var(--tsuki-bg);
--pagefind-ui-border: var(--tsuki-border);
--pagefind-ui-tag: var(--tsuki-code-bg);
--pagefind-ui-border-width: 1px;
--pagefind-ui-border-radius: var(--tsuki-radius);
--pagefind-ui-font: var(--tsuki-font-sans);
}
.search-noscript { color: var(--tsuki-fg-muted); }