esbie-component-library
v1.0.23
Published
Welcome to the **Esbie Component Library**! This project is a reusable, customisable component library built with React, TypeScript, and styled-components. It follows atomic design principles and includes components organised into atoms, molecules, organi
Downloads
98
Readme
Esbie Component Library
Welcome to the Esbie Component Library! This project is a reusable, customisable component library built with React, TypeScript, and styled-components. It follows atomic design principles and includes components organised into atoms, molecules, organisms, and templates. The library is bundled using Rollup and tested with Jest and React Testing Library. A sandbox app is also included for developing and testing components.
Table of Contents
Project Structure
This repository uses a monorepo structure with pnpm
workspaces. The main folders include:
src/
: Contains the component library source code.sandbox/
: A development environment to test and preview components.
Component Structure
The component library is organized following atomic design principles:
- Atoms: Basic, reusable elements like
Button
,Icon
, andText
. - Molecules: Combinations of atoms, such as
FormField
orCard
. - Organisms: Groups of molecules, like
Form
orHeader
. - Templates: High-level layouts, such as
BasicLayout
orDashboardLayout
.
Each component folder typically contains:
ComponentName.tsx
: The main component file.ComponentName.test.tsx
: Jest test file.index.ts
: Barrel file for easier imports.
Getting Started
Prerequisites
- Node.js: Ensure Node.js is installed (v14+ recommended).
- pnpm: Install
pnpm
globally if you haven't already:npm install -g pnpm
Installation
- Clone the repository:
git clone https://github.com/your-username/esbie-component-library.git
- Navigate to the project directory:
cd esbie-component-library
- Install dependencies:
pnpm install
Running the Sandbox App
To test components in a live environment, run the sandbox app:
cd sandbox
pnpm run dev --filter sandbox
This will start the Vite dev server at http://localhost:2000 (or another port if configured). Open this address in your browser to preview the components in the sandbox environment.
Scripts
The following commands are available in the project:
pnpm run build
: Builds the component library using Rollup.pnpm run dev --filter sandbox
: Starts the sandbox app for testing components in a live environment.pnpm run test
: Runs tests for all components using Jest.
Testing Components
Components are tested with Jest and React Testing Library. Test files are located alongside each component and follow the .test.tsx naming convention.
To run tests:
pnpm run test
Notes
CSS Reset Recommendation: For consistent styling across browsers, I recommend applying a CSS reset or normalisation in your codebase. This component library does not include a global CSS reset, allowing you to choose the best approach for your project.
Contributing
Contributions are welcome! If you’d like to contribute to this project, please follow these steps:
- Fork the repository.
- Create a new branch (git checkout -b feature/YourFeature).
- Make your changes and commit them (git commit -m 'Add YourFeature').
- Push to your branch (git push origin feature/YourFeature).
- Open a pull request to the main branch.
Please ensure your code follows the existing style, is well-tested, and includes documentation if necessary.
License
This project is licensed under the MIT License. See the LICENSE file for details.