Make WordPress Core

Opened 6 weeks ago

Closed 2 weeks ago

Last modified 2 weeks ago

#64547 closed enhancement (fixed)

Admin Reskin: Update button and input field styling to align with WordPress Design System

Reported by: fabiankaegy's profile fabiankaegy Owned by: joedolson's profile joedolson
Milestone: 7.0 Priority: normal
Severity: normal Version:
Component: Administration Keywords:
Focuses: ui, accessibility, css Cc:

Description (last modified by sabernhardt)

This ticket covers the visual reskin of buttons and input fields in wp-admin as part of the WordPress 7.0 admin visual refresh (#64308).

Why This Matters

Buttons and input fields are the most common interactive elements in wp-admin. Consistent styling improves usability, reduces cognitive load, and makes older screens feel closer to the editor experience users already know.

Why Buttons and Inputs Are Grouped

These two components frequently appear adjacent to one another in the admin interface:

  • Search boxes with submit buttons
  • Bulk action dropdowns with Apply buttons
  • Settings pages with text inputs and Save Changes buttons
  • Password fields with toggle buttons

Updating the height or density of one component without the other creates visual misalignment. This ticket addresses both together to ensure a cohesive result.

Proposed Scope

Buttons:

  • Primary, secondary, tertiary, and link buttons
  • Destructive variants
  • All interactive states (default, hover, focus, active, disabled)

Inputs:

  • Text inputs, URL, email, password, number, search
  • Select dropdowns and textareas
  • Checkboxes and radio buttons
  • Disabled and readonly states

Key Principles

  • CSS-Only Changes: No markup or JavaScript modifications
  • Backward Compatibility: All existing selectors and admin color schemes preserved
  • Design System Alignment: Heights, spacing, and focus treatment aligned with Gutenberg components
  • Accessibility: Focus rings visible at all zoom levels, proper contrast ratios maintained

What This Is NOT

  • No new CSS custom properties
  • No changes to functional behavior (validation, keyboard interactions)
  • No selector removals or renames

Testing Approach

Test in real admin workflows across multiple screens:

  • Dashboard widgets and bulk actions
  • Settings pages (General, Reading, Discussion)
  • Plugin search and install
  • Post editor meta boxes

Verify in at least two color schemes (modern and light), at 100% and 200% zoom, and in RTL layout.

Related Resources

Attachments (3)

New Note.jpeg (588.5 KB) - added by poojapadamad 3 weeks ago.
Screenshot 2026-02-16 at 9.59.40 am.png (12.9 KB) - added by peterwilsoncc 2 weeks ago.
photo-publish-box.png (46.7 KB) - added by Otto42 2 weeks ago.

Download all attachments as: .zip

Change History (41)

This ticket was mentioned in PR #10783 on WordPress/wordpress-develop by @fabiankaegy.


6 weeks ago
#1

  • Keywords has-patch added

#2 @sabernhardt
6 weeks ago

  • Description modified (diff)
  • Focuses accessibility added
  • Milestone changed from Awaiting Review to 7.0

#3 @Joen
5 weeks ago

Thanks for this work. Designwise, I support this, and appreciate that this is not a new custom properties effort: those become public APIs to support forever which needs an extremely carefully considered approach. And at the same time, this effort does not preclude a color system modernization happening in the future, it's just CSS to modernize and make uniform the work.

I'm a bit short for time on testing, are there screenshots or visuals to aid that process? Otherwise I'll try and come back when I have a moment.

@audrasjb commented on PR #10783:


5 weeks ago
#4

Hi @fabiankaegy,
This looks globally good to me.
I tested this PR on a fresh install, and I went into each individual admin screen, on both desktop and small screen views.
This looks almost good to me, I only found a few glitches:

Media Library vertical misalignment

https://github.com/user-attachments/assets/1cfe4454-03ae-479d-bd77-39899efb19b6

Settings vertical misalignement on lists

https://github.com/user-attachments/assets/22e78ab9-b849-4b6f-83ab-13b9286d3736

Then I tested a few popular plugins, like Classic Editor, CF7, Redirection, SCF, and others. Globally settings pages are OK, I only found a few glitches, like:

Alignement bug on Visual/Code tabs on Classic Editor

https://github.com/user-attachments/assets/8aa98104-157c-4363-975c-605cbf98560c

Alignement bug on Redirection filters

https://github.com/user-attachments/assets/b1d432f8-6c31-4b96-99d4-75688131d282

More tests on popular plugins are welcome.
For example: back in the years, here is the list of plugins I tested when we shipped the Admin Accessible Redesign in WordPress 5.3: https://make.wordpress.org/core/2019/10/15/report-wp-5-3-admin-css-changes-tested-against-top-20-plugins/

#5 @audrasjb
5 weeks ago

Hi there,
I tested this changeset on each admin screen on both dsektop and small screens, then I installed a few popular plugins like Classic Editor, CF7, Redirection, SCF, and others. Globally notifices are OK.

I didn't find any accessibility issue as well.

@Joen commented on PR #10783:


5 weeks ago
#6

From Jb's screenshots above, one note I'd add is that you can use either the 32px or 40px height for most of the controls, e.g. try the "compact" view here. 32px may be a better fit for many of these.

@fabiankaegy commented on PR #10783:


5 weeks ago
#7

Thanks @jasmussen :) You can view the full thing live here: https://playground.wordpress.net/wordpress.html?pr=10783

