···11// https://vitepress.dev/guide/custom-theme
22-import { h } from 'vue'
33-import type { Theme } from 'vitepress'
44-import DefaultTheme from 'vitepress/theme'
55-import './style.css'
22+import type { Theme } from "vitepress";
33+import DefaultTheme from "vitepress/theme";
44+import { h } from "vue";
55+import "./style.css";
6677export default {
88 extends: DefaultTheme,
99+ // https://vitepress.dev/guide/extending-default-theme#layout-slots
910 Layout: () => {
1010- return h(DefaultTheme.Layout, null, {
1111- // https://vitepress.dev/guide/extending-default-theme#layout-slots
1212- })
1111+ return h(DefaultTheme.Layout, null, {});
1312 },
1414- enhanceApp({ app, router, siteData }) {
1515- // ...
1616- }
1717-} satisfies Theme
1313+ enhanceApp({ app, router, siteData }) {},
1414+} satisfies Theme;
+73-70
docs/.vitepress/theme/style.css
···44 */
5566/**
77- * Colors
88- *
99- * Each colors have exact same color scale system with 3 levels of solid
1010- * colors with different brightness, and 1 soft color.
1111- *
1212- * - `XXX-1`: The most solid color used mainly for colored text. It must
1313- * satisfy the contrast ratio against when used on top of `XXX-soft`.
1414- *
1515- * - `XXX-2`: The color used mainly for hover state of the button.
1616- *
1717- * - `XXX-3`: The color for solid background, such as bg color of the button.
1818- * It must satisfy the contrast ratio with pure white (#ffffff) text on
1919- * top of it.
2020- *
2121- * - `XXX-soft`: The color used for subtle background such as custom container
2222- * or badges. It must satisfy the contrast ratio when putting `XXX-1` colors
2323- * on top of it.
2424- *
2525- * The soft color must be semi transparent alpha channel. This is crucial
2626- * because it allows adding multiple "soft" colors on top of each other
2727- * to create a accent, such as when having inline code block inside
2828- * custom containers.
2929- *
3030- * - `default`: The color used purely for subtle indication without any
3131- * special meanings attached to it such as bg color for menu hover state.
3232- *
3333- * - `brand`: Used for primary brand colors, such as link text, button with
3434- * brand theme, etc.
3535- *
3636- * - `tip`: Used to indicate useful information. The default theme uses the
3737- * brand color for this by default.
3838- *
3939- * - `warning`: Used to indicate warning to the users. Used in custom
4040- * container, badges, etc.
4141- *
4242- * - `danger`: Used to show error, or dangerous message to the users. Used
4343- * in custom container, badges, etc.
4444- * -------------------------------------------------------------------------- */
77+ * Seattle SuperSonics Color Palette
88+ * - Emerald Green (#173F35) - Primary
99+ * - Red (#9E2A2F) - Danger
1010+ * - Yellow (#FFA300) - Secondary/Warning
1111+ * - Bronze (#8B634B) - Accent
1212+ **/
1313+:root {
1414+ /* SuperSonics Emerald Green - Primary Brand */
1515+ --vp-c-sonics-green-1: #2a6b5d;
1616+ --vp-c-sonics-green-2: #1f5248;
1717+ --vp-c-sonics-green-3: #173F35;
1818+ --vp-c-sonics-green-soft: rgba(23, 63, 53, 0.14);
45192020+ /* SuperSonics Yellow - Secondary/Warning */
2121+ --vp-c-sonics-yellow-1: #ffbb33;
2222+ --vp-c-sonics-yellow-2: #ffad1a;
2323+ --vp-c-sonics-yellow-3: #FFA300;
2424+ --vp-c-sonics-yellow-soft: rgba(255, 163, 0, 0.14);
2525+2626+ /* SuperSonics Red - Danger */
2727+ --vp-c-sonics-red-1: #c24348;
2828+ --vp-c-sonics-red-2: #b03338;
2929+ --vp-c-sonics-red-3: #9E2A2F;
3030+ --vp-c-sonics-red-soft: rgba(158, 42, 47, 0.14);
3131+3232+ /* SuperSonics Bronze - Accent */
3333+ --vp-c-sonics-bronze-1: #a3836b;
3434+ --vp-c-sonics-bronze-2: #97735a;
3535+ --vp-c-sonics-bronze-3: #8B634B;
3636+ --vp-c-sonics-bronze-soft: rgba(139, 99, 75, 0.14);
3737+}
3838+3939+/**
4040+ * Dark Theme Colors
4141+ **/
4642:root {
4743 --vp-c-default-1: var(--vp-c-gray-1);
4844 --vp-c-default-2: var(--vp-c-gray-2);
4945 --vp-c-default-3: var(--vp-c-gray-3);
5046 --vp-c-default-soft: var(--vp-c-gray-soft);
51475252- --vp-c-brand-1: var(--vp-c-indigo-1);
5353- --vp-c-brand-2: var(--vp-c-indigo-2);
5454- --vp-c-brand-3: var(--vp-c-indigo-3);
5555- --vp-c-brand-soft: var(--vp-c-indigo-soft);
4848+ /* Use Emerald Green as primary brand color */
4949+ --vp-c-brand-1: var(--vp-c-sonics-green-1);
5050+ --vp-c-brand-2: var(--vp-c-sonics-green-2);
5151+ --vp-c-brand-3: var(--vp-c-sonics-green-3);
5252+ --vp-c-brand-soft: var(--vp-c-sonics-green-soft);
56535757- --vp-c-tip-1: var(--vp-c-brand-1);
5858- --vp-c-tip-2: var(--vp-c-brand-2);
5959- --vp-c-tip-3: var(--vp-c-brand-3);
6060- --vp-c-tip-soft: var(--vp-c-brand-soft);
5454+ /* Tips use Bronze accent */
5555+ --vp-c-tip-1: var(--vp-c-sonics-bronze-1);
5656+ --vp-c-tip-2: var(--vp-c-sonics-bronze-2);
5757+ --vp-c-tip-3: var(--vp-c-sonics-bronze-3);
5858+ --vp-c-tip-soft: var(--vp-c-sonics-bronze-soft);
61596262- --vp-c-warning-1: var(--vp-c-yellow-1);
6363- --vp-c-warning-2: var(--vp-c-yellow-2);
6464- --vp-c-warning-3: var(--vp-c-yellow-3);
6565- --vp-c-warning-soft: var(--vp-c-yellow-soft);
6060+ /* Warnings use Yellow */
6161+ --vp-c-warning-1: var(--vp-c-sonics-yellow-1);
6262+ --vp-c-warning-2: var(--vp-c-sonics-yellow-2);
6363+ --vp-c-warning-3: var(--vp-c-sonics-yellow-3);
6464+ --vp-c-warning-soft: var(--vp-c-sonics-yellow-soft);
66656767- --vp-c-danger-1: var(--vp-c-red-1);
6868- --vp-c-danger-2: var(--vp-c-red-2);
6969- --vp-c-danger-3: var(--vp-c-red-3);
7070- --vp-c-danger-soft: var(--vp-c-red-soft);
6666+ /* Danger uses Red */
6767+ --vp-c-danger-1: var(--vp-c-sonics-red-1);
6868+ --vp-c-danger-2: var(--vp-c-sonics-red-2);
6969+ --vp-c-danger-3: var(--vp-c-sonics-red-3);
7070+ --vp-c-danger-soft: var(--vp-c-sonics-red-soft);
7171+}
7272+7373+.dark {
7474+ /* Enhance dark mode background */
7575+ --vp-c-bg: #0d1117;
7676+ --vp-c-bg-soft: #161b22;
7777+ --vp-c-bg-mute: #1c2128;
7178}
72797380/**
7474- * Component: Button
7575- * -------------------------------------------------------------------------- */
7676-8181+ * Button
8282+ **/
7783:root {
7884 --vp-button-brand-border: transparent;
7985 --vp-button-brand-text: var(--vp-c-white);
···8793}
88948995/**
9090- * Component: Home
9191- * -------------------------------------------------------------------------- */
9292-9696+ * Home
9797+ **/
9398:root {
9499 --vp-home-hero-name-color: transparent;
95100 --vp-home-hero-name-background: -webkit-linear-gradient(
96101 120deg,
9797- #bd34fe 30%,
9898- #41d1ff
102102+ #FFA300 30%,
103103+ #2a6b5d
99104 );
100105101106 --vp-home-hero-image-background-image: linear-gradient(
102107 -45deg,
103103- #bd34fe 50%,
104104- #47caff 50%
108108+ #FFA300 50%,
109109+ #173F35 50%
105110 );
106111 --vp-home-hero-image-filter: blur(44px);
107112}
···119124}
120125121126/**
122122- * Component: Custom Block
123123- * -------------------------------------------------------------------------- */
124124-127127+ * Custom Block
128128+ **/
125129:root {
126130 --vp-custom-block-tip-border: transparent;
127131 --vp-custom-block-tip-text: var(--vp-c-text-1);
···130134}
131135132136/**
133133- * Component: Algolia
134134- * -------------------------------------------------------------------------- */
135135-137137+ * Algolia
138138+ **/
136139.DocSearch {
137140 --docsearch-primary-color: var(--vp-c-brand-1) !important;
138141}
+18
docs/api/binder.md
···11+---
22+version: 1.0
33+updated: 2025-10-18
44+---
55+66+# binder
77+88+Binder system for mounting and managing Volt.js bindings
99+1010+## mount
1111+1212+Mount Volt.js on a root element and its descendants.
1313+Binds all data-x-* attributes to the provided scope.
1414+Returns a cleanup function to unmount and dispose all bindings.
1515+1616+```typescript
1717+export function mount(root: Element, scope: Scope): CleanupFunction
1818+```
+67
docs/api/dom.md
···11+---
22+version: 1.0
33+updated: 2025-10-18
44+---
55+66+# dom
77+88+DOM utility functions
99+1010+## walkDOM
1111+1212+Walk the DOM tree and collect all elements with data-x-* attributes.
1313+Returns elements in document order (parent before children).
1414+1515+```typescript
1616+export function walkDOM(root: Element): Element[]
1717+```
1818+1919+## hasVoltAttribute
2020+2121+Check if an element has any data-x-* attributes.
2222+2323+```typescript
2424+export function hasVoltAttribute(element: Element): boolean
2525+```
2626+2727+## getVoltAttributes
2828+2929+Get all data-x-* attributes from an element.
3030+3131+```typescript
3232+export function getVoltAttributes(element: Element): Map<string, string>
3333+```
3434+3535+## setText
3636+3737+Set the text content of an element safely.
3838+3939+```typescript
4040+export function setText(element: Element, value: unknown): void
4141+```
4242+4343+## setHTML
4444+4545+Set the HTML content of an element safely.
4646+Note: This trusts the input HTML and should only be used with sanitized content.
4747+4848+```typescript
4949+export function setHTML(element: Element, value: string): void
5050+```
5151+5252+## toggleClass
5353+5454+Add or remove a CSS class from an element.
5555+5656+```typescript
5757+export function toggleClass(element: Element, className: string, add: boolean): void
5858+```
5959+6060+## parseClassBinding
6161+6262+Parse a class binding expression.
6363+Supports both string values ("active") and object notation ({active: true}).
6464+6565+```typescript
6666+export function parseClassBinding(value: unknown): Map<string, boolean>
6767+```
+29
docs/api/evaluator.md
···11+---
22+version: 1.0
33+updated: 2025-10-18
44+---
55+66+# evaluator
77+88+Safe expression evaluation of simple expressions without using eval() for bindings
99+1010+## Scope
1111+1212+Safe expression evaluation of simple expressions without using eval() for bindings
1313+1414+```typescript
1515+Record<string, unknown>
1616+```
1717+1818+## evaluate
1919+2020+Evaluate a simple expression against a scope object.
2121+Supports:
2222+- Property access: "count", "user.name", "items.length"
2323+- Simple literals: "true", "false", "null", "undefined"
2424+- Numbers: "42", "3.14"
2525+- Strings: "'hello'", '"world"'
2626+2727+```typescript
2828+export function evaluate(expression: string, scope: Scope): unknown
2929+```
+70
docs/api/signal.md
···11+---
22+version: 1.0
33+updated: 2025-10-18
44+---
55+66+# signal
77+88+A reactive primitive that notifies subscribers when its value changes.
99+1010+## Signal
1111+1212+A reactive primitive that notifies subscribers when its value changes.
1313+1414+## ComputedSignal
1515+1616+A computed signal that derives its value from other signals.
1717+1818+## signal
1919+2020+Creates a new signal with the given initial value.
2121+Signals are reactive primitives that automatically notify subscribers when changed.
2222+2323+```typescript
2424+export function signal<T>(initialValue: T): Signal<T>
2525+```
2626+2727+**Example:**
2828+2929+```typescript
3030+const count = signal(0);
3131+count.subscribe(value => console.log('Count:', value));
3232+count.set(1); // Logs: Count: 1
3333+```
3434+3535+## computed
3636+3737+Creates a computed signal that derives its value from other signals.
3838+The computation function is re-run whenever any of its dependencies change.
3939+4040+```typescript
4141+export function computed<T>( compute: () => T, dependencies: Array<Signal<unknown> | ComputedSignal<unknown>>, ): ComputedSignal<T>
4242+```
4343+4444+**Example:**
4545+4646+```typescript
4747+const count = signal(5);
4848+const doubled = computed(() => count.get() * 2, [count]);
4949+doubled.get(); // 10
5050+count.set(10);
5151+doubled.get(); // 20
5252+```
5353+5454+## effect
5555+5656+Creates a side effect that runs when dependencies change.
5757+Effects run immediately on creation and whenever dependencies update.
5858+5959+```typescript
6060+export function effect( effectFunction: () => void | (() => void), dependencies: Array<Signal<unknown> | ComputedSignal<unknown>>, ): () => void
6161+```
6262+6363+**Example:**
6464+6565+```typescript
6666+const count = signal(0);
6767+const cleanup = effect(() => {
6868+ console.log('Count changed:', count.get());
6969+}, [count]);
7070+```
+5
docs/css/semantics.md
···11+---
22+version: 1.0
33+updated: 2025-10-18
44+---
55+16# Volt CSS Semantics
2738Auto-generated documentation from base.css