Skip to content

Commit 66f8a61

Browse files
committed
feat: Add APK download CTA to web landing page + fix unclosed main tag
1 parent 42e230d commit 66f8a61

1 file changed

Lines changed: 105 additions & 2 deletions

File tree

web/src/App.tsx

Lines changed: 105 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Sprout, Smartphone, Apple, AlertTriangle, ShieldCheck, ChevronRight, ScanLine, TrendingUp, Landmark, CloudRain, Layers, Globe, MapPin, MessageCircle } from 'lucide-react';
1+
import { Sprout, Smartphone, Apple, AlertTriangle, ShieldCheck, ChevronRight, ScanLine, TrendingUp, Landmark, CloudRain, Layers, Globe, MapPin, MessageCircle, Download } from 'lucide-react';
22

33
export default function App() {
44
return (
@@ -52,12 +52,78 @@ export default function App() {
5252
</span>
5353
</h1>
5454

55-
<p style={{ fontSize: 'clamp(18px, 2vw, 22px)', color: 'var(--nukrop-text-dim)', textAlign: 'center', maxWidth: '700px', lineHeight: 1.6, marginBottom: '60px' }}>
55+
<p style={{ fontSize: 'clamp(18px, 2vw, 22px)', color: 'var(--nukrop-text-dim)', textAlign: 'center', maxWidth: '700px', lineHeight: 1.6, marginBottom: '40px' }}>
5656
A complete operating system engineered to eliminate crop loss and ensure fair market pricing through edge AI and live government data.
5757
</p>
5858

59+
{/* ── Download CTA ── */}
60+
<div style={{ display: 'flex', flexWrap: 'wrap', gap: '16px', justifyContent: 'center', marginBottom: '60px' }}>
61+
<a
62+
href="/NuKropAI_v2.0.apk"
63+
download="NuKropAI_v2.0.apk"
64+
style={{
65+
display: 'inline-flex',
66+
alignItems: 'center',
67+
gap: '10px',
68+
padding: '16px 32px',
69+
background: 'linear-gradient(135deg, var(--nukrop-accent) 0%, #D4F040 100%)',
70+
color: 'var(--nukrop-dark)',
71+
borderRadius: '14px',
72+
fontWeight: '800',
73+
fontSize: '17px',
74+
textDecoration: 'none',
75+
boxShadow: '0 8px 32px rgba(200, 232, 55, 0.35)',
76+
transition: 'transform 0.2s, box-shadow 0.2s',
77+
}}
78+
onMouseEnter={e => {
79+
(e.currentTarget as HTMLAnchorElement).style.transform = 'translateY(-2px)';
80+
(e.currentTarget as HTMLAnchorElement).style.boxShadow = '0 12px 40px rgba(200,232,55,0.5)';
81+
}}
82+
onMouseLeave={e => {
83+
(e.currentTarget as HTMLAnchorElement).style.transform = 'translateY(0)';
84+
(e.currentTarget as HTMLAnchorElement).style.boxShadow = '0 8px 32px rgba(200,232,55,0.35)';
85+
}}
86+
>
87+
<Download style={{ width: '20px', height: '20px' }} />
88+
Download NuKropAI
89+
<span style={{
90+
background: 'rgba(0,0,0,0.15)',
91+
borderRadius: '8px',
92+
padding: '2px 8px',
93+
fontSize: '12px',
94+
fontWeight: '600',
95+
letterSpacing: '0.04em',
96+
}}>APK · 46 MB · v2.0</span>
97+
</a>
98+
<a
99+
href="#features"
100+
style={{
101+
display: 'inline-flex',
102+
alignItems: 'center',
103+
gap: '8px',
104+
padding: '16px 28px',
105+
background: 'rgba(255,255,255,0.06)',
106+
border: '1px solid rgba(255,255,255,0.12)',
107+
color: 'white',
108+
borderRadius: '14px',
109+
fontWeight: '600',
110+
fontSize: '16px',
111+
textDecoration: 'none',
112+
}}
113+
>
114+
Explore Features <ChevronRight style={{ width: '18px', height: '18px' }} />
115+
</a>
116+
</div>
117+
118+
{/* Android badge */}
119+
<div style={{ display: 'flex', alignItems: 'center', gap: '8px', color: 'var(--nukrop-text-muted)', fontSize: '13px' }}>
120+
<Smartphone style={{ width: '15px', height: '15px' }} />
121+
<span>Android 7.0+ • Sideload enabled • 100% free</span>
122+
</div>
123+
59124
</section>
60125

126+
61127
{/* Problem / Solution Split */}
62128
<section style={{ width: '100%', maxWidth: '1200px', padding: '0 24px 80px 24px', zIndex: 1, display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(400px, 1fr))', gap: '32px' }}>
63129

@@ -318,6 +384,42 @@ export default function App() {
318384

319385
</main>
320386

387+
<section style={{ padding: '80px 24px', textAlign: 'center', background: 'rgba(200, 232, 55, 0.03)', borderTop: '1px solid rgba(200,232,55,0.08)', position: 'relative', zIndex: 10 }}>
388+
389+
<h2 style={{ fontSize: 'clamp(28px, 4vw, 42px)', color: 'white', fontWeight: '800', marginBottom: '16px' }}>
390+
Ready to transform your farm? 🌾
391+
</h2>
392+
<p style={{ color: 'var(--nukrop-text-dim)', fontSize: '18px', marginBottom: '40px', maxWidth: '500px', margin: '0 auto 40px auto' }}>
393+
Download the NuKropAI Android app for free and start farming smarter today.
394+
</p>
395+
<a
396+
href="/NuKropAI_v2.0.apk"
397+
download="NuKropAI_v2.0.apk"
398+
style={{
399+
display: 'inline-flex',
400+
alignItems: 'center',
401+
gap: '12px',
402+
padding: '18px 40px',
403+
background: 'linear-gradient(135deg, var(--nukrop-accent) 0%, #D4F040 100%)',
404+
color: 'var(--nukrop-dark)',
405+
borderRadius: '16px',
406+
fontWeight: '800',
407+
fontSize: '20px',
408+
textDecoration: 'none',
409+
boxShadow: '0 12px 48px rgba(200, 232, 55, 0.4)',
410+
}}
411+
>
412+
<Download style={{ width: '24px', height: '24px' }} />
413+
Download NuKropAI v2.0
414+
</a>
415+
<p style={{ color: 'var(--nukrop-text-muted)', fontSize: '13px', marginTop: '24px' }}>
416+
Android 7.0+ • APK · 46 MB • Sideload enabled
417+
</p>
418+
<p style={{ color: 'var(--nukrop-text-muted)', fontSize: '12px', marginTop: '8px' }}>
419+
💡 To install: open the APK on your phone → tap "Install" → allow "Install from unknown sources" if prompted.
420+
</p>
421+
</section>
422+
321423
<footer style={{ padding: '40px 24px', textAlign: 'center', borderTop: '1px solid rgba(255,255,255,0.05)', background: 'rgba(0,0,0,0.2)', position: 'relative', zIndex: 10 }}>
322424
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '8px', marginBottom: '16px' }}>
323425
<Sprout style={{ color: 'var(--nukrop-text-muted)', width: '20px', height: '20px' }} />
@@ -330,3 +432,4 @@ export default function App() {
330432
</div>
331433
);
332434
}
435+

0 commit comments

Comments
 (0)