diff --git a/dotcom-rendering/src/components/ArticleMeta.apps.tsx b/dotcom-rendering/src/components/ArticleMeta.apps.tsx index fe34af72e1e..0fc4734d311 100644 --- a/dotcom-rendering/src/components/ArticleMeta.apps.tsx +++ b/dotcom-rendering/src/components/ArticleMeta.apps.tsx @@ -98,7 +98,7 @@ const MetaGridByline = ({ children: ReactNode; isComment: boolean; }) => ( - // address > div > span > div:first-of-type - spacing for the Follow Tag buttons in follow wrapper, + // address > div > div:first-of-type - spacing for the Follow Tag buttons in follow wrapper, // which is contextual of the meta by layout type
div > span > div:first-of-type { + address > div > div:first-of-type { display: block; margin-top: ${space[2]}px; ${!isComment && `margin-bottom: ${space[2]}px;`} diff --git a/dotcom-rendering/src/components/BylineLink.tsx b/dotcom-rendering/src/components/BylineLink.tsx index 3c9c4beca07..9eca0a5bd46 100644 --- a/dotcom-rendering/src/components/BylineLink.tsx +++ b/dotcom-rendering/src/components/BylineLink.tsx @@ -1,5 +1,4 @@ import { isString } from '@guardian/libs'; -import { Hide } from '@guardian/source/react-components'; import { DottedLines } from '@guardian/source-development-kitchen/react-components'; import { ArticleDesign, type ArticleFormat } from '../lib/articleFormat'; import { @@ -191,7 +190,7 @@ export const BylineLink = ({ <> {renderedTokens} {isApps && !isLiveBlog && !isHeadline && hasSoleContributor ? ( - + <> - + ) : null} ); diff --git a/dotcom-rendering/src/layouts/CommentLayout.tsx b/dotcom-rendering/src/layouts/CommentLayout.tsx index 1ffc9067f0a..c9f8cb70544 100644 --- a/dotcom-rendering/src/layouts/CommentLayout.tsx +++ b/dotcom-rendering/src/layouts/CommentLayout.tsx @@ -56,9 +56,11 @@ import { BannerWrapper, Stuck } from './lib/stickiness'; const StandardGrid = ({ children, display, + renderingTarget, }: { children: React.ReactNode; display: ArticleDisplay; + renderingTarget: RenderingTarget; }) => (
{ backgroundColour={themePalette('--article-background')} element="article" > - +
{
{isApps ? ( - <> - - - - - - - + ) : ( - <> - - + )}
@@ -659,7 +643,9 @@ export const CommentLayout = (props: WebProps | AppsProps) => { margin-left: 20px; margin-right: -20px; } - ${from.leftCol} { + + ${renderingTarget !== 'Apps' && + from.leftCol} { /* above 1140 */ margin-left: 0px; margin-right: 0px; diff --git a/dotcom-rendering/src/layouts/ImmersiveLayout.tsx b/dotcom-rendering/src/layouts/ImmersiveLayout.tsx index aa1da47d660..50fe2d34d6e 100644 --- a/dotcom-rendering/src/layouts/ImmersiveLayout.tsx +++ b/dotcom-rendering/src/layouts/ImmersiveLayout.tsx @@ -57,9 +57,16 @@ import { parse } from '../lib/slot-machine-flags'; import type { NavType } from '../model/extract-nav'; import { palette as themePalette } from '../palette'; import type { ArticleDeprecated } from '../types/article'; +import type { RenderingTarget } from '../types/renderingTarget'; import { BannerWrapper, Stuck } from './lib/stickiness'; -const ImmersiveGrid = ({ children }: { children: React.ReactNode }) => ( +const ImmersiveGrid = ({ + children, + renderingTarget, +}: { + children: React.ReactNode; + renderingTarget: RenderingTarget; +}) => (
( display: grid; width: 100%; margin-left: 0; - + ${renderingTarget === 'Apps' && + css` + ${from.leftCol} { + margin-left: 230px; + } + `} /* Explanation of each unit of grid-template-columns @@ -122,6 +134,22 @@ const ImmersiveGrid = ({ children }: { children: React.ReactNode }) => ( '. border . right-column'; } + /* Apply until.leftCol layout from leftCol for Apps targets */ + ${renderingTarget === 'Apps' && + css` + ${from.leftCol} { + grid-template-columns: 620px 300px; + grid-column-gap: 20px; + grid-template-areas: + 'title right-column' + 'headline right-column' + 'standfirst right-column' + 'byline right-column' + 'caption right-column' + 'meta right-column' + 'body right-column'; + } + `} /* Explanation of each unit of grid-template-columns @@ -449,7 +477,7 @@ export const ImmersiveLayout = (props: WebProps | AppProps) => { backgroundColour={themePalette('--article-background')} element="article" > - + {/* Above leftCol, the Caption is controlled by Section ^^ */} @@ -549,62 +577,24 @@ export const ImmersiveLayout = (props: WebProps | AppProps) => { )}
{isApps ? ( - <> - - - - - - {!!article.affiliateLinksDisclaimer && ( - - )} - - + ) : ( <> {
{isApps ? ( - <> - - - - - - - + ) : ( ( +const ShowcaseGrid = ({ + children, + renderingTarget, +}: { + children: React.ReactNode; + renderingTarget: RenderingTarget; +}) => (
( display: grid; width: 100%; margin-left: 0; + ${renderingTarget === 'Apps' && + css` + ${from.leftCol} { + margin-left: 270px; + } + `} grid-column-gap: 10px; @@ -87,25 +98,28 @@ const ShowcaseGrid = ({ children }: { children: React.ReactNode }) => ( Right Column */ - ${from.wide} { - grid-template-columns: 219px 1px 620px 80px 300px; - grid-template-areas: - 'title border headline headline headline' - 'meta border media media media' - 'meta border standfirst . right-column' - 'meta border body . right-column' - '. border . . right-column'; - } - - ${until.wide} { - grid-template-columns: 140px 1px 620px 300px; - grid-template-areas: - 'title border headline headline' - 'meta border media media' - 'meta border standfirst right-column' - 'meta border body right-column' - '. border . right-column'; - } + ${renderingTarget === 'Web' && + css` + ${from.wide} { + grid-template-columns: 219px 1px 620px 80px 300px; + grid-template-areas: + 'title border headline headline headline' + 'meta border media media media' + 'meta border standfirst . right-column' + 'meta border body . right-column' + '. border . . right-column'; + } + + ${until.wide} { + grid-template-columns: 140px 1px 620px 300px; + grid-template-areas: + 'title border headline headline' + 'meta border media media' + 'meta border standfirst right-column' + 'meta border body right-column' + '. border . right-column'; + } + `} /* Explanation of each unit of grid-template-columns @@ -113,6 +127,23 @@ const ShowcaseGrid = ({ children }: { children: React.ReactNode }) => ( Main content Right Column */ + + + /* Apply until.leftCol layout from leftCol for Apps targets */ + ${renderingTarget === 'Apps' && + css` + ${from.leftCol} { + grid-template-columns: 620px 300px; + grid-template-areas: + 'title right-column' + 'headline right-column' + 'standfirst right-column' + 'media right-column' + 'meta right-column' + 'body right-column' + '. right-column'; + } + `} ${until.leftCol} { grid-template-columns: 620px 300px; grid-template-areas: @@ -362,7 +393,7 @@ export const ShowcaseLayout = (props: WebProps | AppsProps) => { element="article" borderColour={themePalette('--article-border')} > - +
{
{isApps ? ( - <> - - - - - - {!!article.affiliateLinksDisclaimer && ( - - )} - - + ) : ( <> { margin-left: 20px; margin-right: -20px; } - ${from.leftCol} { + ${renderingTarget !== 'Apps' && + from.leftCol} { /* above 1140 */ margin-left: 0px; margin-right: 0px; diff --git a/dotcom-rendering/src/layouts/StandardLayout.tsx b/dotcom-rendering/src/layouts/StandardLayout.tsx index 32a687379db..7679785e056 100644 --- a/dotcom-rendering/src/layouts/StandardLayout.tsx +++ b/dotcom-rendering/src/layouts/StandardLayout.tsx @@ -5,7 +5,6 @@ import { palette as sourcePalette, until, } from '@guardian/source/foundations'; -import { Hide } from '@guardian/source/react-components'; import { StraightLines } from '@guardian/source-development-kitchen/react-components'; import { AdPortals } from '../components/AdPortals.importable'; import { AdSlot, MobileStickyContainer } from '../components/AdSlot.web'; @@ -64,10 +63,12 @@ const StandardGrid = ({ children, isMatchReport, isMedia, + renderingTarget, }: { children: React.ReactNode; isMatchReport: boolean; isMedia: boolean; + renderingTarget: RenderingTarget; }) => (
@@ -463,6 +519,7 @@ export const StandardLayout = (props: WebProps | AppProps) => {
@@ -584,70 +641,26 @@ export const StandardLayout = (props: WebProps | AppProps) => {
{isApps ? ( - <> - -
- -
-
- -
- -
- {!!article.affiliateLinksDisclaimer && ( - - )} -
- +
+ +
) : (
{ margin-right: -20px; padding-bottom: ${isMedia ? 41 : 0}px; } - ${from.leftCol} { + ${renderingTarget !== 'Apps' && + from.leftCol} { /* above 1140 */ margin-left: 0px; margin-right: 0px;