Skip to content

useTheme

Access the Grundtone theme context from any component within a ThemeProvider.

Usage

vue
<script setup>
import { useTheme } from '@grundtone/vue';

const { theme, isDark, toggleMode } = useTheme();
</script>

<template>
  <div :style="{ color: theme.colors.text }">
    <button @click="toggleMode">
      {{ isDark ? 'Light mode' : 'Dark mode' }}
    </button>
  </div>
</template>

In Nuxt, useTheme is auto-imported.

Return value

PropertyTypeDescription
themeReadonly<Ref<Theme>>Current resolved theme object
modeReadonly<Ref<ThemeMode>>Current mode: 'light', 'dark', or 'auto'
isDarkReadonly<Ref<boolean>>Whether dark mode is active
isLightReadonly<Ref<boolean>>Whether light mode is active
setMode(mode: ThemeMode) => voidSet the theme mode
toggleMode() => voidToggle between light and dark

Requirements

Must be used inside a component tree with a Grundtone ThemeProvider. Throws an error if no provider is found.