Saudi-built solutions

Your website from SAR 39 a month · cancel anytime · upgrade anytimePrice calculatorCurrency

Web design colors and typography: a practical guide for Saudi brands

Visitors judge a website by its colors and type before they read a single sentence. Get them right and the site feels trustworthy, easy to read and unmistakably yours; get them wrong and people squint, scroll past the button or leave. This guide covers web design colors and typography for Saudi brands in practical terms: building a palette from your logo, the WCAG contrast numbers, color meaning without clichés, dark mode, type scales, pairing Arabic with Latin fonts and loading web fonts fast.

Web Design18 min readUpdated October 2026

A fan deck of printed color swatches spread out in rainbow order
A website palette starts with a few brand colors and grows into a system of roles. Photo: Mika Baumeister on Unsplash

In short:

  • Give every color a job (text, action, background, status) instead of picking a list of nice colors. Most business sites need one brand color, one action color and a set of neutrals.
  • Body text needs a contrast ratio of at least 4.5:1 with its background; large text, icons, borders and focus outlines need at least 3:1 (WCAG 2.2, level AA). Many brand teals, golds and light greys fail on white.
  • Arabic text usually needs a slightly larger size and more line height than Latin text, never letter-spacing, and a Latin partner font with a similar weight and feel.
  • Fonts are a performance cost: use WOFF2, two families at most, few weights, subsetting and a sensible font-display value.
In this guide
  1. Color for screens
  2. Building a palette from your brand
  3. Contrast ratios and WCAG 2.2
  4. Dark mode
  5. Type scale, line length and line height
  6. Pairing Arabic and Latin typefaces
  7. Web font performance
  8. Mistakes and a pre-launch checklist
  9. How Webnaa handles color and type
  10. FAQ
  11. Summary

Color for screens: the theory that actually matters

Color and typography are the two decisions in web design that touch every pixel. Layout changes from page to page, photos come and go, but the same text color, the same heading font and the same button color appear on every screen a customer sees. That is why small choices here have a large effect on how readable, credible and recognizable a site feels.

Most color theory was written for paint and print. A few ideas carry over to screens; others need adjusting.

Screens mix light, not ink

A screen builds every color from red, green and blue light, which is why web colors are written as hex codes such as #0b1f3a. The CMYK and Pantone values on your business cards do not translate one to one, so expect to fine-tune a converted logo color by eye. Screens also vary: a phone held outside on a bright Riyadh afternoon washes out pale colors first, so a light grey that looks elegant on the designer's monitor can disappear in the sun. Design for the worst screen your customers use, not the best one in the studio.

Think in hue, saturation and lightness

The HSL model is easier to reason about than hex: hue is the color family, saturation its intensity, lightness how close it is to black or white. Most palette work is lightness work: you keep your brand hue and create lighter and darker versions for backgrounds, borders, hover states and text. One trap: yellow and light green look far brighter than blue at the same HSL lightness, so contrast must be measured with a tool, not judged from a color picker.

Harmony rules are a starting point, not a recipe

Complementary and analogous schemes help you find colors that sit well together, and the 60-30-10 idea (mostly neutral, some secondary color, a little accent) is a useful check on proportion. But a website is not a poster. What matters more is that each color has a predictable job: if teal means "you can click this" on the home page, it means the same on the contact page.

Color meaning in Saudi Arabia, without the clichés

Color carries meaning, but the meaning comes from context more than from a chart of "green means growth". A few points are worth thinking through for a Saudi audience:

  • Green is tied to national identity and appears everywhere around National Day on 23 September. On a website it also means "success". If your brand is green, give success messages an icon and clear text so they do not blend into the decoration.
  • Gold and sand are the default "premium" signal in many local brands, which makes them hard to stand out with. Gold also has weak contrast on white, so use it for lines, icons and backgrounds, rarely for text.
  • Navy reads as calm and dependable, which is why finance, logistics and medical sites use it so often. Add a distinctive accent so you do not look like every competitor.
  • Red means errors on almost every interface, and discounts in retail. A red brand can work, but give real error states a different shade and an icon.
  • Seasonal palettes for Ramadan, Eid or National Day belong in banners and campaign sections you can swap out, not in the core palette of the site.

The honest test is your own customers: show two or three palettes on real pages and ask which business looks right for the job, not which colors they like.

Building a website palette from your brand

