Skip to main content

Typography

The typography system provides consistent text styling across your application.

Text Categories

CategoryUsageDefault Size
displayBrand name, logo text, decorative headers24px
headingPage titles, section headers20px
subheadingCard headers, secondary titles18px
titleList items, button labels, navigation16px
bodyContent text, paragraphs, descriptions14px
captionHelper text, timestamps, footnotes12px

Font Weights

Each category has three weight variants:

WeightUsage
regularBody text, descriptions, general content
mediumEmphasized text, labels, navigation items
boldHeadings, buttons, important labels

Available Fonts

  • DancingScript: Decorative script font, ideal for branding
  • OpenSans: Clean sans-serif, ideal for UI text

Usage

With MultinaireText

import { MultinaireText } from '@multinaire/multinaire-design';

// Using type and weight props
<MultinaireText type="heading" weight="bold">
Page Title
</MultinaireText>

<MultinaireText type="body">
Regular body text
</MultinaireText>

<MultinaireText type="caption" color="neutralVariant">
Helper text
</MultinaireText>

Direct Access

const { fonts } = useMultinaireTheme();

<Text style={fonts.heading.bold}>
Page Title
</Text>

<Text style={[fonts.body.regular, { color: colors.onBackground }]}>
Body text
</Text>

Configuration

Define typography in your theme.json:

{
"texts": {
"display": {
"regular": { "fontFamily": "DancingScript", "fontSize": 24 },
"medium": { "fontFamily": "DancingScript", "fontSize": 24 },
"bold": { "fontFamily": "DancingScript", "fontSize": 24 }
},
"heading": {
"regular": { "fontFamily": "OpenSans", "fontSize": 20 },
"medium": { "fontFamily": "OpenSans", "fontSize": 20 },
"bold": { "fontFamily": "OpenSans", "fontSize": 20 }
},
"body": {
"regular": { "fontFamily": "OpenSans", "fontSize": 14 },
"medium": { "fontFamily": "OpenSans", "fontSize": 14 },
"bold": { "fontFamily": "OpenSans", "fontSize": 14 }
}
}
}

Typography Scale Recommendations

CategoryMinDefaultMax
caption10px12px13px
body13px14px16px
title14px16px18px
subheading16px18px20px
heading18px20px24px
display20px24px32px

Responsive Typography

The typography values are fixed, but you can adjust which type to use based on screen size:

const { isMobile } = useMultinaireResponsiveDesign();

<MultinaireText type={isMobile ? 'title' : 'heading'} weight="bold">
{title}
</MultinaireText>