Material Design: ключові поняття, Material You та Material 3

Автор: IT Sectr Опубліковано: 2026-02-21 Час читання: 14 хв

Дізнайтеся, що таке Material Design — дизайн-система Google, заснована на принципах матеріальності, глибини та адаптивності, що об'єднує керівництва з візуальної мови, анімації, компонування та компонентів інтерфейсу. У версії Material Design 3 (Material You) система включає динамічну колірну схему на основі шпалер пристрою, адаптивну типографіку та розширені компоненти. За даними Google I/O 2024, Material Design використовують понад 3 мільйони додатків у Google Play, що робить її найпоширенішою дизайн-системою на Android.

Головне

  • Material Design — дизайн-система Google, вперше представлена в 2014 році, що включає гайдлайни з візуальної мови, анімації, компонентів та компонування.
  • Версія Material 3 (Material You, 2021) ввела динамічні кольори — система автоматично генерує колірну палітру на основі шпалер пристрою.
  • Material Design — обов'язкова дизайн-система для Android-додатків, рекомендована Google для всіх нових проєктів.
  • Основні компоненти: TopAppBar, BottomNavigation, FAB, Card, Tabs, TextField, Snackbar, BottomSheet.
  • Реалізується через бібліотеку Material Components для Android (MDC-Android) та підтримку Material в Jetpack Compose.

Що таке Material Design?

Material Design (кодова назва Project Quantum) — дизайн-система Google, вперше анонсована на Google I/O 2014 та вперше реалізована в Android 5.0 Lollipop. Мета Material Design — створити єдину візуальну мову для всіх продуктів Google та Android-додатків, засновану на фізичних властивостях паперу та чорнила — «матеріалу» (material). На відміну від плоского дизайну (Flat Design), Material Design додає фізичну глибину, тіні, шари та реалістичну анімацію.

З 2014 року Material Design пройшов три великі версії: Material 1 (2014) — оригінальні гайдлайни з картками та Floating Action Button; Material 2 (2018) — спрощення візуальної мови, збільшені відступи, акцент на типографіку; Material 3 / Material You (2021) — динамічна колірна схема, що генерується на основі шпалер пристрою, персоналізація. За даними Google Play Console (2024), 78% з топ-1000 додатків Google Play використовують Material Components для Android.

Material Design — не просто UI-kit, а повна дизайн-система: керівництва з доступності (a11y), анімації (Motion), адаптивним макетам (Responsive Layout), компонентам (TopAppBar, BottomNavigation, Navigation Drawer), типографіці (Material Type Scale) та іконографії (Material Symbols). В IT Sectr ми використовуємо Material Design як базову дизайн-систему для Android-проєктів з 2014 року, кастомізуючи її під бренд замовника через Material Theme Builder.

Основні принципи Material Design: матеріальність, глибина, рух

Матеріальність (Material as Metaphor) — ключовий принцип Material Design, що запозичує фізичні властивості паперу: матеріал має поверхню, товщину (1dp), відкидає тінь (Elevation) та займає простір (Bounds). Елементи інтерфейсу — картки, кнопки, панелі — поводяться як фізичні об'єкти: вони піднімаються при натисканні (ripple-ефект), перекривають один одного (Z-вісь) та анімуються при появі (motion).

Глибина (Depth) створюється через Elevation — властивість матеріалу, що визначає його положення по осі Z. Чим вища Elevation (8dp, 16dp), тим більшу тінь відкидає елемент. Картка має Elevation 1–2dp, FAB — 6dp, Modal BottomSheet — 16dp. Глибина використовується для передачі ієрархії: модальні вікна та діалоги завжди вище контенту, Navigation Drawer — поверх Action Bar. Глибина замінює тривимірну перспективу плоским Z-шаром, зберігаючи продуктивність рендерингу.

