The CWA is in heavy development
The CWA is still in alpha and not ready for production - some code and implementations are likely to change. If you would like to try out the CWA, please enjoy what we have provided and feel free to provide feedback, or get involved on GitHub.
Cwa Components
<CwaDefaultLayout />
A minimal flex-column layout shell used as a fallback when no layout component is resolved.
<CwaDefaultLayout> is the fallback layout CWA uses when no Layout resource has been associated with the current page, or when the resolved uiComponent name does not match any registered layout in your project.
You will rarely use this directly. It exists so that CWA can always render something — even for pages that haven't been fully configured in the CMS yet.
Structure
It renders a minimal full-height flex column:
<div class="flex flex-col min-h-screen">
<slot />
</div>
The default <slot /> is where <CwaPage /> renders the current page template.
When It Appears
- A new CWA project before any layouts have been created in the admin
- A page whose layout resource has a
uiComponentvalue that hasn't been registered innuxt.config.ts → cwa.layouts - During development when you're building a layout component but haven't connected it in the CMS yet
Replacing It
Register your own layout under the same uiComponent name in nuxt.config.ts and create the corresponding file in app/cwa/layouts/. Once the CMS has a Layout record pointing to it, <CwaDefaultLayout> is no longer used for that page.
// nuxt.config.ts
cwa: {
layouts: {
Primary: { name: 'Primary Layout' }
}
}
<!-- app/cwa/layouts/Primary.vue -->
<template>
<div class="min-h-screen">
<AppHeader />
<slot />
<AppFooter />
</div>
</template>