refactor: restructure project into muxplex/ subdir with brand integration

- Move coordinator/, frontend/, Caddyfile, pyproject.toml, requirements.txt,
  docs/ into muxplex/ subdir in prep for packaging/sharing
- Add brand assets to frontend/: favicon.ico, pwa-192/512.png,
  apple-touch-icon.png, wordmark-on-dark.svg
- Update app: title → muxplex, header → wordmark SVG, brand color tokens
  in style.css, manifest.json updated with muxplex name and brand icons
- Add design system: assets/branding/tokens.css (101 CSS custom properties),
  tokens.json (127 tokens), DESIGN-SYSTEM.md (856-line spec)
- Add assets/branding/: SVG sources, rendered PNGs (icons, favicons, PWA, OG)
- Add scripts/render-brand-assets.py for reproducible PNG generation
- Add muxplex/README.md
This commit is contained in:
Brian Krabach
2026-03-27 15:06:00 -07:00
commit 8234e2ec05
76 changed files with 17006 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5_84)">
<path d="M61.2547 2.7453H2.7453V61.2547H61.2547V2.7453Z" fill="#10131C"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M61.941 0C63.0781 0 64 0.921837 64 2.05898V61.941C64 63.0781 63.0781 64 61.941 64H2.05898C0.921839 64 0 63.0781 0 61.941V2.05898C0 0.921837 0.921837 0 2.05898 0H61.941ZM2.74531 18.1877V61.2547H61.2547V18.1877H2.74531ZM2.74531 15.7855H61.2547V2.74531H2.74531V15.7855Z" fill="white"/>
<path d="M9.2654 12.1823C10.8764 12.1823 12.1823 10.8764 12.1823 9.2654C12.1823 7.65445 10.8764 6.34851 9.2654 6.34851C7.65445 6.34851 6.34851 7.65445 6.34851 9.2654C6.34851 10.8764 7.65445 12.1823 9.2654 12.1823Z" fill="#F1A640"/>
<path d="M18.5308 12.1823C20.1418 12.1823 21.4477 10.8764 21.4477 9.2654C21.4477 7.65445 20.1418 6.34851 18.5308 6.34851C16.9199 6.34851 15.614 7.65445 15.614 9.2654C15.614 10.8764 16.9199 12.1823 18.5308 12.1823Z" fill="white"/>
<path d="M27.7962 12.1823C29.4072 12.1823 30.7131 10.8764 30.7131 9.2654C30.7131 7.65445 29.4072 6.34851 27.7962 6.34851C26.1853 6.34851 24.8793 7.65445 24.8793 9.2654C24.8793 10.8764 26.1853 12.1823 27.7962 12.1823Z" fill="#00D9F5"/>
<path d="M28.8257 24.5362H12.3539C11.7853 24.5362 11.3244 24.9971 11.3244 25.5657V36.8901C11.3244 37.4587 11.7853 37.9196 12.3539 37.9196H28.8257C29.3943 37.9196 29.8552 37.4587 29.8552 36.8901V25.5657C29.8552 24.9971 29.3943 24.5362 28.8257 24.5362Z" fill="#222433"/>
<path d="M51.6461 24.5362H35.1743C34.6057 24.5362 34.1448 24.9971 34.1448 25.5657V36.8901C34.1448 37.4587 34.6057 37.9196 35.1743 37.9196H51.6461C52.2147 37.9196 52.6756 37.4587 52.6756 36.8901V25.5657C52.6756 24.9971 52.2147 24.5362 51.6461 24.5362Z" fill="#222433"/>
<path d="M28.8257 42.2091H12.3539C11.7853 42.2091 11.3244 42.67 11.3244 43.2386V54.563C11.3244 55.1316 11.7853 55.5925 12.3539 55.5925H28.8257C29.3943 55.5925 29.8552 55.1316 29.8552 54.563V43.2386C29.8552 42.67 29.3943 42.2091 28.8257 42.2091Z" fill="#222433"/>
<path d="M51.6461 42.2091H35.1743C34.6057 42.2091 34.1448 42.67 34.1448 43.2386V54.563C34.1448 55.1316 34.6057 55.5925 35.1743 55.5925H51.6461C52.2147 55.5925 52.6756 55.1316 52.6756 54.563V43.2386C52.6756 42.67 52.2147 42.2091 51.6461 42.2091Z" fill="#222433"/>
</g>
<defs>
<clipPath id="clip0_5_84">
<rect width="64" height="64" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

