Skip to content

Fix dark mode visibility for error/success text in site list#3034

Merged
katinthehatsite merged 1 commit intotrunkfrom
fix-dark-mode-push-error
Apr 9, 2026
Merged

Fix dark mode visibility for error/success text in site list#3034
katinthehatsite merged 1 commit intotrunkfrom
fix-dark-mode-push-error

Conversation

@bcotrim
Copy link
Copy Markdown
Contributor

@bcotrim bcotrim commented Apr 9, 2026

Related issues

How AI was used in this PR

AI assisted with finding affected components and drafting the fix. All changes were reviewed and tested manually.

Proposed Changes

  • Exclude .text-a8c-red-50, .text-a8c-green-50, .text-frame-error, and .text-frame-running from the blanket dark mode span color override in index.css, so error/success text retains its color in dark mode
  • Move the color class in ClearAction from the parent <div> to the <span> so it directly matches the CSS :not() exclusion
Sync Preview
image image

Testing Instructions

  1. Connect a site to WordPress.com
  2. Trigger a push or pull error (e.g. disconnect network mid-sync)
  3. Verify the error text is red in both light and dark mode
  4. Also check preview site "Failed" and "Deleted" states in dark mode

Pre-merge Checklist

  • Have you checked for TypeScript, React or other console errors?

@bcotrim bcotrim self-assigned this Apr 9, 2026
@bcotrim bcotrim requested a review from a team April 9, 2026 17:19
@wpmobilebot
Copy link
Copy Markdown
Collaborator

📊 Performance Test Results

Comparing f35c3eb vs trunk

app-size

Metric trunk f35c3eb Diff Change
App Size (Mac) 1275.85 MB 1275.85 MB +0.00 MB ⚪ 0.0%

site-editor

Metric trunk f35c3eb Diff Change
load 1609 ms 1869 ms +260 ms 🔴 16.2%

site-startup

Metric trunk f35c3eb Diff Change
siteCreation 8125 ms 9107 ms +982 ms 🔴 12.1%
siteStartup 4171 ms 4172 ms +1 ms ⚪ 0.0%

Results are median values from multiple test runs.

Legend: 🟢 Improvement (faster) | 🔴 Regression (slower) | ⚪ No change (<50ms diff)

Copy link
Copy Markdown
Contributor

@katinthehatsite katinthehatsite left a comment

Choose a reason for hiding this comment

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

The changes look good to me and work as expected 👍

@katinthehatsite katinthehatsite merged commit e790836 into trunk Apr 9, 2026
11 checks passed
@katinthehatsite katinthehatsite deleted the fix-dark-mode-push-error branch April 9, 2026 17:47
sejas added a commit that referenced this pull request Apr 9, 2026
* [skip ci] Code freeze: Update translatable strings for 1.7.8

* [skip ci] Code freeze: Add draft release notes for 1.7.8

* Add push/pull/import/export MCP tools for AI agents (#3022)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Sort studio code commands and subcommands alphabetically (#3027)

* Moved the `code` command registration in `apps/cli/index.ts` so that top-level CLI commands appear in alphabetical order

* Strip unnecessary fields in wpcom_request response (#3005)

* Strip bloated plan.features from wpcom_request responses

The WP.com /sites/{id} endpoint returns a plan object whose features
sub-field alone is 60K+ characters, pushing the total response past
Claude Code's ~100K character MCP tool result limit. The agent only
needs product_slug, is_free, and expired to gate features, since the
system prompt hardcodes what each plan tier can and can't do. Strip
plan.features and keep only essential plan properties.

* Also compact large array responses by stripping content and _links

List endpoints like GET /templates can return 80K+ chars of block markup.
Strip content and _links from array items when the response exceeds 80K
chars — the agent can still identify items by slug/title and fetch
individual ones for full content.

* Add _fields prompt guidance and scope plan compaction as special case

Add system prompt hint instructing the agent to use _fields on wp/v2
listing endpoints to minimize response sizes. Scope compactResponse()
to only handle plan.features stripping with a clear comment that this
is a special case (the API doesn't support sub-field filtering). Remove
the generic array compaction in favor of prompt-driven field selection.

* Add fields guidance for v1.1, rename stripOversizedFields

Update system prompt to instruct the agent to use fields (v1.1) and
_fields (wp/v2) to minimize response sizes, always including ID for
v1.1 requests. Rename compactResponse to stripOversizedFields for
clarity.

* Remove indentation in JSON to save tokens

* Fix dark mode visibility for error/success text in site list (#3034)

* Fix dark mode onbiarding screen (#3025)

Co-authored-by: Kateryna Kodonenko <kateryna@automattic.com>

* Studio: Filter out deprecated warnings from fatal errors (#3018)

* Filter out deprecated warnings from fatal errors

* Ensure our error filtering approach is consistent with CLI

* Apply changes to default exporter

* Fix unit tests

---------

Co-authored-by: Kateryna Kodonenko <kateryna@automattic.com>

* [skip ci] Update translations

* [skip ci] Bump version to 1.7.8-beta1

* CLI: ensure Studio root exists before starting code agent (#3039)

* Ensure startAiAgent() checks whether ~/Studio exists before launching the Claude SDK.

* Define a localeData type to fix lint error: The inferred type of this
node exceeds the maximum length the compiler will serialize. An explicit
type annotation is needed. (ts 7056)

* [skip ci] Bump version to 1.7.8-beta2

---------

Co-authored-by: Riad Benguella <benguella@gmail.com>
Co-authored-by: Antonio Sejas <antonio.sejas@automattic.com>
Co-authored-by: Roberto Aranda <roberto.aranda@automattic.com>
Co-authored-by: Bernardo Cotrim <bmmcotrim@gmail.com>
Co-authored-by: katinthehatsite <katerynakodonenko@gmail.com>
Co-authored-by: Kateryna Kodonenko <kateryna@automattic.com>
Co-authored-by: Jorge Costa <jorge.costa@developer.pt>
Co-authored-by: Antonio Sejas <antonio@sejas.es>
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.

3 participants