@litfamily/litgrok 1.0.13 → 1.0.15
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/.grok/hooks/auto-handoff-gate.mjs +15 -2
- package/.grok/rules/00-litgrok.md +1 -1
- package/.grok/skills/frontend-ui-ux/THIRD-PARTY-NOTICE.txt +0 -5
- package/.grok/skills/frontend-ui-ux/references/slop-register.md +4 -4
- package/.grok/skills/frontend-ui-ux/scripts/import-design-intelligence.mjs +1 -1
- package/.grok/skills/lit-docx/SKILL.md +59 -11
- package/.grok/skills/lit-docx/examples/01-report-ko.md +137 -0
- package/.grok/skills/lit-docx/examples/02-brief-ko.md +82 -0
- package/.grok/skills/lit-docx/examples/03-manual-ko.md +118 -0
- package/.grok/skills/lit-docx/examples/04-proposal-ko.md +92 -0
- package/.grok/skills/lit-docx/examples/05-memo-en.md +42 -0
- package/.grok/skills/lit-docx/examples/06-journal-en.md +90 -0
- package/.grok/skills/lit-docx/examples/07-report-en.md +103 -0
- package/.grok/skills/lit-docx/examples/08-proposal-en.md +90 -0
- package/.grok/skills/lit-docx/examples/09-memo-ko.md +41 -0
- package/.grok/skills/lit-docx/references/components.md +151 -0
- package/.grok/skills/lit-docx/references/direction-step.md +129 -0
- package/.grok/skills/lit-docx/references/page-composition.md +129 -0
- package/.grok/skills/lit-docx/references/tonalities/brief.md +98 -0
- package/.grok/skills/lit-docx/references/tonalities/journal.md +100 -0
- package/.grok/skills/lit-docx/references/tonalities/manual.md +107 -0
- package/.grok/skills/lit-docx/references/tonalities/memo.md +95 -0
- package/.grok/skills/lit-docx/references/tonalities/proposal.md +105 -0
- package/.grok/skills/lit-docx/references/tonalities/report.md +114 -0
- package/.grok/skills/lit-docx/scripts/convert_md_to_docx.py +394 -51
- package/.grok/skills/lit-docx/scripts/docx_design.py +2446 -0
- package/.grok/skills/lit-docx/scripts/docx_gate.py +203 -0
- package/.grok/skills/lit-docx/scripts/docx_layout.py +959 -0
- package/.grok/skills/lit-docx/scripts/run.mjs +3 -2
- package/.grok/skills/lit-docx/scripts/slop_lint.py +63 -17
- package/.grok/skills/lit-docx/templates/tonalities/brief.yaml +29 -0
- package/.grok/skills/lit-docx/templates/tonalities/journal.yaml +26 -0
- package/.grok/skills/lit-docx/templates/tonalities/manual.yaml +27 -0
- package/.grok/skills/lit-docx/templates/tonalities/memo.yaml +27 -0
- package/.grok/skills/lit-docx/templates/tonalities/proposal.yaml +27 -0
- package/.grok/skills/lit-docx/templates/tonalities/report.yaml +27 -0
- package/.grok/skills/lit-pptx/NOTICE.md +1 -1
- package/.grok/skills/lit-pptx/SKILL.md +70 -14
- package/.grok/skills/lit-pptx/agents/analyst.md +1 -1
- package/.grok/skills/lit-pptx/agents/thesis.md +2 -2
- package/.grok/skills/lit-pptx/examples/01-pitch-signal-ko.md +175 -0
- package/.grok/skills/lit-pptx/examples/02-business-review-ledger-ko.md +199 -0
- package/.grok/skills/lit-pptx/examples/03-research-talk-paper-en.md +177 -0
- package/.grok/skills/lit-pptx/examples/04-lecture-chalk-ko.md +176 -0
- package/.grok/skills/lit-pptx/examples/05-data-review-night-en.md +221 -0
- package/.grok/skills/lit-pptx/examples/06-image-led-atlas-en.md +143 -0
- package/.grok/skills/lit-pptx/examples/07-briefing-gazette-ko.md +192 -0
- package/.grok/skills/lit-pptx/examples/08-status-update-ledger-en.md +168 -0
- package/.grok/skills/lit-pptx/examples/09-pitch-studio-en.md +157 -0
- package/.grok/skills/lit-pptx/examples/10-image-led-studio-ko.md +175 -0
- package/.grok/skills/lit-pptx/examples/11-business-review-night-en.md +181 -0
- package/.grok/skills/lit-pptx/examples/12-status-update-gazette-ko.md +199 -0
- package/.grok/skills/lit-pptx/pretendard-font/public/static/Pretendard-Bold.otf +0 -0
- package/.grok/skills/lit-pptx/pretendard-font/public/static/Pretendard-Regular.otf +0 -0
- package/.grok/skills/lit-pptx/references/density-and-fill.md +155 -0
- package/.grok/skills/lit-pptx/references/direction-step.md +211 -0
- package/.grok/skills/lit-pptx/references/layout-families.md +193 -0
- package/.grok/skills/lit-pptx/references/title-treatments.md +134 -0
- package/.grok/skills/lit-pptx/references/tonalities/atlas.md +124 -0
- package/.grok/skills/lit-pptx/references/tonalities/chalk.md +135 -0
- package/.grok/skills/lit-pptx/references/tonalities/gazette.md +127 -0
- package/.grok/skills/lit-pptx/references/tonalities/ledger.md +134 -0
- package/.grok/skills/lit-pptx/references/tonalities/night.md +132 -0
- package/.grok/skills/lit-pptx/references/tonalities/paper.md +127 -0
- package/.grok/skills/lit-pptx/references/tonalities/signal.md +118 -0
- package/.grok/skills/lit-pptx/references/tonalities/studio.md +123 -0
- package/.grok/skills/lit-pptx/scripts/compile-deck.js +65 -17
- package/.grok/skills/lit-pptx/scripts/craft_extras.py +82 -18
- package/.grok/skills/lit-pptx/scripts/deck_output.py +598 -0
- package/.grok/skills/lit-pptx/scripts/embed_fonts.py +1 -1
- package/.grok/skills/lit-pptx/scripts/inventory.py +6 -2
- package/.grok/skills/lit-pptx/scripts/lib/directive-parser.js +2 -2
- package/.grok/skills/lit-pptx/scripts/lib/grid-resolver.js +521 -0
- package/.grok/skills/lit-pptx/scripts/lib/layout-resolver.js +401 -16
- package/.grok/skills/lit-pptx/scripts/lib/markdown-loader.js +6 -4
- package/.grok/skills/lit-pptx/scripts/lib/render-adapter-html.js +2 -2
- package/.grok/skills/lit-pptx/scripts/lib/render-adapter-pptx.js +500 -126
- package/.grok/skills/lit-pptx/scripts/lib/render-pack.js +3558 -0
- package/.grok/skills/lit-pptx/scripts/lib/slide-ast.js +54 -6
- package/.grok/skills/lit-pptx/scripts/lib/template-registry.js +335 -11
- package/.grok/skills/lit-pptx/scripts/qa_deck.py +43 -10
- package/.grok/skills/lit-pptx/scripts/run.mjs +3 -2
- package/.grok/skills/lit-pptx/scripts/validate_pptx.py +17 -5
- package/.grok/skills/lit-pptx/templates/boilerplate_professional.css +6 -6
- package/.grok/skills/lit-pptx/templates/enrolled/AZURE-A2Z/layout-mapping.yaml +1 -1
- package/.grok/skills/lit-pptx/templates/enrolled/AZURE-A2Z/template.yaml +4 -1
- package/.grok/skills/lit-pptx/templates/enrolled/AZURE-PRO/layout-mapping.yaml +1 -1
- package/.grok/skills/lit-pptx/templates/enrolled/AZURE-PRO/template.yaml +4 -1
- package/.grok/skills/lit-pptx/templates/tonalities/atlas/pack.yaml +99 -0
- package/.grok/skills/lit-pptx/templates/tonalities/chalk/pack.yaml +104 -0
- package/.grok/skills/lit-pptx/templates/tonalities/gazette/pack.yaml +99 -0
- package/.grok/skills/lit-pptx/templates/tonalities/ledger/pack.yaml +100 -0
- package/.grok/skills/lit-pptx/templates/tonalities/night/pack.yaml +100 -0
- package/.grok/skills/lit-pptx/templates/tonalities/paper/pack.yaml +105 -0
- package/.grok/skills/lit-pptx/templates/tonalities/signal/pack.yaml +101 -0
- package/.grok/skills/lit-pptx/templates/tonalities/studio/pack.yaml +99 -0
- package/.grok/skills/lit-typographic-motion/THIRD_PARTY_NOTICES +1 -1
- package/.grok/skills/lit-typographic-motion/fonts/pins.json +6 -6
- package/.grok/skills/lit-typographic-motion/references/runtime.md +1 -1
- package/.grok/skills/lit-typographic-motion/references/style-bible.md +2 -2
- package/.grok/skills/lit-typographic-motion/references/type-craft.md +2 -2
- package/.grok/skills/lit-typographic-motion/scripts/lib/gate.mjs +1 -1
- package/.grok/skills/litgrok/SKILL.md +1 -1
- package/.grok-plugin/plugin.json +1 -1
- package/CHANGELOG.md +11 -0
- package/README.md +9 -9
- package/README_ko-KR.md +9 -9
- package/docs/assets/readme/badge-version.svg +1 -1
- package/docs/reference.md +1 -1
- package/docs/reference_ko-KR.md +1 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/.grok/skills/lit-pptx/pretendard-font/public/static/PretendardGOV-Bold.otf +0 -0
- package/.grok/skills/lit-pptx/pretendard-font/public/static/PretendardGOV-Regular.otf +0 -0
|
@@ -55,12 +55,18 @@ def _load_terms() -> tuple[list[str], list[str], bool, bool]:
|
|
|
55
55
|
def _build_regex(terms: list[str], case_insensitive: bool, whole_word: bool) -> re.Pattern[str] | None:
|
|
56
56
|
if not terms:
|
|
57
57
|
return None
|
|
58
|
-
|
|
58
|
+
# An acronym (RAM, FTO) is a word in capitals: matched as that word, so "diagram" or "program"
|
|
59
|
+
# does not contain it. Every other term keeps the file's case and word settings.
|
|
60
|
+
acronyms = [term for term in terms if re.fullmatch(r"[A-Z]{2,5}", term)]
|
|
61
|
+
escaped = [re.escape(term) for term in terms if term not in acronyms]
|
|
59
62
|
pattern = "|".join(escaped)
|
|
60
|
-
if whole_word:
|
|
63
|
+
if whole_word and pattern:
|
|
61
64
|
pattern = rf"(?:(?<=\W)|^)(?:{pattern})(?:(?=\W)|$)"
|
|
62
|
-
|
|
63
|
-
|
|
65
|
+
if case_insensitive and pattern:
|
|
66
|
+
pattern = f"(?i:{pattern})"
|
|
67
|
+
if acronyms:
|
|
68
|
+
pattern = "|".join(filter(None, [pattern, rf"(?<![A-Za-z])(?:{'|'.join(map(re.escape, acronyms))})(?![A-Za-z])"]))
|
|
69
|
+
return re.compile(pattern)
|
|
64
70
|
|
|
65
71
|
|
|
66
72
|
def _shape_text(shape) -> str:
|
|
@@ -103,6 +109,10 @@ def _slide_has_title(slide, slide_height: int | None) -> bool:
|
|
|
103
109
|
title_shape = getattr(slide.shapes, "title", None)
|
|
104
110
|
if title_shape is not None and _shape_text(title_shape):
|
|
105
111
|
return True
|
|
112
|
+
# A tonality deck names its title frame by treatment (title@side-rail, title@bottom-anchor, ...),
|
|
113
|
+
# wherever the treatment puts it on the slide.
|
|
114
|
+
if any(str(getattr(shape, "name", "")).startswith("title@") and _shape_text(shape) for shape in slide.shapes):
|
|
115
|
+
return True
|
|
106
116
|
for shape in slide.shapes:
|
|
107
117
|
if not getattr(shape, "is_placeholder", False):
|
|
108
118
|
continue
|
|
@@ -166,7 +176,9 @@ def lint(path: str | Path) -> dict[str, Any]:
|
|
|
166
176
|
default_font_hits.append(f"slide {slide_idx}: {font_name}")
|
|
167
177
|
|
|
168
178
|
last_slide_text = "\n".join(_shape_text(shape) for shape in prs.slides[-1].shapes if getattr(shape, "has_text_frame", False)).lower() if prs.slides else ""
|
|
169
|
-
|
|
179
|
+
# A closing references page is the deck's source note in its long form.
|
|
180
|
+
has_source_note = "source:" in last_slide_text or "출처" in last_slide_text or bool(
|
|
181
|
+
re.search(r"^\s*(references|참고\s*문헌)\s*$", last_slide_text, re.MULTILINE))
|
|
170
182
|
|
|
171
183
|
failures = {
|
|
172
184
|
"missing_titles": bool(missing_titles),
|
|
@@ -4,32 +4,32 @@
|
|
|
4
4
|
@font-face {
|
|
5
5
|
font-family: "Pretendard";
|
|
6
6
|
font-weight: 300;
|
|
7
|
-
src: url("../pretendard-font/public/static/
|
|
7
|
+
src: url("../pretendard-font/public/static/Pretendard-Light.otf") format("opentype");
|
|
8
8
|
}
|
|
9
9
|
@font-face {
|
|
10
10
|
font-family: "Pretendard";
|
|
11
11
|
font-weight: 400;
|
|
12
|
-
src: url("../pretendard-font/public/static/
|
|
12
|
+
src: url("../pretendard-font/public/static/Pretendard-Regular.otf") format("opentype");
|
|
13
13
|
}
|
|
14
14
|
@font-face {
|
|
15
15
|
font-family: "Pretendard";
|
|
16
16
|
font-weight: 500;
|
|
17
|
-
src: url("../pretendard-font/public/static/
|
|
17
|
+
src: url("../pretendard-font/public/static/Pretendard-Medium.otf") format("opentype");
|
|
18
18
|
}
|
|
19
19
|
@font-face {
|
|
20
20
|
font-family: "Pretendard";
|
|
21
21
|
font-weight: 600;
|
|
22
|
-
src: url("../pretendard-font/public/static/
|
|
22
|
+
src: url("../pretendard-font/public/static/Pretendard-SemiBold.otf") format("opentype");
|
|
23
23
|
}
|
|
24
24
|
@font-face {
|
|
25
25
|
font-family: "Pretendard";
|
|
26
26
|
font-weight: 700;
|
|
27
|
-
src: url("../pretendard-font/public/static/
|
|
27
|
+
src: url("../pretendard-font/public/static/Pretendard-Bold.otf") format("opentype");
|
|
28
28
|
}
|
|
29
29
|
@font-face {
|
|
30
30
|
font-family: "Pretendard";
|
|
31
31
|
font-weight: 800;
|
|
32
|
-
src: url("../pretendard-font/public/static/
|
|
32
|
+
src: url("../pretendard-font/public/static/Pretendard-ExtraBold.otf") format("opentype");
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
:root {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Layout Mapping — AZURE-PRO (16:9, 13.333 x 7.5 in). Positions in inches.
|
|
2
|
-
#
|
|
2
|
+
# rich-blocks capability (template.yaml pack:) → body→cards, kpi-table→KPI cards, cover title **emphasis**.
|
|
3
3
|
|
|
4
4
|
layouts:
|
|
5
5
|
cover:
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
name: AZURE-A2Z
|
|
2
2
|
version: "1.0.0"
|
|
3
3
|
label: "Azure Professional (에이투지체 / A2Z)"
|
|
4
|
-
render_style: azure
|
|
5
4
|
description: "Flagship SOTA blue-and-white deck — 16:9 widescreen, Pretendard, geometric gradient accents, rounded tint cards, numbered chips, KPI cards. Pro-designer aesthetic."
|
|
6
5
|
|
|
7
6
|
fonts:
|
|
@@ -35,3 +34,7 @@ global_typography:
|
|
|
35
34
|
bullet_char: "•"
|
|
36
35
|
bullet_color: "1D4ED8"
|
|
37
36
|
section_accent: "1D4ED8"
|
|
37
|
+
|
|
38
|
+
# Read as a legacy pack: what this template can draw beyond plain text regions.
|
|
39
|
+
pack:
|
|
40
|
+
capabilities: [rich-blocks, recolor, font-swap, mesh-background]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Layout Mapping — AZURE-PRO (16:9, 13.333 x 7.5 in). Positions in inches.
|
|
2
|
-
#
|
|
2
|
+
# rich-blocks capability (template.yaml pack:) → body→cards, kpi-table→KPI cards, cover title **emphasis**.
|
|
3
3
|
|
|
4
4
|
layouts:
|
|
5
5
|
cover:
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
name: AZURE-PRO
|
|
2
2
|
version: "1.0.0"
|
|
3
3
|
label: "Azure Professional"
|
|
4
|
-
render_style: azure
|
|
5
4
|
description: "Flagship SOTA blue-and-white deck — 16:9 widescreen, Pretendard, geometric gradient accents, rounded tint cards, numbered chips, KPI cards. Pro-designer aesthetic."
|
|
6
5
|
|
|
7
6
|
fonts:
|
|
@@ -35,3 +34,7 @@ global_typography:
|
|
|
35
34
|
bullet_char: "•"
|
|
36
35
|
bullet_color: "1D4ED8"
|
|
37
36
|
section_accent: "1D4ED8"
|
|
37
|
+
|
|
38
|
+
# Read as a legacy pack: what this template can draw beyond plain text regions.
|
|
39
|
+
pack:
|
|
40
|
+
capabilities: [rich-blocks, recolor, font-swap, mesh-background]
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Atlas: pictures lead and text follows. Photographs bleed to the edge, titles sit on dark panels
|
|
2
|
+
# or under large images, and the images supply most of the colour. A poor fit when real pictures
|
|
3
|
+
# are scarce, because the layouts become empty frames.
|
|
4
|
+
id: atlas
|
|
5
|
+
name: Atlas
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
intent: "Image-led decks: products, portfolios, places, field work."
|
|
8
|
+
canvas: ["16:9", "4:3"]
|
|
9
|
+
|
|
10
|
+
# LitGrok bundles Pretendard Regular and Bold only: title range comes from size, colour and placement.
|
|
11
|
+
faces:
|
|
12
|
+
display: Pretendard Regular
|
|
13
|
+
title: Pretendard Bold
|
|
14
|
+
body: Pretendard Regular
|
|
15
|
+
label: Pretendard Regular
|
|
16
|
+
numeral: Pretendard Regular
|
|
17
|
+
faces-pretendard-only:
|
|
18
|
+
display: Pretendard Regular
|
|
19
|
+
title: Pretendard Bold
|
|
20
|
+
body: Pretendard Regular
|
|
21
|
+
label: Pretendard Regular
|
|
22
|
+
numeral: Pretendard Regular
|
|
23
|
+
|
|
24
|
+
palette:
|
|
25
|
+
ground: "#FFFFFF"
|
|
26
|
+
surface: "#F3F4F5"
|
|
27
|
+
ink: "#1A1D21"
|
|
28
|
+
ink-muted: "#555B63"
|
|
29
|
+
line: "#D6D9DD"
|
|
30
|
+
accent: "#2B4C7E"
|
|
31
|
+
accent-deep: "#1B2F4E"
|
|
32
|
+
accent-tint: "#E6ECF4"
|
|
33
|
+
field: "#1A1D21"
|
|
34
|
+
on-field: "#FFFFFF"
|
|
35
|
+
positive: "#1E7A3F"
|
|
36
|
+
negative: "#B3261E"
|
|
37
|
+
series: ["#2B4C7E", "#555B63", "#8A6A2E", "#3E7A5A"]
|
|
38
|
+
|
|
39
|
+
ramp: reading
|
|
40
|
+
hero: false
|
|
41
|
+
type-voice:
|
|
42
|
+
title-tracking: 0
|
|
43
|
+
display-tracking: -1
|
|
44
|
+
latin-case: sentence
|
|
45
|
+
figures: proportional
|
|
46
|
+
|
|
47
|
+
density: 10
|
|
48
|
+
variance: 7
|
|
49
|
+
radius: 0
|
|
50
|
+
edge: fill
|
|
51
|
+
|
|
52
|
+
treatments: [overlay, bottom-anchor, side-rail, top-plain-large, statement]
|
|
53
|
+
role-defaults:
|
|
54
|
+
content: side-rail
|
|
55
|
+
data: top-plain-large
|
|
56
|
+
data-takeaway: bottom-anchor
|
|
57
|
+
sequence: top-plain-large
|
|
58
|
+
image: overlay
|
|
59
|
+
statement: statement
|
|
60
|
+
reference: side-rail
|
|
61
|
+
definition: side-rail
|
|
62
|
+
|
|
63
|
+
decoration: [caption-band, hairline-rule, colour-field]
|
|
64
|
+
layout-families: [image-full, image-split, photo-grid, figure-pair, asymmetric-feature, kpi-row, comparison, timeline, text-column, statement]
|
|
65
|
+
# Display slides: how a type-led cover, a statement, a big number and a closing's next step are
|
|
66
|
+
# drawn under this pack (references/layout-families.md, "Display slides").
|
|
67
|
+
display:
|
|
68
|
+
cover: plate
|
|
69
|
+
statement: drench
|
|
70
|
+
number: tint
|
|
71
|
+
closing: band
|
|
72
|
+
covers: [cover-full-image, cover-split-image, cover-typographic]
|
|
73
|
+
sections: [section-image, section-field]
|
|
74
|
+
closings: [closing-contact-split, closing-ask]
|
|
75
|
+
|
|
76
|
+
table:
|
|
77
|
+
style: light-grid
|
|
78
|
+
header: none
|
|
79
|
+
header-ink: ink
|
|
80
|
+
rules: rows
|
|
81
|
+
banding: none
|
|
82
|
+
numbers: right-tabular
|
|
83
|
+
totals: bold
|
|
84
|
+
chart:
|
|
85
|
+
gridlines: hairline
|
|
86
|
+
labels: direct
|
|
87
|
+
highlight: accent-on-muted
|
|
88
|
+
annotation: off
|
|
89
|
+
image:
|
|
90
|
+
bleed: allowed
|
|
91
|
+
crop: allowed
|
|
92
|
+
frame: none
|
|
93
|
+
|
|
94
|
+
fill-order: [anchor-visual, change-family, distribute, step-up]
|
|
95
|
+
avoid:
|
|
96
|
+
- text placed straight on photographs
|
|
97
|
+
- images in card frames
|
|
98
|
+
- more than three images in one row
|
|
99
|
+
- grey placeholder boxes in a delivered deck
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Chalk: a lesson laid out in order. Numbered steps, one marked idea per slide, a fenced box for the
|
|
2
|
+
# definition or the usual mistake, rounded surfaces and a warm rust accent for what is being taught.
|
|
3
|
+
# A poor fit for decision decks, where the step rhythm reads as filler.
|
|
4
|
+
id: chalk
|
|
5
|
+
name: Chalk
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
intent: "Teaching decks: steps, worked examples, definitions."
|
|
8
|
+
canvas: ["16:9", "4:3"]
|
|
9
|
+
|
|
10
|
+
# LitGrok bundles Pretendard Regular and Bold only: title range comes from size, colour and placement.
|
|
11
|
+
faces:
|
|
12
|
+
display: Pretendard Bold
|
|
13
|
+
title: Pretendard Bold
|
|
14
|
+
body: Pretendard Regular
|
|
15
|
+
label: Pretendard Regular
|
|
16
|
+
numeral: Pretendard Bold
|
|
17
|
+
faces-pretendard-only:
|
|
18
|
+
display: Pretendard Bold
|
|
19
|
+
title: Pretendard Bold
|
|
20
|
+
body: Pretendard Regular
|
|
21
|
+
label: Pretendard Regular
|
|
22
|
+
numeral: Pretendard Bold
|
|
23
|
+
|
|
24
|
+
palette:
|
|
25
|
+
ground: "#FAFBFC"
|
|
26
|
+
surface: "#EEF2F5"
|
|
27
|
+
ink: "#1F2933"
|
|
28
|
+
ink-muted: "#4E5A66"
|
|
29
|
+
line: "#CBD3DA"
|
|
30
|
+
accent: "#9A3412"
|
|
31
|
+
accent-deep: "#6B2409"
|
|
32
|
+
accent-tint: "#FCEBE0"
|
|
33
|
+
field: "#1F3B33"
|
|
34
|
+
on-field: "#FFFFFF"
|
|
35
|
+
positive: "#1E7A3F"
|
|
36
|
+
negative: "#B3261E"
|
|
37
|
+
series: ["#9A3412", "#1F3B33", "#4E5A66", "#2E6A8E"]
|
|
38
|
+
|
|
39
|
+
ramp: reading
|
|
40
|
+
hero: false
|
|
41
|
+
type-voice:
|
|
42
|
+
title-tracking: -1
|
|
43
|
+
display-tracking: -1
|
|
44
|
+
latin-case: sentence
|
|
45
|
+
figures: proportional
|
|
46
|
+
|
|
47
|
+
density: 10
|
|
48
|
+
variance: 6
|
|
49
|
+
radius: 6
|
|
50
|
+
edge: fill
|
|
51
|
+
|
|
52
|
+
treatments: [kicker-numeral, top-rule, side-rail, statement]
|
|
53
|
+
role-defaults:
|
|
54
|
+
content: top-rule
|
|
55
|
+
data: top-rule
|
|
56
|
+
data-takeaway: side-rail
|
|
57
|
+
sequence: kicker-numeral
|
|
58
|
+
image: side-rail
|
|
59
|
+
statement: statement
|
|
60
|
+
reference: top-rule
|
|
61
|
+
definition: side-rail
|
|
62
|
+
|
|
63
|
+
# A comparison is drawn with its criteria on the board rail.
|
|
64
|
+
structure:
|
|
65
|
+
comparison: side-rail
|
|
66
|
+
|
|
67
|
+
decoration: [accent-rule, mark-underline, rail-fill, numeral]
|
|
68
|
+
# Under a side title the rail is the board: a dark field with the title set in white.
|
|
69
|
+
rail: field
|
|
70
|
+
layout-families: [step-diagram, process, method, sidebar-note, comparison, image-split, quote, agenda, statement, text-column, table-insight]
|
|
71
|
+
# Display slides: how a type-led cover, a statement, a big number and a closing's next step are
|
|
72
|
+
# drawn under this pack (references/layout-families.md, "Display slides").
|
|
73
|
+
display:
|
|
74
|
+
cover: rail
|
|
75
|
+
statement: drench
|
|
76
|
+
number: tint
|
|
77
|
+
closing: box
|
|
78
|
+
covers: [cover-rail, cover-typographic, cover-numeral]
|
|
79
|
+
sections: [section-numeral, section-rail]
|
|
80
|
+
closings: [closing-summary-list, closing-ask]
|
|
81
|
+
|
|
82
|
+
table:
|
|
83
|
+
style: header-fill
|
|
84
|
+
header: accent-tint
|
|
85
|
+
header-ink: accent-deep
|
|
86
|
+
rules: rows
|
|
87
|
+
banding: none
|
|
88
|
+
numbers: right-tabular
|
|
89
|
+
totals: bold
|
|
90
|
+
chart:
|
|
91
|
+
gridlines: hairline
|
|
92
|
+
labels: direct
|
|
93
|
+
highlight: accent-on-muted
|
|
94
|
+
annotation: on
|
|
95
|
+
image:
|
|
96
|
+
bleed: side-only
|
|
97
|
+
crop: none
|
|
98
|
+
frame: none
|
|
99
|
+
|
|
100
|
+
fill-order: [distribute, step-up, change-family, anchor-visual]
|
|
101
|
+
avoid:
|
|
102
|
+
- more than one marked term per slide
|
|
103
|
+
- numerals on points that are not a sequence
|
|
104
|
+
- definitions buried in bullets instead of the sidebar
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Gazette: a Korean briefing paper turned into slides. A slate band holds the title on content pages,
|
|
2
|
+
# a boxed one-line conclusion opens the body, and itemised evidence runs in two columns at reading
|
|
3
|
+
# size with one red key line. A poor fit for a live talk: what helps a reader swamps a listener.
|
|
4
|
+
id: gazette
|
|
5
|
+
name: Gazette
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
intent: "Korean briefing decks that are read, not presented."
|
|
8
|
+
canvas: ["16:9", "4:3"]
|
|
9
|
+
|
|
10
|
+
# LitGrok bundles Pretendard Regular and Bold only: title range comes from size, colour and placement.
|
|
11
|
+
faces:
|
|
12
|
+
display: Pretendard Bold
|
|
13
|
+
title: Pretendard Bold
|
|
14
|
+
body: Pretendard Regular
|
|
15
|
+
label: Pretendard Regular
|
|
16
|
+
numeral: Pretendard Bold
|
|
17
|
+
faces-pretendard-only:
|
|
18
|
+
display: Pretendard Bold
|
|
19
|
+
title: Pretendard Bold
|
|
20
|
+
body: Pretendard Regular
|
|
21
|
+
label: Pretendard Regular
|
|
22
|
+
numeral: Pretendard Bold
|
|
23
|
+
|
|
24
|
+
palette:
|
|
25
|
+
ground: "#FFFFFF"
|
|
26
|
+
surface: "#F1F4F8"
|
|
27
|
+
ink: "#1A2230"
|
|
28
|
+
ink-muted: "#4A5568"
|
|
29
|
+
line: "#C8D0DA"
|
|
30
|
+
accent: "#A61B1B"
|
|
31
|
+
accent-deep: "#233A4F"
|
|
32
|
+
accent-tint: "#E8EEF4"
|
|
33
|
+
field: "#233A4F"
|
|
34
|
+
on-field: "#FFFFFF"
|
|
35
|
+
positive: "#1E7A3F"
|
|
36
|
+
negative: "#1A2230"
|
|
37
|
+
series: ["#A61B1B", "#233A4F", "#4A5568", "#7A6A2A"]
|
|
38
|
+
|
|
39
|
+
ramp: reading
|
|
40
|
+
hero: false
|
|
41
|
+
type-voice:
|
|
42
|
+
title-tracking: -1
|
|
43
|
+
display-tracking: -1
|
|
44
|
+
latin-case: sentence
|
|
45
|
+
figures: tabular
|
|
46
|
+
|
|
47
|
+
density: 10
|
|
48
|
+
variance: 4
|
|
49
|
+
radius: 0
|
|
50
|
+
edge: fill+border
|
|
51
|
+
|
|
52
|
+
treatments: [band, top-rule, kicker-numeral, side-rail]
|
|
53
|
+
role-defaults:
|
|
54
|
+
content: band
|
|
55
|
+
data: top-rule
|
|
56
|
+
data-takeaway: side-rail
|
|
57
|
+
sequence: kicker-numeral
|
|
58
|
+
image: side-rail
|
|
59
|
+
statement: band
|
|
60
|
+
reference: top-rule
|
|
61
|
+
definition: side-rail
|
|
62
|
+
|
|
63
|
+
decoration: [header-band, box-outline, hairline-rule, numeral]
|
|
64
|
+
layout-families: [summary-box-list, text-two-column, text-column, ledger-table, table-insight, comparison, timeline, matrix-2x2, agenda, references-appendix]
|
|
65
|
+
# Display slides: how a type-led cover, a statement, a big number and a closing's next step are
|
|
66
|
+
# drawn under this pack (references/layout-families.md, "Display slides").
|
|
67
|
+
display:
|
|
68
|
+
cover: band
|
|
69
|
+
number: outline
|
|
70
|
+
closing: box
|
|
71
|
+
index: true
|
|
72
|
+
covers: [cover-band, cover-typographic, cover-index]
|
|
73
|
+
sections: [section-band, section-rule]
|
|
74
|
+
closings: [closing-decision-box, closing-ask]
|
|
75
|
+
|
|
76
|
+
table:
|
|
77
|
+
style: header-fill
|
|
78
|
+
header: field
|
|
79
|
+
header-ink: on-field
|
|
80
|
+
rules: grid
|
|
81
|
+
banding: surface
|
|
82
|
+
numbers: right-tabular
|
|
83
|
+
totals: bold
|
|
84
|
+
chart:
|
|
85
|
+
gridlines: hairline
|
|
86
|
+
labels: direct
|
|
87
|
+
highlight: accent-on-muted
|
|
88
|
+
annotation: off
|
|
89
|
+
image:
|
|
90
|
+
bleed: none
|
|
91
|
+
crop: none
|
|
92
|
+
frame: hairline
|
|
93
|
+
|
|
94
|
+
fill-order: [step-up, distribute, change-family, anchor-visual]
|
|
95
|
+
avoid:
|
|
96
|
+
- English section kickers
|
|
97
|
+
- red for anything but the key line
|
|
98
|
+
- a summary box longer than three lines
|
|
99
|
+
- more than three text families in a row
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Ledger: a quarterly review the reader studies line by line. Compact type, tabular figures,
|
|
2
|
+
# tables and KPI rows carry the argument; the accent marks the current period and one key figure.
|
|
3
|
+
# A poor fit for a short spoken pitch or for a briefing written as running prose.
|
|
4
|
+
id: ledger
|
|
5
|
+
name: Ledger
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
intent: "Dense, numbers-forward review decks that are read closely."
|
|
8
|
+
canvas: ["16:9", "4:3"]
|
|
9
|
+
|
|
10
|
+
# LitGrok bundles Pretendard Regular and Bold only: title range comes from size, colour and placement.
|
|
11
|
+
faces:
|
|
12
|
+
display: Pretendard Bold
|
|
13
|
+
title: Pretendard Bold
|
|
14
|
+
body: Pretendard Regular
|
|
15
|
+
label: Pretendard Regular
|
|
16
|
+
numeral: Pretendard Bold
|
|
17
|
+
faces-pretendard-only:
|
|
18
|
+
display: Pretendard Bold
|
|
19
|
+
title: Pretendard Bold
|
|
20
|
+
body: Pretendard Regular
|
|
21
|
+
label: Pretendard Regular
|
|
22
|
+
numeral: Pretendard Bold
|
|
23
|
+
|
|
24
|
+
palette:
|
|
25
|
+
ground: "#FFFFFF"
|
|
26
|
+
surface: "#F2F4F6"
|
|
27
|
+
ink: "#16212C"
|
|
28
|
+
ink-muted: "#4B5866"
|
|
29
|
+
line: "#D0D6DC"
|
|
30
|
+
accent: "#0E6B5A"
|
|
31
|
+
accent-deep: "#0A4438"
|
|
32
|
+
accent-tint: "#E2F0EC"
|
|
33
|
+
field: "#0A4438"
|
|
34
|
+
on-field: "#FFFFFF"
|
|
35
|
+
positive: "#1E7A3F"
|
|
36
|
+
negative: "#B3261E"
|
|
37
|
+
series: ["#0E6B5A", "#4B5866", "#9A6A12", "#2F5F8A"]
|
|
38
|
+
|
|
39
|
+
ramp: reading
|
|
40
|
+
hero: false
|
|
41
|
+
type-voice:
|
|
42
|
+
title-tracking: -1
|
|
43
|
+
display-tracking: -1
|
|
44
|
+
latin-case: sentence
|
|
45
|
+
figures: tabular
|
|
46
|
+
|
|
47
|
+
density: 10
|
|
48
|
+
variance: 5
|
|
49
|
+
radius: 0
|
|
50
|
+
edge: fill
|
|
51
|
+
|
|
52
|
+
treatments: [top-rule, side-rail, kicker-numeral, bottom-anchor]
|
|
53
|
+
role-defaults:
|
|
54
|
+
content: top-rule
|
|
55
|
+
data: top-rule
|
|
56
|
+
data-takeaway: side-rail
|
|
57
|
+
sequence: kicker-numeral
|
|
58
|
+
image: bottom-anchor
|
|
59
|
+
statement: side-rail
|
|
60
|
+
reference: top-rule
|
|
61
|
+
definition: side-rail
|
|
62
|
+
|
|
63
|
+
decoration: [accent-rule, hairline-rule, rail-fill, numeral]
|
|
64
|
+
layout-families: [kpi-row, kpi-over-chart, dashboard-grid, ledger-table, table-insight, chart-insight, full-chart, big-number, comparison, timeline, matrix-2x2, agenda, text-two-column, references-appendix]
|
|
65
|
+
# Display slides: how a type-led cover, a statement, a big number and a closing's next step are
|
|
66
|
+
# drawn under this pack (references/layout-families.md, "Display slides").
|
|
67
|
+
display:
|
|
68
|
+
cover: figures
|
|
69
|
+
number: tint
|
|
70
|
+
closing: box
|
|
71
|
+
index: true
|
|
72
|
+
covers: [cover-figures, cover-typographic, cover-index]
|
|
73
|
+
sections: [section-rule, section-numeral]
|
|
74
|
+
closings: [closing-decision-box, closing-ask]
|
|
75
|
+
|
|
76
|
+
table:
|
|
77
|
+
style: ledger
|
|
78
|
+
# The header row is the ledger's one dark mass: deep field, white labels.
|
|
79
|
+
header: field
|
|
80
|
+
header-ink: on-field
|
|
81
|
+
rules: header-and-totals
|
|
82
|
+
banding: none
|
|
83
|
+
numbers: right-tabular
|
|
84
|
+
totals: bold
|
|
85
|
+
chart:
|
|
86
|
+
gridlines: hairline
|
|
87
|
+
labels: direct
|
|
88
|
+
highlight: accent-on-muted
|
|
89
|
+
annotation: on
|
|
90
|
+
image:
|
|
91
|
+
bleed: side-only
|
|
92
|
+
crop: none
|
|
93
|
+
frame: hairline
|
|
94
|
+
|
|
95
|
+
fill-order: [step-up, distribute, anchor-visual, change-family]
|
|
96
|
+
avoid:
|
|
97
|
+
- KPI cards for counts that are not results
|
|
98
|
+
- more than one accent on a chart
|
|
99
|
+
- tables stretched by padding
|
|
100
|
+
- side-rail on two data slides in a row
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Night: a screen in a dark hall. Near-black ground, off-white type, an amber accent with a soft
|
|
2
|
+
# blue second series, light numerals and large charts. A poor fit for printed or read decks, and
|
|
3
|
+
# never mixed with light slides in one deck.
|
|
4
|
+
id: night
|
|
5
|
+
name: Night
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
intent: "Data and technical keynotes on a dark ground."
|
|
8
|
+
canvas: ["16:9", "4:3"]
|
|
9
|
+
|
|
10
|
+
# LitGrok bundles Pretendard Regular and Bold only: title range comes from size, colour and placement.
|
|
11
|
+
faces:
|
|
12
|
+
display: Pretendard Bold
|
|
13
|
+
title: Pretendard Bold
|
|
14
|
+
body: Pretendard Regular
|
|
15
|
+
label: Pretendard Regular
|
|
16
|
+
numeral: Pretendard Regular
|
|
17
|
+
faces-pretendard-only:
|
|
18
|
+
display: Pretendard Bold
|
|
19
|
+
title: Pretendard Bold
|
|
20
|
+
body: Pretendard Regular
|
|
21
|
+
label: Pretendard Regular
|
|
22
|
+
numeral: Pretendard Regular
|
|
23
|
+
|
|
24
|
+
palette:
|
|
25
|
+
ground: "#0F1419"
|
|
26
|
+
surface: "#1A222B"
|
|
27
|
+
ink: "#E8EDF2"
|
|
28
|
+
ink-muted: "#A3AEBA"
|
|
29
|
+
line: "#5A6672"
|
|
30
|
+
accent: "#E3A857"
|
|
31
|
+
accent-deep: "#F2C98A"
|
|
32
|
+
accent-tint: "#2A2418"
|
|
33
|
+
field: "#1E2A36"
|
|
34
|
+
on-field: "#F5F7FA"
|
|
35
|
+
positive: "#6CC08B"
|
|
36
|
+
negative: "#F08A7E"
|
|
37
|
+
series: ["#E3A857", "#7FB8E0", "#A3AEBA", "#C58FD0"]
|
|
38
|
+
|
|
39
|
+
ramp: reading
|
|
40
|
+
hero: false
|
|
41
|
+
type-voice:
|
|
42
|
+
title-tracking: -1
|
|
43
|
+
display-tracking: -2
|
|
44
|
+
latin-case: sentence
|
|
45
|
+
figures: tabular
|
|
46
|
+
|
|
47
|
+
density: 10
|
|
48
|
+
variance: 6
|
|
49
|
+
radius: 6
|
|
50
|
+
edge: fill
|
|
51
|
+
|
|
52
|
+
treatments: [top-plain-large, statement, side-rail, kicker-numeral, band]
|
|
53
|
+
role-defaults:
|
|
54
|
+
content: top-plain-large
|
|
55
|
+
data: band
|
|
56
|
+
data-takeaway: side-rail
|
|
57
|
+
sequence: kicker-numeral
|
|
58
|
+
image: top-plain-large
|
|
59
|
+
statement: statement
|
|
60
|
+
reference: band
|
|
61
|
+
definition: side-rail
|
|
62
|
+
|
|
63
|
+
decoration: [header-band, hairline-rule, numeral, rail-fill]
|
|
64
|
+
layout-families: [full-chart, chart-insight, kpi-row, kpi-over-chart, dashboard-grid, big-number, method, comparison, timeline, statement]
|
|
65
|
+
# Display slides: how a type-led cover, a statement, a big number and a closing's next step are
|
|
66
|
+
# drawn under this pack (references/layout-families.md, "Display slides").
|
|
67
|
+
display:
|
|
68
|
+
cover: numeral
|
|
69
|
+
statement: open
|
|
70
|
+
number: tint
|
|
71
|
+
closing: band
|
|
72
|
+
covers: [cover-numeral, cover-typographic, cover-figures]
|
|
73
|
+
sections: [section-numeral, section-field]
|
|
74
|
+
closings: [closing-statement, closing-decision-box]
|
|
75
|
+
|
|
76
|
+
table:
|
|
77
|
+
style: header-fill
|
|
78
|
+
header: surface
|
|
79
|
+
header-ink: ink
|
|
80
|
+
rules: rows
|
|
81
|
+
banding: none
|
|
82
|
+
numbers: right-tabular
|
|
83
|
+
totals: bold
|
|
84
|
+
protagonist: accent-tint
|
|
85
|
+
chart:
|
|
86
|
+
gridlines: hairline
|
|
87
|
+
labels: direct
|
|
88
|
+
highlight: accent-on-muted
|
|
89
|
+
annotation: on
|
|
90
|
+
image:
|
|
91
|
+
bleed: side-only
|
|
92
|
+
crop: allowed
|
|
93
|
+
frame: none
|
|
94
|
+
|
|
95
|
+
fill-order: [anchor-visual, step-up, distribute, change-family]
|
|
96
|
+
avoid:
|
|
97
|
+
- neon or saturated glows
|
|
98
|
+
- a pure black ground
|
|
99
|
+
- light slides mixed in
|
|
100
|
+
- thin light type below 18 pt
|