Toggle navigation
☰
Home
HTML
CSS
Scripting
Database
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Jane Doe | Freelance Photographer</title> <meta name="description" content="Portfolio of Jane Doe, a freelance photographer specializing in portraits, landscapes, and events."> <!-- Google Fonts --> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,700;1,400&family=Montserrat:wght@300;400;700&display=swap" rel="stylesheet"> <style> /* ------------------- */ /* CSS Variables */ /* ------------------- */ :root { --primary-color: #1a1a1a; --secondary-color: #ffffff; --accent-color: #c5a47e; /* A warm, sophisticated gold/tan */ --text-color: #e0e0e0; --background-color: #101010; --font-primary: 'Montserrat', sans-serif; --font-secondary: 'Lora', serif; --nav-height: 70px; } /* ------------------- */ /* Global Reset & Base */ /* ------------------- */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; scroll-padding-top: var(--nav-height); /* Offset for sticky nav */ } body { font-family: var(--font-primary); background-color: var(--background-color); color: var(--text-color); line-height: 1.6; font-size: 16px; } h1, h2, h3, h4, h5, h6 { font-family: var(--font-secondary); font-weight: 700; color: var(--secondary-color); line-height: 1.2; } h1 { font-size: 3rem; } h2 { font-size: 2.25rem; margin-bottom: 2rem; text-align: center; } h3 { font-size: 1.5rem; } p { margin-bottom: 1rem; } a { color: var(--accent-color); text-decoration: none; transition: color 0.3s ease; } a:hover, a:focus { color: var(--secondary-color); } img { max-width: 100%; height: auto; display: block; } section { padding: 5rem 1.5rem; } .container { max-width: 1100px; margin: 0 auto; } .btn { display: inline-block; padding: 0.75rem 1.5rem; background-color: var(--accent-color); color: var(--primary-color); font-weight: 700; text-transform: uppercase; border: 2px solid var(--accent-color); border-radius: 5px; transition: background-color 0.3s ease, color 0.3s ease; } .btn:hover, .btn:focus { background-color: transparent; color: var(--accent-color); } /* ------------------- */ /* Navigation Bar */ /* ------------------- */ .main-header { position: sticky; top: 0; left: 0; width: 100%; height: var(--nav-height); background-color: rgba(26, 26, 26, 0.9); backdrop-filter: blur(10px); z-index: 1000; display: flex; justify-content: center; align-items: center; padding: 0 1.5rem; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .main-nav { display: flex; justify-content: space-between; align-items: center; width: 100%; max-width: 1100px; } .logo { font-family: var(--font-secondary); font-size: 1.5rem; font-weight: 700; color: var(--secondary-color); } .nav-links { list-style: none; display: flex; gap: 2rem; } .nav-links a { font-weight: 400; font-size: 1rem; color: var(--text-color); position: relative; padding-bottom: 0.25rem; } .nav-links a::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background-color: var(--accent-color); transition: width 0.3s ease; } .nav-links a:hover::after, .nav-links a:focus::after { width: 100%; } /* ------------------- */ /* Hero Section */ /* ------------------- */ .hero { display: flex; align-items: center; justify-content: center; text-align: center; height: 100vh; color: var(--secondary-color); background-image: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('https://images.unsplash.com/photo-1502945015378-0e284ca1a5be?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1770&q=80'); background-size: cover; background-position: center; background-attachment: fixed; /* Parallax effect */ padding: 0 1.5rem; } .hero-content { max-width: 800px; } .hero h1 { margin-bottom: 1rem; font-size: 2.5rem; } .hero p { font-size: 1.25rem; font-weight: 300; margin-bottom: 2rem; } /* ------------------- */ /* Portfolio Gallery */ /* ------------------- */ .portfolio-gallery { display: grid; gap: 1.5rem; grid-template-columns: 1fr; /* Mobile: 1 column */ } .portfolio-item { position: relative; overflow: hidden; border-radius: 5px; box-shadow: 0 5px 15px rgba(0,0,0,0.2); } .portfolio-item img { transition: transform 0.4s ease; } .portfolio-item:hover img, .portfolio-item:focus-within img { transform: scale(1.05); } .portfolio-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to top, rgba(0,0,0,0.8), transparent); display: flex; flex-direction: column; justify-content: flex-end; padding: 1.5rem; opacity: 0; transition: opacity 0.4s ease; } .portfolio-item:hover .portfolio-overlay, .portfolio-item:focus-within .portfolio-overlay { opacity: 1; } .portfolio-title { color: var(--secondary-color); transform: translateY(20px); transition: transform 0.4s ease; } .portfolio-item:hover .portfolio-title, .portfolio-item:focus-within .portfolio-title { transform: translateY(0); } /* ------------------- */ /* About Me Section */ /* ------------------- */ .about-content { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; } .about-image { width: 250px; height: 250px; object-fit: cover; border-radius: 50%; margin: 0 auto; border: 5px solid var(--accent-color); } .about-text h3 { color: var(--accent-color); margin-top: 2rem; margin-bottom: 1rem; } .skills-list { list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.5rem; } .skills-list li { background-color: var(--primary-color); padding: 0.5rem 1rem; border-radius: 5px; border-left: 3px solid var(--accent-color); } /* ------------------- */ /* Contact Form */ /* ------------------- */ .contact-form { max-width: 700px; margin: 0 auto; } .form-group { margin-bottom: 1.5rem; } .form-group label { display: block; margin-bottom: 0.5rem; font-weight: 700; } .form-control { width: 100%; padding: 0.75rem; background-color: var(--primary-color); border: 1px solid var(--text-color); border-radius: 5px; color: var(--text-color); font-family: var(--font-primary); font-size: 1rem; transition: border-color 0.3s ease; } .form-control:focus { outline: none; border-color: var(--accent-color); } textarea.form-control { resize: vertical; min-height: 150px; } .submit-btn { width: 100%; padding: 1rem; font-size: 1.1rem; } /* ------------------- */ /* Footer */ /* ------------------- */ .main-footer { background-color: var(--primary-color); padding: 3rem 1.5rem; text-align: center; } .social-links { display: flex; justify-content: center; gap: 1.5rem; margin-bottom: 1.5rem; } .social-links a { color: var(--text-color); } .social-links a svg { width: 24px; height: 24px; fill: currentColor; } .copyright { font-size: 0.9rem; color: rgba(255, 255, 255, 0.5); } /* ------------------- */ /* Media Queries */ /* ------------------- */ /* Tablets and small desktops */ @media (min-width: 768px) { h1 { font-size: 4rem; } .hero h1 { font-size: 3.5rem; } .portfolio-gallery { grid-template-columns: repeat(2, 1fr); } .about-content { grid-template-columns: 1fr 2fr; text-align: left; } .about-image { margin: 0; } } /* Large desktops */ @media (min-width: 1024px) { h1 { font-size: 5rem; } .hero h1 { font-size: 4.5rem; } .portfolio-gallery { grid-template-columns: repeat(3, 1fr); } } </style> </head> <body> <!-- =================== --> <!-- Navigation Bar --> <!-- =================== --> <header class="main-header"> <nav class="main-nav"> <a href="#home" class="logo">Jane Doe</a> <ul class="nav-links"> <li><a href="#home">Home</a></li> <li><a href="#portfolio">Portfolio</a></li> <li><a href="#about">About</a></li> <li><a href="#contact">Contact</a></li> </ul> </nav> </header> <main> <!-- =================== --> <!-- Hero Section --> <!-- =================== --> <section id="home" class="hero"> <div class="hero-content"> <h1>Capturing Moments, Creating Art</h1> <p>Freelance photographer based in New York City, specializing in creating timeless images.</p> <a href="#portfolio" class="btn">View My Work</a> </div> </section> <!-- =================== --> <!-- Portfolio Gallery --> <!-- =================== --> <section id="portfolio" class="container"> <h2>My Portfolio</h2> <div class="portfolio-gallery"> <a href="#" class="portfolio-item"> <img src="https://images.unsplash.com/photo-1597153241582-9048ba4894bc?auto=format&fit=crop&w=600&q=80" alt="Person standing in a lush, misty green forest."> <div class="portfolio-overlay"> <h3 class="portfolio-title">Enchanted Forest</h3> </div> </a> <a href="#" class="portfolio-item"> <img src="https://images.unsplash.com/photo-1506748686214-e9df14d4d9d0?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=600&q=80" alt="Misty mountain landscape at sunrise."> <div class="portfolio-overlay"> <h3 class="portfolio-title">Misty Mountains</h3> </div> </a> <a href="#" class="portfolio-item"> <img src="https://images.unsplash.com/photo-1554080353-a576cf803bda?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=600&q=80" alt="A photographer holding a camera."> <div class="portfolio-overlay"> <h3 class="portfolio-title">Urban Explorer</h3> </div> </a> <a href="#" class="portfolio-item"> <img src="https://images.unsplash.com/photo-1516035069371-29a1b244cc32?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=600&q=80" alt="Close-up of a vintage camera."> <div class="portfolio-overlay"> <h3 class="portfolio-title">Vintage Lens</h3> </div> </a> <a href="#" class="portfolio-item"> <img src="https://images.unsplash.com/photo-1519681393784-d120267933ba?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=600&q=80" alt="Starry night sky over snowy mountains."> <div class="portfolio-overlay"> <h3 class="portfolio-title">Cosmic Night</h3> </div> </a> <a href="#" class="portfolio-item"> <img src="https://images.unsplash.com/photo-1509233725247-49e657c54213?auto=format&fit=crop&w=600&q=80" alt="Aerial view of a tropical beach with turquoise water."> <div class="portfolio-overlay"> <h3 class="portfolio-title">Ocean's Breath</h3> </div> </a> </div> </section> <!-- =================== --> <!-- About Me Section --> <!-- =================== --> <section id="about" class="container"> <h2>About Me</h2> <div class="about-content"> <img src="https://images.unsplash.com/photo-1580489944761-15a19d654956?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=400&q=80" alt="Professional headshot of Jane Doe." class="about-image"> <div class="about-text"> <p>Hello! I'm Jane Doe, a passionate photographer with over a decade of experience in capturing the beauty of the world around us. My journey began with a simple film camera, and has since evolved into a full-fledged love affair with digital and drone photography.</p> <p>I believe that every picture tells a story, and my goal is to tell yours in the most authentic and artistic way possible. Whether it's a personal portrait, a breathtaking landscape, or a momentous event, I strive to create images that are not just seen, but felt.</p> <h3>Skills & Services</h3> <ul class="skills-list"> <li>Portrait Photography</li> <li>Landscape & Travel</li> <li>Event & Wedding Coverage</li> <li>Product Photography</li> <li>Photo Editing & Retouching</li> <li>Drone Videography</li> </ul> </div> </div> </section> <!-- =================== --> <!-- Contact Form --> <!-- =================== --> <section id="contact" class="container"> <h2>Get In Touch</h2> <form action="#" method="POST" class="contact-form"> <div class="form-group"> <label for="name">Name</label> <input type="text" id="name" name="name" class="form-control" required> </div> <div class="form-group"> <label for="email">Email</label> <input type="email" id="email" name="email" class="form-control" required> </div> <div class="form-group"> <label for="message">Message</label> <textarea id="message" name="message" class="form-control" required></textarea> </div> <button type="submit" class="btn submit-btn">Send Message</button> </form> </section> </main> <!-- =================== --> <!-- Footer --> <!-- =================== --> <footer class="main-footer"> <div class="social-links"> <a href="#" aria-label="Instagram"> <!-- Inlined SVG for Instagram icon --> <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Instagram</title><path d="M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63c-.789.306-1.459.717-2.126 1.384S.935 3.35.63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913.306.788.717 1.459 1.384 2.126.667.666 1.336 1.079 2.126 1.384.765.297 1.636.499 2.913.558C8.333 23.988 8.74 24 12 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558.788-.306 1.459-.718 2.126-1.384.666-.667 1.079-1.335 1.384-2.126.297-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.148-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.314.935 20.644.523 19.86.22c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.056 1.17-.249 1.805-.415 2.227a2.47 2.47 0 0 1-.896 1.382c-.42.419-.82.679-1.381.896-.422.164-1.057.36-2.227.413-1.266.057-1.646.07-4.85.07s-3.585-.015-4.85-.074c-1.17-.056-1.805-.249-2.227-.415a2.47 2.47 0 0 1-1.382-.896c-.42-.419-.679-.82-1.381-.896-.164-.422-.36-1.057-.413-2.227-.057-1.266-.07-1.646-.07-4.85s.015-3.585.074-4.85c.056-1.17.249-1.805.415-2.227.217-.562.477-.96.896-1.382.419-.419.819-.679 1.381-.896.422-.164 1.057-.36 2.227-.413C8.415 2.176 8.797 2.16 12 2.16zm0 3.105c-3.25 0-5.905 2.655-5.905 5.905s2.655 5.905 5.905 5.905 5.905-2.655 5.905-5.905-2.655-5.905-5.905-5.905zm0 9.66c-2.065 0-3.75-1.685-3.75-3.75s1.685-3.75 3.75-3.75 3.75 1.685 3.75 3.75-1.685 3.75-3.75 3.75zm6.405-9.865c0 .795-.645 1.44-1.44 1.44s-1.44-.645-1.44-1.44.645-1.44 1.44-1.44 1.44.645 1.44 1.44z"/></svg> </a> <a href="#" aria-label="Twitter"> <!-- Inlined SVG for Twitter icon --> <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.223.085 4.93 4.93 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></svg> </a> <a href="#" aria-label="Facebook"> <!-- Inlined SVG for Facebook icon --> <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Facebook</title><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg> </a> </div> <p class="copyright">© 2025 Jane Doe. All Rights Reserved.</p> </footer> </body> </html>