Files
brov-macbook/tehzadanie.md
T
maksarsanjeev 750e5ad0ad Character brief for the BroV redesign (tehzadanie.md)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 20:01:48 +03:00

34 KiB
Raw Blame History

ТЗ: персонаж для BroV

0. Контекст

BroV — маленькое приложение для macOS, которое живёт в «чёлке» (notch) MacBook. Внутри сидит персонаж-маскот. Он показывает, что делают ИИ-агенты (Claude Code и другие), просит подтвердить действия, болтает в чате и реагирует на пользователя.

Название — игра слов: BroV = «бровь» (чёлка MacBook похожа на бровь) + «bro». Персонаж должен это обыгрывать.

Сейчас в приложении стоит временная заглушка: болотно-зелёный бугристый комок с огромной сросшейся волосатой бровью, кровавыми глазами разного размера, зубастой ухмылкой, слюной, бородавками и шрамом со швами. Её нужно заменить на нормально придуманного персонажа.

Важно про технику. Персонаж рисуется кодом: SwiftUI Canvas, векторные примитивы (эллипсы, кривые Безье, скруглённые прямоугольники, градиенты), 60–120 кадров/с. Картинок, спрайтов, Lottie или Rive нет. Анимация параметрическая: у движка есть набор чисел (поворот головы, сжатие, открытость глаз и т. п.), которые плавно меняются, и каждый кадр персонаж перерисовывается по этим числам. Значит, от тебя нужны не «кадры мультика», а конструкция персонажа + раскадровки, привязанные к этим параметрам. Код по твоему дизайну напишет другой ИИ (Claude).


1. Что нужно сдать (deliverables)

  1. Концепт и характер. 3 варианта концепта (картинками), потом один финальный. Короткое описание характера: кто он, как двигается, чем бесит, чем мил.
  2. Character sheet финального варианта: анфас, повороты головы влево/вправо (≈30°), взгляд вверх/вниз, вид в мелком размере (20 и 44 pt).
  3. Слоистый SVG нейтральной позы (viewBox, описанный в разделе 3), каждый элемент отдельной группой с понятным id: body, shading, brow, eye-left, eye-right, mouth, hand-left, hand-right, details (бородавки, шрамы и т. п.). Только простые фигуры: ellipse, rect rx, path с кривыми Безье, linearGradient/radialGradient. Без фильтров, масок с растром, шрифтов и картинок.
  4. Все формы глаз (13 штук, раздел 6) — SVG или чёткие эскизы с размерами.
  5. Все формы брови по состояниям и эмоциям (раздел 7).
  6. Все формы рта по состояниям, плюс «рот-щель» для режима коробки (раздел 11).
  7. Палитра с HEX: основное тело, тени, обводки, глаза, бровь, рот, акценты. Плюс правило, как тело перекрашивается в цвет состояния (раздел 5).
  8. Раскадровки каждой анимации из разделов 8–13: ключевые позы + тайминги в миллисекундах + какие параметры меняются. Формат описан в разделе 15.
  9. Аксессуары/наряды (раздел 14): как каждый сидит на новой форме тела.
  10. Иконка приложения (1024×1024, скруглённый квадрат macOS) и иконка меню-бара (одноцветный силуэт 22×16 pt, читается в 16 px).

2. Жёсткие ограничения

  • Фон всегда чёрный: чёлка — это чёрный остров у верхнего края экрана. Персонаж должен хорошо читаться на #000–#16171B.

  • Размеры, в которых он живёт (диаметр области персонажа):

    • 6 pt — спрятан в чёлке (почти точка);
    • 20 pt — бегунок полосы загрузки;
    • 24–30 pt — свёрнутый режим (compact) и мини-боты в «пилюлях» агентов;
    • 44–66 pt — основной размер в развёрнутой чёлке;
    • 120 pt — режим «на рабочем столе»;
    • 1024 — иконка.

    Главный размер — 44–66 pt. При 20–30 pt мелкие детали (волоски, вены, бородавки) должны пропадать, а силуэт, бровь и глаза — оставаться узнаваемыми. Опиши, какие детали скрывать ниже какого размера.

  • Простота отрисовки: держи в голове бюджет ~40 фигур на кадр для основного персонажа и ~10 для мини-бота. Без сложных текстур.

  • Псевдо-3D: голова «поворачивается» (yaw/pitch, раздел 4). Глаза, бровь и рот при повороте съезжают по поверхности и сплющиваются по краям, как на шаре. Значит, лицо должно лежать на условной сфере, а не быть плоской наклейкой.

  • Тело перекрашивается: мини-боты агентов заливаются сплошным цветом агента (синий, зелёный и т. д.). Дизайн должен работать и в «своих» цветах, и в однотонной заливке любого цвета.

  • Лицензия: нельзя делать похожим на Mochi из проекта Coucou (белый мягкий квадратик-моти с двумя чёрными глазами-пилюлями). Свой оригинальный персонаж.

  • Настроение: кринжовый, слегка жуткий, но обаятельный. Уровень «милый монстр / гадкий бро», не хоррор, от которого неприятно работать.


3. Система координат

Холст квадратный, сторона W. Все размеры персонажа считаются от R = 0.3 · W.

Элемент Значение
Центр тела центр холста, чуть ниже: cy = H/2 + 0.06R
Полуширина тела rx 1.14 R
Полувысота тела ry 0.88 R
Текущая форма тела суперэллипс (скруглённый «squircle»), показатель ≈ 2.7
Глаза на «сфере» на ±0.37 рад (≈21°) от центра по горизонтали, по вертикали чуть ниже центра (eyeP = −0.12 рад)
Размер глаза ширина 0.25R, высота 0.27R
Руки эллипсы 0.60·ry × 0.52·ry, прячутся за телом снизу по бокам

Форму тела можно менять (не обязательно squircle), но габариты держи примерно в 2.3R × 1.8R: под них свёрстан весь интерфейс.

Для SVG используй viewBox="-1.5 -1.5 3 3" с единицей = R и центром тела в (0, 0). Так размеры переносятся в код один в один.


4. Анимационные параметры движка

Каждый кадр движок хранит эти числа и рисует персонажа по ним. Все раскадровки описывай через них. Можешь предложить новые параметры (например, browAngle, mouthOpen, drool), но явно их перечисли и опиши диапазон.

Параметр Диапазон Что делает
yaw −0.65…0.65 рад поворот головы влево-вправо (лицо съезжает по сфере)
pitch −0.5…0.5 рад взгляд вверх-вниз
tilt ±0.2 рад наклон всего тела (поворот вокруг центра)
roll 0…4π «кувырок»: лицо прокручивается по сфере, полный оборот = 2π
sx, sy 0.78…1.28 сжатие/растяжение тела (squash & stretch)
ox, oy ±0.3 (в долях R) смещение тела (тряска, подпрыгивание)
open 0.06…1 открытость глаз (моргание)
es 1…1.25 масштаб глаз (удивление, наведение мыши)
tint 0…0.78 насколько тело окрашено в цвет состояния (снизу вверх)
blush 0…1 румянец
hands 0…1 руки выдвинуты из-за тела
morph 0…1 превращение тела в коробку-почтовый ящик (раздел 11)
slotH 0…0.5 (в долях R) высота «рта-щели» коробки, на пружине
badgeS 0…1 масштаб значка над головой (раздел 9)
physDx, physDy −1…1 инерция для шапок и болтающихся деталей: отстают при движении
dancingLevel 0…1 танец под музыку (раздел 12)
outfitPresence 0…1 появление наряда

Как меняются значения:

  • Твины по ключам: [цель, длительность мс, кривая], ключи идут друг за другом. Кривые: out (кубическое замедление), inOut, back (с перелётом и откатом, c1 = 1.7), lin.
  • Плавное следование к цели каждый кадр — для взгляда, наклона и дыхания.
  • Пружины: для рта-щели (период 0.25 с, затухание 0.6, лёгкий «клац») и для инерции аксессуаров (жёсткость 60, затухание 9).

5. Состояния (BotState)

Состояние держится долго, пока агент в нём находится. У каждого есть цвет подкраски тела, форма глаз, значок, постоянное поведение и звук при входе.

Состояние Когда Цвет Подкраска Глаза Значок Постоянное поведение При входе
idle ничего не происходит #E6E9EE 0 pill — следит глазами за курсором моргание
working агент работает #3B9EFF 0.72 pill три точки (синие) следит за курсором моргание, звук work
thinking модель думает #8B5CF6 0.72 pill три точки смотрит вверх-вправо (задумчиво) звук think
searching поиск #6365F2 0.72 pill три точки сканирует: голова ходит влево-вправо yaw = sin(2.6t)·0.6 звук search
approval ждёт разрешения #F5A524 0.78 wide «!» подпрыгивает `oy = − sin(5.2t)
question агент задал вопрос #22D3EE 0.75 pill «?» голова наклонена tilt = 0.17 моргание, звук question
error ошибка #F4505E 0.78 flat точка — тряска ox: 0.08 (50 мс) → −0.08 (70) → 0.05 (70) → 0 (90), звук error
finished готово #34D499 0.35 happy точка — кувырок на 1 оборот за 950 мс + 5 искр через 0.5 с, звук finish
ratelimit упёрся в лимит #FB923C 0.72 tired точка потеет: капли пота капля пота, звук rate
sleeping давно без дела #94A2B8 0.32 closed — дышит (sy ±0.035, sx в противофазе, частота 1.8), смотрит чуть вниз, летят «Z» звук sleep
dizzy его 3 раза шлёпнули #F472B6 0.70 spiral — голова мотается yaw = sin(9t)·0.25 2 кувырка за 1300 мс, звук dizzy

Подкраска: поверх основного градиента тела снизу вверх идёт градиент цвета состояния (непрозрачность 0.72·tint внизу → 0 вверху). Цвет переключается плавно, примерно за полсекунды.

Задача:

  • для каждого состояния нарисуй позу: бровь, рот, глаза и особые детали (например, при error пар из ушей, при ratelimit высунутый язык);
  • скажи, как подкраска ложится на твою палитру;
  • если хочешь заменить подкраску другим приёмом (свечение, цвет брови и т. п.), предложи.

6. Формы глаз (EyeShape)

Глаз рисуется в своей локальной системе: центр (0, 0), ширина w, высота h, сплющивание по сфере применяет движок. Нужен дизайн всех 13 форм:

Форма Где используется Сейчас выглядит как
pill норма вертикальная пилюля; при моргании сплющивается до max(h·open, 0.3w)
wide approval pill ×1.16 по ширине, ×1.12 по высоте
dot эмоция «удивлён» маленький круг 0.9w
line «раздражён» (после шлепка) короткая наклонная полоска, наклон ±0.2 рад к центру
flat error горизонтальная полоска
happy finished, «счастлив», танец дуга-«улыбка» ∩
closed sleeping дуга ∪, закрытые глаза
spiral dizzy вращающаяся спираль (2.2 витка, крутится с частотой 9 рад/с, левый и правый в разные стороны)
heart «любовь» красное сердце #FF4D6D
star «гордость» вращающаяся жёлтая звезда #F7B32B
tired ratelimit, «зевок» полуприкрытый глаз с веком
wink «подмигивание» левый открыт (pill), правый — дуга happy
cup коробка, когда файл над ней «чашка»: плоский верх, скруглённый низ

У нормального глаза обязательно должен быть зрачок или явное направление взгляда: он смотрит на курсор мыши.


7. Бровь (новый ключевой элемент)

Раз персонаж «бровь», бровь должна быть главным выразительным органом, сильнее глаз. Нужно:

  • дизайн брови: моно-бровь или две, волосатая или гладкая, толщина, цвет;
  • позы брови для каждого из 11 состояний и 7 эмоций:
    • угол центра (вниз = злость, вверх = тревога);
    • подъём краёв;
    • асимметрия (одна бровь вверх — вопрос);
  • анимации брови:
    • «поиграть бровями» (быстрый двойной подъём, ~300 мс) — для приветствия и наведения мыши;
    • подёргивание в ожидании (approval);
    • бровь «уползает» в сторону при головокружении;
    • бровь «падает» при засыпании;
  • новый параметр browRaise (−1…1), browAngle (−1…1), browWiggle или свои — опиши.

8. Постоянные (фоновые) поведения

