From 185ced6f616db4d7b4c1f92a8514d4e277e401b4 Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Tue, 28 Jul 2026 09:49:31 -0500 Subject: [PATCH 01/14] Make new th position relative, so disclosure toggles show --- src/wp-admin/css/list-tables.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/wp-admin/css/list-tables.css b/src/wp-admin/css/list-tables.css index 46c2002e3e3a1..7e223c55e797e 100644 --- a/src/wp-admin/css/list-tables.css +++ b/src/wp-admin/css/list-tables.css @@ -1939,6 +1939,7 @@ div.action-links, display: block; } + .wp-list-table th, .wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.check-column) { position: relative; clear: both; From a26a7bd195971b7762ce3c1ed649ff379654efa7 Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Tue, 28 Jul 2026 09:58:37 -0500 Subject: [PATCH 02/14] Row actions are flex with gap, and no longer need extra spacing. --- src/wp-admin/css/list-tables.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/wp-admin/css/list-tables.css b/src/wp-admin/css/list-tables.css index 7e223c55e797e..5a33d25c85232 100644 --- a/src/wp-admin/css/list-tables.css +++ b/src/wp-admin/css/list-tables.css @@ -1967,6 +1967,7 @@ div.action-links, text-overflow: ellipsis; } + .wp-list-table .is-expanded th:not(.hidden), .wp-list-table .is-expanded td:not(.hidden) { display: block !important; overflow: hidden; /* clearfix */ @@ -2084,7 +2085,7 @@ div.action-links, .row-actions span a, .row-actions span .button-link { display: inline-block; - padding: 4px 16px 4px 0; + padding: 4px 8px 4px 0; font-size: 13px; line-height: 1.5; } From be5c7917a0a9b8e611b60bf6d8907f0124565685 Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Tue, 28 Jul 2026 10:34:02 -0500 Subject: [PATCH 03/14] Update list-tables.css --- src/wp-admin/css/list-tables.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wp-admin/css/list-tables.css b/src/wp-admin/css/list-tables.css index 5a33d25c85232..db90a760fc562 100644 --- a/src/wp-admin/css/list-tables.css +++ b/src/wp-admin/css/list-tables.css @@ -1967,7 +1967,7 @@ div.action-links, text-overflow: ellipsis; } - .wp-list-table .is-expanded th:not(.hidden), + .wp-list-table .is-expanded th.column-primary, .wp-list-table .is-expanded td:not(.hidden) { display: block !important; overflow: hidden; /* clearfix */ From 08d990ba38a94502dec2a7c3ce8b2da5b2b59ed4 Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Tue, 28 Jul 2026 16:29:50 -0500 Subject: [PATCH 04/14] Only adjust vertical alignment on tbody th --- src/wp-admin/css/common.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wp-admin/css/common.css b/src/wp-admin/css/common.css index e1e5ee3181330..4b82b590a7120 100644 --- a/src/wp-admin/css/common.css +++ b/src/wp-admin/css/common.css @@ -501,7 +501,7 @@ code { border-bottom-width: 0; } -.widefat th, +.widefat tbody th, .widefat td { vertical-align: top; } From 813d504297099a6563b32ec99f3bdad3bfcd1f07 Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Tue, 28 Jul 2026 16:30:24 -0500 Subject: [PATCH 05/14] Make th styles more context specific --- src/wp-admin/css/list-tables.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/wp-admin/css/list-tables.css b/src/wp-admin/css/list-tables.css index db90a760fc562..69262f5e7ab7e 100644 --- a/src/wp-admin/css/list-tables.css +++ b/src/wp-admin/css/list-tables.css @@ -1921,7 +1921,7 @@ div.action-links, display: none; } - .wp-list-table thead th.column-primary { + .wp-list-table th.column-primary { width: 100%; } @@ -1939,7 +1939,7 @@ div.action-links, display: block; } - .wp-list-table th, + .wp-list-table tbody th, .wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.check-column) { position: relative; clear: both; @@ -1947,7 +1947,7 @@ div.action-links, } .wp-list-table td.column-primary, - .wp-list-table th.column-primary { + .wp-list-table tbody th.column-primary { padding-right: 50px; /* space for toggle button */ } From 0e35c64400f356c0951707e78d6aa19a2ee6dc89 Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Tue, 28 Jul 2026 17:11:18 -0500 Subject: [PATCH 06/14] Switch list table toggle CSS to use flex box --- src/wp-admin/css/list-tables.css | 57 +++++++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 9 deletions(-) diff --git a/src/wp-admin/css/list-tables.css b/src/wp-admin/css/list-tables.css index 69262f5e7ab7e..e4d008c5dc58f 100644 --- a/src/wp-admin/css/list-tables.css +++ b/src/wp-admin/css/list-tables.css @@ -1335,6 +1335,34 @@ ul.cat-checklist input[name="post_category[]"]:indeterminate::before { border-left: 4px solid var(--wp-admin-theme-color); } +@media screen and ( width < 782px ) { + .plugins tr.active.plugin-update-tr + tr.inactive th, + .plugins tr.active.plugin-update-tr + tr.inactive td, + .plugins tr.active + tr.inactive th, + .plugins tr.active + tr.inactive td, + .plugins .inactive td, + .plugins .inactive th, + .plugins .active td, + .plugins .active th, + .plugin-install #the-list td, + .upgrade .plugins td, + .upgrade .plugins th { + box-shadow: none; + } + .plugins tr { + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1); + } + .plugins .active th.check-column, + .plugins .active td.check-column, + .plugin-update-tr.active td { + border-left: 4px solid transparent; + } + .plugins tr.active, + .plugin-update-tr.active { + border-left: 4px solid var(--wp-admin-theme-color); + } +} + .wp-list-table.plugins .plugin-title, .wp-list-table.plugins .theme-title { padding-right: 12px; @@ -1925,16 +1953,30 @@ div.action-links, width: 100%; } - /* Checkboxes need to show */ - .wp-list-table tr th.check-column, - .wp-list-table tr td.check-column { - display: table-cell; + .wp-list-table tr { + display: flex; + flex-wrap: wrap; + } + + .wp-list-table thead th { + align-content: center; } - .wp-list-table .check-column { + .wp-list-table td.check-column, + .wp-list-table th.check-column { + flex: 0 0 2.5em; width: 2.5em; } + .wp-list-table td.column-primary, + .wp-list-table th.column-primary { + flex: 1 1 0; + } + + .wp-list-table tr td:nth-child(n+3) { + flex: 0 1 100%; + } + .wp-list-table .column-primary .toggle-row { display: block; } @@ -1942,8 +1984,6 @@ div.action-links, .wp-list-table tbody th, .wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.check-column) { position: relative; - clear: both; - width: auto !important; /* needs to override some columns that are more specifically targeted */ } .wp-list-table td.column-primary, @@ -1956,7 +1996,7 @@ div.action-links, padding: 3px 8px 3px 35%; } - .wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary)::before { + .wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.check-column)::before { position: absolute; left: 10px; /* match padding of regular table cell */ display: block; @@ -1967,7 +2007,6 @@ div.action-links, text-overflow: ellipsis; } - .wp-list-table .is-expanded th.column-primary, .wp-list-table .is-expanded td:not(.hidden) { display: block !important; overflow: hidden; /* clearfix */ From 85c6b7338f733b3fa5d7871a6043c08228888f86 Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Thu, 30 Jul 2026 11:20:02 -0500 Subject: [PATCH 07/14] Adjust inherited font sizing for tbody th --- src/wp-admin/css/common.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/wp-admin/css/common.css b/src/wp-admin/css/common.css index 4b82b590a7120..980702d31fb80 100644 --- a/src/wp-admin/css/common.css +++ b/src/wp-admin/css/common.css @@ -520,6 +520,12 @@ code { .widefat tfoot td { text-align: left; line-height: 1.3em; +} + +.widefat th:not(tbody th), +.widefat tbody td.check-column, +.widefat thead td, +.widefat tfoot td { font-size: 14px; } From acbfa4a2012aece51b0e7f09fed4dfbd5615c9e8 Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Thu, 30 Jul 2026 11:20:58 -0500 Subject: [PATCH 08/14] Revert "Row actions are flex with gap, and no longer need extra spacing." This reverts commit a26a7bd195971b7762ce3c1ed649ff379654efa7. --- src/wp-admin/css/list-tables.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wp-admin/css/list-tables.css b/src/wp-admin/css/list-tables.css index e4d008c5dc58f..d5c9fd6e3c561 100644 --- a/src/wp-admin/css/list-tables.css +++ b/src/wp-admin/css/list-tables.css @@ -2124,7 +2124,7 @@ div.action-links, .row-actions span a, .row-actions span .button-link { display: inline-block; - padding: 4px 8px 4px 0; + padding: 4px 16px 4px 0; font-size: 13px; line-height: 1.5; } From bf7e0e0028a0c99c5548eaef2677167cc266c318 Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Thu, 30 Jul 2026 11:22:22 -0500 Subject: [PATCH 09/14] Restore alteration --- src/wp-admin/css/list-tables.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/wp-admin/css/list-tables.css b/src/wp-admin/css/list-tables.css index d5c9fd6e3c561..e56541b2c7ebd 100644 --- a/src/wp-admin/css/list-tables.css +++ b/src/wp-admin/css/list-tables.css @@ -2007,6 +2007,7 @@ div.action-links, text-overflow: ellipsis; } + .wp-list-table .is-expanded th:not(.hidden), .wp-list-table .is-expanded td:not(.hidden) { display: block !important; overflow: hidden; /* clearfix */ From b3e327d7478aa868b2a8136ed2d5c36e88141ba3 Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Thu, 30 Jul 2026 11:29:38 -0500 Subject: [PATCH 10/14] Realign checkbox in active plugin columns --- src/wp-admin/css/list-tables.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/wp-admin/css/list-tables.css b/src/wp-admin/css/list-tables.css index e56541b2c7ebd..04b69778632e9 100644 --- a/src/wp-admin/css/list-tables.css +++ b/src/wp-admin/css/list-tables.css @@ -1357,6 +1357,10 @@ ul.cat-checklist input[name="post_category[]"]:indeterminate::before { .plugin-update-tr.active td { border-left: 4px solid transparent; } + .plugins .active th.check-column input, + .plugins .active td.check-column input { + margin-left: 0px; + } .plugins tr.active, .plugin-update-tr.active { border-left: 4px solid var(--wp-admin-theme-color); From 8f48c5ac1581e50dd0839401339ddb4fa542b035 Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Thu, 30 Jul 2026 11:32:07 -0500 Subject: [PATCH 11/14] Fix preexisting issue in plugin header --- src/wp-admin/css/list-tables.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wp-admin/css/list-tables.css b/src/wp-admin/css/list-tables.css index 04b69778632e9..8eabb2aa762cf 100644 --- a/src/wp-admin/css/list-tables.css +++ b/src/wp-admin/css/list-tables.css @@ -2277,7 +2277,7 @@ div.action-links, } /* Plugin/Theme Management */ - #wpbody-content .wp-list-table.plugins td { + #wpbody-content .wp-list-table.plugins tbody td { display: block; width: auto; padding: 10px 9px; /* reset from other list tables that have a label at this width */ From 0b3a96c99f381a4a7eee01268b8deffe8b136135 Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Thu, 30 Jul 2026 11:51:41 -0500 Subject: [PATCH 12/14] Move CSS into existing media query --- src/wp-admin/css/list-tables.css | 70 ++++++++++++++++---------------- 1 file changed, 34 insertions(+), 36 deletions(-) diff --git a/src/wp-admin/css/list-tables.css b/src/wp-admin/css/list-tables.css index 8eabb2aa762cf..15581042fb88d 100644 --- a/src/wp-admin/css/list-tables.css +++ b/src/wp-admin/css/list-tables.css @@ -1335,38 +1335,6 @@ ul.cat-checklist input[name="post_category[]"]:indeterminate::before { border-left: 4px solid var(--wp-admin-theme-color); } -@media screen and ( width < 782px ) { - .plugins tr.active.plugin-update-tr + tr.inactive th, - .plugins tr.active.plugin-update-tr + tr.inactive td, - .plugins tr.active + tr.inactive th, - .plugins tr.active + tr.inactive td, - .plugins .inactive td, - .plugins .inactive th, - .plugins .active td, - .plugins .active th, - .plugin-install #the-list td, - .upgrade .plugins td, - .upgrade .plugins th { - box-shadow: none; - } - .plugins tr { - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1); - } - .plugins .active th.check-column, - .plugins .active td.check-column, - .plugin-update-tr.active td { - border-left: 4px solid transparent; - } - .plugins .active th.check-column input, - .plugins .active td.check-column input { - margin-left: 0px; - } - .plugins tr.active, - .plugin-update-tr.active { - border-left: 4px solid var(--wp-admin-theme-color); - } -} - .wp-list-table.plugins .plugin-title, .wp-list-table.plugins .theme-title { padding-right: 12px; @@ -1953,10 +1921,6 @@ div.action-links, display: none; } - .wp-list-table th.column-primary { - width: 100%; - } - .wp-list-table tr { display: flex; flex-wrap: wrap; @@ -1981,6 +1945,40 @@ div.action-links, flex: 0 1 100%; } + .plugins tr.active.plugin-update-tr + tr.inactive th, + .plugins tr.active.plugin-update-tr + tr.inactive td, + .plugins tr.active + tr.inactive th, + .plugins tr.active + tr.inactive td, + .plugins .inactive td, + .plugins .inactive th, + .plugins .active td, + .plugins .active th, + .plugin-install #the-list td, + .upgrade .plugins td, + .upgrade .plugins th { + box-shadow: none; + } + + .plugins tr { + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1); + } + + .plugins .active th.check-column, + .plugins .active td.check-column, + .plugin-update-tr.active td { + border-left: 4px solid transparent; + } + + .plugins .active th.check-column input, + .plugins .active td.check-column input { + margin-left: 0px; + } + + .plugins tr.active, + .plugin-update-tr.active { + border-left: 4px solid var(--wp-admin-theme-color); + } + .wp-list-table .column-primary .toggle-row { display: block; } From e617bfa81f724ee905cf1ad2bdaa8bad91bcf176 Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Thu, 30 Jul 2026 11:56:06 -0500 Subject: [PATCH 13/14] Force links to wrap If a plugin inserts an additional column to the left of column-primary, not wrapping the title will cause the th to expand beyond the width of the container. --- src/wp-admin/css/list-tables.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/wp-admin/css/list-tables.css b/src/wp-admin/css/list-tables.css index 15581042fb88d..c986afaf03816 100644 --- a/src/wp-admin/css/list-tables.css +++ b/src/wp-admin/css/list-tables.css @@ -1936,6 +1936,10 @@ div.action-links, width: 2.5em; } + .wp-list-table .column-primary a { + text-wrap: wrap; + } + .wp-list-table td.column-primary, .wp-list-table th.column-primary { flex: 1 1 0; From 7802c086485a95ea3f6606e53e69f730882c9b4d Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Thu, 30 Jul 2026 11:58:16 -0500 Subject: [PATCH 14/14] Handle additional scoped selectors for column-title Ensures the excerpt shows on a new line in excerpt view. --- src/wp-admin/css/list-tables.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/wp-admin/css/list-tables.css b/src/wp-admin/css/list-tables.css index c986afaf03816..3d6f455f04b88 100644 --- a/src/wp-admin/css/list-tables.css +++ b/src/wp-admin/css/list-tables.css @@ -353,6 +353,8 @@ table.fixed { padding-left: 3px; } +th.column-title strong, +th.plugin-title strong, td.column-title strong, td.plugin-title strong { display: block; @@ -360,6 +362,8 @@ td.plugin-title strong { font-size: 14px; } +th.column-title p, +th.plugin-title p, td.column-title p, td.plugin-title p { margin: 6px 0;