diff --git a/Makefile b/Makefile
index a0a28c0..f311932 100644
--- a/Makefile
+++ b/Makefile
@@ -6,7 +6,8 @@ MEDIA = \
$(wildcard media/flags/*) $(wildcard media/buttons/*) \
$(wildcard media/icons/*) $(wildcard media/bg/*) 8831.png 8831-quox.png \
$(wildcard rainbow-quox/front/*) $(wildcard rainbow-quox/back/*) \
- rainbow-quox/palette.svg
+ rainbow-quox/palette.svg rainbow-quox/bright-squares.png \
+ rainbow-quox/back.svg
SCRIPTS = $(patsubst %.ts,%.js,$(wildcard script/*.ts rainbow-quox/*.ts))
MISC = $(shell find .well-known -type f)
ALL = $(CSS) $(PAGES) $(MEDIA) $(SCRIPTS) $(MISC)
diff --git a/fonts/pragmatapro/pragmatapro.css b/fonts/pragmatapro/pragmatapro.css
new file mode 100644
index 0000000..38ebfa8
--- /dev/null
+++ b/fonts/pragmatapro/pragmatapro.css
@@ -0,0 +1,25 @@
+@font-face {
+ font-family: PrgmataPro;
+ font-weight: 400;
+ src: url(r.woff2) format('woff2');
+}
+
+@font-face {
+ font-family: PrgmataPro;
+ font-weight: 500;
+ src: url(b.woff2) format('woff2');
+}
+
+@font-face {
+ font-family: PrgmataPro;
+ font-weight: 400;
+ font-style: italic;
+ src: url(i.woff2) format('woff2');
+}
+
+@font-face {
+ font-family: PrgmataPro;
+ font-weight: 500;
+ font-style: italic;
+ src: url(bi.woff2) format('woff2');
+}
diff --git a/rainbow-quox/back.svg b/rainbow-quox/back.svg
new file mode 100644
index 0000000..89231e3
--- /dev/null
+++ b/rainbow-quox/back.svg
@@ -0,0 +1,7 @@
+
+
diff --git a/rainbow-quox/bright-squares.png b/rainbow-quox/bright-squares.png
new file mode 100644
index 0000000..bacde4f
--- /dev/null
+++ b/rainbow-quox/bright-squares.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6446c779f15729bb9c47103bf4f9a2c831439ce7246943bea3715dfbdfaebb27
+size 41392
diff --git a/rainbow-quox/canvas.ts b/rainbow-quox/canvas.ts
index 5ffe952..d54799d 100644
--- a/rainbow-quox/canvas.ts
+++ b/rainbow-quox/canvas.ts
@@ -144,6 +144,7 @@ function message(msg: string, ctx: CanvasRenderingContext2D) {
function startAnim(name: string) {
document.documentElement.dataset.running = name;
+ document.getElementById('buttons')?.style.removeProperty('z-index');
}
function isRunning(): boolean {
@@ -152,6 +153,7 @@ function isRunning(): boolean {
function finishAnim() {
delete document.documentElement.dataset.running;
+ document.getElementById('buttons')?.style.setProperty('z-index', '1');
}
type SideName = 'front' | 'back';
@@ -238,7 +240,7 @@ async function animateReroll(ctx1: CanvasRenderingContext2D,
side: Side, done: () => void) {
const duration = 200;
const [oklch, rgb] = await side.recolorOn(ctx2, buf);
- ctx2.canvas.style.animation = `${duration}ms ease fade-in`;
+ ctx2.canvas.style.animation = `${duration}ms ease forwards fade-in`;
setBg(oklch.outer.h);
setPalette(oklch, rgb);
setTimeout(finish, duration);
@@ -310,6 +312,8 @@ document.addEventListener('DOMContentLoaded', async function() {
addListeners();
+ document.documentElement.dataset.ready = '1';
+
type Done = (finish: () => void) => void;
function handleReroll(e: Event) {
diff --git a/rainbow-quox/index.html b/rainbow-quox/index.html
index 45885bf..2884542 100644
--- a/rainbow-quox/index.html
+++ b/rainbow-quox/index.html
@@ -30,5 +30,7 @@
diff --git a/rainbow-quox/palette.svg.raku b/rainbow-quox/palette.svg.raku
index 416fb73..ac8e7c9 100644
--- a/rainbow-quox/palette.svg.raku
+++ b/rainbow-quox/palette.svg.raku
@@ -10,8 +10,12 @@ my $doc = q:to/EOP/;