WO-TF-024. Re-skin from frozen Wave-0 builtins into blueprint/HUD/mono chrome (AI/robotics product persona), preserving every content field, provider field, custom tag, and JS block; button/card legacy field reads reconciled per §4. - 49 mandatory template_overrides + 7 page templates (default, full-width, landing, article, blog-index, contact, auth) with MID-tier motion (JS scroll-reveal + ticking counters + CSS line-draw; reduced-motion + no-JS static fallback). - 4 persona blocks: tech_spec, benchmark_table, telemetry_grid, changelog_console. Deleted 5 builtin-duplicating theme blocks (now overrides). - 4 dual-mode presets (19 tokens, light + dark tuned). - Bundled OFL fonts (Space Grotesk / Inter / JetBrains Mono) + LICENSES. - Email-safe wrapper retuned; master pages + seed demo site (Halcyon Robotics: home, about, blog x3, contact with data-table + row_inserted email workflow, login). - required_icon_packs (lucide, simple-icons) + RECOMMENDED docs. make build exit 0 (codeless .bnp); check-safety exit 0. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
22 lines
2.3 KiB
Plaintext
22 lines
2.3 KiB
Plaintext
{# menu-list override — sectioned price list; tabular-numeral prices right-aligned, dietary badges as hairline pills. #}
|
|
<section class="sc-section {{ class }}"><div class="sc-content-well">
|
|
{% if heading %}<h2 class="sc-heading" style="font-size:clamp(1.75rem, 3vw, 2.25rem);margin:0 0 0.75rem 0;"><span class="sc-heading-h2-accent">{{ heading }}</span></h2>{% endif %}
|
|
{% if intro %}<p class="sc-lede" style="max-width:60ch;margin:0 0 2.5rem 0;color:hsl(var(--muted-foreground));">{{ intro }}</p>{% endif %}
|
|
<div class="sc-grid {% if columns == 2 %}sc-grid-2{% endif %}" style="display:grid;gap:2.5rem 3rem;{% if columns == 2 %}grid-template-columns:repeat(2, minmax(0, 1fr));{% endif %}">
|
|
{% for section in sections %}<div class="sc-menu-section" style="break-inside:avoid;">
|
|
{% if section.title %}<h3 class="sc-display" style="font-size:1.25rem;border-bottom:1px solid hsl(var(--border));padding-bottom:0.5rem;margin:0 0 1rem 0;">{{ section.title }}</h3>{% endif %}
|
|
{% if section.note %}<p style="margin:0 0 1rem 0;font-size:0.875rem;color:hsl(var(--muted-foreground));">{{ section.note }}</p>{% endif %}
|
|
<ul style="list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.25rem;">
|
|
{% for item in section.items %}<li class="sc-menu-item" style="display:flex;align-items:baseline;gap:1rem;">
|
|
<div style="min-width:0;flex:1;">
|
|
<div style="display:flex;flex-wrap:wrap;align-items:baseline;gap:0.5rem;"><span class="sc-display" style="font-size:1rem;color:hsl(var(--foreground));">{{ item.name }}</span>{% for badge in item.badges %}{% if badge.label %}<span style="display:inline-block;border:1px solid hsl(var(--border));border-radius:4px;padding:0.05rem 0.4rem;font-size:0.6875rem;text-transform:uppercase;letter-spacing:0.05em;color:hsl(var(--muted-foreground));">{{ badge.label }}</span>{% endif %}{% endfor %}</div>
|
|
{% if item.description %}<p style="margin:0.25rem 0 0 0;font-size:0.875rem;color:hsl(var(--muted-foreground));">{{ item.description }}</p>{% endif %}
|
|
</div>
|
|
{% if item.price %}<span class="sc-menu-price sc-mono numeric-tabular" style="flex:0 0 auto;color:hsl(var(--foreground));">{% if currency %}{{ currency }}{% endif %}{{ item.price }}</span>{% endif %}
|
|
</li>{% endfor %}
|
|
</ul>
|
|
</div>{% endfor %}
|
|
</div>
|
|
{% if footnote %}<p class="sc-stat-label" style="margin-top:2.5rem;">{{ footnote }}</p>{% endif %}
|
|
</div></section>
|