# Parley

[github.com/linebender/parley](https://github.com/linebender/parley) · Apache-2.0 OR MIT

## For hotty-blitz

1 patch on `332c1c7`. Blitz lays out text with Parley, at the revision Blitz pins, which is our `base`. hotty-blitz draws HOTTY surfaces, often with a terminal's monospace font stack, and Parley chose a font for emoji in a way that drew them in monochrome there. We mod Parley rather than fork it so that the fix stays one change on the revision Blitz builds with, until Parley has its own.

### Emoji draw in colour whatever the font stack

> Upstream fit: **yes** · [patch 0001](https://github.com/neuroplastio/hotty-blitz/blob/079f6ae967aed32326797f8b7423d0f073aa4550/mods/parley/0001-parley-a-cluster-with-emoji-presentation-takes-a-col.patch)

**What it changes:** for a cluster with emoji presentation (an
Emoji_Presentation character, VS16, a keycap, a flag, a ZWJ sequence),
Parley queried the style's font stack, then the emoji generic family, and
took the first font that covered it. A text font with outlines for the
character, as DejaVu Sans has for the faces, or the `monospace` generic,
then drew it in monochrome. The cluster now takes the first font with
colour glyphs (`COLR`, `CBDT`, `sbix` or `SVG `) that covers it, from the
stack or the emoji family, and falls back to the old choice only when none
does. Fontique gets `QueryFont::has_color_glyphs`. Text presentation (VS15,
or a text-default character alone) is unchanged.

**Why we carry it:** HOTTY surfaces in a terminal often use its monospace
stack, and plx's dialogs showed emoji in monochrome.

**For upstream:** yes. Browsers and Ghostty choose colour fonts first for
emoji presentation, and upstream's `main` still appends the emoji family
last.

---

[neuroplast.io](https://neuroplast.io/) · [Modding](https://neuroplast.io/modding) · [github.com/neuroplastio](https://github.com/neuroplastio)
