Current collected state Current
Observed since 20 Oct, 21:49 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
@-ft/mode-next
Next wrapper for theme mode manager
mode-next - Theme mode manager wrapper for NextNext wrapper of dark/light theme mode manager for web
/public/mode.js using @-ft/mode-codegen package.{
"variableName": "__theme_mode",
"persist": {
"type": "cookie",
"key": "THEME"
}
}
/mode.js in src/app/layout.tsx, apply default cookie-stored theme mode to class name/ssrInitialMode and suppress hydration warningimport { ModeContextProvider } from '@-ft/mode-next';
export default function RootLayout({ children }: PropsWithChildren) {
return (
<html
lang="en"
className={cookies().get('THEME')?.value === "dark" ? "dark" : undefined}
suppressHydrationWarning
>
<head>
<script src="/mode.js" />
</head>
<body>
<ModeContextProvider
variableName="__theme_mode"
ssrInitialMode={theme?.value ?? "system"}
>
{children}
</ModeContextProvider>
</body>
</html>
);
}
ModeContext in your app.'use client';
import { ModeContext } from '@-ft/mode-next';
function ModeBar() {
const { mode, setMode } = useContext(ModeContext);
return (
<Bar>
Current theme mode is {mode}.
<Select
onChange={useCallback((mode) => setMode(mode), [setMode])}
>
{['system', 'light', 'dark']}
</Select>
</Bar>
)
}
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
nextEnvironment{
"local_name": "next",
"alias": false,
"peer_metadata": null
} | 13 || 14 | peer |
@-ft/modeEnvironment{
"local_name": "@-ft/mode",
"alias": false,
"peer_metadata": {
"optional": true
}
} | ^0.1.0 | peer |
Source distribution
{
"shasum": "3edbb971953f02d0e9e3a07e94d91e428ccf4fa8",
"tarball": "https://registry.npmjs.org/@-ft/mode-next/-/mode-next-0.1.3.tgz",
"fileCount": 4,
"integrity": "sha512-rrmlLIR8g5ZZArZfJqOGQ5D/g2O1puodS7DxdKMTZ1idQIknbb4j8E2oN2tijnK9rTtKGpJ+h5FEM+CN+tHxYw==",
"signatures": [
{
"sig": "MEUCIHvsgCqkErdeJKrOVBZJ+Ql2nqoxfcWrky2RWXtTl6GrAiEA1PZIQMLvGmLsGw7/3vrxJMg+s+DjmCau4Mr9WgkvMXE=",
"keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"
}
],
"unpackedSize": 3453
}Observed since 20 Oct, 21:49 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:bd8770fc2ced622575b53ab7ec6d9ff0d3c986c9b79f5b73da312a6817563c28