macOS: Release Notes Rebranding UX#2878
Conversation
There was a problem hiding this comment.
Stale comment
Injected PR Evaluation: Web Compatibility & Security
PR: macOS: Release Notes Rebranding UX (#2878)
Scope: 2 files, +12 lines — CSS-only changes inspecial-pages/pages/release-notes/. Noinjected/,messaging/, or API override changes.
Web Compatibility Assessment
File Lines Severity Finding special-pages/pages/release-notes/app/components/App.module.css18–23 info Adds .main button { border-radius: 999px !important; }for pill-shaped buttons. This is a first-party embedded special page (not injected into third-party sites), so API surface fidelity, prototype chain, and third-party script compatibility criteria do not apply. The!importantis documented as necessary to override sharedButtonper-platform radius (specificity up to 0-3-0).special-pages/pages/release-notes/app/components/App.module.css21 info .main buttonis a broad selector but safe here: the only buttons under.mainare sharedButtoninstances fromUpdateButton(Reload Summary,Retry Update,Restart To Update/Update DuckDuckGo).ErrorFallbackrenders no buttons.special-pages/pages/release-notes/app/components/ReleaseNotes.module.css204–208 info .updatesLinkaccent color now uses design-system tokens with explicit[data-theme="dark"]override. Statichref="https://duckduckgo.com/updates"— no page-derived URL construction.PR title vs. diff — info Title says "macOS" but the pill-button rule applies on every platform per the CSS comment. Consistent with applying rebranding uniformly; title may understate scope. No web compatibility errors or warnings.
Security Assessment
File Lines Severity Finding Entire diff — info No changes to injected/,captured-globals, messaging transports, message bridge, orpostMessage. Special pages run in a first-party embedded context with native messaging — outside the hostile third-party page threat model this review targets.ReleaseNotes.module.css204–208 info Link color uses static design-token CSS variables; no user-controlled values injected into styles. ReleaseNotes.js(unchanged)338 info External link remains hardcoded https://duckduckgo.com/updateswithtarget="_blank"— no dynamic URL construction orpostMessagewith*origin.Messaging schemas — info No new notify/request/subscribeschemas; existing handlers (browserRestart,retryUpdate,retryFetchReleaseNotes) unchanged. NonativeDataleakage risk introduced.No security errors, warnings, or critical findings.
Risk Level
Low Risk — CSS-only visual rebranding in a first-party special page; no injected runtime, API overrides, messaging, or security-boundary changes.
Recommendations
- (info) Visual smoke-test on macOS and Windows release-notes states (loading, update-ready, error) to confirm pill buttons render correctly against shared
Buttonvariants.- (info) If screenshot integration tests exist for release-notes, consider baseline updates for the accent link color and button radius — functional tests in
release-notes.spec.jsdo not assert visual styling.- (info) Optional: align PR title/description with the cross-platform pill-button scope if intentional.
Sent by Cursor Automation: Web compat and sec
[Beta] Generated file diffTime updated: Fri, 17 Jul 2026 19:50:57 GMT Apple
File has changed Integration
File has changed Windows
File has changed |
Dismissing stale approval — new commits pushed, awaiting Cursor re-review.
Build Branch
Static preview entry points
QR codes (mobile preview)
Integration commandsnpm (Android / Extension): Swift Package Manager (Apple): .package(url: "https://github.com/duckduckgo/content-scope-scripts.git", branch: "pr-releases/lantean/release-notes-updates")git submodule (Windows): git -C submodules/content-scope-scripts fetch origin pr-releases/lantean/release-notes-updates
git -C submodules/content-scope-scripts checkout origin/pr-releases/lantean/release-notes-updatesPin to exact commitnpm (Android / Extension): Swift Package Manager (Apple): .package(url: "https://github.com/duckduckgo/content-scope-scripts.git", revision: "1fec0e015421102fc8ff97f0802671cd303716a9")git submodule (Windows): git -C submodules/content-scope-scripts fetch origin pr-releases/lantean/release-notes-updates
git -C submodules/content-scope-scripts checkout 1fec0e015421102fc8ff97f0802671cd303716a9 |
There was a problem hiding this comment.
Stale comment
Injected PR Evaluation: Web Compatibility & Security
Re-assessed on synchronize (
83713e9). Prior warnings about cross-platform pill buttons and!importantare resolved in this revision.Web Compatibility Assessment
File Lines Severity Finding special-pages/pages/release-notes/app/components/App.module.css18–22 info macOS-only pill buttons via [data-platform-name="macos"] .main[data-theme] button.data-platform-nameis set ondocument.bodyinapp/index.js. Only affectsUpdateButtonsharedButtoninstances;ErrorFallbackhas no buttons.special-pages/pages/release-notes/app/components/App.module.css18–22 info Specificity 0-3-1correctly beats shared[data-platform-name="macos"] .button.lg(0-3-0) without!important— good maintainability.special-pages/pages/release-notes/app/components/ReleaseNotes.module.css204–208 info Accent link colors use design-system tokens with explicit dark-theme override. Applies on all platforms (not macOS-gated); acceptable for a first-party embedded page. special-pages/shared/styles/variables.css140 info Adds --border-radius-pill: 9999pxshared token. Inert until referenced; consistent with existing NTP usage.Scope note: Changes are confined to the release-notes special page (first-party embedded UI). They do not run in
injected/on third-party web pages, so API-surface, prototype-chain, and third-party-script compatibility categories are not applicable.No web-compatibility errors or warnings.
Security Assessment
File Lines Severity Finding — — — No injected/,messaging/,captured-globals, or message-bridge changes.special-pages/pages/release-notes/app/components/ReleaseNotes.module.css204–208 info Static design-token colors only; no page-derived or user-controlled CSS values. special-pages/pages/release-notes/app/components/ReleaseNotes.js338 info Static https://duckduckgo.com/updateshref unchanged (not in diff). No new messaging schemas ornativeDataexposure.No security errors, warnings, or critical findings.
Risk Level
Low Risk — CSS-only visual refresh in a first-party special page; no injected runtime, messaging, or API-override changes.
Recommendations
- Smoke-test (info): Verify macOS release-notes in light/dark — pill-shaped update/restart/retry buttons and accent-colored "What's new" link.
- Consistency (info):
.updatesLinkuses--ds-color-theme-default-*-accent-text-primarydirectly; considervar(--ds-color-theme-accent-text-primary, …)viatheme-mappings.css(as inText.module.css) for future theme overrides — optional, not blocking.Sent by Cursor Automation: Web compat and sec
Dismissing stale approval — new commits pushed, awaiting Cursor re-review.
There was a problem hiding this comment.
Injected PR Evaluation: Web Compatibility & Security
PR: macOS: Release Notes Rebranding UX (#2878)
Head: 7b6346144 (synchronize — new commit Wiring new Release Notes Colors since prior 83713e9 assessment)
Scope: 3 files, +32 lines — CSS only in special-pages/ (no injected/, messaging/, or runtime JS changes)
Web Compatibility Assessment
| File | Lines | Severity | Finding |
|---|---|---|---|
| (entire diff) | — | info | Changes are confined to the first-party release-notes special page embedded in DDG browsers. This code does not inject into arbitrary third-party web pages, so API surface fidelity, prototype-chain integrity, third-party script detection, and stack-trace exemption concerns do not apply. |
App.module.css |
11–32 | info | Page-scoped accent palette via CSS custom properties on .main / .main[data-theme="dark"]. Overrides design-system accent tokens locally without affecting other special pages or injected features. |
App.module.css |
37–46 | info | macOS pill buttons + accent recolor scoped to [data-platform-name="macos"] .main[data-theme] button[class]. data-platform-name is set on body in app/index.js; specificity 0-4-1 correctly beats the shared dark-mode --button-text override (0-4-0) without !important. |
App.module.css |
37 | warning | Selector targets all button[class] inside .main on macOS, not only accentBrand buttons (comment says "accentBrand" but selector is broader). Today every release-notes button is variant="accentBrand", so behavior is correct — but a future non-accent button would inherit pill radius and accent colors unintentionally. |
ReleaseNotes.module.css |
204 | info | Link color simplified to var(--ds-color-theme-accent-text-primary) (inherits from .main palette). Applies on all platforms via .main scope, while pill button styling remains macOS-only — appears intentional for the rebranded accent link treatment. |
variables.css |
140 | info | Adds shared --border-radius-pill: 9999px token. Definition-only; no side effects until referenced. |
No errors identified for third-party web compatibility.
Security Assessment
| File | Lines | Severity | Finding |
|---|---|---|---|
| (entire diff) | — | info | Zero changes to injected/, captured-globals.js, wrapper-utils.js, message bridge, messaging transports, or remote-config gating. No new attack surface in the hostile third-party page trust model. |
ReleaseNotes.module.css / ReleaseNotes.js |
204 / 338 | info | updatesLink href remains the static first-party URL https://duckduckgo.com/updates — no user-controlled URL construction or CSS injection vector introduced. |
App.module.css |
14–31 | info | Hardcoded hex accent values are static literals; no page-derived data interpolated into styles. |
| (entire diff) | — | info | No new notify() / request() message schemas, no nativeData forwarding risk, no postMessage, iframe access, or eval() usage. |
No warnings or critical issues identified.
Risk Level
Low Risk — CSS-only visual rebranding in a first-party embedded special page; no injected runtime code, browser API overrides, or security-boundary changes.
Recommendations
- (warning) Consider narrowing the macOS button selector from
button[class]to something like.accentBrand(or the hashed module class for that variant) so future non-accent buttons on this page are not unintentionally restyled. - (info) Visual smoke-test macOS light/dark pill buttons (hover/focus/active/disabled states) and accent link color on Windows/iOS to confirm the cross-platform link vs macOS-only button split matches design intent.
- (info) Update release-notes screenshot baselines if CI snapshot tests cover this page.
Automated assessment — Injected PR Evaluation: Web Compatibility & Security
Sent by Cursor Automation: Web compat and sec
| --border-radius-md: 8px; | ||
| --border-radius-sm: 6px; | ||
| --border-radius-xs: 4px; | ||
| --border-radius-pill: 9999px; /* fully rounded (pill/capsule) */ |
There was a problem hiding this comment.
Just for consistency:
| --border-radius-pill: 9999px; /* fully rounded (pill/capsule) */ | |
| --border-radius-full: 999px; |
| .main { | ||
| /* Release Notes accent palette (this page only): links use | ||
| accent-text-primary; buttons use accent-primary + accent-content-primary. */ | ||
| --ds-color-theme-accent-primary: #1074cc; |
There was a problem hiding this comment.
@jleandroperez Not sure we want the --ds-* prefix here. These specific names (--ds-color-theme-accent-primary, --ds-color-theme-accent-text-primary, etc.) are actual Design System tokens defined in shared/styles/theme-mappings.css, so redefining them locally inside .main overrides the real DS tokens for this subtree -> easy to break. Could we use page-local --theme-* names instead (e.g. --theme-accent-primary)?
That keeps these clearly scoped to Release Notes and avoids clobbering the DS tokens.


Asana Task/Github Issue:
Description
This PR applies the Rebranding UX on the macOS Release Notes:
accent-text-primaryin the bottom link (See what else we've been working on)Testing Steps
Screenshots
Checklist
Please tick all that apply:
Note
Low Risk
CSS-only, page-scoped styling on the macOS Release Notes UI with no logic, data, or auth changes.
Overview
Applies the macOS Rebranding UX to the Release Notes special page via scoped CSS only.
The Release Notes
.maincontainer now defines light/dark accent palette tokens (accent-primary,accent-text-primary, etc.) used on that page. On macOS only,accentBrandaction buttons (Retry / Reload-style controls) get pill corners via new shared--border-radius-pilland have their--button-*colors remapped to that palette, including a higher-specificity selector so dark-mode button text overrides don’t win.The footer “See what else we've been working on” link (
.updatesLink) now usesaccent-text-primaryinstead of inheriting the default link color.Reviewed by Cursor Bugbot for commit 7b63461. Bugbot is set up for automated code reviews on this repo. Configure here.