A readable interface rests on a few rules: a limited type scale, lines no longer than 50–75 characters, line height around 1.5 for body text, and a typeface with well-made Cyrillic. Colour is assigned by role — neutrals, brand, accent and semantic — and checked for contrast: under WCAG, at least 4.5:1 for regular text and 3:1 for large text and interface controls. Meaning is never carried by colour alone.
After this you will be able to
- Build a type scale of 5–6 sizes and give each one a role
- Limit body text to 50–75 characters per line and set line height to about 1.5
- Assign colours to roles — neutral, brand, accent, semantic — and check contrast against WCAG: 4.5:1 for text, 3:1 for large text and UI controls
- Check a typeface for Cyrillic quality and Kazakh letter coverage
Contents
Type scale: fewer sizes, more order
Interface typography isn’t about picking a “nice font” — it’s a system: which sizes exist, what each one is for and how they relate. When sizes are chosen block by block, a site ends up with a dozen near-identical headings and the hierarchy falls apart. The fix is a scale: a small set of sizes, each with its own role.
Display heading
- Size
- 48–64 px
- Where it’s used
- Hero, main offer
Section heading (H2)
- Size
- 32–40 px
- Where it’s used
- The start of each content section
Subheading (H3)
- Size
- 20–24 px
- Where it’s used
- Cards, subsections, service names
Body text
- Size
- 16–18 px
- Where it’s used
- Descriptions, articles, forms
Small text
- Size
- 13–14 px
- Where it’s used
- Captions, footnotes, supporting info
Line length and line height
Lines that are too long are hard to read: the eye loses the start of the next line. Lines that are too short chop sentences into fragments. Based on its research, Baymard Institute recommends 50–75 characters per line for body text. WCAG success criterion 1.4.8 (level AAA) sets a maximum width of 80 characters, line spacing of at least one and a half within paragraphs, and no justified text.
50–7550–75
characters per line of body text — Baymard’s recommendation
8080
characters — the upper line-width limit in WCAG 1.4.8
1.51.5
line spacing within paragraphs under WCAG 1.4.8
- Cap the width of text blocks: in CSS, the ch unit, tied to the width of the font’s characters, is handy for this
- Give body text a line height of about 1.5 and large headings something tighter, around 1.1–1.25 — otherwise multi-line headings fall apart
- Left-align text: justified alignment creates uneven gaps between words
- Leave a clear gap between paragraphs — it works like a pause in speech
Font pairing and Cyrillic quality
Most interfaces need only one typeface in several weights, or a pair: an expressive one for headings and a calm, highly legible one for text. Nielsen Norman Group advises narrowing the choice by understanding typeface classifications, favouring families with multiple variations and distinct characters, and pairing them with consistency and readability in mind.
For websites in Kazakhstan there’s an extra check that often gets skipped: Cyrillic. Many popular typefaces were designed around Latin, with Cyrillic letters added later and noticeably weaker. Kazakh-specific letters may be missing altogether — the browser then pulls them from a fallback font, and words look stitched together from different typefaces.
- The font covers every Russian and Kazakh letter: ә, ғ, қ, ң, ө, ұ, ү, һ, і
- Cyrillic is drawn with the same care as Latin: check ж, ф, ы, д, л in running text
- The weights you need are there: regular, bold and, if you need it, a true italic rather than slanted roman
- Numerals are unambiguous: 1, 7 and l don’t get confused in prices and phone numbers
- The font has been tested on the site’s real copy, not on a catalogue specimen
Colour roles: neutrals, brand, accent, meaning
An interface palette isn’t a set of favourite shades — it’s a division of responsibilities. Every colour should answer “why is it here?”. If the brand colour is at once the header background, the button, the link and the “new” badge, it stops meaning anything.
- 01NeutralsBackgrounds, text, borders, dividers — most of the screen
- 02BrandRecognition: logo, large surfaces, illustrations
- 03AccentThe main action: book, check out, submit
- 04SemanticStates: error, success, warning, info
Contrast and accessibility: what WCAG requires
WCAG — the W3C’s Web Content Accessibility Guidelines — sets measurable contrast requirements. As web.dev explains, the 4.5:1 ratio was chosen because it compensates for the loss of contrast sensitivity typical of people with reduced vision. It’s a minimum: the pale grey text on white so popular in “airy” mockups often fails it.
Regular text
- Minimum (level AA)
- 4.5:1
- WCAG criterion
- 1.4.3 Contrast (Minimum)
Large text: 18 pt and up (about 24 px) or 14 pt bold and up (about 18.5 px)
- Minimum (level AA)
- 3:1
- WCAG criterion
- 1.4.3 Contrast (Minimum)
Controls and meaningful graphics: field borders, icons, focus indicator
- Minimum (level AA)
- 3:1 against adjacent colour
- WCAG criterion
- 1.4.11 Non-text Contrast
Information conveyed by colour
- Minimum (level AA)
- Must also be conveyed another way
- WCAG criterion
- 1.4.1 Use of Color
Colour only
- A field with an error simply turns red
- Required fields are marked in green
- Links in text differ only by colour
- Chart lines differ only by hue
Colour plus a second cue
- A red border, an icon and the text “Enter your phone number”
- An asterisk and a “required” label
- Links are underlined or set in a different weight
- Lines also differ by style and label
Dark mode
Dark mode isn’t a must-have badge of a “premium” product — it’s a setting for those who find it more comfortable. Reviewing the research, Nielsen Norman Group notes that people with normal vision generally perform better with light mode, while some people with cataracts and related conditions do better with dark mode. So it makes sense to offer a dark theme as an option rather than impose it. A site can detect the theme someone has chosen in their operating system through the prefers-color-scheme media query.
- Don’t invert the palette automatically: design the dark theme separately, on the same colour roles
- Avoid pure black backgrounds with pure white text — in our experience, a deep grey and a slightly softened white read more calmly
- Recalibrate accents: a saturated colour that worked on white can “glow” and strain the eyes on a dark background
- Show depth through surface lightness: shadows barely register on dark backgrounds, so raised cards are made slightly lighter than the background
- Check contrast in each theme separately — passing in light mode guarantees nothing for dark mode
Good typography and colour go unnoticed: people simply read and tap what they need, without wondering why it feels easy.
Sources
- W3C — Understanding SC 1.4.3: Contrast (Minimum)
- W3C — Understanding SC 1.4.11: Non-text Contrast
- W3C — Understanding SC 1.4.1: Use of Color
- W3C — Understanding SC 1.4.8: Visual Presentation
- web.dev — Color and contrast accessibility
- Baymard Institute — Readability: The Optimal Line Length
- Nielsen Norman Group — The Dos and Don’ts of Pairing Typefaces
- Nielsen Norman Group — Dark Mode vs. Light Mode: Which Is Better?
- MDN — prefers-color-scheme