91 lines
4.2 KiB
Python
91 lines
4.2 KiB
Python
"""MPM brand tokens — the single source for colours, fonts and the document-type
|
|||
|
|
and customer-code registries. Figures (figs.py) import colours from here so a
|
||
|
|
palette change lands everywhere at once.
|
||
|
|
|
||
|
|
See MPM_Document_Standard.md §3 (Numbering) and §6 (Visual system).
|
||
|
|
Fonts and logos are NOT stored here — they live in DOCUMENTATION PROJECT/_ASSETS/mpm/.
|
||
|
|
"""
|
||
|
|
from pathlib import Path
|
||
|
|
|
||
|
|
|
||
|
|
# ---- shared assets (DOCUMENTATION PROJECT/_ASSETS/mpm) ----------------------
|
||
|
|
def _find_assets():
|
||
|
|
for p in Path(__file__).resolve().parents:
|
||
|
|
if (p / "_ASSETS" / "mpm").is_dir():
|
||
|
|
return p / "_ASSETS" / "mpm"
|
||
|
|
raise FileNotFoundError("Could not find _ASSETS/mpm above _STANDARDS — see _ASSETS/README.md")
|
||
|
|
|
||
|
|
|
||
|
|
ASSETS = _find_assets()
|
||
|
|
FONTS_CSS = ASSETS / "fonts" / "fonts_embed.css" # generated by _ASSETS/mpm/fonts/make_embed.py
|
||
|
|
LOGO_HEADER = ASSETS / "logos" / "png" / "Logo-Gold-Black.png" # gold icon + dark text, on white
|
||
|
|
LOGO_ON_DARK = ASSETS / "logos" / "png" / "Logo-Gold-White.png" # dark title blocks / banners
|
||
|
|
LOGO_MONO = ASSETS / "logos" / "png" / "Logo-Black-Text.png" # single-colour black print
|
||
|
|
TAGLINE = "Born to Innovate. Built to Last."
|
||
|
|
|
||
|
|
# ---- palette (official MPM colour system; see _ASSETS/README.md) -----------
|
||
|
|
INK = "#232022" # Dark Shade · text, dark callouts, primary strokes
|
||
|
|
GOLD = "#DCBB4F" # Middle Gold · brand accent: rules, step numbers, header underline
|
||
|
|
KICK = "#998643" # Dark Gold · kicker text, labels, FIG/TABLE tags (gold for text on light backgrounds)
|
||
|
|
MUTE = "#849698" # Light Accent · secondary text, ledes, captions, footer
|
||
|
|
CREAM = "#F5F1EC" # meta cells, notes, calc blocks
|
||
|
|
LINE = "#E6E0D8" # table rules, figure frames
|
||
|
|
KEYBG = "#FBF6E6" # highlighted ("key") table row / KPI tile
|
||
|
|
RED = "#A42D20" # warnings, failing values, minimum/limit lines
|
||
|
|
REDBG = "#F7E9E7"
|
||
|
|
GRN = "#3F6B3A" # PASS, passing values
|
||
|
|
GRNBG = "#EAF1E6"
|
||
|
|
BLU = "#2F5A8A" # data-series only (e.g. blue channel); never for UI chrome
|
||
|
|
GRY = "#B8B1A8" # de-emphasised data series
|
||
|
|
FOOT = MUTE # running footer text (Light Accent)
|
||
|
|
|
||
|
|
# ---- type ----------------------------------------------------------------
|
||
|
|
FONT_HEAD = "Montserrat" # headings, kickers, labels, captions
|
||
|
|
FONT_BODY = "Open Sans" # body copy
|
||
|
|
FONT_MONO = "JetBrains Mono" # numbers, dimensions, part numbers, calcs
|
||
|
|
|
||
|
|
# ---- document types (TYPE field of TYPE-CUST-SUBJ-NN) ----------------------
|
||
|
|
# code: (header label, kicker label, default classification)
|
||
|
|
TYPES = {
|
||
|
|
"INS": ("Installation Guide", "Installation guide", "customer"),
|
||
|
|
"SOP": ("Standard Operating Procedure", "Procedure", "internal"),
|
||
|
|
"TN": ("Technical Note", "Technical note", "customer"),
|
||
|
|
"BOM": ("Bill of Materials", "Bill of materials", "internal"),
|
||
|
|
"SVY": ("Site Survey", "Site survey", "customer"),
|
||
|
|
"TAP": ("Technical Action Plan", "Technical action plan", "confidential"),
|
||
|
|
"DWG": ("Drawing", "Drawing", "customer"),
|
||
|
|
"TSB": ("Technical Service Bulletin", "Service bulletin", "customer"), # internal edition: classification="internal"
|
||
|
|
"PRO": ("Proposal", "Proposal", "confidential"),
|
||
|
|
"SOW": ("Statement of Work", "Statement of work", "customer"),
|
||
|
|
"WO": ("Field Work Order", "Work order", "internal"),
|
||
|
|
}
|
||
|
|
|
||
|
|
# ---- customer / department codes (CUST field) -------------------------------
|
||
|
|
# Add new codes here AND in registry.md before issuing a number.
|
||
|
|
CUSTOMERS = {
|
||
|
|
"LT": "LakeTran",
|
||
|
|
"NSH": "Nashville MCC (WeGo)",
|
||
|
|
"CMT": "CommTran",
|
||
|
|
"OMT": "Omnitrans",
|
||
|
|
"SOR": "SORTA / Metro",
|
||
|
|
"COTA": "COTA",
|
||
|
|
"GIL": "GILLIG",
|
||
|
|
# internal departments / company-wide
|
||
|
|
"MPM": "Message Point Media", # company-wide / product documents
|
||
|
|
"IT": "MPM IT",
|
||
|
|
"ENG": "MPM Engineering",
|
||
|
|
"OPS": "MPM Field Operations",
|
||
|
|
"QA": "MPM Quality",
|
||
|
|
}
|
||
|
|
|
||
|
|
# provider block for PRO / SOW / WO parties
|
||
|
|
PROVIDER = {"name": "Message Point Media of Alabama, Inc", "contact": "Jason Stedwell, Director of Technical Services",
|
||
|
|
"address": "Irondale, AL", "web": "messagepoint.tv"}
|
||
|
|
|
||
|
|
CLASSIFICATIONS = {
|
||
|
|
# key: footer suffix shown after the context ("" = no marking)
|
||
|
|
"public": "",
|
||
|
|
"customer": "",
|
||
|
|
"internal": "INTERNAL USE",
|
||
|
|
"confidential": "CONFIDENTIAL",
|
||
|
|
}
|