Skip to content

Commit 020c4c2

Browse files
aramb-devclaude
andcommitted
feat(ui): add donate buttons, remove gradients, clean up branding
- Add donate link to desktop footer, mobile footer, and v3.2 modal - Replace blue-to-purple gradients with solid blue across modal, header button, and mobile nav - Use blue/sky/cyan color family for modal feature highlights - Remove AssemblyAI name from user-facing copy Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent ed1f7a4 commit 020c4c2

6 files changed

Lines changed: 45 additions & 19 deletions

File tree

src/components/V3AnnouncementModal.tsx

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@ export function V3AnnouncementModal({ onClose }: V3AnnouncementModalProps) {
6363
{/* Header with close button */}
6464
<div className="mb-6 flex items-center justify-between">
6565
<div className="flex items-center gap-3">
66-
<div className="rounded-full bg-gradient-to-r from-blue-500 to-purple-600 p-2">
66+
<div className="rounded-full bg-blue-600 p-2 dark:bg-blue-500">
6767
<Brain className="h-6 w-6 text-white" />
6868
</div>
69-
<h1 className="bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-2xl font-bold text-transparent dark:from-blue-400 dark:to-purple-400">
69+
<h1 className="text-2xl font-bold text-gray-900 dark:text-white">
7070
V3.2 -- AI Intelligence
7171
</h1>
7272
</div>
@@ -83,9 +83,9 @@ export function V3AnnouncementModal({ onClose }: V3AnnouncementModalProps) {
8383
{/* Main content */}
8484
<div className="space-y-6">
8585
<p className="text-lg text-gray-700 dark:text-gray-300">
86-
Transcriptr now runs on the AssemblyAI SDK with opt-in AI
87-
analysis features. Get chapters, summaries, sentiment, entities,
88-
and more -- all from a single transcription.
86+
Transcriptr now runs on a more robust and accurate transcription
87+
engine with opt-in AI analysis features. Get chapters, summaries,
88+
sentiment, entities, and more -- all from a single transcription.
8989
</p>
9090

9191
{/* Feature highlights */}
@@ -108,27 +108,27 @@ export function V3AnnouncementModal({ onClose }: V3AnnouncementModalProps) {
108108
</div>
109109

110110
<div className="flex items-start gap-3">
111-
<div className="mt-1 rounded-full bg-purple-100 p-1 dark:bg-purple-900">
112-
<Languages className="h-4 w-4 text-purple-600 dark:text-purple-400" />
111+
<div className="mt-1 rounded-full bg-sky-100 p-1 dark:bg-sky-900">
112+
<Languages className="h-4 w-4 text-sky-600 dark:text-sky-400" />
113113
</div>
114114
<div>
115-
<h3 className="font-medium text-purple-600 dark:text-purple-400">
115+
<h3 className="font-medium text-sky-600 dark:text-sky-400">
116116
30+ Language Support
117117
</h3>
118118
<p className="text-sm text-gray-700 dark:text-gray-300">
119119
Auto-detect or manually select from 20+ languages.
120-
AssemblyAI natively supports audio and video formats --
120+
Audio and video formats are natively supported --
121121
no conversion step needed.
122122
</p>
123123
</div>
124124
</div>
125125

126126
<div className="flex items-start gap-3">
127-
<div className="mt-1 rounded-full bg-green-100 p-1 dark:bg-green-900">
128-
<RefreshCw className="h-4 w-4 text-green-600 dark:text-green-400" />
127+
<div className="mt-1 rounded-full bg-cyan-100 p-1 dark:bg-cyan-900">
128+
<RefreshCw className="h-4 w-4 text-cyan-600 dark:text-cyan-400" />
129129
</div>
130130
<div>
131-
<h3 className="font-medium text-green-600 dark:text-green-400">
131+
<h3 className="font-medium text-cyan-600 dark:text-cyan-400">
132132
Smart Error Recovery
133133
</h3>
134134
<p className="text-sm text-gray-700 dark:text-gray-300">
@@ -152,11 +152,20 @@ export function V3AnnouncementModal({ onClose }: V3AnnouncementModalProps) {
152152
<div className="flex flex-col gap-3 sm:flex-row sm:justify-center">
153153
<Button
154154
onClick={handleClose}
155-
className="bg-gradient-to-r from-blue-500 to-purple-600 hover:from-blue-600 hover:to-purple-700"
155+
className="bg-blue-600 hover:bg-blue-700"
156156
>
157157
Get Started
158158
</Button>
159-
<Button variant="outline" onClick={handleClose}>
159+
<Button asChild variant="outline" className="border-amber-300 text-amber-700 hover:bg-amber-50 dark:border-amber-700 dark:text-amber-400 dark:hover:bg-amber-900/20">
160+
<a
161+
href="https://donate.stripe.com/3cIeVe2e5dHxeEh7BKfUQ0h"
162+
target="_blank"
163+
rel="noopener noreferrer"
164+
>
165+
Support the Project
166+
</a>
167+
</Button>
168+
<Button variant="ghost" onClick={handleClose} className="text-gray-500">
160169
Dismiss
161170
</Button>
162171
</div>

src/components/layout/Footer.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,15 @@ export function Footer({ onOpenFeedbackModal, onOpenChangelog }: FooterProps) {
9191
>
9292
Documentation
9393
</Link>
94+
<span></span>
95+
<a
96+
href="https://donate.stripe.com/3cIeVe2e5dHxeEh7BKfUQ0h"
97+
target="_blank"
98+
rel="noopener noreferrer"
99+
className="text-amber-600 hover:underline dark:text-amber-400"
100+
>
101+
Donate
102+
</a>
94103
</div>
95104

96105
{/* Peerlist Project Embed */}

src/components/layout/Header.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export function Header({
6767
{onShowV3 && (
6868
<button
6969
onClick={onShowV3}
70-
className="group relative flex items-center gap-1.5 rounded-full bg-gradient-to-r from-blue-500 to-purple-600 px-3 py-1 text-sm font-medium text-white shadow-md transition-all hover:shadow-lg hover:scale-105"
70+
className="group relative flex items-center gap-1.5 rounded-full bg-blue-600 px-3 py-1 text-sm font-medium text-white shadow-md transition-all hover:bg-blue-700 hover:shadow-lg hover:scale-105"
7171
>
7272
<span className="relative flex h-2 w-2">
7373
<span className="absolute inline-flex h-full w-full animate-ping rounded-full bg-white opacity-75"></span>

src/components/layout/MobileFooter.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,22 @@ export function MobileFooter({
5555
rel="noopener noreferrer"
5656
className="text-blue-600 hover:underline dark:text-blue-400"
5757
>
58-
Star on GitHub
58+
Star on GitHub
5959
</a>
6060
<Link
6161
href="/documentation"
6262
className="text-blue-600 hover:underline dark:text-blue-400"
6363
>
64-
📚 Docs
64+
Docs
6565
</Link>
66+
<a
67+
href="https://donate.stripe.com/3cIeVe2e5dHxeEh7BKfUQ0h"
68+
target="_blank"
69+
rel="noopener noreferrer"
70+
className="text-amber-600 hover:underline dark:text-amber-400"
71+
>
72+
Donate
73+
</a>
6674
</div>
6775

6876
{/* Legal Links */}

src/components/ui/mobile-navigation.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ export function MobileNavigation({
167167
<Button
168168
variant="ghost"
169169
onClick={handleV3Click}
170-
className="mb-3 w-full justify-start bg-gradient-to-r from-blue-500 to-purple-600 p-4 text-left font-medium text-white hover:from-blue-600 hover:to-purple-700"
170+
className="mb-3 w-full justify-start bg-blue-600 p-4 text-left font-medium text-white hover:bg-blue-700"
171171
>
172172
<span className="relative mr-3 flex h-2 w-2">
173173
<span className="absolute inline-flex h-full w-full animate-ping rounded-full bg-white opacity-75"></span>

src/data/changelog.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export const changelogItems: ChangeItem[] = [
1414
version: "3.2.0",
1515
changes: {
1616
new: [
17-
"**AssemblyAI SDK Integration**: Migrated transcription engine to the official AssemblyAI JavaScript SDK for better reliability and type safety",
17+
"**New Transcription Engine**: Migrated to a more robust and accurate transcription engine for better reliability and language support",
1818
"**AI Analysis Features**: Opt-in AI intelligence features including Auto Chapters, Summarization, Sentiment Analysis, Entity Detection, Key Phrases, Content Moderation, and Topic Detection",
1919
"**Speaker Diarization**: Identify different speakers in interviews, meetings, and conversations",
2020
"**Smart Error Recovery**: Feature-language incompatibility errors now show a clear explanation and a one-click retry button that automatically disables the unsupported feature",

0 commit comments

Comments
 (0)