Работают всегда, поверх состояний:

  1. Взгляд за курсором: yaw → lookX·0.62, pitch → lookY·0.5, где lookX/Y — нормализованное направление на курсор (−1…1). Плавно, с коэффициентом 1 − 0.0025^dt.
  2. Моргание: каждые 2.2–5.4 с случайно. Моргание = open: 0.06 за 70 мс (inOut) → 1 за 130 мс (out). В 22 % случаев двойное (второе через 230 мс). Не моргает во сне и при головокружении.
  3. Дыхание (только sleeping у основного): sy = 1 + sin(1.8t)·0.035, sx = 1 − sin(1.8t)·0.02.
  4. Пульс мини-ботов: sy = 1 + sin(2.2t)·0.04, sx = 1 − sin(2.2t)·0.02, у каждого своя фаза.
  5. Блуждающий взгляд мини-ботов: мышь игнорируют, каждые 0.5–2 с смотрят в случайную точку.
  6. Фоновые частицы: раз в 1.3 с — «Z» во сне; капля пота (50 %) при ratelimit.
  7. Инерция аксессуаров (physDx/Dy): шапки и помпоны отстают при повороте головы, прыжке и кувырке.

Задача: предложи 2–4 своих фоновых «тика», которые делают персонажа живым и кринжовым. Например:

  • в простое иногда ковыряет в носу или чешет бровь;
  • слюна медленно капает;
  • раз в минуту оглядывается.

Для каждого укажи частоту, длительность и параметры.


9. Значок над головой (badge)

Маленький кружок слева сверху от тела (≈ на −0.72R по X). Типы:

  • dots — три точки, работа/мышление;
  • bang — «!», ждёт тебя;
  • question — «?»;
  • dot — просто точка-индикатор.

Смена значка: старый уменьшается до 0 за 90 мс, новый вырастает до 1 за 280 мс (back).

Задача: дизайн значков в стиле персонажа. Можно предложить заменить значок на действие самого персонажа, например бровь изгибается в «?».


10. Одноразовые анимации и эмоции

Тайминги ниже — текущие. Их можно менять, но в том же формате.

10.1 Squash (шлепок по телу, приземление)

  • sy: 0.78 (70 мс, out) → 1.1 (130, out) → 1 (170, inOut);
  • sx: 1.16 (70) → 0.95 (130) → 1 (170);
  • плюс толчок пружины аксессуаров вниз.

10.2 Шлепок пользователем (slap)

  • Клик по персонажу → squash + толчок вбок + глаза line на 800 мс + звук slap, затем annoyed.
  • 3 шлепка за 1.7 с → состояние dizzy (2 кувырка, спирали в глазах).
  • Задача: реакция на 1-й, 2-й и 3-й шлепок по нарастающей (бровь, рот, слюна летит?).

10.3 Кувырок (roll)

  • Лицо прокручивается по «сфере» на 2π · turns: finished — 1 оборот за 950 мс, dizzy — 2 оборота за 1300 мс, кривая inOut. В конце — squash.
  • Задача: как ведут себя бровь, рот и детали при кувырке. Сейчас лицо просто «уезжает за горизонт» шара и выезжает с другой стороны.

10.4 Эмоции (BotEmote)

Временные, по умолчанию 1.8 с. Глаза меняются на форму из таблицы, плюс движение:

Эмоция Глаза Движение Частицы Звук
love heart румянец 1 (300 мс) → держит → 0 (300 мс); прыжок oy −0.1 (160) → 0 (300, back) 4 сердца love
surprised dot прыжок oy −0.3 (140) → 0 (380, back); глаза es 1.25 (120) → 1 (500) — —
proud star squash; наклон −0.14 (220) → держит → 0 (280); румянец 0.7 5 звёзд proud
wink wink наклон 0.12 (160) → держит → 0 (240) — wink
yawn tired → closed через 0.7 с sy 1.12 / sx 0.94 за 500 мс и обратно 2 «Z» yawn
happy happy румянец 0.6 (200) → 0 (600) — —
annoyed line (800 мс) — — annoyed

Задача: раскадровка каждой эмоции с бровью и ртом. Можно добавить 2–3 новые кринжовые эмоции, например:

  • disgust — блевок;
  • smug — самодовольная бровь;
  • cringe — сжимается и отворачивается.

10.5 Частицы

Типы: heart, star, spark, sweat, z.

  • Рождаются над головой (y ≈ −0.7…−0.9 R), летят вверх со скоростью 0.45–0.8 R/с.
  • Небольшой случайный разлёт, живут 1.3–1.8 с, вращаются.
  • В группе каждая следующая стартует на 140 мс позже.
  • z смещены вправо.

