TeachKit project

TeachKit / Design system

Documentation v0.1 · Released product

Design system contents

Components

Lesson navigation and availability

Show the sequence of lessons with clear duration, activity and completion context. A collapsed preview and linked learner navigation serve different tasks.

On this page

Purpose and usage

Show the sequence of lessons with clear duration, activity and completion context. A collapsed preview and linked learner navigation serve different tasks.

Anatomy

Anatomy
PartContract
SequencePosition and title
DurationSource helper accepts supported duration shapes
State cueActive, locked and completed flags
ExpandCompact previews can reveal more lessons

Variants and configuration

Variants and configuration
Input or variantBehavior
viewcompact or expanded
NavigationlinkLessons and courseIdSlug
CollapsecollapseAfter defaults to 5; applicable to compact nonlinked previews
ScrollinitialScrollLessonId and scrollSignal
MasksfadeBottom and observed scroll boundaries

State coverage

State coverage
StateImplemented behavior
Compact previewCan collapse longer courses
ExpandedReveals the preview list
LinkedLearner destination provided by parent
LockedAvailability represented from supplied flags
Active/completedDistinct row state from parent

Interaction and composition

  • Preserve actual lesson order.
  • Keep total consistent with the source lesson count.
  • Pass availability from authorization and enrollment logic rather than making a visual lock the security boundary.
  • Inspect masks for obscured controls at phone widths.

Accessibility and readiness

Source uses native links and buttons, but complete keyboard, current-page and screen-reader discovery need review. Demo locked/completed flags are specimen states; actual course content and order remain unchanged.

Composition example

<LessonList lessons={lessons} total={lessons.length}
  linkLessons courseIdSlug={courseSlug} />

Source references

Source references
FileResponsibility
src/components/courses-public/shared/LessonList.tsxCompact/expanded rows, scrolling and masks
src/utils/formatDuration.tsDuration normalization

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.

Lesson List · Component detail · Light · Desktop · 1920 × 866 px
Lesson List · Component detail · Light · Desktop · Expanded · 1920 × 2926 px
Learner · Screen · Light · Desktop · 2880 × 2000 px
Learner · Screen · Light · Desktop · Full Page · 2880 × 2614 px

Source audit: 2026-10-07 · Revision d8cf23d0a329 · Documentation v0.1