Awesome-omni-skill frontend-design
Create frontend components and pages for the Fables & Sagas D&D app. Use this skill when building UI for the dnd-homebrew-frontend project. Generates code that matches the existing dark fantasy aesthetic, theme system, and component patterns.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/frontend-design-rmunoz33" ~/.claude/skills/diegosouzapw-awesome-omni-skill-frontend-design-37a7fe && rm -rf "$T"
skills/development/frontend-design-rmunoz33/SKILL.mdThis skill guides creation of frontend interfaces for the Fables & Sagas D&D Solo app. All output must integrate seamlessly with the existing codebase and its dark medieval fantasy aesthetic.
Tech Stack
- Framework: Next.js 16 with React 19, TypeScript
- Styling: Tailwind CSS v4 with DaisyUI v5
- State: Zustand (
fromuseDnDStore
)@/stores/useStore - Icons:
(primary),lucide-react
+@mdi/react
(supplemental)@mdi/js - Toasts:
(dark theme, custom styled — see layout.tsx)sonner - Lists:
for virtualized scrollingreact-virtuoso - Markdown:
react-markdown - Fonts loaded via
:next/font/google
— display/headings (import fromMedievalSharp
)@/app/components/medievalFont
— secondary displayEB_Garamond
/Geist
— body text (CSS variablesGeist_Mono
,--font-geist-sans
)--font-geist-mono
Theme: "fables"
DaisyUI custom theme (
data-theme="fables") defined in src/app/globals.css:
| Token | Value | Usage |
|---|---|---|
| (antique gold) | Headings, accents, borders, CTA |
| | Text on primary backgrounds |
| (deep crimson) | Secondary actions, danger accents |
| | Text on secondary backgrounds |
| (bright gold) | Highlights, hover states |
| | Card/panel backgrounds |
| (parchment) | Body text on neutral |
| (near-black) | Page background |
| | Elevated surfaces |
| | Higher elevation |
| | Default text |
| | Destructive actions |
| | Confirmations |
Always use DaisyUI semantic tokens (
text-primary, bg-base-200, btn-primary, etc.) instead of hardcoded colors.
Custom Tailwind Utilities
Defined in
src/app/globals.css:
— radial gradient overlay for cinematic scenesbg-login-vignette
,bg-gradient-radial
— custom gradient utilitiesbg-gradient-conic
,.animate-fade-in-up
— staggered entrance animations.animate-fade-in-up-delay-1/2/3
— gold text-shadow glow effect for dramatic headings.text-glow-gold
Component Patterns
Follow these conventions from existing code:
- "use client" directive on all interactive components
- DaisyUI classes for base components:
,btn
,input
,input-bordered
,modal
,drawer
,card
,badgetooltip - Opacity modifiers for subtle layering:
,bg-base-200/50
,border-primary/15text-base-content/30 - Section headers use
with gold decorative horizontal rules (seemedievalFont.className
pattern)SectionHeader.tsx - Modals use fixed overlay with
, centered card withbg-black bg-opacity-50border-2 - Inputs use:
input input-bordered w-full bg-base-200/50 border-primary/15 text-base-content placeholder:text-base-content/30 focus:border-primary/40 focus:outline-none - Drawers slide from right with backdrop blur
Aesthetic Direction
This app has a dark medieval fantasy aesthetic — think weathered parchment text on near-black backgrounds, gold filigree accents, and deep crimson highlights. The tone is immersive and atmospheric, like opening an ancient tome by candlelight.
When designing new components:
- Lean into the dark + gold contrast
- Use
for section titles and dramatic textmedievalFont - Apply subtle opacity and blur for depth (
,backdrop-blur-sm
opacity modifiers)/50 - Use staggered
for page entrancesanimate-fade-in-up - Add
sparingly for emphasis on hero elementstext-glow-gold - Keep backgrounds dark (
,base-100
) with gold (base-200
) as the accent colorprimary - Borders should be subtle:
toborder-primary/15border-primary/40
File Organization
- Components:
src/app/components/{Feature}/ComponentName.tsx - Hooks:
src/hooks/useHookName.ts - Stores:
(single Zustand store)src/stores/useStore.ts - API routes:
src/app/api/{endpoint}/route.ts - Services:
src/services/