Skip to content

Add footer to gallery layout #14145

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

Conversation

marjisound
Copy link
Contributor

@marjisound marjisound commented Jun 27, 2025

What does this change?

This PR is part of the Gallery migration from frontend/AR into DCAR. It adds support for the gallery body image.

The change adds Footer to the Gallery layout for both Web & App and makes it work for both light & dark mode

Copy link

Hello 👋! When you're ready to run Chromatic, please apply the run_chromatic label to this PR.

You will need to reapply the label each time you want to run Chromatic.

Click here to see the Chromatic project.

Copy link

github-actions bot commented Jun 27, 2025

Copy link

github-actions bot commented Jun 27, 2025

Copy link

github-actions bot commented Jun 27, 2025

Size Change: 0 B

Total Size: 1.05 MB

ℹ️ View Unchanged
Filename Size
dotcom-rendering/dist/1160.client.web.********************.js 3.56 kB
dotcom-rendering/dist/1212.client.web.********************.js 7.95 kB
dotcom-rendering/dist/137.client.web.********************.js 3.81 kB
dotcom-rendering/dist/1521.client.web.********************.js 2.89 kB
dotcom-rendering/dist/1931.client.web.********************.js 3.43 kB
dotcom-rendering/dist/21.client.web.********************.js 3.77 kB
dotcom-rendering/dist/2102.client.web.********************.js 10.6 kB
dotcom-rendering/dist/2244.client.web.********************.js 3.56 kB
dotcom-rendering/dist/2373.client.web.********************.js 4.52 kB
dotcom-rendering/dist/2400.client.web.********************.js 2.11 kB
dotcom-rendering/dist/2629.client.web.********************.js 5.84 kB
dotcom-rendering/dist/2756.client.web.********************.js 5.4 kB
dotcom-rendering/dist/2909.client.web.********************.js 20.3 kB
dotcom-rendering/dist/3342.client.web.********************.js 3.67 kB
dotcom-rendering/dist/3365.client.web.********************.js 3.28 kB
dotcom-rendering/dist/3773.client.web.********************.js 5.63 kB
dotcom-rendering/dist/3944.client.web.********************.js 2.51 kB
dotcom-rendering/dist/3979.client.web.********************.js 4.18 kB
dotcom-rendering/dist/404.client.web.********************.js 3.19 kB
dotcom-rendering/dist/4079.client.web.********************.js 11.8 kB
dotcom-rendering/dist/420.client.web.********************.js 4.35 kB
dotcom-rendering/dist/4312.client.web.********************.js 3.07 kB
dotcom-rendering/dist/4324.client.web.********************.js 5.83 kB
dotcom-rendering/dist/4501.client.web.********************.js 4.29 kB
dotcom-rendering/dist/4524.client.web.********************.js 3.62 kB
dotcom-rendering/dist/4754.client.web.********************.js 7.66 kB
dotcom-rendering/dist/4840.client.web.********************.js 3.67 kB
dotcom-rendering/dist/4945.client.web.********************.js 3.77 kB
dotcom-rendering/dist/5117.client.web.********************.js 49.9 kB
dotcom-rendering/dist/5128.client.web.********************.js 19.7 kB
dotcom-rendering/dist/5423.client.web.********************.js 2.76 kB
dotcom-rendering/dist/5477.client.web.********************.js 2.69 kB
dotcom-rendering/dist/5549.client.web.********************.js 3.9 kB
dotcom-rendering/dist/5709.client.web.********************.js 16.5 kB
dotcom-rendering/dist/5895.client.web.********************.js 22.7 kB
dotcom-rendering/dist/5901.client.web.********************.js 4.21 kB
dotcom-rendering/dist/5980.client.web.********************.js 5.43 kB
dotcom-rendering/dist/6085.client.web.********************.js 530 B
dotcom-rendering/dist/6232.client.web.********************.js 618 B
dotcom-rendering/dist/6255.client.web.********************.js 12.1 kB
dotcom-rendering/dist/6283.client.web.********************.js 3.9 kB
dotcom-rendering/dist/6316.client.web.********************.js 5.04 kB
dotcom-rendering/dist/6317.client.web.********************.js 4.24 kB
dotcom-rendering/dist/6369.client.web.********************.js 4.78 kB
dotcom-rendering/dist/6501.client.web.********************.js 65.6 kB
dotcom-rendering/dist/6504.client.web.********************.js 3.29 kB
dotcom-rendering/dist/6683.client.web.********************.js 2.87 kB
dotcom-rendering/dist/6694.client.web.********************.js 2.76 kB
dotcom-rendering/dist/6721.client.web.********************.js 3.2 kB
dotcom-rendering/dist/7008.client.web.********************.js 4.7 kB
dotcom-rendering/dist/7028.client.web.********************.js 3.17 kB
dotcom-rendering/dist/7116.client.web.********************.js 23.2 kB
dotcom-rendering/dist/728.client.web.********************.js 3.6 kB
dotcom-rendering/dist/739.client.web.********************.js 528 B
dotcom-rendering/dist/7416.client.web.********************.js 2.87 kB
dotcom-rendering/dist/7819.client.web.********************.js 3.87 kB
dotcom-rendering/dist/7986.client.web.********************.js 3.04 kB
dotcom-rendering/dist/8110.client.web.********************.js 3.49 kB
dotcom-rendering/dist/8158.client.web.********************.js 157 B
dotcom-rendering/dist/8361.client.web.********************.js 3.45 kB
dotcom-rendering/dist/8389.client.web.********************.js 2.63 kB
dotcom-rendering/dist/8393.client.web.********************.js 3.34 kB
dotcom-rendering/dist/8406.client.web.********************.js 438 B
dotcom-rendering/dist/8569.client.web.********************.js 5.04 kB
dotcom-rendering/dist/8742.client.web.********************.js 4.86 kB
dotcom-rendering/dist/8903.client.web.********************.js 20.5 kB
dotcom-rendering/dist/8938.client.web.********************.js 4.5 kB
dotcom-rendering/dist/9051.client.web.********************.js 3.4 kB
dotcom-rendering/dist/927.client.web.********************.js 2.76 kB
dotcom-rendering/dist/939.client.web.********************.js 4.53 kB
dotcom-rendering/dist/9599.client.web.********************.js 3.85 kB
dotcom-rendering/dist/Accessibility-importable.client.web.********************.js 8.48 kB
dotcom-rendering/dist/AdBlockAsk-importable.client.web.********************.js 2.99 kB
dotcom-rendering/dist/AdPortals-importable.client.web.********************.js 4.78 kB
dotcom-rendering/dist/AlreadyVisited-importable.client.web.********************.js 425 B
dotcom-rendering/dist/AppsEpic-importable.client.web.********************.js 3.64 kB
dotcom-rendering/dist/AppsFooter-importable.client.web.********************.js 2.71 kB
dotcom-rendering/dist/AppsLightboxImage-importable.client.web.********************.js 3.03 kB
dotcom-rendering/dist/AppsLightboxImageStore-importable.client.web.********************.js 2.63 kB
dotcom-rendering/dist/AudioAtomWrapper-importable.client.web.********************.js 2.76 kB
dotcom-rendering/dist/AudioPlayerWrapper-importable.client.web.********************.js 6.61 kB
dotcom-rendering/dist/AustralianTerritorySwitcher-importable.client.web.********************.js 4.61 kB
dotcom-rendering/dist/Branding-importable.client.web.********************.js 2.87 kB
dotcom-rendering/dist/braze-web-sdk-core.client.web.********************.js 67.7 kB
dotcom-rendering/dist/BrazeMessaging-importable.client.web.********************.js 1.69 kB
dotcom-rendering/dist/CalloutBlockComponent-importable.client.web.********************.js 6.74 kB
dotcom-rendering/dist/CalloutEmbedBlockComponent-importable.client.web.********************.js 5.77 kB
dotcom-rendering/dist/CardCommentCount-importable.client.web.********************.js 2.66 kB
dotcom-rendering/dist/Carousel-importable.client.web.********************.js 6.67 kB
dotcom-rendering/dist/CarouselForNewsletters-importable.client.web.********************.js 4.57 kB
dotcom-rendering/dist/ChartAtom-importable.client.web.********************.js 540 B
dotcom-rendering/dist/CommentCount-importable.client.web.********************.js 2.28 kB
dotcom-rendering/dist/CrosswordComponent-importable.client.web.********************.js 2.87 kB
dotcom-rendering/dist/DiscussionApps-importable.client.web.********************.js 1.99 kB
dotcom-rendering/dist/DiscussionMeta-importable.client.web.********************.js 2.39 kB
dotcom-rendering/dist/DiscussionWeb-importable.client.web.********************.js 1.69 kB
dotcom-rendering/dist/DocumentBlockComponent-importable.client.web.********************.js 2.85 kB
dotcom-rendering/dist/Dropdown-importable.client.web.********************.js 1.72 kB
dotcom-rendering/dist/EditionSwitcherBanner-importable.client.web.********************.js 4.43 kB
dotcom-rendering/dist/EmbedBlockComponent-importable.client.web.********************.js 3.97 kB
dotcom-rendering/dist/EnhanceAffiliateLinks-importable.client.web.********************.js 503 B
dotcom-rendering/dist/EnhancePinnedPost-importable.client.web.********************.js 2.02 kB
dotcom-rendering/dist/FetchOnwardsData-importable.client.web.********************.js 1.72 kB
dotcom-rendering/dist/FilterKeyEventsToggle-importable.client.web.********************.js 3.71 kB
dotcom-rendering/dist/FocusStyles-importable.client.web.********************.js 619 B
dotcom-rendering/dist/FollowWrapper-importable.client.web.********************.js 2.51 kB
dotcom-rendering/dist/FootballMatchesPageWrapper-importable.client.web.********************.js 8.17 kB
dotcom-rendering/dist/FootballTablesCompetitionSelect-importable.client.web.********************.js 3.27 kB
dotcom-rendering/dist/FooterLabel-importable.client.web.********************.js 364 B
dotcom-rendering/dist/FooterReaderRevenueLinks-importable.client.web.********************.js 3.41 kB
dotcom-rendering/dist/frameworks.client.web.********************.js 20.9 kB
dotcom-rendering/dist/FrontSubNav-importable.client.web.********************.js 7.46 kB
dotcom-rendering/dist/GetCricketScoreboard-importable.client.web.********************.js 6.24 kB
dotcom-rendering/dist/GetMatchNav-importable.client.web.********************.js 12 kB
dotcom-rendering/dist/GetMatchStats-importable.client.web.********************.js 8.06 kB
dotcom-rendering/dist/GetMatchTabs-importable.client.web.********************.js 2.57 kB
dotcom-rendering/dist/guardian-braze-components-banner.client.web.********************.js 16.3 kB
dotcom-rendering/dist/guardian-braze-components-end-of-article.client.web.********************.js 10.2 kB
dotcom-rendering/dist/GuideAtomWrapper-importable.client.web.********************.js 779 B
dotcom-rendering/dist/index.client.web.********************.js 46.6 kB
dotcom-rendering/dist/InstagramBlockComponent-importable.client.web.********************.js 2.9 kB
dotcom-rendering/dist/InteractiveAtomMessenger-importable.client.web.********************.js 851 B
dotcom-rendering/dist/InteractiveBlockComponent-importable.client.web.********************.js 8.77 kB
dotcom-rendering/dist/InteractiveContentsBlockComponent-importable.client.web.********************.js 3.79 kB
dotcom-rendering/dist/InteractivesDisableArticleSwipe-importable.client.web.********************.js 2.19 kB
dotcom-rendering/dist/InteractivesNativePlatformWrapper-importable.client.web.********************.js 3.2 kB
dotcom-rendering/dist/KeyEventsCarousel-importable.client.web.********************.js 5.72 kB
dotcom-rendering/dist/KnowledgeQuizAtom-importable.client.web.********************.js 3.23 kB
dotcom-rendering/dist/LatestLinks-importable.client.web.********************.js 7.82 kB
dotcom-rendering/dist/LightboxHash-importable.client.web.********************.js 436 B
dotcom-rendering/dist/LightboxLayout-importable.client.web.********************.js 6.58 kB
dotcom-rendering/dist/LiveBlogEpic-importable.client.web.********************.js 3.59 kB
dotcom-rendering/dist/LiveblogGutterAskWrapper-importable.client.web.********************.js 2.51 kB
dotcom-rendering/dist/LiveblogNotifications-importable.client.web.********************.js 4.87 kB
dotcom-rendering/dist/Liveness-importable.client.web.********************.js 4.71 kB
dotcom-rendering/dist/LoopVideo-importable.client.web.********************.js 5.98 kB
dotcom-rendering/dist/ManyNewsletterSignUp-importable.client.web.********************.js 7.65 kB
dotcom-rendering/dist/MapEmbedBlockComponent-importable.client.web.********************.js 6.03 kB
dotcom-rendering/dist/Metrics-importable.client.web.********************.js 2.71 kB
dotcom-rendering/dist/MostViewedFooter-importable.client.web.********************.js 3.85 kB
dotcom-rendering/dist/MostViewedFooterData-importable.client.web.********************.js 5.95 kB
dotcom-rendering/dist/MostViewedRightWithAd-importable.client.web.********************.js 5.24 kB
dotcom-rendering/dist/OnwardsUpper-importable.client.web.********************.js 5.11 kB
dotcom-rendering/dist/PersonalityQuizAtom-importable.client.web.********************.js 3.36 kB
dotcom-rendering/dist/ProfileAtom-importable.client.web.********************.js 540 B
dotcom-rendering/dist/ProfileAtomWrapper-importable.client.web.********************.js 801 B
dotcom-rendering/dist/PulsingDot-importable.client.web.********************.js 750 B
dotcom-rendering/dist/QandaAtom-importable.client.web.********************.js 538 B
dotcom-rendering/dist/ReaderRevenueDev-importable.client.web.********************.js 470 B
dotcom-rendering/dist/readerRevenueDevUtils.client.web.********************.js 1.7 kB
dotcom-rendering/dist/RelativeTime-importable.client.web.********************.js 2.54 kB
dotcom-rendering/dist/RichLinkComponent-importable.client.web.********************.js 6.15 kB
dotcom-rendering/dist/ScrollableFeature-importable.client.web.********************.js 6.76 kB
dotcom-rendering/dist/ScrollableHighlights-importable.client.web.********************.js 7.2 kB
dotcom-rendering/dist/ScrollableMedium-importable.client.web.********************.js 2.17 kB
dotcom-rendering/dist/ScrollableSmall-importable.client.web.********************.js 2.24 kB
dotcom-rendering/dist/SecureSignup-importable.client.web.********************.js 4.22 kB
dotcom-rendering/dist/SendTargetingParams-importable.client.web.********************.js 2.24 kB
dotcom-rendering/dist/sentry.client.web.********************.js 803 B
dotcom-rendering/dist/SetABTests-importable.client.web.********************.js 3.93 kB
dotcom-rendering/dist/SetAdTargeting-importable.client.web.********************.js 487 B
dotcom-rendering/dist/ShareButton-importable.client.web.********************.js 2.17 kB
dotcom-rendering/dist/shimport.client.web.********************.js 2.8 kB
dotcom-rendering/dist/ShowHideContainers-importable.client.web.********************.js 874 B
dotcom-rendering/dist/ShowMore-importable.client.web.********************.js 918 B
dotcom-rendering/dist/SignInGateMain.client.web.********************.js 1.11 kB
dotcom-rendering/dist/SignInGateMainCheckoutComplete.client.web.********************.js 2.6 kB
dotcom-rendering/dist/SignInGateSelector-importable.client.web.********************.js 5.06 kB
dotcom-rendering/dist/SlideshowCarousel-importable.client.web.********************.js 4.52 kB
dotcom-rendering/dist/SlotBodyEnd-importable.client.web.********************.js 4.9 kB
dotcom-rendering/dist/SpotifyBlockComponent-importable.client.web.********************.js 5.78 kB
dotcom-rendering/dist/StickyBottomBanner-importable.client.web.********************.js 6.13 kB
dotcom-rendering/dist/SubNav-importable.client.web.********************.js 2.42 kB
dotcom-rendering/dist/TableOfContents-importable.client.web.********************.js 3.65 kB
dotcom-rendering/dist/TimelineAtom-importable.client.web.********************.js 1.23 kB
dotcom-rendering/dist/Titlepiece-importable.client.web.********************.js 13.6 kB
dotcom-rendering/dist/TopBar-importable.client.web.********************.js 8.82 kB
dotcom-rendering/dist/TopBarSupport-importable.client.web.********************.js 2.5 kB
dotcom-rendering/dist/TweetBlockComponent-importable.client.web.********************.js 1.13 kB
dotcom-rendering/dist/UnsafeEmbedBlockComponent-importable.client.web.********************.js 2.91 kB
dotcom-rendering/dist/VideoFacebookBlockComponent-importable.client.web.********************.js 6.05 kB
dotcom-rendering/dist/VineBlockComponent-importable.client.web.********************.js 3.33 kB
dotcom-rendering/dist/YoutubeBlockComponent-importable.client.web.********************.js 843 B

