Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ccontrols/component-controls
A next-generation tool to create blazing-fast documentation sites.
https://github.com/ccontrols/component-controls
Last synced: 2 months ago
JSON representation
A next-generation tool to create blazing-fast documentation sites.
- Host: GitHub
- URL: https://github.com/ccontrols/component-controls
- Owner: ccontrols
- Created: 2020-02-07T20:02:34.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-12-15T16:43:25.000Z (almost 2 years ago)
- Last Synced: 2024-09-26T19:26:39.429Z (3 months ago)
- Language: TypeScript
- Homepage: https://component-controls.com/
- Size: 118 MB
- Stars: 80
- Watchers: 4
- Forks: 8
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
- awesome-react-components - component-controls - [demo](https://component-controls.com) - [docs](https://component-controls.com/tutorial) - A next-generation tool to create blazing-fast documentation sites. (Dev Tools / Miscellaneous)
- awesome-react - component-controls - A next-generation tool to create blazing-fast documentation sites. ![](https://img.shields.io/github/stars/ccontrols/component-controls.svg?style=social&label=Star) (Static Site Generator & Documentation Generator & Blogging / Parallax)
- awesome-blazingly-fast - component-controls - A next-generation tool to create blazing-fast documentation sites. (TypeScript)
- awesome-react-components - component-controls - [demo](https://component-controls.com) - [docs](https://component-controls.com/tutorial) - A next-generation tool to create blazing-fast documentation sites. (Dev Tools / Miscellaneous)
- fucking-awesome-react-components - component-controls - 🌎 [demo](component-controls.com) - 🌎 [docs](component-controls.com/tutorial) - A next-generation tool to create blazing-fast documentation sites. (Dev Tools / Miscellaneous)
README
# Table of contents
- [About](#about)
- [Showcase sites](#showcase-sites)
- [1. documentation](#1-documentation)
- [2. grommet-controls](#2-grommet-controls)
- [3. theme-ui design system](#3-theme-ui-design-system)
- [4. starter projects](#4-starter-projects)
- [Motivation](#motivation)
- [Inspiration](#inspiration)
- [Roadmap](#roadmap)# About
`component-controls` is a next-generation tool to help create blazing-fast documentation sites for your libraries and components.
Using [MDX](https://mdxjs.com) or javascript to author documentation files, the sites can be generated with highly-optimized site generators as [gatsby](https://www.gatsbyjs.com) or [nextjs](https://nextjs.org).
Before starting, take a look at our blog post [gatsby vs nextjs vs storybook](https://component-controls.com/blogs/gatsby-vs-nextjs-vs-storybook) comparison for generating static documentation sites.
# Showcase sites
## 1. documentation
We believe in the practice of dogfooding, thus we have created the full documentation sites for component-controls using - well, component-controls. Everything from blog posts, tutorials, author profiles to auto-generated component documentation, and testing pages.
- [built with gatsby](https://component-controls.com/) - [source](https://github.com/ccontrols/component-controls/tree/master/examples/gatsby)
- [built with nextjs](https://nextjs.component-controls.com/) - [source](https://github.com/ccontrols/component-controls/tree/master/examples/nextjs)
- [built with webpack 4](https://webpack.component-controls.com/) - [source](https://github.com/ccontrols/component-controls/tree/master/examples/react-webpack)
- [built with webpack 5](https://webpack5.component-controls.com/) - [source](https://github.com/ccontrols/component-controls/tree/master/examples/react-webpack-5)
- [built with storybook 6 without addon-docs](https://storybook.component-controls.com) - [source](https://github.com/ccontrols/component-controls/tree/master/examples/storybook-6-no-docs)
- [built with storybook 6](https://components-storybook-6.netlify.app/) - [source](https://github.com/ccontrols/component-controls/tree/master/examples/storybook-6)
## 2. grommet-controls
This site shows how to create documentation for a custom react UI component library
[grommet-controls](https://grommet-controls.netlify.app) - [source](https://github.com/atanasster/grommet-controls)
## 3. theme-ui design system
This site showcases creating documentation sites for [third-party libraries](https://component-controls.com/tutorial/getting-started/external-libraries), that are installed in the `node_modules` folder of your project
[theme-ui design system](https://theme-ui-design-system.netlify.app) - [source](https://github.com/ccontrols/theme-ui-design-system)
## 4. starter projects
A collection of simple starter projects, showcasing how to create an MDX pure documentation page, and MDX custom documentation page with a component interactive `story` and, an ESM javascript page that automatically creates component documentation.
[built with gatsby](https://gatsby-controls-starter.netlify.app) - [source](https://github.com/ccontrols/gatsby-controls-starter)
[built with nextjs](https://nextjs-controls-starter.netlify.app) - [source](https://github.com/ccontrols/nextjs-controls-starter)
[built with webpack 4](https://webpack-controls-starter.netlify.app) - [source](https://github.com/ccontrols/webpack-controls-starter)
[built with webpack 5](https://webpack-5-controls-starter.netlify.app) - [source](https://github.com/ccontrols/webpack-5-controls-starter)
[built with storybook 5](https://storybook-5-controls-starter.netlify.app/?path=/story/first-page--page) - [source](https://github.com/ccontrols/storybook-5-controls-starter)
[built with storybook 6](https://storybook-6-controls-starter.netlify.app) - [source](https://github.com/ccontrols/storybook-6-controls-starter)
# Motivation
- Create a components development environment with testing as a first-class feature.
- Provide out-of-the-box documentation experience with markdown pages for home page, blogging, and general project documentation.
- Use smart "super-bundlers" (gatsby, nextjs) to build compact and fast documentation sites.
- Decouple the user interface from the loading of the 'stories' = modular design.
- Do not modify the source files (both story and component files) at instrumentation-time as much as possible to avoid random build/run-time errors. The exception is only where necessary, ie instrumenting coverage or performance profiling probes.
- Ability to document "external" component libraries, living in a separate package from the "stories" package.
- Built-in [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree) instrumentation module.
- Create and support open declarative story formats.# Inspiration
Many developments have contributed to the creation of `component-controls`, a few of them are:
- [storybook](https://storybook.js.org) is the original component development system that helps teams to design, develop, and test components. The strong support for testing and the creation of an open [Component Story Format](https://github.com/storybookjs/csf) was an inspiration, as well as the [Storybook Addon Knobs](https://github.com/storybookjs/storybook/tree/next/addons/knobs) for providing configurable component properties.
- [docz](https://www.docz.site) has a beautiful architecture and introduced non-proprietary [gatsby](https://www.gatsbyjs.org) build engine. This monorepo was also heavily influenced by the `docz` project repository structure.
- [docusaurus](https://docusaurus.io) creates very clean and effective UX for documentation websites. Provides excellent options for project blogging, versioning, translation, and algolia-powered search.
- [abstract syntax tree (AST)](https://en.wikipedia.org/wiki/Abstract_syntax_tree) advancements have been greatly responsible for making possible the parsing and analysis features of this library.
- [theme-ui](https://theme-ui.com) is the driving force for standardizing `react` theming and design systems. `theme-ui` is used by our project as the theming and components founding block.
- [mdx](https://mdxjs.com) is driving the adoption of JSX in Markdown and allows writing rich, interactive documentation pages.
# Roadmap
- [x] Core packages
- [x] Support ESM and MDX stories format
- [x] Instrumentation packages
- [x] UI Libraries
- [x] Storybook integration with addon-docs
- [x] Storybook integration without addon-docs (replace all storybook loaders)
- [x] Standalone webpack compiler API
- [x] HMR
- [x] Gatsby standalone app/static app builder
- [x] Nextjs standalone app/static app builder
- [x] Integrated testing facilites
- [x] Design tokens componnets to document design systems
- [x] Support frontmatter MDX declarations
- [ ] Multiple frameworks support (Vue, Angular, tbd)
- [ ] Coverage and performance profiling instrumentation