Well-defined typography styles in combination with a design system layout grid will create structured content. Limiting font-families, a tight type scale, and content limits will keep it tight.

Note

By default, Ray will assign css attributes directly to HTML tags like h1–h6. If that kind of behavior is undesired, assign the $ray-assign-typography-styles-natively sass variable to false.

iconsHeadings

Ray includes typography styles for <h1> through <h6> classes, with .ray-text--h*.

The classes are not tied to the semantic html tags, so for example you could use a .ray-text--h3 on an <h1>, however this is an indicator that the information hierarchy of your page may need some reconsideration.

Headings include some margin on them. If you wish to use a heading without including the margin you can assign the class to a span, like below:

Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
<span class="ray-text--h1">Heading 1</span><br />
<span class="ray-text--h2">Heading 2</span><br />
<span class="ray-text--h3">Heading 3</span><br />
<span class="ray-text--h4">Heading 4</span><br />
<span class="ray-text--h5">Heading 5</span><br />
<span class="ray-text--h6">Heading 6</span><br />

iconsDisplays

Native heading elements (h1-h6) are designed for general-purpose use throughout the content. However, if a more distinguished and intentional headline is needed, consider using a display headline.

Display 1

Display 2

<h1><span class="ray-text--display-1">Display 1</span></h1>
<h2><span class="ray-text--display-2">Display 2</span></h2>

iconsBody Copy

Body large
Body default
Body small
Body x-small
<div class="ray-text--body-large">Body large</div>
<div class="ray-text--body">Body default</div>
<div class="ray-text--body-small">Body small</div>
<div class="ray-text--body-x-small">Body x-small</div>

iconsRunning Text

This utility is useful for long-form content, especially content that is dynamically generated from markdown. It will directly style h1h6, p, blockquote, ul, and ol tags. This will generally only be needed when $ray-assign-typography-styles-natively is set to false.

Title

Lorem ipsum dolor sit amet consectetur adipisicing elit. Vel quia magnam at eligendi, incidunt amet eaque distinctio veniam atque, beatae laudantium vitae autem molestias repellendus exercitationem in inventore accusamus eveniet.

Title 2

  • Item the first.
  • Item the second.
  • Item the third.

Title 3

  1. Item the first.
  2. Item the second.
  3. Item the third.
    • Item the first.
    • Item the second.
    • Item the third.
<div class="ray-running-text">
  <h1>Title</h1>
  <p>
    Lorem ipsum dolor sit amet consectetur adipisicing elit. Vel quia magnam at
    eligendi, incidunt amet eaque distinctio veniam atque, beatae laudantium
    vitae autem molestias repellendus exercitationem in inventore accusamus
    eveniet.
  </p>

  <h2>Title 2</h2>
  <ul>
    <li>Item the <code>first</code>.</li>
    <li>Item the <strong>second</strong>.</li>
    <li>Item the <a href="#core/typography.running-text">third</a>.</li>
  </ul>

  <h2>Title 3</h2>
  <ol>
    <li>Item the <code>first</code>.</li>
    <li>Item the <strong>second</strong>.</li>
    <li>
      Item the <a href="#core/typography.running-text">third</a>.
      <ul>
        <li>Item the <code>first</code>.</li>
        <li>Item the <strong>second</strong>.</li>
        <li>Item the <a href="#core/typography.running-text">third</a>.</li>
      </ul>
    </li>
  </ol>
</div>

iconsUtilities

Dock 72 at the brooklyn navy yard
<div class="ray-text--monospace">Dock 72 at the brooklyn navy yard</div>

iconsBlockquote

Add a <footer class="ray-blockquote__footer"> to identify a source.

What works good is better than what looks good, because what works good lasts.
Ray Eames
<blockquote class="ray-blockquote">
  What works good is better than what looks good, because what works good lasts.
  <footer class="ray-blockquote__footer">Ray Eames</footer>
</blockquote>

iconsLists

  1. Item one
  2. Item two
  3. Item three
  4. Item four
    • and a one
    • and a two
    • and a three
  5. Item five
<ol class="ray-list">
  <li>Item one</li>
  <li>Item two</li>
  <li>Item three</li>
  <li>
    Item four
    <ul>
      <li>and a one</li>
      <li>and a two</li>
      <li>and a three</li>
    </ul>
  </li>
  <li>Item five</li>
</ol>
<div>
  <a href="javascript:;">this is an anchor tag</a>
</div>

<div>
  <button class="ray-link">this is a &lt;button&gt; styled as a link</button>
</div>

iconsFont Family

Limiting font-families, a tight type scale, and content limits will keep it tight.

iconsApercu

The design system uses Apercu as the main typeface. It has been the typeface of choice for WeWork for the past two years and has proved to be consistent with our brand style and execution.

Font weights will be restricted to regular and bold.

Apercu Mono

A mono-space font is useful for differentiating between general body copy and specific data or section headers. We use Apercu-Mono to define the section headers and specific numerical data.

A mono-spaced font only has a single weight.

iconsStandard Text Colors

Text colors used will be broken out by use case and tint (light, medium, dark). Restricting the colors used will help with consistency.

iconsDark

$ray-color-text-dark – The primary text color, this should generally be used by default for most elements and body text.

iconsMedium

$ray-color-text-medium – A secondary text color is needed for the system in places like labels on inputs.

iconsLight

$ray-color-text-light – A tertiary text color is need for the system to convey placeholder for example.

iconsFull Scale

ClassFont remLine HeightDemo
ray-text--display-1NaNremHello world
ray-text--display-2NaNremHello world
ray-text--h1NaNremHello world
ray-text--h2NaNremHello world
ray-text--h3NaNremHello world
ray-text--h4NaNremHello world
ray-text--h5NaNremHello world
ray-text--h6NaNremHello world
ray-text--bodyNaNremHello world
ray-text--body-largeNaNremHello world
ray-text--body-smallNaNremHello world
ray-text--body-x-smallNaNremHello world

iconsTypography Mixins

These mixins can be useful for responsively assigning typography styles.

.my-copy {
  @include ray-body;

  @include ray-breakpoint(tablet) {
    @include ray-body-large;
  }
}

iconsAll available typography mixins

@include ray-display-1;
@include ray-display-2;
@include ray-h1;
@include ray-h2;
@include ray-h3;
@include ray-h4;
@include ray-h5;
@include ray-h6;
@include ray-body;
@include ray-body-large;
@include ray-body-small;
@include ray-body-x-small;