Mikko Mononen
mikkomononen.bsky.social
Mikko Mononen
@mikkomononen.bsky.social
Coder and woodworker. Author of Recast&Detour and NanoVG. Previously at Epic Games, Unity, Tinkercad, Crytek, demoscene.

https://github.com/memononen
Links... links are special.

Usually you pick the text style from the previous character, so that if you write something after a bold text, it will be bold.

Except links, where the style does not "bleed". It's ok to type in the middle, though.
November 13, 2025 at 9:17 PM
I have been working recently on input rules for the skribidi editor.

Stuff like:
- what happens when you press enter after a header
- automatically starting a list when you start a line with -,
- or stuff like keeping the tabs in taps when typing code (who uses spaces, anyways!)
October 29, 2025 at 11:35 AM
So nice to finally get to the actual rich text editing, not just the stuff that enables it. Still ways to go, but baby steps.

There's a lot of rich text editing tricks to discover, like that when you press enter after a header, you will automatically get body text style.
October 14, 2025 at 6:27 PM
I've been working on paragraph styling support for skribidi.

My goal is to support roughly markdown for the rich text rendering and editing.

I'm trying my best to not make things complicated. For example I really would like to avoid adding hierarchy to the text.
September 25, 2025 at 9:08 PM
For the past weeks I have been writing and refactoring things to get rich text editing to work in Scribidi. It's so close now.

There are always tons of small details, like changing the caret to preview the italic/oblique.
September 15, 2025 at 7:20 PM
I kinda wish the situation around char32_t was not such a mess. <looking at you macos and flipping a birdie>
September 11, 2025 at 6:35 PM
The hardest part about rich text editing so far has been trying to remember that you have to actually have bold, italic and bold+italic fonts loaded if you want to see them bold and italics.

Gladly harfbuzz has embolden and slant so that I can fake it.
August 25, 2025 at 7:41 PM
There's still heaps to do, but...
August 23, 2025 at 9:35 PM
I've been looking a nice representation of style spans for the Skribidi rich text editor.

Something that let's me store info: "from here to there text is bold".

It should also support combining such spans using add or remove a span. And I wanted it to be "not much more complex than bit vector".
August 21, 2025 at 6:43 PM
I've been working on things that will allow users of Skribidi to create hyperlink or button kind of interactions.

The biggest struggle is how to make things simple. I dont want to include an UI library in the text library (that would be another project). But it should not be too hard either.
August 19, 2025 at 7:36 PM
I have been working on inline objects for Skribidi. Things like icons and stuff that you want to embed in the text.

This merited another visit to the vertical text alignment rabbit hole. A lot of frustration and hopefully a solution.
August 1, 2025 at 7:20 PM
I have been working on text alignment, wrapping and overflow for Skribidi. It's been pretty hard to find a good reference since the CSS in that area does not feel very solid to me.

Ended up with some parts of CSS and some parts of Figma.
July 28, 2025 at 9:12 PM
Any caveas using symlinks on Windows?

Context: In the Skribidi project, I have a set of assets that the example needs (fonts, etc). Currently they are copied to the bin folder in windows, and symlink on other systems. I wonder if there's something with Windows symlinks that will say meh?
July 25, 2025 at 3:37 PM
Sum types have been in the lime light recently. Is there a lang where the user (of a library) can "append" to a sum type?
July 20, 2025 at 8:27 AM
The devil is in the details! In design, things are often made just a bit different so that they appear consistent and balanced.

en.m.wikipedia.org/wiki/Oversho...

en.m.wikipedia.org/wiki/Kerning

en.m.wikipedia.org/wiki/Optical...
July 15, 2025 at 6:58 AM
Implemented the actual underline patterns for Skribidi. A bit more plumbing that I hoped for, but not it's done.
July 1, 2025 at 5:37 PM
I have recently been working on how to represent text attributes (color, font, underline, etc) for Skribidi. It's coming together and managed to get underline working.
June 19, 2025 at 7:44 PM
Reposted by Mikko Mononen
I've added an appendix to my page on debug drawing text with lines with a contribution from @mikkomononen.bsky.social and his version of a non-monospaced font based on the Hershey Fonts Simplex characters:

theorangeduck.com/page/debug-d...
June 18, 2025 at 2:44 PM
One of the text input features I have been wanting to try out is input method editors (IME). Felt like 🪱🥫so I have been postponing it.

The IME itself is not part of Skribidi, it should be handled by the platform abstraction, but showing the IME composition is.
June 11, 2025 at 6:35 PM
Spent couple of hours trying to get the Skribidi example to run on the web. Tried to follow a couple of examples, but they just did not work, or I did not have something installed (e.g. emcmake). <sigh> Maybe one day I'll try that again.
June 9, 2025 at 5:20 PM
Reposted by Mikko Mononen
Emoji font rendering in papaya.io with @mikkomononen.bsky.social's github.com/memononen/Sk... library.

Next up: intermingling font and emoji rendering.
June 8, 2025 at 8:57 PM
Reposted by Mikko Mononen
If you are in a mood for helping you can update your Dear ImGui app to `dynamic_fonts` branch this week-end and write/share all your thoughts/feedback there:
github.com/ocornut/imgu...
If all goes well : merge to main soon, create a new unpolluted thread for collecting feedback.
June 6, 2025 at 4:29 PM
I just published the bidi text stuff I have been working the past months. It's called Skribidi (because all text and font related things need funny name for some reason).

github.com/memononen/Sk...
GitHub - memononen/Skribidi: Nimble bidirectional text stack for UIs
Nimble bidirectional text stack for UIs. Contribute to memononen/Skribidi development by creating an account on GitHub.
github.com
June 5, 2025 at 8:02 AM
What is the best practice for texture uploads these days? Thinking of atlas texture update API.

Can I do a bunch of small updates, or one big?

Last time I checked, the upload overhead was so big that one upload was better than many small.
June 4, 2025 at 12:12 PM
I'm almost done with the first version of my text library thing. The stuff left to do are api docs and allowing to exit the sample app (I have a feeling that some of the games I worked in the past had similar final showstopper too :)).
May 30, 2025 at 9:47 AM