diff --git a/playme/default-theme.css b/playme/default-theme.css new file mode 100644 index 0000000..337ef31 --- /dev/null +++ b/playme/default-theme.css @@ -0,0 +1,240 @@ +/* + * PLAYME Dark Theme — Default CSS for Marp presentations + * + * This file is referenced by PLAYME.md via inline style block. + * Edit this to customise colours, fonts, spacing, etc. + * Then regenerate: marp PLAYME.md -o PLAYME.html --allow-local-files + */ + +/* ── Colour palette ── */ +:root { + --color-bg: #0b0d17; + --color-bg-card: #151827; + --color-accent: #6c63ff; + --color-accent2: #00d4aa; + --color-text: #e8eaf6; + --color-muted: #8892b0; +} + +/* ── Base slide ── */ +section { + background: linear-gradient(135deg, #0b0d17 0%, #151827 50%, #1a1040 100%); + color: var(--color-text); + font-family: 'Inter', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif; + font-size: 28px; + letter-spacing: -0.01em; + padding: 60px 80px; +} + +/* ── Page number styling ── */ +section::after { + background: linear-gradient(90deg, var(--color-accent), var(--color-accent2)); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + font-weight: 600; + font-size: 18px; +} + +/* ── Headings ── */ +h1 { + background: linear-gradient(135deg, #ffffff 0%, #c7d2fe 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + font-weight: 800; + font-size: 2.8em; + line-height: 1.1; + margin-bottom: 0.3em; +} + +h2 { + background: linear-gradient(90deg, var(--color-accent), var(--color-accent2)); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + font-weight: 700; + font-size: 2em; + margin-bottom: 0.6em; + text-transform: uppercase; + letter-spacing: 0.05em; +} + +h3 { + color: var(--color-muted); + font-weight: 300; + font-size: 1.3em; + margin-top: 0; +} + +/* ── Lists — styled as card rows ── */ +ul { + list-style: none; + padding: 0; + margin: 0; +} + +li { + padding: 14px 24px; + margin: 10px 0; + background: rgba(108, 99, 255, 0.08); + border-left: 3px solid var(--color-accent); + border-radius: 0 12px 12px 0; + font-size: 0.95em; + color: var(--color-text); +} + +li strong { + color: var(--color-accent2); +} + +/* ── Emphasis ── */ +em { + color: var(--color-muted); + font-style: normal; +} + +/* ── Blockquotes — callout style ── */ +blockquote { + border-left: 4px solid var(--color-accent2); + background: rgba(0, 212, 170, 0.06); + padding: 16px 24px; + border-radius: 0 12px 12px 0; + margin: 20px 0; + color: var(--color-text); +} + +/* ── Code blocks ── */ +pre { + background: rgba(0, 0, 0, 0.4); + border: 1px solid rgba(108, 99, 255, 0.2); + border-radius: 12px; + padding: 20px; +} + +code { + color: var(--color-accent2); + font-size: 0.85em; +} + +/* ── Tables ── */ +table { + border-collapse: collapse; + width: 100%; + margin: 16px 0; +} + +th { + background: rgba(108, 99, 255, 0.15); + color: var(--color-accent2); + font-weight: 600; + text-transform: uppercase; + font-size: 0.8em; + letter-spacing: 0.05em; + padding: 12px 16px; + text-align: left; +} + +td { + padding: 10px 16px; + border-bottom: 1px solid rgba(108, 99, 255, 0.1); + color: var(--color-text); +} + +/* ── Images — fit within slides ── */ +img { + max-height: 70%; + border-radius: 12px; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4); +} + +/* ══════════════════════════════════ + SPECIAL SLIDE CLASSES + Use with + ══════════════════════════════════ */ + +/* ── Title slide ── */ +section.title-slide { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + text-align: center; + background: radial-gradient(ellipse at 30% 50%, #1a1060 0%, #0b0d17 60%), + linear-gradient(135deg, #0b0d17, #151827); +} + +section.title-slide::before { + content: ''; + position: absolute; + top: -50%; + left: -50%; + width: 200%; + height: 200%; + background: radial-gradient(circle at 70% 30%, rgba(108, 99, 255, 0.15) 0%, transparent 50%), + radial-gradient(circle at 30% 70%, rgba(0, 212, 170, 0.1) 0%, transparent 50%); + z-index: 0; +} + +section.title-slide h1 { + font-size: 3.5em; + z-index: 1; +} + +section.title-slide h3 { + font-size: 1.4em; + z-index: 1; +} + +section.title-slide p { + color: var(--color-muted); + font-size: 0.9em; + z-index: 1; +} + +/* ── End / closing slide ── */ +section.end-slide { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + text-align: center; + background: radial-gradient(ellipse at 50% 50%, #1a1060 0%, #0b0d17 70%); +} + +section.end-slide h1 { + font-size: 3em; + background: linear-gradient(90deg, var(--color-accent), var(--color-accent2)); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +section.end-slide p { + color: var(--color-muted); + font-size: 1.1em; +} + +/* ── Section divider slide ── */ +section.divider { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + text-align: center; + background: linear-gradient(135deg, #0b0d17 0%, #1a1060 100%); +} + +section.divider h2 { + font-size: 2.5em; +} + +/* ── Image showcase slide ── */ +section.showcase { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + text-align: center; +} + +section.showcase img { + max-height: 60%; + margin: 20px 0; +}