Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
bd5a1b7
feat: update snippet card shell to finalized card design
imantsk Jul 14, 2026
a8c29fb
feat: extract snippet delete confirmation into reusable hook
imantsk Jul 14, 2026
944f257
feat: reveal card selection checkbox on hover and active selection
imantsk Jul 14, 2026
f23ad5e
feat: replace snippet card expander with kebab actions menu
imantsk Jul 14, 2026
655692e
fix: remove duplicate ago suffix from card modified date
imantsk Jul 14, 2026
0b115aa
fix: keep snippet card body white regardless of activation
imantsk Jul 14, 2026
9ec7270
fix: align card title color and action button sizing with design
imantsk Jul 15, 2026
0d5fed0
feat: update cloud snippet cards to finalized card design
imantsk Jul 15, 2026
a2dea3f
feat: label downloaded cloud snippet action as edit
imantsk Jul 15, 2026
b6c759b
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
9a074d3
feat: prefix snippet card tags with a label
imantsk Jul 15, 2026
055a54a
fix: use accent pill activation switch in both snippet views
imantsk Jul 15, 2026
4b37534
fix: truncate snippet names to a single line across views
imantsk Jul 15, 2026
07019f9
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
c374240
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
82f882f
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
ab1717e
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
1587a29
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
e2597c5
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
6271de6
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
d24c23f
fix: keep card footer actions on one line and clip status label
imantsk Jul 15, 2026
b1482e0
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
b4d634f
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
47f7d21
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
6a2f8bd
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
0952110
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
021b8f9
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
632171d
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
5ddaf4b
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
dd96535
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
4aa4651
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
9825bb7
fix: align shared card styling details with the pro edition
imantsk Jul 15, 2026
dbbe6b3
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 15, 2026
b61ad1e
fix: align card switch rule placement with the shared layout
imantsk Jul 15, 2026
9f7ebb6
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
135ecb3
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
2c1e031
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
af6b0b2
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
c6622c9
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
85b96df
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
674fdd2
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
388aff5
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
a91f825
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
2df51b5
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
7ddd115
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
20c1bb8
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
9eafce5
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
8c04e74
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
4dd3f64
fix: keep the cloud pro-only button fill on search result cards
imantsk Jul 16, 2026
aee73bd
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
f82f286
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
075ad0e
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
e130f22
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
918e365
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
e2d19fc
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
f83f71e
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
28cb8e4
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
491d582
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
4a1e15a
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
62070bd
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
7396243
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
b03509f
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
6dc6d67
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 16, 2026
4a246f2
fix: merge UI foundation fixes
imantsk Jul 16, 2026
47e9407
fix: clean up snippet card semantics
imantsk Jul 16, 2026
1c530b1
fix: use native semantics for the kebab actions popover
imantsk Jul 17, 2026
06bc76e
fix: render cloud modified dates as time elements
imantsk Jul 17, 2026
20bcd28
fix: translate cloud author attribution
imantsk Jul 16, 2026
38aadde
Merge branch 'feat/168-ui-foundation' into feat/169-snippet-cards
imantsk Jul 17, 2026
8d02e6d
chore: merge UI foundation
imantsk Jul 17, 2026
d3e7a81
fix: let keyboard focus leave snippet popovers
imantsk Jul 17, 2026
ee3d708
chore: split community cloud card styles
imantsk Jul 17, 2026
817cfc8
fix: cover reverse snippet popover navigation
imantsk Jul 17, 2026
3fd7adf
chore: merge UI foundation cleanup
imantsk Jul 17, 2026
9a55afc
chore: merge list table cleanup
imantsk Jul 17, 2026
e53fad9
chore: wrap snippet card source lines
imantsk Jul 17, 2026
fba4361
chore: merge UI source standards
imantsk Jul 17, 2026
e7fab8a
chore: merge UI foundation
Jul 19, 2026
3da36f9
feat: align whats new page typography with admin shell (#417).
sheabunge Jul 21, 2026
37bc9aa
feat: align whats new page typography with admin shell (#417)
imantsk Jul 21, 2026
7296a39
feat: preview modal actions and large-snippet UX (#418)
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
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
99 changes: 88 additions & 11 deletions src/css/common/_modal.scss
Original file line number Diff line number Diff line change
Expand Up @@ -55,15 +55,15 @@
.components-modal__frame.code-snippets-preview-modal {
min-inline-size: 520px;
min-block-size: 240px;
max-inline-size: 80vw;
max-block-size: 80vh;
inline-size: min(900px, 90vw);
max-block-size: 85vh;

@media (width <= 600px) {
min-inline-size: 90vw;
}

.components-modal__content {
overflow: auto;
.components-modal__header {
border-block-end-color: #ddd;
}

// The badge lives in the modal content because the minimum-supported
Expand All @@ -75,12 +75,89 @@
inset-inline-end: 56px;
}

// Shown when the code editor is unavailable (syntax highlighting preference
// off): the raw read-only textarea is the functional fallback.
textarea {
inline-size: 100%;
min-block-size: 360px;
resize: none;
font-family: monospace;
// Header and footer stay pinned; the CodeMirror editor is the only
// scroll region, scrolling long code both vertically and horizontally.
.components-modal__content {
display: flex;
flex-flow: column;
min-block-size: 0;
padding: 0;
overflow: hidden;
}

// The modal component wraps its children in an unstyled focus container;
// it must join the flex chain or the editor grows to its content height.
.components-modal__header + div {
display: flex;
flex-flow: column;
flex: 1;
min-block-size: 0;
overflow: hidden;
}

.code-snippets-preview-modal__editor {
display: flex;
flex-flow: column;
flex: 1;
min-block-size: 0;

.CodeMirror {
flex: 1;
min-block-size: 0;
block-size: 100%;
}

textarea {
flex: 1;
min-block-size: 0;
inline-size: 100%;
resize: none;
font-family: monospace;
}
}

.code-snippets-preview-modal__footer {
display: flex;
align-items: center;
justify-content: space-between;
flex-shrink: 0;
gap: 16px;
padding: 11px 19px;
border-block-start: 1px solid #e2e2e4;
background: #f6f7f7;
}

.code-snippets-preview-modal__priority {
display: flex;
align-items: center;
gap: 8px;
font-size: 14px;
color: #646970;

.code-snippets-preview-modal__priority-value {
font-weight: 600;
color: #2c3337;
}
}

.code-snippets-preview-modal__buttons {
display: flex;
align-items: center;
gap: 8px;

.button {
border-radius: 5px;
font-size: 14px;
}

.button-link.code-snippets-preview-modal__trash {
color: #b32d2e;
text-decoration: none;

&:hover,
&:focus {
color: #d63638;
}
}
}
}
14 changes: 1 addition & 13 deletions src/css/common/_subnav.scss
Original file line number Diff line number Diff line change
Expand Up @@ -134,10 +134,6 @@
}
}

.snippet-view-toggle-nav-item {
margin-inline-start: auto;
align-items: center;
}
}

// Card/table view toggle: a two-icon segmented pair of square tiles with
Expand Down Expand Up @@ -183,12 +179,6 @@
}
}

// Inset the toggle from the band edge when hosted inside a subnav bar.
.snippet-type-nav .snippet-view-toggle-nav-item .snippet-view-toggle {
padding-inline-end: 16px;
}


// Slot that adopts the WordPress Screen Options / Help tabs so they appear
// directly below the snippet-type nav instead of above the page content.
.snippets-screen-meta-slot {
Expand All @@ -204,14 +194,12 @@
}
}


// Item count shown after a subnav tab's label, as muted text.
.snippet-type-nav .subnav-count {
font-size: 14px;
font-weight: 600;
line-height: 1.5;
color: #2c3337;
opacity: 0.4;
color: #646970;
}

// The active tab's count adopts the accent alongside its label.
Expand Down
1 change: 1 addition & 0 deletions src/css/manage.scss
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
@use 'common/kebab-menu';
@use 'manage/snippets-table';
@use 'manage/cloud-community';
@use 'manage/cloud-community-cards';

.tablenav .tablenav-pages {
margin-block-end: 0;
Expand Down
Loading
Loading