Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/jeff-hykin/xd-font

πŸ’Ύ βœ… A custom ligature font based on Iosevka, because Font Fira is for casuals
https://github.com/jeff-hykin/xd-font

Last synced: 6 days ago
JSON representation

πŸ’Ύ βœ… A custom ligature font based on Iosevka, because Font Fira is for casuals

Lists

README

        

# XD Font
## A variant of Iosevka

(Badges From Original Iosevka ➑️ [![Patreon](https://img.shields.io/badge/donate-patreon-red.svg)](https://www.patreon.com/user?u=5787198) [![Donate](https://img.shields.io/badge/donate-alipay-orange.svg)](http://7xpdnl.dl1.z0.glb.clouddn.com/T1v4huXnleXXXXXXXX.png) )

![code](https://user-images.githubusercontent.com/17692058/73235382-e5b29b00-4153-11ea-98ac-3f288ee41780.png)

![Ligations Sample](images/ligset-calt-1.png)

# How do I use it?

- [Download](https://github.com/jeff-hykin/xd-font/archive/refs/heads/master.zip) or clone this repo
- Font files are inside the `dist/` folder.
- There's TTFs, WOFF(2), and CSS
- Install the font based on where you want to use it!
- Mac
- [Instructions](http://support.apple.com/kb/HT2509)
- basically just open fontbook, drag and drop the ttf files, then restart the programs (or restart system to be safe)
- Windows
- [Instructions](https://www.technipages.com/windows-10-how-to-install-truetype-fonts)
- On Windows 10 1809 or newer the default font installation is per-user, and it may cause compatibility issues for some applications, mostly written in Java. To cope with this, right click and select "Install for all users" instead. [Ref.](https://youtrack.jetbrains.com/issue/JRE-1166?p=IDEA-200145)
- Linux
- Copy the TTF files to your fonts directory β†’ Run `sudo fc-cache`.

## How do I build it myself and customize it?

- Requirements setup is detailed inside `documentation/SETUP.md`!

To initialize a custom build, you need:

1. Create `private-build-plans.toml` file.

2. Add a build plan into `private-build-plans.toml`, following this format:

```toml
[buildPlans.iosevka-custom] # is your plan name
family = "Iosevka Custom" # Font menu family name
design = ["common styles"] # Common styles
upright = ["upright-only", "styles"] # Upright-only styles
italic = ["italic-only", "styles"] # Italic-only styles
oblique = ["oblique-only", "styles"] # Oblique-only styles

# Override default building weights
# When buildPlans..weights is absent
# All weights would built and mapped to default shape/CSS
[buildPlans.iosevka-custom.weights.regular]
shape = 400 # Weight for glyph shapes
menu = 400 # Weight for menu name
css = 400 # Weight for WebFont CSS

[buildPlans.iosevka-custom.weights.bold]
shape = 700
menu = 700
css = 700

# Override default building slant sets
# Format: = <"normal"|"italic"|"oblique">
# When this section is absent, all slants would be built.
[buildPlans.iosevka-custom.slants]
upright = "normal"
italic = "italic"
oblique = "oblique"
```

3. Run `npm run build -- contents::` and the built fonts would be avaliable in `dist/`. Aside from `contents::`, other options are:

1. `contents::` : TTF (Hinted and Unhinted), WOFF(2) and Webfont CSS;
2. `ttf::` : TTF;
3. `ttf-unhinted::` : Unhinted TTF only;
4. `woff::` : TTF and WOFF only;
5. `woff2::` : TTF and WOFF2 only;
- Note: Since version 2.2.0, we are using two colons (`::`) in the build target names.

The current available styles for `design`/`upright`/`italic`/`oblique` options are:

* Styles for general shape:
* `sans` : Sans serif (default).
* `slab` : Slab serif.
* Styles related to ligations and spacing:
- `term` : Disable ligations and exact monospace.
- The font built will not contain ligatures.
- All glyphs wider than one letter would be deleted.
- In case of your OS or editor cannot handle ligatures correctly, you can disable ligations with it.
- `termlig` : Similar to `term`, the font is exact monospace to make `fontconfig` happy, while ligations are still present.
- `no-ligation` : Disable ligation only.
- `no-cv-ss`Β : Prevent generation of `cv##`Β and `ss##` features.
- `type` : Make some symbols, like arrows (`β†’`) full-width.
* All registered `ss##` and `cv##` feature tags, including:
* `ss01`~`ss10` : Predefined stylistic sets based on other Monospace fonts.
* `cv01`~`cv53` : Standalone character variants.
* Styles for ligation sets, include:
* `ligset-haskell`: Default ligation set would be assigned to Haskell.
* `ligset-idris`: Default ligation set would be assigned to Idris.
* `ligset-coq`: Default ligation set would be assigned to Coq.
* `ligset-elm`: Default ligation set would be assigned to Elm.
* `ligset-ml`: Default ligation set would be assigned to ML.
* `ligset-fs`: Default ligation set would be assigned to F#.
* `ligset-fstar`: Default ligation set would be assigned to F\*.
* `ligset-swift`: Default ligation set would be assigned to Swift.
* `ligset-purescript`: Default ligation set would be assigned to PureScript.
* Styles for further customizing default (`calt`) ligation sets. When any of these styles present in your configuration, the `ligset-*` styles would be overridden.
* `calt-clear`: Clear the `calt` ligation set.
* `calt-center-ops`: Vertically align some of the operators (like `*`) to the center position it is before or after a "center" operator (like `+`);
* `calt-arrow`: Enable ligation set that forms arrows;
* `calt-arrow2`: Enable ligation for more arrows, like `>>=`;
* `calt-html-comment`: Enable ligation for `