- Перешли на релизы через GitHub. Все следующие релизы будут описываться там!
BREAKING CHANGES
-
Провели рефакторинг дизайн-системы в рамках объединения VKUI и Paradigm: удалили ненужные, добавили новые, поменяли названия старых. Изменения можно найти в таблице
-
Изменили формат описания адаптивных токенов: теперь идём не от
viewport
(touch
,desktop
), а от состояний самого токена:regular
,compact
,large
и т.д. Указывать состояния, отличные отregular
нужно указывать тогда, и только тогда, когда они действительно отличаются.Для проектов использующих уже медиаквери и вьюпорты (paradigm-проекты) при генерации сделан маппинг с помощью переменной
breakpoints
. -
Переписали старую генерацию
scss
,css
,less
,styl
форматов с нуля. Теперь покрыли это автотестами: можно зайти в тесты и посмотреть как в каждом формате обробатывается каждый вид переменной цвет, групповая переменная (шрифты), адаптивная, медиа и так далее. Теперь поддержка будет прозрачнее и добавление новых конструкций в процессоры не будет проблемой.Важно: во время переписи и из-за того, что формат адаптивных переменных сильно поменялся, то подход с ними в процессорах css тоже. Теперь везде, кроме нативного css, переменные не переопределяются автоматически через @media-query. Чтобы эту мехнику получить — нужно css файлы из
themes/${themName}/cssVars/declarations
. -
Сделали единый базовый интерфейс дизайн-системы и описали в нём тему для
paradigm
(светлый и тёмный) иvk
(пока только светлый). -
Сделали расширение базового интерфейса для Paradigm тем и портальной специфики.
-
Порефакторили подход к генерации форматов:
- Экспортируем в пакете в папку
build
все функции с помощью которых можно собрать любой вид темы. Теперь можно по описанию темы собрать её где-то в своём проекте, а не пользоваться только готовыми отсюда - Сделали так, чтобы любой формат темы можно было собрать хоть из одной переменной. Теперь можно легко иметь в проекте локальные переменные не связанные с дизайн-системой, но в привычном формате.
- Экспортируем в пакете в папку
-
Изменили файловую структуру при экспорте библиотеки — теперь вместо того чтобы все собранные темы попадали в
root
, они попадают вroot/themes
. Это важно, поскольку теперь в экспорте ещё есть разные полезные функции помимо тем. -
Поработали над тёмной темой сделали основную базовую тёмную тему и отдельно темные цвета
-
Удалили
flat
темы -
Удалили
subthemes
везде -
название пакета
@vkontakte/vkui-tokens
- Добавили темы
octaviusDark
иhomeDark
- Сделали правки в типографике в
calendar
- Добавили экспорт объявления цветов css-vars в js и в виде строки.
- Обновили тему
otvet
, добавили тёмный вариантotvetDark
- Аккуратно поправили вывод в генерации стилей (убрали ненужные строчки)
- Добавили новый вид темы
cssVars
она объявляет переменные как нативные css-custom-properties вcssVars/${themeName}/declarations/index.css
. Там сразу сделаны изменения переменных по breakpoints, а также добавлены специальные классы для форсированного включения нужного брейкпоинта. Демо можно найти тут; - Также сделали компиляцию объекта темы (в
cssVars/${themeName}/theme/index
) (ts
,js
,json
форматы) в где каждая переменная представлена как{name: '--paradigm--x1', value: 'var(--paradigm--x1, 4px)'}
- Добавили тестирование снапшотами на каждую тему (теперь любое изменение в теме вызовет падение тестов с полным дифом каждой переменной, нужно будет апрувить изменения, обновляя снапшоты (
npm t -- -u
)) - Добавили расчёт тестового покрытия (
coverage
) в репозитории - Для удобной миграции на
cssVars
тему в${themeName}/cssVars/theme/fallbacks
добавлены темы, процессоров, которые ссылаются на уже нативные CSS-переменные. То есть$size-base: 4px
->$size-base: var(--paradigm--size_base, 4px)
- js,json,ts добавили поле
themeType: 'root' | 'flat' | 'pixelify' | 'cssVars'
, чтобы в runtime понимать, с каким видом темы сейчас работаем - В
${themeName}/cssVars/declarations
помимоindex.css
есть также файлыonlyRoot.css
(только рутовое определение переменных без, адаптивности), а такжеmodern.css
(используются нативные mixin ы в css (читай про @apply)) - BREAKING CHANGES: удалили генерацию
css
файлов во всех (они были невалидные, поэтому врятли кто-то ими польовался), кромеcssVars
видах тем. Теперь чистый нативный css можно заимпортить тут:cssVars/${themeName}/declarations/index.css
. - BREAKING CHANGES: в темах, в адаптивных переменных больше нет
default
состояния, вместо этого теперь там указан конкретныйviewport
(например,touch
илиdesktopS
). Это было сделано, так как default был по-сути алисом наtouch
viewport, что вызывало неконсистентые состояния, при использовании темы безtouch
брейкпоинта. Это нам дало следующие возможности: теперь можно создавать темы с любым подножеством брейкпоинтов, например:['desktopS, 'desktopM']
- будет тема из двух десктопных брейкпоинтов. На самом деле это должно затронуть только описание тем, а также типы иts
,js
,json
форматы. Выходные файлы других форматов не изменились.flat
темы всех форматов остались прежними. - BREAKING CHANGES: подняли мажор
csstype
(единственнаяprod
зависимость дляnpm
у токенов). Теперь3.0.7
. (Может вызывать нюансы в типах при обновлении).
- Для календарной темы обновили
thumbnailColor
- В основные темы перенесены переменные из subthemes -
colorBgPlaceholder
(цвет подложки) иcolorIconAccent
(цвет акцентированной иконки) - Добавлен токен
colorBgPromo
для задания цвета фона промо элементов и панелей (плашек)
- добавили переменную
sizeControlCheckBorderRadius
— Радиус скругления чекбоксов - исправили наследование
calendar
темы от octavius (больше не попадают переменные из подтем) - удалили подтемы из календарной темы, вместо этого создали новую тему
calendarDark
с корректным интерфейсом
- добавили тему для Облака
cloud
- добавили переменные (и их описания) во все темы
fontFamilyAccent
,fontWeightAccent
,fontWeightAccentBold
- сделали чуть более корректное наследование тем от
octavius
(чтобы не попадали в тему переменные subthemes, которые deprecated) - Исправили генерацию customMedia (убрали перекрытие breakpoints)
- Изменили скругление кнопок до 8px для календарных тем
- Добавляeтся токен "checkBoxBorderColor" для задания цвета у чекбоксов
- Добавляются токен "sizePromoArrowWidth" для корректного отображения стрелки в 2kit
- Добавляются токен на размер стрелки тултипа и токен для цвета новостного метатреда
- Добавляется генерация мапки со всеми переменными после миксина для SASS-файлов.
- имя пакета теперь снова
@paradigm/tokens
.@paradigm/themes
больше никогда публиковаться не будет. - Добавлен общий интерфейс темы, от которой отнаследованы все остальные темы.
- Добавлен общий интерфейс ОПИСАНИЯ темы. (Теперь создавая тему у вас будет тип, с которым невозможно будет забыть указать что-либо). Непонятно почему недостаточно предыдущего пункта? — скорее всего вы никогда не работали в токенах.
- Процесс преобразования описания темы в полноценную тему полностью выводится из типов. И покрыт автотестами.
- Добавили и настроили линтер
- Настроили CI (проверяем линтер, jest и сборку)
- Добавили функцию хелпер
getStateFunctions
, которая добавит к теме функции, позволяющие динамически создаватьhover
,active
состояния.
- Обновили цвет вк по их брендбуку
- Добавили тему Задач Mail.ru
- Добавили темную тему для календаря
- Поправили размеры шрифта в теме
calendar
- Добавили переменные
sizeBadge[XS|S|M|L|XL]
- добавили переменную paddingControlSelectIcon
- добавили переменную colorButtonContrastBg
- добавили переменную colorCategoryToMyself в тему октавиуса
- Обновили цвета с оттенками серого во всех темах
- Обновили тему
home
(Относледовали отoctavius
и добавили токенов)
- Добавили в тему календаря шрифт
MailSans
- Обновили значение переменной
colorBgHighlight
#FFF1AD
- Настроили корректные тайпинги для этой переменной
- Добавили переменные для ширины и высоты больших кнопок (описание)
- Добавили тему
calls
- Минорное обновление цветов ошибки и саксеса. Утверждено с дизайнерами