Skip to content

Commit 55eaba5

Browse files
committed
feat: add offer/02 page and update README quick start
- Add new offer page with hero section and Telegram CTA - Add quick start section to README - Update devalue dependency
1 parent 45e24a7 commit 55eaba5

3 files changed

Lines changed: 87 additions & 3 deletions

File tree

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,14 @@
1212

1313
## Разработка
1414

15+
**Быстрый старт:**
16+
17+
```bash
18+
npm install && npm run dev
19+
```
20+
21+
**Все команды:**
22+
1523
```bash
1624
npm install # установка зависимостей
1725
npm run dev # dev-сервер с HMR

package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/pages/offer/02.astro

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
---
2+
import Base from '../../layouts/Base.astro';
3+
import CornerNav from '../../components/CornerNav.astro';
4+
---
5+
6+
<Base
7+
title="Роман Пуртов — маркетолог, дизайнер, разработчик"
8+
description="Создаю лендинги и сайты на чистом коде. Маркетинг, UX/UI дизайн, разработка под ключ."
9+
ogUrl="https://roman-purtow.ru/offer/02"
10+
canonical="https://roman-purtow.ru/offer/02"
11+
>
12+
<CornerNav showLang={false} homeLink={true} />
13+
14+
<main class="relative w-screen h-auto min-h-dvh pt-[90px] px-5 pb-8 md:h-dvh md:min-h-0 md:pt-0 md:px-[clamp(20px,2.5vw,48px)] md:pb-0 overflow-hidden flex items-center justify-center bg-zinc-50 dark:bg-zinc-950">
15+
16+
<div class="flex flex-col gap-8 text-center w-full h-auto md:grid md:grid-cols-12 md:gap-[clamp(20px,2vw,40px)] md:h-full md:text-left items-center">
17+
18+
<!-- Text block: 5 колонок -->
19+
<div class="flex flex-col justify-center items-center md:items-start md:col-span-5 pt-[clamp(16px,4dvh,40px)]">
20+
<h1 class="text-[clamp(28px,7vw,44px)] md:text-[clamp(56px,7vw,120px)] font-bold leading-[0.93] tracking-tight text-zinc-950 dark:text-zinc-50 mb-[clamp(20px,2vw,36px)] animate-fade-in-up [animation-delay:0.1s]">
21+
Маркетолог, дизайнер,<br />разработчик
22+
</h1>
23+
<p class="text-[clamp(15px,4vw,18px)] md:text-[clamp(18px,1.8vw,28px)] leading-[1.55] text-zinc-500 dark:text-zinc-400 mb-[28px] md:mb-[clamp(28px,2.5vw,44px)] animate-fade-in-up [animation-delay:0.25s]">
24+
Создаю лендинги и сайты на чистом коде —<br class="hidden md:inline" />
25+
быстрее студии, качественнее конструктора
26+
</p>
27+
<a
28+
href="https://t.me/roman_purtow"
29+
class="inline-flex items-center justify-center py-[clamp(14px,1.1vw,18px)] px-[clamp(28px,2.4vw,40px)] bg-zinc-950 dark:bg-zinc-50 text-white dark:text-zinc-950 font-semibold text-[clamp(15px,1.15vw,18px)] rounded-xl no-underline transition-[background,transform] duration-200 ease-in-out w-fit hover:bg-zinc-800 dark:hover:bg-zinc-300 hover:-translate-y-0.5 active:translate-y-0 animate-fade-in-up [animation-delay:0.4s]"
30+
target="_blank"
31+
rel="noopener noreferrer"
32+
>
33+
Написать в Telegram
34+
</a>
35+
</div>
36+
37+
<!-- Photo block: 7 колонок -->
38+
<div class="flex items-center md:items-end justify-center h-auto flex-1 md:h-full overflow-hidden md:col-span-7 animate-fade-in-up [animation-delay:0.55s]">
39+
<img
40+
src="/images/offer/roman-purtow.png"
41+
alt="Роман Пуртов"
42+
class="w-[260px] max-w-[65vw] max-h-none md:max-h-[92dvh] md:w-auto md:max-w-full object-contain block"
43+
/>
44+
</div>
45+
</div>
46+
47+
<!-- Grain overlay -->
48+
<div class="grain absolute inset-0 pointer-events-none opacity-[0.03]" aria-hidden="true"></div>
49+
</main>
50+
</Base>
51+
52+
<style>
53+
:global(body)::before { display: none !important; }
54+
:global(body) { background: #fafafa !important; overflow: hidden; }
55+
:global(.dark body) { background: #09090b !important; }
56+
57+
@keyframes fade-in-up {
58+
from { opacity: 0; transform: translateY(24px); }
59+
to { opacity: 1; transform: translateY(0); }
60+
}
61+
62+
.animate-fade-in-up {
63+
opacity: 0;
64+
animation: fade-in-up 0.8s ease forwards;
65+
}
66+
67+
.grain {
68+
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
69+
background-repeat: repeat;
70+
background-size: 256px 256px;
71+
}
72+
73+
@media (max-width: 767px) {
74+
:global(body) { overflow: auto !important; }
75+
}
76+
</style>

0 commit comments

Comments
 (0)