Fact-checked by Grok 2 weeks ago

Control Pictures

Control Pictures is a that provides graphical symbols for visually representing control characters, particularly the C0 control codes from ASCII and other standards, enabling their display in text where they would otherwise be invisible. This block, introduced in Unicode version 1.1 in 1993, occupies the code point range U+2400 to U+243F in the Basic Multilingual Plane, encompassing 64 positions with 42 assigned characters as of 17.0. The primary purpose of these symbols is to facilitate , , and educational purposes by rendering non-printing functions as recognizable icons, such as ␀ for (U+2400) or ␉ for horizontal tabulation (U+2409). Characters in this block draw from established standards like ISO 2047 and ISO 9995-7, including representations for controls (e.g., ␗ for end of at U+2417) and formatting aids like ␠ for (U+2420) and ␣ for open box (U+2423). Glyph designs, often featuring diagonal lettering or simple , are exemplary and may vary across fonts, but they consistently prioritize clarity for code identification. In practice, Control Pictures are rarely used in everyday text rendering due to their specialized nature but prove valuable in technical contexts, such as protocol analysis, visualization, and legacy system interfaces where explicit depiction of controls aids comprehension. The block's enduring relevance stems from its role in bridging human-readable text with machine-level instructions, ensuring across diverse environments.

Overview

Definition

Control Pictures is a encompassing the range U+2400–U+243F, which includes 64 s of which 42 are assigned characters as of 17.0 that serve as graphical symbols for various control functions. The primary role of these characters is to provide visible, printable glyphs that represent otherwise invisible control codes, such as the depicted as ␀ (U+2400), the shown as ⏎ (U+240D), and the illustrated as ␛ (U+241B). These symbols offer a means to visualize and debug non-printing control sequences in text processing environments without altering their underlying functionality. Unlike the actual control characters themselves—such as those in the C0 set defined by ASCII and ISO/IEC 646, which are non-printable and execute specific operational commands—Control Pictures are distinct printable approximations intended solely for representational display purposes. These graphical depictions originate from the , which specifies visual representations for control characters in 7-bit coded sets to aid in their identification on output devices.

Purpose

Control Pictures serve to provide graphical representations of non-printable characters, enabling their visualization in text streams without invoking their functional effects, which is essential for , , and educational purposes. In environments, where control codes like null or end-of-text can disrupt display or cause misinterpretation, these pictorial symbols allow developers and analysts to inspect flows clearly, preventing confusion between printable text and embedded controls. This visualization is particularly valuable in educational contexts, such as teaching or operations, where abstract control functions need concrete depiction to facilitate understanding. In protocol analysis, Control Pictures aid in tracing by substituting symbols for control bytes, preserving the of the original sequence while making packet structures more interpretable. For instance, symbols representing start-of-text or end-of- help engineers identify sequence points in network logs or communications without modifying the underlying bytes, supporting efficient diagnosis of issues. This approach enhances in tools like emulators or analyzers, where real-time inspection of protocols is common. Compared to alternatives such as escapes (e.g., \x00 for ) or (e.g., ^@ for ), Control Pictures offer more intuitive and standardized icons that convey the specific function of each control at a glance, improving readability and reducing during analysis. and methods, while compact, require mental mapping to recall the control's meaning, whereas these glyphs provide immediate visual cues tied to ISO standards for device-independent display. Their adoption in fonts and software thus promotes consistent representation across platforms.

Characters

Representations of C0 Controls

