Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
62d904a
feat: restructure admin toolbar into header and primary nav bands
imantsk Jul 14, 2026
2b573f9
feat: restyle snippet type tabs as boxed segmented control
imantsk Jul 14, 2026
515e7cc
feat: move create button into contextual page title row
imantsk Jul 14, 2026
9bf5cf6
feat: replace snippet view switch with segmented icon toggle
imantsk Jul 14, 2026
93769ee
feat: apply shared control tokens to admin form elements
imantsk Jul 14, 2026
1cb3b49
feat: add reusable kebab menu popover component
imantsk Jul 14, 2026
fa5cb75
feat: restyle settings page tabs and title to new admin shell
imantsk Jul 14, 2026
5c267c3
feat: align import page title with new admin shell
imantsk Jul 14, 2026
ee0e4de
fix: align badge palette, nav border, controls and settings labels wi…
imantsk Jul 15, 2026
9b0912e
feat: remove import link from plugin toolbar navigation
imantsk Jul 15, 2026
05760a0
feat: restyle snippet type tabs with restored item counts
imantsk Jul 15, 2026
d3de194
feat: reflect selected snippet type in manage page title
imantsk Jul 15, 2026
62f5faa
feat: unify results toolbar across table and card snippet views
imantsk Jul 15, 2026
1fd2703
feat: show contextual title and description on community cloud page
imantsk Jul 15, 2026
a56ff93
feat: unify community cloud results toolbar with bulk download and vi…
imantsk Jul 15, 2026
304c9b4
fix: render table priority field as boxed input per design
imantsk Jul 15, 2026
220e83e
fix: normalize navigation font weight to 600
imantsk Jul 15, 2026
765b169
fix: fill nav band height so active underline sits flush
imantsk Jul 15, 2026
a7e9fd9
fix: hide zero item counts on snippet type tabs
imantsk Jul 15, 2026
d739216
fix: override wp core disabled pagination button styling
imantsk Jul 15, 2026
4e277e5
fix: share accent pill switch styling across both states
imantsk Jul 15, 2026
4ad9f8f
fix: unify results toolbar layout across snippet views
imantsk Jul 15, 2026
edf59ef
fix: remove bottom pagination from cloud search results
imantsk Jul 15, 2026
f3b41c8
fix: restore bottom toolbar with unified bulk actions and pagination
imantsk Jul 15, 2026
a8a1ca4
fix: make nav bands scroll horizontally on narrow screens
imantsk Jul 15, 2026
c1704a0
fix: wrap pagination and view toggle together as one end cluster
imantsk Jul 15, 2026
5b608c5
fix: let toolbar components shrink before the row wraps
imantsk Jul 15, 2026
0f7ff26
fix: squeeze toolbar components instead of wrapping above mobile widths
imantsk Jul 15, 2026
10c6cd8
fix: keep toolbar nowrap above mobile by resolving cascade order
imantsk Jul 15, 2026
a9aaee4
fix: keep search row, pagination labels and tab band on one line
imantsk Jul 15, 2026
7194c52
fix: keep snippet type tabs on a single scrolling row
imantsk Jul 15, 2026
2eaaf51
fix: consolidate shared toolbar and list table styling across editions
imantsk Jul 15, 2026
5277a9f
feat: support custom bulk select label in table navigation
imantsk Jul 15, 2026
b74ae33
fix: style links inside the page description
imantsk Jul 15, 2026
7350bc8
fix: seed snippets list from localized data to avoid initial fetch flash
imantsk Jul 16, 2026
c551515
fix: parse localized snippets into full objects when seeding the list
imantsk Jul 16, 2026
116ca19
feat: apply design feedback for pro pills subnav icons and title gap
imantsk Jul 16, 2026
29739c4
feat: connect navigation levels per latest design revision
imantsk Jul 16, 2026
3608cda
fix: sanitize snippet descriptions to post-safe markup at the model b…
imantsk Jul 16, 2026
905622b
fix: skip inline snippets list payload for large libraries
imantsk Jul 16, 2026
cb90a48
fix: align cloud search toolbar with canonical table navigation
imantsk Jul 16, 2026
d797403
fix: focus menu items over form fields and support arrow key navigation
imantsk Jul 16, 2026
a672f8a
feat: add shared snippet capability helpers
imantsk Jul 16, 2026
d4557da
fix: add missing text domain to pagination item count
imantsk Jul 16, 2026
c487978
fix: create snippets of the active type from the type tabs
imantsk Jul 16, 2026
914fa41
fix: align type selector height with title field and tidy sidebar fal…
imantsk Jul 16, 2026
3b7dc3f
fix: center type selector value and stack the conditions field
imantsk Jul 16, 2026
9392642
fix: filter foreign admin notices on the add snippet screen
imantsk Jul 16, 2026
a5437d1
fix: keep type and location selects as searchless vertical dropdowns
imantsk Jul 16, 2026
c556af5
fix: lead snippet type options with the language badge
imantsk Jul 16, 2026
877d665
fix: match location selector height to the conditions button
imantsk Jul 16, 2026
455bbbd
feat: adopt the finalized navigation styling
imantsk Jul 16, 2026
e5e9e95
fix: size the navigation pro chip to match the design
imantsk Jul 16, 2026
e401755
fix: drop redundant pro chip padding override
imantsk Jul 16, 2026
0cf18f4
feat: use the sub-navigation bar on the import page
imantsk Jul 16, 2026
03728c1
fix: consolidate the pro badge to the navigation pill style
imantsk Jul 16, 2026
fc86476
fix: use the settled sub-navigation style on the settings page
imantsk Jul 16, 2026
a17feb9
feat: collapse snippet type names to badges at mid-range widths
imantsk Jul 16, 2026
babd2e9
feat: stack the list-table toolbar onto two rows at mid-range widths
imantsk Jul 16, 2026
0e218a1
refactor: reuse the shared table navigation on the cloud search view
imantsk Jul 16, 2026
3db3f2a
feat: default to the table snippet view
imantsk Jul 16, 2026
f8f90a0
feat: stack the primary nav labels under their icons at mid widths
imantsk Jul 16, 2026
80929c4
fix: keep stacked primary nav items aligned when a pro chip is present
imantsk Jul 16, 2026
377fd1d
fix: show the primary nav pro chip as a corner badge when stacked
imantsk Jul 16, 2026
76f7667
fix: match the status filter counts row to the design
imantsk Jul 16, 2026
bf28db1
fix: refine the stacked nav pro chip and apply the collapse below 782px
imantsk Jul 16, 2026
186353c
fix: consolidate the manage-screen section spacing to a 16px rhythm
imantsk Jul 16, 2026
8dce50f
fix: keep the snippet-type nav collapsed on mobile widths
imantsk Jul 16, 2026
dcf3a1c
fix: collapse the list toolbar into two space-between rows on tablet …
imantsk Jul 16, 2026
8c725d7
fix: unify the snippet card grid paging, ordering and selection behav…
imantsk Jul 16, 2026
39e1b68
fix: keep the editor sidebar row actions on a single row
imantsk Jul 16, 2026
38126ef
fix: flatten the editor sidebar row-action buttons to plain links
imantsk Jul 16, 2026
69272ce
fix: widen the editor sidebar export/download button gap
imantsk Jul 16, 2026
368b758
fix: use normal line-height on the pro badge
imantsk Jul 16, 2026
60bee89
fix: keep disabled and active sidebar row buttons background-free
imantsk Jul 16, 2026
172f0d3
fix: keep primary small buttons at the standard control height
imantsk Jul 16, 2026
c048c46
fix: reload the snippet editor on browser back or forward navigation
imantsk Jul 16, 2026
1022e0a
fix: merge UI review fixes
imantsk Jul 16, 2026
f31fbee
fix: align preference tests with table default
imantsk Jul 16, 2026
357c79d
fix: submit the snippets search through a real form control
imantsk Jul 17, 2026
972486f
chore: drop the stray blank line at the toolbar stylesheet end
imantsk Jul 17, 2026
374fa31
Merge branch 'fix/166-ui-review-fixes' into feat/168-ui-foundation
imantsk Jul 17, 2026
ce1a2d7
Merge branch 'fix/166-ui-review-fixes' into feat/168-ui-foundation
imantsk Jul 17, 2026
b7d8d6c
fix: make live search controls truthful
imantsk Jul 17, 2026
59f8891
fix: label community bulk actions
imantsk Jul 17, 2026
e07a891
fix: move UI foundation tests to owning branch
imantsk Jul 17, 2026
f58f3f1
chore: split shared list table concerns
imantsk Jul 17, 2026
1437989
chore: split manage menu responsibilities
imantsk Jul 17, 2026
ae35d79
fix: cap cloud pagination before validation
imantsk Jul 17, 2026
a00c614
fix: prove live snippet filtering
imantsk Jul 17, 2026
c7d83eb
chore: enforce UI foundation source limits
imantsk Jul 17, 2026
fbd6656
chore: keep list table under source limit
imantsk Jul 17, 2026
710476f
chore: enforce UI foundation source standards
imantsk Jul 17, 2026
a9c0938
chore: merge UI review fixes
Jul 19, 2026
4c5343c
feat: implement finalized local snippet card design (#416)
imantsk Jul 21, 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
28 changes: 28 additions & 0 deletions src/css/common/_badges.scss
Original file line number Diff line number Diff line change
Expand Up @@ -125,3 +125,31 @@
}
}
}

