Skip to content
Draft
Show file tree
Hide file tree
Changes from 34 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
da1b96e
feat: apply initial UI review tokens
code-snippets-bot Aug 4, 2026
211d1c6
feat: refine snippets navigation
code-snippets-bot Aug 5, 2026
69a4ef9
fix: retain Core tab counts
code-snippets-bot Aug 5, 2026
5ee3624
fix: hide locked tab counts in Core
code-snippets-bot Aug 5, 2026
3924ae3
fix: version Manage assets by build time
code-snippets-bot Aug 5, 2026
bd09095
fix: refine settings navigation
code-snippets-bot Aug 5, 2026
99e3aa6
fix: preserve responsive settings access
code-snippets-bot Aug 5, 2026
15ec33e
fix: refine mobile table controls
code-snippets-bot Aug 5, 2026
8c43df6
fix: refine editor sidebar controls
code-snippets-bot Aug 5, 2026
e45331e
fix: version editor assets by build time
code-snippets-bot Aug 5, 2026
fc44d7e
fix: unify subnavigation bands
code-snippets-bot Aug 5, 2026
a8358e9
fix: remove settings tab spacing
code-snippets-bot Aug 5, 2026
74e88de
fix: fill responsive secondary navigation
code-snippets-bot Aug 5, 2026
7bcda6d
fix: normalize card text metrics
code-snippets-bot Aug 5, 2026
3b5d56b
fix: normalize editor controls
code-snippets-bot Aug 5, 2026
34bbdcc
fix: clarify editor heading structure
code-snippets-bot Aug 5, 2026
59ddc51
fix: align shared control variants
code-snippets-bot Aug 5, 2026
e966312
fix: unify Pro-only action styling
code-snippets-bot Aug 5, 2026
a05ec3c
fix: retain editor heading layout
code-snippets-bot Aug 5, 2026
23e4469
fix: align search field border
code-snippets-bot Aug 5, 2026
a40cd43
fix: refine cloud preview controls
code-snippets-bot Aug 5, 2026
52ea778
feat: add snippet search action
code-snippets-bot Aug 5, 2026
1f517fc
fix: show settings navigation overflow
code-snippets-bot Aug 5, 2026
5ada5c3
fix: blend active navigation tab
code-snippets-bot Aug 5, 2026
d8de5c1
fix: align navigation and page titles
code-snippets-bot Aug 5, 2026
52b4b02
fix: increase table cell spacing
code-snippets-bot Aug 5, 2026
eab2c32
fix: refine table and heading spacing
code-snippets-bot Aug 5, 2026
3b925bf
fix: remove top margin on secondary tabs row
code-snippets-bot Aug 7, 2026
889123b
fix: remove notice margin on nav wrapper
code-snippets-bot Aug 7, 2026
1d4e410
fix: unify border colors and remove container margin
code-snippets-bot Aug 7, 2026
c60680b
fix: compensate double border with -1px nav wrapper margin
code-snippets-bot Aug 7, 2026
ab09058
fix: adjust badge colours to WCAG AA-compliant values
code-snippets-bot Aug 7, 2026
1de133d
fix: tooltip width fits content
code-snippets-bot Aug 7, 2026
79db211
fix: tooltip width fits content with dark bg
code-snippets-bot Aug 7, 2026
cd53178
Merge branch 'core-beta' into feat/ui-review/core
sheabunge Aug 7, 2026
904795d
fix: resolve PR review comments
code-snippets-bot Aug 7, 2026
9f67c68
fix: layer active toolbar link above neighbours
code-snippets-bot Aug 7, 2026
0c343b7
fix: address ramiy's PR review follow-ups
code-snippets-bot Aug 7, 2026
56569f9
fix: upsell page fills content area; remove manage assets filemtime v…
code-snippets-bot Aug 7, 2026
41c4217
fix: hide screen meta links on upsell pages
code-snippets-bot Aug 7, 2026
6c7bc69
fix: consolidate CTA hover colors to #0ca0a9
code-snippets-bot Aug 7, 2026
9703a70
fix: strengthen upsell CTA hover specificity, hide bundles tab header…
code-snippets-bot Aug 7, 2026
e8409b7
fix: derive upsell view detection from existing view checks
code-snippets-bot Aug 7, 2026
c64550e
fix: match upsell CTA hover border color
code-snippets-bot Aug 7, 2026
d905c64
fix: treat bundles tab as upsell view
code-snippets-bot Aug 7, 2026
4f7583c
fix: hide screen meta on bundles tab instead of unmounting
code-snippets-bot Aug 7, 2026
615356e
fix: remove unnecessary wrap class from toolbar container
code-snippets-bot Aug 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
},
"dependencies": {
"@codemirror/fold": "^0.19.4",
"@tabler/icons-react": "^3.46.0",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Would be good to avoid this dependency. We're just using the down chevron – could swap with this? https://developer.wordpress.org/resource/dashicons/#arrow-down-alt2

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Agree, we should reduce dependencies. If we use specific icons, we can create icon components. We already do that in src/js/components/common/icons/.

"@wordpress/components": "^29.3.0",
"@wordpress/date": "^5.43.0",
"@wordpress/dom-ready": "^4.17.0",
Expand Down
1 change: 1 addition & 0 deletions src/css/common/_kebab-menu.scss
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
background: #fff;
border: 1px solid #e2e2e4;
border-radius: 5px;
overflow: hidden;
box-shadow: 0 3px 16px rgb(0 0 0 / 15%);

&.kebab-menu-popover-top {
Expand Down
11 changes: 9 additions & 2 deletions src/css/common/_page-header.scss
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,17 @@
h2 {
margin: 0;
padding: 0;
font-size: 32px;
font-size: 26px;
font-weight: 510;
line-height: 1.25;
color: #000;
}

h1 {
color: #1d2327;
}

h2 {
color: theme.$control-text;
}
}

Expand Down
115 changes: 74 additions & 41 deletions src/css/common/_subnav.scss
Original file line number Diff line number Diff line change
Expand Up @@ -3,60 +3,92 @@
// Snippet-type navigation: a boxed segmented control on a white band, with
// each tab separated by a vertical rule and the active tab shown as a
// filled tile.
.snippet-type-nav {
// The tab band scrolls sideways instead of wrapping at any width.
overflow-x: auto;
scrollbar-width: thin;
background: #fff;
.snippet-type-nav-wrapper {
position: relative;

// The toolbar band above already draws the 1px separator, so only a
// bottom border here — a top border would double the line weight.
border-block-end: 1px solid #e2e2e4;
min-block-size: 53px;

// Bleed across the full admin content width, flush against the plugin
// toolbar above: counteract the .wrap top margin (10px) plus its 2px /
// 20px inline margins and the #wpcontent 20px inline padding.
// Bleed across the full admin content width, flush against the plugin toolbar.
box-sizing: border-box;
margin-block-start: -10px;
min-block-size: 53px;
margin-block-start: -1px;
margin-inline-start: -22px;
inline-size: calc(100% + 42px);
overflow: hidden;
background: #fff;

&::before,
&::after {
position: absolute;
inset-block: 0;
z-index: 1;
inline-size: 32px;
content: '';
opacity: 0;
pointer-events: none;
transition: opacity 150ms ease;
}

&::before {
inset-inline-start: 0;
background: linear-gradient(to right, #fff, transparent);
}

&::after {
inset-inline-end: 0;
background: linear-gradient(to left, #fff, transparent);
}

&.has-scroll-start::before,
&.has-scroll-end::after {
opacity: 1;
}

// Core admin switches to 10px #wpcontent padding, 0/12px .wrap margins
// below 782px; mirror them so the bar stays flush without overflowing
// the viewport. The tabs scroll horizontally on a single row rather than
// stacking, with the scrollbar chrome hidden.
@media (width <= 782px) {
margin-inline-start: -10px;
inline-size: calc(100% + 22px);
overflow-x: auto;
scrollbar-width: none;
}
}

&::-webkit-scrollbar {
display: none;
}
.snippet-type-nav {
// The tab band scrolls sideways instead of wrapping at any width.
overflow-x: auto;
scrollbar-width: thin;

// The row line is painted on the scrollport so it remains fixed while tabs scroll.
background: linear-gradient(to top, #e2e2e4 1px, #fff 1px);

ul {
flex-wrap: nowrap;
@media (width <= 960px) {
li {
flex: 1 1 0;
}

.snippet-type-link {
white-space: nowrap;
inline-size: 100%;
min-inline-size: 100px;
padding-inline: 4px;
}
}

@media (width <= 782px) {
scrollbar-width: none;

&::-webkit-scrollbar {
display: none;
}
}

ul {
display: flex;
align-items: stretch;
flex-wrap: nowrap;
min-block-size: 52px;
min-block-size: 53px;
margin: 0;
padding: 0;
list-style: none;
}

li {
display: flex;
flex: 0 0 auto;
margin: 0;
}

Expand Down Expand Up @@ -85,6 +117,7 @@
font-size: 14px;
font-weight: 600;
line-height: 1.5;
white-space: nowrap;
color: #646970;
text-decoration: none;
box-sizing: border-box;
Expand All @@ -110,12 +143,7 @@

&.active-type {
background: #f0f0f1;
border-color: #f0f0f1;
color: theme.$accent;

// Children paint over the parent nav's border, so this recolours
// the 1px band separator beneath the active tab to match its fill.
box-shadow: 0 1px 0 0 #f0f0f1;
}

// Suppress the persistent focus ring left behind after a mouse click;
Expand Down Expand Up @@ -189,24 +217,30 @@
display: flex;
justify-content: flex-end;
margin: 0;
border-color: #e2e2e4;

.show-settings {
border-color: #e2e2e4;
}
}

#screen-meta {
margin: 0;
}
}

// Item count shown after a subnav tab's label, as muted text.
// Item count shown after a subnav tab's label, using the label colour at reduced opacity.
.snippet-type-nav .subnav-count {
font-size: 14px;
font-weight: 600;
line-height: 1.5;
color: #646970;
color: currentcolor;
opacity: 0.65;
}

// The active tab's count adopts the accent alongside its label.
// Keep the active count tied to its active label rather than assigning a separate colour.
.snippet-type-nav .snippet-type-link.active-type .subnav-count {
color: theme.$accent;
color: currentcolor;
}

// The short "All" form of the all-snippets label only replaces "All Snippets"
Expand Down Expand Up @@ -234,9 +268,8 @@
}
}

// When an admin notice pushes the page content down, restore the gap and top
// border above the subnav bar.
.notice + .wrap .snippet-type-nav {
margin-block-start: 20px;
border-block-start: 1px solid theme.$control-border;
// When an admin notice pushes the page content down, restore the top border
// above the subnav bar (no extra margin — the wrapper sits flush).
.notice + .wrap .snippet-type-nav-wrapper {
border-block-start: 1px solid #e2e2e4;
}
27 changes: 22 additions & 5 deletions src/css/common/_theme.scss
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,27 @@ $cloud-update: #ff9800;
// screens regardless of WordPress version (see common/_wp-admin.scss).
$accent-hover: #0a4b78;
$control-border: #c3c4c7;
$control-text: #2c3338;
$control-text: #2c3337;
$control-height: 38px;
$control-radius: 5px;

// Runtime design tokens. Sass variables keep compile-time helpers available;
// custom properties expose the approved system to every rendered component.
:root {
--cs-color-accent: #2271b1;
--cs-color-accent-hover: #0a4b78;
--cs-color-text: #2c3337;
--cs-color-text-muted: #646970;
--cs-color-surface: #fff;
--cs-color-surface-subtle: #f6f7f7;
--cs-color-border: #c3c4c7;
--cs-color-border-subtle: #dcdcde;
--cs-control-height: 38px;
--cs-control-radius: 5px;
--cs-font-size-body: 14px;
--cs-line-height-body: 1.5;
}

/* format: background-color [color] */
$badges: (
// php/html/cond darkened for WCAG AA — at least 4.5:1 against white 12px
Expand All @@ -26,12 +43,12 @@ $badges: (
css: #9b59b6,
js: #f7d67a #1c1f20,
cond: #22826f,
core: #61c5cb,
core: #4fa1a6,
pro: #f7e8e3 #df9279,
cloud: $cloud,
cloud: #009fb4,
bundles: #50575e,
cloud_search: #ff9800,
private: #f7e6be #ca961b,
cloud_search: #d27c00,
private: #f7e6be #a27813,
public: #dbebf7 $accent,
success: #d3e8d1 #447340,
failure: #fad7c1 #a24b16,
Expand Down
Loading