Опорная идея
Design system — это не библиотека красивых кнопок, а договор о компонентах, состояниях, tokens и правилах. У кнопки есть default, hover, focus, disabled, loading. У поля — label, hint, error, success, required, helper text. Если состояния не описаны, продукт выглядит случайным и ломается в edge cases.
Компоненты должны быть достаточно гибкими, но не позволять каждый раз изобретать интерфейс заново.