Skip to content

Aa/portrait layout continued 2 - #16504

Open
alessiaAmitrano wants to merge 24 commits into
portrait-layoutfrom
aa/portrait-layout-continued-2
Open

Aa/portrait layout continued 2#16504
alessiaAmitrano wants to merge 24 commits into
portrait-layoutfrom
aa/portrait-layout-continued-2

Conversation

@alessiaAmitrano

@alessiaAmitrano alessiaAmitrano commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Introducing the new Immersive portrait styling for the furniture.

Before:
Picture 95

After:
Picture 99

DanielCliftonGuardian and others added 21 commits July 30, 2026 14:55
* disable some checks on main

* Ensure publish runs on push to main

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
* fix: add index suffix to radio ids/values to fix duplicate OneOff card selection

* refactor: replace forEach with for...of loop in ThreeTierChoiceCards test

* fix: keep default choice card selected after matchMedia resolves

---------

Co-authored-by: Juarez Mota <juarez.mota.mindera@guardian.co.uk>
* Update support-dotcom-components dependency

* remove unused props
…Feast nudges (#16415)

- Guard against double-dismissal with hasDismissedRef; call braze.dismissBanner()
  on close so the SDK suppresses the banner natively
- Track stale placements to prevent rendering cached banners after a failed or
  timed-out refresh; late successes mark placements fresh again
- Only request placements that exist on the page via getPagePlacements()
- Invert postMessage origin check for early return on invalid origins
- Add GET_CONTEXT message type for banner creatives to read page context
- Integrate BrazeBannersSystemDisplay into FeastContextualNudge with fallback
- Assign up to 5 evenly distributed nudge indices in ArticleRenderer
- Bump @braze/web-sdk from 6.5.0 to 6.9.0
- Add unit tests for all changes

Co-authored-by: Juarez Mota <juarez.mota.mindera@guardian.co.uk>
Copilot AI review requested due to automatic review settings August 3, 2026 17:05
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR introduces new styling tokens and component-level styling adjustments to support an updated Immersive portrait presentation (headline/title/standfirst “furniture”), and threads layoutType into the standfirst so immersive variants can be styled differently.

Changes:

  • Added new palette tokens for immersive portrait headline/title/standfirst colours.
  • Passed layoutType into Standfirst and adjusted standfirst font/colour selection based on immersive layout type.
  • Updated immersive furniture components (title, series/section link, headline) to use the new immersive portrait tokens.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
dotcom-rendering/src/paletteDeclarations.ts Adds new --immersive-portrait-* palette tokens to support portrait-specific furniture colours.
dotcom-rendering/src/layouts/StandardLayoutArticleGrid.tsx Passes layoutType through to Standfirst so layout-specific styling can be applied.
dotcom-rendering/src/components/Standfirst.tsx Adds layoutType prop and uses it to alter standfirst font/colour for immersive layouts.
dotcom-rendering/src/components/SeriesSectionLink.tsx Adjusts immersive branch styling to use an immersive-portrait title text token.
dotcom-rendering/src/components/ArticleTitle.tsx Adds immersive portrait wrapper styling/background for series/section furniture.
dotcom-rendering/src/components/ArticleMeta.web.tsx Simplifies immersive layout detection using startsWith('immersive').
dotcom-rendering/src/components/ArticleHeadline.tsx Applies immersive portrait headline colour token for portrait immersive layouts.
Suppressed comments (1)

dotcom-rendering/src/components/Standfirst.tsx:280

  • standfirstStyles switches to the portrait palette key --immersive-portrait-standfirst-text whenever layoutType starts with immersive, which includes immersiveLandscape layouts. That applies portrait colours to landscape immersives as well; if the styling is meant to be portrait-only, restrict the predicate to the portrait layout types.
const standfirstStyles = (
	{ display, design, theme }: ArticleFormat,
	layoutType?: LayoutType,
) => {
	const isImmersivePortraitOrLandscape =
		layoutType?.startsWith('immersive') ?? false;
	switch (display) {

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +6099 to +6102
const immersivePortraitTitleTextLight: PaletteFunction = () =>
sourcePalette.neutral[100];
const immersivePortraitTitleTextDark: PaletteFunction = () =>
sourcePalette.neutral[7];
Comment on lines 88 to +90
const isLabs = theme === ArticleSpecial.Labs;
const isImmersivePortraitOrLandscape =
layoutType?.startsWith('immersive') ?? false;
Comment on lines 388 to +392
sectionLabelLink,
css`
color: ${titleColour};
color: ${themePalette(
'--immersive-portrait-title-text',
)};
@alessiaAmitrano alessiaAmitrano added the feature Departmental tracking: work on a new feature label Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Departmental tracking: work on a new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants