Typography

font size - typefaces

Font Families

The fonts mentioned in this guide are already pre-loaded on the site. Do not reload them. If you need additional font options, please contact University Marketing.

For WCAG accessibility, all fonts must have a minimum size of 16px. the base is set at 18px for readability.


Stratum

Stratum is the University’s Primary Font

Stratum is primarily used for headers (H2–H6) and can be applied in typography as a visual statement.

H1 is reserved and included as part of the page identity (Hero or Header ?) do not use H1 in the body of the page.

This font is not recommended for paragraph text.

A B C D E F G H I J K L M N O P Q R S T U V W X Y
a b c d e f g h i j k l m n o p q r s t u v w x y
1 2 3 4 5 6 7 8 9 0

Proxima Nova

Proxima Nova is the University’s Secondary Font

Proxima Nova is used for titles in the hero section or page headers (H1) maybe ; ). It can be used to make text stand out and is suitable for display or ad-style text to match Marketing materials. However, do not use it for standard body paragraphs or large amounts of text.

A B C D E F G H I J K L M N O P Q R S T U V W X Y
a b c d e f g h i j k l m n o p q r s t u v w x y
1 2 3 4 5 6 7 8 9 0

Arial

Arial the University’s Paragraph Font

Arial is used for standard body paragraphs and large amounts of text.

A B C D E F G H I J K L M N O P Q R S T U V W X Y
a b c d e f g h i j k l m n o p q r s t u v w x y
1 2 3 4 5 6 7 8 9 0

Font Margin Reset & Parent-Based Spacing

Consistent Cross Browser Behavior: Browser default styles vary significantly across Chrome, Safari, Firefox, and others especially for heading and paragraph margins. Resetting all font element margins and paddings ensures a consistent baseline across all browsers and devices. currently using modern-normalize/3.0.1

Controlled Layout Rhythm: By removing baked in spacing from typographic elements, layout and vertical rhythm are explicitly controlled through our design system’s spacing utilities (e.g., .in-*, .out-*, .in-dwn-*). This makes spacing predictable and manageable in modular or component-based design.

Separation of Concerns: Typography should define type style (size, weight, line-height), while spacing should be handled by layout rules or wrappers. This separation increases clarity, makes maintenance easier, and aligns with modern best practices in scalable UI development.

Improved Accessibility & Legibility: Uniform and intentional spacing helps users with cognitive or visual impairments scan and understand content more easily. Spacing handled at the container level also makes it easier to manage focus rings, touch targets, and screen reader boundaries without interference from unpredictable element-level margins.

Better Control in Responsive Layouts: Applying spacing via fluid clamp() based tokens and parent utilities allows dynamic adjustments across screen sizes while maintaining consistent spacing ratios. This prevents layout collapse or overflow issues caused by rigid, element-level margins.

Component Reusability & Overrides: By placing spacing on containers instead of font elements, components can be reused in different contexts (e.g., card headers, modals, forms) without needing to override unwanted margin styles. This reduces CSS bloat and improves design system scalability.

Reduced CSS Conflicts: Removing default element margins prevents spacing collisions when combining multiple typography elements in a container. Utility classes provide a declarative and conflict-free method to manage layout spacing.

Summary: All typography elements (headings, paragraphs, lists) are reset to remove browser default spacing. Padding and margin are instead applied using semantic utility classes at the container level. This improves layout consistency, cross-browser reliability, accessibility, and maintainability while supporting scalable, fluid spacing patterns throughout the design system.

Typography & Fonts Overview


Font Pairing & Usage:

  • Headings (h1 - h6) use Stratum as the default typeface.
  • Proxima Nova can be used on titles by applying the .fs-* (h1 -h6) classes which changes the fonts size and color, you can use the class .font-secondary to change the font family only, use these options to create a visual hierarchy while maintaining semantic structure.
  • Arial is used for body text to ensure legibility across all devices.
  • Use the Stratum and Proxima Nova combinations (link later)** listed in the guide for headings and titles to reinforce the structured, modern aesthetic of the brand.

