firecontrol / index.html
LukasBe's picture
Add 3 files
19beeda verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tomáš's FIRE Mission Control</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: {
50: '#f0f9ff',
100: '#e0f2fe',
200: '#bae6fd',
300: '#7dd3fc',
400: '#38bdf8',
500: '#0ea5e9',
600: '#0284c7',
700: '#0369a1',
800: '#075985',
900: '#0c4a6e',
},
secondary: {
50: '#f5f3ff',
100: '#ede9fe',
200: '#ddd6fe',
300: '#c4b5fd',
400: '#a78bfa',
500: '#8b5cf6',
600: '#7c3aed',
700: '#6d28d9',
800: '#5b21b6',
900: '#4c1d95',
},
dark: {
800: '#1e293b',
900: '#0f172a',
}
},
fontFamily: {
sans: ['Inter', 'sans-serif'],
},
}
}
}
</script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
body {
font-family: 'Inter', sans-serif;
background-color: #f8fafc;
}
.card {
background: white;
border-radius: 12px;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px -1px rgba(0, 0, 0, 0.02);
transition: all 0.2s ease;
}
.card:hover {
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.05), 0 4px 6px -2px rgba(0, 0, 0, 0.03);
transform: translateY(-2px);
}
.progress-bar {
height: 8px;
border-radius: 4px;
}
.chart-container {
height: 200px;
position: relative;
}
.gradient-bg {
background: linear-gradient(135deg, #0ea5e9 0%, #8b5cf6 100%);
}
.nav-item {
position: relative;
}
.nav-item.active:after {
content: '';
position: absolute;
bottom: -8px;
left: 0;
width: 100%;
height: 2px;
background-color: #0ea5e9;
}
.notification-dot {
width: 8px;
height: 8px;
border-radius: 50%;
background-color: #ef4444;
position: absolute;
top: 3px;
right: 3px;
}
</style>
</head>
<body class="text-gray-800">
<!-- Main Container -->
<div class="min-h-screen flex flex-col">
<!-- Top Navigation -->
<nav class="bg-white border-b border-gray-100 px-6 py-4 flex items-center justify-between">
<div class="flex items-center space-x-8">
<div class="flex items-center">
<div class="gradient-bg w-8 h-8 rounded-lg flex items-center justify-center">
<i class="fas fa-rocket text-white text-sm"></i>
</div>
<span class="ml-2 text-xl font-bold text-gray-800">FIRE<span class="text-primary-600">Control</span></span>
</div>
<div class="hidden md:flex space-x-6">
<a href="#" class="nav-item active font-medium text-primary-600">Dashboard</a>
<a href="#" class="nav-item font-medium text-gray-500 hover:text-primary-600">Portfolio</a>
<a href="#" class="nav-item font-medium text-gray-500 hover:text-primary-600">Planning</a>
<a href="#" class="nav-item font-medium text-gray-500 hover:text-primary-600">Insights</a>
</div>
</div>
<div class="flex items-center space-x-4">
<div class="relative">
<button class="w-9 h-9 rounded-full bg-gray-100 flex items-center justify-center text-gray-500 hover:bg-gray-200">
<i class="fas fa-bell"></i>
<span class="notification-dot"></span>
</button>
</div>
<div class="flex items-center">
<div class="w-9 h-9 rounded-full bg-primary-100 flex items-center justify-center text-primary-600 font-medium">T</div>
<span class="ml-2 hidden md:block font-medium">Tomáš</span>
</div>
</div>
</nav>
<!-- Main Content -->
<div class="flex-1 px-6 py-6">
<div class="max-w-7xl mx-auto">
<!-- Header -->
<div class="flex flex-col md:flex-row md:items-center md:justify-between mb-8">
<div>
<h1 class="text-2xl md:text-3xl font-bold text-gray-900">Welcome back, Tomáš</h1>
<p class="text-gray-500 mt-1">Here's your financial independence dashboard</p>
</div>
<div class="mt-4 md:mt-0">
<button class="flex items-center space-x-2 bg-primary-600 hover:bg-primary-700 text-white px-4 py-2 rounded-lg font-medium">
<i class="fas fa-plus text-sm"></i>
<span>Add Transaction</span>
</button>
</div>
</div>
<!-- Key Metrics -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-8">
<!-- Net Worth -->
<div class="card p-6">
<div class="flex items-center justify-between">
<div>
<p class="text-sm font-medium text-gray-500">Net Worth</p>
<p class="text-2xl font-bold mt-1">$315,000</p>
</div>
<div class="w-12 h-12 rounded-full bg-green-50 flex items-center justify-center">
<i class="fas fa-chart-line text-green-500"></i>
</div>
</div>
<div class="mt-4 flex items-center">
<span class="text-sm font-medium text-green-500">+5.2k</span>
<span class="text-sm text-gray-500 ml-2">this month</span>
</div>
</div>
<!-- FI Progress -->
<div class="card p-6">
<div class="flex items-center justify-between">
<div>
<p class="text-sm font-medium text-gray-500">FI Progress</p>
<p class="text-2xl font-bold mt-1">26.3%</p>
</div>
<div class="w-12 h-12 rounded-full bg-blue-50 flex items-center justify-center">
<i class="fas fa-flag text-blue-500"></i>
</div>
</div>
<div class="mt-4">
<div class="flex justify-between text-sm text-gray-500 mb-1">
<span>$315k</span>
<span>$1.2M</span>
</div>
<div class="progress-bar bg-gray-100">
<div class="progress-bar bg-blue-500 rounded-full" style="width: 26.3%"></div>
</div>
</div>
</div>
<!-- Savings Rate -->
<div class="card p-6">
<div class="flex items-center justify-between">
<div>
<p class="text-sm font-medium text-gray-500">Savings Rate</p>
<p class="text-2xl font-bold mt-1">48%</p>
</div>
<div class="w-12 h-12 rounded-full bg-purple-50 flex items-center justify-center">
<i class="fas fa-piggy-bank text-purple-500"></i>
</div>
</div>
<div class="mt-4">
<div class="flex justify-between text-sm text-gray-500 mb-1">
<span>Current</span>
<span>Target: 50%</span>
</div>
<div class="progress-bar bg-gray-100">
<div class="progress-bar bg-purple-500 rounded-full" style="width: 96%"></div>
</div>
</div>
</div>
<!-- Time to FI -->
<div class="card p-6">
<div class="flex items-center justify-between">
<div>
<p class="text-sm font-medium text-gray-500">Time to FI</p>
<p class="text-2xl font-bold mt-1">~11 Years</p>
</div>
<div class="w-12 h-12 rounded-full bg-amber-50 flex items-center justify-center">
<i class="fas fa-hourglass-half text-amber-500"></i>
</div>
</div>
<div class="mt-4">
<div class="text-sm text-gray-500">At current rate & 6% growth</div>
</div>
</div>
</div>
<!-- Main Content Grid -->
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
<!-- Left Column -->
<div class="space-y-6">
<!-- Income & Savings -->
<div class="card p-6">
<div class="flex items-center justify-between mb-4">
<h2 class="text-lg font-semibold">Income & Savings</h2>
<button class="text-primary-600 hover:text-primary-800 text-sm font-medium">Details</button>
</div>
<div class="space-y-4">
<div>
<p class="text-sm text-gray-500">Monthly Gross Income</p>
<p class="font-medium">$7,800 <span class="text-gray-500">(Main)</span> + $450 <span class="text-gray-500">(Side)</span></p>
</div>
<div>
<p class="text-sm text-gray-500">Monthly Net Income</p>
<p class="font-medium">$5,850</p>
</div>
<div>
<p class="text-sm text-gray-500">Automated Savings</p>
<p class="font-medium text-green-500">$2,800</p>
<div class="mt-2 space-y-1">
<div class="flex items-center justify-between text-sm">
<div class="flex items-center">
<div class="w-2 h-2 rounded-full bg-blue-500 mr-2"></div>
<span>401k (inc. match)</span>
</div>
<span>$1,600</span>
</div>
<div class="flex items-center justify-between text-sm">
<div class="flex items-center">
<div class="w-2 h-2 rounded-full bg-purple-500 mr-2"></div>
<span>Roth IRA</span>
</div>
<span>$541</span>
</div>
<div class="flex items-center justify-between text-sm">
<div class="flex items-center">
<div class="w-2 h-2 rounded-full bg-green-500 mr-2"></div>
<span>Taxable Brokerage</span>
</div>
<span>$659</span>
</div>
</div>
</div>
</div>
<button class="mt-6 w-full border border-primary-100 bg-primary-50 text-primary-600 hover:bg-primary-100 font-medium py-2 px-4 rounded-lg transition duration-150">
Adjust Savings Allocation
</button>
</div>
<!-- Expenses -->
<div class="card p-6">
<div class="flex items-center justify-between mb-4">
<h2 class="text-lg font-semibold">Monthly Expenses</h2>
<button class="text-primary-600 hover:text-primary-800 text-sm font-medium">Details</button>
</div>
<div class="mb-4">
<p class="text-sm text-gray-500">Total Monthly Expenses</p>
<p class="font-medium text-red-500">$3,050</p>
</div>
<div class="space-y-3">
<div class="flex items-center justify-between">
<div class="flex items-center">
<div class="w-3 h-3 rounded-full bg-amber-500 mr-3"></div>
<span class="text-sm">Housing</span>
</div>
<span class="text-sm font-medium">$1,450</span>
</div>
<div class="flex items-center justify-between">
<div class="flex items-center">
<div class="w-3 h-3 rounded-full bg-green-500 mr-3"></div>
<span class="text-sm">Food</span>
</div>
<span class="text-sm font-medium">$550</span>
</div>
<div class="flex items-center justify-between">
<div class="flex items-center">
<div class="w-3 h-3 rounded-full bg-blue-500 mr-3"></div>
<span class="text-sm">Transportation</span>
</div>
<span class="text-sm font-medium">$300</span>
</div>
<div class="flex items-center justify-between">
<div class="flex items-center">
<div class="w-3 h-3 rounded-full bg-purple-500 mr-3"></div>
<span class="text-sm">Utilities</span>
</div>
<span class="text-sm font-medium">$250</span>
</div>
<div class="flex items-center justify-between">
<div class="flex items-center">
<div class="w-3 h-3 rounded-full bg-red-500 mr-3"></div>
<span class="text-sm">Discretionary</span>
</div>
<span class="text-sm font-medium">$350</span>
</div>
</div>
<div class="chart-container mt-6 bg-gray-50 rounded-lg flex items-center justify-center">
<p class="text-gray-400">Spending breakdown chart</p>
</div>
<button class="mt-6 w-full border border-amber-100 bg-amber-50 text-amber-600 hover:bg-amber-100 font-medium py-2 px-4 rounded-lg transition duration-150">
Review Spending Opportunities
</button>
</div>
</div>
<!-- Middle Column -->
<div class="space-y-6">
<!-- Investments -->
<div class="card p-6">
<div class="flex items-center justify-between mb-4">
<h2 class="text-lg font-semibold">Investment Portfolio</h2>
<button class="text-primary-600 hover:text-primary-800 text-sm font-medium">Details</button>
</div>
<div class="mb-4">
<p class="text-sm text-gray-500">Total Invested Assets</p>
<p class="font-medium">$295,000</p>
</div>
<div class="flex items-center justify-between mb-4">
<div class="flex items-center space-x-2">
<div class="w-3 h-3 rounded-full bg-blue-500"></div>
<span class="text-sm">Stocks (Index Funds)</span>
</div>
<span class="text-sm font-medium">85%</span>
</div>
<div class="flex items-center justify-between mb-4">
<div class="flex items-center space-x-2">
<div class="w-3 h-3 rounded-full bg-green-500"></div>
<span class="text-sm">Bonds</span>
</div>
<span class="text-sm font-medium">10%</span>
</div>
<div class="flex items-center justify-between">
<div class="flex items-center space-x-2">
<div class="w-3 h-3 rounded-full bg-gray-400"></div>
<span class="text-sm">Cash</span>
</div>
<span class="text-sm font-medium">5%</span>
</div>
<div class="chart-container mt-6 bg-gray-50 rounded-lg flex items-center justify-center">
<p class="text-gray-400">Portfolio performance YTD (+8.2%)</p>
</div>
<div class="grid grid-cols-2 gap-3 mt-6">
<button class="w-full bg-primary-600 hover:bg-primary-700 text-white font-medium py-2 px-4 rounded-lg transition duration-150">
View Holdings
</button>
<button class="w-full border border-primary-200 text-primary-600 hover:bg-primary-50 font-medium py-2 px-4 rounded-lg transition duration-150">
Rebalance
</button>
</div>
</div>
<!-- FI Plan -->
<div class="card p-6">
<div class="flex items-center justify-between mb-4">
<h2 class="text-lg font-semibold">FI / Retirement Plan</h2>
<button class="text-primary-600 hover:text-primary-800 text-sm font-medium">Details</button>
</div>
<div class="space-y-4">
<div>
<p class="text-sm text-gray-500">Target FI Number</p>
<p class="font-medium">$1,200,000</p>
</div>
<div>
<p class="text-sm text-gray-500">Desired Annual Retirement Income</p>
<p class="font-medium">$48,000 <span class="text-gray-500">(4% SWR)</span></p>
</div>
<div>
<p class="text-sm text-gray-500">Current Projected Retirement Age</p>
<p class="font-medium">49</p>
</div>
</div>
<div class="chart-container mt-6 bg-gray-50 rounded-lg flex items-center justify-center">
<p class="text-gray-400">FI projection timeline</p>
</div>
<button class="mt-6 w-full border border-purple-100 bg-purple-50 text-purple-600 hover:bg-purple-100 font-medium py-2 px-4 rounded-lg transition duration-150">
Run Scenarios
</button>
</div>
</div>
<!-- Right Column -->
<div class="space-y-6">
<!-- Notifications -->
<div class="card p-6">
<div class="flex items-center justify-between mb-4">
<h2 class="text-lg font-semibold">Notifications</h2>
<button class="text-primary-600 hover:text-primary-800 text-sm font-medium">View All</button>
</div>
<div class="space-y-4">
<div class="p-4 bg-green-50 rounded-lg border border-green-100">
<div class="flex items-start">
<div class="w-8 h-8 rounded-full bg-green-100 flex items-center justify-center text-green-600 mr-3">
<i class="fas fa-trophy text-sm"></i>
</div>
<div>
<p class="font-medium text-green-800">Milestone Achieved!</p>
<p class="text-sm text-green-600 mt-1">Net worth crossed $300k this month. Keep it up!</p>
</div>
</div>
</div>
<div class="p-4 bg-amber-50 rounded-lg border border-amber-100">
<div class="flex items-start">
<div class="w-8 h-8 rounded-full bg-amber-100 flex items-center justify-center text-amber-600 mr-3">
<i class="fas fa-exclamation-circle text-sm"></i>
</div>
<div>
<p class="font-medium text-amber-800">IRA Contribution</p>
<p class="text-sm text-amber-600 mt-1">You've contributed $3,250 of $7,000 limit for 2024.</p>
</div>
</div>
</div>
<div class="p-4 bg-blue-50 rounded-lg border border-blue-100">
<div class="flex items-start">
<div class="w-8 h-8 rounded-full bg-blue-100 flex items-center justify-center text-blue-600 mr-3">
<i class="fas fa-lightbulb text-sm"></i>
</div>
<div>
<p class="font-medium text-blue-800">Savings Opportunity</p>
<p class="text-sm text-blue-600 mt-1">Consider increasing taxable brokerage investment by $100/month.</p>
</div>
</div>
</div>
</div>
<button class="mt-6 w-full bg-primary-600 hover:bg-primary-700 text-white font-medium py-2 px-4 rounded-lg transition duration-150">
Maximize IRA Contribution
</button>
</div>
<!-- Learning -->
<div class="card p-6">
<div class="flex items-center justify-between mb-4">
<h2 class="text-lg font-semibold">FIRE Insights</h2>
<button class="text-primary-600 hover:text-primary-800 text-sm font-medium">View All</button>
</div>
<div class="space-y-4">
<div class="p-3 hover:bg-gray-50 rounded-lg transition cursor-pointer">
<p class="font-medium">The Power of Compounding</p>
<p class="text-sm text-gray-500 mt-1">How your money grows exponentially over time.</p>
</div>
<div class="p-3 hover:bg-gray-50 rounded-lg transition cursor-pointer">
<p class="font-medium">Understanding Market Volatility</p>
<p class="text-sm text-gray-500 mt-1">Why staying the course during downturns is key.</p>
</div>
<div class="p-3 hover:bg-gray-50 rounded-lg transition cursor-pointer">
<p class="font-medium">Tax Optimization Strategies</p>
<p class="text-sm text-gray-500 mt-1">Learn about Roth conversion ladders for early retirees.</p>
</div>
</div>
<button class="mt-6 w-full border border-gray-200 text-gray-600 hover:bg-gray-50 font-medium py-2 px-4 rounded-lg transition duration-150">
Explore More Topics
</button>
</div>
<!-- Debt -->
<div class="card p-6">
<div class="flex items-center justify-between mb-4">
<h2 class="text-lg font-semibold">Debt Overview</h2>
<button class="text-primary-600 hover:text-primary-800 text-sm font-medium">Details</button>
</div>
<div class="space-y-4">
<div>
<p class="text-sm text-gray-500">Mortgage</p>
<p class="font-medium">$185,000 <span class="text-gray-500">@ 3.25%</span></p>
</div>
<div>
<p class="text-sm text-gray-500">Student Loans</p>
<p class="font-medium">$12,000 <span class="text-gray-500">@ 4.5%</span></p>
</div>
</div>
<button class="mt-6 w-full border border-red-100 bg-red-50 text-red-600 hover:bg-red-100 font-medium py-2 px-4 rounded-lg transition duration-150">
Debt Paydown Simulator
</button>
</div>
</div>
</div>
<!-- Footer -->
<div class="mt-12 pt-6 border-t border-gray-100 text-center text-sm text-gray-500">
<p>FIREControl Dashboard • Last updated: Today at 2:45 PM</p>
<p class="mt-1">This is a prototype. Data is illustrative.</p>
</div>
</div>
</div>
</div>
<script>
// Simple animation for demo purposes
document.addEventListener('DOMContentLoaded', function() {
const cards = document.querySelectorAll('.card');
cards.forEach((card, index) => {
// Add slight staggered animation
card.style.opacity = '0';
card.style.transform = 'translateY(10px)';
card.style.transition = 'all 0.3s ease ' + (index * 0.05) + 's';
setTimeout(() => {
card.style.opacity = '1';
card.style.transform = 'translateY(0)';
}, 100);
});
});
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=LukasBe/firecontrol" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>