Security News
JSR Working Group Kicks Off with Ambitious Roadmap and Plans for Open Governance
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
@storybook/react
Advanced tools
@storybook/react is a development environment for UI components. It allows developers to create components independently and showcase components interactively in an isolated development environment. Storybook helps in building UI components in isolation from the business logic and context of the app, which makes it easier to develop hard-to-reach states and edge cases.
Component Story Format (CSF)
CSF is an ES Module-based standard for defining component examples. This format is simple and portable. Developers can write their component stories in plain JavaScript objects.
import React from 'react';
import { Button } from './Button';
export default {
title: 'Example/Button',
component: Button,
};
const Template = (args) => <Button {...args} />;
export const Primary = Template.bind({});
Primary.args = {
primary: true,
label: 'Button',
};
Addons
Addons are essentially plugins that extend Storybook's core functionalities. With addons, developers can add features like knobs to dynamically change props, accessibility checks, and story source code display.
import { withKnobs, text, boolean, number } from '@storybook/addon-knobs';
export default {
title: 'Example/Button',
decorators: [withKnobs],
};
export const DynamicVariables = () => {
const name = text('Name', 'Aragon');
const age = number('Age', 30);
const content = `I am ${name} and I'm ${age} years old.`;
return <div>{content}</div>;
};
Controls
Controls give the ability to interact with a component's arguments dynamically without needing to code. It's a more robust version of the addon-knobs but built into Storybook by default.
export default {
title: 'Example/Button',
component: Button,
argTypes: {
backgroundColor: { control: 'color' },
size: {
control: { type: 'select', options: ['small', 'medium', 'large'] },
},
},
};
export const Primary = (args) => <Button {...args} />;
Primary.args = {
primary: true,
label: 'Button',
};
React Cosmos is a development tool for creating reusable React components. It scans your project for components and enables you to render components with any context or state. Compared to @storybook/react, React Cosmos focuses more on the component's lifecycle and state rather than the component's variations.
Docz leverages MDX files to help you document your components easily. It's more focused on documentation than interactive development. Unlike @storybook/react, Docz provides a more straightforward approach to documenting components using markdown, but it lacks some of the interactive development features that Storybook offers.
FAQs
Storybook React renderer
We found that @storybook/react demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 11 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
Security News
Research
An advanced npm supply chain attack is leveraging Ethereum smart contracts for decentralized, persistent malware control, evading traditional defenses.
Security News
Research
Attackers are impersonating Sindre Sorhus on npm with a fake 'chalk-node' package containing a malicious backdoor to compromise developers' projects.