Spaces:
Running
Running
Create an Artist website, portal with gallery of images, about and contact. Mdoern artistic design site, with animations of background,. For the artist '
480cff5
verified
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Gallery | Stephanie Trujillo</title> | |
| <link rel="icon" type="image/x-icon" href="/static/favicon.ico"> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet"> | |
| <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script> | |
| <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script> | |
| <script src="https://unpkg.com/feather-icons"></script> | |
| <style> | |
| .artwork-card { | |
| transition: all 0.3s ease; | |
| overflow: hidden; | |
| } | |
| .artwork-card:hover { | |
| transform: translateY(-5px); | |
| box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); | |
| } | |
| .artwork-image { | |
| transition: transform 0.5s ease; | |
| } | |
| .artwork-card:hover .artwork-image { | |
| transform: scale(1.05); | |
| } | |
| .nav-link { | |
| position: relative; | |
| } | |
| .nav-link:after { | |
| content: ''; | |
| position: absolute; | |
| width: 0; | |
| height: 2px; | |
| bottom: 0; | |
| left: 0; | |
| background-color: currentColor; | |
| transition: width 0.3s ease; | |
| } | |
| .nav-link:hover:after { | |
| width: 100%; | |
| } | |
| .filter-btn { | |
| transition: all 0.3s ease; | |
| } | |
| .filter-btn.active { | |
| background-color: white; | |
| color: black; | |
| } | |
| </style> | |
| </head> | |
| <body class="bg-gray-900 text-gray-100 font-sans"> | |
| <!-- Navigation --> | |
| <nav class="py-6 px-4 md:px-12 lg:px-24 flex justify-between items-center"> | |
| <a href="index.html" class="text-2xl font-bold tracking-tight">Stephanie Trujillo</a> | |
| <div class="hidden md:flex space-x-8"> | |
| <a href="gallery.html" class="nav-link font-medium">Gallery</a> | |
| <a href="about.html" class="nav-link">About</a> | |
| <a href="contact.html" class="nav-link">Contact</a> | |
| </div> | |
| <button class="md:hidden focus:outline-none" id="mobile-menu-button"> | |
| <i data-feather="menu"></i> | |
| </button> | |
| </nav> | |
| <!-- Mobile Menu --> | |
| <div id="mobile-menu" class="hidden fixed inset-0 bg-black bg-opacity-90 z-50 flex flex-col items-center justify-center space-y-8"> | |
| <button id="close-menu" class="absolute top-6 right-6 p-2"> | |
| <i data-feather="x"></i> | |
| </button> | |
| <a href="gallery.html" class="text-2xl">Gallery</a> | |
| <a href="about.html" class="text-2xl">About</a> | |
| <a href="contact.html" class="text-2xl">Contact</a> | |
| </div> | |
| <!-- Gallery Section --> | |
| <main class="py-12 px-4 md:px-12 lg:px-24"> | |
| <div class="max-w-6xl mx-auto"> | |
| <h1 class="text-4xl font-bold mb-8 text-center" data-aos="fade-up">Art Gallery</h1> | |
| <!-- Filter Controls --> | |
| <div class="flex flex-wrap justify-center gap-3 mb-12" data-aos="fade-up" data-aos-delay="100"> | |
| <button class="filter-btn px-4 py-2 rounded-full border border-white active" data-filter="all">All Works</button> | |
| <button class="filter-btn px-4 py-2 rounded-full border border-white" data-filter="painting">Paintings</button> | |
| <button class="filter-btn px-4 py-2 rounded-full border border-white" data-filter="mixed">Mixed Media</button> | |
| <button class="filter-btn px-4 py-2 rounded-full border border-white" data-filter="digital">Digital</button> | |
| </div> | |
| <!-- Gallery Grid --> | |
| <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8"> | |
| <!-- Painting 1 --> | |
| <div class="artwork-card rounded-lg overflow-hidden" data-category="painting" data-aos="fade-up"> | |
| <div class="overflow-hidden"> | |
| <img src="http://static.photos/abstract/640x360/4" alt="Painting 1" class="w-full h-64 object-cover artwork-image"> | |
| </div> | |
| <div class="p-4"> | |
| <h3 class="text-xl font-semibold">Vibrant Horizons</h3> | |
| <p class="text-gray-400">Acrylic on canvas, 2023</p> | |
| <p class="mt-2 text-gray-300">A study of color transitions and emotional landscapes</p> | |
| </div> | |
| </div> | |
| <!-- Mixed Media 1 --> | |
| <div class="artwork-card rounded-lg overflow-hidden" data-category="mixed" data-aos="fade-up" data-aos-delay="100"> | |
| <div class="overflow-hidden"> | |
| <img src="http://static.photos/abstract/640x360/5" alt="Mixed Media 1" class="w-full h-64 object-cover artwork-image"> | |
| </div> | |
| <div class="p-4"> | |
| <h3 class="text-xl font-semibold">Urban Fragments</h3> | |
| <p class="text-gray-400">Mixed media, 2022</p> | |
| <p class="mt-2 text-gray-300">Collage of city textures and forgotten memories</p> | |
| </div> | |
| </div> | |
| <!-- Digital 1 --> | |
| <div class="artwork-card rounded-lg overflow-hidden" data-category="digital" data-aos="fade-up" data-aos-delay="200"> | |
| <div class="overflow-hidden"> | |
| <img src="http://static.photos/abstract/640x360/6" alt="Digital 1" class="w-full h-64 object-cover artwork-image"> | |
| </div> | |
| <div class="p-4"> | |
| <h3 class="text-xl font-semibold">Digital Dreams</h3> | |
| <p class="text-gray-400">Digital art, 2023</p> | |
| <p class="mt-2 text-gray-300">Exploring the boundaries between reality and imagination</p> | |
| </div> | |
| </div> | |
| <!-- Painting 2 --> | |
| <div class="artwork-card rounded-lg overflow-hidden" data-category="painting" data-aos="fade-up"> | |
| <div class="overflow-hidden"> | |
| <img src="http://static.photos/abstract/640x360/7" alt="Painting 2" class="w-full h-64 object-cover artwork-image"> | |
| </div> | |
| <div class="p-4"> | |
| <h3 class="text-xl font-semibold">Silent Echoes</h3> | |
| <p class="text-gray-400">Oil on canvas, 2022</p> | |
| <p class="mt-2 text-gray-300">Subtle textures and muted tones create a meditative space</p> | |
| </div> | |
| </div> | |
| <!-- Mixed Media 2 --> | |
| <div class="artwork-card rounded-lg overflow-hidden" data-category="mixed" data-aos="fade-up" data-aos-delay="100"> | |
| <div class="overflow-hidden"> | |
| <img src="http://static.photos/abstract/640x360/8" alt="Mixed Media 2" class="w-full h-64 object-cover artwork-image"> | |
| </div> | |
| <div class="p-4"> | |
| <h3 class="text-xl font-semibold">Textured Memories</h3> | |
| <p class="text-gray-400">Mixed media, 2023</p> | |
| <p class="mt-2 text-gray-300">Layered materials create depth and narrative</p> | |
| </div> | |
| </div> | |
| <!-- Digital 2 --> | |
| <div class="artwork-card rounded-lg overflow-hidden" data-category="digital" data-aos="fade-up" data-aos-delay="200"> | |
| <div class="overflow-hidden"> | |
| <img src="http://static.photos/abstract/640x360/9" alt="Digital 2" class="w-full h-64 object-cover artwork-image"> | |
| </div> | |
| <div class="p-4"> | |
| <h3 class="text-xl font-semibold">Virtual Realms</h3> | |
| <p class="text-gray-400">Digital art, 2023</p> | |
| <p class="mt-2 text-gray-300">Exploring digital spaces as new artistic frontiers</p> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Pagination --> | |
| <div class="flex justify-center mt-16" data-aos="fade-up"> | |
| <nav class="flex items-center space-x-2"> | |
| <button class="px-4 py-2 border border-gray-700 rounded-md hover:bg-gray-800 transition">Previous</button> | |
| <button class="px-4 py-2 bg-white text-gray-900 rounded-md font-medium">1</button> | |
| <button class="px-4 py-2 border border-gray-700 rounded-md hover:bg-gray-800 transition">2</button> | |
| <button class="px-4 py-2 border border-gray-700 rounded-md hover:bg-gray-800 transition">3</button> | |
| <button class="px-4 py-2 border border-gray-700 rounded-md hover:bg-gray-800 transition">Next</button> | |
| </nav> | |
| </div> | |
| </div> | |
| </main> | |
| <!-- Footer --> | |
| <footer class="py-8 px-4 md:px-12 lg:px-24 border-t border-gray-800"> | |
| <div class="flex flex-col md:flex-row justify-between items-center"> | |
| <p>© 2023 Stephanie Trujillo. All rights reserved.</p> | |
| <div class="flex space-x-6 mt-4 md:mt-0"> | |
| <a href="#" aria-label="Instagram"><i data-feather="instagram"></i></a> | |
| <a href="#" aria-label="Twitter"><i data-feather="twitter"></i></a> | |
| <a href="#" aria-label="Facebook"><i data-feather="facebook"></i></a> | |
| </div> | |
| </div> | |
| </footer> | |
| <script> | |
| AOS.init({ | |
| duration: 800, | |
| easing: 'ease-in-out', | |
| once: true | |
| }); | |
| feather.replace(); | |
| // Mobile menu toggle | |
| const mobileMenuButton = document.getElementById('mobile-menu-button'); | |
| const mobileMenu = document.getElementById('mobile-menu'); | |
| const closeMenuButton = document.getElementById('close-menu'); | |
| mobileMenuButton.addEventListener('click', () => { | |
| mobileMenu.classList.remove('hidden'); | |
| mobileMenu.classList.add('flex'); | |
| }); | |
| closeMenuButton.addEventListener('click', () => { | |
| mobileMenu.classList.add('hidden'); | |
| mobileMenu.classList.remove('flex'); | |
| }); | |
| // Filter functionality | |
| const filterButtons = document.querySelectorAll('.filter-btn'); | |
| const artworkCards = document.querySelectorAll('.artwork-card'); | |
| filterButtons.forEach(button => { | |
| button.addEventListener('click', () => { | |
| // Update active state | |
| filterButtons.forEach(btn => btn.classList.remove('active')); | |
| button.classList.add('active'); | |
| const filterValue = button.getAttribute('data-filter'); | |
| artworkCards.forEach(card => { | |
| if (filterValue === 'all' || card.getAttribute('data-category') === filterValue) { | |
| card.style.display = 'block'; | |
| } else { | |
| card.style.display = 'none'; | |
| } | |
| }); | |
| }); | |
| }); | |
| </script> | |
| </body> | |
| </html> | |