The Control Pictures block in Unicode includes a set of 32 graphic characters from U+2400 to U+241F that provide visible representations for the C0 control codes defined in the ASCII standard (codes 00 to 1F hex). These symbols allow non-printable control characters to be displayed for , , or educational purposes, mapping directly to each C0 function such as , start of heading, and unit separator. The designs for these characters are typically rendered as small boxes containing abbreviated names of the corresponding functions, often in diagonal lettering for compactness, though fonts may vary in exact styling. This convention derives from the ISO 2047:1975 standard, which specifies graphical symbols—including alphanumeric abbreviations—for representing C0 controls on display devices like terminals or printers. For instance, U+2400 (␀) depicts "NUL" for the (00 hex), U+2401 (␁) shows "SOH" for start of heading (01 hex), and U+241F (␟) represents "US" for (1F hex). Alternate representations, such as pictorial icons (e.g., a bell for BEL at U+2407 ␇), are permitted but less common in modern implementations. As extensions beyond the strict C0 range, the block also includes U+2420 (␠), the symbol for , which visually represents the printable space character (20 ) as a boxed "" or an open square, and U+2421 (␡), the symbol for delete, depicting the character (7F ) often as a boxed "DEL" or a slashed . These additions complete the set of common control-related symbols, facilitating comprehensive visualization of legacy set behaviors.
Code PointSymbolNameC0 Mapping (Hex)
U+2400Symbol For Null00 (NUL)
U+2401Symbol For Start Of Heading01 (SOH)
U+2402Symbol For Start Of Text02 (STX)
U+2403Symbol For End Of Text03 (ETX)
U+2404Symbol For End Of Transmission04 (EOT)
U+2405Symbol For Enquiry05 (ENQ)
U+2406Symbol For Acknowledge06 (ACK)
U+2407Symbol For Bell07 (BEL)
U+2408Symbol For Backspace08 (BS)
U+2409Symbol For Horizontal Tabulation09 (HT)
U+240ASymbol For Line Feed0A (LF)
U+240BSymbol For Vertical Tabulation0B (VT)
U+240CSymbol For Form Feed0C (FF)
U+240DSymbol For Carriage Return0D (CR)
U+240ESymbol For Shift Out0E (SO)
U+240FSymbol For Shift In0F (SI)
U+2410Symbol For Data Link Escape10 (DLE)
U+2411Symbol For Device Control One11 (DC1)
U+2412Symbol For Device Control Two12 (DC2)
U+2413Symbol For Device Control Three13 (DC3)
U+2414Symbol For Device Control Four14 (DC4)
U+2415Symbol For Negative Acknowledge15 (NAK)
U+2416Symbol For Synchronous Idle16 (SYN)
U+2417Symbol For End Of Transmission Block17 (ETB)
U+2418Symbol For Cancel18 (CAN)
U+2419Symbol For End Of Medium19 (EM)
U+241ASymbol For Substitute1A (SUB)
U+241BSymbol For Escape1B (ESC)
U+241CSymbol For File Separator1C (FS)
U+241DSymbol For Group Separator1D (GS)
U+241ESymbol For Record Separator1E (RS)
U+241FSymbol For Unit Separator1F (US)
U+2420Symbol For Space20 (SP)
U+2421Symbol For Delete7F (DEL)

Supplementary Symbols

The Control Pictures block includes a set of supplementary symbols beyond the primary representations of C0 characters, primarily serving as graphical indicators for spaces, functions, and legacy operations in text and contexts. These characters, located from U+2422 to U+2429, provide visual cues for non-printing elements and historical functions, often derived from international standards for layouts and visualization. Among these, U+2422 (␢, BLANK SYMBOL) provides another visible representation for the blank or space character. U+2423 (␣, OPEN BOX) functions as a visible space indicator, depicting an open square to represent a space character in diagnostic displays; it differs from U+2420 (␠, SYMBOL FOR SPACE), which uses a different graphic form for the same purpose. Keyboard-related symbols include U+2424 (␤, SYMBOL FOR NEWLINE), a downward arrow with a left hook indicating a line break or carriage return, and U+2425 (␥, SYMBOL FOR DELETE FORM TWO), a hooked arrow representing an undoable delete operation, both standardized in ISO/IEC 9995-7 for use on physical and virtual keyboards to denote function keys. Legacy symbols address historical erase and substitute functions from early computing standards. U+2426 (␦, ) originates from ISO 2047, providing a visual for the in scenarios. Similarly, U+2427 (␧, SYMBOL FOR DELETE SQUARE CHECKER BOARD FORM) and U+2428 (␨, SYMBOL FOR DELETE RECTANGULAR CHECKER BOARD FORM) depict patterned blocks used in older systems for erase-to-end-of-line or full-line deletion, reflecting era-specific behaviors. U+2429 (␩, SYMBOL FOR DELETE MEDIUM SHADE FORM) extends this legacy with a shaded block variant for delete operations, though it sees limited modern adoption. The remainder of the supplementary range, from U+242A to U+243F, consists of 22 unassigned code points, reserved for potential future allocation but currently without defined characters or aliases. No deprecated uses or alternative mappings are documented in this portion of the block.
Code PointGlyphNameOrigin/Usage
U+2422BLANK SYMBOLVisible blank/space indicator.
U+2423OPEN BOXVisible space indicator; distinct from U+2420.
U+2424SYMBOL FOR NEWLINEKeyboard symbol for line break.
U+2425SYMBOL FOR DELETE FORM TWOUndoable delete; from ISO 9995-7.
U+2426SYMBOL FOR SUBSTITUTE FORM TWOSubstitute control; from ISO 2047.
U+2427SYMBOL FOR DELETE SQUARE CHECKER BOARD FORMHistorical erase function.
U+2428SYMBOL FOR DELETE RECTANGULAR CHECKER BOARD FORMHistorical erase function.
U+2429SYMBOL FOR DELETE MEDIUM SHADE FORMLegacy delete variant.
U+242A–U+243FUnassignedReserved; no characters defined.

