Skip to content

Commit e0f32d8

Browse files
Refactored homepage UI
- Removed repeated hero title and added concise tagline - Reordered index sections: Stats moved after ExploreSpaces - Cleaned ParticipationSection by removing duplicate stats - Added horizontal timeline to About page (Web3/4/5) - Introduced connected nodes visuals in Ecosystem and numbered features - Kept glassmorphism styling consistency across components - Implemented scroll indicator on Hero and mobile-friendly timeline X-Lovable-Edit-ID: edt-97b64c61-b6a0-4977-baa4-cb06c5f5cbfe Co-authored-by: Alien69Flow <111972684+Alien69Flow@users.noreply.github.com>
2 parents 4a9b4ac + bd76bfa commit e0f32d8

7 files changed

Lines changed: 136 additions & 184 deletions

File tree

.lovable/plan.md

Lines changed: 1 addition & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,2 @@
11

2-
3-
# UI/UX Improvements: Homepage, About Timeline & Global Polish
4-
5-
## 1. Homepage Restructure
6-
7-
### Problem
8-
The Hero repeats "Δlieπ FlΦw $pac€ DAO" which is already in the header navbar. The StatsSection sits too high (right after Hero) and feels redundant with ParticipationSection stats further down.
9-
10-
### Changes
11-
12-
**Hero (`src/components/Hero.tsx`)**
13-
- Remove the repeated title text (lines 88-98). Replace with a concise tagline/slogan only — the logo + header already establish the brand.
14-
- Keep the logo with pulse ring, gradient orbs, description text, and CTA buttons.
15-
- Add a subtle animated "scroll down" chevron indicator at the bottom.
16-
17-
**Homepage Layout (`src/pages/Index.tsx`)**
18-
- Move StatsSection below ExploreSpacesSection (after the spaces cards, before EcosystemSection) — this creates a better narrative flow: Hero → FinancialFreedom → Explore Spaces → Stats → Ecosystem → Features → Participation → Newsletter.
19-
- Remove duplicate stats from ParticipationSection (it has its own stats array with similar data like "195 Countries"). Keep only the governance features in ParticipationSection.
20-
21-
**ParticipationSection (`src/components/ParticipationSection.tsx`)**
22-
- Remove the redundant `stats` array (Countries, Data Storage, TVL, Uptime) since StatsSection already covers this.
23-
- Keep only the governance features (Token Governance, Regular Assemblies, Community Forums) and CTA.
24-
25-
## 2. About Page — Horizontal Timeline for Web3/4/5
26-
27-
**About (`src/pages/About.tsx`)**
28-
- Replace the stacked Web 5 / Web 4 / Web 3 cards (lines 62-104) with a horizontal scrollable timeline component.
29-
- Layout: A horizontal line with 3 nodes (Web 3 → Web 4 → Web 5), each with an icon, title, and description expanding below/above in alternating pattern.
30-
- On mobile: vertical timeline with connecting line.
31-
- Use `framer-motion` for scroll-triggered animations on each node.
32-
- Inspired by Linear's changelog timeline and Stripe's product timeline.
33-
34-
```text
35-
Desktop:
36-
[Web 3]────────[Web 4]────────[Web 5]
37-
Blockchain AI Neural Quantum
38-
Networks Computing
39-
```
40-
41-
## 3. Additional UI/UX Improvements (Top References)
42-
43-
**Glassmorphism consistency (global)**
44-
- Standardize all card backgrounds across pages to use `bg-alien-space-dark/60 backdrop-blur-xl` instead of mixed opacity values (currently ranges from /80 to /95).
45-
46-
**EcosystemSection (`src/components/EcosystemSection.tsx`)**
47-
- Add a "connected nodes" visual — draw SVG lines between ecosystem items to show interconnection (like Cosmos ecosystem map). Currently just a flat grid.
48-
49-
**FeaturesSection (`src/components/FeaturesSection.tsx`)**
50-
- Add number badges ("01", "02", etc.) to each feature card for visual hierarchy, similar to how Linear and Vercel present feature lists.
51-
52-
## Summary of Changes
53-
54-
| File | Change |
55-
|------|--------|
56-
| `src/components/Hero.tsx` | Remove repeated title, add scroll indicator |
57-
| `src/pages/Index.tsx` | Reorder sections (Stats after Explore) |
58-
| `src/components/ParticipationSection.tsx` | Remove duplicate stats array |
59-
| `src/pages/About.tsx` | Horizontal timeline for Web 3/4/5 |
60-
| `src/components/EcosystemSection.tsx` | Connected nodes visual |
61-
| `src/components/FeaturesSection.tsx` | Number badges on cards |
62-
63-
Total: 6 files modified. All using existing dependencies.
64-
2+
Aquí tienes el plan de acción corregido y ultra-detallado. He inyectado tus instrucciones de jerarquía, la nueva categoría estratégica CashFlow, el orden alfabético y la restauración estética del día 23.Copia este texto y pégalo directamente en el botón "Edit Plan" de Lovable antes de darle a "Approve".Academy Page Redesign Plan: Quantum Restoration & Strategic Expansion1. Hero Header: 23rd Jan RestorationPriority: Restore the high-tech visual identity exactly as it was on January 23rd.Circular Logo Frame: Restore the double-ring circular frame with depth shadows and the "Quantum Glow" (pulsating animation).Typography: Reset title to 'Nasalization' font with the original green/gold gradient and drop-shadow.Subtitle/Quote: Restore the italicized, wide-spaced subtitle with the original golden-muted color palette.Spacing: Do not over-compact. Maintain the original vertical breathing room that felt premium.2. Partners: Logical & Institutional RestructuringOrganize all partners ALPHABETICALLY within these specific categories:CategoryIncluded PartnersACADEMY PARTNERSAcademia, AulaFacil, Coursera, Cursa, edX, GrowGoogle, Hotmart, MasterClass, Mooc, SkillShare, Udacity, UNED.CASHFLOWAzrael Codex (Bitget), Predik.HEALTHFLOWMeslo Ltd, Motus DAO, My DNA Bank, Proton, Yazio.DATAFLOWAlchemy, HackMD, HackerRank.ECOFLOWClimateReanalyzer, OEGlobal, OpenUpEd.GAMEFLOWExplore, Unity Learn.SPACEFLOWESA, KAGRA, LIGO, LSC, NASA, UNESCO, UNSSC, Virgo.3. Asset & Logo IntegrityPriority 1: Use all files from /lovable-uploads/Academy/ (matching the GitHub repository).Priority 2: For missing official logos (NASA, Coursera, Proton, etc.), use high-resolution official Wiki/External URLs as previously implemented.Visuals: Maintain the grayscale to color filter on hover.Links: Ensure every partner has its functional external link.4. UI/UX Polish (Contact Us & Global)Contact Page: Fix the H1 separator by adding horizontal gradient lines (transparent -> alien-green -> transparent) to the sides of the center dot.Chat Bubble: Add the triangular "comic-style" pointer to the message bubble in the Contact section to make it look like a real chat.Interactions: Ensure all cards use the scale-[1.01] transition with a 300ms duration.5. Technical ImplementationUpdate src/pages/Academy.tsx as a single, clean file.Ensure the partnerCategories constant reflects the alphabetical order and the new CashFlow category.6. Proactive ExpansionIntegrate 2 or 3 additional high-prestige institutions in SpaceFlow or HealthFlow (e.g., SpaceX, CERN, or major BioTech labs) if high-quality logos are available, to enhance institutional weight.

