Files
luxury-detailing-maine/index.html
T

329 lines
7.9 KiB
HTML

<!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="Maine Luxury Detailing provides professional car cleaning services in the Portland Area"
/>
<title>Maine Luxury Detailing</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
/** COLOR VARIABLES */
:root {
--black: #000;
--gold: #ffd700;
}
/** HEADER + NAV STYLING */
header {
background-color: var(--black);
position: sticky;
top: 0;
z-index: 999;
}
.banner {
display: flex;
justify-content: space-between; max-width: 60%;
align-items: center;
height: 4.5rem;
margin: 0 auto;
padding: 1rem 0;
}
.logo {
font-size: 1.5rem;
font-weight: bold;
color: var(--gold);
text-decoration: none;
}
#hamburger {
display: none;
flex-direction: column;
cursor: pointer;
background: none;
border: none;
padding: 5px;
}
#hamburger span {
width: 25px;
height: 3px;
background-color: var(--gold);
margin: 3px 0;
transition: 0.3s;
position: relative;
}
.navLink {
color: var(--gold);
text-decoration: none;
font-weight: 500;
transition: color 0.3s ease;
}
.navLink:hover {
color: #fff;
}
/** BODY + CONTENT */
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu,
Cantarell, sans-serif;
line-height: 1.6;
color: #666;
background-color: var(--black);
}
main {
background-color: #fff;
}
section {
max-width: 60%;
margin: 0 auto;
padding: 3rem 0;
}
h1 {
font-size: 2.5rem;
color: #000;
margin-bottom: 1rem;
text-align: center;
}
h2 {
font-size: 2rem;
color: var(--gold);
margin-bottom: 1rem;
border-bottom: 2px solid var(--gold);
padding-bottom: 0.5rem;
}
h3 {
font-size: 1.5rem;
color: #000;
margin-bottom: 1rem;
}
p {
margin-bottom: 1rem;
}
/** FOOTER */
footer {
background-color: #000;
color: var(--gold);
text-align: center;
padding: 2rem 0;
margin-top: 4rem auto;
display: flex;
justify-content: space-between;
}
#footer-left {
width: 50%;
text-align: left;
}
#footer-right {
width: 50%;
text-align: right;
}
/** "skip link" for screen readers */
.skipLink {
position: absolute;
top: -50px;
left: 6px;
background: #fff;
color: #000;
padding: 8px;
text-decoration: none;
font-weight: bold;
border-radius: 4px;
z-index: 1000;
}
.skipLink:focus {
top: 6px;
}
/** DESKTOP RULES */
@media screen and (min-width: 851px) {
/** header */
nav {
display: flex;
flex-direction: row;
gap: 3rem;
list-style: none;
}
/** content */
h1 {
font-size: 3rem;
}
}
/* MOBILE RULES */
@media screen and (max-width: 850px) {
/** header */
header {
padding: 0 1rem;
}
#hamburger {
display: flex;
}
nav {
display: flex;
position: fixed;
top: -12rem;
left: 0;
flex-direction: column;
background-color: #000;
width: 100%;
text-align: center;
transition: top 0.3s ease;
box-shadow: 0 10px 27px rgba(0, 0, 0, 0.05);
padding: 2rem 0;
gap: 1rem;
z-index: -1;
font-size: 0rem;
}
nav.active {
top: 1.5rem;
font-size: 1rem;
}
/** hamburger animation */
#hamburger.active span:nth-child(1) {
transform: rotate(-45deg) translateY(10px) translateX(-3px);
width: 24px;
height: 4px;
}
#hamburger.active span:nth-child(2) {
opacity: 0;
}
#hamburger.active span:nth-child(3) {
transform: rotate(45deg) translateY(-10px) translateX(-3px);
width: 24px;
height: 4px;
}
/** content rules */
h1 {
font-size: 2rem;
}
}
</style>
</head>
<body>
<a href="#main-content" class="skipLink">Skip to main content</a>
<header>
<div class="banner" role="banner">
<a href="#" class="logo" aria-label="Company Logo">MLD</a>
<button
id="hamburger"
aria-label="Toggle mobile navigation menu"
aria-expanded="false"
>
<span></span>
<span></span>
<span></span>
</button>
<nav>
<a class="navLink" role="navigation" href="#Services">Services</a>
<a class="navLink" role="navigation" href="#Ceramic Coating">Ceramic Coating</a>
<a class="navLink" role="navigation" href="#Reviews">Reviews</a>
<a class="navLink" role="navigation" href="#Contact">Contact</a>
</nav>
</div>
</header>
<main id="main-content">
<section id="intro">
<h1>Serving Portland since 2023</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse
posuere cursus ante, quis tempor lacus fringilla id. Pellentesque sed
mi luctus odio varius hendrerit. Nam vitae fermentum ligula, sit amet
consectetur sem.
</p>
</section>
</main>
<footer>
<div class="banner">
<div id="footer-left">
&copy;Maine Luxury Detailing 2025. All rights reserved.
</div>
<div id="footer-right">
Phone:</br />
XXX-XXX-XXXXX<br />
Email:<br />
xxx@xxx.xxx<br />
<a href="#">instagram</a>
<!-- <img class="footer-icon" src="">
<a href="#"></a>
</img> -->
</div>
</div>
</footer>
<script>
let hamburger = document.getElementById("hamburger");
// toggle hamburger menu
hamburger.addEventListener("click", function () {
let navMenu = document.getElementsByTagName("nav")[0];
hamburger.classList.toggle("active");
navMenu.classList.toggle("active");
const isExpanded = navMenu.classList.contains("active");
hamburger.setAttribute("aria-expanded", isExpanded);
});
// close hamburger when nav link is clicked
let navLinks = document.getElementsByClassName("navLink");
for (let i = 0; i < navLinks.length; i++) {
navLinks[i].addEventListener("click", function (event) {
let navMenu = document.getElementsByTagName("nav")[0];
hamburger.classList.remove("active");
navMenu.classList.remove("active");
hamburger.setAttribute("aria-expanded", "false");
});
}
// close hamburger when click is outside of menu
document.addEventListener("click", function (event) {
let navMenu = document.getElementsByTagName("nav")[0];
const clickOutside =
!hamburger.contains(event.target) && !navMenu.contains(event.target);
if (clickOutside && navMenu.classList.contains("active")) {
hamburger.classList.remove("active");
navMenu.classList.remove("active");
hamburger.setAttribute("aria-expanded", "false");
}
});
</script>
</body>
</html>