front-design
Создание высококачественных интерфейсов в стиле "Mobile First" для проекта Knock-Knock. Используйте этот навык при разработке компонентов, страниц или рефакторинге UI. Скилл гарантирует соблюдение архитектуры (React 19, кастомных Radix UI), использование CSS-переменных из index.css, правильную работ
Install
mkdir -p .claude/skills/front-design && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/13948" && unzip -o skill.zip -d .claude/skills/front-design && rm skill.zipInstalls to .claude/skills/front-design
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Создание высококачественных интерфейсов в стиле "Mobile First" для проекта Knock-Knock. Используйте этот навык при разработке компонентов, страниц или рефакторинге UI. Скилл гарантирует соблюдение архитектуры (React 19, кастомных Radix UI), использование CSS-переменных из index.css, правильную работу с темами (Dark/Light) и Mobile-First верстку. Генерирует уникальный, премиальный дизайн, избегая стандартных "AI-шаблонов", сохраняя при этом чистоту кода проекта.About this skill
Front Design (Knock-Knock Edition)
Этот навык предназначен для создания эстетичных, производительных и архитектурно правильных интерфейсов для мессенджера Knock-Knock.
Основные принципы (Knock-Knock Core)
- Mobile First: Любой интерфейс сначала проектируется для мобильного экрана. Desktop-версия является адаптивным расширением.
- Radix UI Base: Используйте кастомные примитивы Radix (
<Flex>,<Box>,<Text>,<Container>,<Section>) для построения разметки. Избегайте использованияdivдля лейаутов. - Единый источник истины (Tokens): Используйте CSS-переменные, определенные в
app/src/index.css. - Никаких инлайн-стилей: Стилизация выполняется через пропсы или CSS Modules.
- React 19.2 Standards:
- Используй фичи и типы из последней версии React (19.2). Не используй устаревшие методы (например,
forwardRefбольше не нужен,refпередается как обычный проп). - Предпочитай нативные API и новые React хуки (например,
useActionState,useFormStatus,useOptimistic).
- Используй фичи и типы из последней версии React (19.2). Не используй устаревшие методы (например,
- Internationalization (i18n):
- No Hardcode: Текст в UI никогда не пишется хардкодом.
- Используй хук:
const { t } = useTranslation();->t('auth.login.title'). - Приоритет: Русский язык — база, Английский — второй.
- Нейминг ключей: Используй семантическую вложенность (
page.component.element).
- Темизация: Интерфейс должен идеально выглядеть как в светлой, так и в темной теме, используя семантические переменные (например,
--main-background,--foreground).
Дизайн-система и токены
При написании стилей или компонентов ВСЕГДА обращайтесь к переменным из index.css:
Цвета и семантика
--primary: Основной акцентный цвет (обычноblue-9).--background: Фон приложения.--surface: Цвет панелей и карточек.--destructive: Цвета для ошибок и удаления.
Отступы (Spacing)
Используйте системные переменные для консистентности:
--space-xs(8px),--space-sm(12px),--space-md(16px),--space-lg(24px) и т.д.
Типографика
Используйте var(--font-sans) и системные размеры:
--text-sm(14px),--text-base(16px),--text-lg(18px) и т.д.
Правила реализации
1. Верстка лейаутов
Используйте кастомные Radix UI компоненты для структуры:
import { Text, Button } from '@/components/ui';
import { Flex, Box } from '@/components/layout';
import styles from './MyComponent.module.css';
export const MyComponent = () => (
<Flex direction="column" gap="3" className={styles.container}>
<Box>
<Text size="5" weight="bold">Заголовок</Text>
</Box>
{/* Контент */}
</Flex>
);
2. CSS Modules
Если пропсов Radix недостаточно, используйте CSS Modules. Внутри модулей можно обращаться к глобальным переменным:
/* MyComponent.module.css */
.container {
padding: var(--space-md);
background: var(--surface);
border-radius: var(--radius-md);
border: 1px solid var(--border);
}
Стандарты Дизайна: Premium Glassmorphism
Философия Ядра
- НИКАКОГО ПЛОСКОГО ДИЗАЙНА (NO FLAT): Каждая поверхность должна иметь глубину (градиенты, глянец, стекло или тени).
- НИКАКОГО ПРОСТОГО БЕЛОГО: Светлая тема должна использовать текстурированные или градиентные фоны (Пастельная Сетка или Кремовая Бумага).
- НИКАКОГО ПРОСТОГО ЧЕРНОГО: Темная тема должна использовать глубокие цветные градиенты (Космический Индиго или Лесной Зеленый).
- ГАРМОНИЯ И СИММЕТРИЯ: Компоненты должны быть визуально сбалансированы. Отступы должны быть симметричными, элементы выравнены по сетке или оптическому центру. Избегайте визуального шума, "рваных" краев и диспропорций.
Утвержденные Темы
-
Default ⭐ (По умолчанию для новых пользователей)
data-theme="default", дефолтный mode:light- Ключевые слова: Чисто, знакомо, практично (WA-инспирд).
- Light:
#f0f2f5фон,#ffffffпанели,#00a884акцент,#d9fdd3исходящие - Dark:
#111b21фон,#202c33панели,#00a884акцент,#005c4bисходящие - Типографика:
Helvetica Neue, Helvetica, Arial, -apple-system, sans-serif
-
Cosmic Neon
data-theme="neon"- Ключевые слова: Киберпанк, Будущее, Голография.
- Палитра: Фиолетовые/Индиго фоны, Неоновые Голубые/Розовые акценты.
- Стекло: Сильное размытие (20px), матовый эффект.
-
Emerald Luxury
data-theme="emerald"- Ключевые слова: VIP, Природа, Золото, Платина.
- Палитра: Глубокие Лесные/Угольные фоны, Изумрудные/Золотые акценты.
- Стекло: Чёткие, тонкие границы (Золото/Серебро), слабое размытие.
Mobile First Компоненты
- Поля ввода: Формы «Таблетки» (Pill-shape) — в
defaultсо светлым фоном, вneon/emerald— с glassmorphism. - Навигация: Для
default— чёткие бары. Для Neon/Emerald — стеклянные. - Типографика:
default→ Helvetica Neue.neon/emerald→ Inter или Outfit.
CSS Архитектура
- Используйте только семантические переменные:
--surface,--accent-primary,--border,--muted. - Никогда не хардкодьте HEX значения в CSS-модулях — только через
var(--*). - Поддержка трёх тем:
[data-theme='default'],[data-theme='neon'],[data-theme='emerald']. - CSS Layers (@layer) под полным запретом из-за риска перекрытия базовых стилей (Radix UI не работает с кастомными слоями корректно).
- Container Queries используются по умолчанию для создания компонентов, меняющих верстку (например, переход из Landscape в Portrait ориентацию карточек) в зависимости от контейнера.
3. Анимации
Используйте CSS-анимации для микровзаимодействий. Для сложных переходов страниц используйте возможности TanStack Router. Оставляйте анимации лёгкими, чтобы не блокировать основной поток (важно для криптографии).
Чего следует ИЗБЕГАТЬ
- Generic AI Style: Стандартные фиолетовые градиенты на белом фоне.
- Инлайн-стили:
style={{ marginTop: '10px' }}иstyle={{ color: 'var(--primary)' }}в компонентах — запрещено. - div-soup: Использование
divтам, где подходитFlexилиBox. - Жёсткие значения: Не пишите в модулях
16px, пишитеvar(--space-md). - HEX в CSS-модулях: Не
color: #00a884, аcolor: var(--accent-primary).
Референсы
- Radix UI vs CSS Modules — когда и что использовать.
- Mobile-First Patterns — паттерны для мессенджера.
- Theming & Colors — глубокая работа с темами.
- DESIGN_SYSTEM_PLAN.md — план рефакторинга CSS, полная палитра
default-темы.