themes/neubrutalism.yaml
Rama main · réplica de lectura del repositorio original.
# Neubrutalism — hard edges, thick black borders, offset solid shadows.
# Cream paper, a yellow primary, chunky Inter/Archivo Black type, zero
# rounding. The shadow is a hard offset drop (blur 0, full opacity), the
# signature of the movement — all still native pptxgenjs shapes.
name: neubrutalism
label: Neubrutalism
summary: Hard shadows, thick black borders, bold primary colour — loud on purpose.
tokens:
palette:
bg: "#F2EFE9" # cream
surface: "#FFFFFF"
ink: "#141414" # near-black
ink_muted: "#55524D"
accent: "#FFC700" # yellow
accent_alt: "#2D6BFF" # blue
rule: "#141414" # black hairlines are part of the look
on_accent: "#141414" # black text on the yellow
surfaces:
title: { bg: "#141414", ink: "#FFFFFF", muted: "#B5B0A6", accent: "#FFC700" }
section: { bg: "#2D6BFF", ink: "#FFFFFF", muted: "#C6D4FF" }
dark:
bg: "#141414"
surface: "#1E1E1E"
ink: "#F2EFE9"
ink_muted: "#B0ABA2"
accent: "#FFC700"
accent_alt: "#5B84FF"
rule: "#FFFFFF30"
on_accent: "#141414"
type:
display: { family: "Archivo Black", weight: 400, size: 40, line: 1.05, tracking: -0.5 }
heading: { family: "Space Grotesk", weight: 700, size: 30, line: 1.1, tracking: -0.3 }
subhead: { family: Inter, weight: 600, size: 15, line: 1.35, tracking: 0 }
body: { family: Inter, weight: 400, size: 13, line: 1.5, tracking: 0 }
caption: { family: Inter, weight: 600, size: 10, line: 1.3, tracking: 0.2 }
eyebrow: { family: "Space Grotesk", weight: 700, size: 10, line: 1.2, tracking: 1.4, transform: upper }
stat: { family: "Archivo Black", weight: 400, size: 52, line: 1.0, tracking: -1 }
grid:
margin: { top: 0.62, right: 0.7, bottom: 0.55, left: 0.7 }
gutter: 0.30
columns: 12
band: { eyebrow_y: 0.62, title_y: 1.30, body_y: 2.55 }
shape:
radius: { card: 0, pill: 0.40, chip: 0 } # nothing rounded
border: { width: 2.5, color: "#141414" } # thick black outlines
card_pad: 0.30
shadow:
# opacity is 0–1 in pptxgenjs; 1 is a fully opaque hard block. (100 would
# write an off-chart alpha value that PowerPoint clamps unpredictably.)
card: { type: outer, blur: 0, offset: 5, angle: 90, color: "141414", opacity: 1 }
# Composition — src/composition.js owns the vocabulary; every axis
# left out here is the shared default.
layout:
title:
composition: band
section:
composition: block
heading:
opening: bar
rule: under
content:
frame: offset
list:
marker: square
plate:
enabled: false
voice:
feel: loud, confident, playful, direct
density: low
prefers:
- bold, simple claims
- short card-based breakdowns
- a single punchy takeaway
avoid:
- hedging, filler, corporate blandness
- more than two or three colours
- long paragraphs — this is a poster, not a paper
headline_style: >
Punchy and complete. "Light Is Too Slow" over "Performance of Ray
Tracing". Say it like you mean it.
body_style: >
Short, concrete sentences. Max two lines where possible.