# Content tags (classes)

Our template includes styling for a range of classes by default. You can apply these to elements in markdown.

## Formatting

Use these classes in your markdown to create specific formatting effects.

Feature Workflow class Block or inline Explanation Supports edition suffix
Bibliography list .bibliography Block Styles a list as a bibliography, for instance at the end of an academic book. To apply this class, place {:.bibliography} directly under the list you would like to target. No
Box .box Block Puts the element in a box, to set it off from the rest of the text. To apply this class, place {:.box} directly under the block of text you would like to target. No
Chapter number .chapter-number Block Used for a chapter number before a chapter heading. (See the tip at Bold in the chapter on Markdown for another way to handle chapter numbers.) To apply this class, place {:.chapter-number} under the chapter number. No
Dedication .dedication Block A dedication, for instance at the start of a book or chapter. To apply this class, place {:.dedication} directly under the block of text that you’d like to target. No
Epigraph source .epigraph-source Block The person to whom the epigraph is attributed. To apply this class, place {:.epigraph-source} dircetly under the source of the epigraph. No
Epigraph .epigraph Block An epigraph at the start of a book or chapter. To apply this class, place {:.epigraph} under the epigraph you’d like to target. No
Figure .figure Block A figure is an image with a caption. Add {:.figure} immediately below a blockquote containing an image and a separate paragraph of text to make it behave as a figure. Read about other options for adding figures in our workflow guide. No
Figure: fixed position .fixed Block Add to the .figure tag, e.g. {:.figure .fixed}. For figures that must keep their position in the text flow, and must not float to the top of the page. No
Figure height .height-1 to .height-50 Block Sets the height of an element to a multiple of the default line height. Use in figures, on line after image, add it to the figure tag like this {:.figure .height-12} for an image whose height should be 12 lines. Yes
First paragraph .first Block For any paragraph that starts a new set of paragraphs, which should be flush left and with a gap above it. Add {:.first} immediately below this first paragraph. No
Float to top .float-top Block Floats the element to the top of its page. Useful for boxes. Applies to print output only. Apply {:.float-top} under the element which you’d like to float to the top. Or add it to an existing class like {:.box .float-top}. Yes
Float to bottom .float-bottom Block Floats the element to the bottom of its page. Useful for boxes. Applies to print output only. Apply {:.float-bottom} under the element which you’d like to float to the top. Or add it to an existing class like {:.box .float-bottom}. Yes
Footnote .sidenote .bottom Block or inline When you add .bottom to .sidenote, the note appears at the foot of the page in print output. It remains on the side on screens. (Also see the chapter ‘Footnotes, endnotes and sidenotes’.) No
Fractions .fractions Block or inline If your font supports it, converts characters like 1/2 into fraction characters. Add {:.fractions} to a span (e.g. italics, bold or link) or to a block element (e.g. list, paragraph) by adding it to the line immediately below it. No
Frontmatter references .frontmatter-reference Inline Tag links in the Table of Contents whose page numbers must match your frontmatter reference style set in its .sass variables (e.g. print.scss). You apply this class differently depending on how your Table of Contents is generated. In the current Electric Book template, the TOC is built from the meta.yml file. In the toc: section, add class: "frontmatter-reference" below the label you need to target. No
Glossary .glossary Block Add {:.glossary} below the last entry in a series of definition lists to format the entire list of definitions as a glossary. No
Hide from print .non-printing Block or inline Hides the element from print output. Useful for things like clickable buttons, which are only intended for screens, not paper. Apply {:.non-printing} below or next to the element. No
Image height .image-height-1 to image-height-50 Block or inline Sets the height of images inside an element, in lines Yes
Image with caption .image-with-caption Block Used for paragraphs that start with an inline image, and turns the text in the paragraph into a caption. Makes simple images with captions quick and easy. Apply {:.image-with-caption} directly after the paragraph that contains an inline image. No
Keep together .keep-together Block or inline Prevents an element from breaking across pages. (E.g. you want to keep a short list on the same page.) Apply {:.keep-together} to the end of the entire element. You can also apply it to a span (e.g. a phrase, like <span class="keep-together">24/7</span>) to prevent it breaking over a line. Yes
Keep with next .keep-with-next Block Prevents a page break between this element and the next one. Apply {:.keep-with-next} below the first element, to make sure it stays with the following element. No
Letter .letter Block Formats a blockquote as a letter, by spacing the paragraphs in it. Add > to the beginning of each line of the letter, to create a blockquote, then apply {:.letter} directly below the entire blockquote. No
Logo image .logo Block Used for making images small, especially for small logos in text like on acknowledgements pages. Add {:.logo} immediately below the markdown image tag. No
Page break after .page-break-after Block Creates a page break after the element. Place {:.page-break-after} directly below the element preceding your desired page break. No
Page break after, end of book .page-break-after-right Block When applied to the very last element in the book, ensures a blank verso for an even-numbered page extent. Apply {:.page-break-after-right} to the last element. No
Page break before .page-break-before Block Starts its element on a new page. Apply {:.page-break-before} after the element that should come after the page break. No
Page break: allow .allow-break Block Allows an element to break over a page where the default styles would normally prevent that (for example a three-bullet list might not break over a page). Apply the class to the parent element, for example place {:.allow-break} directly below the entire list. No
Page numbering restart .page-1 Block Restarts page numbering from 1. Can be added to the first block element on a page by using {:.page-1} after the first element, or to the YAML header, in addition to the main style, e.g. style: halftitle-page page-1 or style: chapter page-1. Recommended for any document that starts a book interior (e.g. title page), to retain correct pagination when creating a screen PDF that has a front cover page. No
Poetry .verse Block Designing poetry is tricky and important. Read about how to manage this in our workflow guide. No
Pull quote .pullquote Block Displays a paragraph as a pull quote. Apply {:.pullquote} directly below the block of text. No
Redact content .redact Block or inline Redacts text and images in PDF outputs No
Shift element down .shift-down, .shift-down-n Block Shifts an element down in the document on output, where n is the number of sibling elements to shift it down by. No
Shift element up .shift-up, .shift-up-n Block Shifts an element up in the document on output, where n is the number of sibling elements to shift it up by. No
Show URL .show-url, .pdf-show-url, .epub-show-url Inline Apply to a link to show the URL in parentheses after the linked text in epub and PDF, PDF only, or epub only. For epub, this applies only to some e-ink ereaders. No
Show page number .show-page-number Inline Apply to a link to show the page number in parentheses after the linked text in PDF. No
Show roman page number .show-page-number-lower-roman Inline Apply to a link to show a roman-numeral page number in parentheses after the linked text in PDF. No
Sidenote .sidenote Block or inline A sidenote appears in a sidebar to the right of the text. Apply {:.sidenote} below the block of text. No
Small caps (lowercase only) .smallcaps Block or inline Works if your font supports proper small-caps glyphs. Only affects the lowercase letters. Apply {:.smallcaps} to the span inline (e.g. use * like italics) or directly below the block of text. This class avoids making * and ** spans bold or italic. So add .italics or .bold if you also need to italicise the small caps or make them bold. No
Small caps throughout .allsmallcaps Block or inline If your font supports proper small-caps glyphs, this makes all characters small caps, including capital letters. Apply {:.allsmallcaps} directly after a span element inline or directly below a block of text. Add .italics or .bold if you needed to italicise or make bold. No
Source after a quotation .source Block Add this to the source (e.g. name and/or title) for a preceding quotation. Apply {:.source} below the block of source text. No
Start on right .start-on-right, .start-on-recto Block Creates a page break to start a new right-hand page. Apply to page frontmatter to start a chapter on the right, e.g. style: chapter start-on-right. No
Table caption .table-caption Block Add {:.table-caption} in the line immediately after a table caption. Table captions must always appear above tables, not after them. No
Title page: author .title-page-author Block The book’s author(s) on the title page. No
Title page: logo .title-page-logo Block A logo, as an image, on the title page. Apply {:.title-page-logo} below the markdown image tag. No
Title page: subtitle .title-page-subtitle Block The book’s subtitle on the title page. Apply {:.title-page-subtitle} directly below the subtitle. No
Title page: title .title-page-title Block The book’s title on the title page. Apply {:.title-page-title} directly below the title. No
Tracking: tighten .tighten-1 to .tighten-50 Block or inline Each increment tightens the space between letters by 0.001em (1/1000 of a em). E.g. add {:.tighten-5} directly below a paragraph to reduce its letter-spacing by 5/1000em. Affects print output only. Yes
Tracking: loosen .loosen-1 to .loosen-50 Block or inline Each increment loosens the space between letters by 0.001em (1/1000 of a em). E.g. add {:.loosen-5} directly below a paragraph to increase its letter-spacing by 5/1000em. Affects print output only. Yes
Valediction .valediction Block Used for the sign-off at the end of a letter, preface or foreword. Add {:.valediction} directly below the sign-off line. No
Visually hide .visuallyhidden Block or inline Used to hide elements from view, but not from screen readers. No
Width .width-1 to .width-100 Block Applied to .verse (only for PDF output) and to figures to set their width as a percentage No

