Дизайн-система
AppX строит каждое приложение на небольшой дизайн-системе: два файла в constants/ хранят цвета, шрифты, отступы, скругления и тени. Экраны ссылаются на эти файлы, а не прописывают значения вручную, поэтому изменение дизайна — это одна правка: измените файл (или просто попросите в чате), и каждый экран, который использует это значение, изменится следом. Это настоящий код Expo + React Native, так что его можно читать и править.
Структура проекта
В сгенерированных приложениях есть:
constants/
colors.ts ← Цветовая палитра
theme.ts ← Шрифты, отступы, скругления, тени
Цвета
constants/colors.ts экспортирует один объект Colors. Имена ниже взяты из стартового шаблона; значения в вашем приложении генерируются под его дизайн.
const Colors = {
background: '#FAFAF8',
surface: '#F0EDE8',
card: '#FFFFFF',
primary: '#0D0D0D',
secondary: '#6B6B6B',
tertiary: '#A3A3A3',
accent: '#C8A97E',
divider: '#E8E5E0',
error: '#C44D4D',
// …
};
export { Colors };
export default Colors;
Экраны ссылаются на Colors.*, а не прописывают hex-значения. Чтобы изменить акцентный цвет во всём приложении:
- Откройте
constants/colors.tsв редакторе - Замените
accent: '#C8A97E'на свой цвет - Сохраните — каждый компонент, который использует
Colors.accent, обновится в превью
Или просто опишите это в чате: «Change the accent color to purple #7c3aed» — AppX обновит файл цветов.
Отступы, скругления и тени
constants/theme.ts хранит шкалы, общие для всех экранов:
export const spacing = {
xs: 4,
sm: 8,
md: 16,
lg: 24,
xl: 32,
xxl: 48,
};
export const borderRadius = {
sm: 6,
md: 12,
lg: 20,
xl: 28,
full: 999,
};
Тот же файл экспортирует fonts и shadows (sm, md, lg, none).
Использование:
import { spacing, borderRadius, shadows } from '@/constants/theme';
card: {
padding: spacing.md,
borderRadius: borderRadius.md,
...shadows.sm,
}
Тёмная тема
Попросите о ней в чате:
"Add dark mode support. The app should follow the device's system setting (light/dark)."
Иконки
AppX использует lucide-react-native для всех иконок. В наборе больше 1000 иконок в едином стиле.
Использование:
import { Home, User, Settings, ChevronRight } from 'lucide-react-native';
import Colors from '@/constants/colors';
// In JSX:
<Home size={24} color={Colors.primary} />
Все иконки можно посмотреть на lucide.dev.
Чтобы использовать конкретную иконку:
"Use the Bell icon from lucide-react-native in the header"
Шрифты
Доступные шрифты: Inter, DM Sans, Manrope, IBM Plex Sans, Space Grotesk, Sora, Outfit, Nunito, Fraunces, Playfair Display, Lora, IBM Plex Mono.
Чтобы сменить шрифт, попросите в чате:
"Use the Inter font family throughout the app"
Настройка дизайн-системы
Проще всего настраивать через чат:
"Update the design system:
- Accent color: #7c3aed (purple)
- Background: #faf5ff (very light purple)
- Rounded corners: 16 for cards, 8 for inputs
- Font: Inter, semi-bold for headings"
AppX обновит constants/colors.ts и constants/theme.ts и применит изменение на экранах.
О кредитах
Смена стиля через чат — такая же правка, как любая другая: она считается по объёму работы, минимум 1 кредит за ход. Шаг дизайна входит в первую сборку и учтён в оценке на карточке плана. Подробности — в разделе Кредиты.