Curvea

Reference

Unsupported Syntax

CurveaScript intentionally avoids framework-style template syntax and arbitrary JavaScript evaluation.

Event directives

Unsupported:

<button @click="openMenu">

Use normal JavaScript or a Curvea built-in helper.

Framework-style bound props

Unsupported:

<Component :title="title" />

Use a Curvea prop value:

<Component title="{{ title }}" />

or:

<Component title=title />

JSX expressions

Unsupported:

<Component title={title} />

JavaScript expressions in interpolation

Unsupported:

{{ title.toUpperCase() }}
{{ count + 1 }}
{{ items.map(...) }}
{{ user?.name }}

Normal interpolation accepts simple property paths only. A path such as {{ items.length }} is syntactically a simple path and can resolve when that property exists; Curvea does not execute JavaScript to produce it.

Runtime reactivity

CurveaScript does not provide:

  • reactive template variables
  • template state updates after load
  • component hydration
  • component lifecycle APIs
  • client-side routing

MDX

Curvea's Markdown renderer does not execute CurveaScript/MDX components embedded in Markdown.

General-purpose bundling

Do not assume every npm package can be imported into browser code. Curvea has a limited JavaScript module graph rather than a full Vite/Webpack/Rollup-style bundler.