Unified Font Object
This article, Unified Font Object, has recently been created via the Articles for creation process. Please check to see if the reviewer has accidentally left this template after accepting the draft and take appropriate action as necessary.
Reviewer tools: Inform author |
Filename extension |
.ufo, .ufoz |
---|---|
Developed by | Tal Leming, Just van Rossum, Erik van Blokland, Ben Kiel, Frederik Berlaen |
Initial release | UFO 1 |
Latest release | UFO 3 |
Type of format | macOS Package, XML, Property List |
Free format? | Yes |
Website | http://unifiedfontobject.org |
The Unified Font Object (UFO) is an XML-based source file format for digital fonts. It was created by Tal Leming, Just van Rossum and Erik van Blokland[1]. Contributors to the format also include Ben Kiel and Frederik Berlaen[1]. UFO is a "future proof" open format that is designed to be "application independent" and "human readable and human editable"[2].
History
The first UFO format ("UFO 1") was written by Tal Leming, Just van Rossum and Erik van Blokland in 2004[2], and presented to the public at the Robothon conference, held in The Hague in 2005. Since then there have been 2 revisions to the format, with version 4 ("UFO 4") in progress[2].
Technical Format
On macOS, the UFO appears as a package; a file system directory that presents as a single file. On Windows and other operating systems, it appears to be a file system directory containing Property List files and XML files.
Use in Programming
The UFO file format translates easily to object-based representation[3] in code. Popular libraries for accessing UFO data include the following:
Python Libraries
- RoboFab, the first python library written specifically to access UFO data, by Leming, van Rossum, van Blokland, Kiel and others[4], now defunct.
- FontParts, the successor to RoboFab, by Kiel, Leming, et al[5].
- FontTools, a library for accessing font data started by van Rossum, maintained by Behdad Esfahbod, Cosimo Lupo, et al[6]. Contains ufoLib, originally a separate library for reading and writing UFO files. It was merged into the library in on 18 October, 2018[7]
Libraries in Other Languages
- ufoJS (JavaScript), by Lasse Fister[8].
- Norad (Rust), by Nikolaus Waxweiler and Colin Rofls, et al[9].
- UFOKit (Swift), by David Schweinsberg[10].
Reception
The font editing program RoboFont uses UFO as its only source file format[11]. Other font editing programs, such as Glyphs[12], FontLab 7[13] and FontForge[14] can read and write the UFO format natively.
The UFO format is a popular choice among open source font projects, because the text-based format is compatible with version control systems like Git[15]. Open source font projects that have used UFO as their main format include Adobe's Source Sans Pro[16], Source Code Pro[17] and Source Serif Pro[18], and the IBM Plex superfamily[19]. Parts of the Noto fonts project are available in the UFO format[20].
A common criticism of the format is that its structure (of sometimes hundreds of files) does not work well with online file hosting services like Dropbox[21]. This criticism led to the creation of the "UFOZ" format, which compresses a UFO (version 3 and up) into a single ZIP archive and makes it easier to sync.
References
- ^ a b "Contributors". unifiedfontobject.org. Archived from the original on 2021-11-05. Retrieved 2021-11-05.
- ^ a b c "Overview". unifiedfontobject.org. Archived from the original on 2021-11-05. Retrieved 2021-11-05.
- ^ Beckmann, Tom (2019). The font engineering platform collaborative font creation in a self-supporting programming environment. Justus Hildebrand, Corinna Jaschek, Eva Krebs, Alexander Löser, Marcel Taeumel, Tobias Pape. Potsdam. p. 72. ISBN 978-3-86956-464-7. OCLC 1169672607.
{{cite book}}
: CS1 maint: location missing publisher (link) - ^ "Contributors to robotools/robofab". GitHub. Retrieved 2021-11-05.
- ^ "Contributors to robotools/fontParts". GitHub. Retrieved 2021-11-05.
- ^ "Contributors to fonttools/fonttools". GitHub. Retrieved 2021-11-05.
- ^ "merge ufoLib into fontTools.ufoLib by anthrotype · Pull Request #1335 · fonttools/fonttools". GitHub. Retrieved 2021-11-05.
- ^ "Contributors to graphicore/ufoJS". GitHub. Retrieved 2021-11-05.
- ^ "Contributors to linebender/norad". GitHub. Retrieved 2021-11-05.
- ^ "Contributors to dcsch/ufokit". GitHub. Retrieved 2021-11-05.
- ^ RoboFont. "Welcome to RoboFont!". robofont.com. Archived from the original on 2021-11-05. Retrieved 2021-11-05.
- ^ "Working with UFO | Glyphs". glyphsapp.com. Archived from the original on 2021-11-05. Retrieved 2021-11-05.
- ^ "Font Formats". help.fontlab.com. Archived from the original on 2021-11-05. Retrieved 2021-11-05.
- ^ "Technical Bulletin: UFO 3 Export". fontforge.org. Archived from the original on 2021-11-05. Retrieved 2021-11-05.
- ^ "LWN.net Weekly Edition for August 29, 2013 [LWN.net]". lwn.net. Archived from the original on 2021-11-05. Retrieved 2021-11-05.
- ^ "adobe-fonts/source-sans-pro". GitHub. Retrieved 2020-05-28.
- ^ adobe-fonts/source-code-pro, Adobe Fonts, 2020-05-28, retrieved 2020-05-28
- ^ "adobe-fonts/source-serif-pro". GitHub. Retrieved 2020-05-28.
- ^ IBM/plex, International Business Machines, 2020-05-28, retrieved 2020-05-28
- ^ Liputan6.com (2020-11-25). "Inisiatif Google Melestarikan Bahasa Terancam Punah Lewat Noto Font". liputan6.com (in Indonesian). Retrieved 2021-11-05.
{{cite web}}
: CS1 maint: numeric names: authors list (link) - ^ Simonson, Mark (2014-06-12). "I didn't quite realize until recently: .ufo + Dropbox kind of sucks". @marksimonson. Retrieved 2020-05-28.