sleekstepper
Version:
A stylish and customizable stepper component for React, styled with **Tailwind CSS**. This component allows you to visually track steps in a process, such as order tracking or multi-step forms, with sleek progress indicators and themeable customization.
138 lines (100 loc) • 4.61 kB
Markdown
# SleekStepper
A stylish and customizable stepper component for React, styled with **Tailwind CSS**. This component allows you to visually track steps in a process, such as order tracking or multi-step forms, with sleek progress indicators and themeable customization.
## Features
- **Tailwind CSS Styling:** Fully styled with Tailwind CSS for easy and responsive customization.
- **Customizable Steps:** Provide an array of steps to track, with each step dynamically rendered.
- **Dynamic Step Color:** Change the color of each step's circle and progress line based on the current step.
- **Customizable Theme:** Supports a `theme` prop to define the color of the stepper's elements (e.g., step circles, progress lines).
- **Responsive and Flexible:** Works well on different screen sizes and layouts.
- **Simple Integration:** Easy to integrate into any React project with minimal setup.
## Installation
To install the `SleekStepper` component, run the following command in your React project:
```bash
npm install sleekstepper
```
or
```bash
yarn add sleekstepper
```
Make sure you have **Tailwind CSS** set up in your project. If you haven't set it up yet, follow the [Tailwind CSS installation guide](https://tailwindcss.com/docs/installation).
## Usage
1. **Basic Setup**
Import the `SleekStepper` component into your React component and pass the required props:
```jsx
import React, { useState } from "react";
import SleekStepper from "sleek-stepper"; // Adjust the import path if needed
const MultiStepForm = () => {
const [currStep, setCurrStep] = useState(0);
const steps = ['Step 1: Info', 'Step 2: Address', 'Step 3: Review'];
return (
<div>
<SleekStepper
steps={steps}
currStep={currStep}
className="mb-4"
theme="bg-blue-500" // Tailwind color for the theme
/>
<button onClick={() => setCurrStep(currStep + 1)}>Next Step</button>
</div>
);
};
export default MultiStepForm;
```
2. **Customization Options**
The `SleekStepper` component allows the following props for customization:
- `steps`: **Array** – An array of strings representing each step.
- `currStep`: **Number** – The current active step (0-based index).
- `className`: **String** – Optional. Additional CSS classes for custom styling.
- `theme`: **String** – Optional. Customizes the color of the stepper's elements (circle and line). Pass a Tailwind color class like `bg-blue-500`, `bg-green-500`, etc.
## Props
- `steps`: **Array** (Required) – An array of strings representing the labels for each step in the process.
- `currStep`: **Number** (Required) – The current active step (0-based index).
- `className`: **String** (Optional) – Additional CSS class to customize the layout and styling of the stepper container.
- `theme`: **String** (Optional) – A color theme for the stepper's step circles and progress lines. Pass a Tailwind class for the color (e.g., `bg-blue-500`, `bg-green-500`).
## Example
```jsx
import React, { useState } from "react";
import SleekStepper from "sleek-stepper"; // Adjust path if necessary
const OrderTracking = () => {
const [currStep, setCurrStep] = useState(0);
const steps = ['Order Received', 'Processing', 'Shipped', 'Delivered'];
return (
<div className="max-w-lg mx-auto">
<SleekStepper
steps={steps}
currStep={currStep}
className="my-4"
theme="bg-green-500"
/>
<button onClick={() => setCurrStep(currStep + 1)}>Next Step</button>
</div>
);
};
export default OrderTracking;
```
## Customizing the Stepper
You can customize the color theme of the stepper by passing a `theme` prop with Tailwind CSS classes, like so:
```jsx
<SleekStepper
steps={['Step 1', 'Step 2', 'Step 3']}
currStep={currStep}
onStepChange={setCurrStep}
theme="bg-indigo-500" // Customize with any Tailwind color class
className="my-4"
/>
```
### Custom Styling
You can also use the `className` prop to apply additional Tailwind classes to customize the layout or appearance further.
```jsx
<SleekStepper
steps={steps}
currStep={currStep}
onStepChange={setCurrStep}
theme="bg-blue-600"
className="mb-6 border p-4"
/>
```
## Accessibility
The `SleekStepper` component is designed with accessibility in mind. Users can navigate through the steps with keyboard navigation, making it easy to interact with the stepper via the "Tab" and "Enter" keys.
## License
This package is open-source and available under the [MIT License](LICENSE).