@Joen commented on PR #10783:


5 weeks ago
#8

Oh yeah, nice one. These come to mind as benefitting from 32px compact sizes:

https://github.com/user-attachments/assets/a3d64bb1-3488-46cf-bfa0-6477c0a46c25

https://github.com/user-attachments/assets/b73a97c0-791c-47d5-ac6f-5b7ea3dd75c0

https://github.com/user-attachments/assets/ba5b8338-33e2-4860-865d-fe3ed8da1950

https://github.com/user-attachments/assets/6f3ff3fc-7d3a-4b03-b9df-d7f33fb1e6f2

This ticket was mentioned in Slack in #accessibility by joedolson. View the logs.


5 weeks ago

#10 @karmatosed
4 weeks ago

Coming in to support this design wise and to say that even in testing initially the only hitch was around compact which I suspected was going to happen based on previous explorations:

From Jb's screenshots above, one note I'd add is that you can use either the 32px or 40px height for most of the controls, e.g. try the "compact" view here. 32px may be a better fit for many of these.

This would also be my recommendation.

@joedolson commented on PR #10783:


3 weeks ago
#11

The media modal 'edit image' button might be another candidate for a compact button. Otherwise, it can land uncomfortably close to the bottom of the modal.

https://github.com/user-attachments/assets/fa40bc1e-faee-4665-9dd3-eb646d0500ab

@joedolson commented on PR #10783:


3 weeks ago
#12

'Move to trash' is out of alignment with Update in the classic editor.

https://github.com/user-attachments/assets/7e09ce62-c4f6-4235-aef1-58a05779cc0b

@joedolson commented on PR #10783:


3 weeks ago
#13

Attachment display settings have new borders, but the other media modal fields don't.

https://github.com/user-attachments/assets/12213fb2-6e54-4241-8e69-0eafca1f0445

@joedolson commented on PR #10783:


3 weeks ago
#14

Alignment issue in theme selector in customizer:

https://github.com/user-attachments/assets/29453e75-23b5-42bd-b01f-44d28356c092

@joedolson commented on PR #10783:


3 weeks ago
#15

Search icon alignment in customizer

https://github.com/user-attachments/assets/d9314c3a-441e-4d5f-bcb2-b8a4c236c879

@joedolson commented on PR #10783:


3 weeks ago
#16

Larger input size causing overflow in customizer menus

https://github.com/user-attachments/assets/d825304e-da87-4c40-a320-c61e4da8ca37

@joedolson commented on PR #10783:


3 weeks ago
#17

Publish button overflow in customizer

https://github.com/user-attachments/assets/6b767302-4a8e-46b6-83b2-1c7dffb25ce3

@joedolson commented on PR #10783:


3 weeks ago
#18

Search themes misalignment (installed)

https://github.com/user-attachments/assets/58ef4aa1-cd1b-4a7a-8cdb-9988e2fb184c

@joedolson commented on PR #10783:


3 weeks ago
#19

Classic widgets pushed out of alignment

https://github.com/user-attachments/assets/b19c2f6e-b527-48cf-a7a1-d0cba6f2ca1f

This ticket was mentioned in Slack in #accessibility by joedolson. View the logs.


3 weeks ago

@fabiankaegy commented on PR #10783:


3 weeks ago
#21

Thanks @audrasjb @jasmussen @joedolson :) I've taken all your great feedback and made modifications based on it 👍

This ticket was mentioned in Slack in #core by audrasjb. View the logs.


3 weeks ago

@phpbits commented on PR #10783:


3 weeks ago
#23

@fabiankaegy I am seeing some inconsistencies regarding the secondary button style here.

https://github.com/user-attachments/assets/9a1d7d87-5368-4b94-8411-eedebbe5f84d
https://github.com/user-attachments/assets/3c3773b8-6b17-4b94-bd84-b6bc2d17e83f
https://github.com/user-attachments/assets/f5a09f8a-c023-4511-a548-ded6322c9ad9

