Платформа: локальная коллекция режимов показа

Источник: 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, не сравнивает, а пределы у помеченного узла пропускает: число из макета не расхождение, а состояние тумблера. Валидатор предупреждает, если высота экрана записана числом без метки.

Что считается размером экрана

375812iPhone X и потомки — режим Apple
360800типовой Android
586812модальное окно в вебе — режим Web
390844, 412 × 915новые модели
375667iPhone 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-доступ к переменным закрыт правами токена, нужен свежий прогон плагина. Пока это не сделано, контракт опирается не на имена переменных, а на признак «это размер экрана».

См. также: системные элементы, версии компонента, фундаменты.