diff --git a/admin/settings/general.page.php b/admin/settings/general.page.php index 4feb3c86..b0ac93aa 100644 --- a/admin/settings/general.page.php +++ b/admin/settings/general.page.php @@ -632,7 +632,7 @@
- + /> diff --git a/includes/ZeroBSCRM.AdminStyling.php b/includes/ZeroBSCRM.AdminStyling.php index 145ac0d6..3c2b1b4c 100644 --- a/includes/ZeroBSCRM.AdminStyling.php +++ b/includes/ZeroBSCRM.AdminStyling.php @@ -182,7 +182,7 @@ function zeroBSCRM_improvedPostMsgsTransactions( $messages ) { WordPress Footer Msg ====================================================== */ -// } Footer Text +// } Footer Text (left) - Jetpack logo + wordmark, matching the unified Jetpack admin footer function jpcrm_footer_credit_thanks( $content ) { // return original text if not on a CRM page @@ -194,7 +194,8 @@ function jpcrm_footer_credit_thanks( $content ) { global $zbs; $showpoweredby_admin = $zbs->settings->get( 'showpoweredby_admin' ) === 1 ? true : false; if ( $showpoweredby_admin ) { - return '' . sprintf( __( 'Thank you for using Jetpack CRM.', 'zero-bs-crm' ), $zbs->urls['home'] ) . ''; + $jetpack_logo = ''; + return ''; } ##/WLREMOVE @@ -203,6 +204,7 @@ function jpcrm_footer_credit_thanks( $content ) { } add_filter( 'admin_footer_text', 'jpcrm_footer_credit_thanks' ); +// } Footer Text (right) - Automattic "by line" logo, matching the unified Jetpack admin footer function jpcrm_footer_credit_version( $content ) { // return original text if not on a CRM page @@ -214,7 +216,9 @@ function jpcrm_footer_credit_version( $content ) { global $zbs; $showpoweredby_admin = $zbs->settings->get( 'showpoweredby_admin' ) === 1 ? true : false; if ( $showpoweredby_admin ) { - return sprintf( 'Jetpack CRM v%s', $zbs::VERSION ); + $byline_title = esc_attr__( 'An Automattic Airline', 'zero-bs-crm' ); + $byline_svg = ''; + return '' . $byline_svg . ''; } ##/WLREMOVE diff --git a/sass/emerald/_jpcrm_footer.scss b/sass/emerald/_jpcrm_footer.scss new file mode 100644 index 00000000..ab1ebe8c --- /dev/null +++ b/sass/emerald/_jpcrm_footer.scss @@ -0,0 +1,88 @@ +body.jpcrm-admin { + + // Only restyle the footer when our branded footer content is present. When the + // "powered by" setting is off (or under white label) #wpfooter is left empty and + // keeps its default WordPress appearance. + #wpfooter:has( .jetpack-footer__logo ) { + align-items: center; + background-color: var(--wpds-color-bg-surface-neutral, var(--wpds-color-background-surface-neutral, #fcfcfc)); + border-top: var(--wpds-border-width-xs, 1px) solid var(--wpds-color-stroke-surface-neutral-weak, #e4e4e4); + box-sizing: border-box; + display: flex; + flex-wrap: wrap; + font-size: var(--wpds-typography-font-size-md, 13px); + gap: var(--wpds-dimension-gap-xl, 24px); + padding: var(--wpds-dimension-padding-xl, 20px) var(--wpds-dimension-padding-2xl, 24px); + + // Wide footer: single row, Automattic by line pushed to the far right. + #footer-upgrade { + margin-inline-start: auto; + } + + // WordPress core outputs an empty
inside #wpfooter; + // as a flex item it would add a trailing gap that pushes the by line off + // the right edge, so drop it out of the layout. + .clear { + display: none; + } + } + + // Below 782px WordPress core hides #wpfooter (common.css), but the base rule + // above keeps it shown — specificity (1,2,1) vs core's (1,0,0), and no media + // query — which is why these mobile rules are reachable at all. Core's + // `.auto-fold #wpfooter` also leaves a 36px icon-menu margin here (admin-menu.css, + // @media max-width: 960px); drop it so the footer sits flush with the screen edge. + @media ( max-width: 782px ) { + + #wpfooter:has( .jetpack-footer__logo ) { + margin: 0; + } + } + + // Phones: stack the logo and the Automattic by line onto their own left-aligned + // rows, matching the unified Jetpack footer. Unlike that footer we have no + // middle nav links to force the wrap, so we stack explicitly. + @media ( max-width: 480px ) { + + #wpfooter:has( .jetpack-footer__logo ) { + + #footer-left, + #footer-upgrade { + flex-basis: 100%; + } + + #footer-upgrade { + margin-inline-start: 0; + } + } + } + + // Left: Jetpack logo + wordmark. + .jetpack-footer__logo { + align-items: center; + display: inline-flex; + gap: 8px; + + svg { + display: block; + flex-shrink: 0; + } + } + + .jetpack-footer__logo-text { + color: var(--wpds-color-fg-content-neutral, var(--wpds-color-foreground-content-neutral, #1e1e1e)); + font-size: var(--wpds-typography-font-size-md, 13px); + line-height: 1; + } + + // Right: Automattic "by line". + a.jetpack-footer__a8c { + align-items: center; + display: inline-flex; + + svg { + display: block; + fill: var(--wpds-color-fg-interactive-neutral-weak, var(--wpds-color-foreground-interactive-neutral-weak, #707070)); + } + } +} diff --git a/sass/jpcrm-emerald.scss b/sass/jpcrm-emerald.scss index 76201988..e4fc3b0b 100644 --- a/sass/jpcrm-emerald.scss +++ b/sass/jpcrm-emerald.scss @@ -8,6 +8,9 @@ /* top menu */ @use "emerald/jpcrm_top_menu"; +/* footer */ +@use "emerald/jpcrm_footer"; + /* components */ @use "emerald/buttons"; @use "emerald/dashcard";