History

Origins in ISO Standards

The origins of Control Pictures trace back to the need for standardized graphical representations of non-printing control characters in early computing and data transmission systems. In the 1960s and 1970s, the development of the American Standard Code for Information Interchange (ASCII) highlighted the challenges of visualizing control functions like carriage return and line feed on terminals and character generators, where invisible codes could lead to errors in debugging and operation. These needs built upon earlier telegraph systems, such as the invented by in 1874, which used procedural signs to manage transmission shifts between letters and figures, influencing the design of control sequences in subsequent codes. The foundational standard emerged with ISO 2047:1975, titled "Information processing—Graphical representations for the control characters of the 7-bit coded character set," which specified two modes of symbolic depictions for the 33 control characters in columns 0 and 1 of the ISO 7-bit coded character set (ISO/IEC 646). This standard targeted applications in information interchange, particularly for character generators in terminals and printers, where symbols for controls like (depicted as an empty box) and DELETE (shown as a filled box) allowed operators to identify and troubleshoot non-printable elements without disrupting text flow. By providing consistent, block-like icons, ISO 2047 addressed the limitations of earlier ad-hoc representations, ensuring compatibility across international systems. Related standards extended these principles to input devices and equipment interfaces. ISO 9995-7:2002, part of the keyboard layouts series, defines symbols for function keys associated with control operations, such as an undoable delete represented by a curved over a struck-out character, to standardize keycap engravings and reduce user confusion in text processing. Similarly, ISO 7000:2019 compiles graphical symbols for use on equipment, including icons for control functions like power on/off and , which parallel the symbolic approach of Control Pictures by prioritizing intuitive, non-verbal indicators for operational safety and efficiency. These standards collectively laid the groundwork for visualizing abstract controls, later influencing their derivative adoption into as a dedicated block for legacy compatibility.

Development in Unicode

The Control Pictures block was initially included in Unicode version 1.0.0, released in October 1991, as the "Pictures for Control Codes" with 37 assigned characters in the range U+2400–U+243F, providing graphic representations for C0 control codes to aid in and visualization. These symbols originated from the ISO 2047 standard for depicting control functions in information processing systems. The block name was updated to "Control Pictures" in Unicode 2.0, released in July 1996. In Unicode 3.0, released in September 1999, the block received two additional characters—U+2425 SYMBOL FOR DELETE FORM TWO and U+2426 SYMBOL FOR SUBSTITUTE FORM TWO—increasing the total to 39 assigned code points. In Unicode 16.0, released in September 2024, three further characters were added—U+2427 SYMBOL FOR DELETE SQUARE CHECKER BOARD FORM, U+2428 SYMBOL FOR DELETE RECTANGULAR CHECKER BOARD FORM, and U+2429 SYMBOL FOR DELETE MEDIUM SHADE FORM—increasing the total to 42 assigned code points. The block has exhibited stability since Unicode 16.0, with no further assignments, errata, or deprecations recorded up to and including Unicode 17.0, released in September 2025. Its positioning in the early Basic Multilingual Plane, immediately following the Miscellaneous Technical block and in proximity to the Latin-1 Supplement (U+0080–U+00FF), facilitated compatibility with legacy 8-bit encodings that incorporated similar control and symbol sets for text processing.

Usage

In Text Processing and Debugging

Control Pictures find practical application in hex editors and debuggers, where they provide a visual representation of otherwise invisible control characters during binary file analysis. For instance, in tools like HexEd.it, users can configure the text view to replace control characters with their corresponding Unicode symbols, such as displaying ␀ for the null character (NUL) or ␍ for the carriage return (CR), rather than generic dots or escape sequences; this enhances readability when inspecting raw data structures. Similarly, font support for the Control Pictures block enables utilities like hexdump to render these symbols in console outputs when processing files containing control codes, aiding developers in identifying non-printable bytes without relying solely on hexadecimal dumps. In analyzers, Control Pictures are employed to symbolize control characters within logs and traces, facilitating of low-level protocols. This approach aligns with early proposals for extensions, which emphasized compatibility with line monitors and analyzers by providing graphic depictions of C0 controls, such as ␅ for enquiry (ENQ) in serial logs, to clarify protocol handshakes and error conditions without altering the underlying byte values. Logging systems in programming environments occasionally leverage for enhanced clarity in representing control sequences during . While standard functions like Python's repr() typically output escape notations (e.g., \r for ), custom log formatters or libraries can substitute these with symbols from the block to make presence immediately apparent in output streams, improving traceability in applications handling or mixed-text . This selective helps developers distinguish control flows in s from printable content, particularly in scenarios involving systems or .

In User Interfaces and Keyboards

Control Pictures are utilized in user interfaces to visually denote non-printing control characters, particularly on physical and in text-based editing environments. In layouts, these symbols appear on keycaps to standardize identification of keys across designs, as outlined in ISO/IEC 9995. For example, the open box symbol ␣ (U+2423) represents the space character on the Spacebar, facilitating clear recognition without relying on textual labels. This symbol, derived from the Control Pictures block, is explicitly mapped in ISO/IEC 9995-7 for engravings to promote consistency in global hardware manufacturing. Similarly, the symbol for ␍ (U+240D) from the Control Pictures block is associated with ASCII CR and may appear in technical contexts, though ISO/IEC 9995-7 primarily specifies the ⏎ (U+23CE) from the block for the to illustrate the line-termination function. Terminal emulators like and support rendering of Control Pictures to visualize control inputs during text editing, allowing users to insert these symbols for explicit display of otherwise invisible characters. In , Unicode-compliant fonts enable the depiction of symbols such as ␣ (U+2423) to mark spaces or ␍ (U+240D) to indicate carriage returns, useful for precise cursor positioning and input verification in command-line sessions. , with its encoding and advanced handling, similarly displays these glyphs, supporting features like inline text for scripts or configurations. In accessibility tools, Control Pictures can serve as substitutive icons for control characters, with screen readers compatible with potentially conveying information about text layout through general symbol handling. This integration ensures that interactive systems remain navigable, with tools like on macOS extending support for symbol pronunciation in user interfaces.

Technical Details

Unicode Properties

The characters in the Control Pictures block (U+2400–U+243F) are assigned the block name "Control Pictures" in the Character Database. All assigned characters share the general category So (Symbol, Other), classifying them as non-letter, non-number symbols that are printable and participate in bidirectional algorithms as neutral elements without inherent directionality. Their bidirectional class is uniformly ON (Other Neutral), treating them as directionally neutral in text layout and providing no support for right-to-left rendering or embedding. Decomposition mappings are absent for all characters, indicating no or equivalents under forms. The age property reflects the of in which characters were first assigned: core symbols from U+2400 to U+2424 originate in 1.1, while later additions like U+2425 (Symbol for Delete Form Two) and U+2426 (Symbol for Substitute Form Two) were introduced in 3.0.

Font and Rendering Support