Same with the link's color here.
https://github.com/user-attachments/assets/b1112190-391f-478b-855f-fa98cc9d6110
https://github.com/user-attachments/assets/90abdaa4-e350-4440-8399-923c1ead863a

Thanks!

@magaliechetrit commented on PR #10783:


3 weeks ago
#24

  1. In Users view, the "Change" button is too big.

https://github.com/user-attachments/assets/f85866d5-210e-4ca6-bf7c-463ef1dfbbfb

  1. Question: when we apply a new admin color scheme, should we see these changes too? @joedolson @fabiankaegy @karmatosed @audrasjb ?

I've installed Twenty Nineteen theme for the next items:

  1. Customizer > Site Identity: the buttons are a bit large.

https://github.com/user-attachments/assets/0d10235e-7c69-44cc-92e0-e48237932768

  1. Customizer, Menus > all add links options are badly aligned:

https://github.com/user-attachments/assets/7338733c-0894-41e7-a6f6-c2cb4edcaacb
https://github.com/user-attachments/assets/cba60471-c2cb-44ec-89cf-6b1f5b0d14ef

  1. Customizer > Homepage Settings also a button that's too small.

https://github.com/user-attachments/assets/6866c496-b0f1-466a-a900-f59db8af5a6f

@fabiankaegy commented on PR #10783:


3 weeks ago
#25

@phpbits @BluePraise thanks you two :) That was an oversight on my end. It now properly respects the admin scheme 👍

@magaliechetrit commented on PR #10783:


3 weeks ago
#26

@fabiankaegy There seems to be an issue when I switch color schemes in Users. When I go from "Default" to any other color scheme and then back to "Default", I don't see the new reskin colors.

When researching the issue, I noticed in src/js/_enqueues/admin/user-profile.js around line 543-550 that it would be reset to "nothing". There is no stylesheet recreated.

I have looked in the Trac and could find no related issue to this since this may be unrelated to the reskin. However, it does impact the work of the reskin.

To recreate:

  1. Navigate to Users > Profile
  2. Switch color schemes to any color schemes
  3. Go back to default color schemes.

I have pulled your latest work.

#27 @magaliechetrit
3 weeks ago

Hello hello, to help Fabian and all of us out, I have started a spreadsheet of the issues reported. But since it is becoming quite time consuming to check each issue in regards to status I am offering the spreadsheet here: https://docs.google.com/spreadsheets/d/1WtgYvtqP7nYV-n_DjKe2w8bPnIsooPHoGU4617ND_8g/edit?usp=sharing Feel free to look through the spreadsheet to see if any screen or area has been checked.

Keep in mind that I am first of all just copy pasting all comments and reorganizing the columns on the fly as it makes sense.
Am open to help or input!

#28 @poojapadamad
3 weeks ago

Test Report

Description

This report validates whether the indicated patch works as expected.

Patch tested: https://patch-diff.githubusercontent.com/raw/WordPress/wordpress-develop/pull/10783.diff

Environment

  • WordPress: 7.0-alpha-20260211.193508
  • PHP: 7.4.33
  • Server: PHP.wasm
  • Database: WP_SQLite_Driver (Server: 8.0.38 / Client: 3.51.0)
  • Browser: Chrome 144.0.0.0
  • OS: macOS
  • Theme: Twenty Twenty-Five 1.4
  • MU Plugins: None activated
  • Plugins:
    • Test Reports 1.2.1

Actual Results

  • Dashboard widgets and bulk actions✅
  • Settings pages (General, Reading, Discussion)✅
  • Plugin search and install✅
  • Post editor meta boxes✅

Issue noticed:
In the Media Library, when List View is selected, the "Filter" button appears smaller than the "All media items" button.

Screenshots is attached for reference:

https://core.trac.wordpress.org/attachment/ticket/64547/

Last edited 3 weeks ago by poojapadamad (previous) (diff)

@joedolson commented on PR #10783:


3 weeks ago
#29

The :focus state on button-link doesn't match the link focus state. See example in the row actions, where 'Quick Edit' is a button-link, but the other controls are links:

https://github.com/user-attachments/assets/121b8ebb-27ed-4d7e-9a96-b0be2034ac7a

This could have effects throughout the admin, but it may also be resolved in another one of the design PRs, since this one is only addressing buttons/forms. I'm not totally sure. We're at a stage where it's pretty difficult to take all of the design refresh PRs into consideration in combination.

#30 @joedolson
3 weeks ago

  • Keywords commit added
  • Owner set to joedolson
  • Status changed from new to accepted

