Experience / Education screen rebuild — subnav for Education / Jobs / Contracts + view-by-default + Edit toggle #144

Closed
opened 2026-06-19 17:34:58 +00:00 by james · 0 comments
Owner

Existing /experience (#23) ships Education only. The design (../carol-design/design_files/ExperienceScreen.jsx) wraps Education in a segmented sub-nav (Education / Jobs / Contracts) under a single "Experience" page header. Education entries render as cards (institution + type Badge + focus + mono dates + description). Edit mode adds a section-level "Add entry" + per-card edit/delete tools. Jobs / Contracts: planned-note placeholder tied to epic #4.

Scope

  • Rebuild app/(app)/experience/page.tsx + Education client against the new primitives and tokens.
  • Page header: title "Experience" + lede ("Your career history — education, jobs, and contracts.") + view/edit controls.
  • Segmented sub-nav (Education default). Use a Tabs primitive if it lands in the day-one component set; otherwise inline the segmented control matching the DS spec (role="tablist", aria-selected).
  • Education tab: list of entry cards (institution bold + type Badge · focus · mono dates · description); Edit mode reveals "Add entry" (primary, leading plus icon) in the section head + per-card edit/delete tools.
  • Jobs / Contracts tabs: centred planned-note card (icon tile + title + body + ticket reference "Tracked in epic #4").

Acceptance criteria

  • All existing Education CRUD + ordering preserved; cross-user 404s still fire.
  • Sub-nav is keyboard-accessible (role="tablist", aria-selected); Education default.
  • Visual parity with the design on both themes.
  • Sub-nav is always interactive (independent of edit mode).
  • No inline styles in the rebuilt files.

Out of scope

  • Jobs / Contracts implementations (epic #4 / separate tickets).
  • Voice / copy rewrite.

Composes with

Design package, token-foundation ticket, component-primitives ticket, sidebar-shell ticket, #23.

Existing `/experience` (#23) ships Education only. The design (`../carol-design/design_files/ExperienceScreen.jsx`) wraps Education in a segmented sub-nav (Education / Jobs / Contracts) under a single "Experience" page header. Education entries render as cards (institution + type `Badge` + focus + mono dates + description). Edit mode adds a section-level "Add entry" + per-card edit/delete tools. Jobs / Contracts: planned-note placeholder tied to epic #4. ## Scope - Rebuild `app/(app)/experience/page.tsx` + Education client against the new primitives and tokens. - Page header: title "Experience" + lede ("Your career history — education, jobs, and contracts.") + view/edit controls. - Segmented sub-nav (Education default). Use a `Tabs` primitive if it lands in the day-one component set; otherwise inline the segmented control matching the DS spec (`role="tablist"`, `aria-selected`). - **Education tab:** list of entry cards (institution bold + type `Badge` · focus · mono dates · description); Edit mode reveals "Add entry" (primary, leading `plus` icon) in the section head + per-card edit/delete tools. - **Jobs / Contracts tabs:** centred planned-note card (icon tile + title + body + ticket reference "Tracked in epic #4"). ## Acceptance criteria - [ ] All existing Education CRUD + ordering preserved; cross-user 404s still fire. - [ ] Sub-nav is keyboard-accessible (`role="tablist"`, `aria-selected`); Education default. - [ ] Visual parity with the design on both themes. - [ ] Sub-nav is always interactive (independent of edit mode). - [ ] No inline styles in the rebuilt files. ## Out of scope - Jobs / Contracts implementations (epic #4 / separate tickets). - Voice / copy rewrite. ## Composes with Design package, token-foundation ticket, component-primitives ticket, sidebar-shell ticket, #23.
james closed this issue 2026-06-20 03:54:55 +00:00
Sign in to join this conversation.
No milestone
No project
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
james/carol#144
No description provided.