New: Introducing PHP and Composer Support.Read the Announcement
Socket
Book a DemoInstallSign in
Socket

chakra-ui-steps

Package Overview
Dependencies
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

chakra-ui-steps

Steps component designed to work seamlessly with Chakra UI

Source
npmnpm
Version
2.0.1
Version published
Weekly downloads
21K
-22.66%
Maintainers
1
Weekly downloads
 
Created
Source

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 variants
  • 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

PropTypeRequiredDescriptionDefault
activeStepnumberyesCurrently active step0
colorSchemestringnoSets the color accent of the Steps component showgreen
orientationstringnoSets the orientation of the Steps componenthorizontal
responsivebooleannoSets whether the component auto switches to vertical orientation on mobiletrue
checkIconReact.ComponentTypenoAllows you to provide a custom check iconundefined
onClickStep() => voidnoIf defined, allows you to click on the step iconsundefined
trackColorstringnoSpecify a custom color for the trackundefined

Step

PropTypeRequiredDescriptionDefault
labelstringnoSets the title of the step''
descriptionstringnoProvides extra info about the step''
iconReact.ComponentTypenoCustom icon to overwrite the default numerical indicator of the stepundefined
isCompletedStepbooleannoIndividually control each step state, defaults to active stepundefined

Keywords

steps

FAQs

Package last updated on 09 Jan 2023

Did you know?

Socket

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.

Install

Related posts