All Projects → jeanverster → chakra-ui-steps

jeanverster / chakra-ui-steps

Licence: other
Steps component designed to work seamlessly with Chakra UI

Programming Languages

typescript
32286 projects
CSS
56736 projects

Projects that are alternatives of or similar to chakra-ui-steps

onlysetups
OnlyFans, but for pictures of desk setups.
Stars: ✭ 82 (-75.95%)
Mutual labels:  chakra-ui
staticstep
Provides truly zero-cost alternatives to Iterator::step_by for both incrementing and decrementing any type that satisfies RangeBounds<T: Copy + Default + Step>.
Stars: ✭ 13 (-96.19%)
Mutual labels:  steps
recipes-next-hasura
A lightweight app to explore and create recipes - Built with Next.js, Hasura, and Chakra-UI
Stars: ✭ 30 (-91.2%)
Mutual labels:  chakra-ui
pill-pity
🎨 Hero Patterns - a collection of repeatable SVG background patterns for Chakra UI
Stars: ✭ 21 (-93.84%)
Mutual labels:  chakra-ui
forms-wizard
🎩 Easy to use step-by-step form for Nette Framework
Stars: ✭ 14 (-95.89%)
Mutual labels:  steps
StackFlowView
Enforce stack behaviour for custom UI flow.
Stars: ✭ 35 (-89.74%)
Mutual labels:  steps
chakra-dayzed-datepicker
Chakra UI + Dayzed = datepicker
Stars: ✭ 44 (-87.1%)
Mutual labels:  chakra-ui
Bulles
Simple chat application where you can chat via channels.
Stars: ✭ 15 (-95.6%)
Mutual labels:  chakra-ui
rn-fitness-tracker
React Native module to interact with Google Fit and Apple HealthKit.
Stars: ✭ 58 (-82.99%)
Mutual labels:  steps
vnstat-client
GUI Client for vnStat Network Monitor for Linux or GNU/Linux
Stars: ✭ 122 (-64.22%)
Mutual labels:  chakra-ui
boilerplate
Fullstack boilerplate using Typescript, React, Node & GraphQL
Stars: ✭ 738 (+116.42%)
Mutual labels:  chakra-ui
Molder
BDD steps libraries for test automation databases, web services, and WebUI
Stars: ✭ 16 (-95.31%)
Mutual labels:  steps
vue-qs-form
Vue quick step form, Vue快速问卷表单
Stars: ✭ 16 (-95.31%)
Mutual labels:  steps
tweet-to-image
Convert tweets to beautiful images
Stars: ✭ 134 (-60.7%)
Mutual labels:  chakra-ui
loopple
Drag & drop dashboard builder
Stars: ✭ 180 (-47.21%)
Mutual labels:  chakra-ui
Void
Fast and elegant file hosting service.
Stars: ✭ 48 (-85.92%)
Mutual labels:  chakra-ui
vue-step
基于Vue.js的移动端步骤导航组件 Mobile Step Navigation Component Based On Vue.js
Stars: ✭ 21 (-93.84%)
Mutual labels:  steps
members
Managing People (Members), CRUD with Dashboard
Stars: ✭ 36 (-89.44%)
Mutual labels:  chakra-ui
nextarter-chakra
battery packed template / boilerplate to initialize Next.js app with Chakra UI & Typescript setup ✨
Stars: ✭ 616 (+80.65%)
Mutual labels:  chakra-ui
react-blog
Medium wanna be project.
Stars: ✭ 26 (-92.38%)
Mutual labels:  chakra-ui

chakra-ui-steps

Steps component designed to work seamlessly with Chakra UI. An interactive demo along with code examples can be viewed here.

MIT License npm - chakra-ui-steps bundle size - chakra-ui-steps bundle size - chakra-ui-steps Total Downloads - chakra-ui-steps

screenshot

Features

  • Multiple orientations
  • Easily render step content
  • Custom icons
  • Size variants

Installation

Yarn:

yarn add chakra-ui-steps

NPM:

npm i chakra-ui-steps

Usage

NOTE: This v1.4.0 of this component requires @chakra-ui/react >= v1.6.7 to work correctly. You can follow the installation instructions here. If you aren't able to update your chakra version you can still use v1.3.0

