swiftui-liquid-glass
Этот навык предназначен для проектирования и ревью интерфейсов SwiftUI, которые используют Liquid Glass в iOS 26 и более новых версиях. Его задача — помочь выбрать уместные стеклянные поверхности, сохранить единообразие композиции и проверить реализацию по понятным техническим признакам. Навык полезен в трёх ситуациях: когда создаётся новый экран, когда существующий экран переводится на Liquid Glass и когда готовую реализацию нужно проверить. Во всех трёх случаях он направляет разработчика к штатным API SwiftUI, а не к самодельным размытиям и декоративным имитациям эффекта. При создании нового интерфейса навык предлагает сначала определить элементы, которым действительно нужна стеклянная обработка: поверхности, карточки, чипы или кнопки. Затем выбираются форма, визуальная заметность и группировка элементов. Если рядом находится несколько стеклянных элементов, рекомендуется рассмотреть GlassEffectContainer и настроить расстояние между ними. Это помогает описать группу как единое визуальное окружение, вместо того чтобы независимо настраивать десятки похожих поверхностей. Для действий используются штатные стили кнопок .glass и .glassProminent, а интерактивный вариант эффекта применяется только к элементам, которые действительно реагируют на касание или указатель. Отдельное внимание уделяется порядку модификаторов. Сначала следует задать layout и визуальные параметры представления, а затем применить glassEffect. Для связанных элементов важно сохранять согласованные формы, отступы и tint, чтобы стекло не выглядело случайным набором разных материалов. Если иерархия представлений меняется с анимацией и элементы должны визуально перетекать друг в друга, навык указывает на связку glassEffectID и @Namespace. Такой переход добавляется только там, где есть реальное изменение иерархии, а не как обязательная часть каждого экрана. Для ревью навык даёт проверяемый список. Нужно убедиться, что код обрабатывает доступность iOS 26 через #available(iOS 26, *) и имеет разумный fallback для более ранних систем. Нужно проверить, что несколько стеклянных представлений при необходимости находятся в GlassEffectContainer, glassEffect стоит после layout и appearance-модификаторов, а interactive() не добавлен на статичный объект. Также проверяются glassEffectID с @Namespace для morphing-сценариев и согласованность форм, тонирования и spacing. Эти пункты относятся к конкретному коду и поэтому не заменяют запуск приложения, визуальную проверку или тестирование. Практический сценарий начинается с небольшого набора целевых элементов. Для каждого элемента описывается назначение и требуемая степень выразительности, после чего стеклянный эффект добавляется штатным API. Для интерактивной поверхности можно использовать regular, interactive и явную форму с cornerRadius; для кнопки — glass или glassProminent. Для нескольких иконок или карточек их можно поместить в контейнер с заданным spacing. Если приложение поддерживает старые версии iOS, стеклянная ветка ограничивается проверкой доступности, а запасная ветка использует подходящий материал и сохраняет структуру и читаемость интерфейса. У навыка есть важные ограничения. Он не обещает, что визуальный результат будет одинаковым на всех устройствах, не отменяет проверку на поддерживаемых версиях iOS и не заменяет accessibility-аудит. Выбор места для Liquid Glass остаётся частью дизайна: наличие API само по себе не означает, что стекло нужно применять к каждому элементу. Производительность тоже проверяется на реальном интерфейсе, особенно если экран содержит много эффектов или сложную иерархию. Apple Developer documentation остаётся предпочтительным справочным материалом для актуальных деталей API; данный навык помогает организовать решение и ревью, но не фиксирует за разработчика значения, которые зависят от конкретного экрана.
Для чего подходит
- Проектирование Liquid Glass UI
- Ревью SwiftUI modifier-ов
- Проверка iOS 26+ fallback
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/openai/plugins/tree/main/plugins/build-ios-apps/skills/swiftui-liquid-glass