Support for rendering Control Pictures in fonts varies significantly across typeface families and platforms, with monospace fonts generally providing more consistent coverage of the core symbols compared to sans-serif alternatives. For instance, common monospace fonts such as Courier New include glyphs for essential Control Pictures like ␢ (U+2422 BLANK SYMBOL) and ␤ (U+2426 SYMBOL FOR SUBSTITUTE), facilitating their use in debugging and terminal displays. In contrast, sans-serif fonts like Arial exhibit notable gaps, often lacking representations for characters such as ␀ (U+2400 SYMBOL FOR NULL), resulting in fallback rendering or missing glyphs in approximately 12% of the block's 42 characters. Operating system-level rendering further highlights these inconsistencies. On Windows, near-complete support is available through the Segoe UI Symbol font, which covers 39 out of 42 characters in the U+2400–U+243F range, enabling reliable display in applications like and . macOS provides full rendering via the Apple Symbols font on modern versions, though older releases prior to macOS 10.15 exhibited partial support, relying on system fonts like that miss a few code points such as U+2423 and U+2424. In web environments, unsupported characters typically fallback to hexadecimal box representations (e.g., "2400") in browsers like and when CSS font stacks fail to locate compatible glyphs. Compatibility challenges arise particularly with legacy systems that adhere to ISO 2047 specifications for visualization, where glyphs may differ slightly from Unicode equivalents, leading to mismatched appearances in cross-platform text processing. Modern addresses this by employing CSS @font-face rules to load custom icon fonts, such as those derived from Symbola or , ensuring consistent rendering of Control Pictures as scalable vector icons without relying on system defaults. Developers are recommended to implement font stacks prioritizing high-coverage typefaces (e.g., "Segoe UI Symbol, Symbola, fallback-font") in CSS to mitigate display issues, while incorporating Unicode replacement strategies like the diagonal half-block (U+25E5) or simple box lettering for environments lacking full glyph support, thereby maintaining visual fidelity for unstyled representations.

