Skip to content

The official Unified Font Object specification source files.

Notifications You must be signed in to change notification settings

unified-font-object/ufo-spec

Repository files navigation

The Unified Font Object (UFO) is a cross-platform, cross-application, human readable, future proof format for storing font data.

The specification is found at unifiedfontobject.org

The UFO Design Philosophy

  • The data must be human readable and human editable.
  • The data should be application independent.
  • Data duplication should be avoided unless absolutely necessary.

Building documentation locally

  1. Install ruby gems and bundler (how to)
  2. bundle install
  3. bundle exec jekyll serve
  4. Browse to localhost:4000

UFO Specification Process

  1. Recognize the problem. Open an issue and discuss:
  • Is the spec the right place to address this problem?
  • Is this a new idea?
  • Is this a fix for a broken thing?
  • Is this a missing thing?
  • How long has this been a problem?
  • How urgent is it?
  1. Determine scope.
  • Is this limited to a single user?
  • A single workflow?
  • A single tool?
  • A single font binary format?
  • Global?
  1. Draft a proposal.
  • Does the person writing the draft have expertise in the subject? If not, is there an expert who can advise?
  • Is there an open spec we can build on?
  • Is there something similar we can learn from?
  1. Evaluate the proposal.
  • Does it solve the problem?
  • Is it located at the appropriate scope?
  • Does it follow the UFO philosophy?
  • Does it change the meaning of data in existing UFOs?
  • How hard will it be to implement?
  • Is the language unambiguous?
  • Will it stand the test of time?
  1. Make a decision.
  • Does this go into the top of the spec?
  • Into a public lib/data key?
  • Into a private lib/data key for further research and development?
  • Remember, this is permanent, so are we really sure about all of this?
  1. Update the spec.
  • Language consistency.
  • Formatting consistency.
  • Submit a PR.

Meetings

Historically there are informal meetings about the specification around the Robothon conference (held every three years). On July 31, 2020, we had the first open virtual meeting, the notes of which are online.