Alright time to formally announce rcut, a completely new take on GUI frameworks. It will be part of the beta week this month, if you want to give it a early try.

Top left is the default theme I designed, the other three are generated simply by changing the default colors.

For example:

r_theme_default(ctx, &(r_draw_theme_options){ .background = r_rgba_u8(242, 239, 232, 255), .primary = r_rgba_u8(47, 125, 109, 255) });

This results in the green'ish theme on the bottom right.

Aside from a few vector icons nothing is embedded in the executable, all the UI themes are generated from code when the application is started. This allows changing every little thing about the theme from changing the basic colors to the shape, shadows, borders, etc. of every single element.

The second screenshot showcases making minor adjustments to a theme while keeping the other properties at their default value:

r_theme_default(ctx, &(r_draw_theme_options){ .background = r_rgba_u8(27, 35, 51, 255), .primary = r_rgba_u8(61, 139, 253, 255) });
r_theme_tweak(ctx, R_STYLE_BUTTON | R_VARIANT_BOLD);
r_theme_fill(ctx, r_rgba_u8(61, 209, 115, 255), r_rgba_u8(73, 171, 227, 255));
r_theme_label_color(ctx, 0xFFFFFFFF);
r_theme_build(ctx);
r_theme_build_states(ctx, R_STATE_HOVER | R_STATE_PRESSED);

&rcut