References

  1. [1]
    [PDF] Control Pictures - The Unicode Standard, Version 17.0
    display of control codes. Graphic pictures for control codes. 2400 ␀ SYMBOL FOR NULL. 2401 ␁ SYMBOL FOR START OF HEADING. 2402 ␂ SYMBOL FOR START OF TEXT.
  2. [2]
    Unicode 17.0.0
    Sep 9, 2025 · This page summarizes the important changes for the Unicode Standard, Version 17.0.0. This version supersedes all previous versions of the Unicode Standard.
  3. [3]
    Unicode Block “Control Pictures” - Compart
    Name: Control Pictures. Plane: Basic Multilingual Plane. First Index: U+2400. Last Index: U+243F. Number of assigned Characters: 39.
  4. [4]
    [PDF] JTC1/SC2/WG2 N3412 L2/08-131 - Unicode
    Apr 1, 2008 · At 2400-243F the CONTROL PICTURES block provides glyphs for those characters so that they can be discussed and displayed in text. This ...
  5. [5]
    C1 Control Pictures Proposal from Sean Leonard on 2011 ... - Unicode
    Aug 13, 2011 · Without C1 Control Pictures, it is infeasible to provide graphical representations of the C1 Control Characters. This is an asymmetry compared ...
  6. [6]
    Control Pictures - Unicode
    The diagonal lettering glyphs are only exemplary; alternate representations may be, and often are used in the visible display of control codes.Missing: U+ C0 controls
  7. [7]
    ISO 2047:1975 - Information processing
    In stockIncludes 2 modes of graphical representations of the control characters of columns 0 and 1 of the ISO 7-bit coded character set for information interchange.
  8. [8]
    [PDF] Proposal to incorporate the symbols of ISO/IEC 9995-7 ... - Unicode
    Feb 28, 2017 · The symbols devised in ISO/IEC 9995-7:2009 and its recent Amendment 1 (2012) are to be used not only as engraving on physical keyboards, but in ...
  9. [9]
    [PDF] INTERNATIONAL STANDARD 2047.
    ISO 2047 specifies graphical representations of control characters for the 7-bit coded character set, including SPACE and DELETE, for display on devices.
  10. [10]
    [PDF] The Evolution of Character Codes, 1874-1968
    Émile Baudot's printing telegraph was the first widely adopted device to encode letters, numbers, and symbols as uniform-length binary sequences.
  11. [11]
    Émile Baudot Invents the Baudot Code, the First Means of Digital ...
    In 1870 French telegraph engineer Émile Baudot Offsite Link invented the Baudot code, a character set predating EDCDIC Offsite Link and ASCII.Missing: origins | Show results with:origins
  12. [12]
    Unicode 1.0
    Jul 15, 2015 · It was published prior to the publication of ISO/IEC 10646-1:1993. Volume 1 corresponds to Unicode Version 1.0.0, published in October, 1991.
  13. [13]
    Feature Overview - HexEd.it
    Decide yourself of you want to see control characters as dot (normal hex editor behaviour), or as Unicode Control Pictures. Or if you want to use the HexII ...
  14. [14]
    Feature Request: Add the Control Pictures Unicode block · Issue #219
    Dec 17, 2019 · I think you'll have an artistic and practical decision to make with those, balancing your font visual identity, readability, and familiarity.
  15. [15]
    Serial monitor window - Logic 2 Software - Saleae
    Dec 18, 2019 · The tiny text you can't quite read are the Unicode control pictures for characters like null. tabs, line feeds and carriage returns are ...
  16. [16]
    [PDF] L2/98-355 - Unicode
    Nov 3, 1998 · A set of 256 hex byte-value picture characters is proposed for compatibility with existing terminals, line monitors, and protocol analyzers; for ...
  17. [17]
    how to visualize control characters - java - Stack Overflow
    May 12, 2016 · The 3rd idea should be true, you can replace the charaters with unicode control pictures using a proper font.Debugging of image processing code - c++ - Stack OverflowAre Unicode Control Characters still in use? - Stack OverflowMore results from stackoverflow.comMissing: educational | Show results with:educational
  18. [18]
    [PDF] 1. Introduction 1.1 Introduction of the symbols from ISO/IEC 9995-7 ...
    Jun 12, 2018 · The symbols devised in ISO/IEC 9995-7:2009 and its recent Amendment 1 (2012) are to be used not only as engraving on physical keyboards, but in ...<|control11|><|separator|>
  19. [19]
    ISO/IEC 9995-7 symbols for keyboard key top engravings
    The standard symbols for keyboard key top engravings. Key, HTML (for inside <kbd> or similar), Notes. ⎋ Escape. &#x238b;&nbsp;Escape. ⇥ Tab.
  20. [20]
    ctlseqs(ms) - invisible-island.net
    XTerm decodes control sequences using a state machine. It handles errors in decoding i.e., unexpected characters, by resetting to the initial (ground) state.
  21. [21]
    Documentation - iTerm2 - macOS Terminal Replacement
    This chapter describes features of iTerm2 that go beyond basic usage and are not generally found in other terminal emulators.Missing: pictures | Show results with:pictures
  22. [22]
    Proprietary Escape Codes - Documentation - iTerm2
    iTerm2 supports several non-standard escape codes. These may not work properly in tmux or screen, and may have unknown effects on other terminal emulators.Missing: pictures | Show results with:pictures
  23. [23]
    Screen Readers: A Guide to Punctuation and Symbols | Deque
    Jan 20, 2014 · Part 1 of this series focuses on the way screen readers read (or don't read) punctuation and typographic symbols.Missing: pictures | Show results with:pictures
  24. [24]
    Braille Patterns - Wikipedia
    The Unicode character property of braille characters is set to "So" (Symbol, other) rather than to "Lo" (Letter, other). The ISO 15924 script code for ...Missing: control | Show results with:control
  25. [25]
    How screen readers read special characters: an update - Eleven Ways
    Mar 17, 2023 · Screen readers interpret what is on the screen. They can read most text easily and accurately, but how do they handle special punctuation and characters?
  26. [26]
    None
    Below is a merged response that consolidates all the information from the provided segments into a single, comprehensive summary. Given the repetitive nature of the data across segments and the focus on UnicodeData entries for U+2400 to U+243F, I will use a dense table format in CSV style to present the extracted entries, followed by a detailed summary of common properties and useful URLs. Where data is missing or inconsistent across segments, I will prioritize the most complete and authoritative representations (e.g., those with full entries up to U+243F) and note any discrepancies or absences.
  27. [27]
    None
    Summary of each segment:
  28. [28]
    Control Pictures – Test for Unicode support in Web browsers
    Test your Web browser and fonts for the ability to display the Unicode Control Pictures range of characters. Part of Alan Wood's Unicode Resources ... Unicode 3.0 ...
  29. [29]
    Font Support for Unicode Block 'Control Pictures' - FileFormat.Info
    Font Support for Unicode Block 'Control Pictures'. Summary. This is a list of fonts that support characters in the Control Pictures Unicode block. Detail ...
  30. [30]
    Better font for Control Pictures? - Meta Stack Overflow
    Jul 10, 2019 · There is a set of thirty-nine Unicode characters used for representing otherwise non-visible characters, U+2400 to U+2426. However, on Stack ...
  31. [31]
    Using Fonts for Icons... - CSS-Tricks
    Jan 2, 2014 · Using fonts for icons is a great way to achieve scalability. The only limitation being colour (and possible compatibility with dinosaur browsers).