VSN.js VSN.js
Docs Examples npm GitHub
Get started
Docs
Start Here
What is VSN Quick Start First Behavior
Essentials
Installation Behaviors & Selectors State & Scope Bindings Events Lifecycle Queries
Directives (Attributes)
vsn-bind vsn-on:* vsn-if vsn-show vsn-html vsn-get / vsn-target / vsn-swap vsn-each
CFS Language
Syntax reference Expressions Functions Destructure/spread Pipes (|>) Template literals
Modifiers & Flags
!important !debounce Event Modifiers
Runtime & Scope
Scope chain rules Root scope behavior State merge/specificity Error Handling
Integrations
SSR patterns htmx-style partials Build/bundler usage (ESM/CJS)
Plugins
sanitize-html microdata
Advanced
Performance & Caching Security & Sanitization Extending Debugging & Diagnostics
Reference
Full grammar CLI/API Browser support

Functions

Functions let you encapsulate behavior logic and reuse it across handlers.

Declaration

behavior .card {
  count: 0;

  increment() {
    count += 1;
  }

  on click() { increment(); }
}

Async / await

behavior .card {
  async load() {
    data = await fetch("/data");
  }
}

Return values

behavior .card {
  add(a, b) { return a + b; }
  total: add(2, 3);
}
On this page Declaration Async / await Return values
Previous Expressions Next Destructure/spread
VSN.js - Powered by pure vibes. © 2026 vsnjs.org