По душе · Android × Figma · 12.09.2026 · участие в событии

Девятый десяток: страница «Взаимодействие участников» собрана целиком

Семьдесят девять кадров одной страницы макета: стандартные кейсы регистрации, переход в чат и просмотр вложений, регистрация с вопросами и одобрением, приглашение в организаторы и приглашение участвовать в событии. Целая подсекция — двадцать «стандартных кейсов регистрации» — собралась из уже готовых «Афиши», «Страницы события» и «Пожаловаться», а двенадцать кадров и вовсе оказались точными копиями уже снятых, узел в узел. Один экран написан с нуля: лист «Вопросы при регистрации» поверх страницы события.

53 / 79кадров с зелёной геометрией при пороге 0,3 %
0,000 %лучшая геометрия десятка
12кадров — точные копии уже снятых, узел в узел
18расхождений найдено, семнадцать закрыты
78кадров мерились с завышенной долей — поправка измерителя

Смотровая

Кадр рядом с рендером

Тяните шторку, чтобы совместить макет и приложение. «Карта» показывает, где остаётся расхождение: синим закрыт системный статус‑бар, клавиатура и системные листы iOS — их рисует система, в сравнении они не участвуют (спека 6.4).

Рендер кадра из Figma Снимок экрана приложения

Числа

Семьдесят девять кадров: четыре числа на каждый

Полное — доля пикселей, где цвет разошёлся заметно для глаза. Без текста — то же без текстовых блоков. ±1 px — с допуском на полпикселя. Геометрия — два последних вместе, то есть чистая форма, положение и материал; по ней и выносится вердикт. Подсвечены строки выше порога — у каждой измеренная причина в разделе «Границы».

ЭкранКадрСостояние Полное %Без текста % ±1 px %Геометрия % Шкала до порога 0,3 %

Разбор

Что оказалось не так

Каждая строка — расхождение из реестра docs/figma/fig/ledger.md (H1‑1…H1‑10). Первое — не про этот десяток, а про сам измеритель: он врал одинаково на 78 кадрах файла.

Измеритель считал непрозрачный кадр прозрачным

Экспорт Figma отдаёт непрозрачные кадры с альфой 254 по всей площади. Маска «прозрачный рендер», заведённая ради одного кадра без заливки, строилась по условию «меньше 255» и выбрасывала из знаменателя четверть кадра — доля расхождения росла на ту же четверть. Поймано на паре «кадр и его точная копия»: один и тот же экран давал 0,165 на своей странице и 0,198 на этой. Порог поднят до 128; копии сошлись до четвёртого знака, а кадр с настоящей прозрачностью остался 0,051.

78 кадровреестр H1-1
мерились с завышенной долей

Растр подложки растягивается на высоту кадра

Страница созданного события встречается и в кадре 1234, и в кадре 844. Окно растра подложки одно и то же, но растягивается на разную высоту — значит и вырезка нужна своя. С растром от высокого кадра геометрия шла 1,847, с верным — 0,203.

1,847 → 0,203реестр H1-3
четыре кадра

Непрозрачность шапки у одного кадра другая

У страницы события заливка шапки и нижней панели идёт с непрозрачностью 0,2 — а на одном кадре 0,4. Там же два организатора лежат в разных контейнерах, и зазор между строками 12, а не 8. Обе правки — из ноды, обе уходят дизайнеру как пара «нода → нода».

5,929 → 0,257реестр H1-5
кадр 792:150991

Плашка приглашения поднимает всю страницу

В шапке события появляется плашка «Андрей К. приглашает вас» 358×74 — и всё, что ниже, уезжает на 90 dp. Подложка под снекбаром считалась по старому месту карточки карты, и снекбар выходил светло‑коричневым вместо тёмного. Заодно: дети плашки прижаты к верху, а не по центру — с центрированием аватар уезжал на 9 dp вниз.

10,833 → 6,275реестр H1-6, H1-7
кадр 794:159262

Шесть уведомлений с чужой обложкой

Первая карточка списка уведомлений на шести кадрах своя: непрочитанная (точка 12 и текст уже на 24 dp), без значка одобрения у третьей строки и с кнопкой «Прочитать всё» внизу. Обложка у неё тоже своя — с обложкой мастера геометрия шла 1,954.

1,954 → 0,068реестр H1-9
шесть кадров

Мелочи, которые видно только по ноде

Шапка страницы события бывает с одной кнопкой вместо сдвоенной (рамка «назад» 48 и заголовок 238); на кнопке уведомлений «Страницы Карта» показан значок непрочитанного, скрытый у мастера; «Управление» у приглашённого организатора теряет «Детали события» и нижнюю кнопку, а «Организаторы» — «•••» и «Добавить организатора».

H1-4, H1-8четыре кадра
все закрыты

Экран, закрывающий кадр целиком, метрика почти не проверяет

Лист регистрации занимает весь кадр. В знаменателе «без текста» после этого остаются одни поля по краям — и за одним числом «остаток фонового размытия» пряталось шесть расхождений вёрстки. Шапка листа 390×125 рисовалась без своей заливки (вертикальный градиент #232B48), и заголовок «Мои данные» светился под ней насквозь. Полосок-граберов в ноде две — в шапке на 60 и в самом листе на 70; видна всегда первая, вторая скрыта родителем, а рисовали мы вторую. Строка согласия оказалась последним пунктом группы вопросов с зазором 16, а не отдельным блоком с зазором 24 — восемь пикселей вниз. У кружка выбора штрих 2 внутрь белым 24 %, а у выбранного — белая заливка и штрих 5 брендом, то есть кольцо, а не точка. На кадре с множественным выбором это вообще не кружки, а квадраты со скруглением 6 и галочкой. И панель «Зарегистрироваться» у листа идёт с пустой заливкой — градиента под кнопкой нет, в отличие от панели самой страницы.

14,99 → 1,68реестр H1-11…H1-16
пятнадцать кадров

Снимок высокого кадра лежал ужатым

Кадр «Страницы События» целиком — 390×1730, и снимать его нужно с явной высотой. В папке снимков лежал кадр 844, и пакетный прогон намерил по нему 28,3 % на ровном месте. Сплошная проверка «размер снимка против размера рендера» по всем 570 кадрам нашла ровно один такой; сверка размеров добавлена в ритуал перед выводом чисел.

28,3 → 0,458реестр H1-18
один кадр

Границы

Что осталось выше порога и почему

Двадцать шесть кадров, и худший из них теперь 12,5 % вместо 15,0 %. Одиннадцать — копии уже закрытых кадров со своим известным остатком; пятнадцать — лист регистрации, где остаток измерен и назван.

КадрыГеометрия %Класс остатка
тринадцать кадров «Вопросов при регистрации»0,313…1,675ядро фонового размытия (BACKGROUND_BLUR 200 над страницей события). Модель снята с рендера: три прохода бокса ширины 130…160 dp с продлением кромки и чёрный 33 % сходятся с рендером по боковым полям до 0,18 % пикселей выше порога цвета — то есть σ ≈ R/2,9, а не R/2. В Compose это ядро точно не повторяется: один проход с продлением кромки даёт на полях 27,8 %, связка «кламп + два безграничных прохода» — 5,5 %. Остаток открыт, реестр H1-10
792:145273, 792:9060512,49 и 11,52тот же остаток, но у кадров другой высоты (вырезка 390×261 и кадр 1059) поля составляют почти весь знаменатель
794:1592623,509преломление стекла снекбара над неоднородной подложкой — тот же класс, что у уже закрытого 293:28243 (0,918): в рендере интерьер снекбара идёт 43…97 по строке при ровной подложке 121, у нас ровные 89
792:81769, 792:81896обе 0,808копии кадра с тремя рядами вложений со своим остатком
792:81941, 792:81955, 792:819740,370…0,423копии кадров просмотрщика фото — остаток окна растра миниатюр
793:152405, 794:156745обе 0,530копии мастера «Страницы Карта» с её растром карты (B1-10)
792:67208, 792:67293, 792:67310, 792:1479190,357…0,458кадры «Страницы События» и её копия со своими известными остатками