In order to get started you will need to extend the default Chakra theme with the provided StepsTheme object, like so:

import { ChakraProvider, extendTheme } from "@chakra-ui/react";
import { StepsTheme as Steps } from "chakra-ui-steps";

const theme = extendTheme({
  components: {
    Steps,
  },
});

export const App = () => {
  return (
    <ChakraProvider theme={theme}>
      <YourApp />
    </ChakraProvider>
  );
};

Once that's done you should be good to go!

Basic Example

import { Step, Steps, useSteps } from "chakra-ui-steps";

const content = (
  <Flex py={4}>
    <LoremIpsum p={1} />
  </Flex>
);

const steps = [
  { label: "Step 1", content },
  { label: "Step 2", content },
  { label: "Step 3", content },
];

export const StepsExample = () => {
  const { nextStep, prevStep, setStep, reset, activeStep } = useSteps({
    initialStep: 0,
  });

  return (
    <Flex flexDir="column" width="100%">
      <Steps activeStep={activeStep}>
        {steps.map(({ label, content }) => (
          <Step label={label} key={label}>
            {content}
          </Step>
        ))}
      </Steps>
      {activeStep === steps.length ? (
        <Flex p={4}>
          <Button mx="auto" size="sm" onClick={reset}>
            Reset
          </Button>
        </Flex>
      ) : (
        <Flex width="100%" justify="flex-end">
          <Button
            isDisabled={activeStep === 0}
            mr={4}
            onClick={prevStep}
            size="sm"
            variant="ghost"
          >
            Prev
          </Button>
          <Button size="sm" onClick={nextStep}>
            {activeStep === steps.length - 1 ? "Finish" : "Next"}
          </Button>
        </Flex>
      )}
    </Flex>
  );
};

Upgrade guide

If you are upgrading to v2 of this component you will need to make the following changes:

  • StepsStyleConfig has been renamed to StepsTheme - so you will need to update the reference to this in your theme config:
- import { StepsStyleConfig as Steps } from 'chakra-ui-steps';
+ import { StepsTheme as Steps } from 'chakra-ui-steps';

The rest of the API remains the same.

Custom Styles

If you would like to customize the appearance of the Steps component you can do so using the multi part component styling approach as described here. The parts available for styling are:

description;
icon;
iconLabel;
label;
labelContainer;
step;
stepContainer;
stepIconContainer;
steps;

The default styles for each part can be found here. Below is an example of how you might change the stroke width of the icons:

import { StepsTheme } from "chakra-ui-steps";

const CustomSteps = {
  ...StepsTheme,
  baseStyle: (props) => {
    return {
      ...StepsTheme.baseStyle(props),
      icon: {
        ...StepsTheme.baseStyle(props).icon,
        // your custom styles here
        strokeWidth: "1px",
      },
    };
  },
};

const theme = extendTheme({
  components: {
    Steps: CustomSteps,
  },
});

Props

Note: Both the Step and Steps component extend the Chakra UI Box component so they accept all the default styling props.

Steps

Prop Type Required Description Default
activeStep number yes Currently active step 0
colorScheme string no Sets the color accent of the Steps component show green
orientation string no Sets the orientation of the Steps component horizontal
responsive boolean no Sets whether the component auto switches to vertical orientation on mobile true
checkIcon React.ComponentType no Allows you to provide a custom check icon undefined
onClickStep () => void no If defined, allows you to click on the step icons undefined
state 'loading' | 'error' no Let's you set the state to error or loading undefined

Step

Prop Type Required Description Default
label string no Sets the title of the step ''
description string no Provides extra info about the step ''
icon React.ComponentType no Custom icon to overwrite the default numerical indicator of the step undefined
isCompletedStep boolean no Individually control each step state, defaults to active step undefined
isKeepError boolean no Individually control if each step should keep showing the error state undefined
checkIcon React.ComponentType no Allows you to provide a custom check icon that will override the one provided to Steps undefined
state 'loading' | 'error' no Let's you set the state in a specific Step, if defined it will override the one provided to Steps undefined
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].