// Override WordPress' .wp-core-ui .button .dashicons { line-height: 1.9 } —
// inside a button the inflated line-box would shift the glyph below the
// badge's bottom border. Placed at end-of-file so it follows all other
// .dashicons rules in source order (no-descending-specificity).
.wp-core-ui .button .badge .dashicons {
line-height: 1;
}


// Pro badge consolidated to the navigation pro-chip style: a light accent pill
// in every context, overriding the badge colour map and the inverted/nav-tab
// variants (whose white !important border must be beaten here). This is a
// deliberate final override, so it intentionally follows higher-specificity
// context rules above.
/* stylelint-disable no-descending-specificity */
.badge.pro-badge,
.inverted-badges .badge.pro-badge,
.nav-tab-inactive .badge.pro-badge {
color: #2271b1;
background-color: #eff5f9;
border: 1px solid rgb(34 113 177 / 10%) !important;
border-radius: 999px;
padding-block: 3px;
padding-inline: 10px;
line-height: normal;
}
/* stylelint-enable no-descending-specificity */
74 changes: 64 additions & 10 deletions src/css/common/_cards.scss
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
.code-snippets-card {
background: #fff;
border: 1px solid #c3c4c7;
border-radius: 6px;
border-radius: 5px;
margin: 0;
display: flex;
flex-flow: column;
Expand All @@ -25,19 +25,46 @@

footer {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
background: #f6f7f7;
background: #f7f7f8;
margin-block-start: auto;
border-block-start: 1px solid #c3c4c7;
padding-inline: 24px;
padding-block: 12px;
border-end-start-radius: 5px;
border-end-end-radius: 5px;
}

// The status label shrinks and clips away under pressure rather than
// pushing the action buttons onto a second line.
.snippet-card-footer-status {
display: flex;
align-items: center;
border-end-start-radius: 6px;
border-end-end-radius: 6px;
gap: 8px;
flex: 0 1 auto;
min-inline-size: 0;
overflow: hidden;
white-space: nowrap;
}

&.is-selectable,
&.has-corner-controls {
.snippet-card-footer-actions {
display: flex;
align-items: center;
justify-content: flex-end;
flex-wrap: nowrap;
gap: 8px;
flex: 0 0 auto;

.button:not(.kebab-menu-trigger) {
min-inline-size: 103px;
text-align: center;
justify-content: center;
}
}

&.is-selectable {
position: relative;
}

Expand All @@ -54,12 +81,39 @@
}
}