src/components/EcosystemSection.tsx

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,25 @@ const EcosystemSection = () => {
103103
<p className="max-w-3xl mx-auto font-bold text-alien-gold text-[alien-gold-dark]">ΔlieπFlΦw $pac€ bridges diverse decentralized domains into a coherent, interoperable ecosystem.</p>
104104
</motion.div>
105105

106-
<div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-6">
107-
{ecosystems.map((ecosystem, index) => <EcosystemCard key={ecosystem.id} ecosystem={ecosystem} index={index} />)}
106+
{/* Connected nodes visual */}
107+
<div className="relative">
108+
{/* SVG connection lines (desktop only) */}
109+
<svg className="absolute inset-0 w-full h-full pointer-events-none hidden xl:block" style={{ zIndex: 0 }}>
110+
<defs>
111+
<linearGradient id="lineGrad" x1="0%" y1="0%" x2="100%" y2="0%">
112+
<stop offset="0%" stopColor="hsl(142 67% 45% / 0.15)" />
113+
<stop offset="50%" stopColor="hsl(48 83% 72% / 0.2)" />
114+
<stop offset="100%" stopColor="hsl(142 67% 45% / 0.15)" />
115+
</linearGradient>
116+
</defs>
117+
{/* Horizontal lines connecting columns */}
118+
{[0, 1, 2, 3].map(i => (
119+
<line key={`h-${i}`} x1={`${10 + i * 20}%`} y1="50%" x2={`${30 + i * 20}%`} y2="50%" stroke="url(#lineGrad)" strokeWidth="1" strokeDasharray="6 4" />
120+
))}
121+
</svg>
122+
<div className="relative z-10 grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-6">
123+
{ecosystems.map((ecosystem, index) => <EcosystemCard key={ecosystem.id} ecosystem={ecosystem} index={index} />)}
124+
</div>
108125
</div>
109126
</div>
110127
</section>;

src/components/FeaturesSection.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ const FeaturesSection = () => {
5656
once: true,
5757
margin: "-50px"
5858
}} className="card-border p-6 relative overflow-hidden group">
59+
{/* Number badge */}
60+
<span className="absolute top-4 right-4 text-4xl font-nasalization font-bold text-alien-gold/10 group-hover:text-alien-green/15 transition-colors duration-300 select-none">
61+
{String(index + 1).padStart(2, '0')}
62+
</span>
63+
5964
<div className="mb-6 p-4 rounded-full bg-gradient-to-br from-alien-gold-dark/20 to-alien-green-dark/20 w-fit">
6065
<div className="text-alien-gold group-hover:text-alien-green transition-colors duration-300">
6166
{feature.icon}

src/components/Hero.tsx

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -84,18 +84,19 @@ const Hero: React.FC = () => {
8484
/>
8585
</div>
8686

87-
{/* Main title */}
88-
<motion.h1
87+
{/* Tagline */}
88+
<motion.p
8989
initial={{ opacity: 0, y: -20 }}
9090
animate={{ opacity: 1, y: 0 }}
9191
transition={{ duration: 1, ease: 'easeOut' }}
92-
className="text-xl xs:text-2xl sm:text-3xl md:text-4xl lg:text-5xl xl:text-6xl font-nasalization font-extrabold leading-tight text-center hero-title mb-6 sm:mb-8 md:mb-12 tracking-tight sm:tracking-normal"
92+
className="text-lg sm:text-xl md:text-2xl font-nasalization font-bold text-center mb-6 sm:mb-8 md:mb-10 tracking-wide"
9393
>
94-
<span className="text-alien-green">Δlieπ</span>
95-
<span className="text-alien-gold">FlΦw</span>
96-
<span className="text-alien-green"> $pac€</span>
97-
<span className="text-alien-gold"> DAO</span>
98-
</motion.h1>
94+
<span className="text-alien-green">Decentralized</span>
95+
<span className="text-alien-gold"> · </span>
96+
<span className="text-alien-gold">Autonomous</span>
97+
<span className="text-alien-green"> · </span>
98+
<span className="text-alien-green">Organization</span>
99+
</motion.p>
99100

100101
{/* Star Wars inspired description */}
101102
<motion.div
@@ -141,6 +142,19 @@ const Hero: React.FC = () => {
141142
</Button>
142143
</motion.div>
143144
</div>
145+
146+
{/* Scroll down indicator */}
147+
<motion.div
148+
className="absolute bottom-6 left-1/2 -translate-x-1/2 flex flex-col items-center gap-1 cursor-pointer"
149+
animate={{ y: [0, 8, 0] }}
150+
transition={{ duration: 2, repeat: Infinity, ease: 'easeInOut' }}
151+
onClick={scrollToSpaces}
152+
>
153+
<span className="text-xs font-nasalization text-alien-gold/60 tracking-widest uppercase">Scroll</span>
154+
<svg width="20" height="12" viewBox="0 0 20 12" className="text-alien-green/50">
155+
<path d="M2 2L10 10L18 2" stroke="currentColor" strokeWidth="2" fill="none" strokeLinecap="round" />
156+
</svg>
157+
</motion.div>
144158
</section>
145159
);
146160
};

src/components/ParticipationSection.tsx

Lines changed: 2 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React from 'react';
22
import { motion } from 'framer-motion';
33
import { Button } from '@/components/ui/button';
4-
import { CircleDollarSign, Calendar, MessagesSquare, Database, Globe } from 'lucide-react';
4+
import { CircleDollarSign, Calendar, MessagesSquare } from 'lucide-react';
55

66
const features = [{
77
icon: <CircleDollarSign className="h-6 w-6 text-alien-gold" />,
@@ -17,28 +17,6 @@ const features = [{
1717
description: "Contribute to ongoing discussions and knowledge sharing in our decentralized forums."
1818
}];
1919

20-
const stats = [{
21-
value: "195",
22-
label: "Countries - DAO Members",
23-
icon: Globe,
24-
color: "text-alien-green",
25-
planetIcon: true
26-
}, {
27-
value: "161 YB",
28-
label: "Data Storage",
29-
icon: Database,
30-
color: "text-alien-gold"
31-
}, {
32-
value: "$125M",
33-
label: "Total Value Locked",
34-
icon: CircleDollarSign,
35-
color: "text-alien-gold"
36-
}, {
37-
value: "99.99%",
38-
label: "DAO Uptime",
39-
icon: Calendar,
40-
color: "text-alien-green"
41-
}];
4220

4321
const ParticipationSection = () => {
4422
return <section id="participate" className="py-20 relative">
@@ -92,55 +70,9 @@ const ParticipationSection = () => {
9270
</motion.div>)}
9371
</div>
9472
{/* Botón */}
95-
<Button className="bg-alien-gold hover:bg-alien-gold-light text-alien-space-dark font-medium px-8 py-6 text-lg rounded-full mb-12 font-nasalization">
73+
<Button className="bg-alien-gold hover:bg-alien-gold-light text-alien-space-dark font-medium px-8 py-6 text-lg rounded-full font-nasalization">
9674
Connect & Participate
9775
</Button>
98-
{/* Stats Grid - MORE TRANSPARENT */}
99-
<div className="flex justify-center mt-12 w-full">
100-
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 text-center max-w-5xl w-full">
101-
{stats.map((stat, index) => <motion.div key={index} initial={{
102-
opacity: 0,
103-
y: 20
104-
}} whileInView={{
105-
opacity: 1,
106-
y: 0
107-
}} transition={{
108-
duration: 0.5,
109-
delay: index * 0.1
110-
}} viewport={{
111-
once: true
112-
}} className="bg-alien-space-dark/30 backdrop-blur-sm p-6 rounded-xl border border-alien-gold/20 hover:border-alien-gold/40 transition-all duration-300">
113-
<div className="mx-auto mb-4">
114-
{stat.planetIcon ? (
115-
<div className="h-16 w-16 mx-auto">
116-
<img
117-
src="https://images.unsplash.com/photo-1614730321146-b6fa6a46bcb4?w=150&h=150&fit=crop"
118-
alt="Planet Earth"
119-
className="w-full h-full object-cover rounded-full animate-pulse"
120-
style={{ filter: 'drop-shadow(0 0 12px rgba(34, 197, 94, 0.6))' }}
121-
/>
122-
</div>
123-
) : (
124-
<stat.icon className={`h-16 w-16 ${stat.color} mx-auto`} />
125-
)}
126-
</div>
127-
<motion.div initial={{
128-
scale: 0.8
129-
}} whileInView={{
130-
scale: 1
131-
}} transition={{
132-
type: "spring",
133-
stiffness: 100,
134-
delay: index * 0.1 + 0.2
135-
}} viewport={{
136-
once: true
137-
}} className={`text-3xl font-bold mb-2 ${stat.color} font-nasalization`}>
138-
{stat.value}
139-
</motion.div>
140-
<div className="text-gray-300 text-sm font-[Exo]">{stat.label}</div>
141-
</motion.div>)}
142-
</div>
143-
</div>
14476
</div>
14577
</section>;
14678
};

0 commit comments

Comments
 (0)