Commit Graph

23 Commits

Author SHA1 Message Date
noah ed25ffa533 fix: per-segment bg coloring for full-screen cream + warm cursor highlight
Previous approach using Place() for full-screen bg and WarmRowStyle wrapper
failed because inner ANSI resets (\x1b[m) kill outer Background() styles.

New approach: every styled segment carries its own Background() via theme.Bg()
and theme.WBg() helpers. Per-line Place() fills trailing whitespace. This
ensures cream bg (#fdf6ef) on every pixel of every line, and warm bg (#f8f0e6)
consistently across the cursor row.

Also fixes bottom bar overflow on narrow terminals with adaptive keybindings.
2026-03-09 23:34:52 +01:00
noah 4d5e73cfd1 fix: cream background on every style, warm highlight on cursor row
Every Lip Gloss style now has Background(ScreenBg) so ANSI sequences
carry the cream color inherently. Previously only PadLine added bg
to padding spaces, but inner escape codes reset the background.

All spacing between styled segments uses bg()/wbg() helpers.
Cursor row elements use Background(Warm) for highlight.
2026-03-09 23:18:27 +01:00
noah 0e125e7b1a bump: v0.1.1 for TUI background fix release 2026-03-09 23:15:12 +01:00
noah ddab9087d8 fix: cream background fills entire terminal, bottom bar pinned to bottom
- PadLine now wraps entire line content with Background(ScreenBg) so
  cream color shows behind all text, not just the right-edge padding
- Added PadLineWithBg for active row warm highlight (#f8f0e6)
- Restructured View() to pin bottom bar at terminal bottom with blank
  fill between file list and footer
- Removed 'd remove' from bottom bar keybindings to match web reference
2026-03-09 23:13:32 +01:00
noah c9f1242823 refactor: rework TUI layout to match web app terminal simulation
- Fixed column widths for cursor, selection, size, format selector, status
- Flexible name column that adapts to terminal width
- Active row highlighted with warm background color
- Column header aligned with file row columns
- Proper Unicode symbols (arrows, dots, check/cross marks)
- Consistent 2-char padding on dividers and title bar
2026-03-09 23:09:47 +01:00
noah b47399335a fix: install.sh falls back to ~/.local/bin with PATH hint, redesign terminal section as interactive TUI simulation 2026-03-09 23:01:59 +01:00
noah b57b843459 fix: remove compiled binary and stray PDF from repo, update .gitignore 2026-03-09 22:53:29 +01:00
noah 04a1f33cb1 feat: add CLI with TUI, self-update, install script, and terminal section on landing page
- Full-screen Bubble Tea TUI with cream background fill using PadLine/FillBlankLines
- Self-update command (--update) pulling from GitHub releases
- install.sh for curl one-liner installation
- Terminal Lovers section on web landing page with install command and CLI features
- All 7 format categories, glob/directory batch support, auto-download ffmpeg
2026-03-09 22:53:10 +01:00
noah b9aac61ab8 Can convert a file multiple times now 2026-03-09 22:11:55 +01:00
noah 18912547a8 Added mobile support 2026-03-09 22:06:58 +01:00
noah 76f02c3b1a Added local storage upgraded looks 2026-03-09 21:58:37 +01:00
noah 338cb07ba2 feat: replace features section with animated terminal simulation
Dark terminal window with macOS title bar auto-types conversion commands
with realistic keystroke delays. Shows colored output for each format
category. Cycles through 10 different conversions, clears after 6 to
stay clean. Category format counts shown below terminal. Dramatic visual
contrast against the pastel page.
2026-03-09 21:18:01 +01:00
noah 775a90a79b feat: replace format cloud with scrolling marquee rows in features section
Four animated marquee rows (Images, Documents, Audio/Video, Data/Fonts)
scroll continuously in alternating directions. Category labels pinned on
left with edge fade. Badges pause on hover. Each row has distinct color
and scroll speed.
2026-03-09 21:11:55 +01:00
noah a1e64225d5 feat: replace bento grid with format cloud / tag wall in features section
All 70+ formats displayed as color-coded badges in a flowing cloud layout.
Popular formats are larger, all badges animate in with staggered entrance.
Category legend at top with colored dots. Hover effects on each badge.
2026-03-09 21:08:11 +01:00
noah dee839964b feat: redesign landing page sections and file cards
Redesign 'How it works' as illustrated timeline with unique scene
per step (pink/purple/mint), connecting line, and staggered animations.
Redesign 'Features' as asymmetric bento grid and 'Privacy' as
side-by-side layout with animated shield. Redesign FileCard as paper
note style with random rotation, washi tape strip, ruled lines, and
typewriter typography.
2026-03-09 21:02:41 +01:00
noah 5b1182a818 fix: landing page Unicode rendering, orbit overlap, and add PDF OCR fallback
- Fix Unicode escapes (\u26A1, \u2192, \u{1F6E1}) rendered as literal text in JSX
  by wrapping them in JSX expressions
- Increase orbit radii (520/320px -> 720/480px) so items don't overlap hero text
- Add orbit animation keyframes (orbit-slow, orbit-med) to globals.css
- Add Tesseract.js OCR fallback for scanned/image-based PDFs that have no
  extractable text layer — renders pages to canvas then runs browser-based OCR
- Thread onProgress through all PDF conversion functions for OCR progress
2026-03-09 20:44:38 +01:00
noah f15fd9f060 feat: add pptx, font, psd, epub converters and context-aware previews
- Wire presentationConverter (pptx read/write via pptxgenjs+jszip)
- Add fontConverter (ttf/otf/woff/woff2 via opentype.js + woff2-encoder)
- Add PSD support via ag-psd in imageConverter
- Add spreadsheetConverter (xlsx/xls/ods via SheetJS)
- Add ebookConverter (epub via jszip)
- Expand data converter with ini/env/properties/ndjson/jsonl/sql formats
- Add context-aware previews for pptx, epub, fonts, and psd in PreviewModal
- Remove unsupported .doc extension from fileDetector
- Replace Node-only wawoff2 with browser-compatible woff2-encoder
2026-03-09 20:18:41 +01:00
noah ade7807754 feat: add file preview modal + harden PDF conversion
- Add PreviewModal component with support for images, PDFs, HTML, audio, video, and text-based formats
- FileCard now shows Preview + Download buttons side-by-side after conversion
- Preview opens in a modal overlay with Escape/backdrop-click to close
- Text files truncated at 100KB for preview performance
- Harden pdfjs-dist worker loading with try/catch fallback (runs on main thread if CDN fails)
- Add useSystemFonts option to PDF document loading for better text extraction
2026-03-09 19:10:41 +01:00
noah da49498835 feat: expand conversion matrix to everything-to-everything
- Documents: full cross-format (PDF, DOCX, HTML, MD, TXT, RTF) via pdfjs-dist, docx, mammoth, jsPDF, marked
- Images: add TIFF and ICO encoding (custom binary encoders for browser support)
- Data: add TOML support via smol-toml, all formats cross-convert
- Media: fix webm codec (VP8+Vorbis instead of libx264), expand video-to-audio extraction matrix
- Add missing MIME types (docx, rtf, toml, tiff, ico, opus, wma, flv, wmv, m4v)
- Remove unused pdf-lib dependency
- Fix pdfjs-dist TextItem type error with proper type guard
2026-03-09 19:03:16 +01:00
noah e505c29c6a add logo and favicons, use logo image in nav headers 2026-03-09 18:48:27 +01:00
noah 38f58327c4 redesign: playful pastel theme with solid colors, new landing page
- Rewrite all components to use Tailwind utility classes (Tailwind v4 broke custom CSS classes)
- New landing page at / with hero, features bento grid, how-it-works, privacy section
- Converter tool moved to /convert route
- Fonts: Fraunces (serif headlines) + Plus Jakarta Sans (body) + JetBrains Mono (labels)
- Warm cream palette with pastel category colors (pink, blue, purple, orange, mint)
- Remove all gradients — solid colors only throughout
- Remove floating badge bounce animation
- Responsive action bar and file grid for mobile
- Register design tokens via @theme inline for Tailwind v4 compatibility
2026-03-09 18:38:35 +01:00
noah 221a72b2bf fix: rewrite document converter to preserve formatting in PDF output
Replace jsPDF.text() (plain text dump) with jsPDF.html() + html2canvas-pro
which renders actual styled DOM elements into the PDF. DOCX headings, bold,
italic, tables, lists, links now render correctly. All HTML output also gets
a full styled document wrapper with embedded CSS. HTML-to-Markdown converter
rewritten with proper DOM-walking parser instead of fragile regex.
2026-03-09 18:12:42 +01:00
noah 7659136045 feat: initial Transmute app — universal client-side file converter
Full-stack client-side file converter with Next.js 15 static export.
Supports images (Canvas API), documents (mammoth/pdf-lib/jspdf),
audio/video (ffmpeg.wasm), and data formats (papaparse/yaml/xml).
Dark industrial UI with Space Grotesk + JetBrains Mono, animated
drop zone, glassmorphism file cards, progress rings, and ZIP downloads.
Zero server dependencies — files never leave the browser.
2026-03-09 18:07:47 +01:00