一键导入
app-store
Global Pinia store (useAppStore) for theme and language with cookie persistence. Use when changing theme or language, or touching app/stores/app.ts.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Global Pinia store (useAppStore) for theme and language with cookie persistence. Use when changing theme or language, or touching app/stores/app.ts.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Create/edit blog articles in EN/ES - frontmatter, collections, images, Markdown features. Use when writing content under content/{en,es}/blog/.
Auto-imported global and content components plus layouts (default/blog). Use when using/creating components or working with ContentRenderer.
Project composables - useBlog, usePageSeo, useEnterAnimations, useBlogScroll, useGsapAnimations. Use when consuming blog/SEO/animation logic.
CSS custom properties, utility classes and theme colors. Use when editing styles, working in app/assets/styles/*, writing <style scoped>, or touching colors, spacing or typography.
Static data - contact.ts, projects.ts, sidebar-items.ts. Use when displaying contact/projects info or adding navigation items.
GSAP + ScrollTrigger - animateInOnEnter, getMainScroller, useGsapAnimations. Use when adding enter/scroll animations.
| name | app-store |
| description | Global Pinia store (useAppStore) for theme and language with cookie persistence. Use when changing theme or language, or touching app/stores/app.ts. |
Global app store: theme and language with SSR-safe cookie persistence.
app/stores/app.ts - store definitionconst appStore = useAppStore() // auto-imported by Nuxt
// Types
type ThemeName = 'dark' | 'light'
type LanguageCode = 'en' | 'es'
// Reactive state (backed by useCookie)
appStore.theme // ThemeName - default: 'dark'
appStore.language // LanguageCode - default: 'en'
// Methods
appStore.setTheme('light')
appStore.toggleTheme()
appStore.setLanguage('es')
theme and language use useCookie() - SSR-safe, no hydration mismatchtheme and language, both with sameSite: 'lax'app:mounted hook)// Change theme (Vuetify syncs automatically via watch in plugins/vuetify.ts)
appStore.toggleTheme()
appStore.setTheme('light')
// The plugin also adds/removes the .dark class on <html>
// ALWAYS call setLocale() in addition to setLanguage() to sync i18n
const { setLocale } = useI18n()
const appStore = useAppStore()
appStore.setLanguage('es')
setLocale('es')
vuetify.theme.change() or vuetify.theme.global.name directly from componentslocalStorage for the theme; use the storesetLanguage() (store) and setLocale() (i18n)import { useAppStore } from '~/stores/app' - Nuxt auto-imports it