Question
Can today's design be expressed in the new API, without forking the renderer?
The claim behind "make it customizable" is that a design is a stylesheet, not a code path. The wedge-ring design (option 5c in the design canvas — see #263) replaces today's Kurtenbach-style rendering, but if the new API cannot express what is being replaced, the API is not configurable — it just has different hardcoded values.
Option 1a in the same canvas is today's design, faithfully rebuilt from menu.css: fixed 120×20 plates with ellipsis, connectors running from the centre, no ring. Take the knob inventory and try to reach it.
The interesting failures, expected in advance:
- The connectors start at the centre today, and at the ring in the wedge-ring design. One knob, or two code paths?
- Today's design has no ring at all. Is "no ring" a value — a zero-width band, a transparent fill — or an absence the renderer must branch on?
- Today's design has a fixed plate width with ellipsis; the wedge ring has a
min-width and hugs the text. One knob, or a mode?
- Today's label radius is static; the wedge ring's is solved. If the solver cannot be turned off, today's placement is not reachable.
Note the tension with #8, which #276 decides: the API must be able to express fixed-width-with-ellipsis so that today's design stays reachable, even though #8 says that sizing must not be what ships. "Expressible" and "default" are different claims, and this ticket only tests the first.
The output is a verdict, not a compromise: either the inventory covers today's design, or it names precisely which knobs are missing and what they cost. A branch in the renderer is an acceptable answer if it is a deliberate one.
Question
Can today's design be expressed in the new API, without forking the renderer?
The claim behind "make it customizable" is that a design is a stylesheet, not a code path. The wedge-ring design (option
5cin the design canvas — see #263) replaces today's Kurtenbach-style rendering, but if the new API cannot express what is being replaced, the API is not configurable — it just has different hardcoded values.Option
1ain the same canvas is today's design, faithfully rebuilt frommenu.css: fixed 120×20 plates with ellipsis, connectors running from the centre, no ring. Take the knob inventory and try to reach it.The interesting failures, expected in advance:
min-widthand hugs the text. One knob, or a mode?Note the tension with #8, which #276 decides: the API must be able to express fixed-width-with-ellipsis so that today's design stays reachable, even though #8 says that sizing must not be what ships. "Expressible" and "default" are different claims, and this ticket only tests the first.
The output is a verdict, not a compromise: either the inventory covers today's design, or it names precisely which knobs are missing and what they cost. A branch in the renderer is an acceptable answer if it is a deliberate one.