Groto is an OpenType font family based on Roboto, subsetted to some 1160+ glyphs covering the Latin alphabet. Compared with Roboto, it includes a wider range of widths.
Groto is an open-source OpenType font family that significantly expands upon the design of the popular Roboto font. It offers a much wider range of widths and includes some redesigned glyphs, most notably the “l”, to enhance its versatility and readability.
Important Note: All fonts in the Groto family are currently experimental and unfinished. They are provided for testing and evaluation purposes and are not yet recommended for production use. The designs and font files are subject to change.
The Groto font family can be installed in several ways depending on your needs:
The easiest way to use Groto on your desktop is to install the pre-built OpenType (OTF) or TrueType (TTF) fonts:
You can preview the entire family using these PDF documents:
Groto web fonts are available in WOFF, WOFF2, EOT, SVG, and TTF formats. You can find them in the WebFonts/
directory. Please note that the web fonts in this directory are an older version of the family.
@font-face
rules to define the font family, style, weight, and source URL for each font variation you intend to use.Example @font-face
rule:
@font-face {
font-family: 'Groto';
src: url('path/to/your/webfonts/Groto-5No400Rg.woff2') format('woff2'), /* Modern Browsers */
url('path/to/your/webfonts/Groto-5No400Rg.woff') format('woff'); /* Older Browsers */
font-weight: 400; /* Regular */
font-style: normal;
}
body {
font-family: 'Groto', sans-serif;
}
If you plan to modify Groto or contribute to its development:
git clone https://github.com/twardoch/groto-fonts-apache2.git
.glyphs
files located in the Sources/
directory.Groto is primarily a font family, so its “usage” refers to how it’s employed in design and development projects, or how its source files are managed.
Once installed (see Installation), Groto can be selected and used in any application that allows font choice, such as:
There isn’t a direct Command Line Interface (CLI) tool for using the Groto fonts in the traditional sense of a software utility. Fonts are utilized by applications.
However, the project includes a Python helper script, make-instancemap.py
, which is used in the font development process. This script is not a standalone build tool but rather generates configuration data for the Glyphs font editor.
python Sources/make-instancemap.py
(Note: This script is written for Python 2. Ensure you have a Python 2 environment to run it.)
Groto.txt
(or similar, based on italics settings in the script, though currently it’s set to produce Groto.txt
) in the directory where it’s run. This file contains a textual representation of the font instances.Groto.txt
is intended to be copied and pasted into the “Instances” pane of the Font Info window within the Glyphs application.As a font family, Groto isn’t a software library that you would import and call functions from in, for example, Python or JavaScript.
“Programmatic usage” in the context of fonts typically means:
.heading {
font-family: 'Groto', sans-serif;
font-weight: 700; /* Bold */
/* Assuming 'Groto' with bold weight is defined via @font-face or installed */
}
This section describes the technical aspects of the Groto font family, its structure, and how it’s built.
Groto is designed as a large family with a wide array of weights and widths. The naming convention and structure are systematically generated.
make-instancemap.py
script with names like “100 Th”, “200 ExLt”, “300 Lt”, “400 Rg”, “500 Md”, “600 SmBd”, “700 Bd”, “800 ExBd”, “900 Blk”.make-instancemap.py
with names like “1 UlCd” (Ultra Condensed), “2 ExCd” (Extra Condensed), “3 Cd” (Condensed), “4 SmCd” (SemiCondensed), “5 No” (Normal), “6 SmWd” (Semi Expanded), “7 Wd” (Expanded), “8 ExWd” (Extra Expanded), “9 UlWd” (Ultra Expanded).Sources/Groto.txt
file (which is generated by make-instancemap.py
).The Extra/GrotoUI/
folder contains Groto UI fonts. These are special versions of Groto optimized for user interface design, particularly for use at tiny screen sizes. They are available in three widths:
.vfb
source files, samples, and various compiled formats).The development of Groto relies on the Glyphs font editor and a helper Python script.
.glyphs
files located in the Sources/v1/
and Sources/v2/
directories (e.g., GrotoVF-01.glyphs
to GrotoVF-13.glyphs
). These files are edited using the Glyphs application.
make-instancemap.py
):
Sources/make-instancemap.py
is used to programmatically generate the definitions for all 81 static instances of the Groto family.Groto.txt
in the root directory when run from there) formatted for direct pasting into the Glyphs application’s “Font Info > Instances” section.make-instancemap.py
(i.e., the content of Groto.txt
) must be manually copied and pasted into the instance definitions panel within the relevant .glyphs
source file in the Glyphs app..glyphs
file, the final font files (OTF, TTF, and potentially web fonts if configured) are exported directly from the Glyphs application. The exact export settings within Glyphs determine the format and characteristics of the outputted fonts.The repository is organized as follows:
Fonts/
: Contains the installable static fonts in OTF and TTF formats.
Groto-OTF/
: OpenType Format fonts.Groto-TTF/
: TrueType Format fonts.WebFonts/
: Contains web-ready versions of the fonts (older version).
web-otf/
: OTF-based web fonts (WOFF, WOFF2, EOT, SVG, TTF).web-ttf/
: TTF-based web fonts (WOFF, WOFF2, EOT, SVG, TTF).demo/
: A web specimen page.Sources/
: Contains the source files and development tools.
v1/
, v2/
: Directories containing .glyphs
source files.make-instancemap.py
: Python script to generate instance definitions.Groto.txt
: Example output of make-instancemap.py
, defining instances.Extra/GrotoUI/
: Contains the Groto UI fonts, optimized for small screen sizes.
samples/
: Image samples of Groto UI.src/
: Source files for Groto UI (e.g., .vfb
which are FontLab Studio files).ttf/
, ttfah/
, web-ttf/
: Various compiled formats of Groto UI.Media/
: Contains PDF documents showcasing the font family.
Groto-Overview.pdf
Groto-Specimen.pdf
Groto-GlyphSet.pdf
LICENSE
: The Apache 2.0 License file.README.md
: This file..gitignore
: Specifies intentionally untracked files for Git._config.yml
: Jekyll configuration for the GitHub Pages site.Contributions to the Groto font family are welcome! As an open-source project, community involvement can help improve and expand Groto. Given the experimental nature of the font, feedback, bug reports, and design suggestions are particularly valuable.
.glyphs
files are the primary source.Sources/make-instancemap.py
script accordingly. Please note this is a Python 2 script.groto-fonts-apache2
repository on GitHub.feature/add-cyrillic
or fix/kerning-issue
)..glyphs
files in the Sources/
directory.Sources/make-instancemap.py
.python Sources/make-instancemap.py
to regenerate the Groto.txt
instance definition file (or ensure your changes to the script correctly produce the desired output).Groto.txt
(or equivalent) are applied to the instances in the relevant .glyphs
file.master
branch of the main twardoch/groto-fonts-apache2
repository. Provide a detailed description of your changes in the pull request.The original README mentioned: “The variable OpenType font Gotho VF will be prepared later.”
Assuming “Gotho” was a typo for “Groto”, development of a Groto Variable Font (VF) is a potential future direction. The .glyphs
filenames in Sources/
(e.g., GrotoVF-01.glyphs
) also suggest that variable font development might have been an initial goal. Contributions towards this would likely be valuable.
Groto is licensed under the Apache License Version 2.0. A copy of the license is included in this repository. By contributing to Groto, you agree that your contributions will be licensed under the same terms.
Copyright © 2017 by Adam Twardoch and the original authors of Roboto. The Groto font family is based on the Roboto font, which is licensed under the Apache License, Version 2.0.