Files
bare/docs/identity/brief.md
T
mayatnikovandClaude Opus 5 547637067d Слить main: стороны сообщений поверх строки ввода iOS
Обе ветки правили строку ввода чата ради одной и той же полосы
помощника форм над клавиатурой iOS. ADR-064 из main считал триггером
элемент form и вынес поле наружу; на устройстве не помогло — полоса
бывает у input и textarea всегда. ADR-069 отсюда заменяет поле
редактируемым блоком, это и есть «следующий шаг» из следствий ADR-064.

Что взято:
- строка ввода — редактируемый блок (ADR-069/071), контейнер div
  с role="form" и кнопка type="button" (ADR-064);
- лента — поток со сторонами, feed-list (ADR-065), не сетка;
- brief.md: safe-area из ADR-075 и стороны из ADR-065 вместе;
- app.css: правило 44 px для блока ввода; .author:empty из медиазапроса
  убран — main вынес его на верхний уровень, сетки больше нет.

Убран слушатель submit: контейнер стал div, событие не случается.
ADR-064 и ADR-069 связаны ссылками в обе стороны.

sw.js VERSION → v6: клиент отличается от обеих версий, где стоял v5.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QR8uS3zGkybzWRW4GEY1oz
2026-08-24 11:26:09 +03:00

4.1 KiB
Raw Permalink Blame History

Айдентика «Скобы»

Источник — исследование «Исследование айдентики Bare» (Claude Design), вариант 1h и мок чата 2a/2b. Здесь — то, что из него принято (ADR-024).

Знак

Четыре угла рамки, из которой вынули содержимое. Пустота внутри и есть знак. Файл — mark.svg (viewBox 64, штрих 7); для 16 px штрих 9 (web/icons/mark.svg).

Правила: внутрь рамки ничего не помещать; не скруглять; не замыкать в квадрат; не наклонять и не анимировать; один цвет на знак; охранное поле — длина одного уголка. На тёмном и акцентном фоне знак всегда bone.

Wordmark — слово bare строчными рядом со знаком, тем же шрифтом, что интерфейс. «Bare» с заглавной — только в тексте.

Цвет

имя значение роль
bone #F7F5F0 фон
ink #1B1917 текст, рамки, активный элемент
text2 #3C3B38 вторичный текст
mute #6E6D68 авторы, подписи
stone #A9A59D время, placeholder, pending
line #E7E3DA разделители
edge #DEDCD6 внешние границы
mark oklch(55% 0.19 20), fallback #C82D40 один акцент: непрочитанные, «новые», > ввода, свой ник, предупреждения

Акцент — не чаще одного смыслового элемента на экран. Не для кнопок и заливок. Никаких градиентов, теней, скруглений.

CSS-переменные: --bone --ink --text2 --mute --stone --line --edge --mark.

Шрифт

Один: системный моноширинный.

font-family: ui-monospace, "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace;

Размеры: текст сообщений 14 px / 1.55; автор и время 12 px; заголовки секций 10 px, разрядка 0.14em, uppercase; подписи 11 px; имя чата в шапке 15 px. Шрифты не загружаются.

Поля ввода — те же 14 px, исключений нет: масштабирование в клиенте запрещено, и растить шрифт ради обхода фокус-зума iOS не приходится (ADR-075).

Компоновка

  • Десктоп: сайдбар 224 px с правой границей line, шапка 64 px, отступы контента 32 px.
  • Мобильный: шапка 56 px, отступы 20 px, ввод с min-height 44 px. Нижнее поле подвала и строки ввода считается с env(safe-area-inset-bottom): под системную полосу iPhone они не заходят (ADR-075).
  • Сообщения — поток на обеих ширинах, автор и время над текстом; свои — у правого края ленты, чужие — у левого, ширина блока не больше min(640px, 85%) (ADR-065).
  • Ввод — рамка 1 px ink, без скруглений, > цветом mark слева.
  • Активный элемент списка — инверсия: фон ink, текст bone.
  • Разделители — 1 px line; разделитель «новые» — 1 px mark.

Голос

Короткие фразы, строчные буквы, без восклицаний и маркетинга. Ошибки говорят, что случилось и что делать. Примеры в docs/ui.md.