Start with small agreements
A design system tends to work better when it begins with small agreements that reduce daily decisions, rather than a large component catalog built all at once. The first targets should be repeated elements such as color, spacing, type sizes, buttons, and cards.
Name by role
The most important choice is how things are named. Treating colors by role, such as background, body, border, and accent, makes later theme and expression changes easier. On the implementation side, tokens and types should stay close enough that the right option is easy to find.
Expand when needed
Components should not be universal from the beginning. Instead of adding unused props, expand the API after a real screen needs the variation. This keeps intent visible and makes reviews easier.
Make it a shared base
A small design system is a base for conversation, not a finished product. Short notes about reasons, usage differences, and expressions to avoid help design and implementation share the same assumptions.