Technical Documentation: IBM/plex
ℹ️ Provenance: Multi-Tier Ingestion · CodeWiki Reference
Overview (README.md)
IBM Plex® typeface
Meet the IBM Plex® typeface, our corporate typeface family. It’s global, it’s versatile and it’s distinctly IBM.
We designed the IBM Plex typeface carefully to meet our needs as a global tech company and express who we are as IBMers. It took two years and a lot of work to get here, but today, we have a signature typeface we’re proud of and excited to share with the world. Discover more about our development of the IBM Plex typeface.
The IBM Plex typeface is an open-source project available for download and various uses following the Open Font License (OFL). The IBM Plex family comes in Sans, Serif, Mono, and Sans Condensed, all with Roman and true italics. Plex has been designed to work well in user interface (UI) environments and other mediums. This project provides all source files and multiple formats to support most typographical situations. Currently, IBM Plex Sans supports extended Latin, Arabic, Chinese (Traditional), Cyrillic, Devanagari, Greek, Hebrew, Japanese, Korean, and Thai.
Additionally, we have introduced IBM Plex® Math. This highly anticipated release includes over 5,000 new glyphs, covering a wide range of mathematical symbols such as alphanumeric, double-struck, Fraktur, operators, script, icons, arrows, Greek letters, phonetics, technical and geometric shapes — making it one of the most complete math fonts available today. IBM Plex Math provides a fresh and comprehensive alternative to STIX and Microsoft’s Cambria. Its compatibility with IBM Plex Serif Regular makes it an ideal choice for IBM researchers and mathematicians.
Thanks for trying the IBM Plex typeface! We hope you like it.
Add the IBM Plex typeface to your device
Please download the latest zip files from our releases page for installation.
IBM Plex typeface packages
| Package | NPM |
|---|---|
| IBM Plex Math | @ibm/plex-math |
| IBM Plex Mono | @ibm/plex-mono |
| IBM Plex Sans | @ibm/plex-sans |
| IBM Plex Sans Arabic | @ibm/plex-sans-arabic |
| IBM Plex Sans Condensed | @ibm/plex-sans-condensed |
| IBM Plex Sans Devanagari | @ibm/plex-sans-devanagari |
| IBM Plex Sans Hebrew | @ibm/plex-sans-hebrew |
| IBM Plex Sans Japanese | @ibm/plex-sans-jp |
| IBM Plex Sans Korean | @ibm/plex-sans-kr |
| IBM Plex Sans Chinese TC | @ibm/plex-sans-tc |
| IBM Plex Sans Chinese SC | @ibm/plex-sans-sc |
| IBM Plex Sans Thai | @ibm/plex-sans-thai |
| IBM Plex Sans Thai Looped | @ibm/plex-sans-thai-looped |
| IBM Plex Serif | @ibm/plex-serif |
Release (`docs/release.md`)
Release
To release a new version of plex, the following steps can be taken:
Setup
- Clone and open the plex repo folder in finder
- Create a new release branch with the version to be released
release/v6.x.x - Ensure you're using the correct version of node by running
nvm use - Run
yarnto install - Run
yarn buildto build
Gather new files
- Download the new/updated source files from box and open in a second finder window
- Unzip the new source files
- Observe the file structure. The structure within box does not always map 1:1 to the structure of the repository.
Copy/replace files
- Open two finder windows and drag and drop or copy and paste the new versions into the repo folder structure.
- When presented with the prompt to skip, stop, or replace - choose "Replace" and check "Apply to All"
- Repeat the previous steps one by one for each family - sans, serif, mono, etc.
- Double check the changeset with
git status. Make sure there are no unintended changes. - Ensure families are separate and contain only the intended files.
IBMPlexSans-*source files should only be within theIBM-Plex-Sansfolder, for instance.- If in doubt, or you see unexpected file changes, reach out to Bold Monday.
Test
- Run
yarn test - Use the firefox dev tools to inspect and ensure the proper font families are being used on the test site.
- Do any additional testing required to validate the changes
Create release PR
- Commit and push changes
- Make a PR titled "Release v6.x.x"
Release
Once the PR has been approved and merged, you can follow these steps to release:
- Switch branch to
master, pull down latestgit pull - Run
git logthe most recent commit should be the commit for your changes just merged in. - Run
prepareto clean and build files - Run
yarn build:zipto build zip files - Run
npm version <version>- Replace
<version>with the intended semver bump depending on the type of release you want to publish(major, minor, patch). In most cases the release will benpm version minorornpm version patch.
- Replace
- Run
npm publish- This can take a while as it's uploading the large amount of source files.
- Once finished, make sure the release is present at https://www.npmjs.com/package/@ibm/plex
- Run
git push --tags - Make a new release on GitHub for the new tag that was created for the release.
- Copy over changelog from the box folder
- This file contains the entire changelog since the initial release, so remove everything except the most recent change(s) included in this release.
- Check the box to open a discussion for this release
- In Finder, within the
/zipdirectory, select all the.zipfiles. Drag them from Finder to the GitHub release page to upload the assets to the release. These files are large and the upload will take some time. - Save/publish the GitHub release
Close related issues
Oftentimes the changelog will contain a link to an issue as reference for a particular change. Each issue needs a comment posted.
Open all related issues in different tabs, then for each tab repeat this process:
- Scroll to the bottom and post the following comment
- Replace
v6.x.xwith the current release in both the link text and the url. - Replace the
###in the release discussion url with the discussion issue number
- Replace
Hey there! [v6.x.x](https://github.com/IBM/plex/releases/tag/v6.x.x) was just released that references this issue.
Comment here or join the [release discussion](https://github.com/IBM/plex/discussions/###) to provide feedback or voice concerns. Thanks!- Close the issue if it's not already closed. If the issue is not complete, it can be reopened.
--- METRICS ---
- Files Extracted: 2
- Estimated Token Budget: ~1936 tokens
- Canonical Reference: https://codewiki.google/github.com/IBM/plex