Skip to content

Rebrand parent letter to CodeAI and migrate styling to MUI - #72979

Merged
Erin007 merged 5 commits into
stagingfrom
parent-letter-codeai-mui
Jun 8, 2026
Merged

Rebrand parent letter to CodeAI and migrate styling to MUI#72979
Erin007 merged 5 commits into
stagingfrom
parent-letter-codeai-mui

Conversation

@Erin007

@Erin007 Erin007 commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Trello card

https://trello.com/c/qcfo1JdI

Summary

  • Renamed every "Code.org" to "CodeAI" in the 13 parentLetter* keys in apps/i18n/common/en_us.json (per user direction: all occurrences, including the LMS "Launch CodeAI" tile label). The one exception is the code.org/athome URL-display in parentLetterStep2Details, which mirrors the real link target.
  • Swapped the header logo from logo.png to logo-codeai.svg.
  • Replaced the structural JSX (div/article/header/h1/p) with MUI <Box> / <Typography>, dropped the inline styles object and the color.teal import, and added a <ThemeProvider theme={CdoTheme}> wrap in the page entry so Typography picks up the design system type scale.
  • Kept native <ol>/<li> for the sign-in step lists — MUI <List>/<ListItem> is designed for app UI rows, not printed letters — and wrapped bare list-item text in <Typography>.
  • Removed the custom h1 { color: #8c52ba; ... } rule from the haml inline <style> block since MUI's MuiTypography-h1 class would override it silently. Kept the body max-width: 8.5in rule, which is the print-page constraint.

Notes for review

  • i18n divergence: other-language common/*.json parentLetter* entries still say "Code.org". Per apps/README.md, sending strings to CrowdIn is a separate engineer-triggered job.
  • Brand routing: the rename and logo swap are hardcoded — they don't go through Cdo::Brand. This was the user's explicit choice ("all occurrences"); if you want the parent letter to be brand-conditional later, the steady state would be to interpolate Cdo::Brand.legal_name into the strings and use Cdo::Brand.logo_filename(request) in the haml.

Test plan

  • yarn test:unit test/unit/templates/teacherDashboard/ParentLetterTest.jsx — 3 passing (1 new)
  • yarn run typecheck
  • ./tools/hooks/pre-commit
  • Manual print verification: as a teacher with a section, open /teacher_dashboard/sections/<section-id>/parent_letter, hit Print Preview, and compare the rendered/PDF output against a snapshot of the previous letter. Specifically check:
    • Headers (Why / Step 1 / Step 2 / Step 3 / Student Privacy) render with MUI's h1 styling and are not the old purple #8c52ba.
    • The CodeAI logo appears at the top of the letter in place of the old code.org logo.
    • Sign-in step lists still number correctly for each login type (email, picture, word, Google Classroom, Clever, LTI/Canvas).
    • The letter still fits within an 8.5in print width and breaks across pages cleanly.

🤖 Generated with Claude Code

* en_us.json: rename "Code.org" → "CodeAI" in all parentLetter* keys.
  The "code.org/athome" display text stays because it mirrors the real
  link target. Other locales will catch up via the normal CrowdIn flow.
* parent_letter.html.haml: swap logoUrl from logo.png to logo-codeai.svg
  and drop the custom h1 rule from the inline <style> block — MUI owns
  heading styling now. Keep the body max-width rule, which is the print
  page constraint.
* ParentLetter.jsx: replace div/article/header/h1/p with MUI Box and
  Typography. Wrap ol/li content in Typography where it was bare text;
  preserve native ol/li for the sign-in step lists since MUI <List> is
  designed for app UIs, not printed letters. Drop the inline styles
  object and the color.teal import.
* parent_letter.js: wrap the render in <ThemeProvider theme={CdoTheme}>
  so MUI Typography picks up the design system's type scale.
* ParentLetterTest.jsx: wrap renders via a renderWithTheme helper and
  assert the rendered letter says "CodeAI" but not "Code.org" (except
  the allowed "code.org/athome" URL display).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
"parentsAndStudents": "Parents and Students",
"parentLetterClever1": "Have your students log in to their Clever account at [www.clever.com]({cleverLink}) (click \"Sign in as a student\" at the top right)",
"parentLetterClever2": "Click on the Code.org logo on the Clever dashboard. The logo looks like this:",
"parentLetterClever2": "Click on the CodeAI logo on the Clever dashboard. The logo looks like this:",

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@carl-codeorg Is the rebrand work for platform integrations going to land at the same time as all of the other on-site work? I want to make sure this sentence still makes sense in the context of the parent letter.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The rebrand work for integrations is starting now but not landing all at once. For the Clever integration, we have to go through Clever support. The first thing to change will be the logos, so I expect that this will make sense.

Comment thread apps/i18n/common/en_us.json Outdated
"parentLetterGoogle2": "Sign in via the Google sign-in dialog",
"parentLetterHello": "Hello!",
"parentLetterIntro": "In my class, {studentName} is learning computer science on [Code.org]({homeLink}), a fun, creative platform for learning computer science and basic coding to create interactive animations, games, or apps. Your interest in what your child is learning is critical, and Code.org makes it easy to stay involved.",
"parentLetterIntro": "In my class, {studentName} is learning computer science on [CodeAI]({homeLink}), a fun, creative platform for learning computer science and basic coding to create interactive animations, games, or apps. Your interest in what your child is learning is critical, and CodeAI makes it easy to stay involved.",

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bethanyaconnor Should the text here also change to include artificial intelligence in the list of things the platform offers? I'd assume so but know there are marketing "rules" about how we talk about things now.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussed offline - let's change to "learning computer science and AI"!

</header>
);
};
const Header = ({logoUrl = '/shared/images/CodeLogo_White.png'}) => (

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bethanyaconnor or @MollyPeredo do we have a CodeAI logo to use here?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Erin007 Yes, I'll send it to you in Slack

<img
<Box
component="img"
src="/shared/images/clever_code_org_logo.png"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bethanyaconnor and @carl-codeorg we'll need an asset for the Clever CodeAI logo

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For Clever the current plan is to use the normal horizontal CodeAI logo. I don't believe we'll have any separate logos per integration.

@Erin007

Erin007 commented Jun 8, 2026

Copy link
Copy Markdown
Contributor Author
screencapture-localhost-studio-code-org-3000-teacher-dashboard-sections-1-parent-letter-2026-06-08-12_09_30

@Erin007
Erin007 requested review from a team, Nokondi and bethanyaconnor and removed request for a team June 8, 2026 16:30

@bethanyaconnor bethanyaconnor left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for picking this up!

@Erin007
Erin007 merged commit 16adc19 into staging Jun 8, 2026
8 checks passed
@Erin007
Erin007 deleted the parent-letter-codeai-mui branch June 8, 2026 17:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants