Rework the client's look and several flows around the "Confetti" design
direction:
- Themes are now palette x mode (Confetti / Meadow in Auto, Light, Dark),
with six semantic party hues, Bricolage Grotesque / Figtree / JetBrains
Mono, rounder radii and card/pop shadows. Legacy theme ids are normalized.
- Floating sidebar with colored section tiles and a theme toggle; floating
pill bottom nav on phones.
- Dashboard: today-led hero, colored stat tiles, a derived "Coming up"
schedule (palpate, nest box, due, wean, birthdays), gestation tracker,
recent litters with kit dots and a for-sale strip.
- Coat-colored lop placeholders for rabbits without photos.
- Bracket pedigrees (sire side blue, dam side pink) on rabbit detail and in
Add Rabbit, plus one-tap "Quick pick" suggested parents.
- Rabbit detail hero with fact tiles; litter milestone strip; restyled
herd, litters, settings, auth screens and shared controls.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A - accessibility
- on-accent-warm text token (For Sale badge, flags) and darker Sunset/Ocean
colors to meet WCAG AA contrast
- 44px touch targets for Herd and Shows filters on phones
- status badge on non-active Herd grid cards; drop redundant View Herd
B - consistency
- FormControls (Field, FieldGroup, Input, Select, Textarea, FileInput,
Segmented) used by every form, with labels wired to their inputs
- ConfirmDialog + useConfirm replace window.confirm and hand-built modals
- ErrorPanel with Try Again for failed lists; LoadError built on it
C - layout
- ActionMenu: rabbit header is Edit, Status, More
- Herd folds Status/Sort/view behind a Filters button on phones
- Dashboard status counts as a compact second row
- Shows list as stacked cards below xl
- SVG timeline icons instead of emoji
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pedigree scanning
- Replace the Tesseract OCR pipeline with server-side Claude vision
(claude-opus-5-5, structured output) that reads any layout, printed or
handwritten, into the subject + 14 ancestors with per-field uncertainty
- New POST/GET /api/pedigree-scan; enabled by ANTHROPIC_API_KEY in .env
- Add Rabbit step 1: "Scan a pedigree" card, photo review panel, "Check"
badges on uncertain ancestors, sire/dam herd matching
- Remove vendored Tesseract assets and OCR libs; bump SW cache to v2
- nginx /api read timeout raised to 180s for slow scans
Ancestors
- Manual ancestors default to 3 lbs and Unknown DOB (legacy 0 lbs read as
3); weight/DOB shown in the tree and on Review
- On save, ancestors entered as text become linked rabbit records
(status Other), deduped by ear number or name + farm
Existing rabbits
- Adding a rabbit that already exists tops up the existing record: fills
empty fields, adds missing ancestors, promotes reference ancestors; never
overwrites. Review step warns beforehand
- Delete button on rabbit detail; delete snapshots full ancestor JSON to
offspring, clears litter links and timeline events, and is blocked while
the rabbit has show entries
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Pedigree renders as stacked Sire/Dam sections below 1280px instead of a
sideways-scrolling tree; larger touch targets in the ancestor popup
- Step lives in ?step= so the back gesture moves between steps; sticky
Back/Next/Save bar and a clickable stepper; beforeunload guard
- Steps stay mounted, fixing pedigree entries lost when going back
- Review shows formatted values, hides empty rows, per-section Edit links
- Failed photo upload after create now lands on the new rabbit with a
notice instead of allowing a duplicate save
- Details form: primary fields first, secondary fields collapsible on
Add, name error only after a Next attempt; "Use as color name" button
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Mobile bottom nav: icons, 56px targets, safe-area padding, and a
"More" menu so Genetics/Shows/Settings are reachable on phones
- Sticky sidebar, max-width content column, min-w-0 so wide children
(pedigree tree, tables) scroll in place instead of widening the page
- PageHeader owns no gutter and stacks actions on small screens; pages
share one flex/gap structure and a consistent loading header
- 16px inputs on mobile to stop iOS focus zoom; disabled button styling
- Remove placeholder "0 litters / 0 kits" on rabbit cards, duplicate
name on Rabbit Detail; proper Genetics placeholder and 404 pages
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>