# Mainframe Brand Identity A complete profile of **Mainframe**'s visual system — colors, typography, components, and personality — extracted from https://mainfra.me/. Built for designers, agents, and AI tools. - Page: https://characterquilt.com/branding/mainframe - Machine-readable JSON: https://characterquilt.com/branding/mainframe.json - Per-page llms.txt: https://characterquilt.com/branding/mainframe/llms.txt ## Quick Facts | Field | Value | |---|---| | Primary | #EB4E3D | | Accent | #E3D0CA | | Body Font | PP Neue Montreal | | Heading Font | PP Neue Montreal | ## Color Palette - primary: #EB4E3D - accent: #E3D0CA - background: #E2DEDA - textPrimary: #292929 - link: #E3D0CA ## Typography - primary: PP Neue Montreal — https://fonts.google.com/specimen/PP+Neue+Montreal - heading: PP Neue Montreal — https://fonts.google.com/specimen/PP+Neue+Montreal ## Visual Assets - Favicon: https://manifesto.mainframe.inc/icon.svg - Social card (og:image): /image/share/share-large.png ## UI Components - input: background=transparent, textColor=#292929, borderColor=null, borderRadius=0px, shadow=none ## Brand Personality Tone: modern · Energy: medium · Audience: tech-savvy professionals ## Mainframe Brand in the Wild Real-world brand assets — ads, campaigns, marketing materials. - **Sunset - by Jordan Singer - Mainframe** - Image: https://substackcdn.com/image/fetch/$s_!FDlT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F317a6dc2-9348-46da-a3fa-21b8d53d3630_5120x2880.png - Source: https://blog.mainfra.me/p/sunset - **Generative Computing - by Jordan Singer - Mainframe** - Image: https://substackcdn.com/image/fetch/$s_!23Ce!,w_1200,h_675,c_fill,f_jpg,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa030c5d7-a669-4407-90cf-919b9056f2f1_1920x1080.png - Source: https://blog.mainfra.me/p/generative-computing - **Say Hello to Cobot - by Jordan Singer - Mainframe** - Image: https://substackcdn.com/image/fetch/$s_!W7RR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb730f5f0-0eae-4b0d-a1c4-9b2564235d44_5120x2880.png - Source: https://blog.mainfra.me/p/say-hello-to-cobot - **Mainframe | Jordan Singer | Substack** - Image: https://substackcdn.com/image/fetch/$s_!iqqW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dd81f4d-eb86-4220-b5f8-ca7fea903ac2_5760x4320.jpeg - Source: https://blog.mainfra.me/ - **Cobot is available today in beta on iOS and Web** - Image: https://substackcdn.com/image/fetch/$s_!_Ozi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F036c4f6a-ddcb-4b54-851c-e2e14a5e4bcc_3840x2160.png - Source: https://blog.mainfra.me/p/cobot-is-available-today-in-beta - **Mainframe | Jordan Singer | Substack** - Image: https://substackcdn.com/image/fetch/$s_!ptdO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cf2dfc2-472c-4f1f-bf3c-8cc0a7893cdd_1200x630.png - Source: https://blog.mainfra.me/ ## Working with these fonts Not found on Google Fonts? Agent Instructions that you can follow if you have permission to use the fonts: CharacterQuilt.com suggests this flow that can help: 1. Open the company's homepage in a browser with DevTools open. 2. In the Network tab, filter by "Font" (or by extension: woff2, woff, ttf, otf). 3. Hard-reload the page and click around (pricing, blog, careers) — some weights only load on specific routes. 4. For each captured font URL: right-click → Save As to download the file locally. 5. View the page's CSS (DevTools → Sources, or curl the stylesheet URLs) and copy out the matching @font-face declarations. Rewrite each `src: url(...)` to point to your local file path. Programmatic alternative: load the URL with Playwright or Puppeteer, listen for `response` events whose `Content-Type` starts with `font/`, and write the body to disk. The CSS extraction step is the same. Only do this if you have permission to use the brand assets — most proprietary fonts are licensed and may not be redistributable. ## Machine-Readable Profile ```json { "colorScheme": "light", "fonts": [ { "family": "PP Neue Montreal", "role": "body" } ], "colors": { "primary": "#EB4E3D", "accent": "#E3D0CA", "background": "#E2DEDA", "textPrimary": "#292929", "link": "#E3D0CA" }, "typography": { "fontFamilies": { "primary": "PP Neue Montreal", "heading": "PP Neue Montreal" }, "fontStacks": { "heading": [ "PP Neue Montreal", "sans-serif" ], "body": [ "PP Neue Montreal", "sans-serif" ], "paragraph": [ "PP Neue Montreal", "sans-serif" ] }, "fontSizes": { "h1": "9.22227px", "h2": "34px", "body": "9.22227px" } }, "spacing": { "baseUnit": 4, "borderRadius": "2px" }, "components": { "input": { "background": "transparent", "textColor": "#292929", "borderColor": null, "borderRadius": "0px", "borderRadiusCorners": { "topLeft": "0px", "topRight": "0px", "bottomRight": "0px", "bottomLeft": "0px" }, "shadow": "none" } }, "images": { "favicon": "https://manifesto.mainframe.inc/icon.svg", "ogImage": "/image/share/share-large.png" }, "__llm_logo_reasoning": { "selectedIndex": -1, "reasoning": "No valid brand logo was found in the header area. The candidate provided is small and located in the body, not the header, and does not link to the homepage.", "confidence": 0.3, "rejected": true, "source": "llm" }, "personality": { "tone": "modern", "energy": "medium", "targetAudience": "tech-savvy professionals" }, "designSystem": { "framework": "custom", "componentLibrary": "" }, "confidence": { "buttons": 0, "colors": 0.9, "overall": 0.45 }, "__llm_metadata": { "logoSelection": { "llmCalled": true, "llmSucceeded": true, "finalSource": "llm", "rawLogoSelection": { "selectedLogoIndex": -1, "selectedLogoReasoning": "No valid brand logo was found in the header area. The candidate provided is small and located in the body, not the header, and does not link to the homepage.", "confidence": 0.3 } }, "buttonClassification": { "llmCalled": false, "llmSucceeded": false } } } ```