flywheel
This commit is contained in:
parent
a27c31ce03
commit
cefc70b686
75
app/components/Flywheel.tsx
Normal file
75
app/components/Flywheel.tsx
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
'use client';
|
||||
|
||||
import React from 'react';
|
||||
import Image from 'next/image';
|
||||
import { ENTRY_FEE_DINO } from '../shared';
|
||||
const Flywheel: React.FC = () => {
|
||||
return (
|
||||
<div className="py-16 bg-gradient-to-b from-gray-50 to-white">
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div className="text-center mb-12">
|
||||
<h2 className="text-4xl font-bold text-gray-900 mb-4">
|
||||
The <span className="text-green-600">$DINO</span> Ecosystem
|
||||
</h2>
|
||||
<p className="text-xl text-gray-600 max-w-2xl mx-auto">
|
||||
A sustainable ecosystem that rewards players and builds value
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="flex justify-center">
|
||||
<div className="relative w-[800px] h-[800px]">
|
||||
{/* Center $DINO Logo */}
|
||||
<div className="absolute inset-0 flex items-center justify-center">
|
||||
<div className="w-48 h-48 bg-gradient-to-br from-green-500 to-emerald-600 rounded-full flex items-center justify-center shadow-2xl z-10 ring-4 ring-green-400/20">
|
||||
<span className="text-5xl font-bold text-white">$DINO</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Flywheel Image */}
|
||||
<div className="absolute inset-0 flex items-center justify-center">
|
||||
<Image
|
||||
src="/dino_lifecycle.png"
|
||||
alt="DINO Flywheel Ecosystem"
|
||||
width={800}
|
||||
height={800}
|
||||
className="w-full h-full object-contain"
|
||||
priority
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Description below the flywheel */}
|
||||
<div className="mt-12 text-center">
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 max-w-4xl mx-auto">
|
||||
<div className="bg-blue-50 p-6 rounded-lg border border-blue-200">
|
||||
<div className="text-3xl mb-2">🎮</div>
|
||||
<h3 className="font-semibold text-blue-800 mb-2">Enter Game</h3>
|
||||
<p className="text-blue-600 text-sm">Players pay {`${ENTRY_FEE_DINO}`} $DINO to enter the game and compete for high scores</p>
|
||||
</div>
|
||||
|
||||
<div className="bg-purple-50 p-6 rounded-lg border border-purple-200">
|
||||
<div className="text-3xl mb-2">💰</div>
|
||||
<h3 className="font-semibold text-purple-800 mb-2">5% Fees</h3>
|
||||
<p className="text-purple-600 text-sm">A portion of entry fees is collected to fund the ecosystem</p>
|
||||
</div>
|
||||
|
||||
<div className="bg-red-50 p-6 rounded-lg border border-red-200">
|
||||
<div className="text-3xl mb-2">🔥</div>
|
||||
<h3 className="font-semibold text-red-800 mb-2">Buy Back & Burn</h3>
|
||||
<p className="text-red-600 text-sm">Fees are used to buy back $DINO tokens and permanently remove them</p>
|
||||
</div>
|
||||
|
||||
<div className="bg-orange-50 p-6 rounded-lg border border-orange-200">
|
||||
<div className="text-3xl mb-2">📉</div>
|
||||
<h3 className="font-semibold text-orange-800 mb-2">Reduce Supply</h3>
|
||||
<p className="text-orange-600 text-sm">Burning tokens reduces total supply, increasing scarcity and value</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Flywheel;
|
||||
|
|
@ -6,6 +6,7 @@ import { Connection, PublicKey, Transaction } from '@solana/web3.js';
|
|||
import {createTransferInstruction, getAssociatedTokenAddress, createAssociatedTokenAccountInstruction } from '@solana/spl-token';
|
||||
import Header, { HeaderRef } from './components/Header';
|
||||
import Leaderboard from './components/Leaderboard';
|
||||
import Flywheel from './components/Flywheel';
|
||||
import { CLUSTER_URL, ENTRY_FEE_DINO } from './shared';
|
||||
import { DINO_TOKEN_ADDRESS, FEE_COLLECTOR } from './constants';
|
||||
|
||||
|
|
@ -424,6 +425,9 @@ export default function Home() {
|
|||
</div>
|
||||
</main>
|
||||
)}
|
||||
|
||||
{/* Flywheel Section - Always visible */}
|
||||
<Flywheel />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
112
public/arrow.svg
Normal file
112
public/arrow.svg
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
<svg width="320" height="320" viewBox="0 0 320 320" xmlns="http://www.w3.org/2000/svg">
|
||||
<!-- Top to Right Arrow -->
|
||||
<path
|
||||
d="M 40 160 Q 160 40 280 160"
|
||||
stroke="url(#gradient1)"
|
||||
stroke-width="16"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
marker-end="url(#arrowhead1)"
|
||||
/>
|
||||
|
||||
<!-- Right to Bottom Arrow -->
|
||||
<path
|
||||
d="M 160 40 Q 280 160 160 280"
|
||||
stroke="url(#gradient2)"
|
||||
stroke-width="16"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
marker-end="url(#arrowhead2)"
|
||||
/>
|
||||
|
||||
<!-- Bottom to Left Arrow -->
|
||||
<path
|
||||
d="M 280 160 Q 160 280 40 160"
|
||||
stroke="url(#gradient3)"
|
||||
stroke-width="16"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
marker-end="url(#arrowhead3)"
|
||||
/>
|
||||
|
||||
<!-- Left to Top Arrow -->
|
||||
<path
|
||||
d="M 160 280 Q 40 160 160 40"
|
||||
stroke="url(#gradient4)"
|
||||
stroke-width="16"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
marker-end="url(#arrowhead4)"
|
||||
/>
|
||||
|
||||
<defs>
|
||||
<!-- Blue to Purple Gradient -->
|
||||
<linearGradient id="gradient1" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#3B82F6" />
|
||||
<stop offset="100%" stop-color="#8B5CF6" />
|
||||
</linearGradient>
|
||||
|
||||
<!-- Purple to Red Gradient -->
|
||||
<linearGradient id="gradient2" x1="0%" y1="0%" x2="0%" y2="100%">
|
||||
<stop offset="0%" stop-color="#8B5CF6" />
|
||||
<stop offset="100%" stop-color="#EF4444" />
|
||||
</linearGradient>
|
||||
|
||||
<!-- Red to Orange Gradient -->
|
||||
<linearGradient id="gradient3" x1="100%" y1="0%" x2="0%" y2="0%">
|
||||
<stop offset="0%" stop-color="#EF4444" />
|
||||
<stop offset="100%" stop-color="#F97316" />
|
||||
</linearGradient>
|
||||
|
||||
<!-- Orange to Blue Gradient -->
|
||||
<linearGradient id="gradient4" x1="0%" y1="100%" x2="0%" y2="0%">
|
||||
<stop offset="0%" stop-color="#F97316" />
|
||||
<stop offset="100%" stop-color="#3B82F6" />
|
||||
</linearGradient>
|
||||
|
||||
<!-- Arrowhead Markers -->
|
||||
<marker
|
||||
id="arrowhead1"
|
||||
markerWidth="20"
|
||||
markerHeight="16"
|
||||
refX="18"
|
||||
refY="8"
|
||||
orient="auto"
|
||||
>
|
||||
<polygon points="0 0, 20 8, 0 16" fill="#8B5CF6" />
|
||||
</marker>
|
||||
|
||||
<marker
|
||||
id="arrowhead2"
|
||||
markerWidth="20"
|
||||
markerHeight="16"
|
||||
refX="18"
|
||||
refY="8"
|
||||
orient="auto"
|
||||
>
|
||||
<polygon points="0 0, 20 8, 0 16" fill="#EF4444" />
|
||||
</marker>
|
||||
|
||||
<marker
|
||||
id="arrowhead3"
|
||||
markerWidth="20"
|
||||
markerHeight="16"
|
||||
refX="18"
|
||||
refY="8"
|
||||
orient="auto"
|
||||
>
|
||||
<polygon points="0 0, 20 8, 0 16" fill="#F97316" />
|
||||
</marker>
|
||||
|
||||
<marker
|
||||
id="arrowhead4"
|
||||
markerWidth="20"
|
||||
markerHeight="16"
|
||||
refX="18"
|
||||
refY="8"
|
||||
orient="auto"
|
||||
>
|
||||
<polygon points="0 0, 20 8, 0 16" fill="#3B82F6" />
|
||||
</marker>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
BIN
public/dino_flywheel.png
Normal file
BIN
public/dino_flywheel.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
BIN
public/dino_lifecycle.png
Normal file
BIN
public/dino_lifecycle.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 140 KiB |
Loading…
Reference in New Issue
Block a user