Make WordPress Core

Changeset 61645


Ignore:
Timestamp:
02/15/2026 08:09:39 AM (6 weeks ago)
Author:
fabiankaegy
Message:

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.

Location:
trunk/src
Files:
1 added
17 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/css/colors/_admin.scss

    r61480 r61645  
    44@use 'variables';
    55@use 'mixins';
     6@use 'tokens';
    67
    78/**
     
    3839}
    3940
    40 .wp-core-ui .button-link {
    41     color: variables.$link;
     41/* Link button - appears as text link, no border or background */
     42/* Matches Gutenberg's .is-link button variant */
     43.wp-core-ui .button-link,
     44.wp-core-ui .button.button-link {
     45    color: var(--wp-admin-theme-color);
    4246
    4347    &:hover,
    44     &:active,
     48    &:active {
     49        color: var(--wp-admin-theme-color-darker-20);
     50    }
     51
    4552    &:focus {
    46         color: variables.$link-focus;
     53        color: var(--wp-admin-theme-color);
     54        border-radius: tokens.$radius-s;
     55        box-shadow: 0 0 0 var(--wp-admin-border-width-focus, 1.5px) var(--wp-admin-theme-color);
     56        outline: 1px solid transparent;
     57    }
     58
     59    &:disabled,
     60    &[aria-disabled="true"] {
     61        color: tokens.$gray-600;
    4762    }
    4863}
     
    5267.media-modal .untrash-attachment,
    5368.wp-core-ui .button-link-delete {
    54     color: #a00;
     69    color: tokens.$alert-red;
    5570}
    5671
     
    6378.wp-core-ui .button-link-delete:hover,
    6479.wp-core-ui .button-link-delete:focus {
    65     color: #dc3232;
     80    color: color.adjust(tokens.$alert-red, $lightness: 10%);
    6681}
    6782
    6883/* Forms */
     84
     85// Checkbox checked state - uses theme color
     86input[type="checkbox"]:checked {
     87    background: var(--wp-admin-theme-color);
     88    border-color: var(--wp-admin-theme-color);
     89}
    6990
    7091input[type=checkbox]:checked::before {
     
    7394}
    7495
    75 input[type=radio]:checked::before {
    76     background: variables.$form-checked;
     96// Checkbox checkmark - white for visibility on theme color background
     97input[type="checkbox"]:checked::before {
     98    content: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%23ffffff%27%2F%3E%3C%2Fsvg%3E") / '';
     99}
     100
     101// Radio checked state - uses theme color
     102input[type="radio"]:checked {
     103    background: var(--wp-admin-theme-color);
     104    border-color: var(--wp-admin-theme-color);
     105}
     106
     107// Radio dot - white for visibility on theme color background
     108input[type="radio"]:checked::before {
     109    background: tokens.$white;
    77110}
    78111
     
    82115}
    83116
     117// Text input focus - outset focus ring matching button focus style
    84118input[type="text"]:focus,
    85119input[type="password"]:focus,
     
    93127input[type="search"]:focus,
    94128input[type="tel"]:focus,
    95 input[type="text"]:focus,
    96129input[type="time"]:focus,
    97130input[type="url"]:focus,
    98131input[type="week"]:focus,
    99 input[type="checkbox"]:focus,
    100 input[type="radio"]:focus,
    101132select:focus,
    102133textarea:focus {
    103     border-color: variables.$highlight-color;
    104     box-shadow: 0 0 0 1px variables.$highlight-color;
     134    border-color: var(--wp-admin-theme-color);
     135    box-shadow: 0 0 0 var(--wp-admin-border-width-focus, 1.5px) var(--wp-admin-theme-color);
     136}
     137
     138// Checkbox/Radio focus - Gutenberg-style outset focus ring
     139input[type="checkbox"]:focus,
     140input[type="radio"]:focus {
     141    border-color: tokens.$gray-900;
     142    box-shadow: 0 0 0 2px tokens.$white, 0 0 0 4px var(--wp-admin-theme-color);
     143    outline: 2px solid transparent;
     144}
     145
     146// Select focus (wp-core-ui styled selects)
     147.wp-core-ui select:focus {
     148    border-color: var(--wp-admin-theme-color);
     149    box-shadow: 0 0 0 var(--wp-admin-border-width-focus, 1.5px) var(--wp-admin-theme-color);
     150}
     151
     152// Autocomplete focus state
     153.wp-tags-autocomplete .ui-state-focus,
     154.wp-tags-autocomplete [aria-selected="true"] {
     155    background-color: var(--wp-admin-theme-color);
     156}
     157
     158// Password field focus
     159#pass1:focus,
     160#pass1-text:focus {
     161    box-shadow: 0 0 0 var(--wp-admin-border-width-focus, 1.5px) var(--wp-admin-theme-color);
     162}
     163
     164// Password toggle button focus
     165.mailserver-pass-wrap .button.wp-hide-pw:focus {
     166    border-color: var(--wp-admin-theme-color);
     167    box-shadow: 0 0 0 var(--wp-admin-border-width-focus, 1.5px) var(--wp-admin-theme-color);
    105168}
    106169
     
    110173.wp-core-ui {
    111174
     175    /* Default button - theme color border and text (matches secondary) */
    112176    .button {
    113         border-color: #7e8993;
    114         color: #32373c;
    115     }
    116 
    117     .button.hover,
    118     .button:hover,
    119     .button.focus,
    120     .button:focus {
    121         border-color: color.adjust(#7e8993, $lightness: -5%);
    122         color: color.adjust(#32373c, $lightness: -5%);
    123     }
    124 
    125     .button.focus,
    126     .button:focus {
    127         border-color: #7e8993;
    128         color: color.adjust(#32373c, $lightness: -5%);
    129         box-shadow: 0 0 0 1px #32373c;
    130     }
    131 
    132     .button:active {
    133         border-color: #7e8993;
    134         color: color.adjust(#32373c, $lightness: -5%);
    135         box-shadow: none;
    136     }
    137 
    138     .button.active,
    139     .button.active:focus,
    140     .button.active:hover {
    141         border-color: variables.$button-color;
    142         color: color.adjust(#32373c, $lightness: -5%);
    143         box-shadow: inset 0 2px 5px -3px variables.$button-color;
    144     }
    145 
    146     .button.active:focus {
    147         box-shadow: 0 0 0 1px #32373c;
    148     }
    149 
    150     @if ( variables.$low-contrast-theme != "true" ) {
    151         .button,
    152         .button-secondary {
    153             color: variables.$highlight-color;
    154             border-color: variables.$highlight-color;
    155         }
    156 
    157         .button.hover,
    158         .button:hover,
    159         .button-secondary:hover{
    160             border-color: color.adjust(variables.$highlight-color, $lightness: -10%);
    161             color: color.adjust(variables.$highlight-color, $lightness: -10%);
    162         }
    163 
    164         .button.focus,
    165         .button:focus,
    166         .button-secondary:focus {
    167             border-color: color.adjust(variables.$highlight-color, $lightness: 10%);
    168             color: color.adjust(variables.$highlight-color, $lightness: -20%);
    169             box-shadow: 0 0 0 1px color.adjust(variables.$highlight-color, $lightness: 10%);
    170         }
    171 
    172         .button-primary {
    173             &:hover {
    174                 color: #fff;
    175             }
    176         }
    177     }
    178 
     177        @include mixins.button-secondary();
     178    }
     179
     180    /* Secondary button - same as default */
     181    .button-secondary {
     182        @include mixins.button-secondary();
     183    }
     184
     185    /* Primary button - theme color background */
    179186    .button-primary {
    180         @include mixins.button( variables.$button-color );
     187        @include mixins.button();
    181188    }
    182189
    183190    .button-group > .button.active {
    184         border-color: variables.$button-color;
     191        border-color: var(--wp-admin-theme-color);
     192        background: rgba(var(--wp-admin-theme-color--rgb), 0.04);
    185193    }
    186194
     
    216224
    217225/* List tables */
    218 @if variables.$low-contrast-theme == "true" {
    219     .wrap .page-title-action:hover {
    220         color: variables.$menu-text;
    221         background-color: variables.$menu-background;
    222     }
    223 } @else {
    224     .wrap .page-title-action,
    225     .wrap .page-title-action:active {
    226         border: 1px solid variables.$highlight-color;
    227         color: variables.$highlight-color;
    228     }
    229 
    230     .wrap .page-title-action:hover {
    231         color: color.adjust(variables.$highlight-color, $lightness: -10%);
    232         border-color: color.adjust(variables.$highlight-color, $lightness: -10%);
    233     }
    234 
    235     .wrap .page-title-action:focus {
    236         border-color: color.adjust(variables.$highlight-color, $lightness: 10%);
    237         color: color.adjust(variables.$highlight-color, $lightness: -20%);
    238         box-shadow: 0 0 0 1px color.adjust(variables.$highlight-color, $lightness: 10%);
    239     }
     226
     227// .page-title-action uses secondary button styling
     228.wrap .page-title-action {
     229    background: transparent;
     230    border: 1px solid var(--wp-admin-theme-color);
     231    border-radius: tokens.$radius-s;
     232    color: var(--wp-admin-theme-color);
     233}
     234
     235.wrap .page-title-action:hover {
     236    background: rgba(var(--wp-admin-theme-color--rgb), 0.04);
     237    border-color: var(--wp-admin-theme-color-darker-20);
     238    color: var(--wp-admin-theme-color-darker-20);
     239}
     240
     241.wrap .page-title-action:focus {
     242    background: transparent;
     243    border-color: var(--wp-admin-theme-color);
     244    color: var(--wp-admin-theme-color);
     245    box-shadow: 0 0 0 var(--wp-admin-border-width-focus, 1.5px) var(--wp-admin-theme-color);
     246    outline: 1px solid transparent;
     247}
     248
     249.wrap .page-title-action:active {
     250    background: rgba(var(--wp-admin-theme-color--rgb), 0.08);
     251    border-color: var(--wp-admin-theme-color-darker-20);
     252    color: var(--wp-admin-theme-color-darker-20);
     253    box-shadow: none;
    240254}
    241255
  • trunk/src/wp-admin/css/colors/_mixins.scss

    r59656 r61645  
    11@use 'sass:color';
     2@use 'tokens';
    23
    34/*
    4  * Button mixin- creates a button effect with correct
    5  * highlights/shadows, based on a base color.
     5 * Button mixin - creates a primary button effect.
     6 * Uses CSS custom properties for theme color support across color schemes.
    67 */
    7 @mixin button( $button-color, $button-text-color: #fff ) {
    8     background: $button-color;
    9     border-color: $button-color;
     8@mixin button( $button-text-color: #fff ) {
     9    background: var(--wp-admin-theme-color);
     10    border-color: transparent;
     11    border-radius: tokens.$radius-s;
    1012    color: $button-text-color;
    1113
    12     &:hover,
    13     &:focus {
    14         background: color.adjust($button-color, $lightness: 3%);
    15         border-color: color.adjust($button-color, $lightness: -3%);
     14    &:hover {
     15        background: var(--wp-admin-theme-color-darker-10);
     16        border-color: transparent;
    1617        color: $button-text-color;
    1718    }
    1819
    1920    &:focus {
     21        background: var(--wp-admin-theme-color);
     22        border-color: transparent;
     23        color: $button-text-color;
     24        /* Gutenberg-style focus ring: outer theme color + inset white for contrast */
    2025        box-shadow:
    21             0 0 0 1px #fff,
    22             0 0 0 3px $button-color;
     26            0 0 0 var(--wp-admin-border-width-focus, 1.5px) var(--wp-admin-theme-color),
     27            inset 0 0 0 1px tokens.$white;
     28        /* Visible in Windows High Contrast mode */
     29        outline: 1px solid transparent;
    2330    }
    2431
    2532    &:active {
    26         background: color.adjust($button-color, $lightness: -5%);
    27         border-color: color.adjust($button-color, $lightness: -5%);
     33        background: var(--wp-admin-theme-color-darker-20);
     34        border-color: transparent;
    2835        color: $button-text-color;
     36    }
     37
     38    &:disabled,
     39    &.disabled {
     40        background: tokens.$gray-100;
     41        border-color: transparent;
     42        color: tokens.$gray-600;
     43        cursor: not-allowed;
    2944    }
    3045
     
    3247    &.active:focus,
    3348    &.active:hover {
    34         background: $button-color;
     49        background: var(--wp-admin-theme-color-darker-10);
    3550        color: $button-text-color;
    36         border-color: color.adjust($button-color, $lightness: -15%);
    37         box-shadow: inset 0 2px 5px -3px color.adjust($button-color, $lightness: -50%);
     51        border-color: transparent;
     52        box-shadow: none;
    3853    }
    3954}
     55
     56/*
     57 * Secondary button mixin - outlined style with theme color.
     58 * Matches Gutenberg's .is-secondary button variant.
     59 */
     60@mixin button-secondary() {
     61    background: transparent;
     62    border: 1px solid var(--wp-admin-theme-color);
     63    border-radius: tokens.$radius-s;
     64    color: var(--wp-admin-theme-color);
     65
     66    &:hover {
     67        background: rgba(var(--wp-admin-theme-color--rgb), 0.04);
     68        border-color: var(--wp-admin-theme-color-darker-20);
     69        color: var(--wp-admin-theme-color-darker-20);
     70    }
     71
     72    &:focus {
     73        background: transparent;
     74        border-color: var(--wp-admin-theme-color);
     75        color: var(--wp-admin-theme-color);
     76        box-shadow: 0 0 0 var(--wp-admin-border-width-focus, 1.5px) var(--wp-admin-theme-color);
     77        outline: 1px solid transparent;
     78    }
     79
     80    &:active {
     81        background: rgba(var(--wp-admin-theme-color--rgb), 0.08);
     82        border-color: var(--wp-admin-theme-color-darker-20);
     83        color: var(--wp-admin-theme-color-darker-20);
     84        box-shadow: none;
     85    }
     86
     87    &:disabled,
     88    &.disabled {
     89        background: transparent;
     90        border-color: tokens.$gray-300;
     91        color: tokens.$gray-600;
     92        cursor: not-allowed;
     93    }
     94}
     95
     96/*
     97 * Tertiary button mixin - transparent background, gray text.
     98 */
     99@mixin button-tertiary() {
     100    background: transparent;
     101    border: 1px solid tokens.$gray-600;
     102    border-radius: tokens.$radius-s;
     103    color: tokens.$gray-900;
     104
     105    &:hover {
     106        background: rgba(0, 0, 0, 0.05);
     107        border-color: tokens.$gray-700;
     108        color: tokens.$gray-900;
     109    }
     110
     111    &:focus {
     112        background: transparent;
     113        border-color: var(--wp-admin-theme-color);
     114        color: tokens.$gray-900;
     115        box-shadow: 0 0 0 var(--wp-admin-border-width-focus, 1.5px) var(--wp-admin-theme-color);
     116        outline: 1px solid transparent;
     117    }
     118
     119    &:active {
     120        background: rgba(0, 0, 0, 0.1);
     121        border-color: tokens.$gray-700;
     122        color: tokens.$gray-900;
     123    }
     124
     125    &:disabled,
     126    &.disabled {
     127        background: transparent;
     128        border-color: tokens.$gray-400;
     129        color: tokens.$gray-600;
     130        cursor: not-allowed;
     131    }
     132}
  • trunk/src/wp-admin/css/colors/_variables.scss

    r59879 r61645  
    11@use "sass:color";
     2
     3// Import design system tokens
     4@use "tokens" as *;
    25
    36// assign default value to all undefined variables
     
    1619// global
    1720
    18 $body-background: #f1f1f1 !default;
     21$body-background: $gray-100 !default;
    1922
    2023$link: #0073aa !default;
  • trunk/src/wp-admin/css/common.css

    r61636 r61645  
    635635    margin-left: 4px;
    636636    border: 1px solid #2271b1;
    637     border-radius: 3px;
    638     background: #f6f7f7;
     637    border-radius: 2px;
     638    background: transparent;
    639639    font-size: 13px;
    640     font-weight: 400;
    641     line-height: 2.15384615;
     640    font-weight: 500;
     641    min-height: 32px;
     642    line-height: 2.30769231; /* 30px for 32px height */
    642643    color: #2271b1; /* use the standard color used for buttons */
    643     padding: 0 10px;
    644     min-height: 30px;
     644    padding: 0 12px;
    645645    -webkit-appearance: none;
    646646
     
    653653.wrap .add-new-h2:hover, /* deprecated */
    654654.wrap .page-title-action:hover {
    655     background: #f0f0f1;
    656655    border-color: #0a4b78;
    657656    color: #0a4b78;
     
    934933    border-top: 1px solid #dcdcde;
    935934    background: #f6f7f7;
     935    display: flex;
     936    align-items: center;
     937    justify-content: space-between;
    936938}
    937939
    938940#delete-action {
    939     float: left;
    940941    line-height: 2.30769231; /* 30px */
    941942}
     
    954955#publishing-action {
    955956    text-align: right;
    956     float: right;
     957    margin-left: auto;
    957958    line-height: 1.9;
    958959}
     
    11121113}
    11131114
    1114 /* Use flexbox only on the plugins install page. The `filter-links` and search form children will become flex items. */
    1115 .plugin-install-php .wp-filter {
     1115.wp-filter .search-form input[type="search"] {
     1116    min-height: 32px;
     1117    line-height: 2.14285714; /* 30px for 32px height with 14px font */
     1118    padding: 0 8px;
     1119}
     1120
     1121.wp-filter .search-form select,
     1122.wp-filter .filter-items select {
     1123    min-height: 32px;
     1124    line-height: 2.14285714; /* 30px for 32px height with 14px font */
     1125    padding: 0 24px 0 8px;
     1126}
     1127
     1128.wp-filter .button {
     1129    min-height: 32px;
     1130    line-height: 2.30769231; /* 30px for 32px height with 13px font */
     1131    padding: 0 12px;
     1132}
     1133
     1134/* Use flexbox only on the plugins install page and upload page. The `filter-links` and search form children will become flex items. */
     1135.plugin-install-php .wp-filter,
     1136.upload-php .wp-filter {
    11161137    display: flex;
    11171138    flex-wrap: wrap;
     
    17191740.button.activated-message:before,
    17201741.button.activating-message:before {
    1721     margin: 3px 5px 0 -2px;
     1742    margin: 0 5px 0 -2px;
     1743    line-height: 1.9; /* 38px (20px * 1.9) - matches button */
     1744    vertical-align: top;
    17221745}
    17231746
     
    17371760#plugin-information-footer .button.activated-message:before,
    17381761#plugin-information-footer .button.activating-message:before {
    1739     margin: 9px 5px 0 -2px;
     1762    margin: 0 5px 0 -2px;
     1763    line-height: 1.9; /* 38px (20px * 1.9) - matches button */
     1764    vertical-align: top;
    17401765}
    17411766
    17421767#plugin-information-footer .button.update-now.updating-message:before {
    1743     margin: -3px 5px 0 -2px;
     1768    margin: 0 5px 0 -2px;
    17441769}
    17451770
     
    18191844    border-top: none;
    18201845    height: auto;
     1846    min-height: 32px; /* Compact size for header buttons */
    18211847    margin-bottom: 0;
    1822     padding: 3px 6px 3px 16px;
     1848    padding: 0 6px 0 16px;
    18231849    background: #fff;
    18241850    border-radius: 0 0 4px 4px;
    18251851    color: #646970;
    1826     line-height: 1.7;
     1852    line-height: 2.30769231; /* 30px - matches compact button */
    18271853    box-shadow: 0 0 0 transparent;
    18281854    transition: box-shadow 0.1s linear;
     
    18501876    content: "\f140";
    18511877    content: "\f140" / '';
    1852     font: normal 20px/1 dashicons;
     1878    font: normal 20px/1.5 dashicons; /* line-height 1.5 = 30px to match compact button */
    18531879    display: inline-block;
    18541880    padding: 0 5px 0 0;
    1855     bottom: 2px;
    1856     position: relative;
    1857     vertical-align: bottom;
     1881    vertical-align: top;
    18581882    -webkit-font-smoothing: antialiased;
    18591883    -moz-osx-font-smoothing: grayscale;
  • trunk/src/wp-admin/css/customize-controls.css

    r61636 r61645  
    7171#customize-save-button-wrapper {
    7272    float: right;
    73     margin-top: 9px;
     73    margin-top: 3px; /* Vertically center 40px button in 45px header */
    7474}
    7575
     
    186186
    187187#customize-header-actions .spinner {
    188     margin-top: 13px;
     188    margin-top: 13px; /* Vertically center 20px spinner in 45px header */
    189189    margin-right: 4px;
    190190}
     
    273273    margin: 0;
    274274    position: absolute;
    275     bottom: 9px;
     275    top: 50%;
     276    transform: translateY(-50%);
    276277    right: 0;
    277278}
     
    284285.customize-copy-preview-link:after {
    285286    content: "";
    286     height: 28px;
     287    height: 32px;
    287288    position: absolute;
    288289    background: #fff;
    289     top: -1px;
     290    top: 0;
    290291}
    291292
     
    11371138}
    11381139
     1140#available-menu-items .new-content-item-wrapper > label,
     1141.customize-control-dropdown-pages .new-content-item-wrapper > label {
     1142    margin-bottom: 4px;
     1143    display: block;
     1144}
     1145
    11391146#available-menu-items .accordion-section-content .new-content-item,
    11401147.customize-control-dropdown-pages .new-content-item {
     
    11591166.customize-control-dropdown-pages .new-content-item .create-item-input {
    11601167    flex-grow: 10;
     1168    width: 100%;
     1169}
     1170
     1171#available-menu-items .new-content-item .create-item-input {
     1172    min-height: 32px;
     1173    line-height: 2.15384615; /* 28px for 32px min-height with 13px font */
    11611174}
    11621175
    11631176#available-menu-items .new-content-item .add-content,
    11641177.customize-control-dropdown-pages .new-content-item .add-content {
    1165     margin: 2px 0 2px 6px;
     1178    margin: 0 0 0 6px;
    11661179    flex-grow: 1;
     1180}
     1181
     1182#available-menu-items .new-content-item .add-content {
     1183    min-height: 32px;
     1184    line-height: 2.30769231; /* 30px for 32px min-height with 13px font */
    11671185}
    11681186
     
    14491467.customize-control .attachment-media-view .upload-button {
    14501468    width: 100%;
    1451     padding: 9px 0;
     1469    text-align: center;
    14521470}
    14531471
    14541472.customize-control .attachment-media-view .upload-button.control-focus {
    14551473    width: auto;
    1456     padding: 0 10px;
    14571474}
    14581475
    14591476.customize-control.customize-control-header .actions .upload-button.button.new {
    14601477    width: 100%;
    1461     padding: 9px 0;
     1478    text-align: center;
    14621479}
    14631480
     
    15971614
    15981615.customize-control-header button.random .dice {
    1599     margin-top: 4px;
     1616    margin-top: 0;
    16001617}
    16011618
     
    17971814    right: 10px;
    17981815    top: 50%;
    1799     margin-top: -14px;
     1816    margin-top: -20px; /* Half of 40px button height for vertical centering */
    18001817    font-weight: 400;
    18011818}
     
    22002217
    22012218.themes-filter-bar .wp-filter-search {
    2202     line-height: 1.8;
    2203     padding: 6px 10px 6px 30px;
     2219    line-height: 2.14285714; /* 30px for 32px compact input */
     2220    padding: 0 10px 0 30px;
    22042221    max-width: 100%;
    22052222    width: 40%;
    22062223    min-width: 300px;
    22072224    height: 32px;
     2225    min-height: 32px; /* Override global 40px min-height for compact bar */
    22082226    margin: 1px 0;
    22092227    top: 0;
     
    26772695}
    26782696
     2697#available-widgets .accordion-section-title,
     2698#available-menu-items .accordion-section-title {
     2699    z-index: 2;
     2700}
     2701
    26792702#available-widgets .customize-section-title,
    26802703#available-menu-items .customize-section-title {
     
    27282751#available-menu-items-search input {
    27292752    width: 100%;
    2730     min-height: 32px;
     2753    min-height: 40px;
    27312754    margin: 1px 0;
    27322755    padding: 0 30px;
     
    27422765    display: block;
    27432766    position: absolute;
    2744     bottom: 15px; /* 13 container padding +1 input margin +1 input border */
     2767    bottom: 19px; /* 13 container padding +1 input margin +1 input border +4 centering in 40px input */
    27452768    left: 16px;
    27462769    width: 30px;
     
    27542777#available-menu-items-search .accordion-section-title .clear-results {
    27552778    position: absolute;
    2756     top: 36px; /* 13 container padding +1 input margin +1 input border */
     2779    top: 40px; /* 13 container padding +1 input margin +1 input border +4 centering in 40px input */
    27572780    right: 16px;
    27582781    width: 30px;
     
    29212944    #customize-control-changeset_preview_link a {
    29222945        bottom: 16px;
    2923     }
    2924 
    2925     .preview-link-wrapper .customize-copy-preview-link.preview-control-element.button {
    2926         bottom: 10px;
    29272946    }
    29282947
     
    30223041
    30233042    .customize-control .attachment-media-view .upload-button {
    3024         padding: 5px 0;
     3043        text-align: center;
    30253044    }
    30263045
     
    30923111
    30933112    #available-menu-items-search .clear-results {
    3094         top: 36px;
     3113        top: 40px;
    30953114        right: 16px;
    30963115    }
  • trunk/src/wp-admin/css/customize-nav-menus.css

    r61511 r61645  
    689689#available-menu-items-search .spinner {
    690690    position: absolute;
    691     bottom: 20px; /* 13 container padding +1 input margin +6 ( ( 32 input height - 20 spinner height ) / 2 ) */
     691    bottom: 24px; /* 13 container padding +1 input margin +10 ( ( 40 input height - 20 spinner height ) / 2 ) */
    692692    right: 21px;
    693693    margin: 0 !important;
     
    698698    position: absolute;
    699699    left: 0;
    700     top: 75px; /* below title div / search input */
     700    top: 83px; /* below title div / search input (75 + 8 for 40px input) */
    701701    bottom: 0; /* 100% height that still triggers lazy load */
    702702    max-height: none;
     
    861861
    862862.customize-control-nav_menu .customize-control-nav_menu-buttons {
     863    display: flex;
     864    flex-direction: row-reverse;
     865    align-items: center;
     866    gap: 8px;
    863867    margin-top: 12px;
    864868}
     
    883887@media screen and (max-width: 782px) {
    884888    #available-menu-items #available-menu-items-search .accordion-section-content {
    885         top: 63px;
     889        top: 71px; /* 63 + 8 for 40px input */
    886890    }
    887891}
     
    889893@media screen and (max-width: 640px) {
    890894    #available-menu-items #available-menu-items-search .accordion-section-content {
    891         top: 146px;
     895        top: 154px; /* 146 + 8 for 40px input */
    892896    }
    893897}
  • trunk/src/wp-admin/css/dashboard.css

    r61480 r61645  
    808808    max-height: 1300px;
    809809    margin: 0 0 8px;
    810     padding: 6px 7px;
     810    padding: 8px 12px;
    811811    resize: none;
    812812}
     
    12391239#dashboard_php_nag p {
    12401240    margin: 12px 0;
    1241 }
    1242 
    1243 #dashboard_php_nag .button .dashicons-external {
    1244     line-height: 25px;
    12451241}
    12461242
  • trunk/src/wp-admin/css/edit.css

    r61480 r61645  
    326326
    327327#post-body .tagsdiv #newtag {
    328     margin-right: 5px;
    329     width: 16em;
     328    margin-right: 0;
     329    flex: 1;
     330    min-width: 0;
    330331}
    331332
     
    335336
    336337#side-sortables .tagsdiv #newtag {
    337     width: 68%;
     338    flex: 1;
     339    min-width: 0;
    338340}
    339341
     
    14241426#poststuff .tagsdiv .ajaxtag {
    14251427    margin-top: 1em;
     1428    display: flex;
     1429    gap: 8px;
     1430    align-items: center;
    14261431}
    14271432
     
    14351440
    14361441.tagsdiv .newtag {
    1437     width: 180px;
     1442    flex: 1;
     1443    min-width: 0;
    14381444}
    14391445
     
    19281934    /* Tags Metabox */
    19291935    .tagsdiv .newtag {
    1930         width: 100%;
     1936        flex: 1;
     1937        min-width: 0;
    19311938        height: auto;
    1932         margin-bottom: 15px;
     1939        margin-bottom: 0;
    19331940    }
    19341941
  • trunk/src/wp-admin/css/forms.css

    r61514 r61645  
    1717textarea {
    1818    overflow: auto;
    19     padding: 2px 6px;
     19    padding: 8px 12px;
    2020    /* inherits font size 14px */
    2121    line-height: 1.42857143; /* 20px */
     
    2929
    3030textarea.code {
    31     padding: 4px 6px 1px;
     31    padding: 8px 12px;
    3232}
    3333
     
    4949textarea {
    5050    box-shadow: 0 0 0 transparent;
    51     border-radius: 4px;
    52     border: 1px solid #8c8f94;
     51    border-radius: 2px;
     52    border: 1px solid #949494;
    5353    background-color: #fff;
    54     color: #2c3338;
     54    color: #1e1e1e;
    5555}
    5656
     
    6868input[type="url"],
    6969input[type="week"] {
    70     padding: 0 8px;
     70    padding: 0 12px;
    7171    /* inherits font size 14px */
    72     line-height: 2; /* 28px */
    73     /* Only necessary for IE11 */
    74     min-height: 30px;
     72    line-height: 2.71428571; /* 38px for 40px min-height */
     73    min-height: 40px;
     74}
     75
     76select {
     77    padding: 0 24px 0 12px;
     78    /* inherits font size 14px */
     79    line-height: 2.71428571; /* 38px for 40px min-height */
     80    min-height: 40px;
    7581}
    7682
     
    94100input[type="url"]:focus,
    95101input[type="week"]:focus,
    96 input[type="checkbox"]:focus,
    97 input[type="radio"]:focus,
    98102select:focus,
    99103textarea:focus {
    100     border-color: #2271b1;
    101     box-shadow: 0 0 0 1px #2271b1;
     104    border-color: var(--wp-admin-theme-color);
     105    box-shadow: 0 0 0 var(--wp-admin-border-width-focus, 1.5px) var(--wp-admin-theme-color);
     106    /* Only visible in Windows High Contrast mode */
     107    outline: 2px solid transparent;
     108}
     109
     110/* Checkbox and radio use outset focus style */
     111input[type="checkbox"]:focus,
     112input[type="radio"]:focus {
     113    border-color: #1e1e1e;
     114    box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--wp-admin-theme-color);
    102115    /* Only visible in Windows High Contrast mode */
    103116    outline: 2px solid transparent;
     
    112125input[type="checkbox"],
    113126input[type="radio"] {
    114     border: 1px solid #8c8f94;
    115     border-radius: 4px;
     127    border: 1px solid #1e1e1e;
     128    border-radius: 2px;
    116129    background: #fff;
    117     color: #50575e;
     130    color: #1e1e1e;
    118131    clear: none;
    119132    cursor: pointer;
     
    129142    min-width: 1rem;
    130143    -webkit-appearance: none;
    131     box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
     144    box-shadow: none;
    132145    transition: .05s border-color ease-in-out;
    133146}
    134147
    135148input[type="radio"]:checked + label:before {
    136     color: #8c8f94;
     149    color: #949494;
    137150}
    138151
     
    175188input[type="checkbox"]:checked::before {
    176189    /* Use the "Yes" SVG Dashicon */
    177     content: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%233582c4%27%2F%3E%3C%2Fsvg%3E");
    178     content: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%233582c4%27%2F%3E%3C%2Fsvg%3E") / '';
     190    content: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%23ffffff%27%2F%3E%3C%2Fsvg%3E");
     191    content: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%23ffffff%27%2F%3E%3C%2Fsvg%3E") / '';
    179192    margin: -0.1875rem 0 0 -0.25rem;
    180193    height: 1.3125rem;
    181194    width: 1.3125rem;
     195}
     196
     197input[type="checkbox"]:checked {
     198    background: var(--wp-admin-theme-color);
     199    border-color: var(--wp-admin-theme-color);
     200}
     201
     202input[type="radio"]:checked {
     203    background: var(--wp-admin-theme-color);
     204    border-color: var(--wp-admin-theme-color);
    182205}
    183206
     
    188211    height: 0.5rem; /* 8px */
    189212    margin: 0.1875rem; /* 3px */
    190     background-color: #3582c4;
     213    background-color: #fff;
    191214    /* 16px not sure if still necessary, comes from the MP6 redesign in r26072 */
    192215    line-height: 1.14285714;
     
    223246textarea.readonly,
    224247textarea[readonly] {
    225     background-color: #f0f0f1;
     248    background-color: #f0f0f0;
    226249}
    227250
    228251::-webkit-input-placeholder {
    229     color: #646970;
     252    color: #757575;
    230253}
    231254
    232255::-moz-placeholder {
    233     color: #646970;
     256    color: #757575;
    234257}
    235258
     
    277300textarea:disabled,
    278301textarea.disabled {
    279     background: rgba(255, 255, 255, 0.5);
    280     border-color: rgba(220, 220, 222, 0.75);
    281     box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.04);
    282     color: rgba(44, 51, 56, 0.5);
     302    background: #f0f0f0;
     303    border-color: #cccccc;
     304    box-shadow: none;
     305    color: #949494;
    283306}
    284307
     
    315338.wp-core-ui select {
    316339    font-size: 14px;
    317     line-height: 2; /* 28px */
    318     color: #2c3338;
    319     border-color: #8c8f94;
     340    line-height: 2.71428571; /* 38px for 40px min-height */
     341    color: #1e1e1e;
     342    border-color: #949494;
    320343    box-shadow: none;
    321     border-radius: 3px;
    322     padding: 0 24px 0 8px;
    323     min-height: 30px;
     344    border-radius: 2px;
     345    padding: 0 24px 0 12px;
     346    min-height: 40px;
    324347    max-width: 25rem;
    325348    -webkit-appearance: none;
    326349    /* The SVG is arrow-down-alt2 from Dashicons. */
    327     background: #fff url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E') no-repeat right 5px top 55%;
     350    background: #fff url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%231e1e1e%22%2F%3E%3C%2Fsvg%3E') no-repeat right 8px top 55%;
    328351    background-size: 16px 16px;
    329352    cursor: pointer;
     
    332355
    333356.wp-core-ui select:hover {
    334     color: #2271b1;
     357    color: #1e1e1e;
     358    border-color: #1e1e1e;
    335359}
    336360
    337361.wp-core-ui select:focus {
    338     border-color: #2271b1;
    339     color: #0a4b78;
    340     box-shadow: 0 0 0 1px #2271b1;
     362    border-color: var(--wp-admin-theme-color);
     363    color: #1e1e1e;
     364    box-shadow: 0 0 0 var(--wp-admin-border-width-focus, 1.5px) var(--wp-admin-theme-color);
    341365}
    342366
    343367.wp-core-ui select:active {
    344     border-color: #8c8f94;
     368    border-color: #949494;
    345369    box-shadow: none;
    346370}
     
    377401
    378402.wp-core-ui select:hover::-ms-value {
    379     color: #2271b1;
     403    color: #1e1e1e;
    380404}
    381405
     
    472496input.small-text {
    473497    width: 50px;
    474     padding: 0 6px;
     498    padding: 0 8px;
    475499}
    476500
     
    481505input[type="number"].small-text {
    482506    width: 65px;
    483     padding-right: 0;
     507    padding-right: 4px;
    484508}
    485509
     
    497521#post-query-submit {
    498522    margin: 0 8px 0 0;
     523    min-height: 32px;
     524    line-height: 2.30769231; /* 30px for 32px height with 13px font */
     525    padding: 0 12px;
    499526}
    500527
     
    513540    margin-right: 6px;
    514541    max-width: 12.5rem;
     542    min-height: 32px;
     543    line-height: 2.14285714; /* 30px for 32px height with 14px font */
     544    padding: 0 24px 0 8px;
     545}
     546
     547.tablenav .actions .button {
     548    min-height: 32px;
     549    line-height: 2.30769231; /* 30px for 32px height with 13px font */
     550    padding: 0 12px;
    515551}
    516552
     
    519555}
    520556
    521 .wp-hide-pw > .dashicons,
    522 .wp-cancel-pw > .dashicons {
    523     position: relative;
    524     top: 3px;
     557.wp-core-ui .button.wp-hide-pw > .dashicons,
     558.wp-core-ui .button.wp-cancel-pw > .dashicons {
    525559    width: 1.25rem;
    526560    height: 1.25rem;
    527     top: 0.25rem;
    528561    font-size: 20px;
     562    line-height: 1;
     563    vertical-align: middle;
    529564}
    530565
     
    559594.wp-pwd button {
    560595    height: min-content;
    561 }
    562 
    563 .wp-pwd button.pwd-toggle .dashicons {
    564     position: relative;
    565     top: 0.25rem;
    566596}
    567597
     
    604634.mailserver-pass-wrap .button.wp-hide-pw:focus {
    605635    background: transparent;
    606     border-color: #3582c4;
    607     border-radius: 4px;
    608     box-shadow: 0 0 0 1px #3582c4;
     636    border-color: var(--wp-admin-theme-color);
     637    border-radius: 2px;
     638    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);
    609639    /* Only visible in Windows High Contrast mode */
    610640    outline: 2px solid transparent;
     
    622652
    623653#pass-strength-result {
    624     background-color: #f0f0f1;
    625     border: 1px solid #dcdcde;
    626     color: #1d2327;
     654    background-color: #f0f0f0;
     655    border: 1px solid #cccccc;
     656    border-radius: 2px;
     657    color: #1e1e1e;
    627658    margin: -1px 1px 5px;
    628659    padding: 3px 5px;
     
    683714#pass1:focus,
    684715#pass1-text:focus {
    685     box-shadow: 0 0 0 2px #2271b1;
     716    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);
    686717    /* Only visible in Windows High Contrast mode */
    687718    outline: 2px solid transparent;
     
    700731    margin-bottom: 0;
    701732    /* Same height as the buttons */
    702     min-height: 30px;
     733    min-height: 40px;
    703734}
    704735
     
    735766    padding: 3px 5px;
    736767    top: -4px;
    737     border-radius: 4px;
     768    border-radius: 2px;
    738769}
    739770
     
    762793}
    763794
     795p.search-box input[type="search"],
     796p.search-box input[type="text"] {
     797    min-height: 32px;
     798    line-height: 2.14285714; /* 30px for 32px height with 14px font */
     799    padding: 0 8px;
     800}
     801
     802p.search-box .button {
     803    min-height: 32px;
     804    line-height: 2.30769231; /* 30px for 32px height with 13px font */
     805    padding: 0 12px;
     806}
     807
    764808.network-admin.themes-php p.search-box {
    765809    clear: left;
    766810}
    767811
    768 .tablenav .search-plugins input[name="s"],
    769 .tagsdiv .newtag {
     812.tablenav .search-plugins input[name="s"] {
    770813    float: left;
    771814    margin: 0 4px 0 0;
     815}
     816
     817.tagsdiv .newtag {
     818    margin: 0;
    772819}
    773820
     
    820867.wp-tags-autocomplete .ui-state-focus,
    821868.wp-tags-autocomplete [aria-selected="true"] {
    822     background-color: #2271b1;
     869    background-color: var(--wp-admin-theme-color);
    823870    color: #fff;
    824871    /* Only visible in Windows High Contrast mode */
     
    11761223    width: 56px;
    11771224    margin: -2px 0;
     1225    min-height: 24px;
     1226    line-height: 1.71428571; /* 24px for 14px font size */
    11781227}
    11791228
     
    13671416
    13681417.request-filesystem-credentials-dialog .ftp-password em {
    1369     color: #8c8f94;
     1418    color: #757575;
    13701419}
    13711420
     
    15321581    input[type="week"] {
    15331582        -webkit-appearance: none;
    1534         padding: 3px 10px;
    1535         /* Only necessary for IE11 */
     1583        padding: 0 12px;
    15361584        min-height: 40px;
     1585        line-height: 2.5; /* 40px for 16px font */
    15371586    }
    15381587
     
    15861635        min-height: 40px;
    15871636        font-size: 16px;
    1588         line-height: 1.625; /* 26px */
    1589         padding: 5px 24px 5px 8px;
     1637        line-height: 2.5; /* 40px for 16px font */
     1638        padding: 0 24px 0 12px;
    15901639    }
    15911640
  • trunk/src/wp-admin/css/list-tables.css

    r61480 r61645  
    669669    font-size: 13px;
    670670    text-align: center;
     671    min-height: 32px;
     672    line-height: 2.30769231; /* 30px for 32px height with 13px font */
     673    padding: 0 8px;
    671674}
    672675
     
    681684.tablenav {
    682685    clear: both;
    683     height: 30px;
     686    height: 32px;
    684687    margin: 6px 0 4px;
    685     padding-top: 5px;
    686688    vertical-align: middle;
    687689}
     
    705707    display: inline-block;
    706708    vertical-align: baseline;
    707     min-width: 30px;
    708     min-height: 30px;
     709    min-width: 32px;
     710    min-height: 32px;
    709711    margin: 0;
    710712    padding: 0 4px;
    711713    font-size: 16px;
    712     line-height: 1.625; /* 26px */
     714    line-height: 1.875; /* 30px for 32px height */
    713715    text-align: center;
    714716}
     
    14221424    content: "\f463" / '';
    14231425    display: inline-block;
    1424     font: normal 20px/1 dashicons;
    1425     margin: -3px 5px 0 -2px;
     1426    font: normal 20px/1.9 dashicons; /* line-height 1.9 = 38px to match button */
     1427    margin: 0 5px 0 -2px;
    14261428    -webkit-font-smoothing: antialiased;
    14271429    -moz-osx-font-smoothing: grayscale;
    1428     vertical-align: middle;
     1430    vertical-align: top;
    14291431}
    14301432
  • trunk/src/wp-admin/css/login.css

    r61636 r61645  
    128128    width: 1.25rem;
    129129    height: 1.25rem;
    130     top: 0.25rem;
    131130}
    132131
  • trunk/src/wp-admin/css/media.css

    r61480 r61645  
    558558.media-frame.mode-grid .media-toolbar select {
    559559    margin: 0 10px 0 0;
     560    min-height: 32px;
     561    line-height: 2.14285714; /* 30px for 32px height with 14px font */
     562    padding: 0 24px 0 8px;
     563}
     564
     565.media-frame.mode-grid .media-toolbar input[type="search"] {
     566    min-height: 32px;
     567    line-height: 2.14285714; /* 30px for 32px height with 14px font */
     568    padding: 0 8px;
     569}
     570
     571.media-frame.mode-grid .media-toolbar .button {
     572    min-height: 32px;
     573    line-height: 2.30769231; /* 30px for 32px height with 13px font */
     574    padding: 0 12px;
    560575}
    561576
     
    763778}
    764779
     780.edit-attachment-frame .button {
     781    min-height: 32px;
     782    line-height: 2.30769231; /* 30px for 32px height with 13px font */
     783    padding: 0 12px;
     784}
     785
    765786.edit-attachment-frame .wp-media-wrapper {
    766787    margin-bottom: 12px;
  • trunk/src/wp-admin/css/nav-menus.css

    r59948 r61645  
    429429.list-controls {
    430430    float: left;
    431     margin-top: 5px;
    432431}
    433432
     
    868867
    869868#nav-menus-frame,
    870 .button-controls,
    871869#menu-item-url-wrap,
    872870#menu-item-name-wrap {
    873871    display: block;
     872}
     873
     874.button-controls {
     875    display: flex;
     876    align-items: center;
     877    justify-content: space-between;
    874878}
    875879
  • trunk/src/wp-admin/css/themes.css

    r61598 r61645  
    8484    height: 18px;
    8585    margin: 0;
    86     padding: 15px;
     86    padding: 16px 15px;
    8787    box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1);
    8888    overflow: hidden;
     
    113113}
    114114
     115/* Use compact size for space-constrained theme cards */
    115116.theme-browser .theme .theme-actions .button {
    116117    float: none;
    117118    margin-left: 3px;
     119    min-height: 32px;
     120    line-height: 2.30769231; /* 30px for 32px min-height */
     121    padding: 0 12px;
     122}
     123
     124/* Secondary buttons need white background for visibility on semi-transparent overlay */
     125.theme-browser .theme .theme-actions .button:not(.button-primary) {
     126    background: #fff;
     127}
     128
     129.theme-browser .theme .theme-actions .button:not(.button-primary):hover {
     130    background: #f0f0f0;
     131}
     132
     133.theme-browser .theme .theme-actions .button:not(.button-primary):focus {
     134    background: #fff;
    118135}
    119136
     
    212229    background: #1d2327;
    213230    color: #fff;
    214     padding-right: 110px;
     231    padding-right: 115px;
    215232    font-weight: 300;
    216233    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
     
    241258    transform: translateY(-50%);
    242259    right: 0;
    243     padding: 9px 15px;
     260    padding: 9px 12px;
    244261    box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1);
    245262}
     
    247264.theme-browser .theme.active .theme-actions .button-primary {
    248265    margin-right: 0;
     266}
     267
     268/* Active theme secondary buttons need white background for visibility on dark overlay */
     269.theme-browser .theme.active .theme-actions .button:not(.button-primary) {
     270    background: #fff;
     271}
     272
     273.theme-browser .theme.active .theme-actions .button:not(.button-primary):hover {
     274    background: #f0f0f0;
     275}
     276
     277.theme-browser .theme.active .theme-actions .button:not(.button-primary):focus {
     278    background: #fff;
    249279}
    250280
     
    13551385.background-position-control .button-group:last-child > label:last-child .dashicons {
    13561386    transform: rotate( 45deg );
    1357 }
    1358 
    1359 .background-position-control .button-group .dashicons {
    1360     margin-top: 9px;
    13611387}
    13621388
     
    14761502
    14771503.wp-full-overlay-sidebar .wp-full-overlay-header a.back {
    1478     margin-top: 9px;
     1504    margin-top: 3px; /* Vertically center 40px button in 45px header */
    14791505}
    14801506
     
    19241950.theme-install-overlay .wp-full-overlay-header .button {
    19251951    float: right;
    1926     margin: 8px 10px 0 0;
     1952    margin: 3px 10px 0 0; /* Vertically center 40px button in 45px header */
    19271953}
    19281954
  • trunk/src/wp-includes/css/buttons.css

    r57553 r61645  
    4747    text-decoration: none;
    4848    font-size: 13px;
    49     line-height: 2.15384615; /* 28px */
    50     min-height: 30px;
     49    font-weight: 500;
     50    line-height: 2.92307692; /* 38px - allows 40px min-height with 1px border */
     51    min-height: 40px;
    5152    margin: 0;
    52     padding: 0 10px;
     53    padding: 0 16px;
    5354    cursor: pointer;
    5455    border-width: 1px;
    5556    border-style: solid;
    5657    -webkit-appearance: none;
    57     border-radius: 3px;
     58    border-radius: 2px;
    5859    white-space: nowrap;
    5960    box-sizing: border-box;
     
    7071}
    7172
     73/* Compact size - 32px, for space-constrained contexts */
     74.wp-core-ui .button.button-compact,
     75.wp-core-ui .button-group.button-compact .button {
     76    line-height: 2.30769231; /* 30px - allows 32px min-height with 1px border */
     77    min-height: 32px;
     78    padding: 0 12px;
     79}
     80
     81/* Small size - 24px */
     82.wp-core-ui .button.button-small,
     83.wp-core-ui .button-group.button-small .button {
     84    line-height: 2; /* 22px - allows 24px min-height with 1px border */
     85    min-height: 24px;
     86    padding: 0 8px;
     87    font-size: 11px;
     88}
     89
     90/* Large size - explicit 40px (same as default, for semantic clarity) */
    7291.wp-core-ui .button.button-large,
    7392.wp-core-ui .button-group.button-large .button {
    74     min-height: 32px;
    75     line-height: 2.30769231; /* 30px */
    76     padding: 0 12px;
    77 }
    78 
    79 .wp-core-ui .button.button-small,
    80 .wp-core-ui .button-group.button-small .button {
    81     min-height: 26px;
    82     line-height: 2.18181818; /* 24px */
    83     padding: 0 8px;
    84     font-size: 11px;
     93    line-height: 2.92307692; /* 38px - allows 40px min-height with 1px border */
     94    min-height: 40px;
     95    padding: 0 16px;
    8596}
    8697
     
    8899.wp-core-ui .button-group.button-hero .button {
    89100    font-size: 14px;
    90     min-height: 46px;
    91     line-height: 3.14285714;
     101    line-height: 3.28571429; /* 46px - allows 48px min-height with 1px border */
     102    min-height: 48px;
    92103    padding: 0 36px;
    93104}
     
    95106.wp-core-ui .button.hidden {
    96107    display: none;
     108}
     109
     110/* Button Icons - Dashicons centering for all button sizes */
     111/* Dashicons are 20px font-size, so line-height = target-height / 20 */
     112.wp-core-ui .button .dashicons,
     113.wp-core-ui .button-primary .dashicons,
     114.wp-core-ui .button-secondary .dashicons {
     115    line-height: 1.9; /* 38px (20px * 1.9) - matches default button */
     116    vertical-align: top;
     117}
     118
     119.wp-core-ui .button.button-compact .dashicons {
     120    line-height: 1.5; /* 30px (20px * 1.5) - matches compact button */
     121}
     122
     123.wp-core-ui .button.button-small .dashicons {
     124    line-height: 1.1; /* 22px (20px * 1.1) - matches small button */
     125}
     126
     127.wp-core-ui .button.button-hero .dashicons {
     128    line-height: 2.3; /* 46px (20px * 2.3) - matches hero button */
    97129}
    98130
     
    116148.wp-core-ui .button,
    117149.wp-core-ui .button-secondary {
    118     color: #2271b1;
    119     border-color: #2271b1;
    120     background: #f6f7f7;
     150    color: var(--wp-admin-theme-color);
     151    border-color: var(--wp-admin-theme-color);
     152    background: transparent;
    121153    vertical-align: top;
    122154}
     
    128160.wp-core-ui .button.hover,
    129161.wp-core-ui .button:hover,
    130 .wp-core-ui .button-secondary:hover{
    131     background: #f0f0f1;
    132     border-color: #0a4b78;
    133     color: #0a4b78;
     162.wp-core-ui .button-secondary:hover {
     163    background: rgba(var(--wp-admin-theme-color--rgb), 0.04);
     164    border-color: var(--wp-admin-theme-color-darker-20);
     165    color: var(--wp-admin-theme-color-darker-20);
    134166}
    135167
     
    137169.wp-core-ui .button:focus,
    138170.wp-core-ui .button-secondary:focus {
    139     background: #f6f7f7;
    140     border-color: #3582c4;
    141     color: #0a4b78;
    142     box-shadow: 0 0 0 1px #3582c4;
     171    background: transparent;
     172    border-color: var(--wp-admin-theme-color);
     173    color: var(--wp-admin-theme-color);
     174    box-shadow: 0 0 0 var(--wp-admin-border-width-focus, 1.5px) var(--wp-admin-theme-color);
    143175    /* Only visible in Windows High Contrast mode */
    144     outline: 2px solid transparent;
     176    outline: 1px solid transparent;
    145177    /* Reset inherited offset from Gutenberg */
    146178    outline-offset: 0;
     
    150182.wp-core-ui .button:active,
    151183.wp-core-ui .button-secondary:active {
    152     background: #f6f7f7;
    153     border-color: #8c8f94;
     184    background: rgba(var(--wp-admin-theme-color--rgb), 0.08);
     185    border-color: var(--wp-admin-theme-color-darker-20);
     186    color: var(--wp-admin-theme-color-darker-20);
    154187    box-shadow: none;
    155188}
     
    158191.wp-core-ui .button.active,
    159192.wp-core-ui .button.active:hover {
    160     background-color: #dcdcde;
    161     color: #135e96;
    162     border-color: #0a4b78;
    163     box-shadow: inset 0 2px 5px -3px #0a4b78;
     193    background-color: rgba(var(--wp-admin-theme-color--rgb), 0.04);
     194    color: var(--wp-admin-theme-color);
     195    border-color: var(--wp-admin-theme-color);
     196    box-shadow: none;
    164197}
    165198
    166199.wp-core-ui .button.active:focus {
    167     border-color: #3582c4;
    168     box-shadow:
    169         inset 0 2px 5px -3px #0a4b78,
    170         0 0 0 1px #3582c4;
     200    border-color: var(--wp-admin-theme-color);
     201    box-shadow: 0 0 0 var(--wp-admin-border-width-focus, 1.5px) var(--wp-admin-theme-color);
    171202}
    172203
     
    178209.wp-core-ui .button-secondary.disabled,
    179210.wp-core-ui .button-disabled {
    180     color: #a7aaad !important;
    181     border-color: #dcdcde !important;
    182     background: #f6f7f7 !important;
     211    color: #949494 !important;
     212    border-color: #dddddd !important;
     213    background: transparent !important;
    183214    box-shadow: none !important;
    184215    cursor: default;
     
    202233    text-align: left;
    203234    /* Mimics the default link style in common.css */
    204     color: #2271b1;
     235    color: var(--wp-admin-theme-color);
    205236    text-decoration: underline;
    206237    transition-property: border, background, color;
     
    211242.wp-core-ui .button-link:hover,
    212243.wp-core-ui .button-link:active {
    213     color: #135e96;
     244    color: var(--wp-admin-theme-color-darker-20);
    214245}
    215246
    216247.wp-core-ui .button-link:focus {
    217     color: #043959;
    218     box-shadow: 0 0 0 2px #2271b1;
     248    color: var(--wp-admin-theme-color);
     249    box-shadow: 0 0 0 var(--wp-admin-border-width-focus, 1.5px) var(--wp-admin-theme-color);
     250    border-radius: 2px;
    219251    /* Only visible in Windows High Contrast mode */
    220     outline: 2px solid transparent;
     252    outline: 1px solid transparent;
    221253}
    222254
     
    242274
    243275.wp-core-ui .button-primary {
    244     background: #2271b1;
    245     border-color: #2271b1;
     276    background: var(--wp-admin-theme-color);
     277    border-color: var(--wp-admin-theme-color);
    246278    color: #fff;
    247279    text-decoration: none;
     
    250282
    251283.wp-core-ui .button-primary.hover,
    252 .wp-core-ui .button-primary:hover,
     284.wp-core-ui .button-primary:hover {
     285    background: var(--wp-admin-theme-color-darker-10);
     286    border-color: var(--wp-admin-theme-color-darker-10);
     287    color: #fff;
     288}
     289
    253290.wp-core-ui .button-primary.focus,
    254291.wp-core-ui .button-primary:focus {
    255     background: #135e96;
    256     border-color: #135e96;
     292    background: var(--wp-admin-theme-color);
     293    border-color: var(--wp-admin-theme-color);
    257294    color: #fff;
    258 }
    259 
    260 .wp-core-ui .button-primary.focus,
    261 .wp-core-ui .button-primary:focus {
    262295    box-shadow:
    263         0 0 0 1px #fff,
    264         0 0 0 3px #2271b1;
     296        0 0 0 var(--wp-admin-border-width-focus, 1.5px) var(--wp-admin-theme-color),
     297        inset 0 0 0 1px #fff;
     298    outline: 1px solid transparent;
    265299}
    266300
     
    269303.wp-core-ui .button-primary.active:focus,
    270304.wp-core-ui .button-primary:active {
    271     background: #135e96;
    272     border-color: #135e96;
     305    background: var(--wp-admin-theme-color-darker-20);
     306    border-color: var(--wp-admin-theme-color-darker-20);
    273307    box-shadow: none;
    274308    color: #fff;
     
    279313.wp-core-ui .button-primary-disabled,
    280314.wp-core-ui .button-primary.disabled {
    281     color: #a7aaad !important;
    282     background: #f6f7f7 !important;
    283     border-color: #dcdcde !important;
     315    color: #949494 !important;
     316    background: #f0f0f0 !important;
     317    border-color: #f0f0f0 !important;
    284318    box-shadow: none !important;
    285319    text-shadow: none !important;
     
    310344
    311345.wp-core-ui .button-group > .button:first-child {
    312     border-radius: 3px 0 0 3px;
     346    border-radius: 2px 0 0 2px;
    313347}
    314348
    315349.wp-core-ui .button-group > .button:last-child {
    316     border-radius: 0 3px 3px 0;
     350    border-radius: 0 2px 2px 0;
    317351}
    318352
     
    354388    a.preview {
    355389        padding: 0 14px;
    356         line-height: 2.71428571; /* 38px */
     390        line-height: 2.71428571; /* 38px - allows 40px min-height with 1px border */
    357391        font-size: 14px;
    358392        vertical-align: middle;
     
    361395    }
    362396
     397    /* Responsive Button Icons - Dashicons centering */
     398    .wp-core-ui .button .dashicons,
     399    .wp-core-ui .button-primary .dashicons,
     400    .wp-core-ui .button-secondary .dashicons {
     401        line-height: 1.9; /* 38px (20px * 1.9) - matches responsive button */
     402    }
     403
    363404    /* Copy attachment URL button in the legacy edit media page. */
    364405    .wp-core-ui .copy-to-clipboard-container .copy-attachment-url {
     
    367408
    368409    #media-upload.wp-core-ui .button {
    369         padding: 0 10px 1px;
     410        padding: 0 10px;
     411        line-height: 1.69230769; /* 22px */
    370412        min-height: 24px;
    371         line-height: 22px;
    372413        font-size: 13px;
    373414    }
     
    387428    .wp-core-ui.wp-customizer .button {
    388429        font-size: 13px;
    389         line-height: 2.15384615; /* 28px */
    390         min-height: 30px;
     430        line-height: 2.30769231; /* 30px */
     431        min-height: 32px;
    391432        margin: 0;
    392433        vertical-align: inherit;
     
    405446
    406447    .interim-login .button.button-large {
    407         min-height: 30px;
    408         line-height: 2;
    409         padding: 0 12px 2px;
    410     }
    411 
    412 }
     448        min-height: 32px;
     449        line-height: 2.30769231; /* 30px */
     450        padding: 0 12px;
     451    }
     452
     453}
  • trunk/src/wp-includes/css/editor.css

    r61480 r61645  
    11611161    line-height: 1.46153846;
    11621162    height: 20px;
    1163     margin: 5px 0 0 5px;
     1163    margin: 15px 0 0 5px;
    11641164    padding: 3px 8px 4px;
    11651165    border: 1px solid #dcdcde;
  • trunk/src/wp-includes/css/media-views.css

    r61636 r61645  
    6767.media-frame input,
    6868.media-frame textarea {
    69     padding: 6px 8px;
     69    padding: 8px 12px;
    7070}
    7171
    7272.media-frame select,
    7373.wp-admin .media-frame select {
    74     min-height: 30px;
     74    min-height: 40px;
    7575    vertical-align: middle;
    7676}
     
    9393.media-frame select {
    9494    box-shadow: 0 0 0 transparent;
    95     border-radius: 4px;
    96     border: 1px solid #8c8f94;
     95    border-radius: 2px;
     96    border: 1px solid #949494;
    9797    background-color: #fff;
    98     color: #2c3338;
     98    color: #1e1e1e;
    9999    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
    100     font-size: 13px;
    101     line-height: 1.38461538;
     100    font-size: 14px;
     101    line-height: 1.42857143;
    102102}
    103103
     
    115115.media-frame input[type="url"],
    116116.media-frame input[type="week"] {
    117     padding: 0 8px;
    118     /* inherits font size 13px */
    119     line-height: 2.15384615; /* 28px */
     117    padding: 0 12px;
     118    /* inherits font size 14px */
     119    line-height: 2.71428571; /* 38px for 40px min-height */
     120    min-height: 40px;
    120121}
    121122
     
    134135.media-frame textarea:focus,
    135136.media-frame select:focus {
    136     border-color: #3582c4;
    137     box-shadow: 0 0 0 1px #3582c4;
     137    border-color: var(--wp-admin-theme-color);
     138    /* Expand border by 0.5px for total 1.5px effect */
     139    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);
    138140    outline: 2px solid transparent;
    139141}
     
    143145.media-frame input[readonly],
    144146.media-frame textarea[readonly] {
    145     background-color: #f0f0f1;
     147    background-color: #f0f0f0;
     148    border-color: #cccccc;
     149    color: #949494;
    146150}
    147151
     
    268272}
    269273
     274.media-modal-content .button,
     275.media-modal-content .button.button-large {
     276    min-height: 32px;
     277    line-height: 2.30769231; /* 30px for 32px height with 13px font */
     278    padding: 0 12px;
     279}
     280
     281.media-toolbar input[type="text"],
     282.media-toolbar input[type="search"],
     283.media-toolbar select {
     284    min-height: 32px;
     285    line-height: 2.14285714; /* 30px for 32px height with 14px font */
     286}
     287
     288.media-toolbar input[type="text"],
     289.media-toolbar input[type="search"] {
     290    padding: 0 8px;
     291}
     292
     293.media-toolbar select {
     294    padding: 0 24px 0 8px;
     295}
     296
    270297.media-modal-content .media-frame select.attachment-filters {
    271298    margin-top: 32px;
     
    298325.media-frame-toolbar .media-toolbar {
    299326    top: auto;
    300     bottom: -47px;
     327    bottom: -60px;
    301328    height: auto;
    302329    overflow: visible;
    303330    border-top: 1px solid #dcdcde;
     331    background: #fff;
     332}
     333
     334.media-frame-toolbar .media-toolbar-primary > .media-button,
     335.media-frame-toolbar .media-toolbar-primary > .media-button-group {
     336    margin-top: 14px;
     337    margin-bottom: 14px;
    304338}
    305339
     
    898932 */
    899933.media-frame select.attachment-filters {
     934    min-height: 32px;
     935    line-height: 2.14285714; /* 30px for 32px height with 14px font */
     936    padding: 0 24px 0 8px;
    900937    margin-top: 11px;
    901938    margin-right: 2%;
     
    27852822
    27862823    .media-frame-toolbar .media-toolbar {
    2787         bottom: -54px;
     2824        bottom: -60px;
    27882825    }
    27892826
Note: See TracChangeset for help on using the changeset viewer.