Skip to content

Prove the current design is still expressible in the new API #270

Description

@QuentinRoy

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions