Git Product home page Git Product logo

girassol-display's Introduction

Girassol

Description

Girassol is an all-caps (plus smallcaps) display typeface inspired by the lettering on hand-painted street signs in and around Carcavelos, Portugal.

The primary characteristics that define Girassol include its condensed proportions, moderate contrast following the expansion model, a thorny, decorative serif construction that pierces the baseline and cap height, and playful flourishes like those on the R, J, K, Q, and figures that mimic the decoration possible in hand-painted signage.

The typeface is meant to evoke the identity and spirit of the place where I encountered the inspirational forms, while accounting for my own presence and experiences.


Type samples

Features

Features include lining numerals, fractions, discretionary ligatures, and alternates.

Default ligatures

  • TT
  • RR

Discretionary ligatures

  • DE
  • EA
  • LA
  • TE
  • TT

Titling

  • Words (up to 5 characters) set in lowercase/smallcaps between words set in caps vertically center

Alternates

  • J (+ a narrow J will automatically appear when J is set in the middle of words to create more harmonious spacing)
  • K
  • Q
  • dagger/daggerdbl
  • ampersand (a small ampersand will automatically appear when set among smallcaps)

License

Girassol is licensed under the SIL Open Font License v1.1

Changelog

New changes will be added to the start of this section.

3 November 2019 (Liam Spradlin) Girassol v0.03/v0.04

v0.04

  • Cleaned up feature code
  • Added alternate Q
  • Updated README image
  • Revised punctuation and diacritics
  • Filled out the rest of the math symbols

v0.03

  • Added new ligatures T/E and E/A
  • Organized features
  • Added a titling feature that elevates smallcap words set between cap words
  • Updated .notdef :)

2 November 2019 (Liam Spradlin) Girassol v0.02

  • Added OpenType features to support discretionary ligatures and alternates
  • Tweaked a few ligatures (see commit)

1 November 2019 (Liam Spradlin) Girassol v0.01

  • The very first push :)

girassol-display's People

Contributors

liamspradlin avatar lsmithbecker avatar yanone avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

girassol-display's Issues

fontbakery style name failure

Checking file is named canonically.

  • FAIL: Style name used in "/Girassol-Display.ttf" is not canonical. You should rebuild the font using any of the following style names: "Thin", "ExtraLight", "Light", "Regular", "Medium", "SemiBold", "Bold", "ExtraBold", "Black", "Thin Italic", "ExtraLight Italic", "Light Italic", "Italic", "Medium Italic", "SemiBold Italic", "Bold Italic", "ExtraBold Italic", "Black Italic". [code: bad-static-filename]

    Result: FAIL

Encountering this failure when I run fontbakery, but the Style name is set to "Regular" in the Font Info before the font is built.

Google Fonts QA report

Fontbakery report

Fontbakery version: 0.7.15

[8] Girassol-Regular.ttf
WARN: Checking OS/2 achVendID.
WARN: Stricter unitsPerEm criteria for Google Fonts.
--- Rationale ---

Even though the OpenType spec allows unitsPerEm to be any value between 16 and
16384, the Google Fonts project aims at a narrower set of reasonable values.

The spec suggests usage of powers of two in order to get some performance
improvements on legacy renderers, so those values are acceptable.

But value of 500 or 1000 are also acceptable, with the added benefit that it
makes upm math easier for designers, while the performance hit of not using a
power of two is most likely negligible nowadays.

Another acceptable value is 2000. Since TT outlines are all integers (no
floats), then instances in a VF suffer rounding compromises, and therefore a
1000 UPM is to small because it forces too many such compromises.

Therefore 2000 is a good 'new VF standard', because 2000 is a simple 2x
conversion from existing fonts drawn on a 1000 UPM, and anyone who knows what
10 units can do for 1000 UPM will know what 20 units does too.

Additionally, values above 2048 would result in filesize increases with not
much added benefit.


  • WARN Even though unitsPerEm (1000) in this font is reasonable. It is strongly advised to consider changing it to 2000, since it will likely improve the quality of Variable Fonts by avoiding excessive rounding of coordinates on interpolations. [code: legacy-value]
WARN: Check if each glyph has the recommended amount of contours.
--- Rationale ---

Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only be
constructured in a handful of ways. This means a glyph's contour count will
only differ slightly amongst different fonts, e.g a 'g' could either be 2 or 3
contours, depending on whether its double story or single story.

However, a quotedbl should have 2 contours, unless the font belongs to a
display family.

This check currently does not cover variable fonts because there's plenty of
alternative ways of constructing glyphs with multiple outlines for each feature
in a VarFont. The expected contour count data for this check is currently
optimized for the typical construction of glyphs in static fonts.


  • WARN This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

