Commit graph

15 commits

Author SHA1 Message Date
73dc656257 style(nav): active link is colour + weight only — drop bullet, italic, case swap
.nav-link.active was carrying four overlapping cues from earlier passes:
terracotta colour, serif italic, sentence case, leading '·' bullet, and
a 15px size bump. The spec's 'option 4' is colour-only. Strip the rest:

  .nav-link.active {
    color: var(--pigment-terracotta);
    font-weight: 500;
  }

That's it. Same sans uppercase as inactive links, just terracotta with
a touch more weight. The bullet ::before is gone; nothing floats below
the link.

Sign out (.logout-btn) is already --on-surface-muted with --on-surface
on hover from a prior pass — exactly the muted treatment the new spec
asks for, so no change needed. The 'Sign out is currently terracotta'
line in the spec didn't match the codebase; flagged in the audit.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 14:53:11 +02:00
9c00087c50 fix(nav): widen 'Bifrost' gradient-clip box so the italic cap renders fully
The italic 'B' on 'Bifrost' was being clipped at the top because
background-clip: text only paints inside the inline element's content
box — which at the previous tight line-height didn't include the
ascender flourish.

Two cooperating fixes:
- .wordmark-project gets line-height: 1.5 so the parent line-box has
  enough vertical room for the italic ascender to live in.
- .wordmark-bifrost becomes display: inline-block with 4px top / 2px
  bottom padding. That extends the element's content box vertically so
  the gradient-clip mask covers the full italic glyph including the
  serif curl above the cap-height.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 11:35:19 +02:00
f8ecad4433 style(nav): wordmark — give italic ascenders room, share visual midline
Two fixes for the previous baseline-align attempt:

- 'Bifrost' was getting its italic ascender clipped because line-height
  was pinned at 1. Switched to line-height: 1.3 on .wordmark-project so
  the swash on the italic 'B' / 'f' has room to render.
- The lockup was reading low overall because align-items: baseline +
  translateY(3px) on the SVG together shifted the SVG below the text
  baseline. Reverted to align-items: center for reliable cross-browser
  centring, dropped the SVG transform, and pulled the SVG height from
  22 → 20 so the visible glyph height of the wordmark matches the cap-
  height of Newsreader at 18px more closely. The '·' bullet keeps a
  -2px nudge because Newsreader's bullet sits typographically above its
  baseline at this size.
- 2px padding-top on .wordmark-project compensates for the small bit
  of descender slack at the bottom of the Fenja SVG — caps now sit on
  the same visible cap-line as the wordmark glyphs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 11:33:36 +02:00
255ed76bbd style(nav): align Fenja logo + 'Project Bifrost' on a shared baseline
Three small adjustments so the lockup reads as one mark, not a logo
next to a label:

- align-items: baseline on .wordmark-link so the typographic baseline
  drives vertical alignment (instead of bounding-box centres).
- 'Project' + 'Bifrost' bumped from text-body-md (16px) to 18px with
  line-height: 1 and tracking-snug. The bigger weight matches the
  visible glyph height of the Fenja SVG and pulls the bullet into
  conversation with the wordmark instead of floating between them.
- The Fenja SVG gets a translateY(3px) nudge to compensate for the
  descender slack in its 265×101 viewBox — the SVG's actual baseline
  sits a couple of px above its bounding-box bottom, so the flex
  baseline-align would otherwise place 'fenja' above the text baseline.
- The '·' separator drops 1px and grows to 18px so it sits between the
  two marks rather than floating above them.

