Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
@assortment/darkmodejs
Advanced tools
Utility package for managing Dark Mode on the web.
Dark Mode is a feature in modern Operating Systems which allows you to change your default UI from a light to dark theme. On the web we can take advantage of this to control the theme of our website.
Utilises the matchMedia
API and its listeners, in combination with the prefers-color-scheme
media query, in order to fire functions whenever you're in Dark Mode.
Requires an Operating System which supports Dark Mode:
Also requires support for the prefers-color-scheme
media query. A complete list of supported browsers can be found on caniuse.
$ npm install @assortment/darkmodejs
import darkmode from '@assortment/darkmodejs';
const config = { onChange: (activeTheme, themes) => {} };
darkmode(config);
If you need ES5 support, you can require
the package instead.
const darkmode = require('@assortment/darkmodejs');
An example could be logging to console when a theme is active:
import darkmode from '@assortment/darkmodejs';
const onChange = (activeTheme, themes) => {
switch (activeTheme) {
case themes.DARK:
console.log('darkmode enabled');
break;
case themes.LIGHT:
console.log('lightmode enabled');
break;
case themes.NO_PREF:
console.log('no preference enabled');
break;
case themes.NO_SUPP:
console.log('no support sorry');
break;
}
};
darkmode({ onChange });
darkmodejs
accepts a config
object, which in turn accepts a single function of onChange
.
onChange(activeTheme, themes)
Type: Function
. Required: No
.
This function is called when darkmodejs
is executed to check:
prefers-color-scheme
;dark
, light
or no-preference
theme is active.The function is also bound to MediaQueryList.addListener to listen for changes.
activeTheme
Type: String
. Required: No
.
Returns the current active theme.
themes
Type: Object{String}
. Required: No
.
Returns all available theme states:
{
DARK: 'dark',
LIGHT: 'light',
NO_PREF: 'no-preference',
NO_SUPP: 'no-support'
}
MIT © Luke Whitehouse
FAQs
Utility package for managing Dark Mode on the web
We found that @assortment/darkmodejs demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.