Maps every file in data/ to its Microsoft counterpart. The open-source resources
use OFL-licensed fonts and hand-authored YAML instead of proprietary binary
formats (.thmx, .dotx) or XML with Microsoft font references.
1. Summary
| Resource Type | MS Files | OFL Files | Format Change |
|---|---|---|---|
Font Registry |
(none) |
1 YAML |
New registry |
Theme Colors |
23 XML |
23 YAML |
XML to YAML |
Theme Fonts |
25 XML |
25 YAML |
XML to YAML |
Office Themes |
29 .thmx |
29 YAML |
Binary to YAML |
Quick Styles |
12 .dotx |
12 YAML |
Binary to YAML |
Document Elements |
240 .dotx |
240 YAML |
Binary to YAML (30/30 locales) |
Citation Styles |
12 .xsl |
— |
Deferred |
2. Font Registry
A new file with no MS counterpart. Maps 30+ Microsoft fonts to OFL equivalents across 32 Unicode script codes.
| OFL File | Description |
|---|---|
|
Latin, East Asian, complex script fonts + per-script mapping |
3. Theme Colors
23 color scheme files. Each replaces an MS XML color definition with a YAML file containing 12 named colors (dk1, lt1, dk2, lt2, accent1-6, hlink, folHlink).
| # | OFL File | MS File | Palette Source |
|---|---|---|---|
1 |
|
|
Material Blue |
2 |
|
|
Material Green |
3 |
|
|
Material Red |
4 |
|
|
Tailwind Amber |
5 |
|
|
Tailwind Indigo |
6 |
|
|
Grayscale ramp |
7 |
|
|
Tailwind Teal |
8 |
|
|
Cerulean palette |
9 |
|
|
Cobalt palette |
10 |
|
|
Chartreuse palette |
11 |
|
|
Magenta palette |
12 |
|
|
Sage palette |
13 |
|
|
Classic Office |
14 |
|
|
Modern Office |
15 |
|
|
Coral palette |
16 |
|
|
Parchment palette |
17 |
|
|
Scarlet palette |
18 |
|
|
Burgundy palette |
19 |
|
|
Horizon palette |
20 |
|
|
Lavender palette |
21 |
|
|
Saffron palette |
22 |
|
|
Terrain palette |
23 |
|
|
Solarized-inspired |
4. Theme Fonts
25 font scheme files. Each replaces an MS XML font definition with a YAML file using OFL-licensed fonts and per-script coverage for 32 Unicode script codes.
| # | OFL File | MS File | Primary Font Pair |
|---|---|---|---|
1 |
|
|
Carlito |
2 |
|
|
Caladea |
3 |
|
|
Carlito + Caladea |
4 |
|
|
Liberation Sans |
5 |
|
|
Liberation Sans + Serif |
6 |
|
|
Liberation Serif + Sans |
7 |
|
|
EB Garamond |
8 |
|
|
EB Garamond + Liberation Sans |
9 |
|
|
Source Sans 3 |
10 |
|
|
Source Sans 3 + Source Code Pro |
11 |
|
|
Gelasio |
12 |
|
|
Libre Franklin |
13 |
|
|
League Gothic |
14 |
|
|
League Gothic + Liberation Serif |
15 |
|
|
Libre Bodoni |
16 |
|
|
Source Sans 3 + Alfa Slab One |
17 |
|
|
Source Sans 3 Display |
18 |
|
|
Source Sans 3 + Century Schoolbook L |
19 |
|
|
Carlito + Liberation Serif |
20 |
|
|
Liberation Sans Bold |
21 |
|
|
Liberation Mono + Sans |
22 |
|
|
Liberation Sans + Libre Baskerville |
23 |
|
|
Liberation Sans Display |
24 |
|
|
Carlito + Caladea |
25 |
|
|
Carlito + Caladea |
5. Office Themes
29 theme files. Each replaces an MS .thmx binary with a YAML file where all font references use OFL fonts.
| # | OFL File | MS File |
|---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
|
21 |
|
|
22 |
|
|
23 |
|
|
24 |
|
|
25 |
|
|
26 |
|
|
27 |
|
|
28 |
|
|
29 |
|
|
6. Quick Styles (Style Sets)
12 style set files. Each replaces an MS .dotx binary with a YAML file containing OOXML-faithful style definitions.
| # | OFL File | MS File |
|---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
7. Document Elements
240 YAML files covering all 30 MS locales and 8 categories each, providing complete 1:1 replacement coverage for all 240 MS document element .dotx files.
7.1. Locale Coverage
| OFL Locale | MS Locale | Language |
|---|---|---|
|
|
English |
|
|
Russian |
|
|
Simplified Chinese |
|
|
Traditional Chinese |
|
|
Japanese |
|
|
French |
|
|
Spanish |
|
|
Arabic |
|
|
Czech |
|
|
Danish |
|
|
German |
|
|
Greek |
|
|
English (UK) |
|
|
Spanish (Mexico) |
|
|
Finnish |
|
|
French (Canada) |
|
|
Hebrew |
|
|
Hungarian |
|
|
Indonesian |
|
|
Italian |
|
|
Korean |
|
|
Dutch |
|
|
Norwegian |
|
|
Polish |
|
|
Portuguese (Brazil) |
|
|
Portuguese (Portugal) |
|
|
Slovak |
|
|
Swedish |
|
|
Thai |
|
|
Turkish |
7.2. Category Mapping
Each locale has these 8 categories, mapping 1:1 to MS document element files:
| OFL File | MS File |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8. Citation Styles (Deferred)
The 12 MS citation styles are XSL transforms not directly comparable to font/color/theme resources. These are deferred to a future phase.
| MS File | Notes |
|---|---|
|
APA 6th edition |
|
Chicago |
|
GB/T 7714 |
|
GOST name-style |
|
GOST title-style |
|
Harvard Anglia |
|
IEEE 2006 |
|
ISO 690 |
|
ISO 690 numerical |
|
MLA 7th |
|
SIST02 |
|
Turabian |
9. Ruby API
9.1. Loaders
# Color schemes
scheme = Uniword::Resource::ColorSchemeLoader.load("azure")
scheme.name #=> "Azure"
scheme.colors #=> { "dk1" => "000000", "lt1" => "FFFFFF", ... }
# Font schemes
scheme = Uniword::Resource::FontSchemeLoader.load("carlito_sans")
scheme.name #=> "Carlito Sans"
scheme.major_font #=> "Carlito"
scheme.per_script #=> { "Jpan" => "Noto Sans CJK JP", ... }
# Document elements
template = Uniword::Resource::DocumentElementLoader.load("en", "cover_pages")
template.locale #=> "en"
template.category #=> "cover_pages"
template.elements #=> [{ "name" => "...", "body" => { ... } }, ...]
# Available listings
Uniword::Resource::ColorSchemeLoader.available_schemes #=> 23 names
Uniword::Resource::FontSchemeLoader.available_schemes #=> 25 names
Uniword::Resource::DocumentElementLoader.available_locales #=> 30 codes
9.2. Font Substitution
# Latin font substitution
Uniword::Resource::FontSubstitutor.substitute("Calibri") #=> "Carlito"
Uniword::Resource::FontSubstitutor.substitute("Arial") #=> "Liberation Sans"
# Per-script substitution
Uniword::Resource::FontSubstitutor.substitute_script("Jpan", "MS Gothic")
#=> "Noto Sans CJK JP"
# Transform an entire FontScheme (populates EA/CS fields)
result = Uniword::Resource::FontSubstitutor.transform_friendly_font_scheme(fs)
9.3. Resource Resolution
resolver = Uniword::Resource::ResourceResolver.new
resolver.list(:color_scheme) #=> all color scheme names
resolver.list(:font_scheme) #=> all font scheme names
resolver.list(:theme) #=> all theme names
resolver.list(:document_element) #=> all document element names
resolver.resolve(:theme, "atlas") #=> ResourceLocation