67 lines
1.9 KiB
C++
67 lines
1.9 KiB
C++
#include "style.h"
|
|
#include "SDL3/SDL_stdinc.h"
|
|
#include "resources.h"
|
|
#include <clay/clay.h>
|
|
|
|
namespace cera {
|
|
Style themeDark{};
|
|
Style themeLight{};
|
|
Style *theme{&themeDark};
|
|
|
|
Clay_ElementDeclaration ListContainer(Clay_ElementDeclaration baseCfg) {
|
|
baseCfg.border = {
|
|
.color = theme->panelBorder,
|
|
.width = CLAY_BORDER_ALL(2)
|
|
};
|
|
baseCfg.cornerRadius = CLAY_CORNER_RADIUS(theme->defaultRadius);
|
|
return baseCfg;
|
|
}
|
|
|
|
Clay_ElementDeclaration PanelContainer(Clay_ElementDeclaration baseCfg) {
|
|
baseCfg.backgroundColor = theme->panelBackground;
|
|
baseCfg.border = {
|
|
.color = theme->panelBorder,
|
|
.width = CLAY_BORDER_OUTSIDE(2)
|
|
};
|
|
baseCfg.cornerRadius = CLAY_CORNER_RADIUS(theme->defaultRadius);
|
|
baseCfg.layout.padding = CLAY_PADDING_ALL(8);
|
|
return baseCfg;
|
|
}
|
|
|
|
Clay_ElementDeclaration LeftPanelContainer(Clay_ElementDeclaration baseCfg) {
|
|
baseCfg = PanelContainer(baseCfg);
|
|
baseCfg.border.width = { 0, 2, 2, 2, 0 };
|
|
baseCfg.cornerRadius = { 0, theme->defaultRadius, 0, theme->defaultRadius };
|
|
baseCfg.layout.sizing.height = CLAY_SIZING_GROW();
|
|
return baseCfg;
|
|
}
|
|
|
|
Clay_ElementDeclaration RightPanelContainer(Clay_ElementDeclaration baseCfg) {
|
|
baseCfg = PanelContainer(baseCfg);
|
|
baseCfg.border.width = { 2, 0, 2, 2, 0 };
|
|
baseCfg.cornerRadius = { theme->defaultRadius, 0, theme->defaultRadius, 0 };
|
|
baseCfg.layout.sizing.height = CLAY_SIZING_GROW();
|
|
return baseCfg;
|
|
}
|
|
|
|
Clay_ElementDeclaration Window() {
|
|
return {
|
|
.layout = {
|
|
.sizing = { CLAY_SIZING_GROW(), CLAY_SIZING_GROW() },
|
|
.padding = CLAY_PADDING_ALL(theme->windowPadding),
|
|
.childGap = 0,
|
|
.layoutDirection = CLAY_LEFT_TO_RIGHT
|
|
},
|
|
.backgroundColor = theme->windowColor
|
|
};
|
|
}
|
|
|
|
Clay_Color ToHoveredColor(Clay_Color color) {
|
|
float avg = (color.r + color.g + color.b) / 3.f;
|
|
color.r = SDL_clamp((color.r - avg) * 0.8f + avg - 30, 0., 1.);
|
|
color.g = SDL_clamp((color.g - avg) * 0.8f + avg - 30, 0., 1.);
|
|
color.b = SDL_clamp((color.b - avg) * 0.8f + avg - 30, 0., 1.);
|
|
return color;
|
|
}
|
|
}
|