Skip to content

Commit f5db489

Browse files
JoeMattclaude
andcommitted
style: polish features hover, features page CTA, and support troubleshooting
- Features cards: add hover lift (-translate-y-0.5) and shadow transition - Features page: consolidate bottom CTAs into a single card with community links - Support page: refactor troubleshooting tips to data-driven .map() (DRY) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 03a2f10 commit f5db489

3 files changed

Lines changed: 27 additions & 84 deletions

File tree

src/app/features/page.tsx

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,17 @@ export default function FeaturesPage() {
2424

2525
<Features />
2626

27-
<div className="text-center mt-12">
28-
<Link
29-
href="/"
30-
className="inline-block text-orange-500 hover:text-orange-400 font-semibold transition-colors"
31-
>
32-
Back to Home →
33-
</Link>
34-
</div>
35-
36-
{/* Community CTA */}
37-
<div className="text-center mt-12">
38-
<div className="flex flex-col sm:flex-row gap-4 justify-center items-center">
27+
{/* Bottom CTAs */}
28+
<div className="mt-14 bg-gray-900 border border-gray-800 rounded-2xl p-8 text-center">
29+
<h2 className="text-xl font-bold text-white mb-2">Join the Community</h2>
30+
<p className="text-gray-400 text-sm mb-6">Get help, share tips, and stay updated on new releases.</p>
31+
<div className="flex flex-col sm:flex-row gap-4 justify-center items-center mb-6">
3932
<SocialButton href="https://discord.com/invite/4TK7PU5" label="Join our Discord" leftIcon={<DiscordIcon className="w-5 h-5" />} variant="discord" />
4033
<SocialButton href="https://x.com/ProvenanceApp" label="Follow on X/Twitter" leftIcon={<XIcon className="w-5 h-5" />} variant="x" />
4134
</div>
35+
<Link href="/" className="text-sm text-orange-400 hover:text-orange-300 font-medium transition-colors">
36+
← Back to Home
37+
</Link>
4238
</div>
4339
</div>
4440
</section>

src/app/support/page.tsx

Lines changed: 18 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -153,77 +153,24 @@ export default function Support() {
153153
</h2>
154154

155155
<div className="space-y-4">
156-
<div className="flex items-start space-x-3">
157-
<div className="w-6 h-6 rounded-full bg-green-500/10 flex items-center justify-center shrink-0 mt-0.5">
158-
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth={2.5} className="w-3.5 h-3.5 text-green-400" aria-hidden="true"><path strokeLinecap="round" strokeLinejoin="round" d="M4.5 12.75l6 6 9-13.5" /></svg>
159-
</div>
160-
<div>
161-
<h4 className="font-semibold text-white">Restart the app</h4>
162-
<p className="text-gray-400">
163-
Close iFly completely and reopen it to resolve minor issues.
164-
</p>
165-
</div>
166-
</div>
167-
168-
<div className="flex items-start space-x-3">
169-
<div className="w-6 h-6 rounded-full bg-green-500/10 flex items-center justify-center shrink-0 mt-0.5">
170-
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth={2.5} className="w-3.5 h-3.5 text-green-400" aria-hidden="true"><path strokeLinecap="round" strokeLinejoin="round" d="M4.5 12.75l6 6 9-13.5" /></svg>
171-
</div>
172-
<div>
173-
<h4 className="font-semibold text-white">Check available storage</h4>
174-
<p className="text-gray-400">
175-
Ensure you have at least 1GB of free space on your device for games and save files.
176-
</p>
177-
</div>
178-
</div>
179-
180-
<div className="flex items-start space-x-3">
181-
<div className="w-6 h-6 rounded-full bg-green-500/10 flex items-center justify-center shrink-0 mt-0.5">
182-
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth={2.5} className="w-3.5 h-3.5 text-green-400" aria-hidden="true"><path strokeLinecap="round" strokeLinejoin="round" d="M4.5 12.75l6 6 9-13.5" /></svg>
183-
</div>
184-
<div>
185-
<h4 className="font-semibold text-white">Update to latest version</h4>
186-
<p className="text-gray-400">
187-
Make sure you&apos;re running the latest available build of iFly.
188-
</p>
189-
</div>
190-
</div>
191-
192-
<div className="flex items-start space-x-3">
193-
<div className="w-6 h-6 rounded-full bg-green-500/10 flex items-center justify-center shrink-0 mt-0.5">
194-
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth={2.5} className="w-3.5 h-3.5 text-green-400" aria-hidden="true"><path strokeLinecap="round" strokeLinejoin="round" d="M4.5 12.75l6 6 9-13.5" /></svg>
195-
</div>
196-
<div>
197-
<h4 className="font-semibold text-white">Disable Low Power Mode</h4>
198-
<p className="text-gray-400">
199-
For best performance, ensure your device is not in Low Power Mode and has sufficient battery.
200-
</p>
201-
</div>
202-
</div>
203-
204-
<div className="flex items-start space-x-3">
205-
<div className="w-6 h-6 rounded-full bg-green-500/10 flex items-center justify-center shrink-0 mt-0.5">
206-
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth={2.5} className="w-3.5 h-3.5 text-green-400" aria-hidden="true"><path strokeLinecap="round" strokeLinejoin="round" d="M4.5 12.75l6 6 9-13.5" /></svg>
207-
</div>
208-
<div>
209-
<h4 className="font-semibold text-white">Use VBI/CPU tuning</h4>
210-
<p className="text-gray-400">
211-
Use the VBI/CPU over/underclock quick sheet in the emulation window to fine-tune smoothness at the cost of frame rate.
212-
</p>
213-
</div>
214-
</div>
215-
216-
<div className="flex items-start space-x-3">
217-
<div className="w-6 h-6 rounded-full bg-green-500/10 flex items-center justify-center shrink-0 mt-0.5">
218-
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth={2.5} className="w-3.5 h-3.5 text-green-400" aria-hidden="true"><path strokeLinecap="round" strokeLinejoin="round" d="M4.5 12.75l6 6 9-13.5" /></svg>
219-
</div>
220-
<div>
221-
<h4 className="font-semibold text-white">Restart your device</h4>
222-
<p className="text-gray-400">
223-
A device restart can resolve performance issues and free up memory.
224-
</p>
225-
</div>
226-
</div>
156+
{([
157+
['Restart the app', 'Close iFly completely and reopen it to resolve minor issues.'],
158+
['Check available storage', 'Ensure you have at least 1GB of free space on your device for games and save files.'],
159+
['Update to latest version', "Make sure you're running the latest available build of iFly."],
160+
['Disable Low Power Mode', 'For best performance, ensure your device is not in Low Power Mode and has sufficient battery.'],
161+
['Use VBI/CPU tuning', 'Use the VBI/CPU over/underclock quick sheet in the emulation window to fine-tune smoothness at the cost of frame rate.'],
162+
['Restart your device', 'A device restart can resolve performance issues and free up memory.'],
163+
] as [string, string][]).map(([title, desc]) => (
164+
<div key={title} className="flex items-start gap-3">
165+
<div className="w-6 h-6 rounded-full bg-green-500/10 flex items-center justify-center shrink-0 mt-0.5">
166+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth={2.5} className="w-3.5 h-3.5 text-green-400" aria-hidden="true"><path strokeLinecap="round" strokeLinejoin="round" d="M4.5 12.75l6 6 9-13.5" /></svg>
167+
</div>
168+
<div>
169+
<h4 className="font-semibold text-white">{title}</h4>
170+
<p className="text-gray-400">{desc}</p>
171+
</div>
172+
</div>
173+
))}
227174
</div>
228175
</div>
229176
</div>

src/components/Features.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ const Features: React.FC<FeaturesProps> = ({ compact = false, className }) => {
165165
<div className={className}>
166166
<div className={`grid gap-8 ${compact ? 'md:grid-cols-3' : 'md:grid-cols-2 lg:grid-cols-3'}`}>
167167
{items.map((f) => (
168-
<div key={f.title} className="flex flex-col gap-4 bg-gray-900 border border-gray-800 rounded-2xl p-6 hover:border-gray-700 transition-colors">
168+
<div key={f.title} className="flex flex-col gap-4 bg-gray-900 border border-gray-800 rounded-2xl p-6 hover:border-gray-700 hover:-translate-y-0.5 hover:shadow-xl hover:shadow-black/20 transition-all duration-200">
169169
<div aria-hidden>
170170
{f.icon ?? '🔹'}
171171
</div>

0 commit comments

Comments
 (0)