tonsky / tonsky/FiraCode

Supplemental Arrows-B (U+2900-297F) glyphs exceed monospace cell width

Open
#1,677 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Clojure
Stars
82k
Forks
3.2k
PR merge metrics
No merged PRs in 30d

Description

Problem

Characters in the Supplemental Arrows-B range (U+2900-297F) render wider than a single monospace cell, breaking strict monospace alignment in terminals.

Example

The character (U+2964 RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN) renders at 15px width when the cell width is 11px (measured at 16px font size).

This causes the glyph to be clipped in terminal emulators that strictly enforce monospace cell boundaries.

Test Results

Measured actual pixel bounds (not advance width) using canvas rendering:

Character Codepoint Pixel Width Cell Width Ratio
U+2964 15px 11px 1.36
M U+004D 10px 11px 0.91
U+27F9 ~11px 11px ~1.00

Note: U+27F9 from Supplemental Arrows-A (U+27F0-27FF) fits correctly because that range was fixed in v6.0.

Reference

From CHANGELOG.md v6.0:

"Redrew U+27F0..U+27FF Supplemental Arrows-A to be strict monospace"

The same fix should be applied to Supplemental Arrows-B (U+2900-297F).

Environment

  • Font: FiraCode (also affects FiraCode Nerd Font Mono)
  • Tested with: FiraCodeNerdFontMono-Regular.ttf
  • Font size: 16px
  • Measurement method: Canvas getImageData() pixel scanning

Expected Behavior

All glyphs in monospace font should fit within a single cell width, consistent with how Supplemental Arrows-A was fixed in v6.0.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the v6.0 CHANGELOG entry for Supplemental Arrows-A and locating the corresponding glyph source or build entry. Compare that precedent with U+2900–U+297F, then verify the redraw by measuring actual pixel bounds at the reported font size. Done means the Supplemental Arrows-B glyphs fit within one monospace cell without clipping.

Written by the indexing model from the issue text.

Assessment

Domain
computer-graphics, design
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.