Import
import { Heading } from '@contentful/f36-components';// orimport { Heading } from '@contentful/f36-typography';
Examples
Margins
Forma 36 typography components provide a way to set their own margins. By default Heading
component has a margin bottom of 1rem
(16px
). 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
For some cases, you might have to use Heading
in a different context than the page title. For that we provide you with as
property, to allow you to set the tag of the component to another tag than h1
Truncated text
Sometimes you might have to truncate the text in the Heading
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 StorybookName | 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
).