diff --git a/packages/admin-ui/src/page/index.tsx b/packages/admin-ui/src/page/index.tsx index edff245656c662..ed88b645d14e0c 100644 --- a/packages/admin-ui/src/page/index.tsx +++ b/packages/admin-ui/src/page/index.tsx @@ -47,7 +47,9 @@ function Page( { ) } { hasPadding ? (
- { children } +
+ { children } +
) : ( children diff --git a/packages/admin-ui/src/page/style.scss b/packages/admin-ui/src/page/style.scss index 91234ec5878692..2841be9b5b1ba1 100644 --- a/packages/admin-ui/src/page/style.scss +++ b/packages/admin-ui/src/page/style.scss @@ -15,10 +15,9 @@ .admin-ui-page__header { padding: $grid-unit-20 $grid-unit-30; - border-bottom: 1px solid $gray-100; background: $white; - position: sticky; - top: 0; + border-bottom: 1px solid $gray-100; + z-index: 2; } .admin-ui-page__sidebar-toggle-slot:empty { @@ -38,8 +37,12 @@ display: flex; flex-direction: column; + .admin-ui-page__content-child { + margin: $grid-unit-30 0 0; + } + &.has-padding { - padding: $grid-unit-20 $grid-unit-30; + padding: 0 $grid-unit-30; } } diff --git a/packages/base-styles/_z-index.scss b/packages/base-styles/_z-index.scss index a94cfbccd0f8da..824b4be33acd51 100644 --- a/packages/base-styles/_z-index.scss +++ b/packages/base-styles/_z-index.scss @@ -205,7 +205,7 @@ $z-layers: ( ".editor-start-page-options__modal__actions": 1, // Ensure checkbox + actions don't overlap table header - ".dataviews-view-table thead": 1, + ".dataviews-view-table thead": 2, // Ensure selection checkbox stays above the preview field. ".dataviews-view-grid__card .dataviews-selection-checkbox": 1, diff --git a/packages/dataviews/src/components/dataviews-footer/style.scss b/packages/dataviews/src/components/dataviews-footer/style.scss index 75478854c37119..4e028422ff3732 100644 --- a/packages/dataviews/src/components/dataviews-footer/style.scss +++ b/packages/dataviews/src/components/dataviews-footer/style.scss @@ -7,15 +7,27 @@ bottom: 0; left: 0; background-color: inherit; - padding: $grid-unit-15 $grid-unit-30; border-top: $border-width solid $gray-100; flex-shrink: 0; + padding-top: $grid-unit-15; + padding-bottom: $grid-unit-15; @media not (prefers-reduced-motion) { transition: padding ease-out 0.1s; } z-index: z-index(".dataviews-footer"); + + &::after { + content: ""; + position: absolute; + top: 0; + left: -12px; + width: calc(100% + 24px); + height: 100%; + background-color: inherit; + z-index: -1; + } } @container (max-width: 560px) { diff --git a/packages/dataviews/src/components/dataviews/style.scss b/packages/dataviews/src/components/dataviews/style.scss index 6d67d0675a576c..44294dc3805fc9 100644 --- a/packages/dataviews/src/components/dataviews/style.scss +++ b/packages/dataviews/src/components/dataviews/style.scss @@ -4,8 +4,6 @@ .dataviews-wrapper, .dataviews-picker-wrapper { - height: 100%; - overflow: auto; box-sizing: border-box; scroll-padding-bottom: $grid-unit-80; /* stylelint-disable-next-line property-no-unknown -- '@container' not globally permitted */ @@ -20,11 +18,11 @@ .dataviews__view-actions, .dataviews-filters__container { box-sizing: border-box; - padding: $grid-unit-20 $grid-unit-30; flex-shrink: 0; position: sticky; left: 0; background-color: inherit; + padding-bottom: $grid-unit-15; @media not (prefers-reduced-motion) { transition: padding ease-out 0.1s; @@ -48,13 +46,6 @@ text-align: center; } -@container (max-width: 430px) { - .dataviews__view-actions, - .dataviews-filters__container { - padding: $grid-unit-15 $grid-unit-30; - } -} - .dataviews-title-field { font-size: $default-font-size; font-weight: $font-weight-medium; @@ -107,6 +98,5 @@ */ .components-card__body:has(> .dataviews-wrapper), .components-card__body:has(> .dataviews-picker-wrapper) { - padding: $grid-unit-10 0 0; overflow: hidden; // Prevent cells with white backgrounds overflowing the card } diff --git a/packages/dataviews/src/dataviews-layouts/activity/style.scss b/packages/dataviews/src/dataviews-layouts/activity/style.scss index 4a9f1ff26b5dc1..8970d43022f815 100644 --- a/packages/dataviews/src/dataviews-layouts/activity/style.scss +++ b/packages/dataviews/src/dataviews-layouts/activity/style.scss @@ -3,7 +3,6 @@ .dataviews-view-activity { margin: 0 0 auto; - padding: $grid-unit-10 $grid-unit-30; .dataviews-view-activity__group-header { font-size: $font-size-large; diff --git a/packages/dataviews/src/dataviews-layouts/grid/style.scss b/packages/dataviews/src/dataviews-layouts/grid/style.scss index 51119be11a1a8e..64caff2d6ca8a6 100644 --- a/packages/dataviews/src/dataviews-layouts/grid/style.scss +++ b/packages/dataviews/src/dataviews-layouts/grid/style.scss @@ -5,7 +5,6 @@ @use "../utils/grid-items.scss" as *; .dataviews-view-grid { - padding: 0 $grid-unit-30 $grid-unit-30; display: flex; flex-direction: column; gap: $grid-unit-40; diff --git a/packages/dataviews/src/dataviews-layouts/list/style.scss b/packages/dataviews/src/dataviews-layouts/list/style.scss index ebab5c67049b36..89a56f1048ab15 100644 --- a/packages/dataviews/src/dataviews-layouts/list/style.scss +++ b/packages/dataviews/src/dataviews-layouts/list/style.scss @@ -12,11 +12,12 @@ div.dataviews-view-list { div[role="article"] { margin: 0; border-top: 1px solid $gray-100; + position: relative; .dataviews-view-list__item-wrapper { position: relative; - padding: $grid-unit-20 $grid-unit-30; box-sizing: border-box; + padding: $grid-unit-15 0; } .dataviews-view-list__item-actions { @@ -78,6 +79,19 @@ div.dataviews-view-list { color: var(--wp-admin-theme-color); background-color: #f8f8f8; + &::after { + content: ""; + position: absolute; + top: -1px; + bottom: -1px; + left: -12px; + width: calc(100% + 24px); + background-color: #f8f8f8; + border-radius: $radius-large; + border: 1px solid $gray-100; + z-index: -1; + } + .dataviews-view-list__title-field, .dataviews-view-list__fields { color: var(--wp-admin-theme-color); @@ -92,7 +106,6 @@ div.dataviews-view-list { div[role="article"].is-selected, div[role="article"].is-selected:focus-within { .dataviews-view-list__item-wrapper { - background-color: rgba(var(--wp-admin-theme-color--rgb), 0.04); color: $gray-900; .dataviews-view-list__title-field, @@ -100,6 +113,18 @@ div.dataviews-view-list { color: var(--wp-admin-theme-color); } } + + &::after { + content: ""; + position: absolute; + top: -1px; + bottom: -1px; + left: -12px; + width: calc(100% + 24px); + background-color: rgba(var(--wp-admin-theme-color--rgb), 0.04); + border-radius: $radius-large; + border: 1px solid rgba(var(--wp-admin-theme-color--rgb), 0.12); + } } .dataviews-view-list__item { diff --git a/packages/dataviews/src/dataviews-layouts/table/style.scss b/packages/dataviews/src/dataviews-layouts/table/style.scss index 00e7ddda560fb9..b17d675be0d714 100644 --- a/packages/dataviews/src/dataviews-layouts/table/style.scss +++ b/packages/dataviews/src/dataviews-layouts/table/style.scss @@ -22,6 +22,8 @@ td, th { padding: $grid-unit-15; + position: relative; + z-index: 1; &.dataviews-view-table__actions-column { text-align: right; @@ -30,7 +32,7 @@ &.dataviews-view-table__actions-column--sticky { position: sticky; right: 0; - background-color: inherit; + background-color: var(--wp-dataviews-color-background, #fff); } &.dataviews-view-table__actions-column--stuck { @@ -58,24 +60,39 @@ tr { border-top: 1px solid $gray-100; background-color: inherit; + position: relative; td:first-child, th:first-child { - padding-left: $grid-unit-30; + padding-left: 0; } td:last-child, th:last-child { - padding-right: $grid-unit-30; + padding-right: 0; } &:last-child { border-bottom: 0; } - &.is-hovered, - &.is-hovered .dataviews-view-table__actions-column--sticky { - background-color: #f8f8f8; + &.is-hovered { + &::after { + content: ""; + position: absolute; + top: -0.5px; + bottom: -0.5px; + left: -12px; + width: calc(100% + 24px); + background-color: #f8f8f8; + z-index: 0; + border-radius: $radius-large; + border: 1px solid $gray-100; + } + + .dataviews-view-table__actions-column--sticky { + background-color: #f8f8f8; + } } .dataviews-item-actions .components-button:not(.dataviews-all-actions-button) { @@ -90,16 +107,30 @@ } &.is-selected { - background-color: color-mix(in srgb, rgb(var(--wp-admin-theme-color--rgb)) 4%, $white); color: $gray-700; + &::after { + content: ""; + position: absolute; + top: -0.5px; + bottom: -0.5px; + left: -12px; + width: calc(100% + 24px); + background-color: color-mix(in srgb, rgb(var(--wp-admin-theme-color--rgb)) 4%, $white); + z-index: 0; + border-radius: $radius-large; + border: 1px solid rgba(var(--wp-admin-theme-color--rgb), 0.12); + } + &, & + tr { border-top: 1px solid rgba(var(--wp-admin-theme-color--rgb), 0.12); } &:hover { - background-color: color-mix(in srgb, rgb(var(--wp-admin-theme-color--rgb)) 8%, $white); + &::after { + background-color: color-mix(in srgb, rgb(var(--wp-admin-theme-color--rgb)) 8%, $white); + } } .dataviews-view-table__actions-column--sticky { @@ -117,9 +148,23 @@ tr { // Only apply hover background to non-selected rows &:not(.is-selected) { - &.is-hovered, - &.is-hovered .dataviews-view-table__actions-column--sticky { - background-color: #f8f8f8; + &.is-hovered { + &::after { + content: ""; + position: absolute; + top: -0.5px; + bottom: -0.5px; + left: -12px; + width: calc(100% + 24px); + background-color: #f8f8f8; + z-index: 0; + border-radius: $radius-large; + border: 1px solid $gray-100; + } + + .dataviews-view-table__actions-column--sticky { + background-color: #f8f8f8; + } } } @@ -140,6 +185,17 @@ z-index: z-index(".dataviews-view-table thead"); background-color: inherit; + &::after { + content: ""; + position: absolute; + top: 0.5px; + bottom: 0.5px; + left: -12px; + width: calc(100% + 24px); + background-color: inherit; + z-index: 0; + } + tr { border: 0; } @@ -161,13 +217,11 @@ } &:has(.dataviews-view-table-header-button):first-child { - // Table cell padding minus the header button padding. - padding-left: $grid-unit-50; + padding-left: 0; } &:has(.dataviews-view-table-header-button):last-child { - // Table cell padding minus the header button padding. - padding-right: $grid-unit-50; + padding-right: 0; } } } @@ -305,7 +359,7 @@ .dataviews-view-table__group-header-row { .dataviews-view-table__group-header-cell { font-weight: $font-weight-medium; - padding: $grid-unit-15 $grid-unit-30; + padding: $grid-unit-15 0; color: $gray-900; } } diff --git a/packages/dataviews/src/dataviews-layouts/utils/grid-items.scss b/packages/dataviews/src/dataviews-layouts/utils/grid-items.scss index c5a2c6956df685..50bb078dc8f820 100644 --- a/packages/dataviews/src/dataviews-layouts/utils/grid-items.scss +++ b/packages/dataviews/src/dataviews-layouts/utils/grid-items.scss @@ -6,7 +6,7 @@ gap: $grid-unit-40; grid-template-rows: max-content; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); - padding: 0 $grid-unit-30 $grid-unit-30; + padding: 0 0 $grid-unit-30; container-type: inline-size; @media not (prefers-reduced-motion) { diff --git a/packages/dataviews/src/stories/dataviews-picker.story.tsx b/packages/dataviews/src/stories/dataviews-picker.story.tsx index 46001a139a883c..d86e2961fcffc8 100644 --- a/packages/dataviews/src/stories/dataviews-picker.story.tsx +++ b/packages/dataviews/src/stories/dataviews-picker.story.tsx @@ -266,14 +266,6 @@ export const WithModal = ( { ) } { isModalOpen && ( <> - setIsModalOpen( false ) } diff --git a/packages/dataviews/src/stories/dataviews.story.tsx b/packages/dataviews/src/stories/dataviews.story.tsx index 47f82f22ffa854..3ad313414b260b 100644 --- a/packages/dataviews/src/stories/dataviews.story.tsx +++ b/packages/dataviews/src/stories/dataviews.story.tsx @@ -603,7 +603,6 @@ export const InfiniteScroll = () => { { isModified && ( diff --git a/packages/edit-site/src/components/page-templates/index.js b/packages/edit-site/src/components/page-templates/index.js index 3217528cb4ca54..d4c61a1d2526d2 100644 --- a/packages/edit-site/src/components/page-templates/index.js +++ b/packages/edit-site/src/components/page-templates/index.js @@ -318,6 +318,7 @@ export default function PageTemplates() { { isModified && ( diff --git a/packages/edit-site/src/components/post-list/index.js b/packages/edit-site/src/components/post-list/index.js index ad25b6c22355c4..7fddd38f3be12f 100644 --- a/packages/edit-site/src/components/post-list/index.js +++ b/packages/edit-site/src/components/post-list/index.js @@ -251,6 +251,7 @@ export default function PostList( { postType } ) { return ( { isModified && (