membership

This commit is contained in:
Emre
2025-09-30 14:19:44 +03:00
parent 751a69804a
commit dd19d9c377
4 changed files with 61 additions and 63 deletions

BIN
src/assets/free.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 KiB

View File

@@ -1,9 +1,11 @@
import { useState } from 'react'; import { useState } from 'react';
import { motion } from 'framer-motion'; import { motion } from 'framer-motion';
import { Wallet, Database, Users, Cloud, Eye, X, Scale, MessageSquare, Bot, Lock, Check } from 'lucide-react'; import { Wallet, Database, Users, Cloud, Eye, X, Scale, MessageSquare, Bot, Lock, Check } from 'lucide-react';
import SocietyTerminal from './SocietyTerminal';
const MembershipOptions = () => { const MembershipOptions = () => {
const [selectedPlan, setSelectedPlan] = useState('explorer'); const [selectedPlan, setSelectedPlan] = useState('resident');
const [showSocietyTerminal, setShowSocietyTerminal] = useState(false);
const fadeInUp = { const fadeInUp = {
hidden: { opacity: 0, y: 30 }, hidden: { opacity: 0, y: 30 },
@@ -16,7 +18,7 @@ const MembershipOptions = () => {
}; };
return ( return (
<section className="min-h-screen bg-black text-white py-16 px-4" style={{fontFamily: 'Avenir, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'}}> <section className="min-h-screen bg-black text-white py-20 px-4" style={{fontFamily: 'Avenir, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'}}>
<div className="max-w-6xl mx-auto"> <div className="max-w-6xl mx-auto">
{/* Toggle Pills - Centered */} {/* Toggle Pills - Centered */}
<motion.div <motion.div
@@ -28,20 +30,20 @@ const MembershipOptions = () => {
<div className="inline-flex bg-zinc-900 rounded-full p-1"> <div className="inline-flex bg-zinc-900 rounded-full p-1">
<button <button
onClick={() => setSelectedPlan('explorer')} onClick={() => setSelectedPlan('explorer')}
className={`px-6 py-2 rounded-full text-sm font-medium transition-all duration-200 min-w-[120px] ${ className={`btn-primary animate-pulse-glow text-sm px-4 py-2 transition-all duration-200 ${
selectedPlan === 'explorer' selectedPlan === 'explorer'
? 'bg-gray-300 text-black' ? 'btn-primary-selected'
: 'text-gray-500 hover:text-gray-300' : ''
}`} }`}
> >
EXPLORER EXPLORER
</button> </button>
<button <button
onClick={() => setSelectedPlan('resident')} onClick={() => setSelectedPlan('resident')}
className={`px-6 py-2 rounded-full text-sm font-medium transition-all duration-200 min-w-[120px] ${ className={`btn-primary animate-pulse-glow text-sm px-4 py-2 transition-all duration-200 ${
selectedPlan === 'resident' selectedPlan === 'resident'
? 'bg-gray-300 text-black' ? 'btn-primary-selected'
: 'text-gray-500 hover:text-gray-300' : ''
}`} }`}
> >
RESIDENT RESIDENT
@@ -66,23 +68,12 @@ const MembershipOptions = () => {
}}> }}>
<div className="flex items-center justify-between gap-12"> <div className="flex items-center justify-between gap-12">
<div className="flex-1"> <div className="flex-1">
<h1 className="text-4xl lg:text-5xl font-bold mb-4">Explorer Tier</h1> <h1 className="text-4xl lg:text-5xl font-bold mb-3">Explorer Tier</h1>
<div className="mb-3"> <div className="mb-3">
<span className="text-4xl font-bold">0</span> <span className="text-4xl font-bold">Free</span>
<span className="text-gray-400 text-lg">/month</span>
</div>
<p className="text-gray-400 text-base">Mycelium Network Entry Point</p>
</div>
{/* Mascot/Character Placeholder */}
<div className="hidden lg:flex flex-shrink-0 items-center justify-center">
<div className="w-64 h-52 flex items-center justify-center">
<div className="w-36 h-36 rounded-full flex items-center justify-center" style={{
background: 'radial-gradient(circle, rgba(34, 211, 238, 0.3), rgba(6, 182, 212, 0.1))'
}}>
<span className="text-gray-500 text-sm">Network Mascot</span>
</div>
</div> </div>
<span className="text-cyan-400 text-sm font-semibold">Mycelium Network Entry Point</span>
<p className="text-gray-400 text-sm">No access to full suite</p>
</div> </div>
</div> </div>
</div> </div>
@@ -93,12 +84,15 @@ const MembershipOptions = () => {
Everything you're getting with Explorer Tier Everything you're getting with Explorer Tier
</h2> </h2>
<div className="max-w-4xl mx-auto" style={{ <div
className="mb-12"
style={{
background: 'linear-gradient(to bottom, #1a1a1a, #0a0a0a)', background: 'linear-gradient(to bottom, #1a1a1a, #0a0a0a)',
border: '1px solid rgba(34, 211, 238, 0.25)', border: '1px solid rgba(34, 211, 238, 0.35)',
padding: '48px 56px', padding: '48px 56px',
borderRadius: '24px' borderRadius: '24px'
}}> }}
>
<div className="space-y-6"> <div className="space-y-6">
{/* Feature 1 */} {/* Feature 1 */}
<div className="flex items-start gap-4"> <div className="flex items-start gap-4">
@@ -192,6 +186,16 @@ const MembershipOptions = () => {
</div> </div>
</div> </div>
</div> </div>
{/* CTA Button for Explorer Tier */}
<div className="flex justify-center">
<motion.button
className="w-full btn-primary animate-pulse-glow whitespace-nowrap font-mono"
onClick={() => setShowSocietyTerminal(true)}
>
Explore the Network
</motion.button>
</div>
</motion.div> </motion.div>
)} )}
@@ -213,25 +217,12 @@ const MembershipOptions = () => {
<div className="flex items-center justify-between gap-12"> <div className="flex items-center justify-between gap-12">
<div className="flex-1"> <div className="flex-1">
<h1 className="text-4xl lg:text-5xl font-bold mb-3">Digital Resident</h1> <h1 className="text-4xl lg:text-5xl font-bold mb-3">Digital Resident</h1>
<span className="text-cyan-400 text-sm font-semibold">with legal standing</span>
<div className="mt-5 mb-3"> <div className="mt-5 mb-3">
<span className="text-4xl font-bold">10$</span> <span className="text-4xl font-bold">10$</span>
<span className="text-gray-400 text-lg">/month*</span> <span className="text-gray-400 text-lg">/month</span>
</div>
<p className="text-gray-400 text-sm">120$ for 2 years*</p>
<p className="text-gray-400 text-sm">only for Early Adopters - limited</p>
</div>
{/* Mascot/Character Placeholder */}
<div className="hidden lg:flex flex-shrink-0 items-center justify-center">
<div className="w-64 h-52 flex items-center justify-center">
<div className="grid grid-cols-2 gap-3">
<div className="w-20 h-20 rounded-2xl" style={{backgroundColor: 'rgba(22, 163, 74, 0.3)'}}></div>
<div className="w-20 h-20 rounded-2xl" style={{backgroundColor: 'rgba(34, 211, 238, 0.3)'}}></div>
<div className="w-20 h-20 rounded-2xl" style={{backgroundColor: 'rgba(147, 51, 234, 0.3)'}}></div>
<div className="w-20 h-20 rounded-2xl" style={{backgroundColor: 'rgba(234, 88, 12, 0.3)'}}></div>
</div>
</div> </div>
<span className="text-cyan-400 text-sm font-semibold">120$ for 2 year</span>
<p className="text-gray-400 text-sm">for limited time for Early Adopters</p>
</div> </div>
</div> </div>
</div> </div>
@@ -250,12 +241,15 @@ const MembershipOptions = () => {
What You Get as a Digital Resident What You Get as a Digital Resident
</h2> </h2>
<div style={{ <div
className="mb-12"
style={{
background: 'linear-gradient(to bottom, #1a1a1a, #0a0a0a)', background: 'linear-gradient(to bottom, #1a1a1a, #0a0a0a)',
border: '1px solid rgba(34, 211, 238, 0.35)', border: '1px solid rgba(34, 211, 238, 0.35)',
padding: '48px 56px', padding: '48px 56px',
borderRadius: '24px' borderRadius: '24px'
}}> }}
>
<div className="space-y-6"> <div className="space-y-6">
{/* Feature 1 - Legal & Financial */} {/* Feature 1 - Legal & Financial */}
<div className="flex items-start gap-4"> <div className="flex items-start gap-4">
@@ -350,15 +344,10 @@ const MembershipOptions = () => {
</div> </div>
{/* CTA Button */} {/* CTA Button */}
<div className="mt-8"> <div className="flex justify-center">
<motion.button <motion.button
className="w-full py-4 text-black text-base font-bold transition-all duration-300" className="w-full btn-primary animate-pulse-glow whitespace-nowrap font-mono"
style={{ onClick={() => setShowSocietyTerminal(true)}
background: 'linear-gradient(to right, rgb(6, 182, 212), rgb(34, 211, 238))',
borderRadius: '16px'
}}
whileHover={{ scale: 1.02 }}
whileTap={{ scale: 0.98 }}
> >
Become a Digital Resident Become a Digital Resident
</motion.button> </motion.button>
@@ -366,6 +355,10 @@ const MembershipOptions = () => {
</div> </div>
</motion.div> </motion.div>
)} )}
{showSocietyTerminal && (
<SocietyTerminal showTerminal={showSocietyTerminal} setShowTerminal={setShowSocietyTerminal} />
)}
</div> </div>
</section> </section>
); );

View File

@@ -5,7 +5,6 @@ import nomadImg from '../assets/nomad.png';
import creatorImg from '../assets/creator.png'; import creatorImg from '../assets/creator.png';
import developerImg from '../assets/developer.png'; import developerImg from '../assets/developer.png';
import communityImg from '../assets/community.png'; import communityImg from '../assets/community.png';
import mushroomImg from '../assets/mushroom.png';
const ScrollingCards = () => { const ScrollingCards = () => {
const cards = [ const cards = [

View File

@@ -133,6 +133,12 @@ button {
transform: scale(1.05); transform: scale(1.05);
} }
.btn-primary-selected {
background: #00d9ff;
color: #000000;
border: 2px solid #00d9ff;
}
/* Container widths */ /* Container widths */
.container-width { .container-width {
max-width: 56rem; max-width: 56rem;