Skip to content

Theme & Layout Composables

useBaklavaTheme

useBaklavaTheme · import { useBaklavaTheme } from "@baklavue/composables"

Overwrite Baklava design system colors by injecting CSS variables.

typescript
const { applyTheme } = useBaklavaTheme();

// Vue preset
applyTheme({ preset: "vue" });

// Custom preset (CSS variable map)
applyTheme({
  preset: {
    "--bl-color-primary": "#ea4c89",
    "--bl-color-primary-highlight": "#d6427a",
  },
});

// Custom colors (shorthand)
applyTheme({
  colors: { primary: "#41B883", primaryHighlight: "#3aa876" },
});

ApplyThemeOptions:

KeyTypeDescription
preset"vue" | "default" | BaklavaThemePresetRecordBuilt-in or custom preset
colorsPartial<BaklavaThemeColors>Override specific tokens

BaklavaThemeColors: primary, primaryHighlight, primaryContrast, success, successHighlight, successContrast, danger, warning, info, neutralDarkest, neutralDarker, neutralDark, neutralLight, neutralLighter, neutralLightest, neutralFull

useColorScheme

useColorScheme · import { useColorScheme } from "@baklavue/composables"

Light/dark/system color scheme with persistence. Supports prefers-color-scheme, optional attribute on document, and localStorage.

typescript
const { scheme, isDark, setScheme } = useColorScheme();
setScheme("dark");

Options: storageKey, attribute, selector, defaultScheme

useThemePreset

useThemePreset · import { useThemePreset } from "@baklavue/composables"

Persist and apply Baklava theme preset across sessions. Combines useBaklavaTheme and useLocalStorage.

typescript
const { preset, setPreset, applyTheme } = useThemePreset();
setPreset("vue");

Options: storageKey, defaultPreset

usePagination

usePagination · import { usePagination } from "@baklavue/composables"

Pagination state for BvPagination and BvTable.

typescript
const {
  currentPage,
  pageSize,
  totalItems,
  totalPages,
  setPage,
  setPageSize,
  slice,
} = usePagination({ totalItems: 100, pageSize: 10 });