Skip to content

Commit

Permalink
Outline
Browse files Browse the repository at this point in the history
  • Loading branch information
isaiahdaviscom committed Aug 18, 2023
1 parent 17842c2 commit c18ec57
Show file tree
Hide file tree
Showing 6 changed files with 62,606 additions and 44,406 deletions.
2 changes: 1 addition & 1 deletion .storybook/main.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

const path = require('path');

// LOOK IM RECORDING MYSELF CODE
module.exports = {
"stories": [
"../src/**/*.stories.mdx",
Expand Down
60 changes: 60 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,63 @@

# design-system
A collection of reusable components, guided by clear standards, that can be assembled to build an application.

Storybook is a UI component development environment that allows developers to build and showcase components in an isolated manner. If you'd like to create a clone of Storybook, you'll need to understand its core functionality and then develop your version of it.

Here's a broad outline of how you might create your own Storybook-like tool:

1. Define the Purpose
First, understand what you're aiming for:

Do you want a 1:1 clone or just a simplified version?
Which features are essential, and which can you omit?
What's the unique selling proposition of your version?
2. Plan the Architecture
Determine how you will handle:

Component rendering: Should it work for React, Vue, Angular, or other frameworks?
Plugins or extensions: Storybook is known for its extensibility. Will your tool support plugins?
UI/UX: Decide on the layout, theming, and interaction design.
3. Start with the Basics
Component Rendering: Create an environment where components can be rendered in isolation.

Load components dynamically.
Provide an interface to define and control props.
Navigation: Develop a sidebar or navigation mechanism to switch between components or "stories."

Viewport: Allow users to view components in different device sizes or frame contexts.

4. Add Advanced Features
Documentation: Offer a way to add notes or documentation alongside components.

Interactivity: Implement a system for users to interact with props dynamically.

Addons/Plugins: If you want extensibility, design a system where developers can add plugins or extensions to enhance functionality.

Theme-ability: Allow users to adjust the look and feel or provide predefined themes.

5. Build for Multiple Frameworks
If you're targeting multiple UI libraries (like React, Vue, and Angular), you'll need to handle:

Framework-specific configurations.
Component loading mechanisms.
Documentation standards for each library.
6. Implement a CLI
Storybook comes with a command-line interface that helps in setting up and launching the environment. Consider building a CLI tool for your project to make it more user-friendly.

7. Testing
Ensure your tool is robust:

Unit tests for the underlying functionality.
Integration tests for plugins or extensions.
UI tests for the interface.
8. Deployment and Distribution
Package your tool as an NPM module or similar so that developers can easily integrate it into their projects.
Create comprehensive documentation and tutorials to guide users.
9. Feedback and Iteration
Release a beta version to gather feedback from developers. This will help you identify pain points, bugs, or areas for improvement.

10. Stay Updated
Stay abreast of changes in the front-end development landscape to ensure your tool remains relevant.

Remember that building a project like Storybook requires significant time, expertise, and resources. It might be beneficial to gather a team, especially if you aim to cover multiple frameworks and offer advanced features.
2 changes: 1 addition & 1 deletion build/project.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"generatedAt":1661634835350,"builder":{"name":"@storybook/builder-webpack5"},"hasCustomBabel":false,"hasCustomWebpack":true,"hasStaticDirs":false,"hasStorybookEslint":false,"refCount":0,"metaFramework":{"name":"CRA","packageName":"react-scripts","version":"5.0.1"},"packageManager":{"type":"yarn","version":"1.22.19"},"features":{"previewMdx2":true},"storybookVersion":"6.5.10","language":"javascript","storybookPackages":{"@storybook/addon-actions":{"version":"6.5.10"},"@storybook/addon-docs":{"version":"6.5.10"},"@storybook/builder-webpack5":{"version":"6.5.10"},"@storybook/manager-webpack5":{"version":"6.5.10"},"@storybook/mdx2-csf":{"version":"0.0.3"},"@storybook/node-logger":{"version":"6.5.10"},"@storybook/preset-create-react-app":{"version":"4.1.2"},"@storybook/react":{"version":"6.5.10"},"@storybook/testing-library":{"version":"0.0.13"},"storybook-xstate-addon":{"version":"2.3.1"}},"framework":{"name":"react"},"addons":{"@storybook/addon-links":{"version":"6.5.10"},"@storybook/addon-essentials":{"version":"6.5.10"},"@storybook/addon-interactions":{"version":"6.5.10"},"@storybook-create-react-app":{"version":null}}}
{"generatedAt":1661750984446,"builder":{"name":"@storybook/builder-webpack5"},"hasCustomBabel":false,"hasCustomWebpack":true,"hasStaticDirs":false,"hasStorybookEslint":false,"refCount":0,"metaFramework":{"name":"CRA","packageName":"react-scripts","version":"5.0.1"},"packageManager":{"type":"yarn","version":"1.22.19"},"features":{"previewMdx2":true},"storybookVersion":"6.5.10","language":"javascript","storybookPackages":{"@storybook/addon-actions":{"version":"6.5.10"},"@storybook/addon-docs":{"version":"6.5.10"},"@storybook/builder-webpack5":{"version":"6.5.10"},"@storybook/manager-webpack5":{"version":"6.5.10"},"@storybook/mdx2-csf":{"version":"0.0.3"},"@storybook/node-logger":{"version":"6.5.10"},"@storybook/preset-create-react-app":{"version":"4.1.2"},"@storybook/react":{"version":"6.5.10"},"@storybook/testing-library":{"version":"0.0.13"},"storybook-addon-meta":{"version":"1.0.3"},"storybook-xstate-addon":{"version":"2.3.1"}},"framework":{"name":"react"},"addons":{"@storybook/addon-links":{"version":"6.5.10"},"@storybook/addon-essentials":{"version":"6.5.10"},"@storybook/addon-interactions":{"version":"6.5.10"},"@storybook-create-react-app":{"version":null}}}
Loading

0 comments on commit c18ec57

Please sign in to comment.