Задание
Верстка сайта аренды автомобилей по макету в Figma на html и css с переносом проекта в Angular.
Функционал программы
Поскольку это сайт без админки, то функционал минимальный: возможность выбирать автомобиль и оставлять заявку (опционально).
Фрагмент программного кода (первоначальный)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Аренда премиальных автомобилей</title>
<link rel="stylesheet" href="styles/style.css">
</head>
<body>
<header class="header">
<div class="container">
<div class="logo">
<img src="/images/loading-150-1.gif" data-src="images/logo.png" alt="Logo">
</div>
<nav class="menu">
<ul>
<li class="menu-item">
<a href="#">Главная</a>
</li>
<li class="menu-item">
<a href="#cars">Автомобили</a>
</li>
<li class="menu-item">
<a href="#price">Бронирование авто</a>
</li>
</ul>
</nav>
</div>
</header>
<section class="main">
<div class="container">
<div class="main-info">
<h1 class="main-title">Аренда премиальных автомобилей</h1>
<div class="main-text">
В нашем клубе имеется солидная коллекция спортивных автомобилей — от достаточно распространенных
серийных машин до настоящего гоночного эксклюзива. Воспользуйтесь уникальной возможностью побывать
за рулем настоящей легенды и узнать, на что она способна за пределами гоночной трассы!
</div>
<div class="main-action">
<button class="button" id="main-action">Посмотреть автомобили</button>
</div>
</div>
</div>
</section>
<section class="car" id="cars">
<div class="container">
<h2 class="sub-title">Наш автопарк</h2>
<div class="car-items">
<div class="car-item">
<div class="car-item-image">
<img src="/images/loading-150-1.gif" data-src="images/1.png" alt="Image 1">
</div>
<div class="car-item-title">Lamborghini Huracan Spyder</div>
<div class="car-item-info">
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="images/gear.png" alt="Gear">
<div>Привод</div>
<div>полный</div>
</div>
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="images/wheel.png" alt="Wheel">
<div>Двигатель</div>
<div>5.2 л.с.</div>
</div>
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="images/belt.png" alt="Belt">
<div>Кол-во мест</div>
<div>2</div>
</div>
</div>
<div class="car-item-action">
<button class="button car-button">Забронировать</button>
</div>
</div>
<div class="car-item">
<div class="car-item-image">
<img src="/images/loading-150-1.gif" data-src="images/2.png" alt="Image 2">
</div>
<div class="car-item-title">Chevrolet Corvette</div>
<div class="car-item-info">
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="images/gear.png" alt="Gear">
<div>Привод</div>
<div>полный</div>
</div>
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="images/wheel.png" alt="Wheel">
<div>Двигатель</div>
<div>6.2 л.с.</div>
</div>
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="images/belt.png" alt="Belt">
<div>Кол-во мест</div>
<div>2</div>
</div>
</div>
<div class="car-item-action">
<button class="button car-button">Забронировать</button>
</div>
</div>
<div class="car-item">
<div class="car-item-image">
<img src="/images/loading-150-1.gif" data-src="images/3.png" alt="Image 3">
</div>
<div class="car-item-title">Ferrari California</div>
<div class="car-item-info">
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="images/gear.png" alt="Gear">
<div>Привод</div>
<div>полный</div>
</div>
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="images/wheel.png" alt="Wheel">
<div>Двигатель</div>
<div>3.9 л.с.</div>
</div>
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="images/belt.png" alt="Belt">
<div>Кол-во мест</div>
<div>4</div>
</div>
</div>
<div class="car-item-action">
<button class="button car-button">Забронировать</button>
</div>
</div>
<div class="car-item">
<div class="car-item-image">
<img src="/images/loading-150-1.gif" data-src="images/4.png" alt="Image 4">
</div>
<div class="car-item-title">Lamborghini Urus</div>
<div class="car-item-info">
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="images/gear.png" alt="Gear">
<div>Привод</div>
<div>полный</div>
</div>
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="images/wheel.png" alt="Wheel">
<div>Двигатель</div>
<div>4.0 л.с.</div>
</div>
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="images/belt.png" alt="Belt">
<div>Кол-во мест</div>
<div>5</div>
</div>
</div>
<div class="car-item-action">
<button class="button car-button">Забронировать</button>
</div>
</div>
<div class="car-item">
<div class="car-item-image">
<img src="/images/loading-150-1.gif" data-src="images/5.png" alt="Image 5">
</div>
<div class="car-item-title">Audi R8</div>
<div class="car-item-info">
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="images/gear.png" alt="Gear">
<div>Привод</div>
<div>полный</div>
</div>
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="images/wheel.png" alt="Wheel">
<div>Двигатель</div>
<div>5.2 л.с.</div>
</div>
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="images/belt.png" alt="Belt">
<div>Кол-во мест</div>
<div>2</div>
</div>
</div>
<div class="car-item-action">
<button class="button car-button">Забронировать</button>
</div>
</div>
<div class="car-item">
<div class="car-item-image">
<img src="/images/loading-150-1.gif" data-src="images/6.png" alt="Image 6">
</div>
<div class="car-item-title">Аренда Chevrolet Camaro</div>
<div class="car-item-info">
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="images/gear.png" alt="Gear">
<div>Привод</div>
<div>полный</div>
</div>
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="images/wheel.png" alt="Wheel">
<div>Двигатель</div>
<div>2.0 л.с.</div>
</div>
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="images/belt.png" alt="Belt">
<div>Кол-во мест</div>
<div>4</div>
</div>
</div>
<div class="car-item-action">
<button class="button car-button">Забронировать</button>
</div>
</div>
</div>
</div>
</section>
<section class="price" id="price">
<div class="container">
<h2 class="sub-title">Узнать цену и забронировать</h2>
<div class="price-text">
Заполните данные, и мы перезвоним вам для уточнения всех деталей бронирования
</div>
<form action="" class="price-form">
<input type="text" class="price-input" id="name" placeholder="Ваше имя">
<input type="text" class="price-input" id="phone" placeholder="Ваш телефон">
<input type="text" class="price-input" id="car" placeholder="Автомобиль, который вас интересует">
<button class="button" type="button" id="price-action">Узнать цену</button>
</form>
<img src="/images/loading-150-1.gif" data-src="images/rolls.png" alt="Rolls" class="price-image">
</div>
</section>
<footer class="footer">
<div class="container">
<div class="logo">
<img src="/images/loading-150-1.gif" data-src="images/logo.png" alt="Logo">
</div>
<div class="rights">Все права защищены</div>
</div>
</footer>
<script src="/images/loading-150-1.gif" data-src="scripts/script.js"></script>
</body>
</html>
Фрагмент программного кода (Angular )
<header class="header">
<div class="container">
<div class="logo">
<img src="/images/loading-150-1.gif" data-src="assets/images/logo.png" alt="Logo">
</div>
<nav class="menu">
<ul>
<li class="menu-item">
<a href="#">Главная</a>
</li>
<li class="menu-item">
<a href="#cars">Автомобили</a>
</li>
<li class="menu-item">
<a href="#price">Бронирование авто</a>
</li>
</ul>
</nav>
</div>
</header>
<section class="main" [ngStyle]="bgPos">
<div class="container">
<div class="main-info">
<h1 class="main-title">Аренда премиальных автомобилей</h1>
<div class="main-text">
В нашем клубе имеется солидная коллекция спортивных автомобилей — от достаточно распространенных
серийных машин до настоящего гоночного эксклюзива. Воспользуйтесь уникальной возможностью побывать
за рулем настоящей легенды и узнать, на что она способна за пределами гоночной трассы!
</div>
<div class="main-action">
<button class="button" id="main-action" (click)="goScroll(cars)">Посмотреть автомобили</button>
</div>
</div>
</div>
</section>
<section class="car" id="cars" #cars>
<div class="container">
<h2 class="sub-title">Наш автопарк</h2>
<div class="car-toggle">
<div [ngClass]="{active: category === 'sport'}" (click)="toggleCategory('sport')">Sport</div>
<div [ngClass]="{active: category === 'luxury'}" (click)="toggleCategory('luxury')">Luxury</div>
</div>
<div class="car-items">
<div class="car-item" *ngFor="let car of carsData">
<div class="car-item-image">
<img src="/images/loading-150-1.gif" data-src="{{car.image}}" alt="Image 1">
</div>
<div class="car-item-title">{{car.name}}</div>
<div class="car-item-info">
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="assets/images/gear.png" alt="Gear">
<div>Привод</div>
<div>{{car.gear}}</div>
</div>
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="assets/images/wheel.png" alt="Wheel">
<div>Двигатель</div>
<div>{{car.engine}} л.с.</div>
</div>
<div class="car-item-point">
<img src="/images/loading-150-1.gif" data-src="assets/images/belt.png" alt="Belt">
<div>Кол-во мест</div>
<div>{{car.places}}</div>
</div>
</div>
<div class="car-item-action">
<button class="button car-button" (click)="goScroll(price, car)">Забронировать</button>
</div>
</div>
</div>
</div>
</section>
<section class="price" id="price" #price>
<div class="container">
<h2 class="sub-title">Узнать цену и забронировать</h2>
<div class="price-text">
Заполните данные, и мы перезвоним вам для уточнения всех деталей бронирования
</div>
<form action="" class="price-form" [formGroup]="priceForm">
<input type="text" class="price-input" id="name" placeholder="Ваше имя" formControlName="name">
<input type="text" class="price-input" id="phone" placeholder="Ваш телефон" formControlName="phone">
<input type="text" class="price-input" id="car" placeholder="Автомобиль, который вас интересует" formControlName="car">
<button class="button" type="button" id="price-action" (click)="onSubmit()" [disabled]="!priceForm.valid">Узнать цену</button>
</form>
<img src="/images/loading-150-1.gif" data-src="assets/images/rolls.png" alt="Rolls" class="price-image" [ngStyle]="trans">
</div>
</section>
<footer class="footer">
<div class="container">
<div class="logo">
<img src="/images/loading-150-1.gif" data-src="assets/images/logo.png" alt="Logo">
</div>
<div class="rights">Все права защищены</div>
</div>
</footer>
Скриншот архива с проектом

Содержание архива
- папка с проектом в WebStorm с первоначальной версткой;
- папка с проектом в WebStom с итоговым проектом в Angular;
- папка с инструкциями;
- ссылка на макет Figma.
Пояснения по запуску программы
Создать на ПК папку Projects и поместить туда папку cars-app/ Открыть в редакторе WebStorm или VS Code. В терминале прописать команду ng serve/ Запуститься сервер. Ссылка на итоговый сайт: CarsApp (sergeg28071988.github.io)
Телеграм
-