I've written a kernel with a small userspace, and currently I'm in the process of writing a window manager (from scratch). I made a library for basic drawing, ported freetype2
for text rendering and the windowing/input system/basic components work fine.
Buttons and other basic stuff are not very hard, but text components have a lot more requirements - they need to be fast, allow text selection (view-model/model?) and other stuff, and should be extendable in the sense of allowing a program to add whatever funky stuff it needs (like, maybe emoticons) into the text.
Where can I find out about best-practices when implementing good-performing/extendable text components?