I'm marking this for commit. While I fully expect we'll continue to find issues through the beta and RC window, I think everything is far enough along that we'll be more productive getting a broader look in core holistically.

Taking ownership to help guide it, but I'll leave it to @fabiankaegy to handle commit, unless he wants to pass it on.

#31 @fabiankaegy
3 weeks ago

  • Resolution set to fixed
  • Status changed from accepted to closed

In 61645:

Admin: Update button and form field styles to align with the design system.

Introduce a design system tokens file (_tokens.scss) based on the WordPress Design System, providing standardized values for colors, spacing, typography, border-radius, and elevation.

Update buttons to use CSS custom properties for theme color support across all admin color schemes. Restyle primary buttons with filled theme-color backgrounds, secondary buttons with outlined borders, and add a tertiary button mixin. Adopt Gutenberg-style focus rings with outset box-shadows and transparent outlines for Windows High Contrast mode compatibility.

Increase default input and select height from 30px to 40px, apply 2px border-radius, and update border and placeholder colors to match the design system. Restyle checkboxes and radios with filled theme-color checked states and white indicator marks, using outset double-ring focus styles consistent with Gutenberg.

Apply compact 32px sizing to list table controls, page-title-action buttons, and toolbar elements. Convert tag input layouts and the major-publishing-actions bar to flexbox.

Props fabiankaegy, joedolson, audrasjb, joen, phpbits, magaliechetrit, karmatosed.
Fixes #64547.

#32 @peterwilsoncc
2 weeks ago

  • Keywords has-patch commit removed
  • Resolution fixed deleted
  • Status changed from closed to reopened

A git bisect shows that this commit broke the login button and checkbox on the login form, including the screens in the reset password flow. See the screenshot above. It also broke the button on the db upgrade screen.

I've reopened the ticket to investigate:

  • WordPress: 7.0-alpha-61645
  • Installation type: WordPress installed in a sub-directory
  • PHP: 8.4.16
  • Server: nginx/1.18.0
  • Database: mysqli (Server: 8.0.36-0ubuntu0.22.04.1 / Client: mysqlnd 8.4.16)
  • Browser: Firefox 147.0
  • OS: macOS
  • Theme: Twenty Twenty-Five 1.4
  • MU Plugins:
    • _qm-mappings.php
  • Plugins:
    • Query Monitor 3.19.0
    • Test Reports 1.2.1

#34 @peterwilsoncc
2 weeks ago

  • Resolution set to fixed
  • Status changed from reopened to closed

@joedolson Thanks Joe, I missed that ticket. I'll reclose this for work to continue on the follow up.

This ticket was mentioned in Slack in #accessibility by magaliechetrit. View the logs.


2 weeks ago

#36 @Otto42
2 weeks ago

Additional note: the addition of display:flex to #major-publish-actions has caused us some issues with the photo directory. In particular some of the actions we added to do that work has gone wonky.

We can override the styling, but I'm wondering if this was intended. And if so, what about back compatibility? Might need some additional design work here.

#37 follow-up: @joedolson
2 weeks ago

To some degree, getting this shipped in beta is a way to find out the scope of issues like this. I'm not sure we can give a lot of thought to back compat issues like this; where would we draw the line? The color changes themselves are going to be a back compat issue for some extenders. To me, this falls within a reasonable scope of what we might expect an extender to adapt for.

The feature isn't broken; it just looks weird.

#38 in reply to: ↑ 37 @Otto42
2 weeks ago

Replying to joedolson:

The feature isn't broken; it just looks weird.

Well, I mean, you're not wrong, however that's not the way users will see it. The functionality still works fine, but you had to scroll to the side in the browser to use it, which it did not have a scroll bar for. Basically you had to know how to use your browser to see that part of the screen and click thing theres because it was overflowing the screen.

And while all the functionality still continue to work, it was impossible to use to the point that the people that we expect to use it couldn't figure out how to use it. Thus the complaints and us having to figure out WTF happened.

We fixed it already in the plugins necessary, it was an easy fix, however, this is going to cause breakage and you need to be prepared to deal with that.if you're only depending on beta, you're not going to find it out. This will absolutely cause breaking changes only when 7.0 is released, for a whole lot of plugins.

In other words, if you want to release something like this, which clearly breaks the admin screens for a lot of things, then you really need to push a lot more plugins to test and fix the problems beforehand. This is a MAJOR, and MASSIVE, breaking change. You cannot depend on minor announcements to get it fixed beforehand. Basically, you have to set up your game on this one.

Note: See TracTickets for help on using tickets.