Feature comparison table

Use the feature comparison table to compare features across pricing plans.

Ready to use
import {FeatureComparisonTable} from '@primer/react-brand'

Examples

Default

Loading

Row descriptions

Use FeatureComparisonTable.RowDescription to add context beneath a feature name. Descriptions can include links and emphasis.

Loading

Component props

FeatureComparisonTable Required

NameTypeDefaultrequiredDescription
childrenFeatureComparisonTable.Heading, FeatureComparisonTable.Item, FeatureComparisonTable.GrouptrueTable title, plans, and feature groups

FeatureComparisonTable.Item Required

One item per pricing plan to be displayed. Supports two to four plans.

NameTypeDefaultrequiredDescription
childrenFeatureComparisonTable.Label, FeatureComparisonTable.ItemHeading, FeatureComparisonTable.Description, FeatureComparisonTable.Price, FeatureComparisonTable.PrimaryAction, FeatureComparisonTable.SecondaryActiontruePlan content

FeatureComparisonTable.Label

NameTypeDefaultrequiredDescription
childrenReactNodetrueLabel text, such as “Recommended”. Adding a label highlights the plan column

FeatureComparisonTable.Heading Required

NameTypeDefaultrequiredDescription
as'h1'
'h2'
'h3'
'h4'
'h5'
'h6'
h2falseHeading level for the table title
idstringfalseAnchor target and accessible label reference
childrenReactNodetrueTable title

FeatureComparisonTable.ItemHeading Required

Plan name, shown alongside feature values on smaller screens.

NameTypeDefaultrequiredDescription
as'h1'
'h2'
'h3'
'h4'
'h5'
'h6'
h3falseHeading level for the plan summary
childrenReactNodetruePlan name

FeatureComparisonTable.Description

NameTypeDefaultrequiredDescription
childrenReactNodetruePlan description

FeatureComparisonTable.Price

NameTypeDefaultrequiredDescription
childrenReactNodetruePrice text, such as “$4 per month”

FeatureComparisonTable.PrimaryAction and FeatureComparisonTable.SecondaryAction

NameTypeDefaultrequiredDescription
as'a'
'button'
trueLink or button element
childrenReactNodetrueAction label
hrefstringfalseLink destination. Required when as="a"

FeatureComparisonTable.Group Required

NameTypeDefaultrequiredDescription
childrenFeatureComparisonTable.GroupHeading, FeatureComparisonTable.RowtrueGroup title and feature rows
expanded'boolean'
'{narrow: boolean, regular: boolean, wide: boolean}'
{narrow: false, regular: true, wide: true}falseInitial expanded state, optionally set per viewport size

FeatureComparisonTable.GroupHeading Required

NameTypeDefaultrequiredDescription
as'h1'
'h2'
'h3'
'h4'
'h5'
'h6'
h3falseHeading level
idstringfalseAnchor target for the group heading
childrenReactNodetrueGroup title

FeatureComparisonTable.Row Required

NameTypeDefaultrequiredDescription
childrenFeatureComparisonTable.RowHeading, FeatureComparisonTable.RowDescription, FeatureComparisonTable.CelltrueFeature name, optional description, and plan values

FeatureComparisonTable.RowHeading Required

NameTypeDefaultrequiredDescription
childrenReactNodetrueFeature name

FeatureComparisonTable.RowDescription

NameTypeDefaultrequiredDescription
childrenReactNodetrueFeature description

FeatureComparisonTable.Cell Required

Add one cell per plan, in the same order as the items.

NameTypeDefaultrequiredDescription
childrenReactNodefalseFeature value
variant'included'
'unavailable'
'unlimited'
'refresh'
falseIncluded, unavailable, unlimited, or periodically renewed
variantAriaLabelstringfalseAccessible icon label. Use to translate “Included”, “Unavailable”, “Unlimited”, or “Refresh”