## Reserved classes

You may also need to create your own classes for other uses. If you do, avoid using the same already-supported class names above. You should also avoid using the following ones, which are reserved for specific structural elements.

Class name Reserved for
index The home page of a collection, used for the style value in file YAML headers
cover A front cover, which will appear in ebook editions, used for the style value in file YAML headers
halftitle-page A book’s halftitle page, used for the style value in file YAML headers
previous-publications-page A book’s list of the author’s previous publications, used for the style value in file YAML headers
title-page A book’s title page, used for the style value in file YAML headers
copyright-page copyright or imprint page, used for the style value in file YAML headers
contents-page A book’s table of contents, used for the style value in file YAML headers
dedication-page A dedication page, used for the style value in file YAML headers
epigraph-page An epigraph page, used for the style value in file YAML headers
frontispiece-page A frontispiece page, used for the style value in file YAML headers
frontmatter For other prelim pages not accounted for otherwise, used for the style value in file YAML headers
chapter A book’s default chapter page (and the global default), used for the style value in file YAML headers

## The edition suffix

If you want to produce more than one print edition of a book from the same source file, you can’t use the same classes that affect text-flow – like .tighten-1, for instance – in both editions, because the text will flow differently in each edition.

Our workflow has a way to manage that. In the print CSS file, you can specify an edition suffix. For instance, if you’re producing a schools edition of a book, you might make your suffix -schools-edn. That suffix will be appended to the end of certain class names for that stylesheet. The default .tighten-1 class will become .tighten-1-schools-edn in your final print CSS.

(It’s a good idea to start a suffix with a hyphen and use all lowercase letters, to keep your output CSS neat. Never use spaces.)

Only some classes are affected – see the table above for which ones. The most important are the classes used for tightening and loosening letter-spacing, which are mostly used to control widows and orphans in print layout.

In your markdown, then, you’d use {:.tighten-1-schools-edn} instead of {:.tighten-1}, and that class will then only have an effect on your schools edition. If you had another edition, say a large-print edition with a -large-print suffix, you’d use a {:.tighten-1-large-print} tag in the markdown. These would match the classes automatically generated in each edition’s CSS.

Of course, one element can carry both classes. For instance, you might end up with a paragraph tagged with {:.tighten-1-schools-edn .tighten-1-large-print}. That paragraph would then be tightened in both print layouts.

## Deprecated classes

Early versions of the EBW used the following classes, which are no longer supported:

• shrink
• tighten, tight, x-tight, xx-tight, xxx-tight
• loosen, loose, x-loose