Good typography maintains a clear hierarchy of information and structures the content to help users understand and navigate your service.
BC Sans is the standard font for the Government of British Columbia. The B.C. Visual Identity Program requires B.C. government digital services to use BC Sans.
BC Sans is a modified version of Noto Sans, created by Google. It includes support for special characters and syllabics found in Indigenous languages.
BC Sans is open source, and available under the Open Font License. It is free to use, change and distribute.
The easiest way to implement the B.C. Design System typescale is by using design tokens.
Style | Weight | Size (px) | Size (rem) | Line height | Letter spacing |
---|---|---|---|---|---|
Heading 1 | 700 | 36px | 2.25rem | 1.5em | normal |
Heading 2 | 700 | 32px | 2em | 1.5em | normal |
Heading 3 | 700 | 28px | 1.75rem | 1.5em | normal |
Heading 4 | 700 | 24px | 1.5rem | 1.5em | normal |
Heading 5 | 700 | 20px | 1.25rem | 1.5em | normal |
Heading 6 | 700 | 18px | 1.125rem | 1.5em | normal |
Large body | 400 | 18px | 1.125rem | 1.5em | normal |
Body | 400 | 16px | 1rem | 1.5em | normal |
Small body | 400 | 14px | 0.875rem | 1.25em | normal |
Label | 400 | 12px | 0.75rem | 1.25em | normal |
The baseline text size is 16px (1rem). This has been tested with a diverse range of users, and is large enough to be comfortably readable for most people. 16px is also the default font size for most browser user agents.
For accessibility reasons, you should generally use relative units (rem) to define text size. This helps to ensure that interfaces and text rescale smoothly when the user zooms in or out.
The type scale includes styles for Heading 1 (H1) to Heading 6 (H6).
Headings are used to break up content into sections. They are visually prominent, to help the user scan and navigate a page quickly.
Headings are semantically nested according to their level. Proper use of headings is particularly important for users who rely on assistive technologies like screen-readers.
You should only have one H1 on a page. This is normally the page title.
Headings should always be used in sequence. Do not skip heading levels (for example: an H4 following an H2, without an H3.)
The design system includes several additional utility styles:
Description | Token | Value | Preview |
---|---|---|---|
Default colour for all body text and headings | typography.color.primary | #2D2D2D | |
Alternative colour for secondary/miscellaneous text | typography.color.secondary | #474543 | |
Use only for text in inactive user interface elements | typography.color.disabled | #9F9D9C | |
Use for placeholder text in forms | typography.color.placeholder | #9F9D9C | |
Use for hyperlinks in body text and headings | typography.color.link | #255A90 | |
Use for error, failure or danger message text | typography.color.danger | #CE3E39 | |
Default colour for text on dark backgrounds | typography.color.primaryInvert | #FFFFFF | |
Secondary colour for text on dark backgrounds | typography.color.secondaryInvert | #ECEAE8 |
When setting text colours, keep in mind the minimum contrast requirements for accessibility:
Review the documentation on proper use of colour. Use the WebAIM Contrast Checker to test colour combinations.
You can find BC Sans on GitHub or install it as a dependency via npm.
You can download and install the font for local development or testing, or use it as a web font in your project.
BC Sans is pre-installed on most B.C. government workstations. If you don't have it installed, download the font.
Use design tokens to import and use the B.C. Design System typescale in your project.
If you choose not to use the design tokens package, you can use the typescale table as a reference to configure your typography.
B.C. government digital services must meet the Level AA requirements defined in the Web Content Accessibility Guidelines (WCAG).
How text renders and behaves can have a significant effect on how accessible your product is, especially for users who rely on assistive technologies.
Refer to the simplified WCAG guidance to help you ensure your product is accessible: