Fareon Slides Skill
Overview
This skill creates properly themed Fareon slides by using the template editing workflow — duplicating slides from Fareon's actual .pptx template and injecting content into XML placeholders. This ensures:
- Reem Kufi titles at the correct size/position (inherited from the layout)
- Fareon wordmark, footer divider line, and
© 2026 Fareon | CONFIDENTIALfooter auto-populated - Slide numbering auto-populated
- Correct slide dimensions (20" × 11.28125" custom widescreen)
- No reformatting needed — slides drop directly into existing Fareon decks
For brand colors, typography, voice conventions, and logo usage, read references/brand-system.md.
Quick Start
# 1. Copy the blank template to your working directory
# (when installed as a skill, the template lives in the skill's assets/ folder)
cp "<skill-path>/assets/templates/Fareon blank template.pptx" ./fareon-working.pptx
# 2. Unpack
python /mnt/skills/public/pptx/scripts/office/unpack.py fareon-working.pptx unpacked/
# 3. Duplicate slide1 for each slide you need (slide1 uses Fareon-light-topic layout)
python /mnt/skills/public/pptx/scripts/add_slide.py unpacked/ slide1.xml
# Repeat for each additional slide; add each output <p:sldId> to <p:sldIdLst> in presentation.xml
# 4. Edit each slide's XML to inject content (see "Content Injection" below)
# 5. Clean and pack
python /mnt/skills/public/pptx/scripts/clean.py unpacked/
python /mnt/skills/public/pptx/scripts/office/pack.py unpacked/ output.pptx --original fareon-working.pptx
If those pptx helper scripts aren't available in the environment, fall back to using python-pptx against the same template — open the .pptx, duplicate layouts via slide_layouts, and populate placeholders by name.
Template Structure
Slide Dimensions
- Width: 20.0" (18,288,000 EMU)
- Height: 11.28125" (10,315,575 EMU)
- Exactly 2× standard 16:9. All coordinates use this scale.
Available Layouts
Layouts in the blank template (the .potx variant in logos/Fareon Brand Identity/Office templates/ adds one: Fareon-light-topic-bullets):
| # | Layout | Master | Background | Use For |
|---|---|---|---|---|
| 1 | Fareon-light-topic | Light | White | Primary content slides |
| 2 | Fareon-mixed | Light | White + right panel | Split layouts |
| 3 | Fareon-dark-tagline | Dark | Oxford Blue #031D44 |
Tagline / divider slides |
| 4 | Fareon-dark-topic | Dark | Oxford Blue | Dark content slides |
| 5 | Fareon-dark-topic-content | Dark | Oxford Blue | Dark slides with subtitle + body |
| 6 | Fareon-dark | Dark | Oxford Blue | Blank dark slide |
| 7 | Fareon-dark-title | Dark | Oxford Blue | Title slides (centered) |
The blank template's initial slide1 uses Layout 1 (Fareon-light-topic). To use a different layout, call add_slide.py with the layout XML filename (e.g., slideLayout7.xml for Fareon-dark-title).
Layout 1: Fareon-light-topic (Primary)
Elements provided by the layout — do not recreate these:
- Title placeholder —
type="title", Reem Kufi 48pt, pos(0.722", 0.737"), size(18.417" × 1.29") - Fareon wordmark — embedded PNG at bottom-left
(0.75", 10.633"), size(1.688" × 0.282") - Divider line — PNG at bottom
(2.771", 10.759"), size(15.906" × 0.031") - Footer —
type="ftr",idx=11, auto-fills "© 2026 Fareon | CONFIDENTIAL" - Slide number —
type="sldNum",idx=10, auto-fills page number
Content area: below title, above footer line ≈ y 2.1" to 10.4" (8.3" tall), x 0.72" to 19.2" (18.5" wide).
Layout 5: Fareon-dark-topic-content
- Title —
type="title", Reem Kufi 45pt, pos(1.062", 1.12"), size(17.794" × 0.801") - Subtitle —
type="body",idx=13, pos(1.062", 2.042"), size(17.813" × 0.424") - Body —
type="body",idx=15, pos(1.075", 3.128"), size(17.831" × 6.71") - Footer / slide number / wordmark / divider — same pattern as Layout 1
Layout 7: Fareon-dark-title
- Center title —
type="ctrTitle", Reem Kufi 60pt, pos(2.5", 1.845"), size(15.0" × 3.929") - Subtitle —
type="subTitle",idx=1, Reem Kufi 24pt, pos(2.5", 6.231"), size(15.0" × 2.161") - Connector line between title and subtitle at y
5.886"
Content Injection
Title placeholder
Title inherits Reem Kufi 48pt from the layout. Do NOT specify a font override — just set the text. If you set <a:latin typeface="..."/> inside <a:rPr>, it overrides the layout font and you lose Reem Kufi. Omit it.
Adding content shapes
All custom content (text boxes, tables, charts, shapes) goes into <p:spTree> of the slide XML, after the existing placeholder shapes. Coordinates use EMU: 1 inch = 914,400 EMU.
Standard text-box XML:
<p:sp>
<p:nvSpPr>
<p:cNvPr id="100" name="TextBox 100"/>
<p:cNvSpPr txBox="1"/>
<p:nvPr/>
</p:nvSpPr>
<p:spPr>
<a:xfrm>
<a:off x="659130" y="1920000"/>
<a:ext cx="8500000" cy="500000"/>
</a:xfrm>
<a:prstGeom prst="rect"><a:avLst/></a:prstGeom>
<a:noFill/>
</p:spPr>
<p:txBody>
<a:bodyPr wrap="square" rtlCol="0"/>
<a:lstStyle/>
<a:p>
<a:r>
<a:rPr lang="en-US" sz="2400" dirty="0">
<a:latin typeface="Rethink Sans"/>
<a:solidFill><a:srgbClr val="031D44"/></a:solidFill>
</a:rPr>
<a:t>Your text here</a:t>
</a:r>
</a:p>
</p:txBody>
</p:sp>
Card shape (pale-blue filled rectangle with light border, Rethink Sans text):
<p:sp>
<p:nvSpPr>
<p:cNvPr id="101" name="Rectangle 101"/>
<p:cNvSpPr/>
<p:nvPr/>
</p:nvSpPr>
<p:spPr>
<a:xfrm>
<a:off x="659130" y="2500000"/>
<a:ext cx="5000000" cy="3000000"/>
</a:xfrm>
<a:prstGeom prst="rect"><a:avLst/></a:prstGeom>
<a:solidFill><a:srgbClr val="F4F6FB"/></a:solidFill>
<a:ln w="6350"><a:solidFill><a:srgbClr val="E8EBF2"/></a:solidFill></a:ln>
</p:spPr>
<p:txBody>
<a:bodyPr wrap="square" rtlCol="0" lIns="182880" tIns="91440" rIns="182880" bIns="91440"/>
<a:lstStyle/>
<a:p>
<a:r>
<a:rPr lang="en-US" sz="1800" dirty="0">
<a:latin typeface="Rethink Sans"/>
<a:solidFill><a:srgbClr val="031D44"/></a:solidFill>
</a:rPr>
<a:t>Card content</a:t>
</a:r>
</a:p>
</p:txBody>
</p:sp>
Type sizes
XML sz attribute uses hundredths of a point.
| Points | sz |
|---|---|
| 14 | 1400 |
| 18 | 1800 |
| 20 | 2000 |
| 24 | 2400 |
| 28 | 2800 |
| 32 | 3200 |
| 36 | 3600 |
| 48 | 4800 |
| 60 | 6000 |
Typical usage: slide title 48pt (layout default) · section header 24–28pt Rethink Sans Bold · body 18–20pt Rethink Sans · large stat numbers 48–60pt Reem Kufi in Oxford Blue or Humanity Blue · caption/footnote 14–16pt Rethink Sans in Aluminum #C4C4C4.
Brand & design rules
(Full brand system in references/brand-system.md.)
- Leave footer empty — the layout auto-fills wordmark, divider,
©, and page number. - Lead with bluescale on white — Oxford Blue, Humanity Blue, Cornflower, Periwinkle. Mint only sparingly (one callout per slide max).
- Lead with impact — "cognitive impairment due to Long COVID" not "Long COVID cognitive impairment."
- Use commas not em dashes for parenthetical asides.
- Positioning: "biophysics" not "bioelectric"; "neuroimmune modulation" not "neuromodulation."
- File names use spaces, not underscores.
QA
After packing the output:
python /mnt/skills/public/pptx/scripts/office/soffice.py --headless --convert-to pdf output.pptx
pdftoppm -jpeg -r 150 output.pdf slide
Visually check each slide JPG: title renders in Reem Kufi (not a fallback), wordmark appears bottom-left, footer + slide number appear, no content overlaps the footer zone below y ≈ 10.4", no text overflows card boundaries. LibreOffice may substitute Reem Kufi / Rethink Sans with fallback fonts in the preview — the actual .pptx will render correctly in PowerPoint on any machine where those fonts are installed.