Most businesses arrive with a logo in two or three colors. A logo palette is not yet a website palette: a site needs text colors, background tints, borders, link and button states, and colors for success, warning and error. These steps turn one into the other.

Collect the true brand values

Take the hex values from the original logo file or brand guide, not from a screenshot.

Assign roles

Decide which color is the brand color, which is the action color for buttons and links, and which neutrals carry text and backgrounds.

Build tints and shades

Create a scale from very light to very dark for each main color. Light steps become backgrounds; dark steps become text-safe versions of the brand color.

Pick neutrals with a hint of the brand

A grey with a touch of the brand's hue, such as a slightly blue grey next to navy, makes the page feel related.

Add status colors

Choose a green, an amber and a red for success, warning and error, always paired with words.

Test, then write it down

Check every text and background pair for contrast, then record the values as named tokens (such as --color-action) so everyone uses the same colors.

A worked example: a logistics company in Riyadh

Imagine a transport company whose logo uses deep navy (#0b1f3a) and a bright teal (#0f9d8a). The owner wants teal buttons and teal links because teal is the "fresh" part of the identity. Measured on a white background, navy reaches about 16.5:1, far above any requirement, while the teal reaches only about 3.4:1. That is enough for large headings, icons and button outlines, but not for body text or small link text. The solution is not to abandon teal. It is to give it the right jobs:

RoleColorUsed forWhy
TextNavy #0b1f3aBody text, headingsAbout 16.5:1 on white, comfortable for long reading
Brand accentTeal #0f9d8aIcons, large numbers, dividers, section highlightsAbout 3.4:1 on white, fine for large and non-text elements
ActionDarker teal #0b7d6eButtons with white text, inline linksAbout 5.0:1 against white, passes for normal text
SurfaceLight grey #f3f5f8Alternate section backgrounds, cardsNavy text still reaches about 15:1 on it
StatusSeparate green, amber, redForm messages, alertsKept apart from the brand teal so success and branding are not confused

The visitor still sees a navy and teal brand. The difference is that every piece of text can be read, and the action color is consistent across the site.

Contrast ratios: the WCAG 2.2 numbers to design around

The Web Content Accessibility Guidelines (WCAG) define contrast as a ratio between the lighter and darker color, from 1:1 (no difference) to 21:1 (black on white). Level AA, the level most organizations aim for, sets three numbers worth memorizing.

WhatMinimum ratioNotes
Normal text and images of text4.5:1Body copy, menu items, form labels, small links, button labels
Large text3:1At least 18 point (about 24 CSS px) regular, or 14 point (about 18.5 px) bold
Interface parts and meaningful graphics3:1Input borders when the border is the only cue, icons that carry meaning, chart lines, focus outlines, selected states

The first two rules come from WCAG 2.2 success criterion 1.4.3, the third from success criterion 1.4.11 on non-text contrast. A few details that trip people up:

  • No rounding. The thresholds are strict. Grey #777777 on white measures about 4.48:1 and fails; #767676 measures about 4.54:1 and passes. Two shades that look identical can land on different sides of the line.
  • Logos and decoration are exempt. A pale slogan in the hero is not exempt just because it is a style choice.
  • Text on photos needs help. White text over a bright photo passes in one spot and fails in another. Use a dark overlay or a solid panel behind the text.
  • Color must never be the only signal. Underline links in paragraphs, mark required fields with text, and explain errors in words, not just a red border. Some visitors cannot tell red from green.
Diagram comparing four color pairs on white with their contrast ratios and whether each passes WCAG 2.2 AA for body text, large text and interface parts
Teal #0f9d8a on white reaches 3.4:1, enough for large text and interface parts but not for body text. Darkening it to #0b7d6e gives 5.0:1 and passes everywhere.

Testing is quick: browser developer tools show the ratio when you inspect text, and free online checkers accept two hex codes. Keep a table of the pairs that pass and use only those. Our website accessibility checklist covers the other WCAG 2.2 essentials, from keyboard access to form labels.

A brand color does not have to pass for body text. It has to be used only where it does pass.

Dark mode: when to offer it and how to do it properly

Phones and computers let people choose a light or dark appearance, and websites can read that choice through the CSS media feature prefers-color-scheme, which reports light or dark. A site can then switch to a dark palette automatically, with or without a manual toggle.

Does a business website need it?

For most company and service sites, dark mode is optional: visitors stay minutes, not hours. It matters more for portals, dashboards, booking systems and content sites people read for long periods. On a limited budget, a polished light theme beats a rushed dark one.

Dark mode is a second palette, not an inverted one

  • Use very dark grey, not pure black. Many designers find off-white text on a grey such as #202020 easier on the eyes than pure white on black.
  • Re-measure brand colors. The dark teal #0b7d6e that passes on white drops to about 3.2:1 on #202020, while the original teal #0f9d8a reaches about 4.8:1 there. The roles flip.
  • Prepare a light logo. A navy logo on a transparent background disappears on a dark page.
  • Let the browser know. The color-scheme property makes form controls and scrollbars match the dark theme.

The cost of dark mode is mostly testing: every page and form state is checked twice. Build both themes from the same named tokens so they never drift apart.

Typography basics: type scale, line length and line height

Typography in web design is mostly about reading comfort and hierarchy. Visitors scan first and read second, so the size, weight and spacing of text should tell them what matters before they read it.

A typesetter's drawer of wooden letterpress type blocks in several sizes
Letterpress type, in wood and metal, gave the web its vocabulary: point sizes, and leading, named after the strips of lead set between lines, which CSS now calls line-height. Photo: Virginia Marcuzzo on Unsplash

Pick a base size, then a scale

Start with body text: 16 px is the practical minimum for Latin body text, and 17 to 18 px often reads better on phones. Then multiply by a fixed ratio for each heading level; 1.2 gives a gentle hierarchy, 1.25 or 1.333 clearer steps. Here is a 1.25 scale from 16 px, rounded:

LevelDesktop sizePhone sizeTypical use
Small13 px13 pxCaptions, legal notes (never body text)
Body16 px16 pxParagraphs, lists, form fields
H420 px18 pxCard titles, labels above groups
H325 px21 pxSubsections
H231 px25 pxSection titles
H139 to 49 px30 pxPage title, hero headline

Headings shrink on phones because a 49 px headline would wrap into five lines; body text should not shrink at all. The CSS clamp() function scales headings smoothly between the two sizes. If you design for phones first, as we recommend in design for mobile first, set the phone sizes before the desktop ones.

Line length: keep paragraphs narrow

A common typographic guideline is 45 to 75 characters per line for Latin text. Full-width lines on a wide monitor make the eye lose its place on the way back; a maximum width of around 65ch on text containers fixes it. Judge Arabic line length by eye: roughly 10 to 15 words per line is reasonable.

Line height and spacing

  • Body text: a line height of about 1.5 to 1.6 for Latin, 1.7 to 1.9 for Arabic.
  • Headings: tighter, about 1.1 to 1.3, so a two-line title reads as one.
  • Alignment: left for English, right for Arabic. Justified text leaves uneven gaps on phones.

Hierarchy is more than size

Weight, color and space carry hierarchy too. Limit yourself to two or three weights per family, since each weight is another file to download. And Arabic has no capitals, so English designs that rely on uppercase labels need another way to stand out in Arabic.

Pairing Arabic and Latin typefaces

Most Saudi business sites are bilingual, and many pages mix the two scripts in one line: a brand name, an email address, a product code. A pairing that ignores how differently they work looks unbalanced everywhere.

How Arabic type differs

The W3C's Arabic and Persian layout requirements explain the basics. Arabic letters join, and each letter can take up to four shapes depending on its position in a word, so an Arabic font contains many more glyphs than a basic Latin one. Arabic ascenders and descenders reach much further above and below the line than Latin ones. And stretching Arabic for emphasis or justification is done along the joining baseline, not by adding equal gaps between letters; pulling joined letters apart gives poor results.

In practice that means three rules for your CSS:

  1. Never apply letter-spacing to Arabic. A tracking value copied from the English stylesheet breaks the joins. Reset it to normal for Arabic text.
  2. Give Arabic more room. At the same font size, many Arabic fonts look smaller than Latin ones. A body size one or two pixels larger and a more generous line height usually balance the two.
  3. Do not fake italics or bold. Arabic has no italic tradition, and a browser-slanted Arabic word looks broken. Use weight or color for emphasis, and load real bold weights rather than letting the browser thicken the regular one.

Choosing the Arabic style

Naskh-style fonts follow the flowing forms people learn at school and read comfortably in long paragraphs. Kufi-style and geometric sans fonts are more angular and modern, strong in headings and interface text. A clean sans Arabic font for everything is a safe default for business sites; a Naskh body font suits content-heavy sites.

Matching the Latin partner

The easiest route is a family designed for both scripts. Several open-licensed families on Google Fonts work this way: IBM Plex Sans Arabic with IBM Plex Sans, Noto Sans Arabic or Noto Naskh Arabic with Noto Sans, and families such as Tajawal, Cairo, Almarai and Readex Pro that include Latin letters. If you pair two separate families, compare them side by side:

CheckWhat to look forWarning sign
Visual sizeArabic letter bodies and Latin lowercase letters look about the same height at the sizes you setEnglish words look shouted inside Arabic sentences
WeightRegular and bold match in darkness on the pageOne script looks bold next to the other at "regular"
CharacterBoth are geometric, or both are humanist and calligraphicA rounded playful Arabic font next to a sharp corporate Latin one
NumeralsDigits look consistent in prices and phone numbersDigits change style between Arabic and English pages

Decide early which digits you use in Arabic text. Western digits (0 to 9) and Arabic-Indic digits are both read in Saudi Arabia; whatever you choose, use it consistently across prices, phone numbers and dates. For the layout side of a bilingual site, from mirroring to language switchers, see our guide to bilingual website design.

Mixed lines

Set the font stack so the browser uses your Arabic font for Arabic characters and your Latin font for Latin ones, not whatever system font it finds first. Then test real sentences: an Arabic paragraph with a brand name, an email address and a price reveals size and baseline problems in seconds.

Web font performance: fast text without layout shift

Every font weight is a file the browser must download before it can show text in that font, and Arabic fonts carry many joining forms. Load four weights of each script and the page waits on text, or jumps as fonts arrive. Google's web.dev team summarizes the techniques in its font best practices; here they are applied to a typical bilingual site.

Use WOFF2 only

WOFF2 compresses better than older formats and every current browser supports it. There is no need to ship TTF, EOT or SVG font files to visitors.

Choose font-display deliberately

swap shows fallback text at once; optional uses the web font only if it arrives almost immediately. A sensible split: swap for headings, optional for body text.

Subset by script

Remove the glyphs you never use and split files with unicode-range, so English pages do not download Arabic glyphs and the reverse. Check the font license before you subset.

Preload only what is above the fold

Preloading fetches a font early but competes with images and scripts. Preload one or two files at most.

Match the fallback font

The CSS size-adjust descriptor can scale a system fallback font to take the same space as your web font, so the text does not jump when the swap happens.

Cut weights, consider variable fonts

Regular and bold cover most business sites. If you need many weights, a single variable font file can replace several static ones.

If you use a hosted font service, add a preconnect hint for its domain. And replace icon fonts with SVG icons: an icon font is a whole file for a handful of symbols, and it shifts the layout when it loads late. Text that appears late or jumps affects how fast a site feels. We look at the business side in why website speed drives sales.

Web design colors and typography: mistakes and a pre-launch checklist

Common mistakes

Pale grey body text

Light grey looks refined in a mock-up and fails in sunlight. If body text is lighter than about #767676 on white, it is below 4.5:1.

White text on a bright brand color

White on mid teal, orange, light green or gold usually fails for button labels. Darken the button or use dark text on it.

Too many colors and fonts

Blue buttons on one page and green on another leave visitors unsure what is clickable. Four font families look unplanned and slow the page.

English settings copied to Arabic

Letter-spacing, uppercase transforms, italic emphasis and tight line height all damage Arabic text.

Designing only on a large monitor

Many visitors will see your colors and type on a phone. Approve designs on a phone, outdoors as well as indoors.

The checklist

Run through this list before launch and whenever the brand changes. It also works as a brief for a designer; our website brief template has room for these decisions.

  1. Every color in the palette has a named role: text, action, brand accent, surface, border, success, warning, error.
  2. All body text, labels and button text reach at least 4.5:1 against their background.
  3. Large headings reach at least 3:1, and so do input borders, meaningful icons and focus outlines.
  4. Text on photos has an overlay behind it; links are underlined; errors are explained in words.
  5. The action color is used only for things people can click or tap.
  6. Body text is at least 16 px, and paragraphs stay around 65 characters wide in English.
  7. Arabic has no letter-spacing, no fake italics and a line height of roughly 1.7 or more.
  8. Arabic and Latin fonts match in visual size and weight on a mixed test sentence.
  9. No more than two font families and two or three weights each, all in WOFF2, subset by script.
  10. font-display is set, one or two key fonts are preloaded, and the page does not jump when fonts load.
  11. If dark mode is offered, every pair has been re-measured and the logo has a light version.
  12. Final colors and type sizes are written down as tokens for everyone who edits the site later.

Color and type are only part of a site's design; structure, content and user journeys matter just as much. For the wider picture, start with what web design covers, and for planning screens around real users, read UX and UI in web design.

How Webnaa handles color and type on your website

Webnaa is a website design service in Saudi Arabia, based in Riyadh. Our website design service builds professional WordPress websites in Arabic, English or both, and the points in this guide are part of how we work rather than an extra:

  • You see it before launch. Your design is shown on a preview link, so you can judge the colors and type on your own phone and computer, indoors and out.
  • Bilingual and tested. Arabic and English pages are tested on phone and computer before launch.
  • Content included. We write the content, so headings and buttons fit the layout.
  • Fast and mobile-friendly. Sites load quickly and read well on phones.
  • Room to adjust. On a WordPress website you can fine-tune text and images yourself from the dashboard after launch.

Prices start from SAR 39 a month, and all of the above comes in a WordPress website, for example SAR 324 a month for 5 pages in Arabic and English, with hosting, SSL and a domain in your name, no setup fee and no long contract, paid every 6 months or for a year upfront at 10% off; the price calculator prices any other size. The preview link is sent within 24 hours at most once we have all the information and content we need from you, and if you do not like the design during the design stage, a money-back guarantee applies, per the refund policy. If you already have a site whose colors and fonts are holding it back, our website redesign service is priced by written quote.

Price calculator

Choose what you need, see your exact price

The price updates with every choice. No surprises, no hidden fees.

The calculator is off. Press the power button to start

1Domain
The SAR plan is one page in one language. Need more pages or a second language?
2Website type
3LanguagesPriced by how many languages, not which
Language
Second language
Home, About, Services, Contact…
5Payment
Optional extrasDon’t need them? Skip them; your price is ready.
Monthly article planOptional · up to words per article, with its image, publishing and SEO basics
Need more than articles a month? Request a quote
Your logoHave one, or we design it
Business emailOptional · addresses on your domain, like info@yourname.com

A website that is easy to read, in both languages

See our plans, from SAR 39 a month, then send us your logo and business details.

FAQ

How many colors should a website use?

Most business sites need one brand color, one action color (often a darker shade of the brand color), three to five neutrals and three status colors. Each can have lighter and darker steps, as long as each has one clear job.

What is a good contrast ratio for text on a website?

Under WCAG 2.2 level AA, normal text needs at least 4.5:1 against its background, and large text (about 24 px regular or 18.5 px bold) needs at least 3:1. Icons, input borders and focus outlines also need 3:1. Higher is more comfortable: navy #0b1f3a on white reaches about 16.5:1.

What font size should body text be on a website?

Use at least 16 px for Latin body text, and consider 17 or 18 px for comfortable reading. Arabic usually needs one or two pixels more than Latin at the same nominal size, plus a line height of about 1.7 to 1.9.

Which fonts work well for Arabic and English websites?

Families designed for both scripts are the easiest choice, such as IBM Plex Sans Arabic with IBM Plex Sans, or Noto Sans Arabic with Noto Sans. Test a real mixed sentence at your body size before deciding.

Do I need dark mode on my business website?

Usually not. Dark mode helps most on portals and dashboards used for long sessions. If you add it, treat it as a second palette and test every page again.

Can I use my brand color for text if it fails contrast?

Not for body text. Keep the brand color for large headings, icons, shapes and backgrounds behind dark text, and use a darker shade of the same hue for links and small text. Visitors still recognize the brand, and the text stays readable.

Summary

Good color and type in web design come from a few disciplined choices: a palette in which every color has a role, contrast that meets WCAG 2.2 AA everywhere text and controls appear, a type scale with comfortable sizes and line lengths, Arabic treated as its own script rather than a copy of the English styles, and fonts loaded lightly enough that text appears fast and stays put. Make those decisions once, write them down, and test them on a phone in real light.

Sources: W3C WAI: Understanding SC 1.4.3 Contrast (Minimum), W3C WAI: Understanding SC 1.4.11 Non-text Contrast, W3C: Arabic and Persian Layout Requirements, web.dev: Best practices for fonts, MDN: prefers-color-scheme. Webnaa: website design, pricing. Contrast ratios in this article were calculated with the WCAG relative luminance formula.

Send a note

Coming from the page: Article: Web design colors and typography: a practical guide for Saudi brands

One moment…