starting a new project
navigation and layout
Major versions, new features, and bug fixes are all automatically published to
glyphrstudio.com/online - and
bigger changes are usually announced on
the blog. More versions can be found at the
GitHub Project Page.
- Importing compound shapes via SVG now works. Technically this was a bug where new paths started with
a relative 'move-to' command ('m'), and correct referencing to the previous path tag or compound path across a
path's 'end-path' command ('Z').
- A few updates ago there were improvements made to the default naming of Unicode Ranges and Unicode Characters.
This introduced a bug where unused Unicode code points were being shown even when the "Hide unassigned code points"
was enabled. This is now fixed, unused Unicode code points are now hidden with this setting enabled.
- Two new Global Actions added, for scaling all glyphs vertically and horizontally.
- Added a toggle checkbox at the bottom of the layers panel, enabling multi-select for layers.
- Reorganized the Project Settings page, and added an option to export decimal values to OTF
(By the way, this is very not recommended, but may be useful for some edge cases.)
- Navigating to different panels (like between layers panel and attributes panel) now maintains
the currently selected shapes, as opposed to clearing the selection every time.
- Bezier path points for creating a new Oval shape had one incorrect value.
The list of Unicode Ranges now splits large ranges apart into groups of (0x1000).
This is for performance reasons... ranges larger than this tend to lead the Glyph Chooser panel
to load very slowly. The blocks that were split apart are:
This change will have no effect on previously-saved projects and their ranges.
- CJK Unified Ideographs Extension A (U+3400 to U+4DBF)
- CJK Unified Ideographs (U+4E00 to U+9FFF)
- Hangul Syllables (U+AC00 to U+D7AF)
- Private Use Area (U+E000 to U+F8FF)
For characters that don't have specified names from Unicode, a better default is now shown,
which is a combination of the Unicode code point, plus the name of the Unicode block the
character is from.
The Panel title now handles long character names better - it cuts them off without awkward
wrapping, but also shows the whole name as a tooltip when you hover over it with your mouse.
Added a new "Check for duplicate kern pairs" functionality - for projects with many kern groups,
it can be easy to accidentally specify two values for a single kern pair. Run this test to double-check
that isn't the case.
Clicking the middle mouse wheel now pans the canvas. Also, pressing the space bar immediately pans
the canvas (without having to mouse-click as well).
Deleting a path point now automatically selects the next path point. Previously, after deletion everything
was de-selected, which makes it hard to rapidly delete many path points in a row.
For entering characters in a kern pair, handled the case where a code point above 0xFFFF is entered
(Code points above the BMP, like emojis, are not able to be worked with in Glyphr Studio v1).
Fixed bugs in the Edit Canvas when there were no Components, Kern pairs, or Ligatures to work on.
There have been a few reports of memory / crashing issues when many path points are deleted in a row.
This is an issue in Chrome and Edge (both Chromium browsers) but it does not seem to affect FireFox.
So if you need to delete a ton of path points, try FireFox while we find the root of the problem.
- Added note about recommended UPM sizes. From user feedback and testing, UPM sizes besides 1000 and powers of 2 (like 1024 and 2048) seem to cause issues in Windows.
- Updated links to new set of social media outlets (Mastodon, Reddit)
- Kern properties panel is now more robust, handles error cases for blank inputs. And doesn't crash!
- Fixed a small edge case bug for how project versions are checked and updated.
- Updated Analytics for the App and the Help site.
- Links to external sites are now all https
- Updated links since subdomains were removed from glyphrstudio.com
The Advance Width = NaN bug popped up again, and this time OpenType.js had an
update that addressed the issue. So, this version pulls in the latest version
of OpenType.js, which solves the Advance Width bug on import.
Fixed an SVG / Export issue where the Left Side Bearing was incorrectly being
either excluded, or included multiple times for linked component instances.
- Stopped an error from happening when a project only contains Ligatures.
Some OTF files when imported do not have Advance Width information present - this
is a bug with opentype.js returning NaN for advance width properties of glyphs.
Glyphr Studio defaults to "Auto calculate glyph width" in these cases, so you may not
notice it. The one place it will be very apparent is for the Space character, they appear
as having zero width when this happens.
Fixed a glyph dimensions calculation bug that was effecting Test Drive
(characters shown overlapping) and Export SVG (Errors causing export failure).
Bug Fixes (no kidding!)
Generating SVG for a glyph that contained Component Instances, fixed a bug where the position
of the Component Instance would (sometimes) not include the correct Left Side Bearing.
Fixed a handful of related bugs around deleting Components, Component Instances, and Ligatures...
and making sure all the linked and related glyphs knew about these changes and were, in turn,
Fixed an error in the Modegg example project.
Now support positive integers being separated / designated by '+' signs in path data.
Ignore namespaced attributes with ':' in the name to allow for importing SVG code snippets
that would otherwise throw 'prefix not bound to a namespace' errors.
- Fixed a bug where projects with Ligatures experienced an "Off by 1" or "Off by 2"
error, where character sequences were being replaced with the wrong Ligature.
- Disallowed the creation and exporting of Ligatures with source sequences of one character.
- Export Glyph SVG File - you can now save a .svg file that represents a single glyph.
Combined with drag-and-drop into another project, this allows you merge fonts by
moving characters from one project to another.
- Changed exported OTF shapes to be clockwise by default
- Fixed a bug where flat path points were hiding a handle when it was imported from a compound SVG shape
- Changed the non-breaking space glyph name from 'nobreakspace' to 'nbsp'
- Added soft hyphen U+00AD glyph to the list of exportable whitespace glyphs
- Updated the default font metadata to use canonical family names ("Regular" instead of "normal")
- New Previous / Next buttons below the Context Glyphs input box allow
you to quickly flip through glyphs.
- Mark overlapping path points - set a radius that highlights if two points
are very close together.
- SVG Import engine now supports the Glyph tag (for copy/pasting from SVG Fonts).
- Test Drive letter permutations - automatically add all Uppercase or Lowercase
letter permutations to the Test Drive preview area.
- Test Drive preview area now dynamically expands in height to the input content.
- Copy+Paste SVG straight to canvas bug is fixed.
- Lots of little keyboard handlers were broken at some point, now they're fixed.
- Toast messages work better when rapidly changing.
- Reverse Winding now keeps Path Point zero as the same point.
- Whitespace glyphs besides Space export with zero shapes.
- Notdef glyph scales to different capheights
- Default view for Kerning is auto-calculated, as opposed to static.
- Progressive Web App support - added app manifest information so that you can
"install" Glyphr Studio on your desktop machine.
- Better glyph names exported to SVG Fonts.
- For 'Highlight path points that contain non-integer values' project setting,
handles with decimal values are also drawn in red, as opposed to just the base point.
- OTF Character names are now exported as ASCII and conform to name standards.
- Fixed a bug involving exporting Ligatures along side default Ligatures that have
Unicode code points.
- Viewing glyphs that have no shapes as Context Glyphs now works.
- Fixed importing arc segments from SVG paths.
- The "Auto Fit" view algorithm now works better for edge cases.
- Shift + Rotate now snaps to one degree increments.
- Fixed the sluggishness / disconnect between the rotate handle and the actual glyph.
The rotation tool is now locked to cached glyph attributes, as opposed to relying on quick
deltas of mouse movement.
- Fixed a bug where flat points with only one visible handle were rotating improperly.
- Fixed the disappearing panels bug.
- Rotated component instances now save with the appropriate positive / negative angle attribute.
Old projects with rotated component instances will be upgraded, and will work as expected.
- Action to round x/y values for a Path Point, a Shape, or the whole Glyph.
- Project setting to highlight points that have decimal x/y values.
- Fixed a SVG import bug involving relative path commands across compound shapes.
- Performance improvement for large projects.
- Paste or Drag+Drop SVG straight onto the canvas - if your SVG is designed so it doesn't need to be scaled,
then you can copy the code and paste it directly to the edit canvas, or drag and drop an .svg file to import
- New Global Action - Advanced Diactritical Glyph generator. If you design glyphs in the Basic Latin and
Combining Diacritical Marks ranges, then this action will use them to generate the Latin Supplement and
Latin Extended A character ranges.
- The 'All Caps Font' Global Action is now extended to (optionally) cover the Latin Supplement, Extended A,
and Extended B glyph ranges.
- Snap to Grid / Snap to Guide. Thanks to GitHub user monolifed for contributing the feature!
- Updated the overall Glyph Names list to reflect the Unicode v.11 update that landed June 2018.
- Better default view for empty glyphs.
- Fixed a key binding so that the question mark glyph can be used as a Ligature, instead of summoning the
keyboard shortcuts dialog.
- Throw a warning if Monospace Global Action is set to zero as the width.
- Importing a custom range from the Open Projects page.
- Glyph Chooser panel now displays a selected range that was removed.
- Ligature and Component chooser panels now work.
- A huge Unicode Code Block range chooser - easily preview and add any Unicode code block to your project!
- Glyph Ranges now support custom range names.
- Glyph Ranges can now be edited.
- Font Exports and Imports now only export/import "active" glyph ranges... this may be more like a bug fix :-)
- It is now possible to disable the Basic Latin glyph range.
- Global Action: Re-size all glyphs - now has an additional option to update the Glyph Width (advance width) property.
- Ligatures for HTML comment strings now work, like <!--
- Ligatures 0x 0X u+ U+ now work - they previously were treated as invalid Unicode / Hex inputs, but they are valid 2 character ligatures.
- "Delete Glyph" action now available from the Glyph Chooser and Attribute panels.
- "Re-size Glyphs" is now available as a Global Action.
- "Convert Component Instances into Shapes" is another new Global Action, useful for flattening all shapes.
- More accurate naming for the entire Basic Multilingual Plane.
- Speed optimizations for OTF export.
- Exporting Ligatures now checks to see if there are any existing glyphs in the Unicode Private Use area, before writing Ligature information there.
- Fixed a bug around adding a glyph to another glyph as a component instance.
- Only showing multi-point advanced alignment actions when many points are selected.
- Ligatures export directly to OTF files!
- Ligatures that also have a single Unicode code point will be exported accordingly.
- A few small Ligature improvements around adding common ligatures, and displaying thumbnails.
- Fixed a bug around handling glyphs that use multiple Component Instances with the same Root Component.
- Correctly handle / draw side bearings equal to zero.
- Allow / disallow correct characters when exporting metadata to SVG Fonts.
- Fixed an export bug involving locked points and glyphs with left side bearings.
- Global Action - move all glyphs a certain number of Em Units in both X and/or Y directions.
- Fixed a History / Undo bug
- Added the Overshoot property control to Font Settings page
- Fixed a Component Instance copy+paste bug
- Rotating hierarchical Component Instances now works
- Better error message for SVG Import
- Fixed an Export SVG Font bug
- Global Actions - a set of actions that can be applied to many or all glyphs at once.
We have 3 to begin with, let us know if you have ideas for any others, they are easy
- Auto Zoom - a much improved algorithm for fitting the current Context Glyphs to your screen
- Shift + Nudge - holding down the shift key while using the arrow keys to nudge shapes and points
will now move 10 Em Units instead of one
- New Project - menu item and keyboard shortcut to launch a new Glyphr Studio project
- Fixed importing winding information for paths
- Limit length of Font Family Name string, which causes OTF errors
- Cleaned up some typos and global variables
- Better "total failure" page error message
- Major Kern tool performance updates - tested at 700 kern pairs
- Dueling sliders now work for Guide Transparency in the Context Glyphs dropdown
- Test drive now uses 100% of the height of the preview area
- Kern text white background now disappears when Transparency = 100%
- Context Glyphs - type a few glyphs to show before and/or after the glyph
you are currently editing on the edit canvas. Easily navigate to any of
those displayed glyphs by clicking on that glyphs name on the Edit Canvas.
- Notes on the Ligature and Kerning pages describing how to export to OTF
font files via SVG Fonts.
- Better slider controls for transparency settings (grids and guides) around
the whole tool.
- Contribute link now works in the Desktop client.
- Show a toast notification when Undo-ing spans many glyphs, and requires
navigating to a different glyph.
- Test Drive re-factored, including some very small updates.
- When inserting a new Component Instance, or using the 'Get Shapes' command to
paste all the shapes from one glyph to another, there are new options to also
copy Glyph Attributes like Width and Side Bearings. This is very useful if you
use these copy commands for diacritical marks, where the new glyph should have
both the shapes and the glyph dimensions of the root glyph.
- Little notation on the splash screen and on the About page that indicates if
Glyphr Studio has been updated in the past week.
- Removed glyphs 0x0080 through 0x009F from the chooser panel. In Unicode,
these are printing control glyphs that have no visual associated with them.
But, browsers tend to replace these with ANSI glyphs, so the glyph chooser was
erroneously showing previews, causing confusion.
- Fixed a bug where 'Bulk transform shapes' also transformed shapes in other glyphs.
- Added support for SVG number notation, where numbers like '220.127.116.11' are interpreted
as '123.45, 0.67, 0.89'.
- Fixed a bug to only export SVG glyphs if that glyph has a valid hexadecimal key value.
- Fixed a bug where you weren't able to set a shape's x/y coordinate to zero.
- Fixed a bug on Mac where releasing the command key did not exit multi-select mode.
(Releasing the key should work, but if not, clicking either the Arrow or Pen tool
again will now forcefully exit multi-select mode)
- Glyph Range in the Chooser panel is remembered when the panel is switched.
- Fixed a bug where editing shape width/height via Attributes Panel was not honoring Lock Aspect Ratio.
- Added a missing glyph to the default CJK character range
- Fixed a bug where custom range glyphs were not being displayed after import
- Extra checks to make sure font export doesn't fail (advance width must be non zero, descent must be negative).
- Fixed SVG Import polygon tag bug
- Importing SVG Fonts, and better path data parsing.
- Keyboard shortcuts now support Mac Command key
- Handling importing shapes with zero path points
- Handling exporting shapes with zero path points
- Fixed the 'Email the Glyphr Studio Team' link for Mac
- Importing OTF / TTF font files - "Unrecognized path command" error
- Glyph Action: combine all glyph shapes
- Export Option: set the maximum number of shapes per glyph to combine
- Handling extra whitespace while importing SVG polylines / polygons
- Deleting the last point in a path
- Importing metadata from TTF font files
- Updating the Edit History panel on Undo
- Updated tool tips for path point alignment features.
- Advanced Path Point and Handle alignment actions.
- Creating new paths in empty glyphs.
- Align Shapes - multi select two or more shapes or component instances, and you can align them Top/Middle/Bottom or Left/Center/Right.
- Import SVG - Arc To commands (A or a) fail gracefully by moving to the end point.
- Importing fonts only resulting in rectangles
- Import SVG - chained bezier curve notation: relative/absolute quadratic, relative/absolute cubic
- Import SVG - relative quadratic bezier curves
- Hamburger Menu, you know, to be more 'app like'
- Import SVG - relative bezier curve
- Import SVG - chained rect/oval/circle notation
- Backend navigation stability improvements
- Better handling for null/undefined values
- Exporting fonts with zero descender or ascender values
- Improved stability of importing Glyphr Studio Project Files
- Undo-ing caused points to be not selectable
- Not loading custom guide lines from project file
- Importing SVG scale and move error
- Displaying glyphs in the Chooser Panel that contain Component Instances
- Improved Combine Shapes algorithm - removing path that overlap the shape
- New toast pattern for transient messages
- Export option to flatten and combine whole glyphs
- Overlapping kern glyphs are shown using opacity
- Improved Combine Shapes algorithm
- Chooser panel in dual screen mode
- Toast appears in the edit window in dual screen mode
- Toast notifications - replaced some modal dialog messages
- Flatten Glyphs option in Test Drive - boolean combine all shapes in all displayed glyphs
- Combine Shapes edge case - points overlap another shapes edge
- Version checking new projects on import
- Combine two selected shapes
- Updated OpenType.js to v0.6.0
- OTF Font export
- Better support for finding path winding
- New layout and icons for actions
- Viewing glyph ranges between Import SVG and other pages
- Updating the name of a shape
- Point remaining selected when another shape is selected from the layers panel
- Editing custom glyph width from the attributes panel
- Handle thrashing bug
- Optimizing how path maxes are calculated
- Finding winding for paths with two points
- New Path point selection bug
- Rotate tool shows negative angles for small counter-clockwise rotations
- Multi-select path points canvas bug
- Rotation handle added to the Shape Edit tool.
- Updating a shape's position or size via the Attributes Panel
- Angle value for Handles in the Attributes Panel
- Performance enhancements for the Glyph Chooser panel.
- Saving a Glyphr Studio Project file
- Side bearings settings not being saved
- Properties causing errors in exported SVG Fonts
- Importing Beta 4 projects
- Exporting OTF files for FireFox
- Import SVG shapes with either zero height or width
- Better handling for deleting Components and Ligatures
- Open Projects page has better tabs
- Exporting OTF files with non-numeric identifiers
- Deleting the last shape in a glyph error
- Importing a v1.01 project
- Multi-select for Shapes. Use Ctrl + Mouse Click to select a set of shapes, and apply any action or edit to the set.
- OpenType.js can now export OTF fonts with UPM over 1000
- Export OTF file for FireFox
- Keyboard Shortcut ctrl+e exports an Open Type font file
- Keyboard Shortcut ctrl+g exports a SVG font file
- Export OTF uses AGLFN short glyph names
- Export bug where changes were not reflected unless the font name changed
- Import bug for whitespace glyphs
- Editing metadata that contain quotes
- Exporting fonts with UPM greater than 1000 now works
- Importing and exporting copyright and license info
- Changed all external links to use target="_blank"
- Unable to navigate away from pages with zero Components / Ligatures / Kern Pairs
- Better default selected tool
- Import and Export Font Files
- Help & Documentation site
- SVG Font import / export
- Adding points to a path
- New tool cursors
- New 'Add Point to Path' pen tool
- Canvas drawing performance
- Import / Export SVG Fonts
- Send shapes from one glyph to another
- Two-screen mode for all edit pages
- Streamlined attributes panel
- Custom Guides and Guides Panel
- Import SVG outlines
- Full Unicode support
- Two-screen mode
- Keyboard shortcuts
- Shape and path point nudging with the arrow keys
- History Panel shows undo-able actions
- Shapes can have their aspect ratio locked
- Convert between Shapes and Linked Shapes
- Bulk-transform all shapes in a Character
- Updated license to GPL 3.0
- Digits 0-9 appear in the Character Panel
- Scrolling issue between the Canvas and Panel areas
- Error while loading a project
- Linked Shapes
- Test Drive
- Save Glyphr Studio Project file
- Export TTX / FontTools .xml file
- Code base re-write, new JSON based project structure
- Start using GitHub for code repository / versioning
- UI aesthetics overhaul
- Improved vector editing tools
- Help page