Design system contents

Components

Course reviews

Learner feedback and teacher moderation have separate surfaces.

On this page

Purpose and composition

The learner review dialog asks for a rating and comment after course completion. The teacher review collection controls how submitted feedback is presented.

Anatomy

  • Completion prompt
  • Five rating buttons
  • Comment textarea
  • Cancel / submit and error text
  • Teacher review cards and moderation setting

Configuration and variants

Configuration and variants
Input or variantContract
Learner eligibilityAll lessons completed, non-owner, and no submitted review.
SubmissionSanitized comment and rating are sent to the course review endpoint.
ModerationTeacher review controls determine public display; they are not edits to the learner’s words.

States and feedback

Pending submission disables actions; failure stays visible; success shows thanks. The reference dialog is filled but never submits to a live service.

Interaction and responsive behavior

Escape and backdrop click close the learner dialog. Teacher review browsing uses separate review components.

Accessibility and known limits

The learner dialog has dialog/aria-modal semantics and a labeled heading, but lacks an implemented focus trap and restoration. Its dark-mode gold submit button fails measured text contrast.

Source references

Source references
FileResponsibility
src/components/courses-public/logged-in/PrivateCourseView.tsxLearner review flow
src/app/dashboard/reviews/page.tsxTeacher moderation
src/components/reviews/ReviewCard.tsxReview presentation

Interface examples

Native TeachKit interfaces with fictional course, account, and learner records. Service responses and media are isolated demonstrations; no customer data or live changes. Captured at 2× resolution or higher. Select an image to inspect it full size.

Reviews · Featured section · Light · Desktop · 2448 × 926 px
Review Dialog · Component detail · Light · Desktop · Open · 1920 × 1596 px

Source audit: 2026-10-22 · Revision 903bbf05ca9d · Documentation v2.0.0