Font Scaling:

  • All fonts use css rems to allow for user overides, the (px) refrence is for design purposes where most design sofware will use a pixel base system.
  • Font sizes are designed with fluid resizing for optimal readability on both mobile and desktop devices.
  • Always ensure your text adheres to the recommended size guidelines for consistency.
  • The listed font size guidelines use CSS clamp() functions, allowing text to scale automatically between a minimum, ideal, and maximum value. This ensures consistent readability across all screen sizes, from small mobile devices to large desktop displays.
  • These values are defined in the global CSS stylesheet and should not be overridden.

WCAG Accessiblity Note:


There is no specific letter-spacing rule in WCAG (Web Content Accessibility Guidelines) related directly to accessibility. However, WCAG does recommend certain text and spacing guidelines in Success Criterion 1.4.12: Text Spacing, which focuses on ensuring text is readable and adaptable for different users. While it doesn’t mandate a specific letter spacing (tracking), it does recommend that content can be adjusted without loss of information or functionality when the following minimum spacing adjustments are applied:

  • Letter Spacing (Tracking): At least 0.12 times the font size.
  • Line Height (Line Spacing): At least 1.5 times the font size.
  • Paragraph Spacing: At least 2 times the font size.
  • Word Spacing: At least 0.16 times the font size.
  • These adjustments support users with disabilities such as dyslexia or low vision by allowing them to modify text presentation to better suit their needs.

A “large font” is text that is 18 points (24 pixels) or larger, or 14 points (18.66 pixels) and bold.

For AA level accessibility: For large text, the minimum contrast ratio is 3:1, while for normal text, a contrast ratio of 4.5:1 is required.

For AAA level accessibility: For large text, the minimum contrast ratio is 4.5:1, while for normal text, a contrast ratio of 7:1 is required.

Ensure all fonts meet a minimum contrast ratio of 4.5:1 against their backgrounds to comply with WCAG 2.1 guidelines. For large text (18pt or 14pt bold and larger), a minimum contrast ratio of 3:1 is required. Use the UVU brand colors in accordance with this guideline to maintain accessibility and readability for text.

Font notes:


Following the built-in styles and semantic structure helps reduce unnecessary or inconsistent font sizes. Using too many font sizes on a page can be visually confusing. Aim to minimize font variation by using the provided built-in options. and content templalates with minimal adjustments.

Transformations

To maintain brand consistency and a cohesive visual identity across all UVU platforms, buttons can be customized with a limited set of CSS style options. These customizations should enhance usability and aesthetics without deviating from UVU’s core branding principles.

The Web Content Accessibility Guidelines (WCAG) do not directly restrict or prohibit text transformations on buttons, such as changing text to uppercase, lowercase, or other styles. However, certain considerations related to readability, usability, and accessibility should be kept in mind when using text transforms:

WCAG & Usability Notes

WCAG doesn't enforce casing, but prioritizes readability, understandability, and text distinguishability (Success Criterion 3.1.5).

Button text should be short, clear, and action-oriented regardless of case.

Avoid ambiguous or clever phrases—opt for clarity (Download Shedule (PDF), not Get it now!).

Links should clearly indicate their purpose. When a link is used to download a file, include an appropriate icon representing the file type. If icons are not available, display the file extension in parentheses.

Recommended Case for Buttons

When styling text for buttons, headings, or labels, case formatting affects readability and accessibility. CSS provides basic case transforms, while JavaScript can extend support to more natural **Title Case** and **Sentence case** styles.

CSS Case Options (fallbacks)
  • .uppercaseSUBMIT FORM
  • .lowercasesubmit form
  • .capitalizeSubmit Form (first letter of every word)
  • .title-caseSubmit Form (CSS fallback = capitalize)
  • .sentence-casesubmit form (CSS fallback = lowercase)