compressed-size-action

@marjisound marjisound marked this pull request as draft June 27, 2025 15:34
@marjisound marjisound force-pushed the add-footer-to-gallery-layout branch from 324b92e to 549566f Compare June 30, 2025 08:21
@marjisound marjisound changed the base branch from main to add-gallery-body-component June 30, 2025 08:21
Base automatically changed from add-gallery-body-component to main July 4, 2025 15:02
@marjisound marjisound added the run_chromatic Runs chromatic when label is applied label Jul 4, 2025
@marjisound marjisound marked this pull request as ready for review July 4, 2025 16:30
@marjisound marjisound force-pushed the add-footer-to-gallery-layout branch from 549566f to c9004b1 Compare July 4, 2025 16:31
@github-actions github-actions bot removed the run_chromatic Runs chromatic when label is applied label Jul 4, 2025
@marjisound marjisound added the run_chromatic Runs chromatic when label is applied label Jul 4, 2025
@github-actions github-actions bot removed the run_chromatic Runs chromatic when label is applied label Jul 4, 2025
@marjisound marjisound requested a review from a team July 7, 2025 07:40
<Section
fullWidth={true}
data-print-layout="hide"
backgroundColour={'red'}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
backgroundColour={'red'}
backgroundColour={themePalette('--apps-footer-background')}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Copy link
Member

