141 lines
4.2 KiB
YAML
141 lines
4.2 KiB
YAML
# Sci-Fi Clean theme — codeless .bnp manifest (WO-WZ-021 Phase B1).
|
|
# Synthesized into manifest.pb by `ninja plugin build` (no plugin.wasm).
|
|
theme_presets: presets.json
|
|
bundled_fonts: fonts.json
|
|
master_pages: master_pages.json
|
|
|
|
system_templates:
|
|
- key: scifi-clean
|
|
title: Sci-Fi Clean
|
|
description: "Minimalist futurist theme for aerospace, robotics, and R&D — off-white surfaces, technical blue, signal-orange accents, mono numerals."
|
|
|
|
page_templates:
|
|
- system: scifi-clean
|
|
key: default
|
|
title: Default
|
|
description: "Standard cleanroom layout with header rail, main column, and footer instrument panel."
|
|
slots: [header, main, footer]
|
|
- system: scifi-clean
|
|
key: landing
|
|
title: Landing
|
|
description: "Hero diagram + spec strip + CTA banner."
|
|
slots: [hero, specs, main, cta, footer]
|
|
- system: scifi-clean
|
|
key: article
|
|
title: Article
|
|
description: "Narrow column with rail metadata and figure margin."
|
|
slots: [header, rail, main, footer]
|
|
- system: scifi-clean
|
|
key: full-width
|
|
title: Full Width
|
|
description: "Edge-to-edge schematic surface for diagrams and dashboards."
|
|
slots: [header, main, footer]
|
|
|
|
template_overrides:
|
|
- { template: scifi-clean, block: heading }
|
|
- { template: scifi-clean, block: text }
|
|
- { template: scifi-clean, block: button }
|
|
|
|
email_wrappers:
|
|
- scifi-clean
|
|
|
|
css:
|
|
input_css_append: |
|
|
/* === Sci-Fi Clean: font-family fallback variables ===
|
|
* The site admin assigns real fonts via the typography settings; until then,
|
|
* the variables fall through to the stacks below. 'Space Grotesk', 'Inter',
|
|
* and 'JetBrains Mono' are spec §5 recommendations, available in the Google
|
|
* Fonts picker.
|
|
*/
|
|
:root {
|
|
--font-heading: "Space Grotesk", "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
--font-body: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
}
|
|
|
|
/* === Sci-Fi Clean: utilities ===
|
|
* Hairline rules and a translucent blueprint grid are the two utility classes
|
|
* the theme uses heavily. Tailwind's defaults cover everything else.
|
|
*/
|
|
.hairline {
|
|
border: 1px solid hsl(var(--border));
|
|
}
|
|
|
|
.hairline-t {
|
|
border-top: 1px solid hsl(var(--border));
|
|
}
|
|
|
|
.hairline-b {
|
|
border-bottom: 1px solid hsl(var(--border));
|
|
}
|
|
|
|
.bg-grid {
|
|
background-color: hsl(var(--background));
|
|
background-image:
|
|
linear-gradient(to right, hsl(var(--border) / 0.6) 1px, transparent 1px),
|
|
linear-gradient(to bottom, hsl(var(--border) / 0.6) 1px, transparent 1px);
|
|
background-size: 32px 32px;
|
|
}
|
|
|
|
.mono-numerals {
|
|
font-family: var(--font-mono);
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.tabular-nums {
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.scrim {
|
|
position: relative;
|
|
}
|
|
|
|
.scrim::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0;
|
|
background-color: hsl(var(--background) / 0.65);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.scrim > * {
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
/* === Sci-Fi Clean: focus rings ===
|
|
* Use the --ring token (a precise technical blue) for all focus states so
|
|
* the keyboard cursor is visible against either preset.
|
|
*/
|
|
.scifi-focus:focus-visible {
|
|
outline: 2px solid hsl(var(--ring));
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* === Sci-Fi Clean: chevron ===
|
|
* Right-arrow chevron used in ScifiButtonBlock; encoded as Unicode so it
|
|
* never breaks across renderers (UAT §13.14).
|
|
*/
|
|
.scifi-chevron::after {
|
|
content: " \2192";
|
|
font-family: var(--font-mono);
|
|
margin-left: 0.5rem;
|
|
}
|
|
|
|
/* === Sci-Fi Clean: heading family ===
|
|
* The host shadcn layer doesn't apply --font-heading by default; wire it
|
|
* up here for the four heading levels we render.
|
|
*/
|
|
.scifi-h1, .scifi-h2, .scifi-h3, .scifi-h4 {
|
|
font-family: var(--font-heading);
|
|
font-feature-settings: "ss01" on;
|
|
}
|
|
|
|
.scifi-body {
|
|
font-family: var(--font-body);
|
|
}
|
|
|
|
.scifi-mono {
|
|
font-family: var(--font-mono);
|
|
}
|