Skip to content
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

Rework container level spacing for beta containers #12951

Merged
merged 4 commits into from
Dec 12, 2024
Merged

Conversation

abeddow91
Copy link
Contributor

@abeddow91 abeddow91 commented Dec 5, 2024

What does this change?

Reworks how container spacing is calculated and adds it to the model so that beta containers have either 24px or 40px bottom padding.

This is calculated at the enhancer layer by checking if the next sibling container has primary container styling. If this is true, we assign "large" container spacing, else we assign "small" container spacing.

There is no extra padding adding after thrashers or ads. These continue to sit flush with the top of the container that follows them.

Previously, container spacing was handled in a mixture of places. This PR reconciles this soft contract so that bottom container spacing is only set in one place: in the front section.

Why?

We want to add additional spacing to the bottom of beta containers that are followed by container with primary styling. It doesn't matter what styling the current container has.

Container spacing rules
small === is not followed by a primary container === 24px bottom padding
large === is followed by a primary container === 40px bottom padding

Screenshots

Screenshot 2024-12-11 at 16 27 22

Copy link

github-actions bot commented Dec 5, 2024

Size Change: -54 B (-0.01%)

Total Size: 945 kB

ℹ️ View Unchanged
Filename Size Change
dotcom-rendering/dist/1000.client.web.********************.js 999 B 0 B
dotcom-rendering/dist/1026.client.web.********************.js 784 B 0 B
dotcom-rendering/dist/1090.client.web.********************.js 752 B 0 B
dotcom-rendering/dist/112.client.web.********************.js 5.77 kB 0 B
dotcom-rendering/dist/1261.client.web.********************.js 2.7 kB 0 B
dotcom-rendering/dist/1391.client.web.********************.js 725 B 0 B
dotcom-rendering/dist/1476.client.web.********************.js 784 B 0 B
dotcom-rendering/dist/1483.client.web.********************.js 3.19 kB 0 B
dotcom-rendering/dist/1559.client.web.********************.js 11.3 kB 0 B
dotcom-rendering/dist/1667.client.web.********************.js 918 B 0 B
dotcom-rendering/dist/169.client.web.********************.js 8.08 kB 0 B
dotcom-rendering/dist/1826.client.web.********************.js 2.51 kB 0 B
dotcom-rendering/dist/1940.client.web.********************.js 507 B 0 B
dotcom-rendering/dist/1972.client.web.********************.js 4.17 kB 0 B
dotcom-rendering/dist/1983.client.web.********************.js 3.52 kB 0 B
dotcom-rendering/dist/222.client.web.********************.js 6.15 kB 0 B
dotcom-rendering/dist/2310.client.web.********************.js 880 B 0 B
dotcom-rendering/dist/2453.client.web.********************.js 10.9 kB 0 B
dotcom-rendering/dist/2458.client.web.********************.js 6.14 kB 0 B
dotcom-rendering/dist/2487.client.web.********************.js 157 B 0 B
dotcom-rendering/dist/2611.client.web.********************.js 3.77 kB 0 B
dotcom-rendering/dist/267.client.web.********************.js 917 B 0 B
dotcom-rendering/dist/2751.client.web.********************.js 6.19 kB 0 B
dotcom-rendering/dist/281.client.web.********************.js 642 B 0 B
dotcom-rendering/dist/2927.client.web.********************.js 441 B 0 B
dotcom-rendering/dist/2936.client.web.********************.js 5.41 kB 0 B
dotcom-rendering/dist/3004.client.web.********************.js 3.31 kB 0 B
dotcom-rendering/dist/3109.client.web.********************.js 803 B 0 B
dotcom-rendering/dist/3130.client.web.********************.js 4.25 kB 0 B
dotcom-rendering/dist/3270.client.web.********************.js 961 B 0 B
dotcom-rendering/dist/3304.client.web.********************.js 853 B 0 B
dotcom-rendering/dist/3570.client.web.********************.js 3.41 kB 0 B
dotcom-rendering/dist/3613.client.web.********************.js 3.42 kB 0 B
dotcom-rendering/dist/3634.client.web.********************.js 3.87 kB 0 B
dotcom-rendering/dist/371.client.web.********************.js 3.83 kB 0 B
dotcom-rendering/dist/3769.client.web.********************.js 999 B 0 B
dotcom-rendering/dist/3839.client.web.********************.js 3.75 kB 0 B
dotcom-rendering/dist/4132.client.web.********************.js 3.38 kB 0 B
dotcom-rendering/dist/4144.client.web.********************.js 3.54 kB 0 B
dotcom-rendering/dist/4215.client.web.********************.js 10.3 kB 0 B
dotcom-rendering/dist/4282.client.web.********************.js 685 B 0 B
dotcom-rendering/dist/4364.client.web.********************.js 12.7 kB 0 B
dotcom-rendering/dist/4501.client.web.********************.js 4.29 kB 0 B
dotcom-rendering/dist/4507.client.web.********************.js 2.44 kB 0 B
dotcom-rendering/dist/4556.client.web.********************.js 4.17 kB 0 B
dotcom-rendering/dist/4628.client.web.********************.js 654 B 0 B
dotcom-rendering/dist/4778.client.web.********************.js 44.7 kB 0 B
dotcom-rendering/dist/4941.client.web.********************.js 890 B 0 B
dotcom-rendering/dist/5019.client.web.********************.js 619 B 0 B
dotcom-rendering/dist/5209.client.web.********************.js 22.7 kB 0 B
dotcom-rendering/dist/5288.client.web.********************.js 2.92 kB 0 B
dotcom-rendering/dist/5315.client.web.********************.js 3.69 kB 0 B
dotcom-rendering/dist/5373.client.web.********************.js 4.46 kB 0 B
dotcom-rendering/dist/5400.client.web.********************.js 5.63 kB 0 B
dotcom-rendering/dist/5410.client.web.********************.js 4.49 kB 0 B
dotcom-rendering/dist/56.client.web.********************.js 3.27 kB 0 B
dotcom-rendering/dist/5618.client.web.********************.js 3.74 kB -12 B (-0.32%)
dotcom-rendering/dist/5658.client.web.********************.js 750 B 0 B
dotcom-rendering/dist/5695.client.web.********************.js 2.54 kB 0 B
dotcom-rendering/dist/5757.client.web.********************.js 931 B 0 B
dotcom-rendering/dist/576.client.web.********************.js 11.2 kB 0 B
dotcom-rendering/dist/5880.client.web.********************.js 828 B 0 B
dotcom-rendering/dist/6042.client.web.********************.js 4.04 kB 0 B
dotcom-rendering/dist/6044.client.web.********************.js 726 B 0 B
dotcom-rendering/dist/6071.client.web.********************.js 577 B 0 B
dotcom-rendering/dist/6135.client.web.********************.js 779 B 0 B
dotcom-rendering/dist/616.client.web.********************.js 3.57 kB 0 B
dotcom-rendering/dist/6240.client.web.********************.js 2.95 kB 0 B
dotcom-rendering/dist/6276.client.web.********************.js 3.17 kB 0 B
dotcom-rendering/dist/632.client.web.********************.js 6.86 kB 0 B
dotcom-rendering/dist/6390.client.web.********************.js 529 B 0 B
dotcom-rendering/dist/6495.client.web.********************.js 4.06 kB 0 B
dotcom-rendering/dist/6505.client.web.********************.js 1 kB 0 B
dotcom-rendering/dist/6598.client.web.********************.js 780 B 0 B
dotcom-rendering/dist/6638.client.web.********************.js 907 B 0 B
dotcom-rendering/dist/6655.client.web.********************.js 3.64 kB 0 B
dotcom-rendering/dist/6662.client.web.********************.js 523 B 0 B
dotcom-rendering/dist/678.client.web.********************.js 804 B 0 B
dotcom-rendering/dist/6926.client.web.********************.js 2.67 kB 0 B
dotcom-rendering/dist/6976.client.web.********************.js 2.87 kB 0 B
dotcom-rendering/dist/6990.client.web.********************.js 3.41 kB 0 B
dotcom-rendering/dist/7045.client.web.********************.js 5.13 kB 0 B
dotcom-rendering/dist/7116.client.web.********************.js 23 kB 0 B
dotcom-rendering/dist/7633.client.web.********************.js 3.22 kB 0 B
dotcom-rendering/dist/7691.client.web.********************.js 853 B 0 B
dotcom-rendering/dist/7729.client.web.********************.js 20.3 kB 0 B
dotcom-rendering/dist/7807.client.web.********************.js 3.21 kB 0 B
dotcom-rendering/dist/83.client.web.********************.js 750 B 0 B
dotcom-rendering/dist/8477.client.web.********************.js 3.53 kB 0 B
dotcom-rendering/dist/8504.client.web.********************.js 827 B 0 B
dotcom-rendering/dist/8536.client.web.********************.js 595 B 0 B
dotcom-rendering/dist/8626.client.web.********************.js 890 B 0 B
dotcom-rendering/dist/8679.client.web.********************.js 3.48 kB 0 B
dotcom-rendering/dist/8697.client.web.********************.js 956 B 0 B
dotcom-rendering/dist/8718.client.web.********************.js 2.19 kB 0 B
dotcom-rendering/dist/8833.client.web.********************.js 829 B 0 B
dotcom-rendering/dist/9184.client.web.********************.js 493 B 0 B
dotcom-rendering/dist/9203.client.web.********************.js 3.05 kB 0 B
dotcom-rendering/dist/9460.client.web.********************.js 7.4 kB 0 B
dotcom-rendering/dist/9493.client.web.********************.js 785 B 0 B
dotcom-rendering/dist/9557.client.web.********************.js 921 B 0 B
dotcom-rendering/dist/9613.client.web.********************.js 3.38 kB 0 B
dotcom-rendering/dist/9721.client.web.********************.js 717 B 0 B
dotcom-rendering/dist/9835.client.web.********************.js 647 B 0 B
dotcom-rendering/dist/9899.client.web.********************.js 669 B 0 B
dotcom-rendering/dist/Accessibility-importable.client.web.********************.js 6.34 kB -42 B (-0.66%)
dotcom-rendering/dist/AdBlockAsk-importable.client.web.********************.js 2.85 kB 0 B
dotcom-rendering/dist/AdPortals-importable.client.web.********************.js 4.86 kB 0 B
dotcom-rendering/dist/AlreadyVisited-importable.client.web.********************.js 422 B 0 B
dotcom-rendering/dist/AppsEpic-importable.client.web.********************.js 3.63 kB 0 B
dotcom-rendering/dist/AppsFooter-importable.client.web.********************.js 2.7 kB 0 B
dotcom-rendering/dist/AppsLightboxImage-importable.client.web.********************.js 2.67 kB 0 B
dotcom-rendering/dist/AppsLightboxImageStore-importable.client.web.********************.js 2.56 kB 0 B
dotcom-rendering/dist/AudioAtomWrapper-importable.client.web.********************.js 2.6 kB 0 B
dotcom-rendering/dist/AudioPlayerWrapper-importable.client.web.********************.js 6.32 kB 0 B
dotcom-rendering/dist/AuEoy2024Wrapper-importable.client.web.********************.js 5.74 kB 0 B
dotcom-rendering/dist/AustralianTerritorySwitcher-importable.client.web.********************.js 2.63 kB 0 B
dotcom-rendering/dist/Branding-importable.client.web.********************.js 2.86 kB 0 B
dotcom-rendering/dist/braze-web-sdk-core.client.web.********************.js 37.2 kB 0 B
dotcom-rendering/dist/BrazeMessaging-importable.client.web.********************.js 1.96 kB 0 B
dotcom-rendering/dist/CalloutBlockComponent-importable.client.web.********************.js 6.74 kB 0 B
dotcom-rendering/dist/CalloutEmbedBlockComponent-importable.client.web.********************.js 8.22 kB 0 B
dotcom-rendering/dist/CardCommentCount-importable.client.web.********************.js 2.66 kB 0 B
dotcom-rendering/dist/Carousel-importable.client.web.********************.js 8.09 kB 0 B
dotcom-rendering/dist/CarouselForNewsletters-importable.client.web.********************.js 5.16 kB 0 B
dotcom-rendering/dist/ChartAtom-importable.client.web.********************.js 541 B 0 B
dotcom-rendering/dist/CommentCount-importable.client.web.********************.js 2.29 kB 0 B
dotcom-rendering/dist/DiscussionApps-importable.client.web.********************.js 1.93 kB 0 B
dotcom-rendering/dist/DiscussionMeta-importable.client.web.********************.js 2.44 kB 0 B
dotcom-rendering/dist/DiscussionWeb-importable.client.web.********************.js 1.74 kB 0 B
dotcom-rendering/dist/DocumentBlockComponent-importable.client.web.********************.js 2.81 kB 0 B
dotcom-rendering/dist/Dropdown-importable.client.web.********************.js 1.72 kB 0 B
dotcom-rendering/dist/EditionSwitcherBanner-importable.client.web.********************.js 3.52 kB 0 B
dotcom-rendering/dist/EmbedBlockComponent-importable.client.web.********************.js 3.93 kB 0 B
dotcom-rendering/dist/EnhancePinnedPost-importable.client.web.********************.js 2.02 kB 0 B
dotcom-rendering/dist/ExpandableMarketingCardWrapper-importable.client.web.********************.js 6.44 kB 0 B
dotcom-rendering/dist/FetchOnwardsData-importable.client.web.********************.js 1.94 kB 0 B
dotcom-rendering/dist/FilterKeyEventsToggle-importable.client.web.********************.js 3.8 kB 0 B
dotcom-rendering/dist/FocusStyles-importable.client.web.********************.js 619 B 0 B
dotcom-rendering/dist/FollowWrapper-importable.client.web.********************.js 2.52 kB 0 B
dotcom-rendering/dist/FooterLabel-importable.client.web.********************.js 345 B 0 B
dotcom-rendering/dist/FooterReaderRevenueLinks-importable.client.web.********************.js 3.71 kB 0 B
dotcom-rendering/dist/frameworks.client.web.********************.js 20.9 kB 0 B
dotcom-rendering/dist/FrontSubNav-importable.client.web.********************.js 7.37 kB 0 B
dotcom-rendering/dist/GetCricketScoreboard-importable.client.web.********************.js 6.24 kB 0 B
dotcom-rendering/dist/GetMatchNav-importable.client.web.********************.js 11.4 kB 0 B
dotcom-rendering/dist/GetMatchStats-importable.client.web.********************.js 7.98 kB 0 B
dotcom-rendering/dist/GetMatchTabs-importable.client.web.********************.js 2.56 kB 0 B
dotcom-rendering/dist/guardian-braze-components-banner.client.web.********************.js 15.8 kB 0 B
dotcom-rendering/dist/guardian-braze-components-end-of-article.client.web.********************.js 10.2 kB 0 B
dotcom-rendering/dist/GuideAtomWrapper-importable.client.web.********************.js 782 B 0 B
dotcom-rendering/dist/index.client.web.********************.js 46 kB 0 B
dotcom-rendering/dist/InstagramBlockComponent-importable.client.web.********************.js 2.9 kB 0 B
dotcom-rendering/dist/InteractiveAtomMessenger-importable.client.web.********************.js 853 B 0 B
dotcom-rendering/dist/InteractiveBlockComponent-importable.client.web.********************.js 8.47 kB 0 B
dotcom-rendering/dist/InteractiveContentsBlockComponent-importable.client.web.********************.js 3.77 kB 0 B
dotcom-rendering/dist/KeyEventsCarousel-importable.client.web.********************.js 5.68 kB 0 B
dotcom-rendering/dist/KnowledgeQuizAtom-importable.client.web.********************.js 2.3 kB 0 B
dotcom-rendering/dist/LatestLinks-importable.client.web.********************.js 7.21 kB 0 B
dotcom-rendering/dist/LightboxHash-importable.client.web.********************.js 435 B 0 B
dotcom-rendering/dist/LightboxLayout-importable.client.web.********************.js 6.54 kB 0 B
dotcom-rendering/dist/LiveBlogEpic-importable.client.web.********************.js 3.81 kB 0 B
dotcom-rendering/dist/LiveblogNotifications-importable.client.web.********************.js 4.81 kB 0 B
dotcom-rendering/dist/Liveness-importable.client.web.********************.js 4.72 kB 0 B
dotcom-rendering/dist/ManyNewsletterSignUp-importable.client.web.********************.js 7.05 kB 0 B
dotcom-rendering/dist/MapEmbedBlockComponent-importable.client.web.********************.js 5.87 kB 0 B
dotcom-rendering/dist/Metrics-importable.client.web.********************.js 2.69 kB 0 B
dotcom-rendering/dist/MostViewedFooter-importable.client.web.********************.js 4.67 kB 0 B
dotcom-rendering/dist/MostViewedFooterData-importable.client.web.********************.js 6.85 kB 0 B
dotcom-rendering/dist/MostViewedRightWithAd-importable.client.web.********************.js 5.04 kB 0 B
dotcom-rendering/dist/OnwardsUpper-importable.client.web.********************.js 5.32 kB 0 B
dotcom-rendering/dist/PersonalityQuizAtom-importable.client.web.********************.js 2.48 kB 0 B
dotcom-rendering/dist/ProfileAtom-importable.client.web.********************.js 545 B 0 B
dotcom-rendering/dist/ProfileAtomWrapper-importable.client.web.********************.js 805 B 0 B
dotcom-rendering/dist/PulsingDot-importable.client.web.********************.js 749 B 0 B
dotcom-rendering/dist/QandaAtom-importable.client.web.********************.js 543 B 0 B
dotcom-rendering/dist/ReaderRevenueDev-importable.client.web.********************.js 469 B 0 B
dotcom-rendering/dist/readerRevenueDevUtils.client.web.********************.js 1.96 kB 0 B
dotcom-rendering/dist/RelativeTime-importable.client.web.********************.js 2.53 kB 0 B
dotcom-rendering/dist/RichLinkComponent-importable.client.web.********************.js 6.02 kB 0 B
dotcom-rendering/dist/ScrollableFeature-importable.client.web.********************.js 4.58 kB 0 B
dotcom-rendering/dist/ScrollableHighlights-importable.client.web.********************.js 5.44 kB 0 B
dotcom-rendering/dist/ScrollableMedium-importable.client.web.********************.js 2.3 kB 0 B
dotcom-rendering/dist/ScrollableSmall-importable.client.web.********************.js 2.3 kB 0 B
dotcom-rendering/dist/SecureSignup-importable.client.web.********************.js 6.5 kB 0 B
dotcom-rendering/dist/SendTargetingParams-importable.client.web.********************.js 2.22 kB 0 B
dotcom-rendering/dist/sentry.client.web.********************.js 794 B 0 B
dotcom-rendering/dist/SetABTests-importable.client.web.********************.js 3.86 kB 0 B
dotcom-rendering/dist/SetAdTargeting-importable.client.web.********************.js 485 B 0 B
dotcom-rendering/dist/ShareButton-importable.client.web.********************.js 4.65 kB 0 B
dotcom-rendering/dist/shimport.client.web.********************.js 2.8 kB 0 B
dotcom-rendering/dist/ShowHideContainers-importable.client.web.********************.js 728 B 0 B
dotcom-rendering/dist/ShowMore-importable.client.web.********************.js 3.27 kB 0 B
dotcom-rendering/dist/SignInGateMain.client.web.********************.js 4.46 kB 0 B
dotcom-rendering/dist/SignInGateMainCheckoutComplete.client.web.********************.js 5.55 kB 0 B
dotcom-rendering/dist/SignInGateSelector-importable.client.web.********************.js 5.83 kB 0 B
dotcom-rendering/dist/SlideshowCarousel-importable.client.web.********************.js 4.36 kB 0 B
dotcom-rendering/dist/SlotBodyEnd-importable.client.web.********************.js 4.87 kB 0 B
dotcom-rendering/dist/SpotifyBlockComponent-importable.client.web.********************.js 5.68 kB 0 B
dotcom-rendering/dist/StickyBottomBanner-importable.client.web.********************.js 6.19 kB 0 B
dotcom-rendering/dist/StickyLiveblogAskWrapper-importable.client.web.********************.js 8.36 kB 0 B
dotcom-rendering/dist/SubNav-importable.client.web.********************.js 2.41 kB 0 B
dotcom-rendering/dist/TableOfContents-importable.client.web.********************.js 3.48 kB 0 B
dotcom-rendering/dist/TimelineAtom-importable.client.web.********************.js 1.23 kB 0 B
dotcom-rendering/dist/Titlepiece-importable.client.web.********************.js 13.7 kB 0 B
dotcom-rendering/dist/TopBar-importable.client.web.********************.js 9.51 kB 0 B
dotcom-rendering/dist/TopBarSupport-importable.client.web.********************.js 2.73 kB 0 B
dotcom-rendering/dist/TweetBlockComponent-importable.client.web.********************.js 1.13 kB 0 B
dotcom-rendering/dist/UnsafeEmbedBlockComponent-importable.client.web.********************.js 2.91 kB 0 B
dotcom-rendering/dist/UsEoy2024Wrapper-importable.client.web.********************.js 6.18 kB 0 B
dotcom-rendering/dist/VideoFacebookBlockComponent-importable.client.web.********************.js 5.88 kB 0 B
dotcom-rendering/dist/VineBlockComponent-importable.client.web.********************.js 2.78 kB 0 B
dotcom-rendering/dist/WeatherWrapper-importable.client.web.********************.js 6.06 kB 0 B
dotcom-rendering/dist/YoutubeBlockComponent-importable.client.web.********************.js 3.63 kB 0 B

