9 Commits

Author SHA1 Message Date
Brummel 0b551d79da fix(css): drop only flexslider.css, keep its JS
Surgical follow-up to the previous revert. The home-carousel indicator
dots drift because flexslider.css adds `.carousel li { margin-right: 5px }`
which bleeds into Bootstrap's carousel-indicators li. Bootstrap's
.active override removes margin on the active dot, but the inactive
keeps that 5px right margin — so when the inactive sits on the left
(slide 2 active), it pushes the active dot ~4px to the right.

The previous attempt also removed jquery.flexslider-min.js, which
empirically broke the hero/team carousels (the JS load seems to
participate in Bootstrap's data-ride auto-init timing on this custom
build). Keep the JS, drop only the CSS link plus the static file. Also
remove the now-superseded stage tweak at the bottom of praxis.css.
2026-05-21 11:43:58 +02:00
Brummel 8d961dbe88 Revert "fix(carousel): remove flexslider, restore Bootstrap carousel symmetry"
This reverts commit 96eea20c97.
2026-05-21 11:40:36 +02:00
Brummel 96eea20c97 fix(carousel): remove flexslider, restore Bootstrap carousel symmetry
Root cause of the home carousel indicator dots drifting apart on slide
change: flexslider.css adds a rule `.carousel li { margin-right: 5px }`
that bleeds into Bootstrap's carousel because both use the `.carousel`
class. With Bootstrap's `.active { margin: 0 }` overriding the active
dot but flexslider's `margin-right: 5px` still applying to the inactive
dot, the gap between the two dots is asymmetric — 1px when active is on
the left, ~9px (1+4+4) when active is on the right.

Live's Grav asset pipeline doesn't bundle that flexslider rule (the
live HTML uses Bootstrap carousel exclusively too), so the bug is
stage-only.

We don't actually use flexslider — testimonialSlider was the only
target in scripts.js and it doesn't exist in our markup. Drop the css
link, the js script tag, and the static assets. Also revert the
previous attempt that forced active dots to inactive geometry; with
flexslider gone, Bootstrap's design (active 12px margin 0 + inactive
10px margin 1 → both outer 12px) keeps positions stable on its own,
which matches the live behavior the user observed.
2026-05-21 11:30:37 +02:00
Brummel 9c79d05ae6 fix(css): serve live theme CSS verbatim instead of diverging SCSS fork
The Sass file in sass/_praxis_theme.scss had drifted from the live
_style.css over the project's life — different line-heights (34/28 vs
24), padding overrides, restructured selectors, and a few sections that
the SCSS parser couldn't accept anyway (CSS // line-comments, missing
semicolons inherited from the original hand-written CSS).

For Phase 1 visual parity the correct source of truth is the live CSS,
not a re-edited copy. Drop compile_sass, ship the live _style.css as
/css/praxis.css straight from static/, and point base.html at it. This
restores the live vertical rhythm (paragraph spacing, banner padding)
that had been subtly off.
2026-05-21 10:14:59 +02:00
Brummel 6b877b6100 fix(templates): strip base_url from nav hrefs and unescape image src URLs 2026-05-21 00:33:28 +02:00
Brummel d0d6964ba1 feat: navbar logo image, Home link, active-state per route 2026-05-21 00:02:52 +02:00
Brummel 52165c7af5 feat: home title brand line, subpage prefix, keywords meta
- Suppress section title prefix on home page (section.path == '/')
- Compose site_title from config.title + config.extra.doctors
- Add keywords meta tag from config.extra.keywords
2026-05-21 00:00:50 +02:00
Brummel 8420e4c360 feat: add footer partial sourced from config.extra 2026-05-20 23:58:04 +02:00
Brummel dd7e3b9b50 feat: base layout, head partial (with noindex), and navbar template 2026-05-20 22:35:30 +02:00