diff --git a/frontend/src/App.css b/frontend/src/App.css index 6f51c51..30cf955 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -3,6 +3,8 @@ width: 100%; margin: 0 auto; padding: 0; + position: relative; + z-index: 1; } /* Ensure touch-friendly interactions */ @@ -11,22 +13,41 @@ } /* Smooth animations */ -* { - transition: all 0.2s ease-in-out; -} - button, input, select, textarea { - transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +/* Advanced button hover effects */ +button:not(:disabled) { + position: relative; + overflow: hidden; +} + +button:not(:disabled)::before { + content: ''; + position: absolute; + top: 50%; + left: 50%; + width: 0; + height: 0; + border-radius: 50%; + background: rgba(255, 255, 255, 0.3); + transform: translate(-50%, -50%); + transition: width 0.6s, height 0.6s; +} + +button:not(:disabled):hover::before { + width: 300px; + height: 300px; } -/* Button hover effects */ button:not(:disabled):hover { - transform: translateY(-2px); - box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); + transform: translateY(-4px) scale(1.02); + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2); } button:not(:disabled):active { - transform: translateY(0); + transform: translateY(-2px) scale(1.01); } /* Custom range slider styling for better mobile support */ diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 4dbb4c2..802d791 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -158,24 +158,41 @@ function App() { const allRolesAssigned = roles.length > 0 && roles.every(role => voiceAssignments.has(role.id)) return ( -
-
+
+
{/* Header with gradient text and icon */} -
-
-
- 🎧 +
+
+
+
+ 🎧
-

+

Text to Audiobook

-

Transform your stories into immersive audio experiences

+

+ Transform your stories into immersive audio experiences with AI-powered voices +

+ + {/* Progress indicator */} +
+
+
+
+
+
{error && ( -
- ⚠️ Error: {error} +
+
+ ⚠️ +
+

Error

+

{error}

+
+
)} @@ -192,8 +209,11 @@ function App() { {phase === 'assignment' && ( <> {isLongText && ( -
- Generation may take several minutes for very long content. +
+
+ ⏱️ +

Generation may take several minutes for very long content.

+
)} {console.log('Rendering VoiceAssignmentSection with roles:', roles, 'allRolesAssigned:', allRolesAssigned)} @@ -216,8 +236,11 @@ function App() { {phase === 'review' && ( <> {isLongText && ( -
- Generation may take several minutes for very long content. +
+
+ ⏱️ +

Generation may take several minutes for very long content.

+
)} -
-
- Generation may take several minutes for very long content. Please be patient... +
+
+
+
+
+
+
+

Generating Your Audiobook

+

This may take several minutes for very long content. Please be patient...

+
)} {isGeneratingScript && ( -
-
-
- Generating script preview... This may take a moment. +
+
+
+
+
+
+
+

Generating Script Preview

+

AI is analyzing your text and assigning speakers...

+
)} diff --git a/frontend/src/components/AudioPlayerSection.tsx b/frontend/src/components/AudioPlayerSection.tsx index 89812ff..bf9c303 100644 --- a/frontend/src/components/AudioPlayerSection.tsx +++ b/frontend/src/components/AudioPlayerSection.tsx @@ -8,38 +8,41 @@ export default function AudioPlayerSection({ onDownload }: AudioPlayerSectionProps) { return ( -
+
{/* Success Header */} -
-
-
- 🎉 +
+
+
+ 🎉
-

+

Your Audiobook is Ready!

-

+

Listen below or download to enjoy offline

{/* Audio Player Card */} -
-
-
- 🎧 +
+
+
+ 🎧 +
+
+

Listen Now

+

Your personalized audiobook

-

Listen Now

{/* Download Button */} -
+
{/* Success Message */} -
-

- ✅ Your audiobook has been successfully generated! +

+
+ ✅ +

Success!

+
+

+ Your audiobook has been successfully generated with AI-powered voices!

diff --git a/frontend/src/components/ScriptReviewSection.tsx b/frontend/src/components/ScriptReviewSection.tsx index bbbe609..6f07d60 100644 --- a/frontend/src/components/ScriptReviewSection.tsx +++ b/frontend/src/components/ScriptReviewSection.tsx @@ -22,40 +22,52 @@ export default function ScriptReviewSection({ }; return ( -
-
-
- 📋 +
+
+
+ 📋 +
+
+

Review Script

+

Fine-tune speaker assignments

-

Review Script

-

- Review the AI-generated script and adjust speaker assignments as needed. -

+
+
+ 💡 +

Review the AI-generated script and adjust speaker assignments as needed.

+
+
{/* Script Segments */} -
+
{segments.map((segment, index) => (
{/* Segment Header */} -
- - #{index + 1} - +
+
+
+ {index + 1} +
+ + SEGMENT + +
{/* Speaker Dropdown */} -
-