![Page 1: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/1.jpg)
Component Driven Development with StorybookChris Foster
![Page 2: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/2.jpg)
CDD: The backstory
![Page 3: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/3.jpg)
CDD: The backstory
![Page 4: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/4.jpg)
CDD: The backstory
![Page 5: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/5.jpg)
CDD: The backstory
![Page 6: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/6.jpg)
CDD: The backstory
![Page 7: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/7.jpg)
CDD: The backstory
![Page 8: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/8.jpg)
What are components?
![Page 9: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/9.jpg)
What are components?
![Page 10: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/10.jpg)
How do we normally build an app?
![Page 11: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/11.jpg)
Component Driven Development
![Page 12: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/12.jpg)
The CDD Workflow
1. Build each component
2. Create component library
3. Combine components
![Page 13: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/13.jpg)
Storybook is a rich tool for exploring and
building component libraries
It supports most popular
Javascript frameworks, and is
growing extensively in industry
![Page 14: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/14.jpg)
![Page 15: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/15.jpg)
![Page 16: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/16.jpg)
Let’s get started!
# Create our application:npx create-react-app democd demo
# Add Storybook:npx -p @storybook/cli sb init
![Page 17: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/17.jpg)
npm start
![Page 18: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/18.jpg)
npm test
![Page 19: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/19.jpg)
npm run storybook
![Page 21: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/21.jpg)
Benefits of Component Driven Development
![Page 22: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/22.jpg)
Benefit One: Focus Your Development
![Page 23: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/23.jpg)
Benefit One: Focus Your Development
Manipulating your whole app is a waste of time
Certain states are difficult to achieve in development
![Page 24: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/24.jpg)
Benefit One: Focus Your Development
Manipulating your whole app is a waste of time
Certain states are difficult to achieve in development
CDD isolates the component you’re really building
![Page 25: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/25.jpg)
Benefit Two: Increase UI Coverage
![Page 26: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/26.jpg)
Benefit Two: Increase UI Coverage
Traditional development can leave state “blind spots”
![Page 27: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/27.jpg)
Benefit Two: Increase UI Coverage
Traditional development can leave state “blind spots”
CDD encourages enumerating all component states
You can confidently put new components into production
![Page 28: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/28.jpg)
Benefit Three: Receive Targeted Feedback
![Page 29: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/29.jpg)
Benefit Three: Receive Targeted Feedback
Developers can deploy their Storybook easily and rapidly
![Page 30: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/30.jpg)
Benefit Three: Receive Targeted Feedback
Developers can deploy their Storybook easily and rapidly
Sharing a proposed UI change is as easy as a URL
Focus conversations on one single component at a time
![Page 31: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/31.jpg)
Benefit Four: Build a component library
![Page 32: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/32.jpg)
Benefit Four: Build a component library
CDD encourages high quality, robust components
Better components are more reusable components
![Page 33: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/33.jpg)
Benefit Four: Build a component library
CDD encourages high quality, robust components
Better components are more reusable components
Supercharge code reuse within your organization
Use your stories to generate detailed documentation
![Page 34: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/34.jpg)
Benefit Five: Parallelize development
![Page 35: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/35.jpg)
Benefit Five: Parallelize development
Split work across components -- not pages
![Page 36: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/36.jpg)
Benefit Five: Parallelize development
Split work across components -- not pages
Mocks. Never be blocked by the backend team again!
![Page 37: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/37.jpg)
Benefit Five: Parallelize development
Split work across components -- not pages
Mocks. Never be blocked by the backend team again!
Provide clean, complete iterations to stakeholders earlier
![Page 38: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/38.jpg)
Benefit Six: Test Visually
![Page 39: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/39.jpg)
Benefit Six: Test Visually
Easily validate your entire user interface at a glance
![Page 40: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/40.jpg)
Benefit Six: Test Visually
Easily validate your entire user interface at a glance
Programmatically validate previously difficult UI code
Storybook integrates with powerful automated testing plugins
![Page 41: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/41.jpg)
Exploring the ecosystem
![Page 42: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/42.jpg)
Knobs
![Page 43: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/43.jpg)
Responsive Design
![Page 44: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/44.jpg)
Storybook your email templates!
![Page 45: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/45.jpg)
TDD Integration
![Page 46: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/46.jpg)
Story Shots
![Page 47: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/47.jpg)
Easy visual regression checks
![Page 49: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/49.jpg)
Summary
● CDD is a powerful paradigm for building user interfaces
● Storybook is a feature-rich component explorer
Combined, they’re a new, better way to build frontend apps!
![Page 50: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/50.jpg)
Source code: https://github.com/chrisfosterelli/cdd-with-storybook
Learn Storybook: https://www.learnstorybook.com/
Do you use Storybook right now, or want to? Let’s chat!
https://twostoryrobot.com
@chrisfosterelli
Thanks!
![Page 51: Component Driven Development · npx create-react-app demo cd demo # Add Storybook: npx -p @storybook/cli sb init. npm start. npm test. npm run storybook. Demo: Task Component & Story](https://reader033.vdocument.in/reader033/viewer/2022060210/5f04bb227e708231d40f6c16/html5/thumbnails/51.jpg)
Sourceshttps://dev.to/giteden/a-guide-to-component-driven-development-cdd-1fo1
https://blog.hichroma.com/component-driven-development-ce1109d56c8e
https://www.learnstorybook.com/react/en/get-started
https://addyosmani.com/first/
https://fontawesome.com
https://github.com/mthuret/storybook-addon-specifications
https://github.com/storybookjs/storybook/tree/master/addons/knobs