// chilichip colours for the console. Generated by tokens/build.py from tokens/tokens.json. Do not edit.
#pragma once

#include <cstdint>

namespace chilichip {

struct Rgb {
  std::uint8_t r, g, b;
  // The colour as the display stores it (RGB565).
  constexpr std::uint16_t rgb565() const {
    return static_cast<std::uint16_t>((r >> 3) << 11 | (g >> 2) << 5 | b >> 3);
  }
};

namespace color {
inline constexpr Rgb chili{0xff, 0x30, 0x30};
inline constexpr Rgb chili_shade{0xe4, 0x20, 0x20};
inline constexpr Rgb leaf{0x2e, 0xac, 0x00};
inline constexpr Rgb chili_deep{0x4c, 0x07, 0x10};
inline constexpr Rgb chili_ink{0xc8, 0x16, 0x16};
inline constexpr Rgb leaf_bright{0x6f, 0xe3, 0x3a};
inline constexpr Rgb leaf_ink{0x1e, 0x73, 0x00};
inline constexpr Rgb amber{0xff, 0xb3, 0x47};
inline constexpr Rgb amber_ink{0x8a, 0x52, 0x00};
inline constexpr Rgb black{0x00, 0x00, 0x00};
inline constexpr Rgb ink_0{0x07, 0x08, 0x0c};
inline constexpr Rgb ink_1{0x0c, 0x0f, 0x14};
inline constexpr Rgb ink_2{0x10, 0x13, 0x1a};
inline constexpr Rgb ink_3{0x17, 0x1b, 0x24};
inline constexpr Rgb ink_4{0x26, 0x2c, 0x38};
inline constexpr Rgb slate{0x56, 0x5e, 0x6e};
inline constexpr Rgb mist{0x9a, 0xa3, 0xb5};
inline constexpr Rgb sand{0xd8, 0xd3, 0xc7};
inline constexpr Rgb bone{0xf4, 0xf1, 0xea};
inline constexpr Rgb paper{0xff, 0xff, 0xff};
inline constexpr Rgb on_chili{0x14, 0x04, 0x07};
}  // namespace color

// Roles on the console screen.
namespace console {
inline constexpr Rgb bg = color::black;
inline constexpr Rgb surface = color::ink_2;
inline constexpr Rgb line = color::ink_4;
inline constexpr Rgb text = color::bone;
inline constexpr Rgb muted = color::mist;
inline constexpr Rgb accent = color::chili;
inline constexpr Rgb accent_shade = color::chili_shade;
inline constexpr Rgb on_accent = color::on_chili;
inline constexpr Rgb success = color::leaf;
inline constexpr Rgb warning = color::amber;
inline constexpr Rgb danger = color::chili;
}  // namespace console

}  // namespace chilichip
