UI Kit
Bootstrap 5 dark · Inter · AI Chat
Цвета и токены
Меняй цвета — изменения мгновенно применяются ко всем элементам ниже. Перезагрузка страницы возвращает дефолты.
Типографика
Inter · базовый размер 14px · line-height 1.6
Чем могу помочь?
Генерация изображений
Параметры генерации
История запросов
Это стандартный текст интерфейса. Используется для сообщений, описаний, настроек и большинства элементов управления.
Текст сообщений в чате. Чуть крупнее для удобства чтения длинных ответов.
Вспомогательный текст, подсказки, описания
Метка элемента управления
ChatGPT · Быстрый · Подпись модели
Раздел · История · UI Kit
Приглушённый цвет для вторичного контента и неактивных состояний
const model = 'chatgpt:fast'
Иконки
SVG stroke · stroke-linecap round · stroke-linejoin round. Для новых иконок — система классов `.icon`/`.icon-Nx`.
Система
.icon · базовый 14px, множители 2x/3x/4xРазмерный ряд (legacy · inline width/height)
Набор · 20px · stroke-width 1.8
Навигационные · 20px · stroke-width 2.5
Действия · 20px · stroke-width 1.8–2
Кнопки
Состояния: Default · Hover · Active · Disabled
Primary · основное действие ·
.btn-generateDefault
Hover
Loading
Disabled
Icon · отправка ·
.send-btnDefault
Hover
Disabled
Ghost icon · копирование (msg-copy-btn)
Default
Hover
Copied
Унифицированные кнопки 39px ·
.btn-generate / .bp-edit-btn / .ref-picker-footer .btnPrimary (btn-generate)
Save (bp-edit-save)
Secondary (bp-edit-btn)
Auth кнопки ·
.auth-btn / .auth-btn-primaryDefault
Disabled
Link (auth-link)
Settings кнопки ·
.settings-btn-narrow (высота как у .auth-input)Primary
Ghost
Danger
Confirm modal кнопки ·
.confirm-btnDefault
Primary
Danger
Plan card buy button ·
.plan-card-buyDefault (outline)
Featured (filled)
Collapse / Expand (btn-collapse)
Default
Hover
Поля ввода
Состояния: Default · Focus · Error · Disabled
Chat input (input-box)
Default
Focus
Error
Image prompt box (images-prompt-box)
TTS textarea
Выпадающие списки
ctrl-pill-primary (модель/провайдер) · ctrl-pill (параметр) · статичное меню
Model pill (ctrl-pill ctrl-pill-primary) · основная модель / провайдер
Default
Hover
Disabled
Setting dropdown (ctrl-pill) · параметры генерации
Default
Hover
Disabled
Открытое меню (dropdown-menu) · в статичном виде
Параметры в одну строку · как в поле изображений
1/4
Контролы
Счётчик · разделитель · range slider · select
Счётчик (ctrl-counter) · — N/max +
Min (1)
1/4
Mid (2)
2/4
Max (4)
4/4
Вертикальный разделитель (ctrl-sep)
Элемент А
Элемент Б
Элемент В
Range slider · TTS параметры
Медленно
Быстро
Низко
Высоко
Voice picker (ctrl-pill-primary + tts-voice-group) · TTS
Чат-компоненты
Сообщения · метки · состояния загрузки · поле ввода
User message (msg-user → user-bubble)
Напиши краткое описание архитектуры нейронных сетей
Многострочное сообщение
со вторым абзацем
и третьей строкой
со вторым абзацем
и третьей строкой
Assistant message (msg-assistant)
Нейронная сеть — это вычислительная модель, вдохновлённая структурой биологического мозга. Она состоит из слоёв нейронов, которые обрабатывают входные данные и передают результат дальше через активационные функции.
Loading state
думаю...
Model label (msg-model-label · caption 11px)
ChatGPT · Быстрый
Claude · Эксперт
Gemini · Продвинутый
Поле ввода · полный вид (input-box с футером)
Виджеты
Аватар · кольцо кредитов · виджет баланса · превью изображений · бейджи
Аватар с кольцом кредитов ·
.avatar-wrapAuthed (initials)
D
Authed (photo)
Unauth (no ring)
?
Виджет кредитов ·
.user-menu-tokensLibrary / image popup кнопка «В библиотеке» ·
.img-popup-lib-btnDefault
In library
Edit badge ·
изменено
.bp-edited-badgeМодальные окна
Кастомные backdrop'ы — settings, plan, confirm. Все используют один паттерн: затемнение + панель с border-radius. Вход модалкой больше не показывается — он живёт на отдельной странице
/login (см. ниже).Login page ·
.login-page — тёмная половина с брендом + светлая с формой (статичное превью, экран 1:1 масштабирован)Login page · экран ввода PIN (светлая половина)
Confirm ·
.confirm-panelВыйти из аккаунта?
Settings · sidebar + content (компактно)
Настройки
Видимо другим участникам
Plan card ·
.plan-card · обычная и featuredLite
450 ₽
300 кредитов бессрочно
~600 сообщений
~60 изображений
Все нейросети
Plus
1 800 ₽
1 200 кредитов бессрочно
~2400 сообщений
~240 изображений
Все нейросети
Баннеры
Полноширинные блоки-подсказки. Используют тот же радиус и фон, что у
.input-box, чуть выше по padding'у.Topup-prompt · auth юзер без активного тарифа (единственный пользователь
.auth-prompt-banner: баннер «войдите» уехал на /login)Maintenance · полностраничная заглушка во время деплоя
Аккаунт-блок
Блок в нижней части sidebar'а: аватар + имя + строка тарифа / кнопка «Обновить».
С активным тарифом ·
.user-account-row + .user-account-planD
Dan Manakhov
Plus
Без тарифа ·
.user-account-upgrade + «без тарифа»D
Dan Manakhov
без тарифа
Виджет кредитов с кнопкой «Обновить» ·
.user-menu-tokens-upgradeРеф-ссылки и промокоды
Card-style строки в реф-разделе настроек, table-rows промокодов с заблокированным состоянием, kebab-меню.
Реф-ссылка ·
.ref-link-item с copy/deleteГлавная
https://lama-ai.ru/?ref=AB7F2K9X
12 / 3
Таблица «Мои промокоды» · card-style строки + статус «Заблокирован»
| Код | Тариф | Использовано / Всего | |
|---|---|---|---|
| BRJX-7K2P | Promo | 3 / 10 | |
| OLD-CODE-2 | Plus | 5 / 5 |
Inline-форма создания ·
.promo-inline-formСообщения формы ·
.plan-promo-msgSuccess
Промокод BRJX-7K2P скопирован
Error
Недостаточно реферальных баллов
Мобильный
Компоненты не дублируются: мобильная версия — это та же разметка
в узком вьюпорте. Поэтому живые примеры ниже показаны в iframe шириной
390px — внутри него по-настоящему срабатывают и media-запросы, и
html.is-mobile. Симулировать это блоком на широкой странице
нельзя: медиа-запросы смотрят на вьюпорт, а не на размер контейнера.
Токены раскладки
Редактор выше работает только с цветами. Эти токены задаются в
:root и меняются вручную.
Брейкпоинты
CSS-переменные не работают в условиях
@media —
пороги пишутся литералами и дублируются в
js/mobile.js → LamaMobile.SCREENS. Менять только парой.
phone | (max-width: 599.98px) | 360–430, портрет — целевой диапазон |
tablet | (max-width: 1023.98px) | планшет / узкое окно |
Зона нажатия
На
(pointer: coarse) иконочные кнопки растут до 44px. Там,
где рост ломает раскладку, зона расширяется прозрачным
::after — видимый размер не меняется.
24px иконка · 44px зона
Безопасные зоны
--safe-* ненулевые только на устройстве с вырезом при
viewport-fit=cover. В браузере на десктопе все нули —
это нормально.
контент внутри safe-area
Живые экраны