updates to components
This commit is contained in:
parent
0f63060a3a
commit
317bd3aef9
29
index.html
29
index.html
|
|
@ -1,13 +1,34 @@
|
|||
<!doctype html>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||
<!-- Primary favicon -->
|
||||
<link rel="icon" type="image/png" href="https://i.imgur.com/Clv3Y1d.png" />
|
||||
|
||||
<!-- iOS/macOS icons -->
|
||||
<link rel="apple-touch-icon" href="https://i.imgur.com/Clv3Y1d.png" />
|
||||
<link rel="mask-icon" href="https://i.imgur.com/Clv3Y1d.png" color="#000000" />
|
||||
|
||||
<!-- Windows/IE -->
|
||||
<meta name="msapplication-TileImage" content="https://i.imgur.com/Clv3Y1d.png" />
|
||||
<meta name="msapplication-TileColor" content="#000000" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Vite + React + TS</title>
|
||||
<meta name="theme-color" content="#000000" />
|
||||
|
||||
<!-- SEO meta tags -->
|
||||
<title>Chris Wylde | Web3 Futurist</title>
|
||||
<meta name="description" content="Web3 Futurist, Nuclear Professional, and DAO Designer" />
|
||||
<meta name="keywords" content="Web3, Nuclear, DAO, Blockchain, Radiation Protection" />
|
||||
|
||||
<!-- Open Graph / Social Media -->
|
||||
<meta property="og:title" content="Chris Wylde | Web3 Futurist" />
|
||||
<meta property="og:description" content="Web3 Futurist, Nuclear Professional, and DAO Designer" />
|
||||
<meta property="og:image" content="https://i.imgur.com/Clv3Y1d.png" />
|
||||
<meta property="og:url" content="https://www.chriswylde.xyz" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
<script type="module" src="/src/main.tsx"></script>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
|
@ -62,11 +62,13 @@ export const Contact: FC<ContactProps> = ({
|
|||
}) => {
|
||||
return (
|
||||
<section id="contact" className={`min-h-screen bg-black text-white p-8 ${className}`}>
|
||||
<div className="max-w-4xl mx-auto space-y-16">
|
||||
<h2 className="text-3xl font-bold bg-gradient-to-r from-green-500 to-blue-500 bg-clip-text text-transparent">
|
||||
Connect With Me
|
||||
</h2>
|
||||
<div className="grid gap-12">
|
||||
<div className="max-w-6xl mx-auto space-y-8">
|
||||
<div className="flex items-center gap-4">
|
||||
<h2 className="text-3xl font-bold bg-gradient-to-r from-green-500 to-blue-500 bg-clip-text text-transparent">
|
||||
Connect With Me
|
||||
</h2>
|
||||
</div>
|
||||
<div className="grid gap-12 mt-8">
|
||||
{socialLinks.map((category, index) => (
|
||||
<CategorySection
|
||||
key={index}
|
||||
|
|
@ -99,7 +101,7 @@ const defaultSocialLinks = [
|
|||
{
|
||||
name: "Resume",
|
||||
icon: MdLanguage,
|
||||
url: "//https://rxresu.me/boilerrat/victorious-present-lungfish",
|
||||
url: "https://rxresu.me/boilerrat/victorious-present-lungfish",
|
||||
username: "Download PDF"
|
||||
}
|
||||
]
|
||||
|
|
@ -128,7 +130,8 @@ const defaultSocialLinks = [
|
|||
{
|
||||
name: "Telegram",
|
||||
icon: FaTelegram,
|
||||
url: "https://t.me/boilerrat"
|
||||
url: "https://t.me/boilerrat",
|
||||
username: "@boilerrat"
|
||||
},
|
||||
{
|
||||
name: "Farcaster",
|
||||
|
|
@ -138,11 +141,12 @@ const defaultSocialLinks = [
|
|||
},
|
||||
{
|
||||
name: "Lens",
|
||||
icon: BiSearch, // You might want to find a more specific Lens icon
|
||||
icon: BiSearch,
|
||||
url: "https://lenster.xyz/u/boilerrat",
|
||||
username: "boilerrat"
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
];
|
||||
|
||||
];
|
||||
export default Contact;
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
import React from 'react';
|
||||
import { Atom, Database, Shield, Binary, Users, Award } from 'lucide-react';
|
||||
import { Atom, Database, Shield, Binary, Users, Award, Wrench, Factory, Power, Coins } from 'lucide-react';
|
||||
import { ExpertiseProps, ExperienceCardProps, SectionProps } from './types';
|
||||
import { ExperienceItem } from '../../types';
|
||||
|
||||
|
|
@ -49,37 +49,54 @@ const Section: React.FC<SectionProps> = ({
|
|||
</section>
|
||||
);
|
||||
|
||||
const defaultIndustryExperience: ExperienceItem[] = [
|
||||
{
|
||||
title: "Journeyman Boilermaker",
|
||||
company: "International Brotherhood of Boilermakers",
|
||||
period: "2003 - Present",
|
||||
description: "Two decades of experience across industrial sectors, specializing in pressure vessels, heat exchangers, and critical infrastructure. Led teams in major projects nationwide.",
|
||||
icon: Wrench
|
||||
},
|
||||
{
|
||||
title: "Industrial Operations",
|
||||
company: "Multiple Sectors",
|
||||
period: "2003 - Present",
|
||||
description: "Extensive experience in oil refineries, steel mills, and power generation facilities. Specialized in maintenance, repairs, and large-scale equipment installations.",
|
||||
icon: Factory
|
||||
}
|
||||
];
|
||||
|
||||
const defaultNuclearExperience: ExperienceItem[] = [
|
||||
{
|
||||
title: "Radiation Protection",
|
||||
company: "Makwa-Cahill/Nuvia",
|
||||
period: "2019 - Present",
|
||||
description: "Delivering comprehensive Radiation Protection services for Bruce Nuclear's Major Component Replacement Project.",
|
||||
description: "Lead Radiation Protection Specialist for Bruce Nuclear's Major Component Replacement Project. Managing radiological safety for one of North America's largest nuclear refurbishment projects.",
|
||||
icon: Shield
|
||||
},
|
||||
{
|
||||
title: "Journeyman Boilermaker",
|
||||
company: "International Brotherhood of Boilermakers",
|
||||
title: "Nuclear Maintenance and Refurbishment",
|
||||
company: "Multiple Nuclear Facilities",
|
||||
period: "2003 - Present",
|
||||
description: "Leading diverse projects in nuclear facilities, focusing on reactor refurbishment at top facilities.",
|
||||
icon: Binary
|
||||
description: "20 years of nuclear experience including Pickering, Darlington, and Bruce Power. Specialized focus on reactor refurbishment and maintenance",
|
||||
icon: Power
|
||||
}
|
||||
];
|
||||
|
||||
const defaultWeb3Experience: ExperienceItem[] = [
|
||||
{
|
||||
title: "Public HAUS Champion",
|
||||
title: "DAO Governance Lead",
|
||||
company: "Public HAUS",
|
||||
period: "2022 - Present",
|
||||
description: "Secured $197K in grants from Moloch DAO, Optimism, and Public Nouns. Leading onboarding and governance.",
|
||||
description: "Secured $300K+ in grants through governance proposals to Moloch DAO, Optimism, Plurality Labs and Public Nouns. Pioneering governance frameworks and community development initiatives.",
|
||||
icon: Users
|
||||
},
|
||||
{
|
||||
title: "Founder",
|
||||
company: "DAO Masons",
|
||||
title: "Web3 Innovation",
|
||||
company: "DAO Masons & MetaCartel",
|
||||
period: "2022 - 2024",
|
||||
description: "Distributed $100K ARB tokens through Grant Ships, empowering decentralized organizations.",
|
||||
icon: Award
|
||||
description: "Founded DAO Masons, led Grant Ships program distributing $100K ARB tokens. Active contributor to MetaCartel, driving Web3 adoption and innovation in DAOs.",
|
||||
icon: Coins
|
||||
}
|
||||
];
|
||||
|
||||
|
|
@ -91,6 +108,16 @@ export const Expertise: React.FC<ExpertiseProps> = ({
|
|||
return (
|
||||
<div className={`min-h-screen bg-black text-white p-8 ${className}`}>
|
||||
<div className="max-w-6xl mx-auto space-y-16">
|
||||
{/* Industry Section */}
|
||||
<Section
|
||||
id="industry"
|
||||
title="Industrial Expertise"
|
||||
icon={Factory}
|
||||
items={defaultIndustryExperience}
|
||||
gradientFrom="blue-500"
|
||||
gradientTo="purple-500"
|
||||
/>
|
||||
|
||||
{/* Nuclear Section */}
|
||||
<Section
|
||||
id="nuclear"
|
||||
|
|
@ -113,4 +140,6 @@ export const Expertise: React.FC<ExpertiseProps> = ({
|
|||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
};
|
||||
|
||||
export default Expertise;
|
||||
|
|
@ -7,12 +7,14 @@ const defaultIntroText = `> const profile = {
|
|||
alias: "boilerrat",
|
||||
roles: [
|
||||
"Radiation Protection Specialist",
|
||||
"Journeyman Boilermaker",
|
||||
"Web3 Innovator",
|
||||
"DAO Designer"
|
||||
],
|
||||
expertise: {
|
||||
nuclear: "19+ years in Radiation Protection",
|
||||
web3: "Lead multiple DAOs, $300K+ in grants"
|
||||
boilermaker: "20+ years across industrial sectors, nationwide experience",
|
||||
nuclear: "20 years total, 8 years specialized in radiation protection",
|
||||
web3: "Lead multiple DAOs, $300K+ in grants secured and distributed"
|
||||
}
|
||||
};`;
|
||||
|
||||
|
|
@ -42,7 +44,7 @@ const quickLinks: QuickLink[] = [
|
|||
}
|
||||
];
|
||||
|
||||
export const Hero: React.FC<HeroProps> = ({
|
||||
export const Hero: React.FC<HeroProps> = ({
|
||||
className = '',
|
||||
customIntroText
|
||||
}) => {
|
||||
|
|
@ -95,10 +97,10 @@ export const Hero: React.FC<HeroProps> = ({
|
|||
<div className="space-y-8 opacity-0 animate-fade-in">
|
||||
<div className="text-center">
|
||||
<h1 className="text-4xl font-bold bg-gradient-to-r from-blue-500 to-purple-500 bg-clip-text text-transparent mb-4">
|
||||
Bridging Nuclear & Web3
|
||||
Bridging Industry & Web3
|
||||
</h1>
|
||||
<p className="text-gray-400 text-lg">
|
||||
Building the future of decentralized governance while ensuring nuclear safety
|
||||
Bringing decades of industrial expertise to decentralized innovation
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
@ -121,4 +123,6 @@ export const Hero: React.FC<HeroProps> = ({
|
|||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
};
|
||||
|
||||
export default Hero;
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
import React, { useState, useEffect, useCallback } from 'react';
|
||||
import { Home, Atom, Database, Award, Image, User } from 'lucide-react';
|
||||
import { Home, Atom, Database, Award, Image, User, Factory } from 'lucide-react';
|
||||
import { NavItem } from '../../types';
|
||||
import { NavigationProps, ScrollState } from './types';
|
||||
|
||||
|
|
@ -15,6 +15,7 @@ export const Navigation: React.FC<NavigationProps> = ({
|
|||
|
||||
const defaultNavItems: NavItem[] = [
|
||||
{ id: 'home', icon: Home, label: 'Home' },
|
||||
{ id: 'industry', icon: Factory, label: 'Industry' },
|
||||
{ id: 'nuclear', icon: Atom, label: 'Nuclear' },
|
||||
{ id: 'web3', icon: Database, label: 'Web3' },
|
||||
{ id: 'achievements', icon: Award, label: 'Achievements' },
|
||||
|
|
@ -92,4 +93,6 @@ export const Navigation: React.FC<NavigationProps> = ({
|
|||
</div>
|
||||
</nav>
|
||||
);
|
||||
};
|
||||
};
|
||||
|
||||
export default Navigation;
|
||||
|
|
@ -2,16 +2,15 @@ import type { FC } from 'react';
|
|||
import { ChevronRight } from 'lucide-react';
|
||||
import type { SkillsProps, SkillCardProps, SkillBarProps, Skill } from './types';
|
||||
|
||||
const SkillBar: FC<SkillBarProps> = ({
|
||||
level,
|
||||
const SkillBar: FC<SkillBarProps> = ({
|
||||
level,
|
||||
maxLevel = 5,
|
||||
className = ''
|
||||
}) => {
|
||||
const percentage = (level / maxLevel) * 100;
|
||||
|
||||
return (
|
||||
<div className={`h-2 w-32 bg-gray-800 rounded-full overflow-hidden ${className}`}>
|
||||
<div
|
||||
<div
|
||||
className="h-full bg-gradient-to-r from-blue-500 to-purple-500 rounded-full transform origin-left transition-transform duration-1000 ease-out"
|
||||
style={{ transform: `scaleX(${percentage / 100})` }}
|
||||
/>
|
||||
|
|
@ -19,9 +18,9 @@ const SkillBar: FC<SkillBarProps> = ({
|
|||
);
|
||||
};
|
||||
|
||||
const SkillCard: FC<SkillCardProps> = ({
|
||||
const SkillCard: FC<SkillCardProps> = ({
|
||||
skill,
|
||||
className = ''
|
||||
className = ''
|
||||
}) => (
|
||||
<div className={`bg-gray-900 rounded-lg p-6 hover:bg-gray-800 transition-all duration-300 ${className}`}>
|
||||
<div className="flex items-center justify-between mb-4">
|
||||
|
|
@ -120,13 +119,13 @@ export const Skills: FC<SkillsProps> = ({
|
|||
}) => {
|
||||
return (
|
||||
<section id="skills" className={`min-h-screen bg-black text-white p-8 ${className}`}>
|
||||
<div className="max-w-6xl mx-auto">
|
||||
<div className="flex items-center gap-4">
|
||||
<div className="max-w-6xl mx-auto space-y-8">
|
||||
<div className="flex items-center gap-4">
|
||||
<h2 className="text-3xl font-bold bg-gradient-to-r from-blue-500 to-purple-500 bg-clip-text text-transparent">
|
||||
Professional Skills
|
||||
</h2>
|
||||
</div>
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-6 mt-8">
|
||||
{skills.map((skill, index) => (
|
||||
<SkillCard key={index} skill={skill} />
|
||||
))}
|
||||
|
|
@ -134,4 +133,6 @@ export const Skills: FC<SkillsProps> = ({
|
|||
</div>
|
||||
</section>
|
||||
);
|
||||
};
|
||||
};
|
||||
|
||||
export default Skills;
|
||||
Loading…
Reference in New Issue