Components
Application navigation and identity
Keep discovery, creator actions, profile context and onboarding reachable from the shared application shell.
On this page
Purpose and usage
Keep discovery, creator actions, profile context and onboarding reachable from the shared application shell.
Anatomy
| Part | Contract |
|---|---|
| Brand | TeachKit identity |
| Primary destinations | Role-appropriate navigation |
| Course creation | Create or reuse a draft via API |
| Account menu | Session context and actions |
| Phone menu | Separate expanded mobile state |
Variants and configuration
| Input or variant | Behavior |
|---|---|
| Session | next-auth context |
| Subscription | Source access hook and optional gating configuration |
| Onboarding | User/course-derived plus manual progress |
State coverage
| State | Implemented behavior |
|---|---|
| Teacher | Course creation and editing context |
| Student | Learner destinations |
| Phone | Mobile menu composition |
| Draft exists | Creation can reuse existing draft |
Interaction and composition
- Keep actual role checks and backend authorization outside specimen fixtures.
- Do not expose student or admin personal records to fill navigation.
- Capture using a simulated owner session without authentication secrets.
Accessibility and readiness
Inspect icon-only control names, expanded state, outside dismissal, mobile focus and navigation reading order. Capture-only API responses do not test authenticated sessions, draft creation or sign-out.
Source references
| File | Responsibility |
|---|---|
| src/components/MainNav.tsx | Role-aware desktop and phone navigation |
| src/components/Footer.tsx | Site footer |
| src/components/OnboardingBar.tsx | Persistent creator guidance |
Examples from the app
Actual TeachKit UI with Thomas McGee’s course content. Session, progress and connection specimens are simulated; no student data or live changes. Captured at 2× resolution or higher. Select an image to inspect it full size.
Related topics
Source audit: 2026-10-07 · Revision d8cf23d0a329 · Documentation v0.1