Defer body inline style removal until CSS variables are injected by
useApplyTheme, preventing a one-frame flash of unstyled background.
Replace preloader logo <img> with CSS mask technique matching the React
DittoLogo component, so the logo uses the theme's primary color instead
of filter:invert() which turned purple into green.
Read the user's theme from localStorage before first paint so the
preloader background and spinner colors match dark/light/black/pink.
Uses a small blocking script (public/theme.js) that runs before
the preloader is visible.
- Added new mew_logo_2.svg to public directory
- Updated MewLogo component to use SVG instead of PNG
- Updated index.html favicon references to use SVG format
- Updated manifest.webmanifest icon references to use SVG with 'any' size
- SVG provides better scalability and smaller file size (3.5KB vs 4.2KB PNG)
Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
- Added intro section with relay-intro.png image and description
- Reorganized layout with cleaner visual hierarchy and border separators
- Reduced font sizes for consistency (text-xs, text-sm labels)
- Removed rounded borders and card-style backgrounds
- Added hover states to relay rows (hover:bg-muted/20)
- Improved spacing and padding throughout
- Smaller icon sizes (h-4 w-4 for relays, h-5 w-5 for section headers)
- Reduced button sizes and input heights (h-9) to match other tabs
- Simplified "Add Relay" button text and styling
- Updated popover label sizes to text-xs for consistency
Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
- Added intro section with profile-intro.png image and description
- Reorganized form layout with cleaner visual hierarchy and border separators
- Reduced font sizes and spacing to match feed tab style (text-xs labels)
- Moved "Bot Account" setting under collapsible "Advanced Settings" section
- Improved input heights (h-9) and button sizes for consistency
- Enhanced image upload field styling with smaller previews and buttons
- Updated form descriptions to be more concise
- Added proper spacing with border-b separators between sections
Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
- Swapped to provided gray-on-white line art
- Light/pink: darken blend (gray lines show naturally)
- Dark/black: lighten + invert (lines become light on dark bg)
Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
- Polished white line illustration with cute character and detailed icons
- Clapperboard, bar chart, treasure chest, palette, party popper floating above
- Clean confident linework that reads well at small sizes
Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
- New whimsical stick figure head with floating doodle icons
- Removed rounded box/card wrapper, image sits openly in the layout
- Sized down illustration for subtlety
Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
- Kind badges now appear as [xxxxx] prefix on description lines, not titles
- Added Nintendo-style instruction illustration explaining "Other Stuff"
- Rewrote intro copy to be friendlier and more fun
- Removed old webp illustration file
Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
The catch-all /* -> /index.html redirect was serving HTML for /og-image.png,
so Signal's crawler got text/html instead of image/png. Added explicit rules
for static files (og-image.png, logo.png, robots.txt, manifest.webmanifest)
before the SPA fallback so they serve with correct content types.
Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
- Add og-image.png to public/
- Add Open Graph tags (og:title, og:description, og:image with dimensions and type, og:url, og:site_name)
- Add Twitter Card tags (summary_large_image) for X/Twitter previews
- Add meta description for general SEO
- Works with Signal, Twitter/X, Discord, Slack, iMessage, etc.
Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
- Added logo.png to public folder
- Added favicon and apple-touch-icon link tags to index.html
- Updated manifest.webmanifest with icon references
- Updated MewLogo component to render the PNG image instead of SVG
Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>