New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

react-theme-switch-animation

Package Overview
Dependencies
Maintainers
0
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-theme-switch-animation

React Theme Switch Animation for ReactJS, NextJS App Router

  • 0.2.0
  • latest
  • npm
  • Socket score

Version published
Maintainers
0
Created
Source

React Theme Switch Animation Hook

This package provides a hook for toggling dark mode in React applications with a smooth animation effect in TailwindCSS.

Live code demo | Hire me here

🎥 Demo

📝 Notes

🚀 Features

  • Toggles dark mode with an animation effect.
  • Smooth animations for theme switching.
  • Uses React Hooks for state management.
  • Supports TypeScript for enhanced development experience.
  • Uses localStorage to persist the dark mode state across sessions.
  • Provides a React ref that can be attached to any component to trigger the mode change.

📦 Installation

Install the package using npm or YARN:

npm install react-theme-switch-animation

or

yarn add react-theme-switch-animation

📚 Usage

Here’s how to use the useModeAnimation hook in your React component:

'use client'

import React from 'react'
import { useModeAnimation } from 'react-theme-switch-animation'

const MyComponent = () => {
  const { ref, toggleSwitchTheme, isDarkMode } = useModeAnimation()

  return (
    <button ref={ref} onClick={toggleSwitchTheme}>
      Toggle Dark Mode (Currently {isDarkMode ? 'Dark' : 'Light'} Mode)
    </button>
  )
}

export default MyComponent

📚 API

useModeAnimation accepts an optional props object with the following properties:

PropertyTypeDefaultDescription
durationnumber750Duration of the animation in milliseconds.
easingstring"ease-in-out"CSS easing type for the animation.
pseudoElementstring"::view-transition-new(root)"Pseudo-element used for the animation.
globalClassNamestring"dark"Class name to apply to the root element.
animationTypeThemeAnimationTypeThemeAnimationType.CIRCLEType of animation effect (CIRCLE or BLUR_CIRCLE)
blurAmountnumber2Blur intensity for blur circle animation.
styleIdstring"theme-switch-style"ID for the style element (blur circle animation).
isDarkModebooleanfalseInitial dark mode state.
onDarkModeChange(isDark: boolean) => voidundefinedCallback function to handle dark mode change.

Animation Types

The hook supports two types of animations:

  • ThemeAnimationType.CIRCLE: A clean circle expansion animation (default)
  • ThemeAnimationType.BLUR_CIRCLE: A circle expansion with blur effect on the edges

Example usage with blur circle animation:

'use client'

import React from 'react'
import { ThemeAnimationType, useModeAnimation } from 'react-theme-switch-animation'

const MyComponent = () => {
  const { ref, toggleSwitchTheme, isDarkMode } = useModeAnimation({
    animationType: ThemeAnimationType.BLUR_CIRCLE,
    blurAmount: 4, // Optional: adjust blur intensity
    duration: 1000, // Optional: adjust animation duration
  })

  return (
    <button ref={ref} onClick={toggleSwitchTheme}>
      Toggle Dark Mode (Currently {isDarkMode ? 'Dark' : 'Light'} Mode)
    </button>
  )
}

export default MyComponent

Returns an object containing:

  • ref: React ref for attaching to the component that will trigger the dark mode toggle.
  • toggleSwitchTheme: Function to toggle dark mode.
  • isDarkMode: Current state of dark mode (true for dark, false for light).

📝 Requirements

  • React 16.8 or later (for Hooks support).
  • TypeScript for compiling the package during installation.

🤝 Contributing

Contributions are welcome! Please open an issue or submit a pull request with your suggested changes.

📜 License

MIT

Keywords

FAQs

Package last updated on 03 Feb 2025

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc