SectionHeading

SectionHeading is intended to be used as a title for each section. SectionHeading are very important for accessibility, as they help to make copy more easily scannable and guides a user through your content. When using screen readers, it finds sections in your copy based on your heading hierarchy.

Import

import { SectionHeading } from '@contentful/f36-components';
// or
import { SectionHeading } from '@contentful/f36-typography';

Examples

Basic

Margins

By default SectionHeading component has a margin bottom of spacingL (1.5rem). You can override the default margin bottom by specifying it explicitly on the component level by marginBottom="none" or any other value from our spacing options

as property

By default SectionHeading has an h2 tag. But you can change it by providing as prop with values from h1 to h6.

Truncated text

Sometimes you might have to truncate the text in the SectionHeading component, so we provide the prop especially for that. Under the hood, what it does is add overflow: hidden and set text-overflow to ellipsis. Have a look at the example below:

Composition

Props (API reference)

Open in Storybook

Name

Type

Default

as
HTML Tag or React Component (e.g. div, span, etc)

children
ReactNode

className
string

CSS class to be appended to the root element

css
string
number
false
true
ComponentSelector
Keyframes
SerializedStyles
ArrayInterpolation<undefined>
ObjectInterpolation<undefined>
(theme: any) => Interpolation<undefined>

fontColor
"blue100"
"blue200"
"blue300"
"blue400"
"blue500"
"blue600"
"blue700"
"blue800"
"blue900"
"gray100"
"gray200"
"gray300"
"gray400"
"gray500"
"gray600"
"gray700"
"gray800"
"gray900"
"green100"
"green200"
"green300"
"green400"
"green500"
"green600"
"green700"
"green800"
"green900"
"orange100"
"orange200"
"orange300"
"orange400"
"orange500"
"orange600"
"orange700"
"orange800"
"orange900"
"purple100"
"purple200"
"purple300"
"purple400"
"purple500"
"purple600"
"purple700"
"purple800"
"purple900"
"red100"
"red200"
"red300"
"red400"
"red500"
"red600"
"red700"
"red800"
"red900"
"colorPrimary"
"colorPositive"
"colorNegative"
"colorWarning"
"colorWhite"
"yellow100"
"yellow200"
"yellow300"
"yellow400"
"yellow500"
"yellow600"
"yellow700"
"yellow800"
"yellow900"

fontSize
"fontSize4Xl"
"fontSize3Xl"
"fontSize2Xl"
"fontSizeXl"
"fontSizeXlHigh"
"fontSizeL"
"fontSizeLHigh"
"fontSizeM"
"fontSizeMHigh"
"fontSizeS"
"fontSizeSHigh"

fontStack
"fontStackPrimary"
"fontStackMonospace"

fontWeight
"fontWeightNormal"
"fontWeightMedium"
"fontWeightDemiBold"

isTruncated
false
true

isWordBreak
false
true

letterSpacing
"letterSpacingDefault"
"letterSpacingWide"

lineHeight
"lineHeightDefault"
"lineHeightCondensed"
"lineHeight4Xl"
"lineHeight3Xl"
"lineHeight2Xl"
"lineHeightXl"
"lineHeightXlHigh"
"lineHeightL"
"lineHeightLHigh"
"lineHeightM"
"lineHeightMHigh"
"lineHeightS"
"lineHeightSHigh"

margin
"none"
"spacing2Xs"
"spacingXs"
"spacingS"
"spacingM"
"spacingL"
"spacingXl"
"spacing2Xl"
"spacing3Xl"
"spacing4Xl"

sets margin to one of the corresponding spacing tokens

marginBottom
"none"
"spacing2Xs"
"spacingXs"
"spacingS"
"spacingM"
"spacingL"
"spacingXl"
"spacing2Xl"
"spacing3Xl"
"spacing4Xl"

sets margin-bottom to one of the corresponding spacing tokens

marginLeft
"none"
"spacing2Xs"
"spacingXs"
"spacingS"
"spacingM"
"spacingL"
"spacingXl"
"spacing2Xl"
"spacing3Xl"
"spacing4Xl"

sets margin-left to one of the corresponding spacing tokens

marginRight
"none"
"spacing2Xs"
"spacingXs"
"spacingS"
"spacingM"
"spacingL"
"spacingXl"
"spacing2Xl"
"spacing3Xl"
"spacing4Xl"

sets margin-right to one of the corresponding spacing tokens

marginTop
"none"
"spacing2Xs"
"spacingXs"
"spacingS"
"spacingM"
"spacingL"
"spacingXl"
"spacing2Xl"
"spacing3Xl"
"spacing4Xl"

sets margin-top to one of the corresponding spacing tokens

testId
string

A [data-test-id] attribute used for testing purposes

Density support

This component supports multiple densities thanks to the useDensity hook and automatically adjusts its styling for each density (when wrapped with the DensityProvider).