{}OPF
DocsSchema referenceView source

Font Scheme

Schema for font-scheme records in the pptx.gallery library. Each scheme pairs a major (heading) and minor (body) font family in the OOXML majorFont/minorFont sense, scoped to a target app (PowerPoint or Google…

Schema $id
https://openpresentation.org/schema/opf-font-scheme/v1
Type
object
Source
spec/schemas/font-scheme.schema.json
Fields
14 · 5 required

Field index

FieldTypeReq.DefaultDescription
$schemaconstyesIdentifies this record as a font scheme in the openpresentation.org catalog.
idstringyesStable slug used by OPF documents to reference this font scheme. Lowercase kebab-case.
namestringyesHuman-readable scheme name shown in pickers.
majorstringyesHeading (major) font family — mirrors the OOXML majorFont entry.
minorstringyesBody (minor) font family — mirrors the OOXML minorFont entry.
typeenumHigh-level typographic class of the scheme.
appenumTarget application this font pairing is intended for.
languageFamilyenumOOXML font-language family this scheme is intended for: 'latin' for Latin-script content, 'ea' for East Asian scripts, 'cs' for Complex Scripts.
languagesarray<string>Optional list of human-readable language names this scheme is curated for. Useful for picker UIs that group fonts by language coverage.
textSamplestringShort specimen string used by picker UIs to preview the scheme.
summarystringOne-sentence positioning of the font pairing.
descriptionstringLonger prose describing the font scheme and where it shines.
tagsarray<string>Free-form labels for filtering and search.
previewobjectVisual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional; engines fall back gracefully when previews aren't available.

$schema

typeconstrequiredyesdefault

Identifies this record as a font scheme in the openpresentation.org catalog.

$schema.json
{
  "$schema": "https://openpresentation.org/schema/opf-font-scheme/v1"
}

id

typestringrequiredyesdefaultpattern^[a-z][a-z0-9-]*$

Stable slug used by OPF documents to reference this font scheme. Lowercase kebab-case.

id.json
{
  "id": "aptos"
}

name

typestringrequiredyesdefault

Human-readable scheme name shown in pickers.

name.json
{
  "name": "Aptos"
}

major

typestringrequiredyesdefault

Heading (major) font family — mirrors the OOXML majorFont entry.

major.json
{
  "major": "Aptos Display"
}

minor

typestringrequiredyesdefault

Body (minor) font family — mirrors the OOXML minorFont entry.

minor.json
{
  "minor": "Aptos"
}

type

typeenumrequirednodefault

High-level typographic class of the scheme.

type.json
{
  "type": "sans-serif"
}

app

typeenumrequirednodefault

Target application this font pairing is intended for.

app.json
{
  "app": "PowerPoint"
}

languageFamily

typeenumrequirednodefault

OOXML font-language family this scheme is intended for: 'latin' for Latin-script content, 'ea' for East Asian scripts, 'cs' for Complex Scripts.

languageFamily.json
{
  "languageFamily": "latin"
}

languages

typearray<string>requirednodefault

Optional list of human-readable language names this scheme is curated for. Useful for picker UIs that group fonts by language coverage.

languages.json
{
  "languages": [
    "Chinese (simplified)",
    "Chinese (traditional)",
    "Japanese",
    "Korean"
  ]
}

textSample

typestringrequirednodefault

Short specimen string used by picker UIs to preview the scheme.

textSample.json
{
  "textSample": "Smooth professional look"
}

summary

typestringrequirednodefault

One-sentence positioning of the font pairing.

summary.json
{
  "summary": "PowerPoint-default sans-serif curated for general business decks."
}

description

typestringrequirednodefault

Longer prose describing the font scheme and where it shines.

description.json
{
  "description": "Aptos is the default Microsoft 365 sans-serif. The major (display) cut adds optical weight for headings, and the minor (text) cut keeps body copy readable at smaller sizes."
}

tags

typearray<string>requirednodefault

Free-form labels for filtering and search.

tags.json
{
  "tags": [
    "latin",
    "sans-serif",
    "default"
  ]
}

preview

typeobjectrequirednodefault

Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional; engines fall back gracefully when previews aren't available.

preview.json
{
  "preview": {}
}