+18
View File
@@ -0,0 +1,18 @@
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5_94)">
<path d="M61.2547 2.7453H2.74536V61.2547H61.2547V2.7453Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M61.941 0C63.0781 0 64 0.921837 64 2.05898V61.941C64 63.0781 63.0781 64 61.941 64H2.05898C0.921839 64 0 63.0781 0 61.941V2.05898C0 0.921837 0.921837 0 2.05898 0H61.941ZM2.74531 18.1877V61.2547H61.2547V18.1877H2.74531ZM2.74531 15.7855H61.2547V2.74531H2.74531V15.7855Z" fill="#0D1117"/>
<path d="M9.2654 12.1823C10.8764 12.1823 12.1823 10.8764 12.1823 9.2654C12.1823 7.65445 10.8764 6.34851 9.2654 6.34851C7.65445 6.34851 6.34851 7.65445 6.34851 9.2654C6.34851 10.8764 7.65445 12.1823 9.2654 12.1823Z" fill="#F1A640"/>
<path d="M18.5308 12.1823C20.1417 12.1823 21.4477 10.8764 21.4477 9.2654C21.4477 7.65445 20.1417 6.34851 18.5308 6.34851C16.9198 6.34851 15.6139 7.65445 15.6139 9.2654C15.6139 10.8764 16.9198 12.1823 18.5308 12.1823Z" fill="#888899"/>
<path d="M27.7963 12.1823C29.4072 12.1823 30.7132 10.8764 30.7132 9.2654C30.7132 7.65445 29.4072 6.34851 27.7963 6.34851C26.1853 6.34851 24.8794 7.65445 24.8794 9.2654C24.8794 10.8764 26.1853 12.1823 27.7963 12.1823Z" fill="#00D9F5"/>
<path d="M28.8257 24.5362H12.3538C11.7853 24.5362 11.3243 24.9971 11.3243 25.5657V36.8901C11.3243 37.4587 11.7853 37.9196 12.3538 37.9196H28.8257C29.3943 37.9196 29.8552 37.4587 29.8552 36.8901V25.5657C29.8552 24.9971 29.3943 24.5362 28.8257 24.5362Z" fill="#888899"/>
<path d="M51.6461 24.5362H35.1743C34.6057 24.5362 34.1448 24.9971 34.1448 25.5657V36.8901C34.1448 37.4587 34.6057 37.9196 35.1743 37.9196H51.6461C52.2147 37.9196 52.6756 37.4587 52.6756 36.8901V25.5657C52.6756 24.9971 52.2147 24.5362 51.6461 24.5362Z" fill="#888899"/>
<path d="M28.8257 42.2091H12.3538C11.7853 42.2091 11.3243 42.67 11.3243 43.2386V54.563C11.3243 55.1316 11.7853 55.5925 12.3538 55.5925H28.8257C29.3943 55.5925 29.8552 55.1316 29.8552 54.563V43.2386C29.8552 42.67 29.3943 42.2091 28.8257 42.2091Z" fill="#888899"/>
<path d="M51.6461 42.2091H35.1743C34.6057 42.2091 34.1448 42.67 34.1448 43.2386V54.563C34.1448 55.1316 34.6057 55.5925 35.1743 55.5925H51.6461C52.2147 55.5925 52.6756 55.1316 52.6756 54.563V43.2386C52.6756 42.67 52.2147 42.2091 51.6461 42.2091Z" fill="#888899"/>
</g>
<defs>
<clipPath id="clip0_5_94">
<rect width="64" height="64" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB