peregrine/web
pyr0ball f3ce46e252 feat(web): implement design spec — peregrine.css, sidebar nav, HomeView
Applies the full design spec from circuitforge-plans/peregrine/2026-03-03-nuxt-design-system.md:

CSS tokens:
- Falcon Blue (#2B6CB0 / #68A8D8 dark) — was incorrectly using forest green
- Talon Orange (#E06820 / #F6872A dark) with --app-accent-text dark navy (never white)
- Full pipeline status token set (--status-pending/approve/reject/applied/synced/...)
- Match score tokens, motion tokens, type scale tokens
- Dark mode + hacker mode overrides

AppNav: sidebar layout (replaces top bar)
- Desktop ≥1024px: persistent sidebar with brand, links, hacker-exit, settings footer
- Mobile <1024px: bottom tab bar with 5 primary destinations
- Click-the-bird easter egg (9.6): 5 rapid clicks → ruffle animation
- Heroicons via @heroicons/vue/24/outline

App.vue:
- Skip-to-content link (a11y)
- Sidebar margin-left layout (desktop) / tab bar clearance (mobile)

HomeView: full dashboard implementation
- Pipeline metric cards (Pending/Approved/Applied/Synced/Rejected) with status colors
- Primary workflow buttons (Run Discovery, Sync Emails, Score Unscored) + sync banner
- Auto-enrichment status row
- Backlog management (conditionally visible)
- Add Jobs by URL / CSV upload tabs
- Advanced/danger zone in collapsible <details>
- Stoop speed toast easter egg (9.2)
- Midnight mode greeting easter egg (9.7)

WorkflowButton component with loading spinner, proper touch targets (min-height 44px)
Pinia jobs store (setup form) with counts + system status

Build: clean 2.28s, 0 errors
2026-03-17 22:00:42 -07:00
..
src feat(web): implement design spec — peregrine.css, sidebar nav, HomeView 2026-03-17 22:00:42 -07:00
.gitignore feat(web): Vue 3 SPA scaffold with avocet lessons applied 2026-03-17 21:24:00 -07:00
index.html feat(web): Vue 3 SPA scaffold with avocet lessons applied 2026-03-17 21:24:00 -07:00
package-lock.json feat(web): Vue 3 SPA scaffold with avocet lessons applied 2026-03-17 21:24:00 -07:00
package.json feat(web): Vue 3 SPA scaffold with avocet lessons applied 2026-03-17 21:24:00 -07:00
tsconfig.app.json feat(web): Vue 3 SPA scaffold with avocet lessons applied 2026-03-17 21:24:00 -07:00
tsconfig.json feat(web): Vue 3 SPA scaffold with avocet lessons applied 2026-03-17 21:24:00 -07:00
tsconfig.node.json feat(web): Vue 3 SPA scaffold with avocet lessons applied 2026-03-17 21:24:00 -07:00
uno.config.ts feat(web): Vue 3 SPA scaffold with avocet lessons applied 2026-03-17 21:24:00 -07:00
vite.config.ts feat(web): Vue 3 SPA scaffold with avocet lessons applied 2026-03-17 21:24:00 -07:00