Front-End Reference

Student Runway

The complete consumer app as a responsive component system — every screen, built mobile-first with a desktop sidebar layout. Semantic, tokenised, and structured for a React conversion.

47 screens 40+ components 1 breakpoint

Onboarding

Pre-account. No sidebar, no tab bar — the shell doesn't exist yet.

Binder

The portfolio. Classes, work samples, and the AI-assisted entry flow.

Library

Documents. The clearest case for a different desktop experience.

Compliance

State requirements, evidence matching, and the two-level dismissal model.

Export

Three document types, the transcript chain, signing, and delivery.

Student & NCAA

Per-student settings and the optional NCAA eligibility tracker.

Partners

The opt-in ladder consent model. Nothing shared until the parent taps.

Pricing

Free vs Family Annual, the conversion moment, and plan management.

Settings & account

Account-scoped. Everything set during onboarding gets a permanent home here.

Empty states

What a brand-new account actually sees. Each teaches the next step rather than reporting emptiness.

Responsive behaviour

One breakpoint at 768px. Resize your browser across it.

Mobile < 768px

Single column, full width. Bottom tab bar. Upload and Scan buttons. Optimised for quick entry — adding a class, checking a grade.

Desktop ≥ 768px

Sidebar navigation, wider content, left-aligned headers. Drag-and-drop upload, card grids, document-width transcript. Optimised for portfolio work.

Screens marked change behaviour at the breakpoint, not just layout.

Multi-student model: the Dashboard is account-level. Every other tab operates on one active student, changed via the StudentSwitcher — a bar under the header on mobile, a "Viewing" block above the sidebar nav on desktop. The active student persists across tab changes, so it belongs in app state, not the route.

Structure

No build step. Open any file directly, or serve the folder.

css/ tokens.css Design tokens — colours, type, spacing, radius base.css Reset, typography, responsive app shell components.css BEM components, one block per React component data/ students.json Student + account prop contracts classes.json Class records, school years, enums plans.json Plan definitions, usage, conversion triggers assets/ Real image files (no base64) _build/ Generator scripts (delete in React) *.html One file per screen
For the developer: every component block in components.css is commented with the React component name and the props it takes. Each HTML file opens with a comment giving the route, the data source, and the component tree. The JSON files in data/ are the prop contracts. Repeated elements are written identically so the props are unambiguous. Start with README.md.