Skip to content

macOS: Release Notes Rebranding UX#2878

Open
jleandroperez wants to merge 3 commits into
mainfrom
lantean/release-notes-updates
Open

macOS: Release Notes Rebranding UX#2878
jleandroperez wants to merge 3 commits into
mainfrom
lantean/release-notes-updates

Conversation

@jleandroperez

@jleandroperez jleandroperez commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Asana Task/Github Issue:

Description

This PR applies the Rebranding UX on the macOS Release Notes:

  1. Buttons (Retry / Reload) must have rounded corners
  2. We're also applying the Color accent-text-primary in the bottom link (See what else we've been working on)

Testing Steps

Screenshots

Now Before
Now Light Before Light
Now Dark Before Dark

Checklist

Please tick all that apply:

  • I have tested this change locally
  • I have tested this change locally in all supported browsers
  • This change will be visible to users
  • I have added automated tests that cover this change
  • I have ensured the change is gated by config
  • This change was covered by a ship review
  • This change was covered by a tech design
  • Any dependent config has been merged

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 .main container now defines light/dark accent palette tokens (accent-primary, accent-text-primary, etc.) used on that page. On macOS only, accentBrand action buttons (Retry / Reload-style controls) get pill corners via new shared --border-radius-pill and 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 uses accent-text-primary instead 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.

@jleandroperez jleandroperez self-assigned this Jul 17, 2026
daxtheduck
daxtheduck previously approved these changes Jul 17, 2026
@github-actions github-actions Bot added the semver-patch Bug fix / internal — no release needed label Jul 17, 2026

@cursor cursor Bot 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.

Stale comment

Injected PR Evaluation: Web Compatibility & Security

PR: macOS: Release Notes Rebranding UX (#2878)
Scope: 2 files, +12 lines — CSS-only changes in special-pages/pages/release-notes/. No injected/, messaging/, or API override changes.


Web Compatibility Assessment

File Lines Severity Finding
special-pages/pages/release-notes/app/components/App.module.css 18–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 !important is documented as necessary to override shared Button per-platform radius (specificity up to 0-3-0).
special-pages/pages/release-notes/app/components/App.module.css 21 info .main button is a broad selector but safe here: the only buttons under .main are shared Button instances from UpdateButton (Reload Summary, Retry Update, Restart To Update / Update DuckDuckGo). ErrorFallback renders no buttons.
special-pages/pages/release-notes/app/components/ReleaseNotes.module.css 204–208 info .updatesLink accent color now uses design-system tokens with explicit [data-theme="dark"] override. Static href="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, or postMessage. 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.css 204–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/updates with target="_blank" — no dynamic URL construction or postMessage with * origin.
Messaging schemas info No new notify/request/subscribe schemas; existing handlers (browserRestart, retryUpdate, retryFetchReleaseNotes) unchanged. No nativeData leakage 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

  1. (info) Visual smoke-test on macOS and Windows release-notes states (loading, update-ready, error) to confirm pill buttons render correctly against shared Button variants.
  2. (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.js do not assert visual styling.
  3. (info) Optional: align PR title/description with the cross-platform pill-button scope if intentional.
Open in Web View Automation 

Sent by Cursor Automation: Web compat and sec

@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

[Beta] Generated file diff

Time updated: Fri, 17 Jul 2026 19:50:57 GMT

Apple
    - apple/pages/history/dist/index.css
  • apple/pages/new-tab/dist/index.css
  • apple/pages/release-notes/dist/index.css
  • apple/pages/special-error/dist/index.css
  • apple/pages/special-error/index.html

File has changed

Integration
    - integration/pages/example/dist/index.css
  • integration/pages/history/dist/index.css
  • integration/pages/new-tab/dist/index.css
  • integration/pages/release-notes/dist/index.css
  • integration/pages/special-error/dist/index.css

File has changed

Windows
    - windows/pages/history/dist/index.css
  • windows/pages/new-tab/dist/index.css
  • windows/pages/release-notes/dist/index.css
  • windows/pages/special-error/dist/index.css
  • windows/pages/special-error/index.html

File has changed

@daxtheduck
daxtheduck dismissed their stale review July 17, 2026 18:36

Dismissing stale approval — new commits pushed, awaiting Cursor re-review.

@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Build Branch

Branch pr-releases/lantean/release-notes-updates
Commit 1fec0e0154
Updated July 17, 2026 at 7:50:23 PM UTC

Static preview entry points

QR codes (mobile preview)
Entry point QR code
Docs QR for docs preview
Static pages QR for static pages preview
Integration pages QR for integration pages preview

Integration commands

npm (Android / Extension):

npm i github:duckduckgo/content-scope-scripts#pr-releases/lantean/release-notes-updates

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-updates
Pin to exact commit

npm (Android / Extension):

npm i github:duckduckgo/content-scope-scripts#1fec0e015421102fc8ff97f0802671cd303716a9

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

daxtheduck
daxtheduck previously approved these changes Jul 17, 2026

@cursor cursor Bot 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.

Stale comment

Injected PR Evaluation: Web Compatibility & Security

Re-assessed on synchronize (83713e9). Prior warnings about cross-platform pill buttons and !important are resolved in this revision.

Web Compatibility Assessment

File Lines Severity Finding
special-pages/pages/release-notes/app/components/App.module.css 18–22 info macOS-only pill buttons via [data-platform-name="macos"] .main[data-theme] button. data-platform-name is set on document.body in app/index.js. Only affects UpdateButton shared Button instances; ErrorFallback has no buttons.
special-pages/pages/release-notes/app/components/App.module.css 18–22 info Specificity 0-3-1 correctly beats shared [data-platform-name="macos"] .button.lg (0-3-0) without !important — good maintainability.
special-pages/pages/release-notes/app/components/ReleaseNotes.module.css 204–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.css 140 info Adds --border-radius-pill: 9999px shared 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.css 204–208 info Static design-token colors only; no page-derived or user-controlled CSS values.
special-pages/pages/release-notes/app/components/ReleaseNotes.js 338 info Static https://duckduckgo.com/updates href unchanged (not in diff). No new messaging schemas or nativeData exposure.

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

  1. Smoke-test (info): Verify macOS release-notes in light/dark — pill-shaped update/restart/retry buttons and accent-colored "What's new" link.
  2. Consistency (info): .updatesLink uses --ds-color-theme-default-*-accent-text-primary directly; consider var(--ds-color-theme-accent-text-primary, …) via theme-mappings.css (as in Text.module.css) for future theme overrides — optional, not blocking.
Open in Web View Automation 

Sent by Cursor Automation: Web compat and sec

@daxtheduck
daxtheduck dismissed their stale review July 17, 2026 19:49

Dismissing stale approval — new commits pushed, awaiting Cursor re-review.

@cursor cursor Bot 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.

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

  1. (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.
  2. (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.
  3. (info) Update release-notes screenshot baselines if CI snapshot tests cover this page.

Automated assessment — Injected PR Evaluation: Web Compatibility & Security

Open in Web View Automation 

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) */

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.

Just for consistency:

Suggested change
--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;

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.

@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.

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

Labels

semver-patch Bug fix / internal — no release needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants