From 01ddfc8428a3bd1090678c6b4e499c83158ee597 Mon Sep 17 00:00:00 2001 From: emil Date: Sat, 9 May 2026 13:42:16 +0300 Subject: [PATCH] feat: add dice generator MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds /generators/dice/ with configurable count (1–20) and standard RPG sides (d4/d6/d8/d10/d12/d20/d100). Shows individual rolls with colour-coded min/max, running total, and clipboard copy in NdS=total format. Co-Authored-By: Claude Sonnet 4.6 --- src/components/generators/DiceGenerator.astro | 170 ++++++++++++++++++ src/data/generators.ts | 2 +- src/pages/generators/dice.astro | 63 +++++++ 3 files changed, 234 insertions(+), 1 deletion(-) create mode 100644 src/components/generators/DiceGenerator.astro create mode 100644 src/pages/generators/dice.astro diff --git a/src/components/generators/DiceGenerator.astro b/src/components/generators/DiceGenerator.astro new file mode 100644 index 0000000..42543dd --- /dev/null +++ b/src/components/generators/DiceGenerator.astro @@ -0,0 +1,170 @@ +--- +// Interactive dice generator — runs on the client via inline script +--- + +
+
+
+ + +
+
+ +
+ {['4','6','8','10','12','20','100'].map((s) => ( + + ))} +
+
+
+ + + +
+
+ + + + +
+ +
+ +
+
+ + diff --git a/src/data/generators.ts b/src/data/generators.ts index 012f729..ba12ae7 100644 --- a/src/data/generators.ts +++ b/src/data/generators.ts @@ -40,7 +40,7 @@ export const generators: Generator[] = [ title: 'Dice', description: 'Roll one or more dice with any number of sides.', icon: 'dice-6', - status: 'coming-soon', + status: 'live', }, { slug: 'cards', diff --git a/src/pages/generators/dice.astro b/src/pages/generators/dice.astro new file mode 100644 index 0000000..0c505d3 --- /dev/null +++ b/src/pages/generators/dice.astro @@ -0,0 +1,63 @@ +--- +import BaseLayout from '../../layouts/BaseLayout.astro'; +import DiceGenerator from '../../components/generators/DiceGenerator.astro'; +import AdBanner from '../../components/AdBanner.astro'; +import { generators } from '../../data/generators'; + +const generator = generators.find((g) => g.slug === 'dice')!; +--- + + +
+ + +
+
+ + randify +
+

+ {generator.title} Generator +

+

{generator.description}

+
+ +
+ +
+ +
+ + + +
+
+