1.0.8 • Published 1 year ago

animated-toggle-button v1.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

This is a fork of react-toggle-dark-mode fixing installation warning issues

Interactive sun and moon transition

Installation

npm i animated-toggle-button

or with Yarn:

yarn add animated-toggle-button

Usage

import { DarkModeSwitch } from 'animated-toggle-button';

const App = () => {
  const [isDarkMode, setDarkMode] = React.useState(false);

  const toggleDarkMode = (checked: boolean) => {
    setDarkMode(checked);
  };

  return (
    <DarkModeSwitch
      style={{ marginBottom: '2rem' }}
      checked={isDarkMode}
      onChange={toggleDarkMode}
      size={120}
    />
  );
};

API

DarkModeSwitch

Props

NameTypeDefault ValueDescription
onChange(checked: boolean) => voidEvent that triggers when icon is clicked.
checkedbooleanfalseCurrent icon state.
styleObjectCSS properties object.
sizenumber24SVG size.
animationPropertiesObjectdefaultProperties (see below)Override default animation properties.
moonColorstringwhiteColor of the moon.
sunColorstringblackColor of the sun.

Default Animation Properties

const defaultProperties = {
  dark: {
    circle: {
      r: 9,
    },
    mask: {
      cx: '50%',
      cy: '23%',
    },
    svg: {
      transform: 'rotate(40deg)',
    },
    lines: {
      opacity: 0,
    },
  },
  light: {
    circle: {
      r: 5,
    },
    mask: {
      cx: '100%',
      cy: '0%',
    },
    svg: {
      transform: 'rotate(90deg)',
    },
    lines: {
      opacity: 1,
    },
  },
  springConfig: { mass: 4, tension: 250, friction: 35 },
};

Show your support

Give a ⭐️ if this project helped you!

Stay in touch