0Pricing
Jetpack Compose Academy · Урок

Создание собственной дизайн-системы

Расширьте тему собственными токенами.

«Создание собственной дизайн-системы» — бесплатный урок 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.success

Offer 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 — локальная установка не требуется.

Все уроки этого курса

  1. MaterialTheme и цветовые схемы
  2. Типографика и токены форм
  3. Тёмная тема и динамический цвет
  4. Создание собственной дизайн-системы
← Назад к Jetpack Compose Academy