Создание собственной дизайн-системы
Расширьте тему собственными токенами.
«Создание собственной дизайн-системы» — бесплатный урок Jetpack Compose Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Jetpack Compose Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Jetpack Compose Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Beyond the Defaults
Real brands need more than Material's built-ins. A design system bundles your colors, type, shapes, and extra tokens into one reusable theme. 🏗️
Wrap MaterialTheme
You start by writing your own AppTheme Composable that configures MaterialTheme, giving the whole app a single, named entry point.
@Composable
fun AppTheme(content: @Composable () -> Unit) { /* ... */ }Pass Your Tokens In
Inside AppTheme you hand MaterialTheme your custom colorScheme, typography, and shapes, so every screen inherits your brand automatically.
MaterialTheme(
colorScheme = brandColors,
typography = brandType,
shapes = brandShapes
) { content() }Material Misses Some Tokens
Some brand values, like a success green or a custom spacing unit, have no Material role. You add these as your own extra tokens.
Hold Extra Colors
You group extra colors in a small data class, a tidy home for brand values Material does not provide out of the box.
data class BrandColors(
val success: Color,
val warning: Color
)CompositionLocal
To share custom tokens down the tree without passing parameters, you use a CompositionLocal, Compose's built-in ambient value mechanism.
Create the Local
You declare a staticCompositionLocalOf with a default, creating a channel any Composable can read your brand colors from.
val LocalBrand = staticCompositionLocalOf { defaultBrand }Provide the Values
In AppTheme you wrap content in a CompositionLocalProvider, feeding your brand tokens into the tree alongside MaterialTheme.
CompositionLocalProvider(LocalBrand provides brand) {
MaterialTheme(/* ... */) { content() }
}Read Custom Tokens
Anywhere below, a Composable reads LocalBrand.current to grab your custom values, mirroring how MaterialTheme exposes its own.
val success = LocalBrand.current.successOffer a Clean API
Many teams expose an object so calls read like AppTheme.brand.success, a friendly facade over the CompositionLocal underneath.
One Source of Truth
Now colors, type, shapes, and custom tokens all flow from a single theme, so the app stays consistent and effortless to evolve. ✨
Quick Check
You need a brand color Material has no role for, shared app-wide. What do you reach for?
Recap: Your Own Theme
You wrapped MaterialTheme in an AppTheme, added extra tokens via CompositionLocal, and gave your app one branded source of truth. 🎉
Часто задаваемые вопросы
Урок «Создание собственной дизайн-системы» бесплатный?
Да — полный текст урока «Создание собственной дизайн-системы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Jetpack Compose Academy, подпишись на CoddyKit PRO. Курс Jetpack Compose Academy содержит 4 уроков всего.
Чему я научусь в уроке «Создание собственной дизайн-системы»?
Расширьте тему собственными токенами. Ты практикуешь Jetpack Compose Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Jetpack Compose Academy?
Предыдущий опыт не требуется. Jetpack Compose Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Создание собственной дизайн-системы»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Jetpack Compose Academy?
Да. Каждый урок Jetpack Compose Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- MaterialTheme и цветовые схемы
- Типографика и токены форм
- Тёмная тема и динамический цвет
- Создание собственной дизайн-системы