| import { Meta } from '@storybook/blocks'; | |
| import Image from 'next/image'; | |
| import Code from './assets/code-brackets.svg'; | |
| import Colors from './assets/colors.svg'; | |
| import Comments from './assets/comments.svg'; | |
| import Direction from './assets/direction.svg'; | |
| import Flow from './assets/flow.svg'; | |
| import Plugin from './assets/plugin.svg'; | |
| import Repo from './assets/repo.svg'; | |
| import StackAlt from './assets/stackalt.svg'; | |
| <Meta title="Example/Introduction" /> | |
| <style> | |
| {` | |
| .subheading { | |
| --mediumdark: '#999999'; | |
| font-weight: 700; | |
| font-size: 13px; | |
| color: #999; | |
| letter-spacing: 6px; | |
| line-height: 24px; | |
| text-transform: uppercase; | |
| margin-bottom: 12px; | |
| margin-top: 40px; | |
| } | |
| .link-list { | |
| display: grid; | |
| grid-template-columns: 1fr; | |
| grid-template-rows: 1fr 1fr; | |
| row-gap: 10px; | |
| } | |
| @media (min-width: 620px) { | |
| .link-list { | |
| row-gap: 20px; | |
| column-gap: 20px; | |
| grid-template-columns: 1fr 1fr; | |
| } | |
| } | |
| @media all and (-ms-high-contrast:none) { | |
| .link-list { | |
| display: -ms-grid; | |
| -ms-grid-columns: 1fr 1fr; | |
| -ms-grid-rows: 1fr 1fr; | |
| } | |
| } | |
| .link-item { | |
| display: block; | |
| padding: 20px; | |
| border: 1px solid #00000010; | |
| border-radius: 5px; | |
| transition: background 150ms ease-out, border 150ms ease-out, transform 150ms ease-out; | |
| color: #333333; | |
| display: flex; | |
| align-items: flex-start; | |
| } | |
| .link-item:hover { | |
| border-color: #1EA7FD50; | |
| transform: translate3d(0, -3px, 0); | |
| box-shadow: rgba(0, 0, 0, 0.08) 0 3px 10px 0; | |
| } | |
| .link-item:active { | |
| border-color: #1EA7FD; | |
| transform: translate3d(0, 0, 0); | |
| } | |
| .link-item strong { | |
| font-weight: 700; | |
| display: block; | |
| margin-bottom: 2px; | |
| } | |
| .link-item-img-wrapper { | |
| height: 40px; | |
| width: 40px; | |
| margin-right: 15px; | |
| flex: none; | |
| } | |
| .link-item span, | |
| .link-item p { | |
| margin: 0; | |
| font-size: 14px; | |
| line-height: 20px; | |
| } | |
| .tip { | |
| display: inline-block; | |
| border-radius: 1em; | |
| font-size: 11px; | |
| line-height: 12px; | |
| font-weight: 700; | |
| background: #E7FDD8; | |
| color: #66BF3C; | |
| padding: 4px 12px; | |
| margin-right: 10px; | |
| vertical-align: top; | |
| } | |
| .tip-wrapper { | |
| font-size: 13px; | |
| line-height: 20px; | |
| margin-top: 40px; | |
| margin-bottom: 40px; | |
| } | |
| .tip-wrapper code { | |
| font-size: 12px; | |
| display: inline-block; | |
| } | |
| `} | |
| </style> | |
| # Welcome to Storybook | |
| Storybook helps you build UI components in isolation from your app's business logic, data, and context. | |
| That makes it easy to develop hard-to-reach states. Save these UI states as **stories** to revisit during development, testing, or QA. | |
| Browse example stories now by navigating to them in the sidebar. | |
| View their code in the `stories` directory to learn how they work. | |
| We recommend building UIs with a [**component-driven**](https://componentdriven.org) process starting with atomic components and ending with pages. | |
| <div className="subheading">Configure</div> | |
| <div className="link-list"> | |
| <a | |
| className="link-item" | |
| href="https://storybook.js.org/docs/react/addons/addon-types" | |
| target="_blank" | |
| > | |
| <div className="link-item-img-wrapper"> | |
| <Image src={Plugin} alt="plugin" /> | |
| </div> | |
| <span> | |
| <strong>Presets for popular tools</strong> | |
| Easy setup for TypeScript, SCSS and more. | |
| </span> | |
| </a> | |
| <a | |
| className="link-item" | |
| href="https://storybook.js.org/docs/react/configure/webpack" | |
| target="_blank" | |
| > | |
| <div className="link-item-img-wrapper"> | |
| <Image src={StackAlt} alt="Build" /> | |
| </div> | |
| <span> | |
| <strong>Build configuration</strong> | |
| How to customize webpack and Babel | |
| </span> | |
| </a> | |
| <a | |
| className="link-item" | |
| href="https://storybook.js.org/docs/react/configure/styling-and-css" | |
| target="_blank" | |
| > | |
| <div className="link-item-img-wrapper"> | |
| <Image src={Colors} alt="colors" /> | |
| </div> | |
| <span> | |
| <strong>Styling</strong> | |
| How to load and configure CSS libraries | |
| </span> | |
| </a> | |
| <a | |
| className="link-item" | |
| href="https://storybook.js.org/docs/react/get-started/setup#configure-storybook-for-your-stack" | |
| target="_blank" | |
| > | |
| <div className="link-item-img-wrapper"> | |
| <Image src={Flow} alt="flow" /> | |
| </div> | |
| <span> | |
| <strong>Data</strong> | |
| Providers and mocking for data libraries | |
| </span> | |
| </a> | |
| </div> | |
| <div className="subheading">Learn</div> | |
| <div className="link-list"> | |
| <a className="link-item" href="https://storybook.js.org/docs" target="_blank"> | |
| <div className="link-item-img-wrapper"> | |
| <Image src={Repo} alt="repo" /> | |
| </div> | |
| <span> | |
| <strong>Storybook documentation</strong> | |
| Configure, customize, and extend | |
| </span> | |
| </a> | |
| <a className="link-item" href="https://storybook.js.org/tutorials/" target="_blank"> | |
| <div className="link-item-img-wrapper"> | |
| <Image src={Direction} alt="direction" /> | |
| </div> | |
| <span> | |
| <strong>In-depth guides</strong> | |
| Best practices from leading teams | |
| </span> | |
| </a> | |
| <a className="link-item" href="https://github.com/storybookjs/storybook" target="_blank"> | |
| <div className="link-item-img-wrapper"> | |
| <Image src={Code} alt="code" /> | |
| </div> | |
| <span> | |
| <strong>GitHub project</strong> | |
| View the source and add issues | |
| </span> | |
| </a> | |
| <a className="link-item" href="https://discord.gg/storybook" target="_blank"> | |
| <div className="link-item-img-wrapper"> | |
| <Image src={Comments} alt="comments" /> | |
| </div> | |
| <span> | |
| <strong>Discord chat</strong> | |
| Chat with maintainers and the community | |
| </span> | |
| </a> | |
| </div> | |
| <div className="tip-wrapper"> | |
| <span className="tip">Tip</span>Edit the Markdown in <code>stories/Introduction.mdx</code> | |
| </div> | |