compressed-size-action

@abeddow91 abeddow91 marked this pull request as ready for review December 11, 2024 16:34
@abeddow91 abeddow91 requested a review from a team as a code owner December 11, 2024 16:34
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.

@abeddow91 abeddow91 changed the title Ab/spacing logic Rework container level spacing for beta containers Dec 11, 2024
Copy link
Contributor

@cemms1 cemms1 left a comment

Choose a reason for hiding this comment

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

Thank you soo much this is so much more readable than before and also resolves the design issues with the previous implementation 🙌

Comment on lines +58 to +59
/** Fronts containers spacing rules vary depending on the size of their container spacing which is derived from if the next container is a primary or secondary. */
containerSpacing?: 'large' | 'small';
Copy link
Contributor

Choose a reason for hiding this comment

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

👏 so much better 👏

Comment on lines +45 to +50
/** Depending on the next sibling of the container, we assign either large or small spacing rules during render */
const getContainerSpacing = (nextSiblingCollection?: FECollectionType) => {
const nextCollectionIsPrimary =
nextSiblingCollection?.config.collectionLevel === 'Primary';
return nextCollectionIsPrimary ? 'large' : 'small';
};
Copy link
Contributor

Choose a reason for hiding this comment

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

Super neat!

@abeddow91 abeddow91 added the run_chromatic Runs chromatic when label is applied label Dec 12, 2024
@github-actions github-actions bot removed the run_chromatic Runs chromatic when label is applied label Dec 12, 2024
@abeddow91 abeddow91 added the run_chromatic Runs chromatic when label is applied label Dec 12, 2024
@github-actions github-actions bot removed the run_chromatic Runs chromatic when label is applied label Dec 12, 2024
@abeddow91 abeddow91 added the run_chromatic Runs chromatic when label is applied label Dec 12, 2024
@github-actions github-actions bot removed the run_chromatic Runs chromatic when label is applied label Dec 12, 2024
@abeddow91 abeddow91 merged commit c8f5b09 into main Dec 12, 2024
32 checks passed
@abeddow91 abeddow91 deleted the ab/spacing-logic branch December 12, 2024 09:50
@prout-bot
Copy link

Seen on PROD (merged by @abeddow91 9 minutes and 57 seconds ago) Please check your changes!

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.

3 participants