From 5be0b5fd9e4abb2105eba6fe1c627af30a203943 Mon Sep 17 00:00:00 2001 From: John Leider Date: Wed, 4 Mar 2026 13:12:13 -0600 Subject: [PATCH 01/11] feat(Theme): add scoped theme provider component Renders a div (configurable via Atom's `as` prop) with `data-theme` attribute for CSS variable scoping. Provides derived ThemeContext to descendants, overriding the active theme selection while reusing the parent's registered themes. --- packages/0/src/components/Theme/Theme.vue | 92 +++++++++++++++++++++++ packages/0/src/components/Theme/index.ts | 21 ++++++ packages/0/src/components/index.ts | 1 + 3 files changed, 114 insertions(+) create mode 100644 packages/0/src/components/Theme/Theme.vue create mode 100644 packages/0/src/components/Theme/index.ts diff --git a/packages/0/src/components/Theme/Theme.vue b/packages/0/src/components/Theme/Theme.vue new file mode 100644 index 000000000..aedcbb8b6 --- /dev/null +++ b/packages/0/src/components/Theme/Theme.vue @@ -0,0 +1,92 @@ +/** + * @module Theme + * + * @remarks + * Scoped theme provider component. + */ + + + + + + diff --git a/packages/0/src/components/Theme/index.ts b/packages/0/src/components/Theme/index.ts new file mode 100644 index 000000000..a85448732 --- /dev/null +++ b/packages/0/src/components/Theme/index.ts @@ -0,0 +1,21 @@ +export type { ThemeProps, ThemeSlotProps } from './Theme.vue' + +/** + * Scoped theme provider component. + * + * @see https://0.vuetifyjs.com/components/providers/theme + * + * @example + * ```vue + * + * + * + * ``` + */ +export { default as Theme } from './Theme.vue' diff --git a/packages/0/src/components/index.ts b/packages/0/src/components/index.ts index d20c40eb3..cda1ee1c4 100644 --- a/packages/0/src/components/index.ts +++ b/packages/0/src/components/index.ts @@ -14,3 +14,4 @@ export * from './Switch' export * from './Single' export * from './Step' export * from './Tabs' +export * from './Theme' From ab8c90783fc454d0dfe881ce24adc8c19eeabc37 Mon Sep 17 00:00:00 2001 From: John Leider Date: Wed, 4 Mar 2026 13:18:01 -0600 Subject: [PATCH 02/11] docs(DocsExample): add per-example theme override picker Each example now has a theme picker button in the preview area that lets users override the theme for that specific example. Uses the new Theme component to scope CSS variables and context to the preview. --- apps/docs/src/components/docs/DocsExample.vue | 69 ++++++++++++++++++- 1 file changed, 66 insertions(+), 3 deletions(-) diff --git a/apps/docs/src/components/docs/DocsExample.vue b/apps/docs/src/components/docs/DocsExample.vue index 3e83ee489..4dd018e0a 100644 --- a/apps/docs/src/components/docs/DocsExample.vue +++ b/apps/docs/src/components/docs/DocsExample.vue @@ -1,6 +1,6 @@