Foundations

Typography

ECO type is modular: 20 base styles, each built from a role, a size and, when needed, a modifier. One typeface, Breuer Condensed, carries every Alligo brand.

Mobile and desktop have their own base styling and switch at 769px. Every specimen on this page is rendered from tokens.json, so it follows the package when it changes.

Overview

Breuer Condensed has three weights. Figma lists them as 500, 600 and 700; in CSS they are 100 lower. This page prints both.

Anatomy of a style

A style name reads role-size and an optional --modifier, for example label-lg--underline.

RoleThe purpose and emphasis of the text. Six roles: Display, Headline, Title, Label, Alt-Label and Body.headline-lg
SizeKeeps the scale rhythmic. Small, Medium, Large and XLarge, with availability per role.headline-lg
ModifierDescribes one specific intended use, such as underline or badge. Body styles also have italic, bold and strikethrough.label-lg--underline

The six roles

Pick the role first, then the size. Roles are ordered here from most to least emphasis in the interface.

RoleCaseSizesPurpose

Styles

Every style, set in its real size, line height and letter spacing. Use the toggle to see the mobile or desktop base styling; Window follows your browser width.

Breakpoint

Modifiers

A modifier changes one thing about a base style and keeps the rest. They are not in tokens.json; the CSS is given here and in the Code section.

Body modifiers

Available on all four body sizes. Use them inside running text; preamble is only for body-xl.

Work wear that works as hard as you do.

body-lg

Work wear that works as hard as you do.

body-lg italic

Work wear that works as hard as you do.

body-lg bold (weight 600)

Work wear that works as hard as you do.

body-lg bold-italic

Work wear that works as hard as you do.

body-lg underline

Work wear that works as hard as you do.

body-lg strikethrough

A longer preamble sets the scene before the article begins.

body-xl preamble

A longer preamble sets the scene before the article begins.

body-xl preamble-underline

Bold-underline and bold-strikethrough combine the two in the same way.

Label modifiers

Label has a few component-specific variants. Underline marks a text link set as a label; the badge styles use normal case.

ModifierBaseChangeSample
label-lg--underlinelabel-lg+ underlineRead more
label-lg--badgelabel-sm14px, 0.56px, normal caseNew
label-sm--badgelabel-sm12px, 0.48px, normal caseNew

Typesetting

How styles combine on a page: which style an HTML element gets, how long a line of text should be and how much space follows a paragraph.

Hierarchy

The default style for each element, from the ECO Figma file (Editor Default Styles). Choose the element for the document outline, then take the style from this table. On My Pages the page title is an H1 even though the table lists it as H2.

ElementDefault styleModifierToken

Display Large and Headline XLarge are both H1 styles. Use one of them on a page, never both. For a paragraph, body-lg or body-md depends on the context.

Line length

Count characters per line, spaces included. Under 40 is too narrow: the eye jumps too often. 40–60 is a good length and 60–90 is ideal. Around 100 is the margin, and past it the text is too wide. Never go beyond 130. The ruler below is set in body-sm; the same limits hold for the other body styles.

On small screens the limits are met by the layout itself: at 375px a body line holds about 40–65 characters. On desktop, cap the width of the text container instead of letting it fill the columns.

Paragraph spacing

Add the gap after a paragraph with one spacing token, never by stacking two. Use body-lg or body-md throughout an article, not both: body-lg for dedicated articles, body-md when space is tight.

StyleDesktopMobile
body-sm12px12px
body-md16px16px
body-lg20px16px
body-xl24pxNot defined

Spacing after a style

The space that follows a text style, from the ECO Figma file (Style spacing). The values listed for a style are the options a designer or developer can pick from; choose one spacing token and never combine several. The blue bar shows the largest option under the sample. For body styles the value is the space before the next block, for example a heading.

StyleSampleDesktopMobile

Spacing after body-xl--preamble is 16px at every width. The Figma frame also has one unlabeled 12px example for the preamble, marked with a red frame; it is not used here.

Playground

Pick a role and size, type your own text and copy the CSS for the selection.

Breakpoint
Size
CSS for this selection

    

Examples

Styles in context. Each example uses only the styles named in its caption; resize the window to watch mobile and desktop base styling switch at 769px.

Breakpoint

Article

A full article from the ECO Figma file (Article Anatomy): kicker alt-label-lg, H1 display-lg, preamble body-xl (medium weight), headings headline-lg to title-md, lists, a blockquote and paragraphs. Use Body size to switch the running text between body-lg and body-md; use one of them throughout an article.

Body size
Lorem ipsum

Lorem ipsum dolor Loret Amet Tema Apa

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lacus, ultrices pretium est turpis aenean rutrum dolor sit amet nullam dolor.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lacus, ultrices pretium est turpis aenean rutrum. Morbi sed semper convallis turpis arcu porta morbi sed.

Scelerisque sit varius ut sociis feugiat. Sit eget euismod diam tortor fermentum nulla facilisi facilisis.

Lorem ipsum dolor

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Faucibus interdum facilisi eget sem. Adipiscing convallis est volutpat elit ipsum tristique tellus. Consequat nulla quis at quis. Pharetra, purus odio consequat faucibus rhoncus velit quam faucibus nullam. Cursus vestibulum malesuada velit fames tellus mauris.

