feat(design): добавлен характер — hero, цветные миры, карточки с акцентами
- Hero на главной: большой заголовок в градиенте, мистический тэглайн, мета-плашка «N миров / N публикаций / N лет онлайн» - Декоративный фон: звёздная россыпь + радиальные градиенты акцента (CSS-only, без картинок) - Карточки постов с цветовой полосой по категории + hover-эффект - Цветные теги категорий с glow-точкой - «Миры и проекты» вместо «Форумы»: 8 карточек с тэгом, названием, описанием каждой вселенной и цветовой кодировкой - Single post: буквица в первом абзаце, центрированный заголовок в градиенте, тег категории сверху - BrandMark SVG (две зеркальные арки) + липкая шапка с blur - Cormorant Garamond вместо Lora — больше серифной выразительности - CATEGORY_COLORS в consts.ts (расширяемая палитра) - Mobile-адаптация (clamp заголовки, перенос меты, уменьшенные паддинги)
This commit is contained in:
104
src/consts.ts
104
src/consts.ts
@@ -3,6 +3,9 @@ export const SITE_DESCRIPTION = 'Ролевой проект по совреме
|
||||
export const SITE_URL = 'https://anotherreflections.ru';
|
||||
export const SITE_AUTHOR = 'Иные Отражения';
|
||||
export const SITE_LANG = 'ru-RU';
|
||||
export const SITE_FOUNDED = 2006;
|
||||
|
||||
export const HERO_TAGLINE = 'Открываем двери в миры, где границы реальности тают, а свет встречается с тенью';
|
||||
|
||||
/**
|
||||
* RSS-фид отдаёт только посты с pubDate >= этой даты.
|
||||
@@ -10,27 +13,100 @@ export const SITE_LANG = 'ru-RU';
|
||||
* архив 2009–2015 не залился в форумы одной волной, отрезаем по cutover.
|
||||
* Изменить дату → перезапустить build.
|
||||
*/
|
||||
export const RSS_CUTOFF = new Date("2026-05-20T00:00:00+03:00");
|
||||
export const RSS_CUTOFF = new Date('2026-05-20T00:00:00+03:00');
|
||||
|
||||
/** Сколько постов в RSS-фиде максимум (после фильтра cutoff). */
|
||||
export const RSS_LIMIT = 30;
|
||||
|
||||
/** Внешние ссылки на форумы и связанные проекты. */
|
||||
export const FORUMS = [
|
||||
{ name: 'Главный форум', url: 'https://forum.anotherreflections.ru/' },
|
||||
{ name: 'Сумерки Дозоров', url: 'https://sumerki.anotherreflections.ru/' },
|
||||
{ name: 'Ренессанс', url: 'https://renessans.anotherreflections.ru/' },
|
||||
{ name: 'Амбер', url: 'https://amber.anotherreflections.ru/' },
|
||||
{ name: 'Киндрет', url: 'https://kindret.anotherreflections.ru/' },
|
||||
{ name: 'Warhammer 40k', url: 'https://warhammer40k.anotherreflections.ru/' },
|
||||
{ name: 'Над бездной', url: 'https://bezdna.anotherreflections.ru/' },
|
||||
{ name: 'Глубина', url: 'https://deep.anotherreflections.ru/' },
|
||||
/**
|
||||
* Цвета категорий — для тэгов в ленте и подсветки карточек.
|
||||
* Если slug отсутствует в этом мапе, используется --accent по умолчанию.
|
||||
*/
|
||||
export const CATEGORY_COLORS: Record<string, string> = {
|
||||
'obshhie-novosti': 'var(--c-news)',
|
||||
'tech_news': 'var(--c-tech)',
|
||||
'reklama': 'var(--c-ads)',
|
||||
'nashi-druzya': 'var(--c-friends)',
|
||||
'rolgames': 'var(--c-roleplay)',
|
||||
'nad-bezdnoj': 'var(--c-bezdna)',
|
||||
'glubina': 'var(--c-glubina)',
|
||||
'fan-art': 'var(--c-fanart)',
|
||||
'sumerki-dozorov': 'var(--c-sumerki)',
|
||||
'klub-lukyanenko': 'var(--c-lukyanenko)',
|
||||
};
|
||||
|
||||
/** Миры (старые «Форумы и проекты») — карточки на главной с тематикой и цветом. */
|
||||
export type World = {
|
||||
name: string;
|
||||
tag: string;
|
||||
desc: string;
|
||||
url: string;
|
||||
color: string;
|
||||
};
|
||||
|
||||
export const WORLDS: World[] = [
|
||||
{
|
||||
name: 'Сумерки Дозоров',
|
||||
tag: 'Дозоры · С. Лукьяненко',
|
||||
desc: 'Главная игровая вселенная проекта. Иные, Свет и Тьма, Договор.',
|
||||
url: 'https://sumerki.anotherreflections.ru/',
|
||||
color: 'var(--c-sumerki)',
|
||||
},
|
||||
{
|
||||
name: 'Амбер',
|
||||
tag: 'Янтарное Королевство · Р. Желязны',
|
||||
desc: 'Истинный мир, его Отражения и принцы крови с непростой семейной историей.',
|
||||
url: 'https://amber.anotherreflections.ru/',
|
||||
color: 'var(--c-amber)',
|
||||
},
|
||||
{
|
||||
name: 'Киндрет',
|
||||
tag: 'Кровные братья · А. Пехов',
|
||||
desc: 'Современная Москва глазами вампирских домов и их теневой политики.',
|
||||
url: 'https://kindret.anotherreflections.ru/',
|
||||
color: 'var(--c-kindret)',
|
||||
},
|
||||
{
|
||||
name: 'Ренессанс',
|
||||
tag: 'Историческая фантастика',
|
||||
desc: 'Эпоха возрождения с фантастическими допущениями.',
|
||||
url: 'https://renessans.anotherreflections.ru/',
|
||||
color: 'var(--c-roleplay)',
|
||||
},
|
||||
{
|
||||
name: 'Над бездной',
|
||||
tag: 'Тёмная мистика',
|
||||
desc: 'Тонкая грань между обыденным и потусторонним. IPB 4.x.',
|
||||
url: 'https://bezdna.anotherreflections.ru/',
|
||||
color: 'var(--c-bezdna)',
|
||||
},
|
||||
{
|
||||
name: 'Глубина',
|
||||
tag: 'Дозоры · Глубина',
|
||||
desc: 'Параллельный пласт реальности из мира Дозоров. IPB 4.x.',
|
||||
url: 'https://deep.anotherreflections.ru/',
|
||||
color: 'var(--c-glubina)',
|
||||
},
|
||||
{
|
||||
name: 'Warhammer 40k',
|
||||
tag: 'Сорок первое тысячелетие',
|
||||
desc: 'Только война. Игровое сообщество по вселенной Games Workshop.',
|
||||
url: 'https://warhammer40k.anotherreflections.ru/',
|
||||
color: 'var(--c-roleplay)',
|
||||
},
|
||||
{
|
||||
name: 'Главный форум',
|
||||
tag: 'Общая площадка',
|
||||
desc: 'Архивный форум проекта со всеми мирами в одном месте.',
|
||||
url: 'https://forum.anotherreflections.ru/',
|
||||
color: 'var(--c-news)',
|
||||
},
|
||||
];
|
||||
|
||||
/** Главное меню. */
|
||||
export const MAIN_NAV = [
|
||||
{ label: 'Главная', href: '/' },
|
||||
{ label: 'Новости', href: '/' },
|
||||
{ label: 'О нас', href: '/o-nas/' },
|
||||
{ label: 'Наши друзья', href: '/nashi-druzya/' },
|
||||
{ label: 'Форумы', href: '#forums' },
|
||||
{ label: 'Миры', href: '/#worlds' },
|
||||
{ label: 'Друзья', href: '/nashi-druzya/' },
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user