Saltar al contenido
Meeko
Escribe para buscar en las guías y en la referencia de la API. Ábrela desde cualquier página con / o Ctrl K; muévete con las flechas y entra con Intro.
Empezar

Contenidos

En esta página

ThemeState

interfaz Desde 1.4.0

Lo que devuelve useTheme: la elección, el tema efectivo y la lista de temas.

ts
import type { ThemeState } from "@meekojs/meeko/framework";

Código fuente src/shared/theme.ts:150

Declaración #

ts
interface ThemeState<Name extends string = ThemeName, Choice extends string = ThemeChoice> {
	readonly theme: Signal<Choice>
	readonly resolved: ReadonlySignal<Name>
	readonly themes: readonly Name[]
	set(theme: Choice): void
}

Parámetros de tipo #

Name extends string = ThemeName

Nombres de los temas.

Choice extends string = ThemeChoice

Elecciones posibles: los temas y, si está activo, "system".

Ejemplo #

ts
import type { ThemeState } from "@meekojs/meeko/framework";

function next(state: ThemeState): void {
  state.set(state.resolved.value === "dark" ? "light" : "dark");
}

Miembros #

theme #

propiedad sólo lectura

readonly theme: Signal<Choice>

Elección actual, "system" incluido. Es editable (sirve para model="theme"): asignarla equivale a ThemeState.set. En el servidor es de sólo lectura.

resolved #

propiedad sólo lectura

readonly resolved: ReadonlySignal<Name>

Tema efectivo: la elección o, en "system", el tema de prefers-color-scheme. En SSR, si el servidor no conoce la preferencia (sin client hint), vale el tema claro de system.

themes #

propiedad sólo lectura

readonly themes: readonly Name[]

Temas de la configuración, sin "system".

set #

método

set(theme: Choice): void

Cambia la elección: actualiza <html>, color-scheme, la cookie y localStorage.

Véase también #

¿Te sirvió esta página?

Añadir un comentario

Se envía al elegir «Sí» o «No». Solo se guardan la página, tu respuesta y el comentario: ni cookies ni datos tuyos.

0 de 2000 caracteres

Editar en GitHub: packages/meeko/src/shared/theme.ts