commit df5e3d7a8b79ae79a694791c006095b0486261c3
Author: root <root@hub.scroll.pub> Date: 2024-12-24 17:49:51 +0000 Subject: Initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..2b76453 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# fixitfast.scroll.pub +Website generated from prompt: really quick and easy steps to fix things in my home. interactive handyman \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..eff6d5d --- /dev/null +++ b/index.html @@ -0,0 +1,114 @@ +<!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="Quick and easy DIY home repair guides with interactive solutions"> + <meta name="keywords" content="DIY, home repair, handyman, quick fix, home maintenance"> + <title>FixItFast - Interactive Home Repair Guide</title> + <link rel="stylesheet" href="style.css"> +</head> +<body> + <header> + <nav> + <div class="logo">FixItFast</div> + <div class="menu-toggle" aria-label="Toggle menu"> + <span></span><span></span><span></span> + </div> + <ul class="nav-links"> + <li><a href="#quick-fixes">Quick Fixes</a></li> + <li><a href="#tools">Tools</a></li> + <li><a href="#emergency">Emergency</a></li> + </ul> + </nav> + </header> + + <main> + <section class="hero"> + <h1>Fix It Right, Fix It Fast</h1> + <div class="search-container"> + <input type="text" id="search" placeholder="What needs fixing?" aria-label="Search repairs"> + <button class="search-btn">Find Solution</button> + </div> + </section> + + <section id="quick-fixes" class="repair-grid"> + <h2>Common Repairs</h2> + <div class="card-container"> + <article class="repair-card" data-category="plumbing"> + <div class="card-icon">🚰</div> + <h3>Leaky Faucet</h3> + <div class="card-content"> + <ol class="steps hidden"> + <li>Turn off water supply</li> + <li>Remove handle</li> + <li>Replace washer</li> + <li>Reassemble</li> + </ol> + </div> + </article> + <article class="repair-card" data-category="electrical"> + <div class="card-icon">💡</div> + <h3>Light Switch</h3> + <div class="card-content"> + <ol class="steps hidden"> + <li>Turn off power</li> + <li>Remove cover plate</li> + <li>Test wires</li> + <li>Replace switch</li> + </ol> + </div> + </article> + <article class="repair-card" data-category="furniture"> + <div class="card-icon">🪑</div> + <h3>Squeaky Door</h3> + <div class="card-content"> + <ol class="steps hidden"> + <li>Clean hinges</li> + <li>Apply lubricant</li> + <li>Test movement</li> + <li>Wipe excess</li> + </ol> + </div> + </article> + </div> + </section> + + <section id="tools" class="tools-needed"> + <h2>Essential Tools</h2> + <div class="tools-grid"> + <div class="tool-item"> + <span class="tool-icon">🔧</span> + <span class="tool-name">Wrench Set</span> + </div> + <div class="tool-item"> + <span class="tool-icon">🔨</span> + <span class="tool-name">Hammer</span> + </div> + <div class="tool-item"> + <span class="tool-icon">🪛</span> + <span class="tool-name">Screwdrivers</span> + </div> + </div> + </section> + </main> + + <footer> + <div class="footer-content"> + <div class="footer-section"> + <h4>Quick Links</h4> + <ul> + <li><a href="#quick-fixes">Repairs</a></li> + <li><a href="#tools">Tools</a></li> + <li><a href="#emergency">Emergency</a></li> + </ul> + </div> + <div class="footer-section"> + <h4>Contact</h4> + <p>info@fixitfast.scroll.pub</p> + </div> + </div> + </footer> + <script src="script.js"></script> +</body> +</html> diff --git a/script.js b/script.js new file mode 100644 index 0000000..83a7fae --- /dev/null +++ b/script.js @@ -0,0 +1,74 @@ +document.addEventListener('DOMContentLoaded', function() { + // Mobile menu toggle + const menuToggle = document.querySelector('.menu-toggle'); + const navLinks = document.querySelector('.nav-links'); + + menuToggle.addEventListener('click', () => { + navLinks.classList.toggle('active'); + menuToggle.classList.toggle('active'); + }); + + // Repair card interaction + const repairCards = document.querySelectorAll('.repair-card'); + + repairCards.forEach(card => { + card.addEventListener('click', () => { + const steps = card.querySelector('.steps'); + steps.classList.toggle('hidden'); + + // Smooth height animation + if (!steps.classList.contains('hidden')) { + steps.style.maxHeight = steps.scrollHeight + "px"; + } else { + steps.style.maxHeight = 0; + } + }); + }); + + // Search functionality + const searchInput = document.getElementById('search'); + const searchBtn = document.querySelector('.search-btn'); + + searchBtn.addEventListener('click', () => { + const searchTerm = searchInput.value.toLowerCase(); + const cards = document.querySelectorAll('.repair-card'); + + cards.forEach(card => { + const title = card.querySelector('h3').textContent.toLowerCase(); + if (title.includes(searchTerm)) { + card.style.display = 'block'; + card.style.animation = 'fadeIn 0.5s ease-out'; + } else { + card.style.display = 'none'; + } + }); + }); + + // Smooth scroll for navigation links + document.querySelectorAll('a[href^="#"]').forEach(anchor => { + anchor.addEventListener('click', function(e) { + e.preventDefault(); + const target = document.querySelector(this.getAttribute('href')); + + if (target) { + window.scrollTo({ + top: target.offsetTop - 80, + behavior: 'smooth' + }); + } + }); + }); + + // Add hover effect for tools + const toolItems = document.querySelectorAll('.tool-item'); + + toolItems.forEach(tool => { + tool.addEventListener('mouseenter', () => { + tool.style.transform = 'translateY(-5px) scale(1.05)'; + }); + + tool.addEventListener('mouseleave', () => { + tool.style.transform = 'translateY(0) scale(1)'; + }); + }); +}); diff --git a/style.css b/style.css new file mode 100644 index 0000000..ff75335 --- /dev/null +++ b/style.css @@ -0,0 +1,303 @@ +:root { + --primary-color: #2c3e50; + --secondary-color: #3498db; + --accent-color: #e74c3c; + --background-color: #f9f9f9; + --text-color: #333; + --card-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + --transition: all 0.3s ease; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Segoe UI', system-ui, sans-serif; + line-height: 1.6; + color: var(--text-color); + background-color: var(--background-color); +} + +/* Header & Navigation */ +header { + background: var(--primary-color); + padding: 1rem; + position: fixed; + width: 100%; + top: 0; + z-index: 1000; + box-shadow: 0 2px 5px rgba(0,0,0,0.2); +} + +nav { + display: flex; + justify-content: space-between; + align-items: center; + max-width: 1200px; + margin: 0 auto; +} + +.logo { + color: white; + font-size: 1.5rem; + font-weight: bold; + text-transform: uppercase; + letter-spacing: 2px; +} + +.nav-links { + display: flex; + list-style: none; +} + +.nav-links a { + color: white; + text-decoration: none; + padding: 0.5rem 1rem; + transition: var(--transition); +} + +.nav-links a:hover { + color: var(--secondary-color); +} + +/* Hero Section */ +.hero { + height: 80vh; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); + color: white; + text-align: center; + padding: 2rem; + margin-top: 60px; +} + +.hero h1 { + font-size: 3rem; + margin-bottom: 2rem; + animation: fadeIn 1s ease-out; +} + +.search-container { + width: 100%; + max-width: 600px; + display: flex; + gap: 1rem; +} + +#search { + flex: 1; + padding: 1rem; + border: none; + border-radius: 25px; + font-size: 1.1rem; +} + +.search-btn { + padding: 1rem 2rem; + background: var(--accent-color); + color: white; + border: none; + border-radius: 25px; + cursor: pointer; + transition: var(--transition); +} + +.search-btn:hover { + background: #c0392b; + transform: translateY(-2px); +} + +/* Repair Cards */ +.repair-grid { + padding: 4rem 2rem; + max-width: 1200px; + margin: 0 auto; +} + +.repair-grid h2 { + text-align: center; + margin-bottom: 2rem; + color: var(--primary-color); +} + +.card-container { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2rem; +} + +.repair-card { + background: white; + border-radius: 10px; + padding: 2rem; + box-shadow: var(--card-shadow); + transition: var(--transition); + cursor: pointer; +} + +.repair-card:hover { + transform: translateY(-5px); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15); +} + +.card-icon { + font-size: 2.5rem; + margin-bottom: 1rem; + text-align: center; +} + +.repair-card h3 { + color: var(--primary-color); + margin-bottom: 1rem; + text-align: center; +} + +.steps { + padding-left: 1.5rem; + margin-top: 1rem; +} + +.steps.hidden { + display: none; +} + +/* Tools Section */ +.tools-needed { + background: var(--primary-color); + color: white; + padding: 4rem 2rem; +} + +.tools-needed h2 { + text-align: center; + margin-bottom: 2rem; +} + +.tools-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 2rem; + max-width: 1200px; + margin: 0 auto; +} + +.tool-item { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + padding: 1rem; + background: rgba(255, 255, 255, 0.1); + border-radius: 10px; + transition: var(--transition); +} + +.tool-item:hover { + transform: translateY(-5px); + background: rgba(255, 255, 255, 0.2); +} + +.tool-icon { + font-size: 2rem; + margin-bottom: 0.5rem; +} + +/* Footer */ +footer { + background: var(--primary-color); + color: white; + padding: 2rem; +} + +.footer-content { + max-width: 1200px; + margin: 0 auto; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 2rem; +} + +.footer-section h4 { + margin-bottom: 1rem; +} + +.footer-section ul { + list-style: none; +} + +.footer-section a { + color: white; + text-decoration: none; + transition: var(--transition); +} + +.footer-section a:hover { + color: var(--secondary-color); +} + +/* Animations */ +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +/* Mobile Responsiveness */ +.menu-toggle { + display: none; + flex-direction: column; + gap: 5px; + cursor: pointer; +} + +.menu-toggle span { + width: 25px; + height: 3px; + background: white; + transition: var(--transition); +} + +@media (max-width: 768px) { + .menu-toggle { + display: flex; + } + + .nav-links { + display: none; + position: absolute; + top: 100%; + left: 0; + right: 0; + background: var(--primary-color); + flex-direction: column; + padding: 1rem; + } + + .nav-links.active { + display: flex; + } + + .hero h1 { + font-size: 2rem; + } + + .search-container { + flex-direction: column; + } + + .search-btn { + width: 100%; + } +}