Add loading modal with animated words (randomized color + animation style) to design spec

This commit is contained in:
2026-04-12 20:27:55 -04:00
parent 50cdab712c
commit 3b9317423f
2 changed files with 38 additions and 11 deletions

3
NUL
View File

@@ -1,3 +0,0 @@
dir: cannot access 'C:\Users\simpl\.agents\skills': No such file or directory
dir: cannot access '/s': No such file or directory
dir: cannot access '/b': No such file or directory

View File

@@ -146,14 +146,42 @@ Single page, centered, minimal. Light palette only.
- Output display area with Copy button - Output display area with Copy button
- Collapsible "Show prompt" section below output revealing system and user prompts - Collapsible "Show prompt" section below output revealing system and user prompts
### Loading Modal
When the user clicks Convert and the LLM request is in flight, a **modal dialog** appears with an animated loading word. This replaces a boring spinner with delightful, personality-driven feedback.
**Behavior:**
- Modal overlays the page content, preventing interaction during conversion
- Displays one playful verb at a time, cycling every ~2 seconds
- Each letter of the word animates in sequentially (per-letter animation, inspired by Tobias Ahlin's Moving Letters)
- Each new word gets a **randomized color** from a curated light palette
- Each new word gets a **randomized animation style** from a set of entrance animations (slide-up, bounce-in, drop-in, fade-scale, spin-in, spring-from-left, etc.)
- When the LLM response arrives, the modal dismisses immediately
**Loading word list:**
Bamboozling · Razzmatazzing · Transmogrifying · Alakazamming · Prestidigitating · Metamorphosizing · Enchanting · Voodooing · Witchcrafting · Sorcerizing · Spellcasting · Hocus-pocusing · Incantating · Conjurating · Charmweaving
**Animation styles (randomized per word):**
- Slide up from below
- Bounce in from above
- Drop in with gravity
- Scale up from center
- Fade + rotate in
- Spring in from left
**Color palette (randomized per word, all light-friendly):**
A set of vibrant but light-appropriate accent colors (coral, teal, violet, amber, emerald, rose, sky blue)
This is a signature UX moment — the loading modal should feel magical and fun.
### Interaction Flow ### Interaction Flow
1. User types or pastes text 1. User types or pastes text
2. Selects category, sub-style dropdown populates 2. Selects category, sub-style dropdown populates
3. Adjusts intensity slider (default: 3) 3. Adjusts intensity slider (default: 3)
4. Clicks Convert, loading state 4. Clicks Convert **loading modal appears with animated words**
5. Result appears with Copy button 5. LLM responds — modal dismisses, result appears with Copy button
6. "Show prompt" reveals full system + user prompt (collapsible, hidden by default) 6. "Show prompt" reveals the full system + user prompt sent to the LLM (collapsible, hidden by default)
7. Errors display in the output area, never as browser alerts 7. Errors display in the output area, never as browser alerts
### Svelte 5 Runes ### Svelte 5 Runes
@@ -163,11 +191,11 @@ Single page, centered, minimal. Light palette only.
### UI Details ### UI Details
- Light palette - white/off-white background, subtle borders, accent color on Convert button - **Light palette** - white/off-white background, subtle borders, accent color on Convert button
- No dark mode - **No dark mode**
- Responsive - stacked full-width on mobile, centered max-width on desktop - **Responsive** - stacked full-width on mobile, centered max-width on desktop
- Copy button - navigator.clipboard with confirmation - **Copy button** - navigator.clipboard with confirmation
- No streaming - full response then display (v2 candidate) - **No streaming** - full response then display (v2 candidate)
## Testing Strategy ## Testing Strategy
@@ -194,6 +222,7 @@ Single page, centered, minimal. Light palette only.
7. Copy button works 7. Copy button works
8. Prompt section expands/collapses with correct content 8. Prompt section expands/collapses with correct content
9. Works on mobile viewport 9. Works on mobile viewport
10. Loading modal shows animated words with randomized colors and animation styles
## Scope - MVP1 ## Scope - MVP1
@@ -201,6 +230,7 @@ Single page, centered, minimal. Light palette only.
- Single style at a time - Single style at a time
- Intensity slider (1-5) - Intensity slider (1-5)
- Collapsible prompt display - Collapsible prompt display
- Loading modal with animated words (randomized color + animation style)
- .env-only LLM config - .env-only LLM config
- OpenAI-compatible client (Ollama default) - OpenAI-compatible client (Ollama default)
- Light-only, minimal UI - Light-only, minimal UI