Skip to content

web: /v2/ editorial minimal skin (dlgrv.com style) - #13

Merged
dlgrv merged 13 commits into
mainfrom
web/editorial-v2
Sep 20, 2026
Merged

dlgrv merged 13 commits into
mainfrom
web/editorial-v2

Conversation

@dlgrv

@dlgrv dlgrv commented Sep 19, 2026

Copy link
Copy Markdown
Owner

What

  • New /v2/{ru,en,zh}/ pages with a monochrome editorial skin (Georgia serif book text, system-ui UI, hairline separators instead of cards, uppercase filter kickers, dark theme feat(ebook): build Arabic EPUB and PDF #111/#d0d0d0)
  • Same JS/DOM as v1 — reskin only; data still fetched from repo-root README/book (no duplication)
  • tools/v2.css + extended build_pages.py; v1 pages untouched

Verified

  • Real-browser (Playwright Chromium): 528 cards/32 sections on all langs, grade filter 528→347 + counter, search «сон»→19, tooltip opens, dark feat(ebook): build Arabic EPUB and PDF #111/#d0d0d0, mobile drawer open/close, 0 console errors
  • Screenshots reviewed: light/dark/mobile

- tools/v2.css: monochrome editorial skin (Georgia 17.5px book text, system-ui UI,
  hairlines instead of cards, uppercase kickers, dark #111/#d0d0d0 theme)
- build_pages.py: also generate v2/<lang>/index.html with swapped <style> and
  __HTLB_BASE__='../../' (same README/book data, no duplication)
- root ru/en/zh pages and JS untouched (v1 stays at old paths)
- search bar exactly centered in window on desktop (absolute, min(420px,40vw)); flows normally on mobile
- nav-r anchored right via margin-left:auto; even gaps (10px), README/GitHub icons optically equalized (.ic-doc/.ic-gh), '/' hint padded
- theme switch knob: plain square, no cropped glyph; darker knob for contrast
- fix .icon-btn{display:grid} overriding .menu-btn{display:none} -> hamburger no longer visible on desktop (specificity)
- content column widened 680->760px
- drop dead Inter stylesheet + preconnects (unused since Georgia switch)
- header icons: optical equalization (README 20px box, GH 15px), globe emoji -> text label,
  buttons/kbd/summary inherit font stack (theme toggle was Arial)
- scale 36/24/19/17.5: h1 36px (-.015em), h2 24px, card h3 19px (was =body), rows .k 11px (was 10px)
- mobile h1 27px, h2 21px; section rhythm: 88px between sections, roomier cards
- ::selection inverted (ink/bg)
- v2 pages: README/book links fixed to repo root (../../) — icon link was 404 from /v2/
- scroll-spy: sidebar highlights current section on scroll (rAF-batched,
  passive listeners, v2-only via __HTLB_V2__ flag)
- marginalia (Tufte-style): notes move to right margin >=1440px,
  stay in card flow below; .marg aside rendered per card (v2-only)
- typography: text-wrap:balance on headings, hyphens:auto
- build: inject __HTLB_V2__=1 flag into v2 pages (was missing —
  all v2-conditional JS branches were dead)
- new ver-switch button (history icon) next to theme: navigates to
  the same page on v1 preserving query and hash; shown only on v2
  (html.v2 class injected by build_pages.py), hidden on v1
- theme control: slider replaced with icon button (moon in light,
  sun in dark), works on both v1 and v2, old .switch removed from CSS
- i18n: verTitle for ru/en/zh; aria/title set in applyI18n
- doc-head rhythm unified to 12px step (stat had 0 gap to feedback
  line, meta-lines had 4px); counter styled as UI metadata 14px
- card micro-rhythm: human 12/12, rows bottom 12px (was 8/12/14/6 mix)
- fix: restore </details> closing tag eaten by earlier patch —
  doc/gh/ver/theme buttons were nested inside <details> and stacked
  vertically outside the header row
- ver-switch icon converted from stroke to filled style to match
  sibling icons
All header icons now use official Lucide paths verbatim:
- menu (3 lines), search (circle+handle), chevron-down, file-text
  (README), history (v2->v1 version switch), sun+moon (theme)
- GitHub mark kept as official filled glyph (brand asset, standard
  practice); fill moved from blanket CSS rule to .ic-gh only so
  stroke-based Lucide icons render correctly
- lucide-static 0.469.0, https://lucide.dev
- GitHub mark replaced with Lucide 'github' stroke icon: now every
  icon is stroke 2px, currentColor, 16px — no fills, no exceptions
- removed per-icon optical-size hacks (.ic-doc 20px, .ic-gh 15px)
  that made file icon larger and shifted the gh glyph right
- ver-switch fits fully inside its button (no right-edge clipping)
- 1px full-perimeter border, radius 8px, height 36px (was floating
  underline 420px wide that read as cheap)
- real kbd chip for '/' shortcut (border + bg, no bare glyph)
- breathing room around magnifier icon; narrower 340px field
- focus: border darkens to ink, subtle 1px drop shadow
@dlgrv
dlgrv merged commit 80e510c into main Sep 20, 2026
dlgrv added a commit that referenced this pull request Sep 20, 2026
* web: v2 editorial skin (dlgrv.com style) at /v2/{ru,en,zh}/

- tools/v2.css: monochrome editorial skin (Georgia 17.5px book text, system-ui UI,
  hairlines instead of cards, uppercase kickers, dark #111/#d0d0d0 theme)
- build_pages.py: also generate v2/<lang>/index.html with swapped <style> and
  __HTLB_BASE__='../../' (same README/book data, no duplication)
- root ru/en/zh pages and JS untouched (v1 stays at old paths)

* web(v2): single font family — Georgia everywhere (UI + book text); mono only for <code>

* web(v2): header & width polish

- search bar exactly centered in window on desktop (absolute, min(420px,40vw)); flows normally on mobile
- nav-r anchored right via margin-left:auto; even gaps (10px), README/GitHub icons optically equalized (.ic-doc/.ic-gh), '/' hint padded
- theme switch knob: plain square, no cropped glyph; darker knob for contrast
- fix .icon-btn{display:grid} overriding .menu-btn{display:none} -> hamburger no longer visible on desktop (specificity)
- content column widened 680->760px

* web(v2): typography pass — university-press polish + audit fixes

- drop dead Inter stylesheet + preconnects (unused since Georgia switch)
- header icons: optical equalization (README 20px box, GH 15px), globe emoji -> text label,
  buttons/kbd/summary inherit font stack (theme toggle was Arial)
- scale 36/24/19/17.5: h1 36px (-.015em), h2 24px, card h3 19px (was =body), rows .k 11px (was 10px)
- mobile h1 27px, h2 21px; section rhythm: 88px between sections, roomier cards
- ::selection inverted (ink/bg)
- v2 pages: README/book links fixed to repo root (../../) — icon link was 404 from /v2/

* web(v2): press features — scroll-spy, marginalia, typography details

- scroll-spy: sidebar highlights current section on scroll (rAF-batched,
  passive listeners, v2-only via __HTLB_V2__ flag)
- marginalia (Tufte-style): notes move to right margin >=1440px,
  stay in card flow below; .marg aside rendered per card (v2-only)
- typography: text-wrap:balance on headings, hyphens:auto
- build: inject __HTLB_V2__=1 flag into v2 pages (was missing —
  all v2-conditional JS branches were dead)

* web(v2): header buttons — version switch v2->v1, theme as icon button

- new ver-switch button (history icon) next to theme: navigates to
  the same page on v1 preserving query and hash; shown only on v2
  (html.v2 class injected by build_pages.py), hidden on v1
- theme control: slider replaced with icon button (moon in light,
  sun in dark), works on both v1 and v2, old .switch removed from CSS
- i18n: verTitle for ru/en/zh; aria/title set in applyI18n

* web(v2): vertical rhythm normalization + header markup fix

- doc-head rhythm unified to 12px step (stat had 0 gap to feedback
  line, meta-lines had 4px); counter styled as UI metadata 14px
- card micro-rhythm: human 12/12, rows bottom 12px (was 8/12/14/6 mix)
- fix: restore </details> closing tag eaten by earlier patch —
  doc/gh/ver/theme buttons were nested inside <details> and stacked
  vertically outside the header row
- ver-switch icon converted from stroke to filled style to match
  sibling icons

* web(v2): replace hand-drawn icons with Lucide (ISC license)

All header icons now use official Lucide paths verbatim:
- menu (3 lines), search (circle+handle), chevron-down, file-text
  (README), history (v2->v1 version switch), sun+moon (theme)
- GitHub mark kept as official filled glyph (brand asset, standard
  practice); fill moved from blanket CSS rule to .ic-gh only so
  stroke-based Lucide icons render correctly
- lucide-static 0.469.0, https://lucide.dev

* web(v2): unify all header icons — same size, color, style

- GitHub mark replaced with Lucide 'github' stroke icon: now every
  icon is stroke 2px, currentColor, 16px — no fills, no exceptions
- removed per-icon optical-size hacks (.ic-doc 20px, .ic-gh 15px)
  that made file icon larger and shifted the gh glyph right
- ver-switch fits fully inside its button (no right-edge clipping)

* web(v2): lang label as small caps UI mark (12px, tracked)

* web(v2): search field restyle — framed box (Linear/Stripe pattern)

- 1px full-perimeter border, radius 8px, height 36px (was floating
  underline 420px wide that read as cheap)
- real kbd chip for '/' shortcut (border + bg, no bare glyph)
- breathing room around magnifier icon; narrower 340px field
- focus: border darkens to ink, subtle 1px drop shadow

* web(v2): hide '/' kbd chip on mobile (no keyboard there)

* web(v2): lang summary width:auto — chevron no longer clipped by 32px icon-btn box

* web: regenerate v1 pages with updated header (lucide icons, theme button, ru label, search unchanged in v1)

---------

Co-authored-by: dlgrv <dlgrv@users.noreply.github.com>
dlgrv added a commit that referenced this pull request Sep 20, 2026
- .ver-btn visible on v1 (was v2-only since #13)
- click handler is direction-aware: v2 -> strips /v2/, v1 -> adds /v2/
  (path-preserving for /, /ru/, /en/, /zh/; keeps query + hash)
- i18n: verTitle2 ('New site version'/'Новая версия сайта'/'新版网站')
  used on v1, verTitle on v2
- regenerated ru/en/zh + v2 pages
- click-tested all 6 directions + hash preservation, 0 JS errors

Co-authored-by: dlgrv <dlgrv@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant