TeachKit project

TeachKit / Design system

Documentation v0.1 · Released product

Design system contents

Foundations

Layout and responsive behavior

Preserve the distinct learner, discovery and creator structures while sharing course identity.

On this page

Composition

Composition
Source areaLayout contractPhone behavior
SidebarLayoutmax-w-5xl; column to md:flex-rowDesktop sidebar replaced by SidebarNavDropdown
VideoHeaderSeparate mobile and desktop learning compositionsMobile lesson selector uses its own expanded state
CourseCardRelative aspect-video coverGrid parent owns columns and card width
PublicCourseViewCourse header, about, lesson list, signupFollow source responsive composition; enrollment context remains visible
Creator pagesActual section-specific forms within SidebarLayoutSection selector becomes a dropdown; fields remain local to the section

Layout rules

  • Use actual components at their native widths; do not stretch a compact menu’s parent to the width of a screenshot board.
  • Keep media at aspect-video; do not crop a video player to imitate a card cover.
  • Keep the dropdown attached to its trigger and include the entire menu in capture bounds.
  • Review long titles, expanded lists, media loading and field labels at 390px and at 200% zoom.
  • CourseEditLayout is a separate older wrapper with a fixed flex composition; do not assume it inherits SidebarLayout’s phone dropdown.

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.

Learner · Screen · Light · Desktop · 2880 × 2000 px
Learner · Screen · Light · Desktop · Full Page · 2880 × 2614 px
Creator Video Lessons · Screen · Light · Desktop · 2880 × 2000 px
Creator Video Lessons · Screen · Light · Desktop · Full Page · 2880 × 4244 px
Sidebar Menu · Component detail · Light · Desktop · 832 × 218 px
Sidebar Menu · Component detail · Light · Desktop · Open · 832 × 468 px

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