Style tags
Proof text in Hellbox can carry inline markup: mark a word bold, switch a phrase to a stylistic set, turn fractions on for one number. Tags work in typed content and in linked .txt files, so you can keep one marked-up proof document in your repo and every font you proof with it renders the styles in context.
Now <b>the bold carries the argument</b>, <i>the italic murmurs
beside it</i>, and <b><i>together they raise their voices</i></b>.
Fractions <frac>1/2</frac>, small caps <smcp>Reformer</smcp>,
and a stylistic set: <ss02>gargoyle ilk</ss02>.
Style tags
<b>...</b>sets the span in the family’s bold,<i>...</i>in the italic, nested<b><i>...</i></b>in the bold italic. Hellbox resolves which style that means from the fonts in the section, and you can override the mapping (see below).<u>...</u>underlines.- Weight roles set the span in the family’s face nearest that weight:
<thin>,<extralight>,<light>,<regular>,<medium>,<semibold>,<extrabold>,<black>(the OS/2 weight ladder;<bold>and<italic>are long forms of<b>and<i>).<light>Hamburgefonstiv</light>means “this family’s light” whatever family you proof, which is what makes a marked-up file reusable across a library. A family that can’t express the role renders the span at the nearest weight it has. <f1>...</f1>sets the span in the section’s second font. Indexes follow the Fonts panel order counting from zero, and untagged text is the first font, so<f1>is the second,<f2>the third, and so on. These are also the tags Mix mode writes when you export a mixed distribution to a file.
OpenType feature spans
Any registered OpenType feature tag works as an element: <smcp>, <frac>, <liga>, <tnum>, <sups>, <ss01> through <ss20>, <cv01> through <cv99>, and the rest of the registry. The feature applies to the span on top of whatever features the section already has enabled.
If a font doesn’t have the feature, the span renders unstyled: the tag is still stripped, nothing breaks. That’s what makes a marked-up proof file portable across a whole library; each font shows what it has.
One honest caveat: fonts in the older AAT format (some system fonts like Hoefler Text) ignore OpenType feature settings entirely. Everything from the last decade of font editors is OpenType and works.
Exact glyphs by name
<glyphname>f_f_short</glyphname> inserts the exact named glyph, including unencoded glyphs you can’t type: ligature components, contextual alternates, stylistic-set glyphs. The glyph renders directly with no shaping, so calt and other contextual triggers never fire on it; that’s the point, you’re proofing the glyph in isolation.
This is the same markup Roberto Arista’s drawbot specimen builder uses, so existing proofing .txt files written for it work in Hellbox unchanged.
If the font has no glyph by that name, the name renders as literal text. Inside a styled span, the glyph comes from the resolved style when it has one, and falls back to the section’s base font when it doesn’t.
Code samples stay code
Only registered feature tags parse. HTML and code render exactly as typed, because <body>, <main>, and <span> aren’t OpenType features:
Code stays code: <body> <main> if (a<b) { return x>y; }
Two more controls for edge cases:
- Escape:
\<liga>renders a literal<liga>. - The
</>toggle under the content editor turns tag parsing off for the whole section. Off means every character renders exactly as typed, which is the right mode for proofing a coding font against real source code.
Tag styles mapping
With multiple fonts in a section, the Fonts panel shows Tag styles: what <b>, <i>, <b><i>, and any weight roles your text uses resolve to. Each defaults to Automatic, with the resolved style shown so there’s no mystery, and each can be pointed at any font in the section. Point Bold at your ExtraBold to proof it as the family’s bold, or fix the guess when a family’s weight names confuse the heuristic.
Everywhere text goes
Markup works in typed section content, linked .txt files, every section type, and headless renders: the same tags style your proofs in CI and through the command line. A marked-up file linked to a section re-renders on every save, so the proof tracks your text editor keystroke for keystroke.
Vertical text currently strips tags without styling them (spans in vertical orientation are on the roadmap).