@wireapp/react-ui-kit
v9.71.0
Published
This repository is part of the source code of Wire. You can find more information at [wire.com](https://wire.com) or by contacting [email protected].
Downloads
9,076
Maintainers
Keywords
Readme
Wire
This repository is part of the source code of Wire. You can find more information at wire.com or by contacting [email protected].
You can find the published source code at github.com/wireapp.
For licensing information, see the attached LICENSE file and the list of third-party licenses at wire.com/legal/licenses/.
React UI Kit
Installation
yarnStart Storybook
yarn startCreating New Components
When creating a new component, follow these guidelines:
Choose the Right Category
- Place your component in the appropriate category folder under
src/:DataDisplay/: For data visualization components (tables, lists)Identity/: Design system, theme, colors, etc.Inputs/: For form controls and input elementsLayout/: For structural componentsNavigation/: For navigation-related componentsSurface/: For containers, cards, modals, and overlaysTypography/: For text-related componentsutils/: For utility components
- Place your component in the appropriate category folder under
Component Structure Create a new folder for your component with the following files:
Category/ └── ComponentName/ ├── ComponentName.tsx # Main component file ├── ComponentName.stories.tsx # Storybook stories └── index.ts # Export fileComponent File (ComponentName.tsx)
- Use TypeScript
- Include proper type definitions
- Add JSDoc comments for documentation
- Follow the existing component patterns
Stories File (ComponentName.stories.tsx)
- Create stories for all component variants
- Include proper documentation
- Add controls for interactive props
- Follow the existing story patterns
Index File (index.ts)
- Export the component
- Export any types or utilities specific to the component
Example:
// Button.tsx
export interface ButtonProps {
variant: 'primary' | 'secondary';
// ... other props
}
export const Button = ({variant, ...props}: ButtonProps) => {
// Component implementation
};
// Button.stories.tsx
export default {
title: 'Inputs/Button',
component: Button,
// ... story configuration
};
// index.ts
export * from './Button';Remember to:
- Follow the existing naming conventions
- Add proper TypeScript types
- Include comprehensive stories
- Document your component thoroughly
- Test your component thoroughly