Recommended Case for Paragraphs

These same case rules apply to headings, labels, and body text. For example:

CSS-only (fallbacks)

this text will appear as uppercase

THIS TEXT WILL APPEAR AS LOWERCASE

this text will appear with every word capitalized

JavaScript-enhanced

this is an example of a title that should be properly formatted

THIS IS ALL UPPERCASE TEXT TO SENTENCE CASE. THIS SHOULD LOOK MORE NATURAL.

These are examaples only - do not use css to change all caps (UPPERCASE) to other cases. All caps text in never recommend in plain text.

JavaScript Enhanced Cases

Because CSS doesn’t provide Title Case or Sentence case, JavaScript utilities are added and can convert text more accurately:

  • Title Case ScriptSave Changes, Submit Form
    Respects rules for short/common words like and, of, the.
  • Sentence Case ScriptSave changes, Submit form
    Capitalizes only the first word of each sentence for natural readability.

Examples in Buttons

Recommended (best readability + accessibility):

Why These Matter

  • Improve readability across all age groups.
  • Ensure natural screen reader pronunciation.
  • Provide clarity for users with cognitive disabilities.
  • Offer consistent fallback styles when JavaScript is not available.

Key Considerations


Readable Text

WCAG 2.4.4 (Link Purpose) and 3.1.5 (Reading Level) emphasize that text should be easily readable and understandable. Transforming text to all uppercase may make it harder to read, especially for users with dyslexia or other reading difficulties. Uppercase text is often perceived as more difficult to read because it lacks the word shape cues provided by mixed-case text.

Use all-uppercase sparingly and ensure that the text remains understandable. For example, avoid lengthy sentences in all caps.

Screen Reader Interpretation

Screen readers typically read the underlying text, not the visual transformation. For example, if the text of a button is coded as “Submit” and transformed to uppercase using CSS (text-transform: uppercase;), the screen reader will read it as “Submit” rather than spelling out the letters. This behavior is generally acceptable, but it’s crucial that the meaning of the button is clear in its original form, regardless of visual transformation.

Contrast Ratio

Using uppercase text can sometimes decrease readability if the font size is small or if there is low contrast between text and background. WCAG 1.4.3 (Contrast) requires a contrast ratio of at least 4.5:1 for normal text and 3:1 for large text. For uppercase text, make sure the font size and contrast ratio meet these criteria to ensure readability.

Custom Styling and Consistency

If text transformations are used to ensure consistency in branding or design, ensure that these choices are consistent across the entire site. A mix of uppercase and mixed-case buttons may create confusion for users, especially those with cognitive disabilities.


Best Practice Recommendation


Use CSS for Text Transformation:

It is better to use CSS for text transformations like text-transform: uppercase; rather than directly typing text in uppercase in HTML. This ensures that the underlying text remains accessible and allows users to adjust styles if needed for their readability preferences.

Font Size and Spacing:

When using uppercase text, ensure the font size is large enough and the letter spacing (letter-spacing) is adjusted to enhance readability.

Line Height px Reference

This is a reference only chart - we use default paragraph settings - refer to W3.org for information on meeting AA standards - W3.org - Text spacing


Line Height Multiplier16px18px20px22px27px32px39px48px58px71px86px105px127px
HEADINGS: 1.2x19.221.624.026.432.438.446.857.669.685.2103.2126.0152.4
LARGE TXT 20+: 1.4x22.425.228.030.837.844.854.667.281.299.4120.4147.0177.8
STANDARD LINE HEIGHT 20+: 1.5x24.027.030.033.040.548.058.572.087.0106.5129.0157.5190.5
BODY TEXT: 1.6x25.628.832.035.243.251.262.476.892.8113.6137.6168.0203.2
1.75x28.031.535.038.547.2556.068.2584.0101.5124.25150.5183.75222.25

Semantics


All web pages should be semantically structured, meaning that even with all styles removed, the content should remain logically organized, readable, and accessible to all users - including those using assistive technologies.