Задача: стиль частиц под персонажа. Можно заменить: вместо сердец — сердца с каплей, вместо искр — брызги слюны и т. п.

10.6 Мини-боты: периодические выходки

У мини-ботов (24–30 pt, однотонные) с постоянной эмоцией раз в 2–5 с:

  • happy — подскок oy −0.30 (120) → 0.03 (200) → 0 (160, back) со squash;
  • annoyed — резкое мотание головой yaw: −0.65 → 0.65 → −0.5 → 0.4 → −0.2 → 0 (50/90/80/75/70/140 мс);
  • wink — подмигнул и наклонил голову на 0.55 с;
  • love — 2 сердца + покачивание.

Задача: как выглядит мини-версия (упрощённый силуэт, бровь обязательна).


11. Загрузка файла: тело → почтовый ящик

Пользователь тащит файл на чёлку, и персонаж превращается в коробку с прорезью-ртом, «глотает» файл и жуёт.

  • morph 0 → 1: контур тела плавно перетекает из своей формы в скруглённый прямоугольник 1.0R × 0.94R (полуразмеры), радиус углов 0.42R.
  • Подкраска уходит, глаза опускаются на 0.14·ry·morph и становятся «плоскими» (сплющивание по сфере исчезает).
  • Прорезь-рот (slotH, на пружине): ширина 1.8R·morph, верх у крышки коробки.
    • Позиции: 0 = закрыт, 0.20 = приоткрыт (файл рядом), 0.42 = открыт (файл над прорезью), 0.50 = максимум.
    • Белый ободок у крышки, внутри тёмный градиент, светлая нижняя губа.
  • Глаза: cup, когда файл над коробкой; happy, пока жуёт.
  • Глоток (gulp):
    • рот 0.42 → через 460 мс закрывается и 800 мс жуёт;
    • тело: sy 0.78 (80) → 1.18 (130) → 1 (220, back), sx 1.28 → 0.92 → 1, моргание;
    • звук gulp.
  • Таймлайн загрузки (секунды от входа файла в зону):
    Момент Время, с Что происходит
    следит за файлом до 1.95 коробка ездит по горизонтали за курсором
    DROP 1.95 пользователь отпустил файл
    засасывание 2.03–2.33 файл втягивается в прорезь
    рот закрыт 2.42
    жевание 2.60–2.88
    уменьшение до 3.23 коробка сжимается в точку 20 pt
    полоса загрузки с 3.00 появляется полоса
    прогресс с 3.25 точка-персонаж едет по полосе как бегунок

Задача:

  • как выглядит коробка в стиле персонажа: бровь остаётся над прорезью? прорезь с зубами?
  • раскадровка глотка и жевания;
  • как выглядит 20-pt бегунок.

12. Танец (Apple Music)

Когда играет музыка, персонаж танцует на 112 BPM:

  • подскок 0.20R·|sin(π·beat)|;
  • покачивание по X 0.08R·sin(π·beat);
  • наклон 0.10·sin(π·beat);
  • при приземлении приплющивание (sx +4.5 %, sy −6 %);
  • глаза happy;
  • вход за 0.3 с, выход за 0.5 с;
  • точка вращения — низ тела.

Задача: движения брови и рта в танце (бровь качается в такт?).


13. Приветствие и появление

13.1 Приветствие при запуске (отдельная сцена, остров 640×150 pt, персонаж 58 pt в центре)

Время, с Что происходит
0–0.85 выезжает из чёлки вниз
0.85–1.30 осматривается, моргает
1.30–1.45 «поп» — выпрыгивает, растягиваясь
1.45–2.40 машет правой рукой (вверх-вправо), левая покачивается; руки — эллипсы, которые выдвигаются из-за тела
2.40 довольные глаза (happy/content)
2.45–2.70 прячет руки (вниз-влево)
2.72 появляется значок
2.85–3.45 съезжает вниз-вправо на своё место
3.70 второе моргание
3.85–4.15 подкраска цветом
4.60 конец сцены
4.90 автоуход (остров сворачивается за 0.34 с)

