In this lesson we’ll improve a generic button primitive component by adding another variant — secondary style.
We have two variants of a button: primary and secondary. The naïve way would be to define a prop for each:
<Button primary>Push me</Button>
<Button secondary>Push me</Button>
But such API can be confusing, and can lead to unexpected behavior. For example, how this button should look like?
<Button primary secondary>Push me</Button>
A button can’t be a primary and a secondary at the same time but the API makes the opposite impression. For exclusive options it’s better to define a single prop with multiple values. I prefer to call this prop variant
.
<Button variant="primary">Push me</Button>
<Button variant="secondary">Push me</Button>
We’ll use following libraries:
You can either use this lesson’s Git repository or install them manually in your project:
npm install styled-components
Member comments are a way for members to communicate, interact, and ask questions about a lesson.
The instructor or someone from the community might respond to your question Here are a few basic guidelines to commenting on egghead.io
Be on-Topic
Comments are for discussing a lesson. If you're having a general issue with the website functionality, please contact us at support@egghead.io.
Avoid meta-discussion
Code Problems?
Should be accompanied by code! Codesandbox or Stackblitz provide a way to share code and discuss it in context
Details and Context
Vague question? Vague answer. Any details and context you can provide will lure more interesting answers!