Skip to content

align monospaceWidth with defaultWidth? #1879

Closed
@Fil

Description

@Fil

Our estimates for string lengths (default or monospace) are in an arbitrary unit, with a meaning close to “% of font size".

If we measure the actual width of a string rendered as MONOSPACE text (say with a font-size of 11px), we get a (constant) width of ~6.6 pixels per character. This is estimated by monospaceWidth to a value of 100. The ratio between a string's estimated width in arbitrary unit and measured width in pixels is then equal to 100/6.6 = 15.15.

For strings rendered as DEFAULT text, the ratio has a bit more variability, but it oscillates between 9.2 and 10.2, so around 9.6. This means that we can't compare the (estimated) widths of monospace with default text.

A more systematic approach would be to adjust the default value of 100 to something like 63, so that the two estimates match. This would be a slightly breaking change, but it would feel more consistent going forward. (We could then use monospaceWidth as is in #1722, instead of having to rescale it.)

https://observablehq.com/@observablehq/monospacewidth-vs-defaultwidth

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestquestionFurther information is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions