@litfamily/litmuse 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/README.md +23 -1
- package/README_ko-KR.md +23 -1
- package/TRADEMARK.md +12 -0
- package/bin/litmuse.mjs +4 -0
- package/lib/stage-card.mjs +249 -6
- package/package.json +3 -2
- package/plugin/.muse-plugin/plugin.json +26 -11
- package/plugin/commands/lit-status.md +3 -1
- package/plugin/commands/lit.md +1 -1
- package/plugin/hooks/lib/digest.mjs +1 -1
- package/plugin/hooks/lib/next-step.mjs +112 -0
- package/plugin/hooks/lib/routes.mjs +59 -0
- package/plugin/hooks/lib/stage.mjs +53 -6
- package/plugin/hooks/lib/workflow-stack.mjs +336 -0
- package/plugin/hooks/post-tool-use-failure.mjs +2 -0
- package/plugin/hooks/post-tool-use.mjs +2 -0
- package/plugin/hooks/session-end.mjs +2 -1
- package/plugin/hooks/session-start.mjs +32 -2
- package/plugin/hooks/stop.mjs +23 -3
- package/plugin/hooks/user-prompt-submit.mjs +138 -7
- package/plugin/lib/capped-fetch.mjs +25 -0
- package/plugin/lib/pinned-fetch.mjs +79 -0
- package/plugin/lib/plan-task-rows.mjs +32 -0
- package/plugin/lib/render_pages.py +29 -1
- package/plugin/lib/rewind/collect.mjs +808 -0
- package/plugin/lib/rewind/gauge.mjs +72 -0
- package/plugin/lib/rewind/next-step.mjs +91 -0
- package/plugin/lib/rewind/redact.mjs +83 -0
- package/plugin/lib/rewind/transcripts.mjs +229 -0
- package/plugin/skills/frontend-ui-ux/SKILL.md +24 -9
- package/plugin/skills/frontend-ui-ux/kit/components.css +414 -0
- package/plugin/skills/frontend-ui-ux/kit/fonts.json +22 -0
- package/plugin/skills/frontend-ui-ux/kit/layouts/landing.html +164 -0
- package/plugin/skills/frontend-ui-ux/kit/layouts/settings.html +114 -0
- package/plugin/skills/frontend-ui-ux/kit/layouts/workspace.html +115 -0
- package/plugin/skills/frontend-ui-ux/kit/styles/computational-brutalism.json +227 -0
- package/plugin/skills/frontend-ui-ux/kit/styles/field-notes.json +205 -0
- package/plugin/skills/frontend-ui-ux/kit/styles/graphite.json +200 -0
- package/plugin/skills/frontend-ui-ux/kit/styles/meadow.json +199 -0
- package/plugin/skills/frontend-ui-ux/kit/styles/neo-brutalism.json +222 -0
- package/plugin/skills/frontend-ui-ux/kit/ui.js +226 -0
- package/plugin/skills/frontend-ui-ux/references/complete-contract.md +2 -1
- package/plugin/skills/frontend-ui-ux/references/craft-floor.md +9 -4
- package/plugin/skills/frontend-ui-ux/references/default-editorial-pixel.json +59 -7
- package/plugin/skills/frontend-ui-ux/references/house-styles.md +234 -0
- package/plugin/skills/frontend-ui-ux/references/motion-guide.md +3 -3
- package/plugin/skills/frontend-ui-ux/references/slop-register.md +7 -7
- package/plugin/skills/frontend-ui-ux/scripts/design-lock.mjs +400 -0
- package/plugin/skills/frontend-ui-ux/scripts/interface-probe-lock.mjs +196 -0
- package/plugin/skills/frontend-ui-ux/scripts/interface-probe-page.mjs +31 -10
- package/plugin/skills/frontend-ui-ux/scripts/interface-probe-rules.mjs +19 -7
- package/plugin/skills/frontend-ui-ux/scripts/interface-probe-static.mjs +4 -0
- package/plugin/skills/frontend-ui-ux/scripts/interface-probe.mjs +59 -7
- package/plugin/skills/frontend-ui-ux/scripts/pixel-art.mjs +60 -0
- package/plugin/skills/lit-adhd/SKILL.md +195 -0
- package/plugin/skills/lit-adhd/references/card-examples.md +121 -0
- package/plugin/skills/lit-adhd/references/status-taxonomy.md +45 -0
- package/plugin/skills/lit-adhd/scripts/rewind.mjs +11 -0
- package/plugin/skills/lit-diagram-drawer/SKILL.md +3 -3
- package/plugin/skills/lit-diagram-drawer/scripts/diagram-craft-rules.mjs +1 -2
- package/plugin/skills/lit-diagram-drawer/scripts/visual-quality.mjs +0 -1
- package/plugin/skills/lit-docx/SKILL.md +1 -1
- package/plugin/skills/lit-hijack/SKILL.md +589 -0
- package/plugin/skills/lit-hijack/references/capture-and-provenance.md +123 -0
- package/plugin/skills/lit-hijack/references/clean-room-build.md +133 -0
- package/plugin/skills/lit-hijack/references/distil-and-licence.md +128 -0
- package/plugin/skills/lit-hijack/references/gap-and-port-design.md +152 -0
- package/plugin/skills/lit-hijack/references/parity-and-report.md +133 -0
- package/plugin/skills/lit-hijack/scripts/hijack.mjs +879 -0
- package/plugin/skills/lit-plan/SKILL.md +12 -1
- package/plugin/skills/lit-plan/scripts/check-plan.mjs +71 -4
- package/plugin/skills/lit-pptx/SKILL.md +20 -9
- package/plugin/skills/lit-pptx/fonts/jetbrains-mono/JetBrainsMono-Bold.ttf +0 -0
- package/plugin/skills/lit-pptx/fonts/jetbrains-mono/JetBrainsMono-Regular.ttf +0 -0
- package/plugin/skills/lit-pptx/fonts/jetbrains-mono/OFL.txt +93 -0
- package/plugin/skills/lit-pptx/fonts/provenance.json +32 -1
- package/plugin/skills/lit-pptx/references/direction-step.md +19 -2
- package/plugin/skills/lit-pptx/references/examples/13-engineering-review-computational-brutalism-ko.md +173 -0
- package/plugin/skills/lit-pptx/references/examples/14-launch-pitch-neo-brutalism-ko.md +154 -0
- package/plugin/skills/lit-pptx/references/examples/15-design-lecture-bauhaus-ko.md +139 -0
- package/plugin/skills/lit-pptx/references/examples/16-community-programme-riso-ko.md +158 -0
- package/plugin/skills/lit-pptx/references/examples/17-public-data-briefing-newsroom-ko.md +179 -0
- package/plugin/skills/lit-pptx/references/tonalities/bauhaus.md +112 -0
- package/plugin/skills/lit-pptx/references/tonalities/computational-brutalism.md +118 -0
- package/plugin/skills/lit-pptx/references/tonalities/neo-brutalism.md +125 -0
- package/plugin/skills/lit-pptx/references/tonalities/newsroom.md +115 -0
- package/plugin/skills/lit-pptx/references/tonalities/riso.md +109 -0
- package/plugin/skills/lit-pptx/scripts/compile-deck.js +1 -1
- package/plugin/skills/lit-pptx/scripts/craft_extras.py +136 -92
- package/plugin/skills/lit-pptx/scripts/embed_fonts.py +13 -1
- package/plugin/skills/lit-pptx/scripts/lib/grid-resolver.js +105 -116
- package/plugin/skills/lit-pptx/scripts/lib/layout-resolver.js +9 -15
- package/plugin/skills/lit-pptx/scripts/lib/render-pack.js +368 -561
- package/plugin/skills/lit-pptx/scripts/lib/slide-grid.js +104 -0
- package/plugin/skills/lit-pptx/scripts/lib/template-registry.js +57 -6
- package/plugin/skills/lit-pptx/scripts/qa_deck.py +4 -4
- package/plugin/skills/lit-pptx/templates/tonalities/atlas/pack.yaml +1 -1
- package/plugin/skills/lit-pptx/templates/tonalities/bauhaus/pack.yaml +98 -0
- package/plugin/skills/lit-pptx/templates/tonalities/chalk/pack.yaml +1 -1
- package/plugin/skills/lit-pptx/templates/tonalities/computational-brutalism/pack.yaml +99 -0
- package/plugin/skills/lit-pptx/templates/tonalities/gazette/pack.yaml +1 -1
- package/plugin/skills/lit-pptx/templates/tonalities/ledger/pack.yaml +1 -1
- package/plugin/skills/lit-pptx/templates/tonalities/neo-brutalism/pack.yaml +107 -0
- package/plugin/skills/lit-pptx/templates/tonalities/newsroom/pack.yaml +99 -0
- package/plugin/skills/lit-pptx/templates/tonalities/night/pack.yaml +1 -1
- package/plugin/skills/lit-pptx/templates/tonalities/paper/pack.yaml +1 -1
- package/plugin/skills/lit-pptx/templates/tonalities/riso/pack.yaml +99 -0
- package/plugin/skills/lit-pptx/templates/tonalities/signal/pack.yaml +2 -2
- package/plugin/skills/lit-pptx/templates/tonalities/studio/pack.yaml +1 -1
- package/plugin/skills/lit-recap/SKILL.md +3 -0
- package/plugin/skills/lit-schematic/SKILL.md +241 -0
- package/plugin/skills/lit-schematic/examples/iso-heat-exchanger/build.mjs +14 -0
- package/plugin/skills/lit-schematic/examples/iso-heat-exchanger/scene.mjs +8 -0
- package/plugin/skills/lit-schematic/examples/journal-adsorption-rig/build.mjs +22 -0
- package/plugin/skills/lit-schematic/examples/pid-dosing-skid/build.mjs +73 -0
- package/plugin/skills/lit-schematic/references/cutaway-outputs.md +25 -0
- package/plugin/skills/lit-schematic/references/isometric-craft.md +24 -0
- package/plugin/skills/lit-schematic/references/journal-figures.md +19 -0
- package/plugin/skills/lit-schematic/references/kit-api.md +27 -0
- package/plugin/skills/lit-schematic/references/pfd-and-layout.md +20 -0
- package/plugin/skills/lit-schematic/references/pid-drafting.md +26 -0
- package/plugin/skills/lit-schematic/references/pid-symbols.md +27 -0
- package/plugin/skills/lit-schematic/references/verification.md +24 -0
- package/plugin/skills/lit-schematic/scripts/doctor.mjs +13 -0
- package/plugin/skills/lit-schematic/scripts/lib/figure.mjs +49 -0
- package/plugin/skills/lit-schematic/scripts/lib/isa.mjs +18 -0
- package/plugin/skills/lit-schematic/scripts/lib/iso.mjs +58 -0
- package/plugin/skills/lit-schematic/scripts/lib/legend-sheet.mjs +10 -0
- package/plugin/skills/lit-schematic/scripts/lib/qa-core.mjs +241 -0
- package/plugin/skills/lit-schematic/scripts/lib/sheet.mjs +446 -0
- package/plugin/skills/lit-schematic/scripts/lib/svg.mjs +39 -0
- package/plugin/skills/lit-schematic/scripts/lib/theme.mjs +25 -0
- package/plugin/skills/lit-schematic/scripts/motion.mjs +8 -0
- package/plugin/skills/lit-schematic/scripts/qa.mjs +21 -0
- package/plugin/skills/lit-schematic/scripts/render.mjs +38 -0
- package/plugin/skills/lit-schematic/scripts/scaffold.mjs +73 -0
- package/plugin/skills/lit-scientific-visualization/SKILL.md +2 -0
- package/plugin/skills/lit-team/scripts/state-root.mjs +5 -18
- package/plugin/skills/lit-typographic-motion/SKILL.md +12 -8
- package/plugin/skills/lit-typographic-motion/engine/THIRD_PARTY_NOTICES +11 -0
- package/plugin/skills/lit-typographic-motion/engine/blender/runner.py +218 -0
- package/plugin/skills/lit-typographic-motion/engine/core/presets.mjs +1 -1
- package/plugin/skills/lit-typographic-motion/engine/node/assets.mjs +218 -0
- package/plugin/skills/lit-typographic-motion/engine/node/blender.mjs +144 -0
- package/plugin/skills/lit-typographic-motion/engine/node/board.mjs +136 -0
- package/plugin/skills/lit-typographic-motion/engine/node/done.mjs +42 -3
- package/plugin/skills/lit-typographic-motion/engine/node/gallery.mjs +120 -0
- package/plugin/skills/lit-typographic-motion/engine/node/house.mjs +44 -0
- package/plugin/skills/lit-typographic-motion/engine/node/pipeline.mjs +18 -7
- package/plugin/skills/lit-typographic-motion/engine/node/runtime.mjs +6 -3
- package/plugin/skills/lit-typographic-motion/engine/node/scaffold.mjs +210 -0
- package/plugin/skills/lit-typographic-motion/engine/node/score.mjs +639 -0
- package/plugin/skills/lit-typographic-motion/engine/node/sound-cli.mjs +21 -4
- package/plugin/skills/lit-typographic-motion/engine/node/sound.mjs +126 -27
- package/plugin/skills/lit-typographic-motion/engine/node/stage-serve.mjs +29 -5
- package/plugin/skills/lit-typographic-motion/engine/node/stage.mjs +82 -14
- package/plugin/skills/lit-typographic-motion/engine/node/styles.mjs +214 -0
- package/plugin/skills/lit-typographic-motion/engine/node/treatment.mjs +311 -10
- package/plugin/skills/lit-typographic-motion/engine/vendor/three/LICENSE +21 -0
- package/plugin/skills/lit-typographic-motion/engine/vendor/three/addons/environments/RoomEnvironment.js +144 -0
- package/plugin/skills/lit-typographic-motion/engine/vendor/three/addons/geometries/RoundedBoxGeometry.js +155 -0
- package/plugin/skills/lit-typographic-motion/engine/vendor/three/three.module.js +54571 -0
- package/plugin/skills/lit-typographic-motion/recipes/hero-3d/expected.json +69 -0
- package/plugin/skills/lit-typographic-motion/recipes/hero-3d/index.html +139 -0
- package/plugin/skills/lit-typographic-motion/references/depth.md +122 -0
- package/plugin/skills/lit-typographic-motion/references/sound.md +74 -16
- package/plugin/skills/lit-typographic-motion/references/stage.md +29 -5
- package/plugin/skills/lit-typographic-motion/references/studio.md +245 -0
- package/plugin/skills/lit-typographic-motion/references/treatment.md +31 -8
- package/plugin/skills/lit-typographic-motion/scripts/motion.mjs +48 -7
- package/plugin/skills/lit-typographic-motion/styles/paper.json +41 -0
- package/plugin/skills/lit-typographic-motion/styles/swiss-signal.json +41 -0
- package/plugin/skills/lit-typographic-motion/styles/terminalcore.json +42 -0
- package/plugin/skills/lit-typographic-motion/styles/tidal.json +41 -0
- package/plugin/skills/readme-studio/SKILL.md +1 -1
- package/plugin/skills/start-work/SKILL.md +10 -1
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Bauhaus
|
|
2
|
+
|
|
3
|
+
Bauhaus is the direction for a talk about making things: design, architecture, craft, art history and culture. Its display slides carry an elementary composition set on the grid beside a heavy title on an off-white ground: a yellow square, a red circle, a black bar and a blue triangle. The content slides stay quiet by design: black type, a short red rule beneath each title, open tables and a single red accent. The geometry is the voice, so it shows where the deck speaks (the cover and the statements) and stays off the pages where the audience reads.
|
|
4
|
+
|
|
5
|
+
## When to use it
|
|
6
|
+
|
|
7
|
+
Reach for Bauhaus for a design or architecture lecture, a museum or exhibition opener, a workshop on brand or product design, a culture programme, a design-school portfolio review, or a talk on the history of a style. The content signals that point here are images with few numbers, a sequence of ideas or periods, quotations from makers, and words such as 디자인, 건축, 전시, 워크숍, 바우하우스, Bauhaus, modernism or "primary colours". It is the first candidate for a design or culture lecture, ahead of Studio, and the second for a creative workshop.
|
|
8
|
+
|
|
9
|
+
## When it is the wrong choice
|
|
10
|
+
|
|
11
|
+
It fails for a data-heavy business review, finance, a public-sector report and any deck where tables fill a third of the slides: the display geometry has nothing to say about a ledger. It is wrong for grief, safety or financial-loss topics, where primary colours read as careless. For a deck that is mostly pictures, Atlas or Studio frames them better; for a pitch, Signal or Neo-Brutalism.
|
|
12
|
+
|
|
13
|
+
## Tokens
|
|
14
|
+
|
|
15
|
+
The values below come from the pack file and are what the engine draws.
|
|
16
|
+
|
|
17
|
+
| Token | Value |
|
|
18
|
+
|---|---|
|
|
19
|
+
| ground / surface | #F4F1EA / #E8E3D6 |
|
|
20
|
+
| ink / ink-muted / line | #141414 / #4A4740 / #141414 |
|
|
21
|
+
| accent / accent-deep / accent-tint | #C8261C / #7A140E / #F2C230 (the yellow of the geometry) |
|
|
22
|
+
| field / on-field | #1F3C99 / #FFFFFF |
|
|
23
|
+
| positive / negative | #1E6B3A / #141414 |
|
|
24
|
+
| series | #C8261C, #1F3C99, #141414, #9E7700 |
|
|
25
|
+
| faces | Pretendard Bold for display, title, labels and numerals, Pretendard Regular for body; `faces: a2z` swaps to A2Z Black display, titles and numerals |
|
|
26
|
+
| ramp / hero | compact (body 13 pt, labels 11, sources 9) / hero step (60 pt) on cover and statement titles that fit, off with `hero: false`; figures at most title size |
|
|
27
|
+
| density / variance | 10 / 7 |
|
|
28
|
+
| radius / edge | 0 / fill |
|
|
29
|
+
| decoration | a short accent rule under top titles, kicker numerals, colour fields |
|
|
30
|
+
| table | open, no header fill, a rule under the header, bold totals |
|
|
31
|
+
| chart | no gridlines, direct labels, the accent on the highlighted series over muted ones |
|
|
32
|
+
|
|
33
|
+
Density 10 puts the lecture on the compact grid (24 pt side margins), body 13 pt and no step-up, as every pack in the family. The fourth series colour is the geometry's yellow darkened to an ochre so a bar still holds 3:1 on the ground; the bright yellow itself is reserved for fills (the square, the notice tag, a highlighted table row), never for text. A loss uses ink with a ▼ sign.
|
|
34
|
+
|
|
35
|
+
## QA allowances
|
|
36
|
+
|
|
37
|
+
Red, blue and yellow sit side by side on a cover, a statement or a content slide inside the default OF-101 limit (four hue families; a fifth fails), so this pack needs no `qa:` allowance.
|
|
38
|
+
|
|
39
|
+
## Treatments by slide role
|
|
40
|
+
|
|
41
|
+
Content, data and reference slides take `top-rule` (the title over a short red rule); data with a takeaway and definitions take `side-rail`; sequences `kicker-numeral`; image slides `bottom-anchor`; statements `statement`. The engine lays out every treatment the family allows, keeps the role's own when the body fills, and otherwise keeps the one that leaves the least empty band. Force one with `title: <id>` on the line after `layout:`.
|
|
42
|
+
|
|
43
|
+
## Families and variants
|
|
44
|
+
|
|
45
|
+
- `asymmetric-feature` and `image-split` pair a work or a building with what to see in it.
|
|
46
|
+
- `timeline` sets periods, schools or projects in order.
|
|
47
|
+
- `process` and `step-diagram` lay a making process out in three to five steps.
|
|
48
|
+
- `comparison` and `text-two-column` read two works, two periods or two methods side by side.
|
|
49
|
+
- `big-number`, `kpi-row`, `chart-insight` and `table-insight` carry the few figures such a talk has.
|
|
50
|
+
- `quote` sets a maker's sentence; `statement` holds one idea at display size.
|
|
51
|
+
- `agenda` opens a workshop with its sessions.
|
|
52
|
+
|
|
53
|
+
Covers are `cover-typographic`, `cover-split-field` and `cover-numeral`; sections are `section-field` and `section-numeral`; closings are `closing-ask`, `closing-summary-list` and `closing-statement`.
|
|
54
|
+
|
|
55
|
+
Display slides. The typographic cover sets the topic at display size on the left half and the composition on the right: the yellow square and red circle above, the black bar and blue triangle below, each in its own grid cell. A statement sets its sentence on the left with a narrower composition from column 10 to the edge. A big number sits on a blue field panel. A closing's next step stands between two rules; a closing statement takes the statement's composition.
|
|
56
|
+
|
|
57
|
+
## Do
|
|
58
|
+
|
|
59
|
+
- Keep the geometry on the cover and the statements; content slides carry type, images and data.
|
|
60
|
+
- Use at most one statement per section, so the composition stays an event.
|
|
61
|
+
- Caption every work with maker, year and source.
|
|
62
|
+
- Let red mark one word or one figure on a content slide.
|
|
63
|
+
|
|
64
|
+
## Avoid
|
|
65
|
+
|
|
66
|
+
- Circles, squares or triangles as bullets, icons or frames on content slides.
|
|
67
|
+
- Yellow text on the off-white ground.
|
|
68
|
+
- A fifth hue family beside the three primaries and the ink.
|
|
69
|
+
- This direction for a ledger, a finance review or a sensitive topic.
|
|
70
|
+
|
|
71
|
+
## Two worked slides
|
|
72
|
+
|
|
73
|
+
A lecture slide pairs a building with what to see in it, and lets the caption carry the source.
|
|
74
|
+
|
|
75
|
+
```markdown
|
|
76
|
+
---
|
|
77
|
+
layout: image-split
|
|
78
|
+
|
|
79
|
+
## 데사우 교사(校舍)의 세 가지 설계 원칙
|
|
80
|
+
|
|
81
|
+

|
|
82
|
+
|
|
83
|
+
- **기능별 동** 공방, 교실, 기숙사를 각각의 동으로 나눠 다리로 잇는다
|
|
84
|
+
- **유리 커튼월** 공방 동의 외벽 전체가 유리라 작업이 밖에서 보인다
|
|
85
|
+
- **비대칭 배치** 정면이 없어, 걸으며 돌아봐야 전체가 읽힌다
|
|
86
|
+
- 출처: 예시 건축사 강의 자료, 2026년 (예시)
|
|
87
|
+
---
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
A timeline sets the school's three sites in order, with what changed at each.
|
|
91
|
+
|
|
92
|
+
```markdown
|
|
93
|
+
---
|
|
94
|
+
layout: timeline
|
|
95
|
+
|
|
96
|
+
## 학교의 세 시기, 1919-1933년
|
|
97
|
+
|
|
98
|
+
| 시점 | 장소 | 무엇이 바뀌었나 |
|
|
99
|
+
|---|---|---|
|
|
100
|
+
| 1919년 | 바이마르 | 공방 중심 교육, 표현주의의 영향이 강하다 |
|
|
101
|
+
| 1925년 | 데사우 | 산업 생산과의 협업, 표준화된 제품 디자인 |
|
|
102
|
+
| 1932년 | 베를린 | 사립 학교로 축소, 이듬해 문을 닫는다 |
|
|
103
|
+
|
|
104
|
+
> 표 1. 바우하우스의 세 시기 (예시 자료)
|
|
105
|
+
|
|
106
|
+
- 출처: 예시 디자인사 강의 노트, 2026년 (예시)
|
|
107
|
+
---
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Examples
|
|
111
|
+
|
|
112
|
+
`15-design-lecture-bauhaus-ko.md`
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Computational Brutalism
|
|
2
|
+
|
|
3
|
+
Computational Brutalism is the direction for a deck about a system, told to the people who build or run it. It borrows from terminals, plotter paper and engineering drawings: the twelve-column grid is marked in the top margin with numbered ticks, every content slide carries its index as `[03/08]`, titles, labels and figures are set in a monospaced face, tables are ruled on every edge, and one electric-blue signal colour marks the figure that matters. The structure is shown on purpose. What keeps it readable is that body text stays in Pretendard and every mark sits on the grid it shows.
|
|
4
|
+
|
|
5
|
+
## When to use it
|
|
6
|
+
|
|
7
|
+
Reach for Computational Brutalism for an architecture review, an infrastructure or reliability report, a developer-tool or AI-system launch given to engineers, a benchmark write-up, an incident retrospective or a hackathon demo. The content signals that point here are metrics with units (p99 latency, throughput, error budget, GPU hours), version numbers and identifiers, code or command names in the text, before-and-after measurements, and an audience that reads a table faster than a sentence. It is the first candidate for an engineering review or a developer launch, and the second for a data review that an engineering team will read.
|
|
8
|
+
|
|
9
|
+
## When it is the wrong choice
|
|
10
|
+
|
|
11
|
+
It fails for a board, an investor committee, finance or a public-sector report, where the grid marks read as unfinished work rather than as a style. It fails for a long Korean reading deck: the mono face sets only Latin and figures, so a page of Hangul titles loses most of the look while keeping its cost in width. It also fails for consumer marketing, for grief, safety or HR topics, and for a deck under a corporate brand guide. For a quiet data review choose Ledger or Night; for a pitch to investors, Signal or Neo-Brutalism.
|
|
12
|
+
|
|
13
|
+
## Tokens
|
|
14
|
+
|
|
15
|
+
The values below come from the pack file and are what the engine draws.
|
|
16
|
+
|
|
17
|
+
| Token | Value |
|
|
18
|
+
|---|---|
|
|
19
|
+
| ground / surface | #EEEDE7 / #E2E1D9 |
|
|
20
|
+
| ink / ink-muted / line | #111111 / #4D4C47 / #9A988F |
|
|
21
|
+
| accent / accent-deep / accent-tint | #1F43E0 / #14267A / #D9DEF2 |
|
|
22
|
+
| field / on-field | #111111 / #8CF5A6 (phosphor green on the terminal field) |
|
|
23
|
+
| positive / negative | #1C6B35 / #B3261E |
|
|
24
|
+
| series | #1F43E0, #111111, #7A786F |
|
|
25
|
+
| faces | JetBrains Mono Bold for display, title and numerals, JetBrains Mono Regular for labels, Pretendard Regular for body; Hangul inside a mono run is set in Pretendard; there is no A2Z map, so `faces: a2z` keeps these faces |
|
|
26
|
+
| ramp / hero | compact (body 13 pt, labels 11, sources 9) / hero step (60 pt) on cover and statement titles that fit, off with `hero: false`; figures at most title size |
|
|
27
|
+
| density / variance | 10 / 7 |
|
|
28
|
+
| radius / edge | 0 / border, 1 pt, in ink |
|
|
29
|
+
| decoration | hairline rules, column hairlines, outlined boxes, grid marks, kicker numerals |
|
|
30
|
+
| table | ruled grid on every cell edge, header in the label face, bold totals |
|
|
31
|
+
| chart | hairline gridlines, direct labels, the accent on the highlighted series over muted ones |
|
|
32
|
+
|
|
33
|
+
Density 10 sets the deck on the compact grid (24 pt side margins), body 13 pt and no step-up, as every pack in the family: an engineering review is read again after the meeting, so each slide keeps its basis and its source. The mono face runs wider than Pretendard, so the engine measures every mono title at its own width before it chooses a treatment; a long Latin title moves to a treatment with a wider frame rather than shrinking.
|
|
34
|
+
|
|
35
|
+
The fonts ship with the skill: JetBrains Mono is under the SIL Open Font License 1.1 with no Reserved Font Name, and the official Regular and Bold files are embedded unmodified with `--embed-fonts`.
|
|
36
|
+
|
|
37
|
+
## Treatments by slide role
|
|
38
|
+
|
|
39
|
+
Content, data, sequence and reference slides take `top-rule`; data with a takeaway takes `bottom-anchor`; image slides `bottom-anchor`; definitions `side-rail`; statements `statement`. The pack also pins a family's own title: `chart-insight` under `top-rule`, `table-insight` under `bottom-anchor`, `comparison` as a spec sheet under a `side-rail` title, and `step-diagram` under a large mono headline (`top-plain-large`). The engine lays out each allowed treatment, keeps the pinned or role treatment when the body fills, and otherwise takes the one that leaves the least empty band. Force one with `title: <id>` on the line after `layout:`.
|
|
40
|
+
|
|
41
|
+
## Families and variants
|
|
42
|
+
|
|
43
|
+
- `dashboard-grid` and `kpi-row` carry measured results: value, unit, label and basis in each cell.
|
|
44
|
+
- `chart-insight` and `full-chart` show a measured series with one highlighted line or bar.
|
|
45
|
+
- `table-insight` and `ledger-table` hold benchmark or capacity tables, ruled on every edge.
|
|
46
|
+
- `method` sets a pipeline or procedure as numbered stages with their inputs and outputs.
|
|
47
|
+
- `step-diagram` is a rollout or migration in three to five steps.
|
|
48
|
+
- `matrix-2x2` places options on two measured axes.
|
|
49
|
+
- `comparison` reads before and after, or two designs, across shared rows.
|
|
50
|
+
- `text-two-column` and `references-appendix` carry specifications and links.
|
|
51
|
+
- `quote` and `statement` hold one line an engineer said or one decision.
|
|
52
|
+
|
|
53
|
+
Covers are `cover-typographic`, `cover-index` and `cover-figures`; sections are `section-numeral` and `section-rule`; closings are `closing-decision-box`, `closing-ask` and `closing-summary-list`.
|
|
54
|
+
|
|
55
|
+
Display slides. The typographic cover is the terminal field from edge to edge: black, with the topic in phosphor green at display size, anchored low, and the date line above it. A statement sets its sentence in phosphor on the same black field. A big number is an outlined panel on the ground. A closing's decision sits in an outlined box. The grid marks and the slide index run on content slides only; a drenched statement goes without them.
|
|
56
|
+
|
|
57
|
+
## Do
|
|
58
|
+
|
|
59
|
+
- Give every figure its unit and its basis: `p99 182 ms`, `2026년 9월 기준`.
|
|
60
|
+
- Keep identifiers, versions and commands in the text as written; the mono face is for them.
|
|
61
|
+
- Put one blue figure on a slide; everything else stays ink.
|
|
62
|
+
- Rule a table on every edge and right-align its numbers.
|
|
63
|
+
- End on a decision box or an ask with the owner and the date.
|
|
64
|
+
|
|
65
|
+
## Avoid
|
|
66
|
+
|
|
67
|
+
- Body paragraphs in the mono face (the pack refuses a mono body).
|
|
68
|
+
- Fake code, fake terminal prompts or decorative binary strings; show real identifiers or none.
|
|
69
|
+
- Grid marks or the slide index in the accent colour.
|
|
70
|
+
- A second accent colour; the phosphor green belongs to the black field only.
|
|
71
|
+
- This direction for a board pack, a finance report or a sensitive topic.
|
|
72
|
+
|
|
73
|
+
## Two worked slides
|
|
74
|
+
|
|
75
|
+
A latency review shows the measured result with its basis, and lets the table carry the detail.
|
|
76
|
+
|
|
77
|
+
```markdown
|
|
78
|
+
---
|
|
79
|
+
layout: kpi-row
|
|
80
|
+
|
|
81
|
+
## API 게이트웨이 v3 전환 결과, 2026년 9월
|
|
82
|
+
|
|
83
|
+
| p99 지연 | 처리량 | 오류율 | 노드 수 |
|
|
84
|
+
|---|---|---|---|
|
|
85
|
+
| 182 ms | 41k rps | 0.07% | 24 |
|
|
86
|
+
| v2 410 ms | v2 18k rps | v2 0.31% | v2 40 |
|
|
87
|
+
|
|
88
|
+
> 운영 클러스터 4주 평균, 2026년 9월 (예시)
|
|
89
|
+
|
|
90
|
+
- 지연은 절반 아래로 줄었고, 노드는 40대에서 24대로 줄었다
|
|
91
|
+
- 오류율 0.07%는 SLO 0.1% 안쪽이다
|
|
92
|
+
- 출처: 예시 관측 대시보드, 2026년 9월 (예시)
|
|
93
|
+
---
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
A migration plan reads as a sequence with the condition each step must meet.
|
|
97
|
+
|
|
98
|
+
```markdown
|
|
99
|
+
---
|
|
100
|
+
layout: step-diagram
|
|
101
|
+
|
|
102
|
+
## Cut-over plan for the v3 gateway
|
|
103
|
+
|
|
104
|
+
- **1. Shadow** mirror 5% of traffic to v3 and compare responses
|
|
105
|
+
(1) Exit: 0 mismatches over 72 h
|
|
106
|
+
- **2. Canary** route 10% of live traffic to v3 in one region
|
|
107
|
+
(1) Exit: p99 under 250 ms, error rate under 0.1%
|
|
108
|
+
- **3. Ramp** move to 50%, then 100%, one region a day
|
|
109
|
+
(1) Exit: no rollback for 7 days
|
|
110
|
+
- **4. Retire** drain v2 and remove its 40 nodes
|
|
111
|
+
(1) Owner: example platform team
|
|
112
|
+
- Source: example rollout runbook, October 2026 (example)
|
|
113
|
+
---
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Examples
|
|
117
|
+
|
|
118
|
+
`13-engineering-review-computational-brutalism-ko.md`
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Neo-Brutalism
|
|
2
|
+
|
|
3
|
+
Neo-Brutalism is the loud direction, and it is loud on purpose. Every card is a flat yellow block with a thick black border and a hard black shadow offset down and to the right, with no blur at all. Titles are heavy and tight, the topic band is saturated blue, one pink-red accent marks the figure the slide is for, and the ground is a warm cream. Nothing is soft: no gradients, no rounded corners, no glow. It reads like a poster or a product sticker, so it suits a room that should feel energy, and it stays legible because every colour pair still meets the contrast floor.
|
|
4
|
+
|
|
5
|
+
## When to use it
|
|
6
|
+
|
|
7
|
+
Reach for Neo-Brutalism for a startup pitch at a demo day, a consumer product launch, a campaign kick-off, a creator or community event, a hackathon final or an education deck for a young audience. The content signals that point here are a short body (one claim and two or three facts per slide), three or four headline numbers, a launch or sign-up ask, and words such as 런칭, 출시, 데모데이, 캠페인, 크리에이터, or the user asking for something bold, punchy or "brutalist". It is the second candidate for the pitch deck type, after Signal, and the first when the user asks for a bold or playful look.
|
|
8
|
+
|
|
9
|
+
## When it is the wrong choice
|
|
10
|
+
|
|
11
|
+
It fails for a formal report, an academic talk, a board or finance review and any deck read alone later: the blocks take space a reader needs for detail, and a slide of long paragraphs between thick borders reads as noise. It is wrong for grief, safety, HR or financial-loss topics, and for a deck under a corporate brand guide. When the brief says "clean" or "minimal", Signal or Studio fits; when it says "report", Ledger or Gazette.
|
|
12
|
+
|
|
13
|
+
## Tokens
|
|
14
|
+
|
|
15
|
+
The values below come from the pack file and are what the engine draws.
|
|
16
|
+
|
|
17
|
+
| Token | Value |
|
|
18
|
+
|---|---|
|
|
19
|
+
| ground / surface | #FFF5E1 / #FFD43B (the yellow card) |
|
|
20
|
+
| ink / ink-muted / line | #111111 / #3A3A3A / #111111 |
|
|
21
|
+
| accent / accent-deep / accent-tint | #D81B5C / #6B0F2E / #FFC9DA |
|
|
22
|
+
| field / on-field | #2F4BFF / #FFFFFF |
|
|
23
|
+
| positive / negative | #137A43 / #111111 |
|
|
24
|
+
| series | #D81B5C, #2F4BFF, #111111, #137A43 |
|
|
25
|
+
| faces | Pretendard Bold for display, title, labels and numerals, Pretendard Regular for body; `faces: a2z` swaps to A2Z Black display, titles and numerals |
|
|
26
|
+
| register / ramp / hero | bold / presented (body 18 pt, labels 14, sources 12, titles 32, display 44) / allowed: a statement and a big figure may take the 72 pt hero step |
|
|
27
|
+
| density / variance | 10 / 7 |
|
|
28
|
+
| radius / edge | 0 / fill and border, 2.5 pt in ink |
|
|
29
|
+
| shadow | 6 pt offset at 45°, ink, fully opaque, no blur |
|
|
30
|
+
| table | yellow header, ruled grid, protagonist row in pink tint, bold totals |
|
|
31
|
+
| chart | no gridlines, direct labels, series in order (pink, blue, black) |
|
|
32
|
+
|
|
33
|
+
This is the family's bold register (`register: bold`): it sets presented type and the 72 pt hero step, so titles, figures and statements run large, but they fill the same slide-grid zones as every other pack. A title still sits in the one title zone and the body still starts at y 120; the register changes the size inside a zone, never the zone. The registry refuses presented type in a pack without `register: bold`, so a report pack cannot drift into this size by accident; every pack takes its own hero step on the cover and statements. A KPI row keeps its bordered cards, because the card is this direction's figure. The pink accent was darkened until a pink figure on a yellow card still holds 3:1 at title size. Losses use ink with a ▼ sign, because pink already means "look here".
|
|
34
|
+
|
|
35
|
+
The shadow is written into the file as a real outer shadow with a blur of zero, so PowerPoint, Keynote and LibreOffice all draw the same hard edge. Every block of the blue field (a band, a section page, a cover plate) carries the black border too.
|
|
36
|
+
|
|
37
|
+
## QA allowances
|
|
38
|
+
|
|
39
|
+
The yellow card, the blue band and the pink accent share a content slide inside the default OF-101 limit (four hue families; a fifth fails). The gate reads this pack's `qa:` block: `offset-shadow: true` lets OF-120 pass the hard shadow; a shadow with any blur still fails, and the same shadow in any pack without this allowance fails. Contrast floors are unchanged.
|
|
40
|
+
|
|
41
|
+
## Treatments by slide role
|
|
42
|
+
|
|
43
|
+
Content slides and data with a takeaway take `top-plain-large`; data, sequence, reference and definition slides take `band` (the title in white on the blue band); image slides `bottom-anchor`; statements `statement`. `kicker-numeral` is the third option for a sequence. The engine lays out every treatment the family allows, keeps the role's own when the body fills, and otherwise takes the one that leaves the least empty band. Force one with `title: <id>` on the line after `layout:`.
|
|
44
|
+
|
|
45
|
+
## Families and variants
|
|
46
|
+
|
|
47
|
+
- `kpi-row` sets two to four results as yellow cards, each with value, label and basis.
|
|
48
|
+
- `big-number` is a blue panel of related figures beside the facts that explain them.
|
|
49
|
+
- `comparison` reads before and after across shared rows.
|
|
50
|
+
- `process` and `step-diagram` show three to five steps with a numeral in the accent.
|
|
51
|
+
- `chart-insight` carries one growth chart with its takeaway beside it.
|
|
52
|
+
- `table-insight` holds the one table a pitch needs, usually unit economics.
|
|
53
|
+
- `image-split` pairs a product shot with three short points.
|
|
54
|
+
- `summary-box-list` sets two to four bordered boxes of one claim each.
|
|
55
|
+
- `agenda`, `quote` and `statement` keep the type loud and the page open.
|
|
56
|
+
|
|
57
|
+
Covers are `cover-typographic`, `cover-split-field` and `cover-numeral`; sections are `section-field` and `section-numeral`; closings are `closing-ask`, `closing-decision-box` and `closing-statement`.
|
|
58
|
+
|
|
59
|
+
Display slides. The typographic cover sets the topic in white on a blue plate across the lower half, bordered in black. A statement drenches the page in blue with the sentence in white. A big number is a blue field panel. A closing's next step sits in a bordered box with its shadow.
|
|
60
|
+
|
|
61
|
+
## Do
|
|
62
|
+
|
|
63
|
+
- Keep one claim per slide and write it in the first body line, in plain words.
|
|
64
|
+
- Give every figure its label and its basis in the card.
|
|
65
|
+
- Let the yellow cards carry figures and short labels, never paragraphs.
|
|
66
|
+
- End on `closing-ask` with the amount, its uses and the next meeting.
|
|
67
|
+
|
|
68
|
+
## Avoid
|
|
69
|
+
|
|
70
|
+
- Blurred or soft shadows, rounded corners and gradients; the look is flat and hard.
|
|
71
|
+
- Thin hairlines beside the 2.5 pt borders.
|
|
72
|
+
- More than three fill colours on one slide.
|
|
73
|
+
- Muted grey text on the yellow surface.
|
|
74
|
+
- This direction for formal reports or sensitive topics.
|
|
75
|
+
|
|
76
|
+
## Two worked slides
|
|
77
|
+
|
|
78
|
+
A launch deck opens its traction slide with four results as cards and two facts under them.
|
|
79
|
+
|
|
80
|
+
```markdown
|
|
81
|
+
---
|
|
82
|
+
layout: kpi-row
|
|
83
|
+
|
|
84
|
+
## 베타 8주 성과, 2026년 10월
|
|
85
|
+
|
|
86
|
+
| 가입자 | 주간 재방문 | 추천 가입 | 유료 전환 |
|
|
87
|
+
|---|---|---|---|
|
|
88
|
+
| 1만 2천 명 | 46% | 38% | 7.4% |
|
|
89
|
+
| 목표 1만 명 | 업계 평균 25% | 광고비 0원 | 목표 5% |
|
|
90
|
+
|
|
91
|
+
> 베타 운영 기록, 2026년 8-10월 (예시)
|
|
92
|
+
|
|
93
|
+
- 광고 없이 가입자 목표를 넘겼다: 셋 중 하나 이상이 친구 추천으로 왔다
|
|
94
|
+
- 유료 전환 7.4%는 목표 5%를 넘었고, 연 결제가 그중 60%다
|
|
95
|
+
- 출처: 예시 서비스 운영 대시보드, 2026년 10월 (예시)
|
|
96
|
+
---
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
The closing states the ask, shows where the money goes and names the next step.
|
|
100
|
+
|
|
101
|
+
```markdown
|
|
102
|
+
---
|
|
103
|
+
layout: closing-ask
|
|
104
|
+
|
|
105
|
+
## 시드 15억 원 사용 계획
|
|
106
|
+
|
|
107
|
+
| 쓰임 | 금액 | 시점 |
|
|
108
|
+
|---|---|---|
|
|
109
|
+
| 앱 개발 인력 4명 | 7억 원 | 2027년 상반기 |
|
|
110
|
+
| 크리에이터 제휴 200곳 | 4억 원 | 2027년 1분기 |
|
|
111
|
+
| 마케팅 실험 | 3억 원 | 상시 |
|
|
112
|
+
| 운영 예비비 | 1억 원 | 필요 시 |
|
|
113
|
+
| 합계 | 15억 원 | 12개월 |
|
|
114
|
+
|
|
115
|
+
> 투자금 쓰임 (예시 데이터)
|
|
116
|
+
|
|
117
|
+
- 요청: 시드 15억 원 투자 승인
|
|
118
|
+
- 기대 성과: 12개월 뒤 가입자 10만 명, 월 매출 2억 원
|
|
119
|
+
- 다음 단계: 11월 첫째 주 후속 미팅, 담당 예시 대표
|
|
120
|
+
---
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Examples
|
|
124
|
+
|
|
125
|
+
`14-launch-pitch-neo-brutalism-ko.md`
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Newsroom
|
|
2
|
+
|
|
3
|
+
Newsroom is the direction for a data story told to people who do not read tables: a public briefing, an explainer, a newsletter's deck, a talk that walks a general audience through a few numbers. It looks like a newspaper's graphics desk: a black masthead band behind the title of a data page and the cover, a heavy black rule under the other titles, grey charts with one orange series, labels on the lines, and a source and period under every figure. The title names the topic and its period; the finding leads the body, in the first line under the chart.
|
|
4
|
+
|
|
5
|
+
## When to use it
|
|
6
|
+
|
|
7
|
+
Reach for Newsroom when the deck is a handful of charts with one point each, written for readers outside the field: a city or school data briefing to residents, a survey result for members, a newsletter's "what the numbers say", a research explainer for the press, a public talk on prices, housing, climate or health figures. The content signals that point here are one or two charts per idea, a finding per chart, sources and periods on every figure and words such as 브리핑, 설명, 주민, 시민, 독자, 뉴스레터, 데이터로 본, explainer, briefing or "what the data says". It is the first candidate for a data story for the public, ahead of Gazette and Ledger.
|
|
8
|
+
|
|
9
|
+
## When it is the wrong choice
|
|
10
|
+
|
|
11
|
+
It fails for an internal, dense review where people read tables line by line (Ledger), for a pitch (Signal or Neo-Brutalism), for a lecture that builds an argument step by step (Chalk) and for a written report that happens to be a deck (Paper or Gazette). It is wrong when there are no figures: the grey-and-orange charts are the voice.
|
|
12
|
+
|
|
13
|
+
## Tokens
|
|
14
|
+
|
|
15
|
+
The values below come from the pack file and are what the engine draws.
|
|
16
|
+
|
|
17
|
+
| Token | Value |
|
|
18
|
+
|---|---|
|
|
19
|
+
| ground / surface | #FBFAF7 / #EEEDEA |
|
|
20
|
+
| ink / ink-muted / line | #111111 / #55534D / #CCCAC5 |
|
|
21
|
+
| accent / accent-deep / accent-tint | #C2410C / #7C2A08 / #FBE3D3 |
|
|
22
|
+
| field / on-field | #111111 / #FFFFFF |
|
|
23
|
+
| positive / negative | #1F6B3A / #111111 |
|
|
24
|
+
| series | #C2410C, #77746C, #2F5D8A, #111111 |
|
|
25
|
+
| faces | Pretendard Bold for display, title, labels and numerals, Pretendard Regular for body; `faces: a2z` swaps to A2Z Bold display, titles and numerals |
|
|
26
|
+
| ramp / hero | compact (body 13 pt, labels 11, sources 9) / hero step (60 pt) on cover and statement titles that fit, off with `hero: false`; figures at most title size |
|
|
27
|
+
| density / variance | 10 / 6 |
|
|
28
|
+
| radius / edge | 0 / fill |
|
|
29
|
+
| decoration | hairline rules, column hairlines, kicker numerals; the masthead band is the `band` title |
|
|
30
|
+
| table | open, no header fill, a rule under the header, bold totals |
|
|
31
|
+
| chart | horizontal gridlines, direct labels, the accent on the story's series over greys |
|
|
32
|
+
|
|
33
|
+
The orange holds 5.2:1 on the paper, so it can set a kicker word or a figure. The second series is a warm grey, the third a quiet blue for the one line a story compares against. Rules and surfaces are neutral greys: a warm-tinted rule reads as a second hue family beside the orange. A loss uses ink with a ▼ sign.
|
|
34
|
+
|
|
35
|
+
## QA allowances
|
|
36
|
+
|
|
37
|
+
None beyond the default craft floor. The source line under every figure is the house rule here, and the gate's source checks already ask for it.
|
|
38
|
+
|
|
39
|
+
## Treatments by slide role
|
|
40
|
+
|
|
41
|
+
Data slides take `band` (the title in white on the black masthead band across the top); data-with-takeaway and image slides take `bottom-anchor` (the title over a heavy black rule); content, reference and definition slides take `top-rule`; sequences `kicker-numeral`; statements `statement`. Every treatment draws in the slide grid's one title zone, so a band, a bottom-anchor and a top-rule title sit at the same place and only their surface or rule differs. Force one with `title: <id>` on the line after `layout:`.
|
|
42
|
+
|
|
43
|
+
## Families and variants
|
|
44
|
+
|
|
45
|
+
- `full-chart` gives one chart the whole body; `chart-insight` sets it beside two or three lines.
|
|
46
|
+
- `kpi-over-chart` puts the headline figures over the chart they come from.
|
|
47
|
+
- `big-number` and `kpi-row` carry a single figure or three.
|
|
48
|
+
- `figure-pair` sets two charts side by side for a before and after.
|
|
49
|
+
- `table-insight`, `comparison` and `timeline` hold the few tables and dates a story needs.
|
|
50
|
+
- `image-split`, `text-two-column` and `sidebar-note` explain a method or a term.
|
|
51
|
+
- `references-appendix` lists the sources at the end; `quote` and `statement` hold a resident's sentence or the story's one finding.
|
|
52
|
+
|
|
53
|
+
Covers are `cover-typographic`, `cover-figures` and `cover-index`; sections are `section-rule` and `section-numeral`; closings are `closing-summary-list`, `closing-statement` and `closing-ask`.
|
|
54
|
+
|
|
55
|
+
Display slides. The typographic cover sets the deck title in white on the black masthead band, with the meta line on the band and the deck's parts on the paper under it. A statement stands between two rules. A big number sits on the orange tint. A closing's next step stands under a rule. A deck index runs along the top of the display slides.
|
|
56
|
+
|
|
57
|
+
## Do
|
|
58
|
+
|
|
59
|
+
- Name the topic and its period in the title; put the finding (what changed, by how much, since when) in the first line of the body, where the gate expects a claim.
|
|
60
|
+
- Colour one series orange and leave the rest grey.
|
|
61
|
+
- Put the source and the period under every chart and table.
|
|
62
|
+
- Label lines and bars directly; a legend is for a chart that cannot take labels.
|
|
63
|
+
|
|
64
|
+
## Avoid
|
|
65
|
+
|
|
66
|
+
- More than one highlighted series on a chart.
|
|
67
|
+
- A chart without its source and period.
|
|
68
|
+
- 3D, gradients or pictograms standing in for numbers.
|
|
69
|
+
- This direction for a pitch, a lecture or an internal dense review.
|
|
70
|
+
|
|
71
|
+
## Two worked slides
|
|
72
|
+
|
|
73
|
+
A full chart names its topic in the title, keeps one orange line and states the finding under it.
|
|
74
|
+
|
|
75
|
+
```markdown
|
|
76
|
+
---
|
|
77
|
+
layout: full-chart
|
|
78
|
+
|
|
79
|
+
## 매매가 대비 전셋값 비율, 2023-2026년
|
|
80
|
+
|
|
81
|
+
::: chart type=line unit="%"
|
|
82
|
+
| 연도 | 우리 구 (%) | 시 평균 (%) |
|
|
83
|
+
|---|---|---|
|
|
84
|
+
| 2023년 | 55.2 | 56.0 |
|
|
85
|
+
| 2024년 | 57.1 | 56.8 |
|
|
86
|
+
| 2025년 | 59.4 | 57.9 |
|
|
87
|
+
| 2026년 | 61.3 | 58.6 |
|
|
88
|
+
> 매매가 대비 전셋값 비율, 해마다 6월 (예시 자료)
|
|
89
|
+
:::
|
|
90
|
+
|
|
91
|
+
- 우리 구의 전셋값이 처음으로 매매가의 60%를 넘었다
|
|
92
|
+
- 출처: 예시 구청 주택 통계, 2026년 (예시)
|
|
93
|
+
---
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
A KPI row carries three figures over what each means.
|
|
97
|
+
|
|
98
|
+
```markdown
|
|
99
|
+
---
|
|
100
|
+
layout: kpi-row
|
|
101
|
+
|
|
102
|
+
## 주민 설문 결과, 2026년 9월
|
|
103
|
+
|
|
104
|
+
| 응답자 | 이사 계획 | 첫째 이유 |
|
|
105
|
+
|---|---|---|
|
|
106
|
+
| 1,204명 | 31% | 주거비 |
|
|
107
|
+
| 9월 1-20일, 온라인·방문 | 2년 안에 이사할 생각 | 이사 계획자의 47% |
|
|
108
|
+
|
|
109
|
+
- 출처: 예시 구 주거 실태 설문, 2026년 (예시)
|
|
110
|
+
---
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Examples
|
|
114
|
+
|
|
115
|
+
`17-public-data-briefing-newsroom-ko.md`
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Riso
|
|
2
|
+
|
|
3
|
+
Riso is the direction for a community, culture or education programme: a workshop, a festival, a library or museum programme, a student club, a nonprofit's year in review. It prints in two spot inks on warm paper, the look of a risograph poster. Teal fills the cover, the section openers and the statements edge to edge and runs as a band behind the title of a data page; pink marks the one word or figure that matters on a content page. Everything else is dark-blue type, grey cards and grey rules, so the two inks are the only colours on the paper.
|
|
4
|
+
|
|
5
|
+
## When to use it
|
|
6
|
+
|
|
7
|
+
Reach for Riso when the audience is the public or a community rather than a board: a workshop or class opener, a festival or exhibition programme, a library, museum or youth-centre season, a volunteer briefing, a club's recruiting talk, a nonprofit's annual gathering. The content signals that point here are a programme with dates and places, a few counts (participants, sessions, volunteers), steps for taking part and words such as 워크숍, 프로그램, 축제, 동아리, 도서관, 주민, 참여, 자원봉사, community, programme or zine. It is the first candidate for a community, culture or education programme, ahead of Studio and Bauhaus.
|
|
8
|
+
|
|
9
|
+
## When it is the wrong choice
|
|
10
|
+
|
|
11
|
+
It fails for a board, finance or public-sector report, where two bright inks read as unserious, and for a dense data review (Ledger) or a data story for the general public that lives on its charts (Newsroom). It is wrong for grief, safety or financial-loss topics. For a design-history lecture, Bauhaus; for a pitch, Signal or Neo-Brutalism.
|
|
12
|
+
|
|
13
|
+
## Tokens
|
|
14
|
+
|
|
15
|
+
The values below come from the pack file and are what the engine draws.
|
|
16
|
+
|
|
17
|
+
| Token | Value |
|
|
18
|
+
|---|---|
|
|
19
|
+
| ground / surface | #F5F0E6 / #E4E2DE |
|
|
20
|
+
| ink / ink-muted / line | #1C2433 / #4E5361 / #C4C1BB |
|
|
21
|
+
| accent / accent-deep / accent-tint | #D1206B / #8A1043 / #F8D5E3 |
|
|
22
|
+
| field / on-field | #00727A / #FFFFFF |
|
|
23
|
+
| positive / negative | #1D6B45 / #1C2433 |
|
|
24
|
+
| series | #D1206B, #00727A, #1C2433, #8A6A00 |
|
|
25
|
+
| faces | Pretendard Bold for display, title, labels and numerals, Pretendard Regular for body; `faces: a2z` swaps to A2Z Bold display, titles and numerals |
|
|
26
|
+
| ramp / hero | compact (body 13 pt, labels 11, sources 9) / hero step (60 pt) on cover and statement titles that fit, off with `hero: false`; figures at most title size |
|
|
27
|
+
| density / variance | 10 / 7 |
|
|
28
|
+
| radius / edge | 6 / fill |
|
|
29
|
+
| decoration | a pink underline under top titles, teal colour fields, kicker numerals |
|
|
30
|
+
| table | a pink-tint header, a rule under it, grey banding, bold totals |
|
|
31
|
+
| chart | no gridlines, direct labels, the accent on the highlighted series over muted ones |
|
|
32
|
+
|
|
33
|
+
The pink is the fluorescent ink darkened until it holds 4.5:1 on the paper, so it can set a word; the teal holds white type at 5.6:1. A loss uses ink with a ▼ sign, since pink is the accent. The fourth series colour is an ochre that holds 3:1 on the paper.
|
|
34
|
+
|
|
35
|
+
## QA allowances
|
|
36
|
+
|
|
37
|
+
Teal and pink share a content slide inside the default OF-101 limit, since a band title in teal over a pink figure is the two-ink print this pack imitates; the two inks are the register, not a gate limit. The surface and the rules are grey on purpose: a warm beige card would read as a third hue family and fail.
|
|
38
|
+
|
|
39
|
+
## Treatments by slide role
|
|
40
|
+
|
|
41
|
+
Content, image and data-with-takeaway slides take `top-plain-large` (a large title over a pink underline); data and reference slides take `band` (the title in white on a teal band across the top); sequences `kicker-numeral`; definitions `side-rail`; statements `statement`. Every treatment draws in the slide grid's one title zone, so a band and a plain title sit at the same place and only their surface differs. Force one with `title: <id>` on the line after `layout:`.
|
|
42
|
+
|
|
43
|
+
## Families and variants
|
|
44
|
+
|
|
45
|
+
- `agenda` opens a programme with its sessions; `timeline` sets the season by date.
|
|
46
|
+
- `process` and `step-diagram` show how to take part, in three to five steps.
|
|
47
|
+
- `kpi-row` and `big-number` carry the few counts such a deck has (people, sessions, books).
|
|
48
|
+
- `summary-box-list`, `sidebar-note` and `text-two-column` explain what each session gives.
|
|
49
|
+
- `comparison` reads two tracks or two age groups side by side.
|
|
50
|
+
- `image-split` and `photo-grid` show last year's sessions; `chart-insight` and `table-insight` hold a small result.
|
|
51
|
+
- `quote` sets a participant's sentence; `statement` holds the programme's one idea.
|
|
52
|
+
|
|
53
|
+
Covers are `cover-typographic`, `cover-numeral` and `cover-split-field`; sections are `section-field` and `section-numeral`; closings are `closing-ask`, `closing-summary-list` and `closing-statement`.
|
|
54
|
+
|
|
55
|
+
Display slides. The typographic cover drenches the page in teal and sets the title in white on the cover's title zone, with the meta line above and the parts across the strip. A statement and a section opener take the same teal drench. A big number sits on a teal panel. A closing's next step stands on a teal band across the body floor.
|
|
56
|
+
|
|
57
|
+
## Do
|
|
58
|
+
|
|
59
|
+
- Keep full teal fields on display slides; on a content page teal is the title band and nothing more.
|
|
60
|
+
- Let pink mark one word or one figure on a content slide.
|
|
61
|
+
- Give every session a date, a place and who it is for.
|
|
62
|
+
- Write the way the organisers talk to participants: short, plain and inviting.
|
|
63
|
+
|
|
64
|
+
## Avoid
|
|
65
|
+
|
|
66
|
+
- A third ink beside pink and teal (black is the type, not an ink).
|
|
67
|
+
- The fluorescent pink as text; the darkened accent is the type colour.
|
|
68
|
+
- Gradients, grain or halftone painted to fake the print.
|
|
69
|
+
- This direction for a board, finance, public-sector or sensitive topic.
|
|
70
|
+
|
|
71
|
+
## Two worked slides
|
|
72
|
+
|
|
73
|
+
A process slide shows how to take part, one step per row.
|
|
74
|
+
|
|
75
|
+
```markdown
|
|
76
|
+
---
|
|
77
|
+
layout: process
|
|
78
|
+
|
|
79
|
+
## 참여는 이렇게: 신청부터 첫 모임까지
|
|
80
|
+
|
|
81
|
+
- **1. 신청** 10월 31일까지 도서관 누리집에서 한 사람씩 신청한다
|
|
82
|
+
- **2. 안내 문자** 모임 사흘 전 장소와 준비물을 문자로 받는다
|
|
83
|
+
- **3. 첫 모임** 11월 7일 저녁 7시, 3층 다목적실에서 만난다
|
|
84
|
+
- **4. 소모임 배정** 첫 모임에서 관심사별로 다섯 명씩 나눈다
|
|
85
|
+
- 출처: 예시 도서관 운영 계획, 2026년 (예시)
|
|
86
|
+
---
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
A KPI row carries last season's counts, with what they mean under each.
|
|
90
|
+
|
|
91
|
+
```markdown
|
|
92
|
+
---
|
|
93
|
+
layout: kpi-row
|
|
94
|
+
|
|
95
|
+
## 지난 시즌, 숫자로 본 우리 모임
|
|
96
|
+
|
|
97
|
+
| 참가자 | 모임 | 만든 책자 |
|
|
98
|
+
|---|---|---|
|
|
99
|
+
| 148명 | 24회 | 6권 |
|
|
100
|
+
| 2025년 가을·겨울 | 주 1회, 12주씩 두 번 | 소모임별 1권 |
|
|
101
|
+
|
|
102
|
+
- 참가자의 절반이 처음 온 주민이었다
|
|
103
|
+
- 출처: 예시 도서관 운영 보고, 2026년 (예시)
|
|
104
|
+
---
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Examples
|
|
108
|
+
|
|
109
|
+
`16-community-programme-riso-ko.md`
|
|
@@ -148,7 +148,7 @@ async function resolveAndRender(ast, templateName, outputs, options = {}) {
|
|
|
148
148
|
const meta = (ast.deck && ast.deck.metadata) || {};
|
|
149
149
|
const tonality = options.tonality || meta.tonality || null;
|
|
150
150
|
const templateObj = tonality
|
|
151
|
-
? templateRegistry.loadTonality(tonality, { density: meta.density, variance: meta.variance, canvas: meta.canvas, faces: options.faces || meta.faces })
|
|
151
|
+
? templateRegistry.loadTonality(tonality, { density: meta.density, variance: meta.variance, canvas: meta.canvas, faces: options.faces || meta.faces, hero: meta.hero, decoration: meta.decoration })
|
|
152
152
|
: templateRegistry.loadTemplate(templateName);
|
|
153
153
|
if (tonality) {
|
|
154
154
|
const d = templateObj.pack.dials;
|