Ledger: header/nav include with Alpine mobile nav #33

Closed
opened 2026-10-03 11:00:53 +02:00 by Augspies · 1 comment
Owner

Part of: Ledger Redesign — spec §3.1, §5, §6

Goal: Replace the empty header include with the Ledger masthead and nav, and create SiteSettings (the nav's booking CTA needs an authorable Calendly URL).

Files: apps/virtual_attorney/templates/includes/header.html, new SiteSettings in apps/core (wagtail.contrib.settings), virtual_attorney/settings/base.py (INSTALLED_APPS + context processor), migration

Acceptance:

  • Centered Marcellus wordmark + mono tagline "Contract legal services · intake ledger"
  • Hairline nav row (ink top, rule bottom): Who I help · Services & rates · About · Questions — links to {% pageurl site_root %}#anchor
  • Right-aligned teal pill "Book a consultation" dispatching the existing open-calendly event; rendered only when SiteSettings.calendly_url is set
  • ≤900px: burger toggles an Alpine drawer; aria-expanded set; Esc closes; drawer links close on tap
  • Breakpoint is 900px per spec §9 — use arbitrary variants (min-[900px]:flex, min-[900px]:hidden), not Tailwind's default md (768px)
  • Drawer starts hidden via x-cloak + the [x-cloak] { display: none !important; } rule in app.css (same rule added for the Calendly modal fix) — no flash of hidden Alpine elements before Alpine initializes
  • SiteSettings registered with calendly_url, contact_email, disclaimer (email/disclaimer consumed by #34); editable in Wagtail admin Settings
  • Styling via utilities in the template (house convention, spec §6) — no new component classes
  • Visible focus states; matches mockup

Notes: Nav links target homepage anchors in v1; real page URLs follow the page tree. wagtail.contrib.settings must be added to INSTALLED_APPS + context processors (confirmed absent from settings/base.py).

**Part of:** Ledger Redesign — spec §3.1, §5, §6 **Goal:** Replace the empty header include with the Ledger masthead and nav, and create `SiteSettings` (the nav's booking CTA needs an authorable Calendly URL). **Files:** `apps/virtual_attorney/templates/includes/header.html`, new `SiteSettings` in `apps/core` (wagtail.contrib.settings), `virtual_attorney/settings/base.py` (INSTALLED_APPS + context processor), migration **Acceptance:** - [x] Centered Marcellus wordmark + mono tagline "Contract legal services · intake ledger" - [x] Hairline nav row (ink top, rule bottom): Who I help · Services & rates · About · Questions — links to `{% pageurl site_root %}#anchor` - [x] Right-aligned teal pill "Book a consultation" dispatching the existing `open-calendly` event; rendered only when `SiteSettings.calendly_url` is set - [x] ≤900px: burger toggles an Alpine drawer; `aria-expanded` set; Esc closes; drawer links close on tap - [x] Breakpoint is 900px per spec §9 — use arbitrary variants (`min-[900px]:flex`, `min-[900px]:hidden`), not Tailwind's default `md` (768px) - [x] Drawer starts hidden via `x-cloak` + the `[x-cloak] { display: none !important; }` rule in `app.css` (same rule added for the Calendly modal fix) — no flash of hidden Alpine elements before Alpine initializes - [x] `SiteSettings` registered with `calendly_url`, `contact_email`, `disclaimer` (email/disclaimer consumed by #34); editable in Wagtail admin Settings - [x] Styling via utilities in the template (house convention, spec §6) — no new component classes - [x] Visible focus states; matches mockup **Notes:** Nav links target homepage anchors in v1; real page URLs follow the page tree. `wagtail.contrib.settings` must be added to INSTALLED_APPS + context processors (confirmed absent from `settings/base.py`).
Author
Owner

Closed by #51

Closed by #51
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Augspies/virtual-attorney#33
No description provided.