Surf Fonts

Creating Better Fonts for Everyone

Four font families

The CloudSurf site uses the proprietary pair. The Open pair is released under the SIL Open Font License 1.1 for other projects.

Surf Display

Regular and Black. This is the brand face for headings, buttons and paragraphs on cloudsurf.com. Use it under the CloudSurf licence when referring to CloudSurf and its products.

Surf Mono

Regular and Bold. It sets code, terminals and tables on a shared 600-unit pitch. Use it under the CloudSurf licence when referring to CloudSurf and its products.

Surf Display Open

Regular and Black. This is a separate geometric family averaged from open voters. It is released under the SIL Open Font License 1.1 for use, modification, embedding and redistribution.

Surf Mono Open

Regular and Bold. This is the Open monospace family on the same 600-unit pitch. It is released under the SIL Open Font License 1.1.

Site type scale

The CloudSurf shell tiers, set in Surf Display at the sizes this site uses.

  • Hero · 72px · Black Creating Better Software for Everyone
  • H1 · 48px · Black Creating Better Software for Everyone
  • H2 · 32px · Black Creating Better Software for Everyone
  • H3 · 24px · Black Creating Better Software for Everyone
  • Body · 16px · Regular Creating Better Software for Everyone
  • UI · 16px · Regular Creating Better Software for Everyone
  • Caption · 15px · Regular Creating Better Software for Everyone
  • Micro · 13px · Regular Creating Better Software for Everyone

Waterfall specimen

The same pangram runs at 14, 18, 24, 36, 48 and 72 pixels in Regular, then Black.

Regular

  • The quick brown fox jumps over the lazy dog
  • The quick brown fox jumps over the lazy dog
  • The quick brown fox jumps over the lazy dog
  • The quick brown fox jumps over the lazy dog
  • The quick brown fox jumps over the lazy dog
  • The quick brown fox jumps over the lazy dog

Black

  • The quick brown fox jumps over the lazy dog
  • The quick brown fox jumps over the lazy dog
  • The quick brown fox jumps over the lazy dog
  • The quick brown fox jumps over the lazy dog
  • The quick brown fox jumps over the lazy dog
  • The quick brown fox jumps over the lazy dog

Numerals and symbols

0123456789 @ & % $ £ € 0123456789 @ & % $ £ €

Mono columns

Regular and Bold share a 600-unit pitch, so weight changes do not move columns.

RUST
/// Every glyph in both weights advances exactly one pitch.
const PITCH: u16 = 600;

fn advance(glyph: &Glyph, bold: bool) -> u16 {
    let face = if bold { Face::Bold } else { Face::Regular };
    match face.advance_of(glyph) {
        Some(width) => width,
        None => PITCH,
    }
}

Same columns, mixed weights

  • fn advance(glyph: &Glyph, bold: bool) -> u16 { PITCH }
  • fn advance(glyph: &Glyph, bold: bool) -> u16 { PITCH }
  • fn advance(glyph: &Glyph, bold: bool) -> u16 { PITCH }
  • |||||||||||||||||||||||||||||||||||||||||||||||||||||

The bars mark columns. The Regular, Bold and mixed-weight samples above align to them.

CloudSurf and Open, side by side

The same tagline is set at the same size in each display family. The Open family uses geometric voters such as Poppins, Outfit and Montserrat, so its lowercase sits a little lower: an x-height of 515 units against 532 for the CloudSurf family.

Surf Display

Creating Better Software for Everyone

Creating Better Software for Everyone

Surf Mono: let pitch = 600;

Surf Display Open

Creating Better Software for Everyone

Creating Better Software for Everyone

Surf Mono Open: let pitch = 600;

Surf Display Open and Surf Mono Open are released under the SIL Open Font License 1.1, so you can use, modify, embed and redistribute them. They are separate averaged designs, not a relicensing of the CloudSurf outlines.

How the fonts are built

Each face comes from the CloudSurf average-font pipeline: a per-glyph average of polygon outlines from permissively licensed voter typefaces.

Surf Display Regular averages 20 voters; Black averages 21. Surf Mono Regular averages 11; Bold averages 6. The Open faces use 16, 15, 11 and 10 voters. The two pairs are averaged from different pools: the Own pool holds CloudSurf's own drawings with permissive inputs, and the Open pool adds OFL inputs and geometric voters, which is why the families differ. ATTRIBUTION.md in the download lists every voter and its licence.

Vertical metrics are copied from the brand v2.000 fonts, so these faces use the same line boxes. Mono advance widths are normalised to one 600-unit pitch in both weights.

The outlines are 256-point polygons per contour: screen-oriented, unhinted and not hand-editable. There is no kerning yet; this page is where it will show first. The polygon average ships; the cubic refit is still an experiment.

FaceWeightVotersBuilt
Surf Display Regular400202026-09-01 18:00
Surf Display Black900212026-09-01 21:06
Surf Mono Regular400112026-09-01 23:46
Surf Mono Bold70062026-09-01 17:00
Surf Display Open Regular400162026-09-01 23:24
Surf Display Open Black900152026-09-01 23:02
Surf Mono Open Regular400112026-09-01 23:02
Surf Mono Open Bold700102026-09-01 23:02
4Families
8Faces
107–108Glyphs per face
v0.200Release

Licences and use

One download, two sets of terms. Check the family name before you use it.

CloudSurf licence

Surf Display and Surf Mono are the CloudSurf brand cut, © CloudSurf Software LLC. Use them when referring to CloudSurf and its products. LICENSE.txt in the download contains the full terms; ATTRIBUTION.md and the licenses folder contain the third-party notices required by the averaged inputs.

SIL Open Font License 1.1

Surf Display Open and Surf Mono Open are released under the SIL Open Font License 1.1 with the Reserved Font Name "Surf". Use, modify, embed and redistribute them freely; OFL fonts may not be sold on their own. OFL.txt in the download contains the licence text.

Read the OFL →

Install or serve the fonts

The download includes desktop TTF and web WOFF2 files for every face. Use Surf Display and Surf Mono when referring to CloudSurf and its products; use Surf Display Open and Surf Mono Open for other projects.

Serve the WOFF2 files from the download's web folder and declare the faces you use:

@font-face { font-family: "Surf Display"; font-weight: 400; font-style: normal;
  src: url("web/SurfDisplay-Regular.woff2") format("woff2"); }
@font-face { font-family: "Surf Display"; font-weight: 900; font-style: normal;
  src: url("web/SurfDisplay-Black.woff2") format("woff2"); }
@font-face { font-family: "Surf Mono"; font-weight: 400; font-style: normal;
  src: url("web/SurfMono-Regular.woff2") format("woff2"); }
@font-face { font-family: "Surf Mono"; font-weight: 700; font-style: normal;
  src: url("web/SurfMono-Bold.woff2") format("woff2"); }
@font-face { font-family: "Surf Display Open"; font-weight: 400; font-style: normal;
  src: url("web/SurfDisplayOpen-Regular.woff2") format("woff2"); }
@font-face { font-family: "Surf Display Open"; font-weight: 900; font-style: normal;
  src: url("web/SurfDisplayOpen-Black.woff2") format("woff2"); }
@font-face { font-family: "Surf Mono Open"; font-weight: 400; font-style: normal;
  src: url("web/SurfMonoOpen-Regular.woff2") format("woff2"); }
@font-face { font-family: "Surf Mono Open"; font-weight: 700; font-style: normal;
  src: url("web/SurfMonoOpen-Bold.woff2") format("woff2"); }

The zip contains 27 files, about 400 KB: desktop TTF, web WOFF2, licences and attribution. More downloads are on the Resources page.

Download the font pack