Initial Russian iPhone mobile landing
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
*.log
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Dmitry Fofanov
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,68 @@
|
||||
# Coral Mobile Lending
|
||||
|
||||
Русскоязычный одностраничный лендинг проекта нативного iPhone-приложения Coral
|
||||
Travel. Страница рассказывает о концепции мобильного кабинета для путешествий:
|
||||
акции, направления, заявки, события и персональная информация — в знакомом
|
||||
мобильном сценарии.
|
||||
|
||||
Название репозитория сохраняет заданное имя `coral-mobile-lending`; по назначению
|
||||
это именно **landing page**, а не приложение для кредитования.
|
||||
|
||||
## Что находится в репозитории
|
||||
|
||||
- `index.html` — автономная адаптивная страница с встроенными CSS и JavaScript;
|
||||
- `img/hero.png` — широкий Hero-кадр;
|
||||
- `img/overview.png` — обзор интерфейса и назначения приложения;
|
||||
- `img/screens.png` — галерея ключевых экранов iPhone;
|
||||
- `robots.txt` и `sitemap.xml` — базовые файлы для публикации.
|
||||
|
||||
Изображения подготовлены из предоставленного исходного макета `KTM.JPG`: Hero,
|
||||
обзор и галерея нарезаны в отдельные горизонтальные кадры для своих разделов.
|
||||
|
||||
## Сценарий продукта
|
||||
|
||||
Лендинг описывает направление разработки, а не обещает опубликованный App Store
|
||||
релиз. Предполагаемый мобильный продукт включает:
|
||||
|
||||
- ленту новостей, акций и специальных предложений;
|
||||
- каталог направлений и туров;
|
||||
- подачу заявки на мероприятие с телефона;
|
||||
- личный кабинет с контактными данными и историей обращений;
|
||||
- push-уведомления о важных обновлениях;
|
||||
- безопасный вход и хранение сессии в Keychain.
|
||||
|
||||
## Техническая концепция iOS
|
||||
|
||||
Для нативной реализации предлагается стек Swift, SwiftUI и `URLSession` с
|
||||
модульной архитектурой: `Auth`, `Feed`, `Offers`, `Events`, `Profile` и общий
|
||||
сетевой слой. Ключевые требования — поддержка iPhone, Dynamic Type, VoiceOver,
|
||||
безопасное хранение токенов и глубокие ссылки из уведомлений.
|
||||
|
||||
## Локальный просмотр
|
||||
|
||||
Сборка не требуется: страница статическая.
|
||||
|
||||
```bash
|
||||
git clone https://github.dfv24.com/fofanov.dmitry/coral-mobile-lending.git
|
||||
cd coral-mobile-lending
|
||||
python3 -m http.server 8080
|
||||
```
|
||||
|
||||
Откройте `http://localhost:8080`. Для быстрой проверки достаточно открыть
|
||||
`index.html` в браузере, но HTTP-сервер корректнее имитирует публикацию.
|
||||
|
||||
## Проверка
|
||||
|
||||
```bash
|
||||
test -f index.html
|
||||
test -f img/hero.png
|
||||
test -f img/overview.png
|
||||
test -f img/screens.png
|
||||
```
|
||||
|
||||
## Лицензия
|
||||
|
||||
Код лендинга распространяется по [MIT License](LICENSE). Логотипы и материалы
|
||||
Coral Travel остаются собственностью соответствующих правообладателей; перед
|
||||
публичным коммерческим использованием требуется подтвердить права на графику и
|
||||
бренд.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 981 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.3 MiB |
+41
@@ -0,0 +1,41 @@
|
||||
<!doctype html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="Концепция нативного iPhone-приложения Coral Travel: акции, направления, заявки, события и личный кабинет в одном мобильном интерфейсе.">
|
||||
<meta name="theme-color" content="#00549f">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:title" content="Coral Mobile — концепция iPhone-приложения">
|
||||
<meta property="og:description" content="Нативный мобильный кабинет Coral Travel: поездки, акции, события и заявки.">
|
||||
<meta property="og:image" content="img/hero.png">
|
||||
<title>Coral Mobile — проект iPhone-приложения</title>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
/* Русский лендинг: чистая светлая основа, коралловый синий и карточки iOS. */
|
||||
:root{--blue:#00549f;--cyan:#0093d0;--ink:#112135;--muted:#5d6a79;--line:#dce5ed;--soft:#f4f8fb;--white:#fff;--max:1120px}
|
||||
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;color:var(--ink);font:400 16px/1.65 Manrope,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--white)}
|
||||
a{text-decoration:none;color:inherit}.wrap{max-width:var(--max);margin:auto;padding:0 24px}.top{position:sticky;top:0;z-index:5;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);border-bottom:1px solid rgba(17,33,53,.08)}
|
||||
.top .wrap{height:66px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.03em}.sun{width:28px;height:28px;border-radius:50%;background:linear-gradient(#ffd63d 0 18%,#ffae29 18% 36%,#f46b45 36% 55%,#3c8eca 55% 73%,#174f8c 73%);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}.brand b{color:var(--blue)}.platform{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--cyan);border:1px solid #a9d9ec;border-radius:99px;padding:3px 8px}.nav{margin-left:auto;display:flex;align-items:center;gap:22px;font-size:14px;font-weight:700;color:var(--muted)}.nav a:hover{color:var(--blue)}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:12px 18px;background:var(--blue);color:white;font-weight:800;font-size:14px;box-shadow:0 8px 20px rgba(0,84,159,.2)}.btn:hover{background:#003f79}
|
||||
.hero{padding:74px 0 56px;background:linear-gradient(180deg,#f5fbff 0%,#fff 76%)}.kicker{color:var(--cyan);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}.hero h1{max-width:800px;margin:13px 0 18px;font-size:clamp(38px,6vw,70px);line-height:1.04;letter-spacing:-.055em}.hero h1 span{color:var(--blue)}.lead{max-width:720px;font-size:18px;color:var(--muted);margin:0 0 28px}.hero-visual{margin-top:42px;border-radius:24px;overflow:hidden;box-shadow:0 28px 64px rgba(0,56,104,.18);background:#0079b8}.hero-visual img{display:block;width:100%;height:auto}.caption{margin:13px 0 0;color:#6b7784;font-size:12px;text-align:center}
|
||||
section{padding:90px 0}.eyebrow{font-size:12px;color:var(--cyan);letter-spacing:.12em;font-weight:800;text-transform:uppercase}.title{max-width:730px;font-size:clamp(28px,4vw,45px);letter-spacing:-.045em;line-height:1.12;margin:12px 0 16px}.sub{max-width:710px;color:var(--muted);font-size:17px}.overview{background:var(--soft)}.image-card{margin-top:34px;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 20px 40px rgba(16,52,82,.08)}.image-card img{display:block;width:100%;height:auto}
|
||||
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:36px}.card{border:1px solid var(--line);border-radius:16px;padding:25px;background:#fff}.icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#eaf6fc;color:var(--blue);font-weight:800;margin-bottom:17px}.card h3{margin:0 0 8px;font-size:17px;letter-spacing:-.02em}.card p{margin:0;color:var(--muted);font-size:14px}.flow{background:linear-gradient(135deg,#004a8d,#008fc7);color:white}.flow .eyebrow{color:#aeeaff}.flow .title{color:white}.flow .sub{color:#e3f5fd}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:35px}.step{padding:23px;border:1px solid rgba(255,255,255,.24);border-radius:16px;background:rgba(255,255,255,.1)}.num{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--blue);font-weight:800;font-size:13px;margin-bottom:16px}.step h3{font-size:16px;margin:0 0 7px}.step p{font-size:14px;margin:0;color:#d8f1fc}.tour{text-align:center}.tour .title,.tour .sub{margin-left:auto;margin-right:auto}.tech{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:36px}.tech .card{background:var(--soft)}.tech ul{margin:12px 0 0;padding-left:18px;color:var(--muted);font-size:14px}.cta{padding:96px 0;background:#f3f8fb}.cta-box{text-align:center;padding:58px 28px;border-radius:24px;background:linear-gradient(115deg,#00549f,#008fc7);color:#fff}.cta-box h2{margin:0;font-size:clamp(28px,4vw,42px);letter-spacing:-.045em}.cta-box p{max-width:570px;margin:14px auto 28px;color:#e4f6ff}.cta-box .btn{background:#fff;color:#00549f;box-shadow:none}.footer{padding:30px 0;color:#74808c;font-size:13px;border-top:1px solid var(--line)}.footer .wrap{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap}
|
||||
@media(max-width:760px){.nav a{display:none}.nav{gap:0}.hero{padding-top:55px}.grid,.steps,.tech{grid-template-columns:1fr}section{padding:66px 0}.hero-visual{border-radius:15px}.top .wrap{height:60px}.platform{display:none}}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<header class="top"><div class="wrap"><a class="brand" href="#top"><span class="sun" aria-hidden="true"></span><span><b>Coral</b> Mobile</span><span class="platform">iPhone</span></a><nav class="nav"><a href="#features">Возможности</a><a href="#screens">Экраны</a><a href="#ios">iOS-разработка</a><a class="btn" href="#contact">Обсудить проект</a></nav></div></header>
|
||||
<main id="top">
|
||||
<section class="hero"><div class="wrap"><div class="kicker">Концепция мобильного продукта</div><h1>Coral Travel — <span>на iPhone</span></h1><p class="lead">Лендинг проекта нативного приложения для путешественников и партнёров: вся ключевая информация о направлениях, акциях, событиях и заявках — в привычном мобильном интерфейсе.</p><a class="btn" href="#features">Посмотреть возможности ↓</a><figure class="hero-visual"><img src="img/hero.png" alt="Исходный Hero-дизайн Coral Travel с двумя iPhone"></figure><p class="caption">Визуальная основа — предоставленный макет Coral Travel, адаптированный для секций лендинга.</p></div></section>
|
||||
<section class="overview" id="features"><div class="wrap"><div class="eyebrow">Единая точка входа</div><h2 class="title">Путешествия и сервисы без лишних переходов</h2><p class="sub">Проект объединяет контент, специальные предложения и взаимодействие с пользователем в одном приложении. Каждая функция спроектирована для короткого мобильного сценария.</p><div class="grid"><article class="card"><div class="icon">01</div><h3>Акции и новости</h3><p>Персональная лента предложений, подборок и важных обновлений.</p></article><article class="card"><div class="icon">02</div><h3>Направления</h3><p>Удобный обзор туров и тематических материалов с визуальными карточками.</p></article><article class="card"><div class="icon">03</div><h3>Заявка с телефона</h3><p>Короткая форма участия в мероприятии без перехода на внешний сайт.</p></article></div><figure class="image-card"><img src="img/overview.png" alt="Экран Coral Travel и описание Travel Market"></figure></div></section>
|
||||
<section class="flow"><div class="wrap"><div class="eyebrow">Понятный пользовательский путь</div><h2 class="title">От интереса к действию — за несколько касаний</h2><p class="sub">Интерфейс строится вокруг привычного сценария iPhone и не требует изучать сложную навигацию.</p><div class="steps"><article class="step"><div class="num">1</div><h3>Открыть подборку</h3><p>Пользователь видит актуальную акцию, новость или направление в ленте.</p></article><article class="step"><div class="num">2</div><h3>Изучить детали</h3><p>Карточка даёт контекст, условия и понятное следующее действие.</p></article><article class="step"><div class="num">3</div><h3>Оставить заявку</h3><p>Данные профиля подставляются в форму, а статус остаётся в личном кабинете.</p></article></div></div></section>
|
||||
<section class="tour" id="screens"><div class="wrap"><div class="eyebrow">Экраны продукта</div><h2 class="title">Один визуальный язык для разных задач</h2><p class="sub">Лента, каталог, акция и анкета связаны общей навигацией, привычной для iPhone.</p><figure class="image-card"><img src="img/screens.png" alt="Пять экранов iPhone приложения Coral Travel: акция, лента, старт, каталог и анкета"></figure></div></section>
|
||||
<section id="ios"><div class="wrap"><div class="eyebrow">План реализации</div><h2 class="title">Нативный iOS-стек с вниманием к деталям</h2><p class="sub">Технический план можно развивать по этапам: сначала ценность для пользователя, затем интеграции и персонализация.</p><div class="tech"><article class="card"><h3>Клиентское приложение</h3><ul><li>Swift и SwiftUI для современных экранов iPhone;</li><li>адаптация к Dynamic Type и VoiceOver;</li><li>Keychain для чувствительных данных сессии;</li><li>deep link и push-уведомления.</li></ul></article><article class="card"><h3>Серверные интеграции</h3><ul><li>REST API для ленты, каталога, заявок и профиля;</li><li>единая авторизация и обновление токена;</li><li>кэширование контента для стабильной работы сети;</li><li>аналитика событий без передачи лишних данных.</li></ul></article></div></div></section>
|
||||
<section class="cta" id="contact"><div class="wrap"><div class="cta-box"><h2>Готовы обсудить Coral Mobile?</h2><p>Этот лендинг фиксирует концепцию iPhone-приложения и может стать стартовой точкой для продуктового брифа, UX-проектирования и разработки MVP.</p><a class="btn" href="mailto:hello@dfv24.com?subject=Coral%20Mobile%20Lending">Запросить презентацию</a></div></div></section>
|
||||
</main>
|
||||
<footer class="footer"><div class="wrap"><span>Coral Mobile Lending · концепция iPhone-приложения</span><span>© 2026 Дмитрий Фофанов</span></div></footer>
|
||||
<script>/* Небольшое улучшение: внешние почтовые ссылки не меняют URL лендинга. */</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,4 @@
|
||||
User-agent: *
|
||||
Allow: /
|
||||
|
||||
Sitemap: https://coral-mobile.apps.dfv24.com/sitemap.xml
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://coral-mobile.apps.dfv24.com/</loc>
|
||||
</url>
|
||||
</urlset>
|
||||
Reference in New Issue
Block a user