commit 630ffc56b3010704fc45a30732217a46d07a1faf
Author: root <root@hub.scroll.pub> Date: 2024-12-24 00:47:08 +0000 Subject: Initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..5e221b3 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# merryfirs.scroll.pub +Website generated from prompt: build me a website for a christmas tree farm. should have hours and phone number and location. on california ave in waihawa. and give it a clever name. and also ahve some animated snow coming down. and christmas colors and lights \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..5b7d54b --- /dev/null +++ b/index.html @@ -0,0 +1,73 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="description" content="Merry Firs Christmas Tree Farm in Wahiawa - Fresh, locally grown Christmas trees for your holiday season"> + <meta name="keywords" content="christmas trees, tree farm, wahiawa, hawaii, holiday, christmas"> + <title>Merry Firs Christmas Tree Farm | Wahiawa, HI</title> + <link rel="stylesheet" href="style.css"> +</head> +<body> + <div class="snowfall"></div> + <header> + <div class="lights-container"> + <div class="lights"></div> + </div> + <h1>Merry Firs<span class="subtitle">Christmas Tree Farm</span></h1> + <nav> + <a href="#about">About</a> + <a href="#hours">Hours</a> + <a href="#contact">Contact</a> + </nav> + </header> + + <main> + <section id="hero"> + <div class="hero-content"> + <h2>Find Your Perfect Christmas Tree</h2> + <p>Family-owned farm bringing holiday joy since 1985</p> + </div> + </section> + + <section id="about"> + <h2>Welcome to Merry Firs</h2> + <p>Experience the magic of choosing your own Christmas tree in our scenic farm. Fresh-cut trees, wreaths, and holiday cheer!</p> + </section> + + <section id="hours"> + <h2>Farm Hours</h2> + <div class="hours-grid"> + <div class="hours-card"> + <h3>November 25 - December 23</h3> + <p>Monday - Friday: 10:00 AM - 7:00 PM</p> + <p>Saturday - Sunday: 8:00 AM - 8:00 PM</p> + </div> + </div> + </section> + + <section id="contact"> + <h2>Visit Us</h2> + <div class="contact-info"> + <div> + <h3>Location</h3> + <p>1234 California Avenue</p> + <p>Wahiawa, HI 96786</p> + </div> + <div> + <h3>Contact</h3> + <p>Phone: (808) 555-0123</p> + <p>Email: info@merryfirs.scroll.pub</p> + </div> + </div> + </section> + </main> + + <footer> + <p>Merry Firs Christmas Tree Farm</p> + <p>Bringing joy to Hawaiian homes every Christmas</p> + </footer> + + <script src="script.js"></script> +</body> +</html> diff --git a/script.js b/script.js new file mode 100644 index 0000000..afa21f1 --- /dev/null +++ b/script.js @@ -0,0 +1,61 @@ +document.addEventListener('DOMContentLoaded', () => { + createSnowfall(); +}); + +function createSnowfall() { + const snowfall = document.querySelector('.snowfall'); + const snowflakeCount = 50; + + for (let i = 0; i < snowflakeCount; i++) { + createSnowflake(snowfall); + } +} + +function createSnowflake(container) { + const snowflake = document.createElement('div'); + snowflake.style.position = 'absolute'; + snowflake.style.color = 'white'; + snowflake.style.userSelect = 'none'; + snowflake.style.fontSize = `${Math.random() * 10 + 5}px`; + snowflake.innerHTML = '❄'; + + const startPositionLeft = Math.random() * window.innerWidth; + const animationDuration = Math.random() * 3 + 2; + const opacity = Math.random() * 0.6 + 0.4; + + snowflake.style.left = `${startPositionLeft}px`; + snowflake.style.top = '-20px'; + snowflake.style.opacity = opacity; + + container.appendChild(snowflake); + + function animateSnowflake() { + let currentTop = -20; + let currentLeft = startPositionLeft; + + function update() { + currentTop += 1; + currentLeft += Math.sin(currentTop * 0.05) * 0.5; + + snowflake.style.top = `${currentTop}px`; + snowflake.style.left = `${currentLeft}px`; + + if (currentTop > window.innerHeight) { + currentTop = -20; + currentLeft = Math.random() * window.innerWidth; + } + + requestAnimationFrame(update); + } + + update(); + } + + animateSnowflake(); +} + +window.addEventListener('resize', () => { + const snowfall = document.querySelector('.snowfall'); + snowfall.innerHTML = ''; + createSnowfall(); +}); diff --git a/style.css b/style.css new file mode 100644 index 0000000..ff44557 --- /dev/null +++ b/style.css @@ -0,0 +1,170 @@ +:root { + --christmas-red: #c41e3a; + --christmas-green: #165b33; + --gold: #ffd700; + --white: #fff; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Helvetica Neue', Arial, sans-serif; + line-height: 1.6; + background: linear-gradient(to bottom, #0a2f1f, #165b33); + color: var(--white); + overflow-x: hidden; +} + +.snowfall { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + pointer-events: none; + z-index: 1000; +} + +header { + background-color: rgba(0, 0, 0, 0.8); + padding: 1rem; + position: relative; + overflow: hidden; +} + +.lights-container { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 10px; +} + +.lights { + position: absolute; + width: 100%; + height: 100%; + background: repeating-linear-gradient(90deg, + var(--christmas-red) 0px, + var(--christmas-red) 10px, + transparent 10px, + transparent 20px, + var(--gold) 20px, + var(--gold) 30px, + transparent 30px, + transparent 40px, + var(--christmas-green) 40px, + var(--christmas-green) 50px); + animation: twinkle 1s infinite; +} + +@keyframes twinkle { + 0%, 100% { opacity: 1; } + 50% { opacity: 0.5; } +} + +h1 { + text-align: center; + font-size: 3rem; + color: var(--gold); + text-shadow: 0 0 10px rgba(255, 215, 0, 0.5); + margin-bottom: 1rem; +} + +.subtitle { + display: block; + font-size: 1.5rem; + color: var(--white); +} + +nav { + display: flex; + justify-content: center; + gap: 2rem; +} + +nav a { + color: var(--white); + text-decoration: none; + font-size: 1.2rem; + transition: color 0.3s; +} + +nav a:hover { + color: var(--gold); +} + +#hero { + height: 60vh; + background-image: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)), + url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M50 10 L90 90 L10 90 Z" fill="%23165b33"/></svg>'); + background-size: cover; + display: flex; + align-items: center; + justify-content: center; + text-align: center; +} + +.hero-content { + padding: 2rem; + background: rgba(0,0,0,0.7); + border-radius: 10px; +} + +section { + padding: 4rem 2rem; + max-width: 1200px; + margin: 0 auto; +} + +.hours-grid { + display: grid; + gap: 2rem; + margin-top: 2rem; +} + +.hours-card { + background: rgba(0,0,0,0.7); + padding: 2rem; + border-radius: 10px; + text-align: center; + border: 2px solid var(--gold); +} + +.contact-info { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 2rem; + margin-top: 2rem; +} + +footer { + background-color: rgba(0,0,0,0.8); + text-align: center; + padding: 2rem; + margin-top: 4rem; +} + +@media (max-width: 768px) { + h1 { + font-size: 2rem; + } + + .subtitle { + font-size: 1rem; + } + + nav { + flex-direction: column; + align-items: center; + gap: 1rem; + } + + #hero { + height: 40vh; + } +}