Logomark и wordmark во всех вариантах
Mark — моноширинный 1× с мигающим курсором. Используется currentColor — цвет наследуется от родителя. glow — 3-слойный drop-shadow.
Палитра токенов
Все цвета определены как CSS custom properties в globals.css → @theme. Доступны через Tailwind: bg-ink-100, text-accent-400, border-accent-400/20, и т.д.
Ink scale (neutral)
Accent · terminal green
Neon · brand accents
Vertical · per-market colors
Шрифты и шкала
Три шрифта загружаются через next/font — субсет cyrillic + latin. Space Grotesk для дисплея, Inter для тела, JetBrains Mono для кода и технического текста.
Для заголовков H1-H3, логотип wordmark, hero-блоков.
Студия, где 1× инженер > 10×
Body copy, UI, подписи. Кириллица и латиница.
Основной текст, параграфы, UI-элементы. 0123456789
Код, eyebrow'ы, технические метки, терминальные блоки.
$ ./deploy --env=prod [==== 80%] 0x1f4a7
Display scale (font-display)
Бейджи и пиллы
Для eyebrow'ов, статусов, чипов.
Поля и переключатели
Карточки
Базовая карточка: rounded-2xl, border-white/10, bg-ink-100.
Radial-gradient glow в углу — используется в Services и Vertical-showcase.
Радиальный glow появляется на hover.
Градиенты и auroras
Большие фоны на страницах вертикалей. Плюс per-case heroGradient.
Анимации и easings
Основная кривая: cubic-bezier(0.16, 1, 0.3, 1) — easeOutExpo. Используется в Reveal, кнопках и hover-состояниях.
1.1s step animation, opacity 1 ↔ 0, hard cut. Используется в логотипе и hero-бейдже.
40s linear. Используется в логотипной ленте и стек-секции.
18s loop. Фон для hero-секций.
Reveal: native IntersectionObserver, opacity 0 → 1, blur 8px → 0, y 28px → 0, 0.8s expo easing.
Иконки
Весь iconset — lucide-react. На сайте используется подмножество; копируем имена из https://lucide.dev и импортируем по надобности.
Контакты и встречи
Источник правды — src/shared/config/contacts.ts. У каждого канала есть описание (hover по карточке → tooltip) — команда всегда знает зачем и когда использовать.
Прямые каналы
Основной канал для официальных писем, NDA, документов, договоров и sales-пресейла. Ответ < 5 минут в рабочее время.
mailto:[email protected]Быстрая связь для уточнений, статусов проектов, оперативных вопросов. Отвечаем в рабочее время.
https://t.me/onexdevАльтернатива Telegram для клиентов из MENA / LATAM / EU, где WA — основной мессенджер.
https://wa.me/995555000000Встречи / scheduling
30 минут знакомства, без слайдов и пресейла. В конце даём честное «да / нет / не сейчас» и план следующего шага.
15 минут по BANT, если intro на 30 минут ещё рано. Решаем: дальше в discovery или нет.
Платный 5-дневный мини-спринт за $3K — засчитывается в SOW при старте проекта. На выходе: scope, архитектура, риск-карта, 3-option proposal.
Социальные каналы
Корпоративная страница студии. Источник outbound-касаний с CTO/VPE в фандед-стартапах.
Публичные white-label компоненты, open-source утилиты, public case snippets.
Визуальное портфолио дизайн-команды. Shots с UI, motion, design-системами по кейсам под NDA.
Посты фаундеров про инженерию, процессы и комментарии к индустрии. Не продажный, технический.
Тех-дип-дайвы, разборы архитектур, record'ы paid-discovery сессий (с согласия клиентов).
SLA · рабочие часы · доступность
В рабочие часы гарантируем ответ на лид < 5 минут. В выходные дни (суббота, воскресенье) — ответ в понедельник утром.
Ключевой SLA студии. Ответ < 1 минуты повышает конверсию в звонок в 52 раза, < 5 минут — на 21% win rate.
Сколько новых проектов мы готовы взять в ближайший месяц. Обновляется фаундерами вручную когда подписываем новые SoW.
Юридика и география
Источник правды — src/shared/config/company.ts. Юр-статус, платежные реквизиты (какие поддерживаем, какие валюты), compliance-статус.
HQ — Тбилиси. Фаундер A здесь, ops, sales, офис-встречи.
Грузинский LLC + статус VZP (0% corporate tax на экспортные IT-услуги). Регистрируется в Public Registry Georgia, VZP — через Revenue Service.
Soft-launch — 1 мая 2026. Дата регистрации LLC — раньше для юр-процессов.
Принимаем на корпоративный счёт Wise Business + SWIFT/SEPA для крупных контрактов. Никаких личных карт.
Crypto: По запросу под NDA (USDC / USDT)
Рамочный MSA один раз, потом SoW на каждый engagement. Сроки, scope, milestones — в SoW.
Clean transfer после оплаты (кроме white-label компонентов — по лицензии)
Выстроены процессы под GDPR и SOC 2. PCI — через token-based провайдеров, не касаемся raw-кардов.
Один домен для сайта и почты. Резервный — не регистрирован, рассмотреть .dev / .io.
Geographic presence
HQ, founder A, sales, ops, часть команды
Главный офис и основная юрисдикция.
Senior design, frontend, middle frontend
Дизайн и часть фронт-команды.
Senior / middle backend, DevOps, CTO
Фаундер B и бэкенд — распределённо по EU.
CSS variables (single source of truth)
Определены в src/app/globals.css внутри @theme. Tailwind автоматически генерирует utility-классы.
/* src/app/globals.css */
@theme {
--font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;
--font-display: "Space Grotesk", "Inter", ui-sans-serif, sans-serif;
--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;
--color-ink-0: #05060a; --color-ink-500: #3a3e5c;
--color-ink-50: #0a0b12; --color-ink-600: #555a7d;
--color-ink-100: #0f1018; --color-ink-700: #7e85a8;
--color-ink-200: #151623; --color-ink-800: #b5bad4;
--color-ink-300: #1d1f30; --color-ink-900: #e7e9f3;
--color-ink-400: #2a2d45; --color-ink-950: #f6f7fb;
--color-accent-50: #ecffee; --color-accent-500: #00e85c;
--color-accent-100: #ccffd3; --color-accent-600: #00c04c;
--color-accent-200: #8effaa; --color-accent-700: #008c37;
--color-accent-300: #4dff85; --color-accent-800: #005f25;
--color-accent-400: #14ff6b;
--color-neon-lime: #c8ff4a;
--color-neon-cyan: #4ad6ff;
--color-neon-magenta: #ff4aa8;
--color-neon-orange: #ffa24a;
--color-vertical-fintech: #4ad6ff;
--color-vertical-edtech: #c8ff4a;
--color-vertical-saas: #ff4aa8;
--radius-xs: 0.25rem; --radius-lg: 0.875rem;
--radius-sm: 0.375rem; --radius-xl: 1.25rem;
--radius-md: 0.625rem; --radius-2xl: 1.75rem;
--radius-3xl: 2.5rem;
--ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
--ease-in-out-expo: cubic-bezier(0.87, 0, 0.13, 1);
--ease-out-back: cubic-bezier(0.34, 1.56, 0.64, 1);
}