A semantically structured web page uses proper HTML elements that convey the meaning and role of the content. This ensures:

  • Logical hierarchy: Headings (< h1 > - < h6 >), sections (< section >, < article >, < nav >, etc.) and landmarks help organize content clearly.
  • Readability without styles: If CSS is disabled or fails to load, the document should still make sense visually and structurally.
  • Accessibility: Screen readers and other assistive technologies rely on semantic tags to convey structure, navigation, and context to users with disabilities.
  • SEO benefits: Search engines use semantic markup to understand page content and improve search visibility.

The .fs-* styles are intended solely for visual or typographic enhancements. Classes like .fs-1 through .fs-6 replicate the font sizes of heading levels (h1–h6) using a secondary font family, and should be used for design purposes only—not as replacements for semantic heading tags.

Do not use .fs-* styles to define page structure.

Heading 1 - h1

Heading 2 - h2

Heading 3 - h3

Heading 4 - h4

Heading 5 - h5
Heading 6 - h6

Font 1 - .fs-h1

Font 2 - .fs-h2

Font 3 - .fs-h3

Font 4 - .fs-h4

Font 5 - .fs-h5

Font 6 - .fs-h6

List's


  • ul List item (Li)
  • ul List item (Li)
  • ul List item (Li)
  1. ol List item (Li)
  2. ol List item (Li)
  3. ol List item (Li)
dl Description List term (dt)
dl Defines Description (dd)
dl Description List term (dt)
dl Defines Description (dd)

Paragraph / buttons & links


Paragraph class (min 20px) - .fs-p

Button text (min 20px) class - .fs-b

Small text (min 16px) class - .fs-sm


Paragraph text with responsive scaling demonstrates how content adapts across devices. At Utah Valley University, our design system ensures clarity and accessibility for all users. In-line button example: font size is automatically increased on links and still maintains scalability, supporting consistent readability throughout the site.


Button Text - .fs-b

Display Font Sizes

Massive Display - .fs-xxxl
Huge Display - .fs-xxl
Extra Large Display - .fs-xl
Large Display - .fs-lg

Font Weight

Font Weight Name CSS Weight Class
ArialRegular400.fw-400
ArialBold700.fw-700
ArialItalic400 (italic).fw-400
ArialBold Italic700 (italic).fw-700
StratumLight300.fw-300
StratumRegular400.fw-400
StratumMedium500.fw-500
StratumSemibold600.fw-600
StratumBold700.fw-700
StratumBlack900.fw-900
Proxima NovaThin100.fw-100
Proxima NovaExtra Light200.fw-200
Proxima NovaLight300.fw-300
Proxima NovaRegular400.fw-400
Proxima NovaMedium500.fw-500
Proxima NovaSemibold600.fw-600
Proxima NovaBold700.fw-700
Proxima NovaExtra Bold800.fw-800
Proxima NovaBlack900.fw-900

Font Family + Weight Rules

Selector(s) Font Family Variable Font Weight Color Variable Note
h1, h2, h3, h4, h5, h6, .fs-b, a --font-primary 500 --color-dark-grey base rules
h1, h2, h3, .fs-b, a --font-primary 700 --color-uvu-green override color to green, weight to (strong / bold)
.fs-xxxl, .fs-xxl, .fs-xl, .fs-lg, .fs-h1, .fs-h2, .fs-h3, .fs-h4, .fs-h5, .fs-h6 --font-secondary 700 secondary headings
p, li, .fs-sm, .fs-b --font-body body text rules

Font Reference