@arelra arelra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved assuming other comments are addressed

@marjisound marjisound added the run_chromatic Runs chromatic when label is applied label Jul 16, 2025
@marjisound marjisound linked an issue Jul 16, 2025 that may be closed by this pull request
@github-actions github-actions bot removed the run_chromatic Runs chromatic when label is applied label Jul 16, 2025
@marjisound marjisound force-pushed the add-footer-to-gallery-layout branch from 6b24fad to 121a6e0 Compare July 16, 2025 12:32
@marjisound marjisound force-pushed the add-footer-to-gallery-layout branch from 121a6e0 to 9988333 Compare July 16, 2025 12:37
@marjisound marjisound added the run_chromatic Runs chromatic when label is applied label Jul 16, 2025
@github-actions github-actions bot removed the run_chromatic Runs chromatic when label is applied label Jul 16, 2025
Copy link
Contributor

@JamieB-gu JamieB-gu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm sorry I haven't had a chance to review everything yet! Some comments/questions.

}
`;

const galleryLeftCollumn = css`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might be better called galleryBorder? If I've understood correctly, this is sometimes in the left column and sometimes in the right one?

`;

const galleryLeftCollumn = css`
${grid.column.centre}
Copy link
Contributor

@JamieB-gu JamieB-gu Jul 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do these styles have a noticeable effect?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, this is un-necessary 👍

