+/*
+ * Colour definitions for slide puzzle game.
+ * Copyright © 2022 Nick Bowler
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#ifndef RRACE_COLOUR_H_
+#define RRACE_COLOUR_H_
+
+enum { COLOUR_PRIMARY, COLOUR_DARK, COLOUR_LIGHT, COLOUR_MAX };
+
+#define COLOUR_X11_(r, g, b) "#"#r#g#b
+#define COLOUR_X11(c) COLOUR_X11_ c
+
+/* red */
+#define COLOUR0_PRIMARY_RGB_ (8d, 2e, 28)
+#define COLOUR0_LIGHT_RGB_ (a1, 48, 42)
+#define COLOUR0_DARK_RGB_ (6a, 1b, 17)
+
+#define COLOUR0_PRIMARY COLOUR_X11(COLOUR0_PRIMARY_RGB_)
+#define COLOUR0_LIGHT COLOUR_X11(COLOUR0_LIGHT_RGB_)
+#define COLOUR0_DARK COLOUR_X11(COLOUR0_DARK_RGB_)
+
+/* orange */
+#define COLOUR1_PRIMARY_RGB_ (b4, 6e, 28)
+#define COLOUR1_LIGHT_RGB_ (c7, 90, 4f)
+#define COLOUR1_DARK_RGB_ (92, 4a, 16)
+
+#define COLOUR1_PRIMARY COLOUR_X11(COLOUR1_PRIMARY_RGB_)
+#define COLOUR1_LIGHT COLOUR_X11(COLOUR1_LIGHT_RGB_)
+#define COLOUR1_DARK COLOUR_X11(COLOUR1_DARK_RGB_)
+
+/* yellow */
+#define COLOUR2_PRIMARY_RGB_ (d8, b7, 40)
+#define COLOUR2_LIGHT_RGB_ (e2, c6, 5d)
+#define COLOUR2_DARK_RGB_ (c5, 9f, 39)
+
+#define COLOUR2_PRIMARY COLOUR_X11(COLOUR2_PRIMARY_RGB_)
+#define COLOUR2_LIGHT COLOUR_X11(COLOUR2_LIGHT_RGB_)
+#define COLOUR2_DARK COLOUR_X11(COLOUR2_DARK_RGB_)
+
+/* green */
+#define COLOUR3_PRIMARY_RGB_ (28, 64, 28)
+#define COLOUR3_DARK_RGB_ (19, 47, 19)
+#define COLOUR3_LIGHT_RGB_ (4e, 87, 4e)
+
+#define COLOUR3_PRIMARY COLOUR_X11(COLOUR3_PRIMARY_RGB_)
+#define COLOUR3_LIGHT COLOUR_X11(COLOUR3_LIGHT_RGB_)
+#define COLOUR3_DARK COLOUR_X11(COLOUR3_DARK_RGB_)
+
+/* blue */
+#define COLOUR4_PRIMARY_RGB_ (00, 34, 71)
+#define COLOUR4_DARK_RGB_ (00, 1f, 4f)
+#define COLOUR4_LIGHT_RGB_ (00, 52, 8b)
+
+#define COLOUR4_PRIMARY COLOUR_X11(COLOUR4_PRIMARY_RGB_)
+#define COLOUR4_LIGHT COLOUR_X11(COLOUR4_LIGHT_RGB_)
+#define COLOUR4_DARK COLOUR_X11(COLOUR4_DARK_RGB_)
+
+/* white */
+#define COLOUR5_PRIMARY_RGB_ (dc, dc, dc)
+#define COLOUR5_LIGHT_RGB_ (ea, ea, ea)
+#define COLOUR5_DARK_RGB_ (c0, c0, c0)
+
+#define COLOUR5_PRIMARY COLOUR_X11(COLOUR5_PRIMARY_RGB_)
+#define COLOUR5_LIGHT COLOUR_X11(COLOUR5_LIGHT_RGB_)
+#define COLOUR5_DARK COLOUR_X11(COLOUR5_DARK_RGB_)
+
+#endif