&.is-selectable .card-inner h3 {
margin-inline-end: 48px;
input[type='checkbox'].snippet-card-select {
appearance: none;
display: grid;
place-content: center;
inline-size: 20px;
block-size: 20px;
padding: 0;
box-sizing: border-box;
background: #fff;
border: 1.5px solid #2271b1;
border-radius: 5px;
box-shadow: 0 2px 2px rgb(0 0 0 / 5%);
cursor: pointer;

&::before {
content: none;
}

&:checked {
background: #2271b1;

&::before {
content: '';
inline-size: 14px;
block-size: 14px;
margin: 0;
background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M14.83 4.89l1.34.94-5.81 8.38H9.02L5.78 9.67l1.34-1.25 2.57 2.4z' fill='%23fff'/%3E%3C/svg%3E") center/14px no-repeat;
}
}
}

&.has-corner-controls .card-inner h3 {
margin-inline-end: 96px;
&.is-selectable .card-inner > h3 {
margin-inline-end: 48px;
}

&.is-selected {
Expand Down
104 changes: 104 additions & 0 deletions src/css/common/_kebab-menu.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
// Generic kebab ("more actions") menu: a square accent-outlined trigger
// button that opens a small popover of actions anchored to its
// bottom-end corner, flipping above the trigger near the viewport edge.
.kebab-menu {
position: relative;
display: inline-flex;
}

.kebab-menu-trigger {
display: flex;
align-items: center;
justify-content: center;
inline-size: 38px;
block-size: 38px;
box-sizing: border-box;
padding: 0;
background: #fff;
color: #2271b1;
border: 1px solid #2271b1;
border-radius: 5px;
cursor: pointer;

svg {
display: block;
}

&:hover,
&:focus {
background: #f0f6fc;
}
}

.kebab-menu-popover {
position: absolute;
inset-block-start: calc(100% + 4px);
inset-inline-end: 0;
z-index: 1000;
inline-size: 224px;
box-sizing: border-box;
margin: 0;
padding-block: 6px;
padding-inline: 0;
list-style: none;
background: #fff;
border: 1px solid #e2e2e4;
border-radius: 5px;
box-shadow: 0 3px 16px rgb(0 0 0 / 15%);

&.kebab-menu-popover-top {
inset-block: auto calc(100% + 4px);
}

li {
margin: 0;
}
}

.kebab-menu-item {
display: block;
inline-size: 100%;
box-sizing: border-box;
padding-block: 10px;
padding-inline: 14px;
background: none;
border: none;
font-family: inherit;
font-size: 14px;
line-height: 1.4;
color: #2c3337;
text-align: start;
cursor: pointer;

&:hover,
&:focus {
background: #f0f0f1;
}

&:disabled {
color: #a7aaad;
cursor: default;
background: none;
}

&.kebab-menu-item-destructive {
color: #d63638;
}
}

.kebab-menu-divider {
margin-block: 6px;
border-block-start: 1px solid #e2e2e4;
}

.kebab-menu-row {
display: flex;
align-items: center;
gap: 8px;
box-sizing: border-box;
padding-block: 10px;
padding-inline: 14px;
font-size: 14px;
line-height: 1.4;
color: #2c3337;
}
Loading
Loading