Lorem ipsum dolor

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Faucibus interdum facilisi eget sem. Adipiscing convallis est volutpat elit ipsum tristique tellus. Consequat nulla quis at quis. Pharetra, purus odio consequat faucibus rhoncus velit quam faucibus nullam. Cursus vestibulum malesuada velit fames tellus mauris.

Lorem ipsum dolor

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Faucibus interdum facilisi eget sem. Adipiscing convallis est volutpat elit ipsum tristique tellus. Consequat nulla quis at quis. Pharetra, purus odio consequat faucibus rhoncus velit quam faucibus nullam. Cursus vestibulum malesuada velit fames tellus mauris.

Consequat nulla quis at quis. Pharetra, purus odio consequat faucibus rhoncus velit quam faucibus nullam. Cursus vestibulum malesuada velit fames tellus mauris.

  • List item level 1
    • List item level 2
      • List item level 3

Consequat nulla quis at quis. Pharetra, purus odio consequat faucibus rhoncus velit quam faucibus nullam. Cursus vestibulum malesuada velit fames tellus mauris.

Lorem ipsum dolor
  1. List item level 1
    1. List item level 2
      1. List item level 3
Lorem ipsum dolor

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Faucibus interdum facilisi eget sem. Adipiscing convallis est volutpat elit ipsum tristique tellus. Consequat nulla quis at quis. Pharetra, purus odio consequat faucibus rhoncus velit quam faucibus nullam. Cursus vestibulum malesuada velit fames tellus mauris.

Lorem ipsum dolor

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Faucibus interdum facilisi eget sem. Adipiscing convallis est volutpat elit ipsum tristique tellus. Consequat nulla quis at quis. Pharetra, purus odio consequat faucibus rhoncus velit quam faucibus nullam. Cursus vestibulum malesuada velit fames tellus mauris.

Scelerisque sit varius ut sociis feugiat. Sit eget euismod diam tortor fermentum nulla facilisi facilisis.

It has to start somewhere, it has to start sometime. What better place than here, what better time than now?

Name SurnameTitle

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Faucibus interdum facilisi eget sem. Adipiscing convallis est volutpat elit ipsum tristique tellus. Consequat nulla quis at quis. Pharetra, purus odio consequat faucibus rhoncus velit quam faucibus nullam. Cursus vestibulum malesuada velit fames tellus mauris.

Spacing follows the four ECO Figma frames (desktop and mobile, Body Large and Medium). Above a heading: 32px (Large) or 24px (Medium) on desktop, 24px on mobile. Heading to text: 12px on desktop, 8px on mobile. Paragraph gap: 20px (Large) or 16px (Medium) on desktop, 16px on mobile. Bullets are 8px (Large) or 6px (Medium). Under the kicker and H1 it is 12px and 16px at every width.

Product card

From the ECO Figma file (Product Card): label-sm in the discount badges, alt-label-sm for the brand, title-md for the name and the price, body-sm for article number, rating count, old price and stock status, and label-md for the button text. The image area is a placeholder.

30% RabattUtförsäljning
Björnkläder

Carpenter soul hantverksbyxa

Art.nr: VE-32917 200
53,00 kr exkl.moms
53,00 kr
  • Finns i flera varianter
  • Välj butik för butikssaldo
Visa 9 varianter

Form field

alt-label-sm for the label, body-md for the entered value, body-sm for the hint.

Company name Alligo AB As it appears on your invoice.

Campaign banner

From the ECO Figma file (Hero Banner): kicker as label-lg, headline as display-lg, intro as body-xl (medium weight) and the button text as label-lg, all in white over a dark gradient on the image. Spacing is taken from the Figma banner: 12px under the kicker, 4px under the headline and 24px under the intro (this differs from the Spacing after a style table, which gives 8px and 32px). Display is for short, loud text; keep it to a few words. The image is a placeholder.

Klara tuffa vinterförhållanden

Varma och säkra arbetsskor för vintern

Upptäck Swedols breda sortiment av varma och hållbara arbetskängor, fodrade arbetsstövlar och arbetsskor för vintern – designade för att klara de tuffaste vinterförhållandena.

Köp vinterkängor här

Tokens

Typography tokens are not CSS variables in the package. Use the values below, or the generated CSS in the Code section. Desktop values apply from 769px; below that, mobile.

TokenMobileDesktopWeight (CSS / Figma)Case

Code

Generated from tokens.json with the same function that styles the examples above, so it cannot drift.

Base rule (every style)

    
All styles, mobile first

    
Use in markup
<h1 class="t-display-lg">Dressed for the job</h1>
<p class="t-body-xl">What to look for in work wear.</p>
<p class="t-body-lg">A heavier weave resists wear.</p>
<span class="t-alt-label-sm">Company name</span>

Usage

Do

  • Pick the role by purpose first, then the size.
  • Use one H1 style per page: display-lg or headline-xl.
  • Use body-lg or body-md through a whole article, not both.
  • Keep body lines at 60–90 characters, never past 130.

Don’t

  • Set a custom font size, weight or line height next to a token.
  • Use Display for long text or more than a few words.
  • Pick a style for how big it looks and ignore the HTML element it sits in.
  • Add paragraph spacing by combining several spacing tokens.