2273009b95
Create nova-sp-theme.css — S&P Global Energy Marp theme (Red/Black/White palette applied to all slide chrome: backgrounds, headers/footers, pagination, tables, blockquotes, code blocks). Create render_slides.sh — end-to-end pipeline: mermaid PNGs + Marp HTML/PPTX. Create slides.yml CI workflow — auto-renders on docs/presentations/ changes. Create test_slides_pipeline.py — 12 tests (theme CSS, Marp frontmatter, script, workflow, .mmd/.png parity, README retired-deck cleanup). Update Marp frontmatter: theme: nova-sp + footer v1.20. Fix presentations/README.md directory layout (remove retired decks). Re-render HTML + PPTX with S&P theme. ---ci--- project: acdl phase: 2 milestone: v1.20 status: execute requirements: [REQ-239, REQ-240, REQ-241, REQ-242, REQ-243] ---/ci---
78 lines
2.8 KiB
CSS
78 lines
2.8 KiB
CSS
/* @theme nova-sp */
|
|
/* Nova — S&P Global Energy theme for Marp decks.
|
|
*
|
|
* Palette: S&P Red (#D6002A), Black (#1B1B1B), White (#FFFFFF), Grey (#F0F0F0).
|
|
* Font: Akkurat Pro (fallback Helvetica Neue / Arial).
|
|
*
|
|
* This theme extends Marp's default and applies the S&P palette to ALL slide
|
|
* chrome — backgrounds, headers/footers, pagination, tables, blockquotes,
|
|
* code blocks — not just headings.
|
|
*/
|
|
|
|
:root {
|
|
--sp-red: #D6002A;
|
|
--sp-black: #1B1B1B;
|
|
--sp-white: #FFFFFF;
|
|
--sp-grey: #F0F0F0;
|
|
--sp-dark-grey: #2E2E2E;
|
|
}
|
|
|
|
/* Base section */
|
|
section {
|
|
font-family: "Akkurat Pro", "Helvetica Neue", "Arial", sans-serif;
|
|
font-size: 22px;
|
|
color: var(--sp-black);
|
|
background: var(--sp-white);
|
|
}
|
|
|
|
/* Headings — S&P Red */
|
|
h1 { color: var(--sp-red); font-size: 34px; margin-bottom: 0.3em; }
|
|
h2 { color: var(--sp-red); font-size: 26px; margin-bottom: 0.2em; }
|
|
h3 { color: var(--sp-red); font-size: 22px; margin-bottom: 0.2em; }
|
|
h4 { color: var(--sp-dark-grey); font-size: 20px; margin-bottom: 0.15em; }
|
|
|
|
/* Title slides — black background, red top border */
|
|
section.title {
|
|
background: var(--sp-black);
|
|
color: var(--sp-white);
|
|
border-top: 8px solid var(--sp-red);
|
|
}
|
|
section.title h1 { color: var(--sp-white); }
|
|
section.title h2 { color: var(--sp-white); }
|
|
|
|
/* Tables — grey header with red underline */
|
|
table { font-size: 18px; width: 100%; border-collapse: collapse; }
|
|
th { background: var(--sp-grey); border-bottom: 2px solid var(--sp-red); padding: 6px 10px; text-align: left; }
|
|
td { border-bottom: 1px solid var(--sp-grey); padding: 6px 10px; }
|
|
|
|
/* Blockquotes — red left border */
|
|
blockquote { border-left: 4px solid var(--sp-red); color: var(--sp-dark-grey); font-size: 20px; padding-left: 12px; }
|
|
|
|
/* Code — dark background */
|
|
pre { background: var(--sp-black); color: var(--sp-white); border-radius: 4px; padding: 12px; font-size: 16px; }
|
|
code { background: var(--sp-grey); color: var(--sp-black); border-radius: 2px; padding: 1px 4px; font-size: 18px; }
|
|
pre code { background: transparent; color: inherit; }
|
|
|
|
/* Images — centered, max height */
|
|
img { display: block; margin: 0 auto; max-height: 320px; }
|
|
|
|
/* Header/footer — subtle grey */
|
|
header { color: var(--sp-dark-grey); border-bottom: 1px solid var(--sp-grey); }
|
|
footer { color: var(--sp-dark-grey); border-top: 1px solid var(--sp-grey); }
|
|
|
|
/* Maturity badges */
|
|
.badge { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 14px; font-weight: 600; }
|
|
.badge.today { background: #c6f6d5; color: #22543d; }
|
|
.badge.planned { background: #fef3c7; color: #78350f; }
|
|
|
|
/* Pagination — S&P Red progress bar */
|
|
.bespoke-progress-parent { background: var(--sp-grey); }
|
|
.bespoke-progress-bar { background: var(--sp-red) !important; }
|
|
|
|
/* Lists — tighter */
|
|
ul { margin-top: 0.3em; }
|
|
li { margin-bottom: 0.2em; }
|
|
|
|
/* Strong — S&P Red for emphasis in lead lines */
|
|
strong { color: var(--sp-red); }
|