Glyph name: Q Contours detected: 3 Expected: 2
Glyph name: e Contours detected: 1 Expected: 2
Glyph name: g Contours detected: 1 Expected: 2 or 3
Glyph name: i Contours detected: 1 Expected: 2
Glyph name: j Contours detected: 1 Expected: 2
Glyph name: p Contours detected: 1 Expected: 2
Glyph name: q Contours detected: 3 Expected: 2
Glyph name: ae Contours detected: 2 Expected: 3
Glyph name: egrave Contours detected: 2 Expected: 3
Glyph name: eacute Contours detected: 2 Expected: 3
Glyph name: ecircumflex Contours detected: 2 Expected: 3
Glyph name: edieresis Contours detected: 3 Expected: 4
Glyph name: thorn Contours detected: 1 Expected: 2
Glyph name: emacron Contours detected: 2 Expected: 3
Glyph name: ebreve Contours detected: 2 Expected: 3
Glyph name: edotaccent Contours detected: 2 Expected: 3
Glyph name: eogonek Contours detected: 1 Expected: 2
Glyph name: ecaron Contours detected: 2 Expected: 3
Glyph name: gcircumflex Contours detected: 2 Expected: 3 or 4
Glyph name: gbreve Contours detected: 2 Expected: 3 or 4
Glyph name: gdotaccent Contours detected: 2 Expected: 3 or 4
Glyph name: gcommaaccent Contours detected: 2 Expected: 3 or 4
Glyph name: hbar Contours detected: 2 Expected: 1
Glyph name: iogonek Contours detected: 1 Expected: 2 or 3
Glyph name: oe Contours detected: 2 Expected: 3
Glyph name: Racute Contours detected: 2 Expected: 3
Glyph name: Rcommaaccent Contours detected: 2 Expected: 3
Glyph name: Rcaron Contours detected: 2 Expected: 3
Glyph name: aeacute Contours detected: 3 Expected: 4
Glyph name: etilde Contours detected: 2 Expected: 3
Glyph name: thorn Contours detected: 1 Expected: 2
Glyph name: eacute Contours detected: 2 Expected: 3
Glyph name: Q Contours detected: 3 Expected: 2
Glyph name: ebreve Contours detected: 2 Expected: 3
Glyph name: Rcaron Contours detected: 2 Expected: 3
Glyph name: p Contours detected: 1 Expected: 2
Glyph name: e Contours detected: 1 Expected: 2
Glyph name: q Contours detected: 3 Expected: 2
Glyph name: ae Contours detected: 2 Expected: 3
Glyph name: Racute Contours detected: 2 Expected: 3
Glyph name: j Contours detected: 1 Expected: 2
Glyph name: gcircumflex Contours detected: 2 Expected: 3 or 4
Glyph name: eogonek Contours detected: 1 Expected: 2
Glyph name: aeacute Contours detected: 3 Expected: 4
Glyph name: gbreve Contours detected: 2 Expected: 3 or 4
Glyph name: edotaccent Contours detected: 2 Expected: 3
Glyph name: g Contours detected: 1 Expected: 2 or 3
Glyph name: oe Contours detected: 2 Expected: 3
Glyph name: ecaron Contours detected: 2 Expected: 3
Glyph name: edieresis Contours detected: 3 Expected: 4
Glyph name: ecircumflex Contours detected: 2 Expected: 3
Glyph name: i Contours detected: 1 Expected: 2
Glyph name: emacron Contours detected: 2 Expected: 3
Glyph name: gdotaccent Contours detected: 2 Expected: 3 or 4
Glyph name: hbar Contours detected: 2 Expected: 1
Glyph name: egrave Contours detected: 2 Expected: 3
Glyph name: iogonek Contours detected: 1 Expected: 2 or 3 [code: contour-count]

WARN: Check name table: FULL_FONT_NAME entries.
  • com.google.fonts/check/name/fullfontname

  • WARN Entry [FULL_FONT_NAME(4):MACINTOSH(1)] on the "name" table: Got "Girassol" which lacks "Regular", but it is probably OK in this case. [code: lacks-regular]

  • WARN Entry [FULL_FONT_NAME(4):WINDOWS(3)] on the "name" table: Got "Girassol" which lacks "Regular", but it is probably OK in this case. [code: lacks-regular]

WARN: Are there caret positions declared for every ligature?
--- Rationale ---

All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.


  • WARN GDEF table is missing, but it is mandatory to declare it on fonts that provide ligature glyphs because the caret (text cursor) positioning for each ligature must be provided in this table. [code: GDEF-missing]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---

Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).


  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • R + R
    • T + T
    • r + r
    • t + t

    [code: lacks-kern-info]

WARN: Checking Vertical Metric Linegaps.
WARN: Check for points out of bounds.
  • com.google.fonts/check/points_out_of_bounds

  • WARN The following glyphs have coordinates which are out of bounds:

    • ('Adieresis', 140, 919)
    • ('Adieresis', 291, 919)
    • ('Cdotaccent', 225, 919)
    • ('Edieresis', 131, 919)
    • ('Edieresis', 282, 919)
    • ('Edotaccent', 220, 919)
    • ('Gdotaccent', 215, 919)
    • ('Idieresis', 47, 919)
    • ('Idieresis', 198, 919)
    • ('Idotaccent', 125, 919) and 79 more.

This happens a lot when points are not extremes, which is usually bad. However, fixing this alert by adding points on extremes may do more harm than good, especially with italics, calligraphic-script, handwriting, rounded and other fonts. So it is common to ignore this message. [code: points-out-of-bounds]


Summary

💔 ERROR 🔥 FAIL ⚠ WARN 💤 SKIP ℹ INFO 🍞 PASS 🔎 DEBUG
0 0 8 72 7 74 0
0% 0% 5% 45% 4% 46% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • INFO
  • PASS
  • DEBUG

Diff images: girassol_qa.zip

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.