From cb75daa524e205a75686fc5e5e3c7fc99737e348 Mon Sep 17 00:00:00 2001 From: Ihor Masechko Date: Tue, 10 Feb 2026 22:24:32 +0200 Subject: [PATCH] refactor: simplify partner logo system and add partnership label - Replace separate mobile/desktop logo fields with single responsive logo - Add partner name field and display 'In partnership with' label - Make partnership section clickable when partner website is available - Update logo styling to use responsive max dimensions instead of fixed sizes - Change partner sorting to alphabetical by title Co-authored-by: Cursor --- website/modules/asset/ui/src/scss/_cases.scss | 43 ++++++++++++++++--- website/modules/business-partner/index.js | 23 +++------- .../modules/case-studies-page/views/show.html | 32 +++++++------- website/modules/case-studies/index.js | 4 +- 4 files changed, 61 insertions(+), 41 deletions(-) diff --git a/website/modules/asset/ui/src/scss/_cases.scss b/website/modules/asset/ui/src/scss/_cases.scss index f20a73a9..65de7094 100644 --- a/website/modules/asset/ui/src/scss/_cases.scss +++ b/website/modules/asset/ui/src/scss/_cases.scss @@ -1413,18 +1413,49 @@ } } -.cs_partnership-picture { - display: block; +.cs_partnership-box { + background-color: $white; + padding: 8px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + text-align: center; + width: 66px; + height: 66px; + + @include breakpoint-medium { + width: 146px; + height: 146px; + padding: 20px 10px; + } +} + +.cs_partnership-label { + display: flex; + flex-direction: column; + align-items: center; +} + +.cs_partnership-text { + @include font-settings(6px, 100%, $font-weight-extra-bold); + color: $gray-500; + text-transform: uppercase; + + @include breakpoint-medium { + @include font-settings(14px, 100%, $font-weight-extra-bold); + } } .cs_partnership-logo { - width: 66px; - height: 66px; + max-width: 100%; + height: auto; + max-height: 20px; + width: auto; object-fit: contain; display: block; @include breakpoint-medium { - width: 140px; - height: 140px; + max-height: 40px; } } diff --git a/website/modules/business-partner/index.js b/website/modules/business-partner/index.js index 5b92beaf..e18bbfeb 100644 --- a/website/modules/business-partner/index.js +++ b/website/modules/business-partner/index.js @@ -5,27 +5,19 @@ module.exports = { pluralLabel: 'Business Partners', slugPrefix: 'business-partner-', sort: { - createdAt: -1, + title: 1, }, shortcut: false, }, fields: { add: { - partnerLogoMobile: { - label: 'Partner Logo (Mobile)', - type: 'area', + title: { + label: 'Partner Name', + type: 'string', required: true, - options: { - max: 1, - min: 1, - widgets: { - '@apostrophecms/image': {}, - }, - }, - help: 'Upload 66px × 66px logo for mobile/default view', }, - partnerLogoDesktop: { - label: 'Partner Logo (Desktop)', + partnerLogo: { + label: 'Partner Logo', type: 'area', required: true, options: { @@ -35,7 +27,6 @@ module.exports = { '@apostrophecms/image': {}, }, }, - help: 'Upload 146px × 146px logo for desktop (≥ medium breakpoint)', }, partnerWebsite: { label: 'Partner Website', @@ -48,7 +39,7 @@ module.exports = { group: { basics: { label: 'Basics', - fields: ['partnerLogoMobile', 'partnerLogoDesktop', 'partnerWebsite'], + fields: ['title', 'partnerLogo', 'partnerWebsite'], }, }, }, diff --git a/website/modules/case-studies-page/views/show.html b/website/modules/case-studies-page/views/show.html index f4cf139c..fda26d62 100644 --- a/website/modules/case-studies-page/views/show.html +++ b/website/modules/case-studies-page/views/show.html @@ -134,38 +134,36 @@ {% if data.piece._partner and data.piece._partner.length %} {% set partner = data.piece._partner[0] %} - {% set partnerLogoMobile = apos.image.first(partner.partnerLogoMobile) %} - {% set partnerLogoDesktop = apos.image.first(partner.partnerLogoDesktop) %} + {% set partnerLogo = apos.image.first(partner.partnerLogo) %} {% if partner.partnerWebsite %} {% else %}
{% endif %} - {% if partnerLogoMobile or partnerLogoDesktop %} - - {% if partnerLogoDesktop %} - +
+
+ In partnership + with + {% if partner.title %} + {{ partner.title }} {% endif %} - {% if partnerLogoMobile %} +
+ {% if partnerLogo %} {% endif %} - - {% endif %} +
{% if partner.partnerWebsite %}
{% else %} diff --git a/website/modules/case-studies/index.js b/website/modules/case-studies/index.js index f8c5fef5..69a74614 100644 --- a/website/modules/case-studies/index.js +++ b/website/modules/case-studies/index.js @@ -57,9 +57,9 @@ module.exports = { max: 1, builders: { project: { + title: 1, slug: 1, - partnerLogoMobile: 1, - partnerLogoDesktop: 1, + partnerLogo: 1, partnerWebsite: 1, }, },