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.