TeachKit project

TeachKit / Design system

Documentation v0.1 · Released product

Design system contents

Components

Lesson and resource ordering

Use stable item identity and the existing sortable infrastructure to preserve intentional course order.

On this page

Purpose and usage

Use stable item identity and the existing sortable infrastructure to preserve intentional course order.

Anatomy

Anatomy
PartContract
Sortable wrapperNode ref, attributes and transform
HandleListeners supplied to child
ContainerDndContext and SortableContext own sorting strategy

Variants and configuration

Variants and configuration
Input or variantBehavior
idStable lesson/resource identity
childrenReceives listeners and isDragging
ParentOwns arrayMove and persistence

State coverage

State coverage
StateImplemented behavior
At restOriginal course sequence
DraggingTransform and transition supplied by dnd-kit
CommittedParent updates order

Interaction and composition

  • Never derive persistent identity solely from the displayed index.
  • Keep action completion index migration in mind when reordering actions.
  • Verify keyboard sensors and touch behavior in the actual parent; a wrapper alone does not establish an equivalent keyboard flow.

Accessibility and readiness

The video-lessons page explicitly configures PointerSensor. SortableLesson forwards attributes and listeners, but complete keyboard and non-drag alternatives need review before a team can claim accessible reordering. No live course order is changed.

Source references

Source references
FileResponsibility
src/components/SortableLesson.tsxLesson transform and drag listeners
src/components/LessonItem.tsxNested resource ordering

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.

Creator Video Lessons · Screen · Light · Desktop · 2880 × 2000 px
Creator Video Lessons · Screen · Light · Desktop · Full Page · 2880 × 4244 px

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