Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Text rendering "megathread" #169

Open
janpaul123 opened this issue Mar 25, 2022 · 0 comments
Open

Text rendering "megathread" #169

janpaul123 opened this issue Mar 25, 2022 · 0 comments
Labels
enhancement New feature or request

Comments

@janpaul123
Copy link
Contributor

janpaul123 commented Mar 25, 2022

There's a lot to improve about text rendering! We won't get there all at once, and we should be careful and scoped in our incremental improvements. There are many types of applications that don't need sophisticated text rendering, and we should slowly expand from there.

That being said, let's get into it! These items should be split into separate tickets when they're getting closer to being done, and when we have done more research on them.

  • General font issues
    • No custom font support
    • Fonts are always included in bundle (unnecessary bloat)
      • Also no support for only including actually relevant glyphs
    • Only TrueType font support
      • Variable font support like Inter would be cool
  • Aesthetics & legibility issues
    • No hinting instructions (TrueType) support (fonts look ugly when small or off-grid)
      • No "stick to grid" / "grid positioning" support
    • No kerning support
    • No subpixel rendering (might become less relevant with higher res displays?)
    • Poor scaling between font sizes (scaling is a bit ugly and proper font sizes fill up the texture)
  • Multiline
    • No word break at particular positions / hyphenation
    • No "no breaking space" support
    • No multiline support outside of the layout system
  • Language support
    • Lots of glyphs are not supported
    • No text shaping
    • No right-to-left or bidirectional support
    • No combining of marks (accents etc)
    • Sequence replacement (ligatures, alternative fractions, etc)
  • Accessibility
    • No screen reader support
    • No dynamic font size / global zooming support (other than that built into the browser?)
  • 3d
    • No dynamic dilation (except some mipmapping)
    • No effects
    • Not many performance optimizations
  • Other features
    • No emoji
    • No alternate substitutions (small caps, historic variants etc)
    • No scientific notation
    • No markup (underline, strikethrough)
    • No switching between font types (bold, italic)
    • No text selection except in input fields

And I'm probably missing some! Please add to this list. :)

For some generally useful resources, see this Twitter thread. Esp the Slug manual is great to get a sense of the features we might want to support.

For some basic fixes, see #175. Combined with a debugger #174 this would help a lot with legibility.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant