A component is a reusable user-interface building block with defined structure, styling, behavior, and states that can be used consistently across a product.
A button becomes a component when its anatomy, styles, states, sizes, interaction rules, and usage are defined for reuse.
That makes it different from a one-off rectangle that happens to look like a button.
A UI pattern describes a reusable solution to a recurring interaction problem. A component is a concrete implementation building block.
A search pattern may combine an input, filters, suggestions, and result states.
A component variant is a controlled alternative within the same component, such as primary, secondary, destructive, or disabled button states.
Do not abstract a pattern before it has demonstrated reuse.
This makes the component harder to understand and maintain.
Hover, focus, loading, error, and disabled conditions belong to the component definition.
A component asks: what UI building block should behave consistently whenever this recurring product need appears?
Design system · Component library · Component variant · Design token