The exact numbers are empirical — eyeballed in dev — but the rationale
each pin to a baseline relationship rather than 'magic px offset'.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 11:31:56 +02:00
7403d805cd style(nav): wordmark 'Project' in Newsreader to match 'Bifrost'
.wordmark-project was Manrope 500 — visually a sans-serif label next to
a serif-italic gradient noun. Switches to Newsreader 400 so the
wordmark reads as one continuous editorial mark, with the italic +
gradient on 'Bifrost' doing the visual lift instead of a family contrast.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 11:30:10 +02:00
89688d605d style(pulse): drop date + tenure line, italic-noun section titles, more air, new active nav cue
Greeting (1, 2): the tracked date label above the greeting and the
milestone tenure line below it both come out. The greeting is now just
'Good morning, Jonathan.' alone on the left, with the MEMBER · NNN /
'Founding circle' stamp on the right. tenureMilestone helper + test stay
in place — they're still useful for future surfaces but no longer
rendered on /pulse.

Section titles (3): the noun in each section title gets serif italic +
a trailing period — 'On the <em>roadmap.</em>' and 'The <em>council.</em>'.
The two-word framing reads better visually than the previous flat
sans-serif title.

Spacing (6): bumped the major section transitions. Greeting → hero now
80px (was 56), also-coming-up → editorial 96px, editorial → roadmap
96px, roadmap → council 96px. The hero → also-coming-up gap stays at
the deliberate 18px because they're a pair, and the dispatch column's
internal margin-top 48px to its 'Earlier' list stays unchanged because
they belong to the same story.

Footer (7): 'Council manifesto' link removed from the footer for all
pages. The standalone /council-manifesto route stays in the codebase
(orphaned, not linked) so it isn't a 404 when someone has the URL.

Active nav link (8): the previous 4px terracotta dot below the active
link is gone. The active link now reads in a different typographic
register entirely:
  - terracotta colour
  - serif italic Newsreader (vs sans uppercase for inactive)
  - sentence case (text-transform: none — the label appears as 'Pulse'
    instead of 'PULSE')
  - leading '· ' prefix dot for an additional 'you are here' marker
Four cues at once, no positioned overlay, no floating elements. The
typography shift alone tells you which page you're on.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 11:16:11 +02:00
a4df2b4982 style(nav): active-link dot + 0.5px vertical divider before user name
- Active link no longer carries a background fill or pill. Instead, a
  4px terracotta dot is centred 22px below the link via ::after. Quieter,
  more confident, and survives the cream/white surface change without
  needing a hover-area redesign.
- Vertical divider before the user's name shifts from the existing ghost-
  border colour to a solid rgba(0,0,0,0.15) line, 18px tall with 18px
  padding either side (replacing the prior --space-2 / 8px). Still a
  scaled-1px element rather than a pipe character.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 10:47:10 +02:00
ca3686de29 feat(layout): wider canvas + 'Project Bifrost' wordmark + section-link utility
- Width: --content-max 72rem → 83rem (15% wider, per the v3 follow-up
  spec). Every page that uses var(--content-max) gets the new bound.
- Wordmark in the top-left nav: Fenja logo · "Project Bifrost". 'Bifrost'
  is serif italic with a horizontal pigment-rainbow gradient
  (terracotta → ochre → copper → indigo → heather), background-clip:text.
  The bullet separator uses --on-surface-muted at 1rem.
- Global .section-link utility class: serif italic, terracotta, no
  underline, no all-caps. Modifier --ink for use on the dark events card.
  This becomes the only italic body text on the site (along with the
  Bifrost wordmark); everywhere else loses italics in the next commit.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 09:44:59 +02:00
3240e0f052 feat(pulse): simplify home — events on top, merged roadmap+fenja, members strip
Restructures /pulse around three blocks instead of seven, per the
follow-up simplification spec.

Nav: Events and Members drop out of the top bar. Becomes
Pulse · Roadmap · [Admin]. Members and Events remain reachable via the
two new on-page links ('See who our council is made up of →' and
'View all →' under past gatherings).

