Главная / Технологии / Что такое Material Design 3 и эволюция от M2

Что такое Material Design 3 и эволюция от M2

material m3

Material Design 3 (Material You, M3) — это не просто обновление внешнего вида, а смена философии. Если предыдущие версии (M1, M2) задавали жесткие правила и предлагали унифицированный внешний вид, то M3 делает упор на персонализацию и адаптивность.

Ключевые изменения по сравнению с Material Design 2:

  • Динамический цвет (Dynamic Color) — система анализирует обои пользователя и генерирует цветовую палитру из 13 оттенков (от primary до tertiary). Интерфейс становится уникальным для каждого.
  • Новые компоненты — появляются FAB-меню, кнопки с выдвижными меню, календари нового типа.
  • Улучшенная доступность — автоматическая проверка контрастности, большие целевые области для тапов, адаптивные шрифты.
  • Единые спецификации для всех платформ — Material 3 — это одна дизайн-система для веба, Android, iOS, Flutter и Compose.
«Material Design 3 — это самая большая эволюция нашей дизайн-системы. Мы перешли от философии "один размер для всех" к персонализации, сохранив при этом единую основу для разработчиков по всему миру» — Google I/O 2021.

Ключевые концепции Material Design 3

🎨 Динамический цвет (Dynamic Color)

Сердце M3 — алгоритм Material You, который извлекает доминирующие цвета из обоев и генерирует гармоничную палитру. Система создает до 5 тонов (нейтральный, основной, второстепенный, третичный, ошибочный), каждый из которых имеет 13 градаций. Это позволяет интерфейсу быть всегда согласованным и адаптироваться под контекст.

 
Primary
 
Secondary
 
Tertiary
 
Error
 
Primary Container

📐 Поверхности и высоты (Elevation)

В M3 изменен подход к теням и возвышениям. Вместо четкой системы из 24 уровней высоты (как в M2), используется более простая градация с акцентом на цветовые контейнеры. Основной акцент смещен с теней на цветовые отличия между слоями.

📝 Типографика и формы

M3 предлагает семейство шрифтов Roboto и опционально Google Sans для заголовков. Появилась поддержка variable fonts, позволяющих плавно менять начертание и ширину. Формы элементов стали более скругленными — базовый радиус скругления увеличен с 4dp до 12dp для крупных поверхностей.

♿ Доступность (Accessibility)

Material 3 встроил доступность в основу дизайн-системы:

  • Автоматическая проверка контрастности при генерации цветов (соответствие WCAG 2.1).
  • Рекомендованные целевые области для тапов — минимум 48x48 dp.
  • Поддержка увеличенного размера шрифта до 200% без потери читаемости.
  • Встроенные анимации, учитывающие настройки пользователя (reduced motion).

Новые компоненты Material 3

Material Design 3 вводит несколько новых компонентов и существенно обновляет существующие.

➕ Extended FAB (Floating Action Button) Классическая круглая FAB получила расширенную версию с текстом и иконкой. Идеально для ключевых действий, которые нужно пояснить.
📋 Navigation Rail Альтернатива боковому меню для планшетов и десктопов. Панель навигации располагается вертикально сбоку, экономя место.
🏷️ Chips (фильтры, ввод, предложения) Расширенная система чипов: фильтрующие, входные, предложения, ассистивные. Теперь чипы могут быть с иконками, аватарами, меню.
📊 Slider с дискретными значениями Ползунки получили поддержку дискретных значений, подписей и иконок на концах. Появился range slider для выбора диапазона.
📆 Date Picker и Time Picker Полностью обновленные календари с поддержкой диапазонов, мульти-выбора и удобной навигацией между месяцами/годами.
🎯 Bottom App Bar Нижняя панель действий — новая альтернатива верхней панели, удобная для навигации большим пальцем на крупных экранах.

Material 3 для разных платформ

Google предоставляет официальные реализации Material 3 для всех основных платформ.

📱 Android (Jetpack Compose Material 3)

Начиная с Compose 1.2, Google полностью перевел Material на M3. Библиотека androidx.compose.material3 включает все компоненты и автоматическую поддержку Dynamic Color на Android 12+.

// Пример на Jetpack Compose Material 3
@Composable
fun MyApp() {
    MaterialTheme(
        colorScheme = if (darkTheme) darkColorScheme() else lightColorScheme(),
        typography = Typography(),
        shapes = Shapes()
    ) {
        Scaffold(
            topBar = { TopAppBar(title = { Text("Material 3") }) },
            floatingActionButton = { 
                ExtendedFloatingActionButton(
                    text = { Text("Создать") },
                    icon = { Icon(Icons.Default.Add) },
                    onClick = { /* ... */ }
                )
            }
        ) { innerPadding ->
            // Содержимое
        }
    }
}

🌐 Web (Material Web Components)

Для веба Google разработал набор веб-компонентов, реализующих Material 3. Они работают с любым фреймворком (React, Angular, Vue) или без него.


add Создать

📱 iOS (SwiftUI + Material Components)

Для iOS существует библиотека Material Components (MDC-iOS), которая портирует компоненты M3 на Swift. Интегрируется с UIKit и SwiftUI через UIViewControllerRepresentable.

📱 Flutter (Material 3)

Flutter 3.10+ полностью поддерживает Material 3 по умолчанию. Достаточно обновить тему:

// Flutter Material 3
MaterialApp(
  theme: ThemeData(
    useMaterial3: true,
    colorScheme: ColorScheme.fromSeed(
      seedColor: Colors.purple,
    ),
  ),
  home: MyHomePage(),
)

Динамический цвет: как это работает

Алгоритм Dynamic Color (ранее известный как Monet) использует технику CAM16 (Color Appearance Model) для извлечения цветов из изображения и генерации гармоничной палитры.

Процесс выглядит так:

  1. Система анализирует обои пользователя и определяет доминирующие цвета.
  2. На основе основного цвета генерируется палитра из 4 тонов (Primary, Secondary, Tertiary, Neutral) + Error.
  3. Каждый тон имеет 13 градаций от 0 до 100 (самый светлый до самого темного).
  4. Приложения могут использовать эти цвета для темной и светлой темы, обеспечивая контрастность.

Разработчики могут получить доступ к динамической палитре через androidx.compose.material3.ColorScheme (Android) или ThemeData.colorScheme (Flutter). На платформах, не поддерживающих Dynamic Color (старые Android, iOS, веб), используется статическая палитра на основе seed-цвета, заданного разработчиком или выбранного пользователем.

Важно: Dynamic Color доступен только на Android 12+ с поддержкой в лаунчере. На других платформах (iOS, Web) используется схема на основе seed-цвета или кастомная палитра.

Преимущества и ограничения Material Design 3

✅ Преимущества

  • Персонализация — пользователь видит уникальный интерфейс, адаптированный под его обои и предпочтения.
  • Единая система — одни и те же принципы, компоненты и API для веба, Android, iOS, Flutter.
  • Акцент на доступность — встроенная проверка контрастности, крупные целевые области.
  • Современный дизайн — большие скругления, плавная анимация, variable fonts.
  • Гибкость — система не принуждает использовать все компоненты, можно адаптировать под бренд.
  • Поддержка Google — активное развитие, регулярные обновления, огромное сообщество.

❌ Ограничения

  • Dynamic Color только на Android 12+ — на других платформах теряется часть "магии".
  • Усложнение компонентов — по сравнению с M2, некоторые компоненты стали сложнее для кастомизации.
  • Отсутствие полной реализации на iOS — компоненты выглядят как на Android, что может нарушать ожидания пользователей iOS.
  • Кривая обучения — переход с M2 на M3 требует пересмотра цветовых схем и компонентов.
 
     
     
     
     
     
     
     

Гайд по миграции с Material 2 на Material 3

Переход на M3 требует изменений в кодовой базе и дизайн-системе.

Для Android (XML-вёрстка + Material Components)

  • Обновите зависимости до последних версий: com.google.android.material:material:1.10.0+.
  • Смените тему приложения на Theme.Material3.DayNight.
  • Обновите цветовую палитру в colors.xml (добавьте secondary, tertiary, и их контейнеры).
  • Проверьте компоненты: FAB, BottomNavigationView, Button — их внешний вид изменится.

Для Jetpack Compose

  • Замените импорт androidx.compose.material на androidx.compose.material3.
  • Обновите MaterialTheme на версию M3 (цвета, типографика, формы).
  • Некоторые компоненты имеют новые названия: FloatingActionButtonLargeFloatingActionButton.

Для Flutter

  • Установите useMaterial3: true в ThemeData.
  • Обновите цветовую схему через ColorScheme.fromSeed.
  • Проверьте компоненты — большинство автоматически обновятся до M3.

Material Theme Builder: инструмент для дизайнеров

Google предоставляет бесплатный инструмент Material Theme Builder (доступен в вебе и Figma-плагине), который позволяет:

  • Загрузить изображение и сгенерировать динамическую цветовую палитру Material 3.
  • Настроить скругления, типографику, плотность.
  • Предпросмотреть все компоненты в светлой и темной теме.
  • Экспортировать токены в код (Android XML, Compose, Flutter, CSS Variables).

Theme Builder — must-have для дизайнеров и разработчиков, переходящих на Material 3. Он позволяет быстро прототипировать цветовые схемы и синхронизировать их между дизайном и кодом.

Заключение: стоит ли переходить на Material 3

Material Design 3 — это не просто обновление дизайна, а новая философия, где на первое место выходит пользователь и его уникальный опыт. Переход на M3 оправдан, если:

  • Вы разрабатываете новое приложение — M3 должен быть выбором по умолчанию.
  • Ваше приложение активно использует Material Design 2 и вы планируете долгосрочную поддержку — M3 обеспечит совместимость на годы вперед.
  • Вы хотите использовать современные возможности платформы: Dynamic Color, улучшенную доступность, новые компоненты.

Если у вас устаревшее приложение на кастомной дизайн-системе, миграция может быть нетривиальной. Однако Google предоставляет инструменты и документацию, чтобы сделать переход плавным.

Material 3 продолжает развиваться. В 2025-2026 годах вышли обновления компонентов, улучшенная поддержка веба и новые утилиты для анимации. Это живая, эволюционирующая система, которая задает стандарты современного UI/UX-дизайна.

Автор:

Дата публикации:

344095, Россия, Ростов-на-Дону, Санкт-Петербург, ул. Громова, 4
Телефон: 8 (928) 226-56-27

Обсудить проект

Оставьте обращение в форме обратной связи и наш менеджер свяжется с Вами в течении 30 минут в рабочий день или позвоните нам по телефону 7 (863) 226-56-27
Наш сайт использует файлы cookies (куки) только для персонализации сервисов, чтобы оптимизировать работу и функциональность этого сайта. Запретить обработку cookies можно в настройках Вашего браузера. Продолжая пользоваться сайтом, вы даете согласие использование файлов cookies (куки). Пожалуйста, ознакомьтесь с условиями политики принятия сookies