add html-validator + fix html ceo code
All checks were successful
Deploy Nuxt App / deploy (push) Successful in 1m31s

This commit is contained in:
2025-06-20 12:21:00 +04:00
parent cbabdf8ccb
commit 94d008ca7d
17 changed files with 318 additions and 123 deletions

View File

@ -9,12 +9,7 @@
<!--левый блок контента-->
<section class="relative top-[-20px] min-w-[570px]">
<div class="flex flex-col items-center">
<img
:src="book.img"
:alt="book.buttonText"
width="100%"
height="100%"
/>
<img :src="book.img" :alt="book.buttonText" />
</div>
</section>
<!--правый блок контента-->
@ -68,12 +63,7 @@
class="flex flex-row mr-14 items-center justify-between lg:whitespace-nowrap"
>
<li class="flex flex-row mr-14 gap-3 items-center">
<img
src="/img/svg/books/book-pages.svg"
alt="страниц"
width="100%"
height="100%"
/>
<img src="/img/svg/books/book-pages.svg" alt="страниц" />
<UiParagraph size="250" as="span">
{{ book.pages }}
</UiParagraph>
@ -82,20 +72,13 @@
<img
src="/img/svg/books/book-illustrations.svg"
alt="иллюстраций"
width="100%"
height="100%"
/>
<UiParagraph size="250" as="span">
{{ book.illust }}
</UiParagraph>
</li>
<li class="flex flex-row mr-14 gap-3 items-center">
<img
src="/img/svg/books/book-formats.svg"
alt="формат"
width="100%"
height="100%"
/>
<img src="/img/svg/books/book-formats.svg" alt="формат" />
<UiParagraph size="250" as="span">
{{ book.format }}
</UiParagraph>
@ -170,7 +153,7 @@
<!--нижний блок-->
<section class="ml-20 mt-32">
<div>
<UiHeading tag="H2" size="300" class="text-three">
<UiHeading tag="h2" size="300" class="text-three">
Что ты узнаешь
</UiHeading>
<ul class="flex mt-20 flex-row items-center justify-between">

View File

@ -16,7 +16,7 @@
class="flex flex-col gap-4"
>
<!-- Main section title -->
<UiHeading tag="H2" size="300" class="text-three [&]:font-normal">
<UiHeading tag="h2" size="300" class="text-three [&]:font-normal">
{{ section.title }}
</UiHeading>

View File

@ -1,6 +1,6 @@
<template>
<section class="feedback-section">
<UiHeading tag="H2" size="300" class="text-three mb-4 pl-16 pr-24">
<UiHeading tag="h2" size="300" class="text-three mb-4 pl-16 pr-24">
Что говорят читатели
</UiHeading>
@ -18,7 +18,9 @@
class="swiper-slide feedback-slide !w-[356px] !h-[325px]"
>
<div class="feedback-card !w-full !h-full">
<UiParagraph size="250" class="card-text">{{ feedback.text }}</UiParagraph>
<UiParagraph size="250" class="card-text">{{
feedback.text
}}</UiParagraph>
</div>
</div>
</div>
@ -36,34 +38,34 @@
</template>
<script setup lang="ts">
import { onMounted } from 'vue'
import Swiper from 'swiper'
import { Pagination, Autoplay } from 'swiper/modules'
import UiHeading from '@/components/Typography/UiHeading.vue'
import UiParagraph from '@/components/Typography/UiParagraph.vue'
import feedbackData from './_data/feedback.data'
import { onMounted } from "vue";
import Swiper from "swiper";
import { Pagination, Autoplay } from "swiper/modules";
import UiHeading from "@/components/Typography/UiHeading.vue";
import UiParagraph from "@/components/Typography/UiParagraph.vue";
import feedbackData from "./_data/feedback.data";
import 'swiper/css'
import 'swiper/css/pagination'
import UiButton from '@/components/UiButton/UiButton.vue'
import "swiper/css";
import "swiper/css/pagination";
import UiButton from "@/components/UiButton/UiButton.vue";
onMounted(() => {
new Swiper('.feedback-swiper', {
new Swiper(".feedback-swiper", {
modules: [Pagination, Autoplay],
direction: 'horizontal',
direction: "horizontal",
loop: true,
autoplay: {
delay: 3000,
disableOnInteraction: false,
},
slidesPerView: 'auto',
slidesPerView: "auto",
spaceBetween: 72,
pagination: {
el: '.swiper-pagination',
el: ".swiper-pagination",
clickable: false,
},
})
})
});
});
</script>
<style lang="css" scoped>

View File

@ -1,6 +1,6 @@
<template>
<section>
<UiHeading tag="H2" size="300" class="text-three">
<UiHeading tag="h1" size="300" class="text-three">
Книги для тебя, если ты не знаешь...
</UiHeading>
<ul class="flex mt-20 flex-row items-center justify-between">
@ -19,36 +19,36 @@
</template>
<script setup lang="ts">
import UiHeading from '@/components/Typography/UiHeading.vue'
import UiParagraph from '@/components/Typography/UiParagraph.vue'
import { reactive } from 'vue'
import UiHeading from "@/components/Typography/UiHeading.vue";
import UiParagraph from "@/components/Typography/UiParagraph.vue";
import { reactive } from "vue";
const questions = reactive({
data: [
{
img: '/img/svg/ellipse1.svg',
img: "/img/svg/ellipse1.svg",
text: 'Что делать, если у тебя ноги не "от ушей" и ты далеко не Мисс Мира?',
},
{
img: '/img/svg/ellipse2.svg',
text: 'Как начать легко общаться с противоположным полом и о чем надо помолчать?',
img: "/img/svg/ellipse2.svg",
text: "Как начать легко общаться с противоположным полом и о чем надо помолчать?",
},
{
img: '/img/svg/ellipse3.svg',
text: 'Как относиться к сексу и на сколько важна девичья невинность?',
img: "/img/svg/ellipse3.svg",
text: "Как относиться к сексу и на сколько важна девичья невинность?",
},
{
img: '/img/svg/ellipse4.svg',
text: 'Сколько нужно заниматься, чтобы обрести НОВУЮ себя?',
img: "/img/svg/ellipse4.svg",
text: "Сколько нужно заниматься, чтобы обрести НОВУЮ себя?",
},
{
img: '/img/svg/ellipse5.svg',
text: 'Как выработать стратегию долгосрочных отношений?',
img: "/img/svg/ellipse5.svg",
text: "Как выработать стратегию долгосрочных отношений?",
},
{
img: '/img/svg/ellipse6.svg',
text: 'Как добиться того, чтоб парень делал так, как ты хочешь, но думал, что он сам так решил?',
img: "/img/svg/ellipse6.svg",
text: "Как добиться того, чтоб парень делал так, как ты хочешь, но думал, что он сам так решил?",
},
],
})
});
</script>

View File

@ -1,12 +1,7 @@
<template>
<section>
<div class="relative z-50">
<img
src="/assets/img/webp/hero-banner-content.webp"
alt="Книги"
width="100%"
height="100%"
/>
<img src="/assets/img/webp/hero-banner-content.webp" alt="Книги" />
</div>
<div class="flex flex-row justify-between pl-16 pr-24">
<BuyContent />
@ -14,5 +9,5 @@
</section>
</template>
<script setup lang="ts">
import BuyContent from './_ui/buyContent.vue'
import BuyContent from "./_ui/buyContent.vue";
</script>

View File

@ -1,38 +1,37 @@
<template>
<section class="flex flex-row">
<div class="lg:w-5/12 pl-5 pr-5 shadow-md bg-[url('/assets/img/png/shadow.png')]">
<UiHeading tag="H2" size="300" class="text-three mb-4 mt-5">
<div
class="lg:w-5/12 pl-5 pr-5 shadow-md bg-[url('/assets/img/png/shadow.png')]"
>
<UiHeading tag="h2" size="300" class="text-three mb-4 mt-5">
💔 Ты не одна.
<br />Я знаю, через что ты<br />
проходишь.
</UiHeading>
<UiParagraph size="250" class="xl:max-w-[392px] mb-5"
>Когда ты снова и снова отдаёшь сердце, а в ответ тишина или игра, это ранит. Я знаю это
чувство. Я был по ту сторону: манипулировал, очаровывал, уходил.
>Когда ты снова и снова отдаёшь сердце, а в ответ тишина или игра, это
ранит. Я знаю это чувство. Я был по ту сторону: манипулировал,
очаровывал, уходил.
<br /><br />Я бывший Казанова. И однажды я понял: больше так нельзя.
<br /><br />Эти книги не теория. Это ключ к пониманию, как устроена мужская психология,
чего на самом деле хочет мужчина, и как перестать теряться в отношениях.
<br /><br />Эти книги не теория. Это ключ к пониманию, как устроена
мужская психология, чего на самом деле хочет мужчина, и как перестать
теряться в отношениях.
<br /><br />Я написал их для тебя чтобы ты могла быть счастливой, не прогибаясь, не
умоляя, не теряя себя. Если ты устала «играть», если хочешь любви по-настоящему начни с
первой страницы. В этих книгах нет воды. Только правда.</UiParagraph
<br /><br />Я написал их для тебя чтобы ты могла быть счастливой, не
прогибаясь, не умоляя, не теряя себя. Если ты устала «играть», если
хочешь любви по-настоящему начни с первой страницы. В этих книгах нет
воды. Только правда.</UiParagraph
>
</div>
<div class="lg:w-7/12">
<NuxtImg
src="/img/webp/meetingAlone.webp"
alt="meeting"
width="100%"
height="100%"
loading="lazy"
/>
<NuxtImg src="/img/webp/meetingAlone.webp" alt="meeting" loading="lazy" />
</div>
</section>
</template>
<script setup lang="ts">
import UiHeading from '@/components/Typography/UiHeading.vue'
import UiParagraph from '@/components/Typography/UiParagraph.vue'
import UiHeading from "@/components/Typography/UiHeading.vue";
import UiParagraph from "@/components/Typography/UiParagraph.vue";
</script>

View File

@ -9,7 +9,7 @@
предоставляют при использовании нашего сайта.</UiParagraph
>
<UiHeading size="300" tag="H2">1. Сбор информации</UiHeading>
<UiHeading size="300" tag="h2">1. Сбор информации</UiHeading>
<UiParagraph size="300"
>При оформлении заказа на сайте вы предоставляете персональные данные,
которые включают:</UiParagraph
@ -19,7 +19,7 @@
<li><UiParagraph size="300">Имя (по желанию)</UiParagraph></li>
</ul>
<UiHeading size="300" tag="H2">2. Использование информации</UiHeading>
<UiHeading size="300" tag="h2">2. Использование информации</UiHeading>
<UiParagraph size="300" class="mb-3"
>Ваши личные данные используются исключительно для:</UiParagraph
>
@ -40,7 +40,7 @@
</li>
</ul>
<UiHeading size="300" tag="H2">3. Защита личных данных</UiHeading>
<UiHeading size="300" tag="h2">3. Защита личных данных</UiHeading>
<UiParagraph size="300" class="mb-3">
Мы предпринимаем необходимые меры для защиты ваших личных данных от
несанкционированного доступа, изменения, разглашения или уничтожения.
@ -48,7 +48,7 @@
участвующие в обработке заказов.
</UiParagraph>
<UiHeading size="300" tag="H2"
<UiHeading size="300" tag="h2"
>4. Передача информации третьим лицам</UiHeading
>
<UiParagraph size="300" class="mb-3">
@ -56,14 +56,14 @@
предусмотренных законодательством Российской Федерации.
</UiParagraph>
<UiHeading size="300" tag="H2">5. Cookies (Куки-файлы)</UiHeading>
<UiHeading size="300" tag="h2">5. Cookies (Куки-файлы)</UiHeading>
<UiParagraph size="300" class="mb-3">
Мы используем файлы cookie, чтобы улучшить ваш пользовательский опыт. Вы
можете отключить файлы cookie в настройках вашего браузера, однако это
может ограничить доступ к некоторым функциям сайта.
</UiParagraph>
<UiHeading size="300" tag="H2"
<UiHeading size="300" tag="h2"
>6. Изменения в политике конфиденциальности</UiHeading
>
<UiParagraph size="300" class="mb-3">
@ -72,7 +72,7 @@
странице.
</UiParagraph>
<UiHeading size="300" tag="H2">7. Ваше согласие</UiHeading>
<UiHeading size="300" tag="h2">7. Ваше согласие</UiHeading>
<UiParagraph size="300"
>Используя наш сайт, вы соглашаетесь с условиями данной политики
конфиденциальности.</UiParagraph