Commit Graph

11 Commits

Author SHA1 Message Date
90bb701068 fix: eliminate redundancy in system prompt
The old prompt had two problems:
1. {style} placeholder was filled with the full promptModifier sentence,
   producing gibberish like "rewrite strongly in a Rewrite in a
   sarcastic... style"
2. The promptModifier was then repeated as its own line

New design separates concerns cleanly:
- intensityMap no longer uses {style} placeholder — instructions are
  pure intensity adverbs ("strongly", "subtly, with a light touch", etc.)
- buildSystemPrompt strips the leading "Rewrite" verb from the style
  modifier and combines both into one non-redundant instruction:
  "Rewrite the text strongly: in a sarcastic, snarky tone with biting wit"

Example outputs by intensity:
  1: Rewrite the text subtly, with a light touch: in a sarcastic...
  3: Rewrite the text strongly: in a sarcastic...
  5: Rewrite the text with absolute maximum intensity, no restraint: ...
2026-04-12 23:23:58 -04:00
cb8755f59e chore: reformat styles.ts and enrich GoT prompt modifiers with character references 2026-04-12 23:04:23 -04:00
5a329ee426 fix: remove :global() from app.css — it's only valid in Svelte <style> blocks
Vite processes imported .css files as plain CSS, not Svelte styles.
:global() is a Svelte-specific directive that only works inside
component <style> tags. In standalone .css files it gets mangled into
invalid :is(:global(...)) selectors. Since Vite-imported CSS is already
global by nature, removing :global() wrappers produces correct output.
2026-04-12 22:58:13 -04:00
0cf703ccd9 fix: broken HTML structure, font loading, and global form styles
- Fix app.html: was malformed with duplicate <head> tags (first one never closed)
- Move Inter font from CSS @import to <link> in app.html with preconnect for faster loading
- Add global resets for select, input, textarea, button elements
- Add custom range slider styling (cross-browser webkit + moz)
- Add custom select dropdown arrow via SVG background-image
- Remove conflicting scoped slider styles from +page.svelte
2026-04-12 22:44:24 -04:00
a12afb792e feat: implement English Style Converter
- SvelteKit project scaffolded with TypeScript
- Type definitions for Style, StyleCategory, ConversionRequest, ConversionResponse, LLMConfig
- Style definitions with 6 categories and 25 sub-styles
- Intensity mapping (1-5) with prompt modifier placeholders
- LLM client using OpenAI-compatible API (Ollama default)
- POST /api/convert endpoint with input validation
- Animated loading modal with per-letter animations
- Main page UI with category/style selectors, intensity slider
- Copy to clipboard, collapsible prompt display
- Vitest tests for styles, LLM prompt building, and API validation
- Environment configuration for LLM settings
2026-04-12 21:53:27 -04:00
fcf80638e1 wip: scaffolding + types + styles 2026-04-12 21:22:34 -04:00
5988f807ba Add English Style Converter implementation plan 2026-04-12 20:38:50 -04:00
2eb8ad8d36 chore: scaffold SvelteKit project 2026-04-12 20:37:53 -04:00
3b9317423f Add loading modal with animated words (randomized color + animation style) to design spec 2026-04-12 20:27:55 -04:00
50cdab712c Add loading modal with animated words to design spec 2026-04-12 20:27:12 -04:00
4ca3a9f1a9 Add English Style Converter design spec 2026-04-12 20:21:21 -04:00