CurveaScript Overview
CurveaScript is the HTML-first template language of the Curvea Stack. Files use the .csc extension, short for CurveaScript Code, and resolve into static website output during development rendering or production builds.
File roles
Every .csc file declares exactly one role:
@page @layout Main(title) @component Hero(title) @document
Components require parentheses in their declaration even when no props are declared, for example @component Divider().
Expressions
Use interpolation for simple paths:
{{ page.title }}
{{ site.name }}
{{ CurrentYear }}
Normal expressions support simple dot-separated property access. CurrentYear is the reserved runtime global and must use that exact casing.
Logic
CurveaScript provides build-time conditionals and loops:
@if page.title
<h1>{{ page.title }}</h1>
@end @for item in items
<p>{{ item.title }}</p>
@end
Components
Custom components use PascalCase tags and explicit Engine imports:
@import Hero
<Hero title="Welcome" />
Browser behavior
CurveaScript is not a browser-reactive template runtime. Use standard JavaScript or Curvea Engine's small built-in helpers for client-side behavior.