Files

43 lines
1.7 KiB
C++

#pragma once
#include <JuceHeader.h>
namespace serum
{
// ===========================================================================
// Central dark theme + static SVG assets (embedded as strings so they need no
// binary-data build step; the same assets also ship under Source/Resources/).
// ===========================================================================
namespace theme
{
inline const juce::Colour bg { 0xff101117 };
inline const juce::Colour panel { 0xff1a1c24 };
inline const juce::Colour panelRaised { 0xff23262f };
inline const juce::Colour outline { 0xff2c2f39 };
inline const juce::Colour text { 0xffe8eaf0 };
inline const juce::Colour textDim { 0xff9095a2 };
inline const juce::Colour accent { 0xff4fc3f7 }; // cyan
inline const juce::Colour accent2 { 0xffff6e9c }; // pink
inline const juce::Colour amber { 0xffffb74d };
inline const juce::Colour green { 0xff7ce38b };
inline const juce::Colour raveGlow { 0xffff3d71 };
}
// SVG assets (logo + subtle background).
juce::String getLogoSvg();
juce::String getBackgroundSvg();
std::unique_ptr<juce::Drawable> createLogoDrawable();
std::unique_ptr<juce::Drawable> createBackgroundDrawable();
// Small value-formatting helpers used by the GUI controls.
juce::String formatPercent (float v); // 0..1 -> "42 %"
juce::String formatHz (float v); // 0..1 (cutoff) -> "1.2 kHz"
juce::String formatSeconds (float v); // 0..1 (env) -> "320 ms"
juce::String formatSemis (float v); // 0..1 -> "-12 st"
juce::String formatCents (float v); // 0..1 -> "+5 ct"
juce::String formatPan (float v); // 0..1 -> "L50"
juce::String formatInt (float v, int maxValue);
} // namespace serum