CSS Objects

Type Objects

Pigeon exposes a number of objects to help with laying out type. These objects are all extended by the default type styles to offer a more consistent way of laying out type.

Space

The space object is used to add typographic margins to an element. This allows you to make non-type elements to sit nicely in the flow of the page.

<div class="space">
    This text is spaced as if it were inside a paragraph.
</div>

The space-above object works in the same way, except that it adds spacing above rather than below. This gives you more control over typographic spacing.

<p class="space-above">
    This text has space above it as well as below.
</p>

Both the space and space-above objects can be suffixed with -more or -less to double or halve the spacing added.

<p class="space-more space-above-more">
    This text has double spacing above and below.
</p>

<p class="space-less space-above-less">
    This text has half spacing above and below.
</p>

This object is automatically applied to key typographic elements such as paragraphs – you only need to add it to elements which do not normally sit in the flow of type. See the source code for core typography for the elements this applies to.

View the source code for the space object.

Cramp

The cramp object is used to remove typographic spacing from an element. This allows you to easily override default type margins for paragraphs, for example.

<p class="cramp">
    This text has no space around it.
</p>

View the source code for the cramp object.

Typearea

The typearea object is used to pad a container, optimizing typographic spacing for the elements it contains. This allows you to avoid using the space-above object when working with large blocks of text.

<div class="typearea">
    <p>The containing div is padded…</p>
    <p>…which means type inside flows nicely.</p>
</div>

View the source code for the typearea object.

Indent

The indent object is used to indent an element in a way which scales appropriately as text is resized.

<p class="indent">
    This text is indented.
</p>

The indent object can be suffixed with -more to double the indentation.

<p class="indent-more">
    This text is double-indented.
</p>

This object is automatically applied to quotes and lists, so you'll only need to add it manually to elements which are not normally indented.

View the source code for the indent object.

H1–H6

The h1–h6 objects are used to apply heading styles to non-heading elements, or to disguise different heading levels to CSS-enabled browsers.

<h3 class="h1">
    This h3 looks like a h1.
</h3>

View the source code for the h1–h6 objects.

Smallprint

The smallprint object is used to decrease the font-size of an element in order to indicate that it is of less immediate importance to the user than the surrounding text.

<p class="smallprint">
    This text is smaller than normal.
</p>

This object is automatically applied to the figcaption, small, sub and sup elements so you'll only need to add it manually to elements which are not normally smaller.

View the source code for the smallprint object.

Fig

The fig object is used to position elements to the left side of a block of text by floating them. This object also applies margins which make floated elements sit nicely with Pigeon's type styles.

<img class="fig" src="…" alt="This image is floated left">

The fig-alt object is the same as alt except that it positions elements on the right side of text.

<img class="fig-alt" src="…" alt="This image is floated right">

Note: fig and fig-alt classes are named as such (without left/right suffixes) to allow Pigeon to be used more comfortably with right-to-left languages.

View the source code for the fig object.

Quote

The quote object, along with the quote-body and quote-attrib sub-objects, is used to style quotations. These objects can be applied to any element, which allows you to use your own preferred markup.

<blockquote class="quote">
    <p class="quote-body">Hello World!</p>
    <p class="quote-attrib">Someone in <cite>Work</cite></p>
</blockquote>

The quote object is automatically applied to the blockquote element, although you'll still need to manually apply the quote-body and quote-attrib objects.

View the source code for the quote object.

List Objects

Stack

The stack object is used to remove standard list styling and display a list as a simple stack of block-level elements.

<ul class="stack">
    <li>This list looks just like…</li>
    <li>…a stack of divs.</li>
</ul>

Any anchors which are direct descendants of the stack's list items are also displayed as blocks.

<ul class="stack">
    <li>
        <a href="#">This is a block too!</a>
    </li>
</ul>

The stack object can be used with non-lists by replacing li elements with elements that have an item class.

<div class="stack">
    <div class="item"></div>
    <div class="item"></div>
</div>

View the source code for the stack object.

Lineup

The lineup object is used to remove standard list styling and display list items as inline blocks side by side.

<ul class="lineup">
    <li>This list looks just like…</li>
    <li>…spans side by side.</li>
</ul>

Any anchors which are direct descendants of the lineup's list items are also displayed as inline blocks.

<ul class="lineup">
    <li>
        <a href="#">This is an inline block too!</a>
    </li>
</ul>

The lineup object can be used with non-lists by replacing li elements with elements that have an item class.

<div class="lineup">
    <div class="item"></div>
    <div class="item"></div>
</div>

The lineup-is-delimited modifier is used alongside lineup to add commas after each list item. This allows you to easily create comma-delimited lists with semantic meaning.

<ul class="lineup lineup-is-delimited">
    <li>These list items</li>
    <li>will be</li>
    <li>comma delimited</li>
</ul>

View the source code for the lineup object.

Blocklineup

The blocklineup object is used to remove standard list styling and display list items as blocks floated side by side. Floats are automatically cleared.

<ul class="blocklineup">
    <li>This is a list…</li>
    <li>…of floated blocks.</li>
</ul>

The blocklineup object can be used with non-lists by replacing li elements with elements that have an item class.

<div class="blocklineup">
    <div class="item"></div>
    <div class="item"></div>
</div>

View the source code for the blocklineup object.

Data Objects

Table

The table object is used to present tabular data nicely. It is indended for use with table elements and is not particularly useful on anything else.

<table class="table">
    <tr>
        <td>This table is styled…</td>
        <td>…for optimal presentation…</td>
        <td>…of tabular data.</td>
    </tr>
</table>

The table-is-wide modifier is used alongside table to make the table span the full width of its container.

<table class="table table-is-wide">
    <tr>
        <td>This table spans the…</td>
        <td>…full width of its container.</td>
    </tr>
</table>

The table-is-striped modifier is used alongside table to style alternating rows differently. This makes large tables more readable.

<table class="table table-is-striped">
    <tr>
        <td>This table has…</td>
        <td>…striped rows.</td>
    </tr>
</table>

View the source code for the table object.

Utility Objects

Clearfix

The clearfix object is used to clear all floats inside a container.

<div class="clearfix">
    <div style="float: left;">These floats</div>
    <div style="float: left;">are cleared.</div>
</div>

View the source code for the clearfix object.

Hide

The hide object is used to hide elements in a way that's accessible to both screen readers and search engines.

<p class="hide">
    This paragraph is hidden.
</p>

View the source code for the hide object.

Shh

The shh-a object is used to disguise links to look like their surrounding text. It can be used directly on an a element or another element to target all child links.

<a class="shh-a" href="…">
    This link looks like regular text.
</a>

<p class="shh-a">
    All links in this paragraph will look like regular text.
</p>

View the source code for the shh object.