Socket
Socket
Sign inDemoInstall

use-state-in-custom-properties

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

use-state-in-custom-properties

Makes your react state accessible through CSS properties.


Version published
Weekly downloads
9
Maintainers
1
Weekly downloads
 
Created
Source

A hook for injecting your react state into CSS variables

This hook was inspired by this article by Chris Coyier.. This hook outputs a wrapper that passes state into a scoped CSS variable.

Usage

The useStateInCustomProperties hook takes 2 arguments:

  1. A class name for the wrapping div. (String)
  2. An object containing the state names and values you'd like piped in as CSS variables. (Object)
import useStateInCustomProperties from "use-state-in-custom-properties";

const Example = () => {
  const [activeColor, setActiveColor] = useState("red");
  const CustomPropertiesWrapper = useStateInCustomProperties("box", { activeColor });

  return (
    <CustomPropertiesWrapper>
      <h1>Active Color: {activeColor}</h1>
	<button onClick={() => setActiveColor("red")}>
		Change to red
	</button>
	<button onClick={() => setActiveColor("blue")}>
		Change to blue
	</button>
    <CustomPropertiesWrapper>
  )
}

And somewhere in a CSS file.

.box {
  background-color: var(--activeColor)
}

In the example above the background color will change as the relevant buttons are clicked. This is entirely dynamic and will update as your app updates. You can pass as many properties as you like into the hook.

Keywords

FAQs

Package last updated on 14 Jan 2021

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