Пятница! Сегодня пробежимся по основам цветовой палитры Material Design. Image
Перед тем, как прыгать сразу в детали, подумаем: зачем нам нужно знать эту палитру? Image
Во-первых, понимание цветовой палитры Material очень упрощает жизнь в некоторых случаях. Откуда взялся этот цвет? Откуда берутся цвета у вьюхи без явно указанных стилей? Это всё из палитры вытекает
Во-вторых, если использовать гайдлайны Material, то задачи на смену цветовой схемы приложений будут щелкаться за пару часов. Поддержка тёмной темы, поддержка dynamic colors из Android 12, смена цвета бренда - всё изи
Ну и в-третьих, это просто напросто база. Будем знать!
А теперь погнали! Material палитра состоит из семи ключевых цветов:
- primary
- secondary
- tertiary
- background
- surface
- error
- outline

Пока, естественно, ниче не понятно, но вы расслабьтесь, сейчас поясню. Image
Primary, secondary, tertiary - первичный, вторичный и третичный цвета соответственно. Это основные акцентные цвета приложения, цвета бренда.
Background, surface - цвета поверхностей, на которых располагается контент. Background цвет - это цвет фона приложения, а surface - цвет поверхностей вьюх. Самый яркий пример - Card View. У Card View стандартный background color - surface.
Вариации surface цвета с разной прозрачностью используются в тёмной теме. Смотрим картинку, сейчас объясню что тут происходит. Image
В светлой теме отчетливо видно elevation (тень карточки, расстояние, на котором карточка находится по оси Z от бэкграунда). В тёмной теме этой тени видно не будет. Поэтому вместо тени используется изменение цветов при изменении elevation. Image
И чем выше контент по оси Z, тем он ближе к источнику света (поверхности экрана смартфона) и тем светлее контент. Так бэкграунд имеет самый темный оттенок. Далее по оси Z идут карточки и контекстное меню. Image
Возможно вы замечали, но в тёмной тебе обычные алерт диалоги в андроид имеют цвет фона светло серый, самый яркий. Потому что диалог выше всех по оси Z. И это тоже surface color 😎
Error - цвет ошибки. Ну вдруг у вас были сомнения. Используется в error text под Text Field или в ошибочных снекбарах, например. Image
Outline - цвет обводки компонентов. Например, используется в Outlined Text Field в качестве обводки текст филда в неактивном состоянии Image
Если вы думали, что мы разобрались с цветами, это еще не так 😈
У цветов в палитре есть вариации! Image
У primary, secondary, tertiary и error цветов есть такая вариация, как container-цвет. Это просто цвет контейнера, в котором может располагаться контент. Например, в material 3 по гайдлайнам поменяли цвет FAB. Раньше background у fab был primary, а теперь primary container! Image
Ок, понятно. Есть container цвета. Ну это же наверно всё?
))))))))))
У КАЖДОГО цвета (кроме outline 🥲), даже у container вариаций, есть его злой клон - on-цвет. Это цвет контента, который будет идеально читаться и смотреться на соответствующем цвете 🤯
Берем предыдущий пример с FAB. Background color - primary container. Text color - on primary container. В теории звучало страшно, на практике всё просто Image
Ну а теперь то всё? Image
Есть еще одна вариация у surface цвета - surface variant. Это просто второй вариант для surface цвета (и on вариация для него). Нашел такой пример использования: дивайдеры (5) - это surface variant цвет, а текст диалога (4) - это on surface variant Image
Почему здесь onSurfaceVariant цвет находится на surface? Хотя мы обсуждали, по логике здесь бы должен быть onSurface? Потому что палитра не обязывает использовать именно onSurface на surface. Относится ко всем цветам. Это не более, чем хорошие рекомендации
Хотите поменять один цвет на другой и думаете, что смотреться будет так лучше? Да флаг вам в руки, ваше же приложение)
А вот теперь правда всё. Правда! Мы даже поговорили уже про elevation и поверхности чисто случайно
Итоговая палитра Material Design выглядит так! Ну не прекрасно ли? 😍 Image
На самом деле, если вам правда интересно поразбираться в базе Material, яро рекомендую документацию. Это не постная документация, где всё сухо. А с анимашками, картинками и чтоб всё понятно было)
material.io/design/foundat…
А, ну и тогда загляните в доки по обновлению Material до третьей версии. Там Material You, обновленная цветовая палитра, виджеты и всё такое
m3.material.io
И вообще, у меня скоро выйдет статья по нововведениям Material 3 на хабре. Stay tuned 😎
Надеюсь, я помог вам в понимании цветовой схемы Material хотя бы немного)
Скорее всего, после треда может появиться много вопросов, ведь я мог что-то не дорассказать, что-то плохо рассказать. Задавайте вопросы, с радостью отвечу)

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Мобильный разработчик

Мобильный разработчик Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @mobileunderhood

Nov 6, 2021
Первое впечатление от Германии - тут всё законно, официально, по контрактам, дорого, долго, качественно
Второе впечатление - как же все долго и сложно
Запись к врачу только через 2-3 месяца. Платная медицина слишком дорогая для обычного разработчика
Read 29 tweets
Nov 4, 2021
Итак, начинаем тред под кодовым названием "Как переехать в Европу и не порвать ж"
С 18 лет, после того как съездила к сестре погостить в Нью-Йорк на лето, я мечтала переехать "за границу"
Люди, которые находят работу за границей, это гении, а кто я такая? Я обычная, мой потолок - галера в провинциальном городке
Read 28 tweets
Nov 4, 2021
С добрым утром! Сегодня Аня-старший-разработчик в отпуске, в эфире Аня-авантюрный-путешественник 🚲
Набрала с собой фототехники, как будто еду не в Никола-Ленивца, а в горы Дагестана
За жизнь в Германии Европа так приелась, что хочется диких джунглей, заброшенных городов древних цивилизаций, острого карри с рук индуса
Read 10 tweets
Oct 17, 2021
Так в чём, собственно, разница между программистом, разработчиком и инженером?
Если коротко, то программист пишет код. Ему дают чёткие задачи и он их выполняет.

Разработчик разрабатывает продукт. Он участвует в разработке спецификаций, дизайнов и прочего. И кодит

Инженер делает сложные штуки, копается в самой сути и использует свои знания на полную.
Смотреть на эту градацию можно по-разному.

С одной стороны можно смотреть на неё, как на карьерный рост. Сначала тебе говорят, что делать, потом ты участвуешь в том, чтоб говорить себе, что делать, а потом ты уже настолько умный и опытный, что можешь делать супер сложные штуки
Read 33 tweets
Oct 16, 2021
Спят усталые игрушки, книжки спят...
Та-да да-да да-а
Одеяла и подушки ждут ребят...
Read 8 tweets
Oct 16, 2021
На этом всё, спасибо, что читали меня. Это был крутой опыт, я научился общаться с людьми, не принимать всё на личный счёт и мне понравилось обсуждать с вами разные темы и расширять свой майндсет ещё больше!
Надеюсь вы тоже чему-то научились или просто приятно провели время
Меня можно найти на личном аккаунте: @ramzesenok
Я там часто, поэтому не стесняйтесь, пишите :)
Read 4 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(