перевод лендинга на vue, добавление поддержки inertia

This commit is contained in:
2026-06-27 22:15:17 +04:00
parent d72650bbdc
commit 8bf1b852f0
25 changed files with 1451 additions and 162 deletions
@@ -0,0 +1,38 @@
export const navLinks = [
{ href: '#about', label: 'О сервере' },
{ href: '#features', label: 'Особенности' },
{ href: '#join', label: 'Регистрация' },
{ href: '#news', label: 'Новости' },
];
export const features = [
['I', 'Сигнатурная фича', 'Индивидуальный прогресс по эпохам', 'Пока твой герой не увидел финал Классики - Outland закрыт. Пока не закрыт Illidan - Нортренд в тумане. Каждый идет в своем темпе, без скипов.', 'span-6', 'path'],
['II', '', 'Соло-данжи', 'Любое подземелье проходимо в одиночку: мы скейлим боссов и механики под размер отряда - от 1 до 5.', 'span-3', 'solo'],
['III', '', 'Режим «Предатель»', 'При создании персонаж Альянса может встать на сторону Орды (и наоборот). Отдельные сюжеты, NPC, репутации.', 'span-3', 'mask'],
['IV', 'В разработке', 'Ликантропия', 'Воргены как болезнь: заражайся, сопротивляйся, или прими форму. Твой выбор - твой путь.', 'span-4', 'wolf'],
['V', '', 'Mythic+ без потолка', 'Бесконечное масштабирование уровня ключа. Каждую неделю - новые аффиксы.', 'span-4', 'mythic'],
['VI', 'В разработке', 'Боевой пропуск · магазин наград', 'Ежедневные и еженедельные задания, ежедневные награды за вход, косметика в магазине.', 'span-4', 'pass'],
['VII', 'В разработке', 'Коллекции', 'Питомцы, ездовые животные, трансмогрификация - все в одном журнале, с фильтрами и прогрессом.', 'span-6', 'collection'],
['VIII', 'Side Project', 'MoonWell Karts', 'Отдельная мини-игра в нашей инфраструктуре - аркадные гонки с персонажами сервера. В разработке.', 'span-6', 'kart'],
].map(([num, tag, title, desc, span, icon]) => ({ num, tag, title, desc, span, icon }));
export const steps = [
{ name: 'Classic', lvl: '1-60', status: 'Активно', state: 'live' },
{ name: 'The Burning Crusade', lvl: '60-70', status: 'Следующая эпоха', state: 'current' },
{ name: 'Wrath of the Lich King', lvl: '70-80', status: 'Закрыто за туманом', state: 'locked' },
];
export const iconPaths = {
path: '<path d="M3 20 L8 12 L12 16 L16 6 L21 14" /><circle cx="8" cy="12" r="1.2" fill="currentColor" /><circle cx="12" cy="16" r="1.2" fill="currentColor" /><circle cx="16" cy="6" r="1.2" fill="currentColor" />',
solo: '<circle cx="12" cy="12" r="9" /><path d="M12 7v5l3 2" /><circle cx="12" cy="12" r=".8" fill="currentColor" />',
mask: '<path d="M4 8c2-2 5-3 8-3s6 1 8 3v5c-1 4-4 7-8 7s-7-3-8-7z" /><path d="M8 11l2 2" /><path d="M16 11l-2 2" />',
wolf: '<path d="M3 9l3-5 3 4h6l3-4 3 5-2 3v5l-4 3h-6l-4-3V12z" /><circle cx="9" cy="13" r=".8" fill="currentColor" /><circle cx="15" cy="13" r=".8" fill="currentColor" />',
mythic: '<polygon points="12 3 15 9 22 10 17 15 18 22 12 19 6 22 7 15 2 10 9 9" />',
pass: '<rect x="3" y="6" width="18" height="14" rx="1" /><path d="M3 10h18" /><path d="M7 14h6" /><circle cx="17" cy="15" r="1.2" />',
collection: '<rect x="3" y="3" width="8" height="8" /><rect x="13" y="3" width="8" height="8" /><rect x="3" y="13" width="8" height="8" /><circle cx="17" cy="17" r="4" />',
kart: '<path d="M3 15l2-5h8l4 3h4v2" /><circle cx="7" cy="17" r="2" /><circle cx="17" cy="17" r="2" /><path d="M9 15h4" />',
};
export const arrowSvg = '<svg class="btn-arrow" viewBox="0 0 14 10" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M1 5h12M9 1l4 4-4 4" /></svg>';
export const moonMark = (size = 32) => `<svg viewBox="0 0 32 32" width="${size}" height="${size}" fill="none" stroke="currentColor" stroke-width="1"><circle cx="16" cy="16" r="11" stroke-opacity="0.3" /><path d="M20 7 A11 11 0 1 0 20 25 A8 8 0 1 1 20 7 Z" fill="currentColor" fill-opacity="0.7" /><circle cx="16" cy="16" r="15" stroke-opacity="0.15" stroke-dasharray="1 3" /><path d="M16 1 L16 4 M16 28 L16 31 M1 16 L4 16 M28 16 L31 16" stroke-opacity="0.4" /></svg>`;