
Product
Announcing Socket Fix 2.0
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
@egstad/detect-theme
Advanced tools
A micro ES6 module (~0.5KB) for detecting a users preferred-color-scheme and watching for changes.
A micro ES6 module (~0.5KB) for detecting a users
preferred-color-scheme
and watching for changes.
npm install @egstad/detect-theme
import theme from '@egstad/detect-theme'
// watch for `colorSchemeUpdated` events
window.addEventListener('colorSchemeUpdated', (e) => {
switch (e.detail.theme) {
case 'dark':
// dark theme code here...
break;
case 'light':
// light theme code here...
break;
default:
// user has no preference
break;
}
})
// 1. fetch preferred theme
// 2. dispatch result via 'colorSchemeUpdated'
// 3. watch for changes
theme.watch()
The watch()
method is more than likely all you'll need. Here's a list of what each method in the module does.
// 1. fetch preferred theme
// 2. dispatch result via 'colorSchemeUpdated'
theme.get()
// 1. runs `get()`
// 2. adds `colorSchemeUpdated` event listener to window
theme.watch()
// removes `colorSchemeUpdated` event listener from window
theme.destroy()
Here is a screencap demonstrating the realtime updates on Mac OS (System Preferences > General > Appearance).
colorSchemeUpdated
window.addEventListener('colorSchemeUpdated', (e) => {
switch (e.detail.theme) {
case 'dark':
// dark theme
root.style.setProperty('--background', 'black');
root.style.setProperty('--foreground', 'white');
break;
case 'light':
// light theme
root.style.setProperty('--background', 'white');
root.style.setProperty('--foreground', 'black');
break;
default:
// user has no preference
root.style.setProperty('--background', '#D11D05');
root.style.setProperty('--foreground', '#D1E5E1');
break;
}
})
FAQs
A micro ES6 module (~0.5KB) for detecting a users preferred-color-scheme and watching for changes.
The npm package @egstad/detect-theme receives a total of 2 weekly downloads. As such, @egstad/detect-theme popularity was classified as not popular.
We found that @egstad/detect-theme 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.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.
Product
Socket’s new Tier 1 Reachability filters out up to 80% of irrelevant CVEs, so security teams can focus on the vulnerabilities that matter.