Fixture: default
HTML
<section class="section-hours-v1">
    <div class="stub-inner">
        <p class="stub-eyebrow">Opening hours · placeholder</p>
        <h2 class="stub-headline">Opening hours layout — not yet ported</h2>
        <p class="stub-body">
            Variants for this element type live in <code>element_variants</code>
            on Supabase. Use the <strong>Submit a layout</strong> form on the
            preview tool home page to bring screenshots across for workshopping.
        </p>
        <p class="stub-context">Fixture business: Demo Business</p>
    </div>
</section>
CSS
.section-hours-v1 {
    padding: var(--spacing-section, 4rem) 1.5rem;
    background: var(--bg-alt, #f8fafc);
    color: var(--text-on-alt, #1f2937);
    font-family: var(--font-body, system-ui, sans-serif);
    border: 2px dashed rgba(0,0,0,0.12);
}
.section-hours-v1 .stub-inner {
    max-width: 48rem;
    margin: 0 auto;
    text-align: center;
}
.section-hours-v1 .stub-eyebrow {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--brand-primary, #1e7a3e);
    margin: 0 0 0.5rem;
}
.section-hours-v1 .stub-headline {
    font-family: var(--font-heading, system-ui, sans-serif);
    font-size: clamp(1.25rem, 2.5vw, 1.75rem);
    margin: 0 0 0.75rem;
    color: var(--text-heading, #1a1a1a);
}
.section-hours-v1 .stub-body {
    font-size: 0.95rem;
    line-height: 1.6;
    margin: 0 0 0.5rem;
}
.section-hours-v1 .stub-context {
    font-size: 0.8rem;
    color: rgba(0,0,0,0.55);
    margin: 1rem 0 0;
}
.section-hours-v1 code {
    background: rgba(0,0,0,0.06);
    padding: 0.05rem 0.3rem;
    border-radius: 3px;
    font-size: 0.85em;
}
Fixture data (default.json)
{
    "_note": "Minimal business fixture \u2014 stubs don't render real data yet.",
    "business": {
        "business_name": "Demo Business",
        "phone": "0400 000 000"
    }
}
Render output (Twig data array)
{
    "element_type": "Opening hours",
    "element_name": "hours",
    "business_name": "Demo Business"
}
package.json
{
    "name": "hours",
    "version": "v1",
    "display_name": "Opening hours (placeholder)",
    "kind": "static",
    "status": "draft",
    "description": "Opening hours display. Variants: full week list, today + collapsed week, multi-set (kitchen vs venue).\n\nThis is a stub package \u2014 the actual variants live in element_variants on Supabase. Use the Submit a layout button to bring screenshots over for workshopping.",
    "niches": [
        "cafe",
        "lawn-mowing",
        "celebrant",
        "limo"
    ],
    "principles_satisfied": [],
    "performance_budget": {
        "render_ms_p95": 5,
        "html_bytes": 2000,
        "css_bytes": 1500,
        "js_bytes": 0,
        "image_count_max": 0
    },
    "data_contract": {
        "fields_consumed": [],
        "fields_optional": []
    },
    "requires": [],
    "recommended_with": [],
    "root": "/home/slipstreamsectio/repo/sections/hours/v1"
}

Feedback