In one line: a proposal to move TUI borders from "glyphs that occupy a whole cell" to "an attribute drawn on the cell's edges, handled like a background color." Ratatui maintainer Josh McKinney (joshka) published a blog post and a draft spec with a Ghostty patch on 2026-11-13, and HN (402 points / 182 comments), Lobsters, and Ghostty Discussion #14324 are now arguing over whether it's good design or yet another extension turning terminals into browsers.

Why this, why now

The problem

Every one of these follows from borders being text (joshka's framing):

  1. Space: on a 16" laptop with a readable font, the terminal is roughly 200×50. Columns are mostly fine; rows aren't. A couple of levels of nested panels can spend 6–8 of those 50 rows on nothing but lines.
  2. No line between two occupied cells: you can't underline a text field right under its text or outline a button without adding padding.
  3. Rounded-corner color artifacts: a corner glyph like ╭ has one background color, so when the panel's background differs from what's around it you get a little square of the wrong color in each corner. Line weight and position are whatever the font decides.
  4. Copy/paste junk: select text inside a box and you get the │ too.
  5. Breakage in CJK setups (from an HN comment): box drawing U+2500–257F and the block elements are East Asian Ambiguous in UAX #11, so in a terminal configured to render ambiguous characters as double width, every line glyph takes two cells and the whole frame lands in the wrong place.

What's needed is both: drawing a line must not change the layout, and on existing terminals and multiplexers (tmux, etc.) the app must be able to fall back safely to ordinary box-drawing characters.

How it works

1. Borders are a cell attribute, applied by a "pen" just like background color