/pulse render order:
1. Greeting (unchanged)
2. Events card (--ink). One blue card now holds all three sub-sections:
   - Hero NEXT UP / INVITATION BY HAND treatment for the soonest event,
     full date+title+desc+capacity+RSVP CTA. AvatarPile of confirmed.
   - 0.5px ink-muted divider, then ALSO COMING UP — compact list of other
     upcoming events with their action-label fallback. Less visual weight,
     same dark surface.
   - Divider, then PAST GATHERINGS — compact list with notes / no-notes
     indicator, plus a 'View all →' link to /events/past.
   - Empty state retains the visual weight of the card if nothing is up.
3. Combined Roadmap + Latest from Fenja (--surface-card). One white card,
   two stacked sub-sections separated by a 1px divider. Top is the single
   most recent published dispatch (was 'Latest from the studio', now
   labeled 'LATEST FROM FENJA'; 'All updates →' link to /dispatches). Bottom
   is the three most-recently-updated roadmap items + 'See the full roadmap →'.
4. Members strip (--surface-card). Every cab user as a pill (avatar + name
   + title) flowing horizontally. Header has the 'See who our council is
   made up of →' link to /members.

Removed from /pulse:
- This-week's-pulse voting block (deferred → todo.md, idea is to fold
  poll-shaped dispatches into the Latest from Fenja stream)
- MembershipCard (the COUNCIL · NNN identity card)
- RecentlyFromTheCouncil (deferred → todo.md)
- Bottom event-row with the two small dinner + studio hours cards (events
  moved to the top hero card, so these were duplicates)

POST handler is now RSVP-only — vote handling went with the pulse block.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 17:12:38 +02:00
243a456880 feat(pulse): nav restructure, white surfaces, membership card, dispatches
Nav (AppLayout.astro): brand stays left; everything else is a single
right-aligned flex group — Pulse · Roadmap · Members · Events · [Admin
if fenja] · 0.5px vertical divider · name · Sign out. The .nav-user
wrapper is gone; the name and logout button now belong to the same flex
flow as the link list.

/pulse:
- ActivityTicker render removed. The component file gets a one-line
  deprecation comment; the activity table and write hooks stay in place
  for later use.
- 'X others online now' chip strip removed — including all its supporting
  helpers and styles in the page.
- CouncilMark replaced with <MembershipCard> in the right column of the
  preview row. The roadmap preview is now a white --surface-card with
  0.5px border; pulse-card switches to the same white surface and
  --radius-lg. The .chosen pulse option uses --pigment-terracotta border
  and a 6% terracotta tint via color-mix.
- <DispatchesSection limit={4} /> and <RecentlyFromTheCouncil /> stacked
  below the preview row, in the position the online-now strip vacated.
- Vote-count denominator pulls from countCabMembers() and renders via
  voteCountSentence(votes, total) — a new helper covering 0/1/5+ cases.
- Event row: dark dinner card now uses --ink/--ink-text; light card uses
  --surface-card with 0.5px border.

Tests: 3 new cases for voteCountSentence (0/1/5). 36/36 passing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 16:02:46 +02:00
267ba34747 feat(nav): restructure header + add footer for council portal
Nav now reads Pulse · Roadmap · Members · Events · [Admin]. Old links
(Home / Vision / Product / Updates / Contribute) are dropped from the
header; Vision moves to the footer alongside a Council manifesto stub.

Header keeps the name + Sign out on the right exactly as before — Sign out
is NOT duplicated in the footer.

Footer: small Fenja icon mark + © year + two text links. Uses the existing
ghost-border, no shadows, matches editorial flatness.

/council-manifesto added as a one-screen stub so the link doesn't 404.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 14:46:55 +02:00
Jonathan
d054b56bf7 chore: remove participants and calendar pages and nav links 2026-04-19 20:51:55 +02:00
Jonathan
f8c7152fa9 chore: remove preview page in preparation for product page 2026-04-19 20:26:31 +02:00
Jonathan
9de5602d2d feat: authentication and invite flow 2026-04-18 22:45:25 +02:00
Jonathan
a7131e0f79 wip: scaffold and index before style-guide 2026-04-18 16:09:49 +02:00