Платформа: локальная коллекция режимов показа
Источник:
ds-docs/component-contracts/foundations/platform.md
Что это. Локальная коллекция переменных Astra DS, в которой переключается платформа
показа: Apple, Android, Bottom Nav Bar, Web, Internet Bank View, WebView.
Ею управляется поведение системных элементов и вставок injected-*: под каждый режим
подставляются размер экрана и отступы под системные полосы.
Что из этого следует контракту. Это вариации показа в макете, а не устройство
компонента. Их не конспектируют: числа устройства в контракт не переносятся ни как высота,
ни как жёсткие пределы minHeight/maxHeight.
Как записывается
Узел, чей размер задаёт платформа, помечается фундаментом, а размер пишется словом:
- path: "Basic Dialog"
kind: frame
foundation: platform
size: {width: platform, height: platform}
Пределы у такого узла не пишутся вовсе: minHeight: 812 и maxHeight: 812 — это высота
одного устройства, прибитая гвоздями. На другом режиме коллекции она другая.
Сухая сверка поля, названные словом platform, не сравнивает, а пределы у помеченного узла
пропускает: число из макета не расхождение, а состояние тумблера. Валидатор предупреждает,
если высота экрана записана числом без метки.
Что считается размером экрана
| 375 | 812 | iPhone X и потомки — режим Apple |
| 360 | 800 | типовой Android |
| 586 | 812 | модальное окно в вебе — режим Web |
| 390 | 844, 412 × 915 | новые модели |
| 375 | 667 | iPhone SE |
Эти пары и одиночная высота из ряда 812 / 800 / 844 / 667 / 915 считаются экраном.
Ширина без высоты экраном не считается: 375 у компонента, тянущегося по экрану, —
это ширина родителя, и она пишется как fill, если так стоит в макете.
Где это встречается
Вариации Format = Prototype и Format = Layout, слои-подложки Layer, а также всё, что
показывают на макете экраном целиком: диалоги, шторки, календари на весь экран, сторис,
сканер, экран загрузки. Всего в базе таких узлов сорок с лишним в двадцати одном
контракте.
Рядом стоят и другие следы платформы, описанные отдельно:
- системные элементы экрана — строка статуса, домашний индикатор, кнопки Android: их рисует ОС, мы их не документируем;
- вставки
injected-safe-area-inset-topи-bottom— не слои, а отступы, которые в React присылает host-приложение, а во Flutter проставляет платформа.
Чего мы не знаем
Коллекция локальная и в выгрузке переменных у нас устаревшая: в снимке от 03.09.2026
пять переменных (platform, width, height, model, bottom-nav-bar) и три режима
(web, android, apple). Режимы Bottom Nav Bar, Internet Bank View и WebView
добавлены позже и в справочник не попали: REST-доступ к переменным закрыт правами токена,
нужен свежий прогон плагина. Пока это не сделано, контракт опирается не на имена переменных,
а на признак «это размер экрана».
См. также: системные элементы, версии компонента, фундаменты.