Skip to content

Redesign the pathway builder: warm, cohesive visual identity + better streaming flow - #61

Merged
adamstankiewicz merged 10 commits into
mainfrom
feat/pathway-redesign
Aug 15, 2026
Merged

Redesign the pathway builder: warm, cohesive visual identity + better streaming flow#61
adamstankiewicz merged 10 commits into
mainfrom
feat/pathway-redesign

Conversation

@adamstankiewicz

Copy link
Copy Markdown
Owner

Summary

A full visual and structural redesign of the teacher-facing pathway builder (/), bringing it up to the same warm, playful identity /learn already established for students — while keeping the calm, professional register a teacher's workspace needs.

  • Intake: topic is now the single focused first question; grade, submit, and the specificity hint reveal progressively once a topic exists; the optional teacher-note field moved behind a real + Add detail disclosure instead of always being visible.
  • Visual identity: adopted /learn's violet/pink/amber palette, spring motion (motion/react), and pressed-button physicality for primary CTAs — as an ambient wash rather than full-bleed saturation, since this page is read for minutes, not tapped through once. Added Lexend as a second, purpose-grounded display typeface (research-backed for reading proficiency), scoped locally to this page only.
  • Streaming flow: the document now renders as a skeleton the instant a teacher submits, filling in section by section as events arrive — outcomes and steps hold their place with skeletons so anchor-derived sections (prior knowledge, also touches) never appear out of backward-design order. The progress indicator is a segmented strip with live stage copy instead of an always-open technical log.
  • "The pathway" thread: steps are a genuine ordered sequence, so they're now connected by a real vertical thread with a color-matched waypoint dot per step — the one structural signature device this page earns, not decoration. Color is concentrated at the dot and the step's pill badge only; card borders and the connecting line stay neutral to avoid redundant signal.
  • Pending-step loading state: shows a centered, stage-colored icon and specific copy naming the actual widget kind coming ("Building a swipe activity…") instead of a generic grey box, using widgetKind which is already known before the spec arrives.
  • Completion: replaced the quiet collapsed-accordion-plus-separate-box with one connected "Pathway ready" celebration strip (steps built · standard matched · time, plus a lightweight emoji-burst), with the share link folded in as the primary CTA.
  • Restyled AssignToStudents and LessonPlanUpload to match, without touching their logic.
  • Merged main twice along the way (upload folded back into the builder, then lesson-plan excerpts shaping generation) and adapted both to the new design.

Known follow-up

main has since added already-assigned-student tracking and a parentSessionId prop to AssignToStudents.tsx (not in this branch yet) — that file will show a merge conflict against current main and needs one more fold-in pass before merging. Everything else here is clean against main as of this PR.

Test plan

  • tsc --noEmit, eslint, and next build all clean
  • Full generation run exercised in-browser (Playwright) in both light and dark mode: intake → streaming skeleton → step thread → pending states → completion celebration
  • Verified existing functionality intact: click-to-edit, step regeneration, Stop mid-stream, upload → topic chips → auto-fill, ShareLink copy + stats, roster assignment
  • Not tested: the main-side already-assigned-student flow (post-dates this branch, see Known follow-up)

🤖 Generated with Claude Code

@vercel

vercel Bot commented Aug 15, 2026

Copy link
Copy Markdown

Deployment failed for project interactive-learning-experiences with the following error:

Resource is limited - try again in 24 hours (more than 100, code: "api-deployments-free-per-day").

Learn More: https://vercel.com/variantly?upgradeToPro=build-rate-limit

Resolves conflicts in AssignToStudents.tsx by combining main's new
functionality (already-assigned tracking, parentSessionId threading,
richer completion messaging) with this branch's visual restyle.
@vercel

vercel Bot commented Aug 15, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
interactive-learning-experiences Error Error Aug 15, 2026 6:40pm

…sign)

- useTelemetry.ts: move the two "always latest" ref assignments into an
  effect instead of the render body (react-hooks/refs)
- PathwayWalkthrough.tsx: reset widgetDone by adjusting state during
  render (same idiom ActivityTrail already uses) instead of an effect
  (react-hooks/set-state-in-effect)
- mcp/shell.tsx: pass the stepIndex WidgetTelemetryProvider now requires
  (0 is correct here, not a placeholder — this shell only ever renders
  one standalone widget, never a multi-step pathway)

Verified all three were already broken on origin/main before this branch
touched anything, by checking it out in a scratch worktree and running
the same lint/build commands.
@adamstankiewicz
adamstankiewicz merged commit 834f5fc into main Aug 15, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant