Releases: primer/brand
@primer/react-brand@0.65.0
Minor Changes
-
#1252
e5ae233Thanks @danielguillan! - Added newTilescomponent for displaying a responsive grid of logos or icons with optional interactivity. -
#1264
ff4c8d3Thanks @rezrah! - Deprecated theIDEcomponent. It will be removed in a future release. -
#1239
9b201fdThanks @rezrah! - Added presentational updates to theLogoSuitecomponent.New features
-
New
gridline-expressivevariant<LogoSuite variant="gridline-expressive"> <LogoSuite.Heading>New GridLine variant</LogoSuite.Heading> <LogoSuite.Logobar>{/* logos */}</LogoSuite.Logobar> </LogoSuite>
-
New
takeoverButtonprop onLogoSuite.Logobar<LogoSuite.Logobar takeoverButton={{label: 'Learn more', href: '/customers'}}>{/* logos */}</LogoSuite.Logobar>
Accessibility improvements
marqueefeature starts paused whenprefers-reduced-motion: reduceis enabledmarqueefeature pauses on focus and retains position when unfocusedmarqueelogos that are duplicated internally are now marked asinert
-
-
#1256
5814563Thanks @rezrah! - Removed condensedfont-stretchvalue inStatistic.Heading. Statistic headings will now display at their default width instead of 75% condensed. -
#1254
24623efThanks @rezrah! - UpdatedButtonGroupdefaults- First
Buttonin the group now defaults toaccentinstead ofprimary - Second
Buttonin the group now defaults tosubtlewithout an arrow instead ofsecondary
- First
-
#1254
24623efThanks @rezrah! - Updates toCTABannercomponent:-
Default heading size changed from
'1'to'3'. -
aligndefault changed from'start'to'center'. -
A new
variantprop controls overall layout of the banner. Three variants are available:default,balanced, andminimal.<CTABanner variant="balanced"> <CTABanner.Heading>Heading</CTABanner.Heading> <CTABanner.Description>Description</CTABanner.Description> <CTABanner.ButtonGroup> <Button>Action</Button> </CTABanner.ButtonGroup> <CTABanner.Image src="/image.png" alt="description" /> </CTABanner>
-
New
CTABanner.Imagesub-component: Renders an image within the banner. Used in thebalancedvariant for the two-column layout. -
New
hasGridLinesprop: EnablesGridLineborders around the banner, complementary tohasBorder. -
New
leadingComponentprop: Escape-hatch for inserting a custom React component above the heading content. Similar totrailingComponent
⚠️ Visual breaking change toCTABanner:hasShadowhas been marked asdeprecatedand the previous default styles have been removed in this release for better out-of-the-box defaults. In a future release we will remove the prop entirely.
-
-
#1257
f881785Thanks @rezrah! - Updates to theFAQ,FAQGroup, andAccordioncomponents.-
Accordion- Replaced
+/-text toggles with chevrons - New item border color and transitions for active and hover state
- Restyled
emphasisvariant - Updated typography
- Added
weightprop toAccordion.Heading. Forwards allweightoptions from theHeadingcomponent.
- Replaced
-
FAQ- New
variantprop, supportingdefaultandgridlineoptions. - Updated typography
- Added
weightprop toAccordion.Heading. Forwards allweightoptions from theHeadingcomponent.
- New
-
FAQGroup- New
variantprop, supportingdefaultandgridlineoptions. - Updated button appearance for
tablist - Updated typography
- New
-
-
#1231
d8b4d5eThanks @danielguillan! - Updates toRivercomponentNew Features
-
New
Riverprop:variant. This prop controls the layout and appearance of the River component. Two variants are available:defaultandgridline.The
defaultvariant is the pre-existingRiverconfiguration and remains the default value.The
gridlinevariant adds lateral padding and borders for use within bordered grid layouts.<River variant="gridline" />
-
New
River.Visualprop:imageBackgroundColor. Set to'subtle'to create a full-bleed container with a background color and the image/video centered inside with padding.<River variant="gridline"> <River.Visual imageBackgroundColor="subtle"> <img src="..." alt="..." /> </River.Visual> <River.Content>...</River.Content> </River>
-
New
River.Contentprop:align. Controls vertical alignment of content within its container. Values:'center'(default),'block-end'. -
EyebrowTextsupport:River.Contentnow acceptsEyebrowTextas a child for adding small, uppercase labels above the heading.<River.Content> <EyebrowText>Feature</EyebrowText> <Heading>Title</Heading> <Text>Description</Text> </River.Content>
-
New
RiverBreakoutprop:variant. This prop controls the layout and appearance of the RiverBreakout component. Two variants are available:defaultandgridline.The
gridlinevariant adds horizontal border lines, lateral spacing, and supports vertical dividers for the trailing component on tablet+ viewports.<RiverBreakout variant="gridline"> <RiverBreakout.A11yHeading>Title</RiverBreakout.A11yHeading> <RiverBreakout.Visual> <img src="..." alt="..." /> </RiverBreakout.Visual> <RiverBreakout.Content trailingComponent={Timeline} trailingComponentDivider> <Text>Description</Text> </RiverBreakout.Content> </RiverBreakout>
-
RiverBreakoutpadded background support:RiverBreakout.Visualnow supportsimageBackgroundColor="subtle"to display the visual with a padded background container that bleeds to the gridline borders.
-
Patch Changes
-
#1268
70c85eaThanks @rezrah! - Reduced the gap betweenHero.LabelandHero.Heading. -
#1248
39772c1Thanks @rezrah! - Updates to theSubNavcomponent:- Visual overhaul of active states, typography, and narrow viewport menu toggle
- Top and bottom borders now included by default on the container. This may cause double borders if the surrounding layout already applies borders
⚠️ hasShadowprop is now deprecated. It will be removed in a future releaseSubNav.Actiondefault variant changed fromprimarytoaccent- No breaking API changes
-
#1259
b7d7220Thanks @rezrah! - - Remove 100vw width fromSubdomainNavBar.Searchcomponent, as it was causing visual overflow on narrow viewports.- Applies
position: relativeto non-fixedSubdomainNavBarcontainer to properly containabsolutechildren.
- Applies
-
#1256
5814563Thanks @rezrah! - Added new props toGridcomponent for tighter layout control:columnGap: controls the gap between columns. Accepts'default'or'none'.rowGap: controls the gap between rows. Accepts'default'or'none'.enableGutters: enables or disables default gutters. Defaults totrue.
No breaking changes. Both updates are opt-in and previous
gapvalues remain thedefault. -
#1246 [
32d8b4d...
@primer/brand-primitives@0.65.0
Minor Changes
-
#1257
f881785Thanks @rezrah! - Updates to design tokens forFAQ,FAQGroup, andAccordioncomponents.- Removed
--brand-Accordion-border-color-emphasistoken - Removed
--brand-Accordion-toggle-color-end - Removed
--brand-FAQ-color-tabBg-selectedtoken - Added
--brand-FAQGroup-buttonIndicator-idle,--brand-FAQGroup-buttonIndicator-hover,--brand-FAQGroup-buttonIndicator-activetokens
- Removed
-
#1231
d8b4d5eThanks @danielguillan! - Updates toRivercomponentNew Features
-
New
Riverprop:variant. This prop controls the layout and appearance of the River component. Two variants are available:defaultandgridline.The
defaultvariant is the pre-existingRiverconfiguration and remains the default value.The
gridlinevariant adds lateral padding and borders for use within bordered grid layouts.<River variant="gridline" />
-
New
River.Visualprop:imageBackgroundColor. Set to'subtle'to create a full-bleed container with a background color and the image/video centered inside with padding.<River variant="gridline"> <River.Visual imageBackgroundColor="subtle"> <img src="..." alt="..." /> </River.Visual> <River.Content>...</River.Content> </River>
-
New
River.Contentprop:align. Controls vertical alignment of content within its container. Values:'center'(default),'block-end'. -
EyebrowTextsupport:River.Contentnow acceptsEyebrowTextas a child for adding small, uppercase labels above the heading.<River.Content> <EyebrowText>Feature</EyebrowText> <Heading>Title</Heading> <Text>Description</Text> </River.Content>
-
New
RiverBreakoutprop:variant. This prop controls the layout and appearance of the RiverBreakout component. Two variants are available:defaultandgridline.The
gridlinevariant adds horizontal border lines, lateral spacing, and supports vertical dividers for the trailing component on tablet+ viewports.<RiverBreakout variant="gridline"> <RiverBreakout.A11yHeading>Title</RiverBreakout.A11yHeading> <RiverBreakout.Visual> <img src="..." alt="..." /> </RiverBreakout.Visual> <RiverBreakout.Content trailingComponent={Timeline} trailingComponentDivider> <Text>Description</Text> </RiverBreakout.Content> </RiverBreakout>
-
RiverBreakoutpadded background support:RiverBreakout.Visualnow supportsimageBackgroundColor="subtle"to display the visual with a padded background container that bleeds to the gridline borders.
-
Patch Changes
@primer/brand-css@0.65.0
@primer/brand-css@0.65.0
@primer/react-brand@0.64.0
Minor Changes
-
#1220
661ae42Thanks @rezrah! - Updates toHerocomponent⚠️ Important: Breaking changes are included in this update.Breaking Changes
-
Hero.Label: No longer extendsLabelcomponent. It now renders as plain text with monospace font and in uppercase. Props likesizeandcolorare no longer supported.Update usage as follows:
- <Hero.Label color="red">Red labels</Hero.Label> + <Hero.Label>Default label</Hero.Label>
-
Hero.Description: Defaultsizechanged from'350'to'200'. The defaultvariantchanged from'default'to'muted'. -
Hero.PrimaryAction: Default button variant changed from'primary'to'accent'.Revert to previous style:
- <Hero.PrimaryAction>Button</Hero.PrimaryAction> <-- now accent (green) variant + <Hero.PrimaryAction variant="primary">Button</Hero.PrimaryAction> <--revert to primary variant
New Features
-
New
Heroprop:variant. This prop controls overall layout, appearance and motion in theHero. Two variants are available:defaultandgridline.The
defaultvariant is the pre-existingHeroconfiguration, and remains the default value to minimize breaking changes.The
gridlinelayout is a new layout that can be opted-into. This is an experimental layout and configuration.<Hero variant="gridline" />
-
New
Hero.Labelanimations: NewanimateandanimationDelayprops for text cursor animation effect. -
New image positions:
Hero.ImageandHero.Videonow support'inline-start','inline-end-padded', and'inline-start-padded'positions. -
New
Hero.Videoposter props:poster,posterAltText, andposterTitlefor displaying a custom poster image with a play button overlay before the video loads. Video content is hidden until the user clicks the poster to play. -
imageBackgroundColorprop: Set to'subtle'for a subtle background on the image container. -
imageContainerRefprop: Ref access to the image container element. -
Built-in animations: When using
variant="gridline", heading, description, image, and actions animate automatically on load.
Other
Hero.Imageborder radius has been reduced fromlargetomedium.Herointernal grids have been optimized on medium (tablet) breakpoints to appear in the stacked layout (mobile). This is a layout improvement that prevents cramped image layouts.
-
Patch Changes
-
#1220
661ae42Thanks @rezrah! - Added additional customization options to theBoxcomponent-
Responsive border width values:
<Box borderWidth={{narrow: 'thin', regular: 'none'}} // now accepts an Object />
-
Border width can be set to
none<Box borderBlockEndWidth={{narrow: 'thin', wide: 'none'}} />
-
Fixed bug whereby adding individual borders wasn't previously possible
<Box borderBlockStartWidth="thin" borderInlineEndWidth="thin" borderInlineStartWidth="thin" />
-
Arbitrary background color values (e.g. CSS variables)
<Box backgroundColor="var(--base-color-scale-gray-1)" />
-
-
#1220
661ae42Thanks @rezrah! - Fixed visual bug inVideoPlayerwhere the progress bar was incorrectly positioned when the parent usesflexchild positioning. -
#1220
661ae42Thanks @rezrah! - Added newreveal-in-upanimation andimmediatetriggers toAnimationProvider<AnimationProvider animationTrigger="immediate"> <Box animate="reveal-in-up">Wipe in up animation that runs immediately</Box> </AnimationProvider>
-
#1220
661ae42Thanks @rezrah! - Addedpositionprop toCard.Image-
New
block-endposition option to place the image below content<Card> <Card.Image src="/image.png" position="block-end" /> // Allows image to appear at the bottom of the card. <Card.Heading>Title</Card.Heading> </Card>
-
Fixed layout issue when combining
align="center"withposition="block-end"
-
@primer/brand-primitives@0.64.0
@primer/brand-primitives@0.64.0
@primer/brand-css@0.64.0
@primer/brand-css@0.64.0
@primer/react-brand@0.63.0
Minor Changes
-
#1229
d851b4eThanks @danielguillan! - Renamed font files to replace URL-unsafe characters (square brackets and commas) with hyphens⚠️ Breaking change: Font file names have changed. If you are importing font files directly, update your imports:- @primer/react-brand/fonts/MonaSansVF[wdth,wght,opsz].woff2 + @primer/react-brand/fonts/MonaSansVF-wdth-wght-opsz.woff2 - @primer/react-brand/fonts/MonaSansMonoVF[wght].woff2 + @primer/react-brand/fonts/MonaSansMonoVF-wght.woff2
@primer/brand-primitives@0.63.0
@primer/brand-primitives@0.63.0
@primer/brand-css@0.63.0
@primer/brand-css@0.63.0