Curvea

CLI

curvea make

Generates starter CurveaScript files inside an existing project.

Usage

npx curvea make page About
npx curvea make component HeroSection
npx curvea make layout MainLayout

Supported types are page, component, and layout. Names must be PascalCase.

Page scaffold

npx curvea make page About

creates:

src/pages/About.csc
src/data/pages/about.json

The page starter uses the Main layout and matching page JSON:

@page
@use Main(title=page.title, description=page.description)

<section class="page-section">
  <div class="container">
    <p class="eyebrow">{{ page.eyebrow }}</p>
    <h1>{{ page.title }}</h1>
    <p>{{ page.description }}</p>
  </div>
</section>

The JSON starter contains title, description, and eyebrow values.

Component scaffold

npx curvea make component HeroSection

creates src/components/HeroSection.csc with props for eyebrow, title, and description, conditional starter markup, and {{ slot }}.

Layout scaffold

npx curvea make layout MainLayout

creates src/layouts/MainLayout.csc with shared page-shell markup and {{ slot }}. The generated footer uses the reserved {{ CurrentYear }} global.

curvea make does not overwrite an existing target file.