Exciting news: Figuro GUI v0.16.1 now uses SDFY signed distance functions to generate UI elements and shadows. This allow shadows to be generated in essentially real-time!
This excites me because the performance of rendering shadows in most GUI frameworks is frustratingly slow even with hardware acceleration. Animating CSS shadows on the web can make webpages lag even on fast machines. Even Skia seems to struggle with react-native.
With SIMD on my machine generating a drop shadow with a large blur radius takes < 10ms. There's a lot of optimizations in 0.16.1 where each corner radius is generated only once and reused.
I've also been able to make OpenGL shaders that generate the GUI element on the fly on the GPU. That could significantly reduce GPU memory usage in the future since the texture atlas would only need to hold fonts and user images! It'll be a while before that can happen.
PS, there's some issues with older Nimble versions with SDFY libraries usage of the new feature flag. Update to Nimble 0.18.2 or try out Atlas.
Here's a Youtube video: https://www.youtube.com/watch?v=gBnUZftHOcg
I should add a background image so you can see it's a real shadow. ;)
It’s primarily internal improvements for making all Figuro UIs run faster and look better, especially with shadows.
Shadows in UIs can bring a lot of depth and usability. It helps separate out control elements from content, etc.
For examples of using shadows in your UIs see: https://supercharge.design/articles/how-to-create-beautiful-shadows-in-ui-design
However, shadows are normally very slow to render. So animating shadows or making them react dynamically is pretty limited without making the UIs run slowly or needing very fast hardware. With most UI toolkits that is.
That was a bummer to me. So I did this and it’s pretty awesome. Unfortunately I’m not talented in actually making good looking themes. Maybe if I get rich I can hire someone to make pretty themes for me. ;)
Here’s a good overview of how having hardware accelerated shadows, aka feathering, can be great: https://rive.app/blog/how-rive-reinvented-feathering-for-the-vectorian-era
Figuro will be able to do similar things now. Even more once I make GLSL shaders do the work.
As a side note, for the last part of the decade “flat design” themes in UIs largely got rid of shadows. Partly because of performance issues and partly for aesthetics. I’m glad they’re returning lately, though a bit overdone as well: https://daringfireball.net/linked/2025/06/03/sdw-physicality-new-age
Shadows in UIs can bring a lot of depth and usability.
Ahh, where are the days that buttons looked like buttons ;)
But you're right. In a lot of graphics work just a little shadows can give an element purpose and meaning.