10 лучших сетей медийной рекламы в 2025 году.
Лучшие дисплейные рекламные сети в 2026 году: что выбрать бизнесу При планировании стратегии цифровой рекламы на 2026 год один из ключевых вопросо...
Когда Брэд Фрост в 2013 году популяризировал концепцию дизайн-систем (через идею Atomic Design), он предложил не просто новый подход к созданию интерфейсов, а целую архитектуру для их систематизации.
С тех пор дизайн-системы стали незаменимым инструментом для компаний, которые хотят создавать повторно используемые, согласованные элементы интерфейса.
Одним из ключевых элементов дизайн-систем являются варианты компонентов (component variants) — то есть различные состояния и версии одного и того же элемента.
Например, кнопка может иметь варианты:
Такие варианты помогают поддерживать визуальную целостность и не плодить сотни отдельных компонентов, отличающихся лишь цветом или состоянием.
Теперь работать с вариантами можно и в Penpot — открытом, веб-базированном инструменте дизайна, где интерфейс описывается как код.
Давайте разберём, как устроены варианты, зачем нужны токены и как всё это объединить в масштабируемую систему.
Дизайн-токены — это единицы данных, которые описывают визуальные параметры (цвета, отступы, типографику и т. д.) в виде переменных.
Они позволяют менять дизайн глобально — через значения, а не вручную в макете.
Представим, что фирменный цвет бренда имеет значение hsl(270 100 42).
Вместо того чтобы прописывать его в каждом объекте, мы создаём токен:
color.brand.default = hsl(270 100 42)
Теперь мы можем использовать этот токен в других токенах:
background.button.primary.default = {color.brand.default}
Такой приём называется алиас (alias) — один токен ссылается на другой.
Это даёт гибкость: если мы изменим базовый цвет бренда, фон кнопки поменяется автоматически.
| Token name | Token value |
|---|---|
| color.brand.default | hsl(270 100 42) |
| color.brand.lighter | hsl(270 100 52) |
| color.brand.lightest | hsl(270 100 95) |
| color.brand.muted | hsl(270 5 50) |
| background.button.primary.default | {color.brand.default} |
| background.button.primary.hover | {color.brand.lighter} |
| background.button.primary.disabled | {color.brand.muted} |
| text.button.primary.default | {color.brand.lightest} |

color.brand.default) и значение hsl(270 100 42).
Чтобы создать алиас, просто введите в значение ссылку на другой токен в фигурных скобках, например:{color.brand.default}.

Penpot использует стандартизированный формат W3C DTCG,
поэтому ваши токены совместимы с web, iOS и Android — их можно экспортировать в код.
Создайте основной компонент (main component), который будет служить «источником правды».
Все остальные экземпляры (instances) будут ссылаться на него, чтобы обновления вносились централизованно.

Button / Primary).


Теперь это ваш базовый компонент.


Например:



background.button.primary.defaultbackground.button.primary.hoverbackground.button.primary.disabled
Вместо стандартного Property 1 дайте свой параметр, например State.
Затем назовите значения: Default, Hover, Disabled.
Теперь у компонента появилось свойство, по которому можно переключать состояния прямо в интерфейсе Penpot.
Когда вы объединяете токены, компоненты и варианты,
вы получаете устойчивую систему, которую можно развивать без хаоса.
Например, если вы используете text.button.primary.default,
то сможете поменять цвет текста только у кнопок, не затрагивая весь брендовый цвет color.brand.lightest.
Перед масштабированием стоит продумать:
Даже простая кнопка может иметь десятки вариаций:
Если всё собрано по системе токенов и вариантов, эти комбинации не усложняют работу — наоборот,
они становятся управляемыми и легко обновляемыми.
Компоненты + варианты + токены — это тройка, на которой держится любая масштабируемая дизайн-система.
Они дают баланс между гибкостью и управляемостью, позволяют централизованно менять дизайн без хаоса и ошибок.
Penpot делает этот процесс простым, открытым и кодоориентированным —
а значит, дизайн и разработка наконец-то говорят на одном языке.