Repository navigation
Bump smoot-design for the outlined chip fix, keeping the homepage trending chips unchanged - #4136
Conversation
There was a problem hiding this comment.
Summary
Trending search chips now retain readable dark text across hover states, while the frontend adopts an updated Smoot design-system prerelease.
Key Changes
- Updates Smoot design-system dependencies to prerelease
0.0.0-8f8796b. - Applies dark hover text to filled trending chips.
- Applies dark hover text to outlined trending chips.
All Relevant File Changes (click to expand)
- frontends/main/package.json: Updates the application’s Smoot design-system dependency.
- frontends/main/src/page-components/HeroSearch/HeroSearch.tsx: Adjusts hover text colors for trending chip variants.
- frontends/ol-components/package.json: Updates the shared components’ Smoot design-system peer dependency.
- yarn.lock: Resolves the new Smoot design-system version and updated dependency checksums.
💬 Feedback & Commands
Share feedback on my comments with 👍 👎 — I'll stop raising issues you push back on. Think I missed something? Adjust my sensitivity →
5 things I can do →
#optibot review— I'll re-review your latest changes (incremental)#optibot full review— I'll re-review the entire PR from scratch#optibot fix— I'll apply my suggested fixes to your code#optibot compliance— I'll run a compliance check on your changes#optibot release notes— I'll write up release notes for your production release
💡 Tip: I can audit every dependency change before it reaches main — one compromised package can take down your entire system. Try Supply Chain Agent.
- 🔄 re-review this PR
OpenAPI ChangesNo changes detected Unexpected changes? Ensure your branch is up-to-date with |
There was a problem hiding this comment.
Summary
The frontend now uses a newer Smoot Design prerelease, bringing updated design-system behavior. Trending search chips also retain the intended dark text color across hover states.
Key Changes
- Upgrades Smoot Design dependencies to prerelease build
0.0.0-8f8796b - Ensures filled and outlined trending chips use consistent hover text colors
All Relevant File Changes (click to expand)
- frontends/main/package.json: Updates the Smoot Design dependency to a prerelease build
- frontends/main/src/page-components/HeroSearch/HeroSearch.tsx: Sets dark hover text for trending chips
- frontends/ol-components/package.json: Updates the Smoot Design peer dependency
- yarn.lock: Resolves the new Smoot Design package and updated dependency checksums
💬 Feedback & Commands
Share feedback on my comments with 👍 👎 — I'll stop raising issues you push back on. Think I missed something? Adjust my sensitivity →
5 things I can do →
#optibot review— I'll re-review your latest changes (incremental)#optibot full review— I'll re-review the entire PR from scratch#optibot fix— I'll apply my suggested fixes to your code#optibot compliance— I'll run a compliance check on your changes#optibot release notes— I'll write up release notes for your production release
💡 Tip: I can audit every dependency change before it reaches main — one compromised package can take down your entire system. Try Supply Chain Agent.
There was a problem hiding this comment.
🔵 Needs a closer look
Final approval should wait until the prerelease is replaced with the required published semantic release and that version is validated.
No open issues 🎉
What changed in this PR
Updates smoot-design to a prerelease that darkens outlined chip text on topic and program pages while preserving the homepage trending chips’ existing appearance.
Changes:
- Aligns the application dependency, shared-component peer dependency, and lockfile on
0.0.0-8f8796b. - Explicitly preserves Dark Gray 1 hover text for both homepage trending chip variants.
| File | Description |
|---|---|
yarn.lock |
Locks the prerelease package and matching workspace references. |
frontends/ol-components/package.json |
Aligns the exact smoot-design peer dependency. |
frontends/main/src/page-components/HeroSearch/HeroSearch.tsx |
Pins trending chip hover text to its existing color. |
frontends/main/package.json |
Updates the application’s smoot-design dependency. |
Review effort: Balanced
| @@ -188,6 +188,7 @@ const TrendingChip = styled(ChipLink)(({ theme, variant }) => [ | |||
| "&:hover": { | |||
| backgroundColor: `${theme.custom.colors.lightGray2} !important`, | |||
| borderColor: theme.custom.colors.silverGray, | |||
There was a problem hiding this comment.
Non-blocking nit: this borderColor never takes effect. smoot's &.MuiChip-clickable:hover rule (0,3,0) beats this &:hover (0,2,0) and sets silverGrayDark, so the actual hover border is silverGrayDark, not silverGray. You mention this in the description; it's the same kind of silently overridden declaration this PR just fixed for color on line 181.
Agree with not changing the homepage's look here. Could we make the code match what renders, so nobody later assumes this line works? Either:
| borderColor: theme.custom.colors.silverGray, | |
| borderColor: `${theme.custom.colors.silverGrayDark} !important`, |
(no visual change, since it's what renders today), or delete the line, or add a short comment noting smoot overrides it.
8f8107f to
85e9aa9
Compare
On smoot 6.38.0 the hover text on the homepage's trending chips is smoot's outlined/outlinedWhite hover colour, Dark Gray 1: smoot's `.MuiChip-clickable:hover` rule (specificity 0,3,0) outranks TrendingChip's `&:hover` (0,2,0), which is also why its background and border overrides need `!important`. The Dark Gray 2 that TrendingChip declared for outlinedWhite never applied, and Explore All (outlined) declared none. smoot's chips are moving to Dark Gray 2 to match the design system's Chips component, but the homepage's trending pills are a separate design. Setting Dark Gray 1 here with `!important` keeps them as they are on either smoot. Measured on local dev against both smoot 6.38.0 and a build with the chip change: every computed colour, border, background, padding and font on all six chips, at rest and on hover, is identical to today. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6.39.1 is 6.39.0 plus mitodl/smoot-design#279 and nothing else: outlined and outlinedWhite chips draw Dark Gray 2 text, and the close icon sits 4px from the label. ol-components declares smoot as an exact-version peer, so it moves with main. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
85e9aa9 to
3c3744c
Compare
What are the relevant tickets?
Note
Update smoot-design to a semantic release before merging
Description (What does it do?)
Bumps smoot-design to 6.39.1, which carries mitodl/smoot-design#279 and moves outlined chips to the design's Dark Gray 2 text, and keeps the homepage's trending chips exactly as they are.
Implementation details
.MuiChip-clickable:hoverrule (specificity 0,3,0) outranksTrendingChip's&:hover(0,2,0), the same reason its background and border overrides already carry!important. So the Dark Gray 2 thatTrendingChipdeclared foroutlinedWhitehover never applied, and Explore All (outlined) declared none.color: darkGray1 !importanton both variants' hover. On smoot 6.38.0 this changes nothing; on 6.39.1 it keeps today's colour.ol-componentsdeclares smoot as an exact-version peer, so it's bumped alongsidemain.Screenshots (if appropriate):
Before:
mainwith smoot 6.38.0. After: this branch with0.0.0-8f8796b, the prerelease of #279; 6.39.1's theme is identical to it.Homepage trending chips — (UNCHANGED)
Topics page sub-topic chips — darker text
Program page label — darker text
Contract admin status badges — unchanged
How can this be tested?
main, not to near-black./topics/: the sub-topic chips' text is darker than onmain, at rest and on hover, at desktop and mobile widths./programs/program-v1:MITxT+SCM: the label above the title is darker.Agent-Run Checks
main+ 6.38.0 vs this branch +0.0.0-8f8796b(the prerelease of Distinguish deps vs devDeps + make each package.json specify own dependencies #279;src/components/ThemeProvider/is unchanged between it and 6.39.1):rgb(64, 70, 76)→rgb(33, 35, 38); borders, fills and sizes unchanged.rgb(33, 35, 38).Additional Context
mainis already on 6.39.0 (Mount the flag-gated Contact Us launcher #4139), and 6.39.1 is 6.39.0 plus fix: match outlined chips' text and close icon to the Chips design smoot-design#279 only, so this bump carries nothing but the chip change.TrendingChip'soutlinedhover also declares asilverGrayborder that never applies (smoot'ssilverGrayDarkwins, before and after). I left it, since fixing it would change the homepage.🤖 Co-authored with Claude Code