Font viewport | MkFont

#
Font viewport

Navigate & search through Unicode slots.

> ##
> Bound the the Content explorer

> The contents of the viewport is determined by the items selected within the Content explorer.
> Actions & search are applied within the limits of the selected range. Note that some ranges represent all glyphs within your font, or even all known Unicode points, so be careful!

##
Header

The header is rather straightfoward : the name displayed is the one of the range currently displayed; as well as it’s type and number of glyphs it covers.
If the type is a named Unicode range, the first tag will show the start & end address of the block in hexadecimal form. For example, Basic Latin goes from U+0020 to U+007F. (control characters are omitted) The second tag shows how many glyphs are contained within the viewport.

###
Actions

The Font Viewport has a few available actions, displayed on the bottom right of the header.
By default, these actions are applied to the active selection of glyph within the viewport.

Modifier | Action
--- | ---
Create glyphs
| Create empty glyphs in Unicode slots that have no glyph yet. Does not overwrite existing ones.
+ | Same as above, applied to the entire viewport content.
Text references
| Copy the unicode characters to the clipboard, with each value separated by a newline character : `\n`. (see note)
+ | Same as above, applied to the entire viewport content.
| Copy the unicode hex values to the clipboard, with each value separated by a newline character : `\n`. (see note)
+ | Same as above, applied to the entire viewport content.
Third parties
| Create & execute a JSX script that will prompt Adobe© Illustrator to create a new document with artboard set-up for each selected glyph, properly named in order to be exported easily. (see Third parties)
+ | Same as above, applied to the entire viewport content.
Deletion
| Delete selected glyphs.
+ | Same as above, applied to the entire viewport content.

##
Search

The search feature is rather simple in its form, yet quite powerful. It’s important to note that the search results are constrained by the currently selected range. Hence, if you want your search to be as broad as it can possibly be, select the All Unicode range.
The search needs to be enabled to produce results.

> Search is inclusive, not exclusive. That means that the more terms you search for, the more results you’ll get – not the other way around.

> If you want to search through all known & referenced Unicode, select the All Unicodes range within the Content explorer.

###
Search terms

Search | Result
--- | ---
unique character : `a`, `0` | Will find any glyph that match in either its character representation, or isolated in its name. In the case of ligatures, each linked character is looked at individually.
space-separated individual characters : `a b c`, `0 a N` | Same as unique search, but will combine the results
Chain of characters : `circle`, `letter`, `lowercase` | These are compared against a glyph identity, as shown at the very top of the Glyph inspector.
Any combination | Will work.

###
Search modifier

Modifier | Result
--- | ---
Relatives | Search will include all related glyphs to the initial result of your search. Relatives search looks outside the current viewport range.
Exists | Limit the results to glyphs that actually exists within your font. If the search terms are empty but this is enabled, the search will show all existing glyphs within the current viewport range.

##
Selection

Selecting slots within the viewport is done using the mouse.
Expected selection behaviors apply :

- Holding toggle a slot selection state. i.e, if it’s selected it will be unselected, and vice-versa.
- Holding while selecting another slot will select all the slot between the last selected slot and the new one.
- will select everything available within the range.
- See Shortcuts for more infos.

> Note that selection isn’t lost if you click on an already selected item : this is by design. Instead, it will “bump” that item so it becomes the first item in the active selection. This is especially useful when editing large selection, as it allow you to change which glyphs are previewed in the Glyph inspector.

##
Slots

###
States

State | Meaning
--- | ---
| Glyph does not exists; default character preview is shown.
| Glyph exists and is empty.
| Glyph exists and has a path.
| Glyph exists and has a path, but is flagged to be ignored during export.
| Glyph exists and has a path, but it is out-of-bounds. As such, it won’t be exported.

> An out-of-bound glyph highlights a path that is so big in size it can’t fit : glyph path must be kept within `-16,000` & `16,000` after transformation. Some reasons your glyph is OoB :

> - Your EM value in the font metrics is too large
> - There’s an artifact somewhere in the path, maybe a single point lost somewhere, far away.
> - You’re using manual scale that makes things go boom.
> - You’re using “no scaling” with an asset that is gigantic (who makes 64k pt SVGs ?!).

###
Quick menu

When a slot is selected, a quick menu shows up on hover, with the following options (depending on whether the glyph exists or not) :

Icon | Action
--- | ---
| Creates an empty glyph.
| Removes the glyph.
| Copy that glyph unicode hex value to the clipboard, in the form `U+0000`. This is mostly useful to quickly find a glyph hex ID for automation & artboards

##
Notes

###
Display options

Display options are located at the bottom of the viewport.
For now there is only one preview option : preview size. Yes, that small lonely slider!

###
Note on unicode lists

Copying glyph characters is especially useful when you need to generate narrowed down atlases for your font, or simply need a quick wait to generate a parse-able list of glyphs.

The action will generate this kind of results :

    A
    B
    C
    D

The action will generate this kind of results :

    U+0041
    U+0042
    U+0043
    U+0044

##
Shortcuts

Shortcut | Action
--- | ---
| Copy a single glyph to the clipboard*
| Paste the content of the clipboard in the selected glyph slot. Supports pasting directly from Adobe© Illustrator!
| Copy the selected glyphs & their unicode position in memory*
| Paste the glyphs copied using to their matching unicode slots. This is especially (if not only) useful to paste glyphs from an .mkfont to another in batch, while retaining their unicode positions.
| Applies the transform of the glyph stored in memory using to all glyphs in the active selection. Does not affect the path.
| Deletes the selected glyphs

> Note on copy/pasting glyphs : glyphs are copied into SVG format, with transform information embedded as SVG attributes. This means that you can safely use the clipboard’s content in any SVG-friendly app, and that casually pasting within MkFont will retain transform settings.