Comment on lines 156 to 159
${between.tablet.and.desktop} {
padding-left: ${space[5]}px;
padding-right: ${space[5]}px;
}
Copy link
Contributor

@JamieB-gu JamieB-gu Jul 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do these padding styles have a noticeable effect?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good spot, trhis was un-necessary, removed it

${from.leftCol} {
${grid.column.left}

position: relative; /* allows the ::before to be positioned relative to this */
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does the position: relative need to be repeated in these two media queries? Can it be applied once outside them?

@@ -130,6 +140,55 @@ const syndicationButtonOverrides = css`
const galleryStyles = css`
${grid.paddedContainer};
background-color: ${palette('--article-inner-background')};
border-bottom: 1px solid var(--article-border);
padding: 0;
position: relative;
Copy link
Contributor

@JamieB-gu JamieB-gu Jul 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the position: relative used for here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're right, it's in the inner div so not needed here 👍

import { Standfirst } from '../components/Standfirst';
import { SubMeta } from '../components/SubMeta';
import { grid } from '../grid';
import type { ArticleFormat } from '../lib/articleFormat';
import type { NavType } from '../model/extract-nav';
import { palette } from '../palette';
import { palette, palette as themePalette } from '../palette';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You probably don't need to import this twice?

Suggested change
import { palette, palette as themePalette } from '../palette';
import { palette } from '../palette';

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did this change in the last commit d48ed9d

@marjisound marjisound added the run_chromatic Runs chromatic when label is applied label Jul 21, 2025
@github-actions github-actions bot removed the run_chromatic Runs chromatic when label is applied label Jul 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Gallery Footer
4 participants