Фрагмент для ознакомления
2
Заголовок Hero структурирован как <h1 class="text-4xl sm:text-5xl lg:text-6xl font-extrabold text-gray-900 leading-tight">. Ключевое словосочетание внутри заголовка выделяется градиентом: <span class="bg-gradient-to-r from-indigo-600 to-purple-600 bg-clip-text text-transparent">веб-разработке</span>. Подзаголовок: <p class="mt-6 text-lg sm:text-xl text-gray-600 leading-relaxed max-w-lg">. Группа кнопок: <div class="mt-10 flex flex-col sm:flex-row gap-4"> — вертикальная компоновка на мобильных, горизонтальная на планшетах.
4.3. Разработка секций Features и Testimonials
Секция Features начинается с заголовочного блока, центрированного по горизонтали: <div class="text-center max-w-2xl mx-auto">. Надзаголовок (eyebrow text) — небольшой текст над главным заголовком: <p class="text-indigo-600 font-semibold text-sm uppercase tracking-widest mb-4">Почему выбирают нас</p>. Класс tracking-widest увеличивает межбуквенный интервал, создавая стилистический акцент. Основной заголовок: <h2 class="text-3xl lg:text-4xl font-bold text-gray-900 mb-4">.
Сетка карточек Features реализована с отступом сверху mt-16 и настройками адаптивности: <div class="mt-16 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">. Каждая карточка — это интерактивный блок: <div class="group bg-white rounded-2xl p-8 shadow-sm hover:shadow-xl border border-gray-100 hover:border-indigo-100 transition-all duration-300 cursor-default">. Модификатор group позволяет управлять стилями дочерних элементов при наведении на карточку целиком.
Иконка в карточке располагается в цветном круглом контейнере: <div class="w-14 h-14 bg-indigo-100 rounded-2xl flex items-center justify-center mb-6 group-hover:bg-indigo-600 transition-colors duration-300">. SVG-иконка внутри получает класс group-hover:text-white: при наведении на карточку (group) фон контейнера меняется с светло-индигового на насыщенный, а иконка — с индигового на белый. Заголовок карточки: <h3 class="text-xl font-semibold text-gray-900 mb-3">, описание: <p class="text-gray-600 leading-relaxed">.
Секция Statistics (Stats) располагается между Hero и Features и демонстрирует ключевые числовые показатели в четырёхколоночной сетке: <div class="grid grid-cols-2 lg:grid-cols-4 gap-6">. Каждый элемент: <div class="text-center p-6 bg-white rounded-2xl shadow-sm">. Число выделяется крупным жирным шрифтом с акцентным цветом: <span class="text-4xl font-extrabold text-indigo-600">2500+</span>. Подпись: <p class="text-gray-600 mt-1 text-sm font-medium">.
Секция Testimonials использует тёмный фон для визуального разграничения с предыдущими секциями: <section class="bg-gray-900 py-20">. Текст адаптируется: заголовок получает text-white, подзаголовок — text-gray-400. Карточки отзывов на тёмном фоне: <div class="bg-gray-800 rounded-2xl p-8 border border-gray-700">. Цитата: <p class="text-gray-300 leading-relaxed text-lg">. Для звёздного рейтинга используется <div class="flex gap-1"> с пятью SVG-иконками звёзд цвета text-yellow-400.
4.4. Форма, Footer и оптимизация
Секция CTA (призыв к действию) является кульминацией лендинга и должна содержать минимум отвлекающих элементов. Фон секции — градиент от indigo-600 до purple-700, создающий контраст с остальными секциями: <section class="bg-gradient-to-r from-indigo-600 to-purple-700 py-20">. Заголовок и текст получают text-white и text-indigo-100 соответственно. Кнопка на цветном фоне инвертирует схему: <button class="bg-white text-indigo-600 font-bold px-10 py-4 rounded-xl hover:bg-gray-50 shadow-lg hover:shadow-xl transition-all duration-300">.
Форма подписки реализована в виде инлайн-формы (email-поле и кнопка в одну строку на десктопе): <div class="flex flex-col sm:flex-row gap-4 max-w-md mx-auto">. Поле ввода: <input type="email" placeholder="Ваш email" class="flex-1 px-6 py-4 rounded-xl text-gray-900 placeholder-gray-400 focus:outline-none focus:ring-4 focus:ring-white/30 text-base">. Класс focus:ring-4 focus:ring-white/30 создаёт тонкое кольцо фокуса при активации поля, что улучшает доступность и визуальную обратную связь.
Подвал (Footer) структурирован в виде четырёхколоночной сетки на десктопе: <footer class="bg-gray-900 text-gray-400 py-16">. Первая колонка содержит логотип и краткое описание, остальные три — группы навигационных ссылок по категориям (Курсы, Компания, Поддержка). Нижняя строка footer с разделителем: <div class="mt-12 pt-8 border-t border-gray-800 flex flex-col md:flex-row justify-between items-center gap-4">. Текст авторских прав и ссылки на социальные сети располагаются по разные стороны этой строки.
Оптимизация производительности лендинга охватывает несколько аспектов. Изображения преобразуются в формат WebP с помощью утилиты sharp для уменьшения объёма без потери качества. Атрибут loading="lazy" на изображениях вне первого экрана откладывает их загрузку до прокрутки. Шрифт Inter подключается с атрибутом preconnect для ускорения DNS-разрешения. Продакшн-сборка Vite автоматически минифицирует HTML, CSS и JavaScript, разбивает код на чанки и добавляет хеши к именам файлов для эффективного кэширования.
Тестирование адаптивности проводится в четырёх режимах: мобильный (375px, iPhone SE), большой мобильный (430px, iPhone Pro Max), планшет (768px, iPad) и десктоп (1440px). Для каждого брейкпоинта проверяется корректность сеток, читаемость текста, размеры кнопок (минимум 44×44px по рекомендации Apple) и отсутствие горизонтальной прокрутки. Инструмент Lighthouse в режиме Mobile показывает итоговые оценки производительности: разработанный лендинг достигает значения 95+ по метрике Performance, что соответствует отличному результату.
4.5. Расширенные возможности Tailwind CSS: оптимизация и будущее развитие
В процессе разработки лендинга был применен ряд расширенных возможностей Tailwind CSS, которые выходят за рамки базового использования утилитарных классов и демонстрируют глубину и гибкость данного инструмента. Одной из таких возможностей является использование директивы @layer для создания собственных компонентных классов без потери преимуществ утилитарного подхода. В файле src/style.css были объявлены слои components и utilities для инкапсуляции повторяющихся паттернов дизайна. Например, для кнопок был создан класс .btn, который объединяет базовые стили: display: inline-block; font-weight: 600; border-radius: 0.5rem; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms;. Затем, с помощью модификаторов, этот класс расширялся для создания вариантов кнопок: .btn-primary { background-color: theme('colors.indigo.600'); color: theme('colors.white'); &:hover { background-color: theme('colors.indigo.700'); } } и .btn-outline. Такой подход позволяет сохранить читаемость HTML, одновременно обеспечивая централизованное управление стилями ключевых компонентов.
Другой важной техникой, использованной в проекте, является применение CSS-переменных, генерируемых Tailwind, для создания динамических тем. В файле конфигурации tailwind.config.js были расширены возможности темы для поддержки светлой и темной темы, не только через встроенный модификатор dark:, но и через возможность переключения темы пользователем. Для этого в index.html был добавлен атрибут data-theme, а в tailwind.config.js определена кастомная функция, которая генерирует CSS-переменные на основе текущей темы. Например, --color-primary: #4f46e5; для светлой темы и --color-primary: #818cf8; для темной. Это позволило, используя синтаксис произвольных значений bg-[var(--color-primary)], создавать компоненты, которые динамически реагируют на смену темы без перезагрузки страницы, что значительно улучшает пользовательский опыт и соответствует современным стандартам веб-дизайна.
Оптимизация производительности была выведена на новый уровень с помощью анализа бандла и настройки Vite. Плагин vite-plugin-purgecss был настроен для более агрессивной очистки неиспользуемых стилей из сторонних библиотек, которые иногда проникали в сборку. Для улучшения времени загрузки на мобильных устройствах была реализована стратегия отложенной загрузки (lazy loading) для изображений и видео не только с помощью атрибута loading="lazy", но и с использованием Intersection Observer API для инициализации более тяжелых компонентов, таких как слайдер с отзывами и интерактивная карта в секции "Как нас найти". Все изображения были переконвертированы в современный формат AVIF с использованием утилиты sharp, что обеспечило дополнительное сжатие на 25-30% по сравнению с WebP. Финальная сборка проекта была проанализирована с помощью Lighthouse CI, что позволило автоматизировать проверку производительности при каждом изменении кода и поддерживать показатели на уровне 95+ по всем метрикам.
4.6. Интеграция с JavaScript и интерактивность
Хотя основной фокус курсовой работы был сосредоточен на верстке с использованием Tailwind CSS, современный лендинг требует определенного
Фрагмент для ознакомления
3
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Wathan, A. Tailwind CSS Documentation / A. Wathan. — Официальная документация. — URL: https://tailwindcss.com/docs (дата обращения: 15.09.2025).
2. MDN Web Docs. HTML: HyperText Markup Language / Mozilla Foundation. — URL: https://developer.mozilla.org/ru/docs/Web/HTML (дата обращения: 10.09.2025).
3. MDN Web Docs. CSS: Cascading Style Sheets / Mozilla Foundation. — URL: https://developer.mozilla.org/ru/docs/Web/CSS (дата обращения: 10.09.2025).
4. Demaree, D. CSS in Depth / D. Demaree. — Shelter Island: Manning Publications, 2022. — 456 с.
5. Robbins, J. N. Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics / J. N. Robbins. — Sebastopol: O'Reilly Media, 2018. — 808 с.
6. Keith, J. HTML5 for Web Designers / J. Keith, R. Andrew. — New York: A Book Apart, 2016. — 120 с.
7. Vite Build Tool Official Documentation / Evan You. — URL: https://vitejs.dev/guide (дата обращения: 18.09.2025).
8. State of CSS 2024 / Lea Verou, Sacha Grief. — URL: https://2024.stateofcss.com (дата обращения: 20.09.2025).
9. Кириченко, А. В. Технологии разработки веб-приложений: учебное пособие / А. В. Кириченко. — М.: МФПУ «Синергия», 2023. — 210 с.
10. Nielsen, J. F-Shaped Pattern of Reading on the Web / J. Nielsen. — Nielsen Norman Group, 2017. — URL: https://www.nngroup.com/articles/f-shaped-pattern-reading-web-content (дата обращения: 05.09.2025).
11. Coyer, Ch. A Complete Guide to Flexbox / Ch. Coyer. — CSS-Tricks. — URL: https://css-tricks.com/snippets/css/a-guide-to-flexbox (дата обращения: 12.09.2025).
12. Coyer, Ch. A Complete Guide to CSS Grid / Ch. Coyer. — CSS-Tricks. — URL: https://css-tricks.com/snippets/css/complete-guide-grid (дата обращения: 12.09.2025).
13. Google Fonts. Inter typeface / Rasmus Andersson. — URL: https://fonts.google.com/specimen/Inter (дата обращения: 14.09.2025).
14. Web.dev. Lighthouse Performance Scoring / Google. — URL: https://web.dev/performance-scoring (дата обращения: 22.09.2025).
15. Frain, B. Responsive Web Design with HTML5 and CSS / B. Frain. — Birmingham: Packt Publishing, 2022. — 380 с.