Note Type Class Static Variable Clamp Variable REM (Min) PX (Min) REM (Max) PX (Max)
StratumFont Family.font-primary--font-primary
Proxima NovaFont Family.font-secondary--font-secondary
ArialFont Family.font-body--font-body
Small TextFont Size.fs-sm--fs-sm--fs-sm-fluid0.8889rem16px1.1111rem20.0
ParagraphFont Size.fs-p--fs-p--fs-p-fluid1.0rem18px1.0rem18.0
ButtonFont Size.fs-b--fs-b--fs-b-fluid1.0rem18px1.2222rem22.0
List ItemFont Size.fs-li--fs-li--fs-li-fluid1.0rem18px1.2222rem22.0
H6Font Size.fs-h6--fs-h6--fs-h6-fluid1.1111rem20px1.3333rem24.0
H5Font Size.fs-h5--fs-h5--fs-h5-fluid1.3333rem24px1.6667rem30.0
H4Font Size.fs-h4--fs-h4--fs-h4-fluid1.6667rem30px1.8889rem34.0
H3Font Size.fs-h3--fs-h3--fs-h3-fluid2.0rem36px2.3333rem42.0
H2Font Size.fs-h2--fs-h2--fs-h2-fluid2.5rem45px2.8333rem51.0
H1Font Size.fs-h1--fs-h1--fs-h1-fluid3.0rem54px3.4444rem62.0
LargeFont Size.fs-lg--fs-lg--fs-lg-fluid3.6667rem66px4.2222rem76.0
X-LargeFont Size.fs-xl--fs-xl--fs-xl-fluid4.5rem81px5.0556rem91.0
XX-LargeFont Size.fs-xxl--fs-xxl--fs-xxl-fluid5.5rem99px6.1667rem111.0
XXX-LargeFont Size.fs-xxxl--fs-xxxl--fs-xxxl-fluid6.5rem117px7.5rem135.0
ParagraphLine Height.lh-p--lh-p1.5rem27px
HeadingsLine Height.lh-h--lh-h1.25rem22px
CompactLine Height.lh-tight--lh-tight1.15rem20px

Fluid Font Size + Line Height Mapping

Selector(s) Font Variable Line Height Variable
.fs-sm--fs-sm-fluid--lh-sm
.fs-b, a, b, i--fs-b-fluid--lh-p
.fs-li, li--fs-li-fluid--lh-p
.fs-p, p--fs-p-fluid--lh-p
h6, .fs-h6--fs-h6-fluid--lh-h6
h5, .fs-h5--fs-h5-fluid--lh-h5
h4, .fs-h4--fs-h4-fluid--lh-h4
h3, .fs-h3--fs-h3-fluid--lh-h3
h2, .fs-h2--fs-h2-fluid--lh-h2
h1, .fs-h1--fs-h1-fluid--lh-h1
.fs-lg--fs-lg-fluid--lh-lg
.fs-xl--fs-xl-fluid--lh-xl
.fs-xxl--fs-xxl-fluid--lh-xxl
.fs-xxxl--fs-xxxl-fluid--lh-xxxl

Line Height & Letter Spacing Utility Classes

Class Variable Type REM PX
.lh-sm--lh-smLine Height1.3rem20.8px
.lh-p--lh-pLine Height1.5rem24px
.lh-6--lh-6Line Height1.1rem17.6px
.lh-5--lh-5Line Height1.2rem19.2px
.lh-4--lh-4Line Height1.3rem20.8px
.lh-3--lh-3Line Height1.4rem22.4px
.lh-2--lh-2Line Height1.5rem24px
.lh-1--lh-1Line Height1.6rem25.6px
.lh-lg--lh-lgLine Height1.7rem27.2px
.lh-xl--lh-xlLine Height1.8rem28.8px
.lh-xxl--lh-xxlLine Height2rem32px
.ls-sm--ls-smLetter Spacing0.005rem0.08px
.ls-md--ls-mdLetter Spacing0.01rem0.16px
.ls-lg--ls-lgLetter Spacing0.015rem0.24px
.ls-xl--ls-xlLetter Spacing0.02rem0.32px
.ls-xxl--ls-xxlLetter Spacing0.03rem0.48px
.ls-xxxl--ls-xxxlLetter Spacing0.04rem0.64px