13.2 Короткое «привет» (greet), когда пользователь вернулся

  • 0 с: глаза happy на 2 с, прыжок oy −0.06 (220) → 0 (220, back);
  • 0.25 с: руки выдвигаются (280 мс), лёгкий squash, звук greet;
  • 0.45–1.55 с: машет правой рукой:
    • рука поднимается к уровню глаз за 180 мс;
    • потом осциллирует с частотой 13 рад/с (x ±0.06, y ±0.14 высоты тела, поворот ±0.35);
    • тело покачивается tilt = −0.06 + sin(2π·1.2t)·0.07;
  • 0.55 с и 1.50 с: моргания;
  • 1.55 с: руки прячутся (200 мс);
  • 1.75 с: короткие happy-глаза.
  • Если пользователь кликнул во время приветствия, руки прячутся за 150 мс.

Задача:

  • дизайн рук (сейчас это просто эллипсы цвета тела, торчащие снизу по бокам);
  • раскадровка приветствия с бровью («поиграть бровями» вместо или вместе с маханием?).

13.3 Прятки в чёлке

  • hidden: персонаж 6 pt, почти невидим.
  • compact: при наведении на чёлку выглядывает (24–30 pt).
  • expanded: чёлка раскрывается, персонаж 44–66 pt слева.

Задача: как он «выглядывает» из чёлки. Может, сначала из-под края показывается только бровь?


14. Наряды (гардероб)

Правый клик → гардероб. Наряды:

  • partyHat, beanie, crown, sunglasses, roundGlasses, bow, scarf, witchHat, pumpkin (перекрашивает тело в оранжевый), santaHat, bunnyEars;
  • auto — по сезону: 31.12–2.01 праздничный колпак, 1–26.12 колпак Санты, октябрь ведьмина шляпа, Пасха уши кролика, 21.06–31.08 очки.

Анимация: старый наряд исчезает за 180 мс → новый появляется за 350 мс с перелётом → squash. Шапки и помпоны болтаются по physDx/physDy.

Задача:

  • адаптируй каждый наряд под новую форму головы и бровь (очки поверх брови? шапка на брови?);
  • предложи 3–5 своих кринжовых нарядов (бигуди, золотая цепь «бро», накладные усы, ободок с глазами и т. п.).

15. Формат раскадровок

Для каждой анимации — таблица ключей:

Анимация: approval-вход
Длительность: 450 мс, однократно
Звук: approval (в 0 мс)

| t, мс | параметр      | значение | кривая | комментарий                  |
|-------|---------------|----------|--------|------------------------------|
| 0     | oy            | 0        |        | старт                        |
| 150   | oy            | -0.2     | out    | подпрыгнул                   |
| 450   | oy            | 0        | back   | приземлился с перелётом      |
| 0     | browAngle     | 0        |        |                              |
| 120   | browAngle     | 0.8      | out    | бровь резко вниз — «ну?!»    |
| 0..∞  | mouthOpen     | 0.3+0.1·sin(12t) | — | орёт, пока ждёт        |

Ключевые позы: [картинка 1: t=0] [картинка 2: t=150] [картинка 3: t=450]
  • Новые параметры (бровь, рот, слюна и т. д.) — с диапазоном и описанием «что значит 0, что значит 1».
  • Для постоянных поведений — формула от времени t (как в разделе 8).
  • Позы — картинками.

16. Звуки (для синхронизации)

Звуки уже есть (28 штук), раскадровки к ним привязывай по моменту:

annoyed, approval, approve, attach, blip, close, dizzy, error, finish, greet, greeting, gulp, hover, love, open, peek, pop, proud, question, rate, search, send, slap, sleep, think, tick, wink, work, yawn

Если для новых эмоций нужны новые звуки — опиши их словами: длительность, характер. Например: «отрыжка 0.4 с, низкая».


17. Чек-лист приёмки

  • Узнаваем силуэтом при 24 pt на чёрном.
  • Бровь — главный выразительный элемент, читается при 30 pt.
  • Все 11 состояний различимы с первого взгляда.
  • Все 13 форм глаз нарисованы.
  • Работает в однотонной заливке любого цвета (мини-боты).
  • Лицо корректно «едет по шару» при yaw ±0.65 и pitch ±0.5.
  • Есть вариант-коробка (morph = 1) с прорезью-ртом.
  • Руки, частицы, значки, наряды — в одном стиле.
  • Только векторные примитивы и градиенты, без растра.
  • Не похож на Mochi из Coucou.
  • Иконка 1024 и иконка меню-бара.