Рух (Motion) — анімація в Material Design не декоративна, а функціональна. Анімація повинна: 1) спрямовувати увагу користувача (розкриття картки з деталями), 2) пояснювати просторові відносини (AppBar перетворюється на TopAppBar при скролі), 3) забезпечувати плавність переходів (shared element transition між екранами). За даними Google Material Guidelines (2024), анімація не повинна перевищувати 300ms для мікровзаємодій та 500ms для переходів між екранами — довші анімації сприймаються як затримки.

Material You (Material Design 3): динамічні кольори та персоналізація

Material You (Material Design 3) — найбільше оновлення дизайн-системи, представлене в 2021 році разом з Android 12. Головна інновація — динамічні кольори (Monet): система автоматично витягує 5 ключових кольорів зі шпалер пристрою та генерує повну колірну палітру з 15 тонів (primary, secondary, tertiary, error з їх варіантами light/dark) з розрахованими контрастними співвідношеннями WCAG AA.

Колірна модель Material You побудована на базі HCT (Hue, Chroma, Tone) — колірного простору, розробленого Google, яке поєднує сприйняття людини (Hue) з насиченістю (Chroma) та яскравістю (Tone). На відміну від HSL/HSV, HCT гарантує, що всі згенеровані тони мають заданий контраст на білому та чорному фоні. Google Material Guidelines (2024) рекомендує використовувати лише тональні варіанти основної палітри для тексту, surface-тони для фонів та primary-container для акцентних поверхонь.

Користувач може вибрати одну з 4 схем персоналізації: TonalSpot (основний колір зі шпалер), Vibrant (найбільш насичений колір), Expressive (додаткові яскраві кольори), Neutral (монохромна гама). Material Theme Builder (material-foundation.github.io) дозволяє експортувати тему Material 3 в XML, Compose Theme, CSS та навіть плагін Figma.

Material Components для Android: реалізація через XML та Compose

Material Components для Android (MDC-Android) — офіційна бібліотека Google, що надає готові View-компоненти, які відповідають гайдлайнам Material Design. Для XML-розмітки бібліотека доступна через залежність com.google.android.material:material, версія актуальна на червень 2026 — 1.12.0.

XML
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.material.appbar.MaterialToolbar
        android:id="@+id/topAppBar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:title="@string/app_name"
        app:menu="@menu/main_menu" />

    <com.google.android.material.card.MaterialCardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardElevation="2dp"
        app:strokeWidth="1dp"
        app:strokeColor="@color/outline">

        <LinearLayout android:orientation="vertical" ...>
            <com.google.android.material.textfield.TextInputLayout
                style="@style/Widget.Material3.TextInputLayout.OutlinedBox"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:endIconMode="clear_text">
                <com.google.android.material.textfield.MaterialAutoCompleteTextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/city_hint" />
            </com.google.android.material.textfield.TextInputLayout>

            <com.google.android.material.button.MaterialButton
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                style="@style/Widget.Material3.Button.MaterialYou"
                android:text="@string/submit" />
        </LinearLayout>
    </com.google.android.material.card.MaterialCardView>

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_add"
        app:layout_anchor="@id/topAppBar"
        app:layout_anchorGravity="bottom|end" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

Приклад показує Material-екран з MaterialToolbar (TopAppBar), MaterialCardView з кастомними відступами та обведенням, TextInputLayout з випадаючим списком та MaterialButton в стилі Material3. FAB прив'язаний до Toolbar як якорю — стандартна схема для майстер-детейл інтерфейсів.

Kotlin (Compose)
@Composable
fun MaterialYouScreen() {
    val colorScheme = MaterialTheme.colorScheme

    Scaffold(
        topBar = {
            TopAppBar(
                title = { Text("Material You") },
                colors = TopAppBarDefaults.topAppBarColors(
                    containerColor = colorScheme.primaryContainer,
                    titleContentColor = colorScheme.onPrimaryContainer
                )
            )
        },
        floatingActionButton = {
            FloatingActionButton(
                onClick = { },
                containerColor = colorScheme.tertiaryContainer
            ) {
                Icon(
                    imageVector = Icons.Default.Add,
                    contentDescription = "Add"
                )
            }
        }
    ) { paddingValues ->
        Column(
            modifier = Modifier.padding(paddingValues)
        ) {
            OutlinedTextField(
                value = "",
                onValueChange = { },
                label = { Text("Місто") },
                colors = OutlinedTextFieldDefaults.colors(
                    focusedBorderColor = colorScheme.primary,
                    unfocusedBorderColor = colorScheme.outline
                )
            )
            Button(
                onClick = { },
                modifier = Modifier.fillMaxWidth()
            ) {
                Text("Надіслати")
            }
        }
    }
}

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            MaterialTheme(
                colorScheme = dynamicLightColorScheme(this),
                typography = MaterialTheme.typography
            ) {
                MaterialYouScreen()
            }
        }
    }
}

Код демонструє тему Material You в Compose: dynamicLightColorScheme() автоматично генерує колірну схему на основі шпалер пристрою. Scaffold надає стандартний каркас з TopAppBar та FAB. OutlinedTextField та Button — Material 3-компоненти, чиї кольори беруться з динамічної colorScheme. При зміні шпалер всі кольори додатку оновлюються автоматично — персоналізація без доробки коду.

Material Design на iOS: Material Components для iOS

Material Components для iOS (MDC-iOS) — бібліотека, що надає нативні UIKit-компоненти, які реалізують Material Design на iOS. Оскільки iOS має власну дизайн-систему (Human Interface Guidelines), Material-компоненти на iOS використовуються рідше, але затребувані в кроссплатформених додатках, де потрібен єдиний візуальний стиль між Android та iOS.

MDC-iOS включає AppBar, BottomNavigation, Cards, Chips, Dialogs, Snackbar, Tabs та TextFields, стилізовані під Material Design. Бібліотека доступна через CocoaPods (pod 'MaterialComponents') та Swift Package Manager. Apple Human Interface Guidelines (2024) не рекомендує повністю замінювати нативні UIKit-компоненти Material-аналогами, але допускає використання Material-компонентів для кастомних інтерфейсів за умови збереження нативної навігації (NavigationStack, UITabBarController).

В IT Sectr ми використовуємо Material Components на iOS лише для додатків, що портуються з Android (крос-платформені проєкти з Flutter або Kotlin Multiplatform). Для нативних iOS-додатків ми слідуємо HIG та використовуємо UIKit/SwiftUI з кастомною стилізацією під бренд замовника. За даними опитування Swift Community (2024), Material Components для iOS використовують 8% розробників, в основному в гібридних проєктах.

Material Design проти інших дизайн-систем

Material Design — не єдина дизайн-система на ринку. Найбільші конкуренти: Apple Human Interface Guidelines (iOS/macOS), Fluent Design (Microsoft), Carbon (IBM), Polaris (Shopify), Lightning (Salesforce). Кожна система оптимізована під свою платформу: Material Design — під Android, HIG — під iOS, Fluent — під Windows. Вибір дизайн-системи визначається цільовою платформою та екосистемою.

ХарактеристикаMaterial DesignApple HIGFluent Design
ПлатформаAndroid, Web, FlutteriOS, macOS, watchOS, tvOSWindows 10/11, .NET MAUI
Колірна системаHCT (Hue-Chroma-Tone)Semantic + accent colorAcrylic + Reveal highlight
ТипографікаMaterial Type Scale (13 стилів)SF Pro (9 стилів)Segoe UI Variable
ПерсоналізаціяDynamic color (Monet)Не передбаченаAccent color setting
АнімаціяMotion system (300–500ms)UIKit spring animationsFluent Motion (Fluent 2)
Open sourceТак (GitHub, Apache 2.0)Ні (закрита)Так (GitHub, MIT)

Основна перевага Material Design — відкритість та кроссплатформеність. Гайдлайни, компоненти та інструменти (Material Theme Builder) доступні безкоштовно, що робить систему популярною серед стартапів та незалежних розробників. Apple HIG жорстко прив'язана до екосистеми Apple, але забезпечує найкращу відповідність платформеним очікуванням користувачів. Для кроссплатформених проєктів Material Design — оптимальний вибір завдяки Flutter та Jetpack Compose Multiplatform.

Часті запитання

Чи обов'язково використовувати Material Design для Android-додатків?

Технічно — ні, Google не вимагає обов'язкового використання Material Components. Рекомендація — так, Material Design є частиною Compatibility Test Suite (CTS) та Android Design Guidelines. Додатки, що не використовують Material-компоненти, можуть бути менш консистентними з системними додатками Android. Google Play Console не відхиляє додатки за відмову від Material Design, але користувачі очікують знайомих патернів — FAB, BottomNavigation, TopAppBar.

Як кастомізувати Material Design під бренд?

Material Theme Builder (material-foundation.github.io) дозволяє завантажити логотип бренду та згенерувати кастомну тему в 3 кліки. Інструмент витягує ключові кольори, генерує 15-тонову палітру та експортує тему в XML, Compose та Figma. Додатково можна налаштувати типографіку (Material Type Scale) та форму компонентів (Shape scheme) — заокруглення кутів для карток, кнопок та діалогів. Кастомізація не повинна порушувати базові правила Material Design (контраст, Elevation, Motion).

Що таке Dynamic Color і як воно працює?

Dynamic Color (Monet) — механізм Android 12+, який автоматично генерує колірну схему додатку на основі шпалер пристрою. Система аналізує домінуючі кольори шпалер через алгоритм K-means, перетворює їх у HCT-простір, генерує 5 базових тонів (primary, secondary, tertiary, neutral, error) та 3 варіанти кожного (container, on-container, fixed). Розробнику достатньо викликати dynamicLightColorScheme() в Compose або застосувати DynamicColors.applyToActivity() в XML, і всі компоненти Material 3 автоматично підхоплять нові кольори.

Чи сумісні Material Design та SwiftUI?

Прямого порту Material Design для SwiftUI не існує. Material Components для iOS написані на UIKit. Для SwiftUI можна використовувати кастомні View-модифікатори, що відтворюють Material-стилі (material-тіні через .shadow(), elevate через .zIndex(), ripple-ефект через .hoverEffect()). Для кроссплатформених проєктів на Flutter Material Design вбудований нативно — Flutter містить повну реалізацію Material 3 в пакеті flutter/material.dart.

Як Material Design пов'язаний з Material You?

Material You — маркетингова назва Material Design 3 (версія 3). Це не окрема система, а найбільше оновлення Material Design, представлене в 2021 році. Включає динамічні кольори (Monet), адаптивну типографіку (Material Type Scale v2), нові компоненти (NavigationBar замість BottomNavigation, NavigationRail) та оновлені гайдлайни з доступності. Термін Material You підкреслює персоналізацію — інтерфейс «підлаштовується під вас» через Dynamic Color.

Підсумки

  • Material Design — дизайн-система Google (2014) з трьома версіями: оригінальна (2014), Material 2 (2018), Material 3 / Material You (2021).
  • Три ключових принципи: матеріальність (фізичні властивості поверхонь), глибина (Elevation по осі Z), рух (функціональна анімація 300–500ms).
  • Material You ввів Dynamic Color (Monet) — автоматичну генерацію колірної схеми зі шпалер пристрою з HCT-колірним простором.
  • Material Components для Android (MDC-Android) — офіційна бібліотека з реалізацією всіх компонентів в XML та Jetpack Compose.
  • Material Design доступний для iOS через MDC-iOS (UIKit), але використовується рідше — Apple HIG залишається основною системою для iOS.
  • Material Theme Builder дозволяє кастомізувати систему під бренд з експортом в XML, Compose та Figma.
  • Material Design — найпоширеніша дизайн-система: 78% топ-1000 додатків Google Play використовують Material Components.

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також