TGViewer
Андроидѣ | Михаил Белый Андроидѣ | Михаил Белый @foundout · 328 subscribers
Post #386 486
🐗 M3 Expressive

Мой проектик для изучения всего нового переполз на экспрессивный дизайн. Обновил все что можно. Стабилизации версий библиотек ждать не стал. Сейчас экспрессия поддерживается и в мультиплатформе. Пора основательно разобраться, что в гугле понимают под выразительным интерфейсом.

Добавили альтернативный entry-point для управления темой – MaterialExpressiveTheme. А также expressiveLightColorScheme на замену lightColorScheme. Симметричной функции-шортката для темной темы нет – собирай и кастомизируй сам.

Появился новый параметр motionScheme – для анимации компонентов. Устанавливаешь туды MotionScheme.expressive() и получаешь более пружинящие кривые ускорения, более живые и заметные переходы. Меньше надо вручную настраивать tween во всех местах.

Расширили работу с формами. Добавили геометрические фигуры MaterialShapes – набор из 35 предопределенных форм. Каждая описана как полигон и имеет стабильные пропорции: можно масштабировать и вертеть как хочется. В наборе есть как базовая геометрия: овал, треугольник, так и декоративные печеньки и солнышки. Поверх этих фигур появился морфинг: формы можно превращать друг в друга, анимируя сам контур контейнера.

Усилили варианты стандартных текстовых стилей. Называется Emphasized-типографика. К привычным display* и headline* добавились акцентные версии, которые выглядят плотнее за счет увеличенного визуального веса. Такие стили нужны для крупных заголовков, онбордингов, приветственных сообщений и пустых состояний – где важно сразу цеплять взгляд.

Многие компоненты из Material3 получили expressive-версии. Сигнатура существующих методов не меняется, Compose держится за бинарную совместимость. Поэтому рядом добавляется новая перегрузка, использующая expressive-токены. Система токенов описывает цвета, размеры, формы, отступы, типографику и motion-параметры. Компоненты не хардкодят эти значения, поэтому их стиль можно централизованно менять через тему. Большая часть всего expressive API под opt-in аннотацией.

Также в Expressive добавили 30 новых компонентов:

• HorizontalFloatingToolbar – плавающий горизонтальный тулбар с навигацией и ключевыми действиями в Row.
• VerticalFloatingToolbar – плавающий горизонтальный тулбар с навигацией и ключевыми действиями в Column.
• FlexibleBottomAppBar – гибкий нижний бар для малых экранов.
• MediumFlexibleTopAppBar – верхний бар среднего размера. В раскрытом состоянии переносит заголовок и подзаголовок во вторую строку.
• LargeFlexibleTopAppBar – верхний бар большого размера.
• TwoRowsTopAppBar – верхний бар в две строки.
• ExpandedFullScreenContainedSearchBar – строка поиска с полноэкранным режимом.
• ExpandedDockedSearchBarWithGap – закреплённая строка поиска. Результаты показываются во всплывающем окне под строкой поиска, с небольшим зазором.
• LoadingIndicator – индикатор загрузки с морфингом формы.
• ContainedLoadingIndicator – морфинг формы внутри окрашенного контейнера.
• LinearWavyProgressIndicator – линейный индикатор прогресса с волнистой анимацией.
• CircularWavyProgressIndicator – круговой индикатор прогресса с волнистой анимацией.
• FloatingActionButtonMenu – меню для плавающей кнопки действия.
• FloatingActionButtonMenuItem – пункт меню для кнопки выше.
• ToggleFloatingActionButton – плавающая кнопка-переключатель с анимацией размера, скругления и цвета.
• MediumFloatingActionButton – плавающая кнопка действия среднего размера.
• SmallExtendedFloatingActionButton – маленькая расширенная плавающая кнопка с текстовой меткой и увеличенной областью нажатия.
• MediumExtendedFloatingActionButton – средняя расширенная плавающая кнопка с текстовой меткой и увеличенной областью нажатия.
• LargeExtendedFloatingActionButton – большая расширенная плавающая кнопка с текстовой меткой и увеличенной областью нажатия.
• SplitButtonLayout – двойная кнопка с основным и вторичным действием.
• ButtonGroup – горизонтальная группа кнопок.
• ToggleButton – кнопка-переключатель. Меняет состояние и морфит форму в зависимости от значения.
• ElevatedToggleButton – кнопка-переключатель с повышенным акцентом и тенью.
More from @foundout
  1. Sep 28, 2026Post #463
  2. Sep 9, 2026Истории про айфон Первый айфончик у меня появился в 24 года. К этим годам одни успевают пе…
  3. Sep 2, 2026Как правильно жить в Республике Бангладеш Жить в прекрасной стране Бангладеш – что может б…
  4. Sep 1, 2026Новые открытия Помню, как зимой, лежа на диване, ругался на концепт зимней арки. Как на оч…
  5. Aug 13, 2026Турецкий скам Я третий раз в Турции. За 4 года моего отсутствия покупательная способность…
  6. Aug 9, 2026Что делать в Черногории Шароебиться по горам. Всё, чем известна Черногория – сюда 20 лет н…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →