Skip to content

Feature: UI/UX Polishing for Classroom #609

Description

@NewtonLC

This issue will be updated continuously with UI/UX improvement tasks.

We had a meeting with Mrugesh, who gave feedback on updating the app's visuals to better align with freeCodeCamp's design language. Here's what I plan to work on regarding that:

1. Lack of Teacher onboarding instructions

Currently, the home page doesn't explain how to use the app. The landing page should guide the user on how to use the app, create a classroom, connect students to it, etc.
Image

(PR #612) 2. Redesign "Create Class" and "Edit Class" modals.

Here are some issues with them:

(PR #610) 3. Redesign Class cards in the Classes page.

Issues:

  • Classroom titles and descriptions should wrap or cut off properly, since there isn't a text limit to those fields.
  • Add a character limit to the title and description fields.
  • From the Classes page, it's difficult to see which certifications are in which class. We should add a tooltip on the side that shows the user which certifications are part of that class.
Image

4. Classroom page Improvements

The Classroom page doesn't display information about that classroom, such as the name, description, certification list, etc. We should look into how apps like Google Classroom, Canvas, Schoolloop, handle their teacher dashboards for reference.

5. Align overall visual design with freeCodeCamp's design language

Beyond the individual component fixes above, the app as a whole should feel visually consistent with freeCodeCamp's own site — colors, typography, spacing, and component styling should match fCC's design system rather than diverging piecemeal per page.

  • PR refactor: Synchronize FreeCodeCamp CSS Styling #604 already handles CSS synchronization for several components; this task is the umbrella for extending that work app-wide.
  • Audit remaining pages/components for style drift from freeCodeCamp's palette, font stack, and spacing scale.
  • Reference freeCodeCamp's main site and existing design tokens where available, rather than reinventing values.

Note: items 2, 3, and 5 will be delivered together in a single combined PR rather than split across separate PRs (#612, #610, #604), so the full design overhaul is visible in one diff against the old design.

Activity

  1. self-assigned this
    on Aug 4, 2026
  2. NewtonLC commented on Aug 5, 2026

    @NewtonLC
    ContributorAuthor

    Comment regarding issue 2: Suggestions for fixes

    1. Right now the "Create Class" modal is in ClassInviteTable.js and the "Edit Class" modal is just in modal.js. We should definitely created a shared component that both files will import and use, just to avoid this type of code duplication.
    2. Right now when you edit a class, the current title and description are just used as the placeholder in the text field, so anything you type will automatically replace it. We should make the value of the text field pre-filled when you press Edit Class, so that it is easier to make simple edits
    3. Right now the gray screen of the Modal is not covering in the Edit Class, even though it uses the same CSS as the Create Class. We should try rendering the modal overlay through a React portal (ReactDOM.createPortal) straight to document.body, instead of inline wherever the triggering component happens to live in the tree.
    4. Right now, the certifications dropdown gets clipped by the modal panel's scroll boundary and is only slightly visible. The fix is to have the dropdown render as a floating overlay above the panel, rather than being confined inside its scrollable area.
    5. Revisit yakupafsin's PR for limiting no-certification classes. Apply that change to the Class Modal shared component instead of in both the Create and Edit class modals separately.
  3. NewtonLC commented on Aug 10, 2026

    @NewtonLC
    ContributorAuthor

    Suggestions regarding issue 1:

    • The landing page should state what your role is if you have a role (Student, Teacher, Admin)
    • The landing page should give you student/teacher onboarding instructions if you're a teacher or don't have a role. If you're a student, it should just give you student onboarding instructions
  4. NewtonLC commented on Sep 27, 2026

    @NewtonLC
    ContributorAuthor

    The combined PR for this issue is up: #616. It covers all five items:

    #604, #607, #610, and #612 are merged into that branch and can be closed once it lands. Classes without certifications remain allowed (#552 and #611 not included).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions