Files
ai-gift-planner-mockup/persons.html
Norbert Maciaszek 0357cf2eb7 add first mockup
2025-12-26 23:13:35 +01:00

244 lines
15 KiB
HTML

<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Lista Osób - Gift Planner</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="styles.css">
<script src="https://unpkg.com/lucide@latest"></script>
<script src="main.js" defer></script>
</head>
<body class="bg-gray-50 min-h-screen">
<div class="flex h-screen overflow-hidden">
<!-- Sidebar -->
<aside class="w-64 bg-white border-r border-gray-200 hidden lg:flex flex-col">
<div class="p-6 flex items-center gap-3">
<div class="w-10 h-10 gradient-bg rounded-xl flex items-center justify-center text-white">
<i data-lucide="gift"></i>
</div>
<h1 class="text-xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-indigo-600 to-purple-600">
Gift Planner
</h1>
</div>
<nav class="flex-1 px-4 py-4 space-y-2">
<a href="dashboard.html" class="flex items-center gap-3 px-4 py-3 text-gray-600 hover:bg-gray-50 rounded-xl transition-colors">
<i data-lucide="layout-dashboard"></i> Dashboard
</a>
<a href="updates.html" class="flex items-center gap-3 px-4 py-3 text-gray-600 hover:bg-gray-50 rounded-xl transition-colors">
<i data-lucide="bell"></i> Aktualizacje
</a>
<a href="occasions.html" class="flex items-center gap-3 px-4 py-3 text-gray-600 hover:bg-gray-50 rounded-xl transition-colors">
<i data-lucide="calendar"></i> Okazje
</a>
<a href="persons.html" class="flex items-center gap-3 px-4 py-3 bg-indigo-50 text-indigo-700 rounded-xl font-medium">
<i data-lucide="users"></i> Osoby
</a>
<a href="budget.html" class="flex items-center gap-3 px-4 py-3 text-gray-600 hover:bg-gray-50 rounded-xl transition-colors">
<i data-lucide="wallet"></i> Budżet
</a>
</nav>
<div class="p-4 border-t border-gray-100">
<div class="flex items-center gap-3 p-4">
<div class="w-10 h-10 rounded-full bg-indigo-100 flex items-center justify-center text-indigo-600 font-bold">NK</div>
<div class="flex-1 overflow-hidden">
<p class="text-sm font-semibold truncate">Norbert K.</p>
<p class="text-xs text-gray-500">Premium</p>
</div>
</div>
</div>
</aside>
<!-- Main Content -->
<main class="flex-1 overflow-y-auto bg-gray-50 p-4 lg:p-8 pb-24 md:pb-8">
<!-- Header -->
<header class="flex flex-col md:flex-row md:items-center justify-between gap-4 mb-8">
<div>
<h2 class="text-3xl font-black text-gray-900 leading-tight">Twoi Bliscy</h2>
<p class="text-gray-500 font-medium">Zarządzaj listą osób i ich zainteresowaniami.</p>
</div>
<button onclick="openModal('modal-add-person')" class="gradient-bg text-white px-8 py-3 rounded-2xl font-bold shadow-lg shadow-indigo-200 hover:opacity-90 transition-all flex items-center gap-2">
<i data-lucide="user-plus" class="w-5 h-5"></i> Dodaj nową osobę
</button>
</header>
<!-- Filters & Search -->
<div class="flex flex-wrap items-center gap-4 mb-8">
<div class="relative flex-1 min-w-[300px]">
<i data-lucide="search" class="w-5 h-5 absolute left-4 top-1/2 -translate-y-1/2 text-gray-400"></i>
<input type="text" placeholder="Szukaj osoby po imieniu lub relacji..." class="w-full pl-12 pr-4 py-3 bg-white border border-gray-200 rounded-2xl focus:ring-2 focus:ring-indigo-500 outline-none transition-all text-sm">
</div>
<div class="flex gap-2">
<select class="bg-white border border-gray-200 px-4 py-3 rounded-2xl text-sm font-bold text-gray-600 outline-none focus:ring-2 focus:ring-indigo-500 transition-all">
<option>Wszystkie relacje</option>
<option>Rodzina</option>
<option>Przyjaciele</option>
<option>Praca</option>
</select>
<button class="bg-white border border-gray-200 p-3 rounded-2xl text-gray-400 hover:text-indigo-600 transition-colors">
<i data-lucide="sliders-horizontal" class="w-5 h-5"></i>
</button>
</div>
</div>
<!-- Persons Grid -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6">
<!-- Person Card 1 -->
<div class="bg-white rounded-[2rem] p-6 shadow-sm border border-gray-50 hover:shadow-xl hover:-translate-y-1 transition-all group">
<div class="flex flex-col items-center text-center">
<div class="w-24 h-24 rounded-3xl bg-indigo-50 border-4 border-white shadow-xl mb-4 overflow-hidden relative group-hover:scale-105 transition-transform">
<img src="https://ui-avatars.com/api/?name=Mama&background=f0f9ff&color=6366f1&size=128" alt="Mama" class="w-full h-full object-cover">
</div>
<h4 class="text-xl font-black text-gray-900 mb-1 group-hover:text-indigo-600 transition-colors cursor-pointer" onclick="window.location.href='person.html'">Mama</h4>
<span class="text-xs font-bold text-gray-400 uppercase tracking-widest mb-4">Rodzina</span>
<div class="flex flex-wrap justify-center gap-1.5 mb-6">
<span class="bg-gray-100 text-gray-500 text-[10px] font-bold px-2.5 py-1 rounded-full">Gotowanie</span>
<span class="bg-gray-100 text-gray-500 text-[10px] font-bold px-2.5 py-1 rounded-full">Joga</span>
<span class="bg-gray-100 text-gray-500 text-[10px] font-bold px-2.5 py-1 rounded-full">+2</span>
</div>
<div class="w-full pt-6 border-t border-gray-50 flex items-center justify-around">
<div class="text-center">
<p class="text-[10px] font-black text-gray-300 uppercase leading-none mb-1">Prezenty</p>
<p class="text-lg font-black text-gray-700">12</p>
</div>
<div class="h-8 w-[1px] bg-gray-50"></div>
<div class="text-center">
<p class="text-[10px] font-black text-gray-300 uppercase leading-none mb-1">Najbliższa</p>
<p class="text-sm font-black text-indigo-600 uppercase">Boże Narodzenie</p>
</div>
</div>
</div>
</div>
<!-- Person Card 2 -->
<div class="bg-white rounded-[2rem] p-6 shadow-sm border border-gray-50 hover:shadow-xl hover:-translate-y-1 transition-all group">
<div class="flex flex-col items-center text-center">
<div class="w-24 h-24 rounded-3xl bg-purple-50 border-4 border-white shadow-xl mb-4 overflow-hidden group-hover:scale-105 transition-transform">
<img src="https://ui-avatars.com/api/?name=Tata&background=f5f3ff&color=8b5cf6&size=128" alt="Tata" class="w-full h-full object-cover">
</div>
<h4 class="text-xl font-black text-gray-900 mb-1 group-hover:text-purple-600 transition-colors">Tata</h4>
<span class="text-xs font-bold text-gray-400 uppercase tracking-widest mb-4">Rodzina</span>
<div class="flex flex-wrap justify-center gap-1.5 mb-6">
<span class="bg-gray-100 text-gray-500 text-[10px] font-bold px-2.5 py-1 rounded-full">Książki</span>
<span class="bg-gray-100 text-gray-500 text-[10px] font-bold px-2.5 py-1 rounded-full">Wino</span>
</div>
<div class="w-full pt-6 border-t border-gray-50 flex items-center justify-around">
<div class="text-center">
<p class="text-[10px] font-black text-gray-300 uppercase leading-none mb-1">Prezenty</p>
<p class="text-lg font-black text-gray-700">8</p>
</div>
<div class="h-8 w-[1px] bg-gray-50"></div>
<div class="text-center">
<p class="text-[10px] font-black text-gray-300 uppercase leading-none mb-1">Najbliższa</p>
<p class="text-sm font-black text-purple-600 uppercase">Urodziny</p>
</div>
</div>
</div>
</div>
<!-- Person Card 3 -->
<div class="bg-white rounded-[2rem] p-6 shadow-sm border border-gray-50 hover:shadow-xl hover:-translate-y-1 transition-all group">
<div class="flex flex-col items-center text-center">
<div class="w-24 h-24 rounded-3xl bg-pink-50 border-4 border-white shadow-xl mb-4 overflow-hidden group-hover:scale-105 transition-transform">
<img src="https://ui-avatars.com/api/?name=Anna&background=fdf2f8&color=ec4899&size=128" alt="Anna" class="w-full h-full object-cover">
</div>
<h4 class="text-xl font-black text-gray-900 mb-1 group-hover:text-pink-600 transition-colors">Anna</h4>
<span class="text-xs font-bold text-gray-400 uppercase tracking-widest mb-4">Przyjaciele</span>
<div class="flex flex-wrap justify-center gap-1.5 mb-6">
<span class="bg-gray-100 text-gray-500 text-[10px] font-bold px-2.5 py-1 rounded-full">Moda</span>
<span class="bg-gray-100 text-gray-500 text-[10px] font-bold px-2.5 py-1 rounded-full">Muzyka</span>
</div>
<div class="w-full pt-6 border-t border-gray-50 flex items-center justify-around">
<div class="text-center">
<p class="text-[10px] font-black text-gray-300 uppercase leading-none mb-1">Prezenty</p>
<p class="text-lg font-black text-gray-700">5</p>
</div>
<div class="h-8 w-[1px] bg-gray-50"></div>
<div class="text-center">
<p class="text-[10px] font-black text-gray-300 uppercase leading-none mb-1">Najbliższa</p>
<p class="text-sm font-black text-pink-600 uppercase">Imieniny</p>
</div>
</div>
</div>
</div>
<!-- Add New -->
<div onclick="openModal('modal-add-person')" class="border-4 border-dashed border-gray-100 rounded-[2.5rem] p-6 flex flex-col items-center justify-center text-center cursor-pointer hover:bg-gray-50 hover:border-indigo-100 transition-all group min-h-[300px]">
<div class="w-16 h-16 bg-white rounded-2xl flex items-center justify-center text-gray-300 group-hover:text-indigo-600 shadow-sm border border-gray-50 mb-4 transition-all">
<i data-lucide="plus" class="w-8 h-8"></i>
</div>
<h4 class="text-lg font-black text-gray-400 group-hover:text-indigo-600 transition-colors">Dodaj osobę</h4>
</div>
</div>
</main>
</div>
<!-- Modal: Dodaj Osobę -->
<div id="modal-add-person" class="modal-overlay">
<div class="modal-content">
<div class="flex items-center justify-between mb-8">
<h3 class="text-2xl font-black text-gray-900">Dodaj Osobę</h3>
<button onclick="closeModal('modal-add-person')" class="text-gray-400 hover:text-gray-600">
<i data-lucide="x"></i>
</button>
</div>
<form class="space-y-6">
<div>
<label class="block text-[10px] font-black text-gray-400 uppercase tracking-widest mb-2 ml-1">Imię / Nick</label>
<input type="text" placeholder="np. Kasia" class="form-input" required>
</div>
<div>
<label class="block text-[10px] font-black text-gray-400 uppercase tracking-widest mb-2 ml-1">Relacja</label>
<select class="form-input">
<option>Rodzina</option>
<option>Przyjaciel / Przyjaciółka</option>
<option>Praca</option>
<option>Inna</option>
</select>
</div>
<div>
<label class="block text-[10px] font-black text-gray-400 uppercase tracking-widest mb-2 ml-1">Zainteresowania (oddziel przecinkiem)</label>
<input type="text" placeholder="kawa, joga, technologia" class="form-input">
</div>
<button type="submit" class="w-full gradient-bg text-white py-4 rounded-2xl font-bold shadow-xl shadow-indigo-100 mt-4">
Dodaj osobę do listy
</button>
</form>
</div>
</div>
<!-- Mobile Navigation -->
<nav class="lg:hidden fixed bottom-0 left-0 right-0 bg-white border-t border-gray-200 p-2 flex justify-around items-center z-50">
<a href="dashboard.html" class="flex flex-col items-center p-2 text-gray-400">
<i data-lucide="layout-dashboard" class="w-6 h-6"></i>
<span class="text-[10px] font-bold mt-1">Home</span>
</a>
<a href="occasions.html" class="flex flex-col items-center p-2 text-gray-400">
<i data-lucide="calendar" class="w-6 h-6"></i>
<span class="text-[10px] font-bold mt-1">Okazje</span>
</a>
<a href="persons.html" class="flex flex-col items-center p-2 text-indigo-600">
<i data-lucide="users" class="w-6 h-6"></i>
<span class="text-[10px] font-bold mt-1">Osoby</span>
</a>
<a href="budget.html" class="flex flex-col items-center p-2 text-gray-400">
<i data-lucide="wallet" class="w-6 h-6"></i>
<span class="text-[10px] font-bold mt-1">Budżet</span>
</a>
</nav>
<script>
lucide.createIcons();
</script>
</body>
</html>