# Layup Brand Identity A complete profile of **Layup**'s visual system — colors, typography, components, and personality — extracted from http://www.layuplabs.ai. Built for designers, agents, and AI tools. - Page: https://characterquilt.com/branding/layup - Machine-readable JSON: https://characterquilt.com/branding/layup.json - Per-page llms.txt: https://characterquilt.com/branding/layup/llms.txt ## Quick Facts | Field | Value | |---|---| | Primary | #0000EE | | Accent | #6161FD | | Body Font | Inter | | Heading Font | Inter | ## Color Palette - primary: #0000EE - secondary: #6161FD - accent: #6161FD - background: #FFFFFF - textPrimary: #1E1C21 - link: #777967 ## Typography - primary: Inter — https://fonts.google.com/specimen/Inter - heading: Inter — https://fonts.google.com/specimen/Inter ## Visual Assets - Favicon: https://framerusercontent.com/images/kzj6HvLHbnbF0vm2C92V5AcTlCA.png - Social card (og:image): https://framerusercontent.com/images/12EIaDads8GMVaPTgUsuh5EtyTo.png ## UI Components - buttonPrimary: background=#6161FD, textColor=#0000EE, borderRadius=10px, shadow=rgba(16, 24, 40, 0.05) 0px 1px 2px 0px - buttonSecondary: background=#1E1C21, textColor=#0000EE, borderRadius=8px, shadow=rgba(0, 0, 0, 0.1) 0px 4px 6px -2px ## Brand Personality Tone: modern · Energy: medium · Audience: product managers and developers ## Layup Brand in the Wild Real-world brand assets — ads, campaigns, marketing materials. - **Layup | Guide users. Right in your product.** - Image: https://framerusercontent.com/images/1Y5WcCXqmfBpZiRNOYUdTH6NIfs.png?width=2998&height=1590 - Source: https://layuplabs.ai/ - **Layup | Guide users. Right in your product.** - Image: https://framerusercontent.com/images/C2ICzq6b1mGXLnUC3XoZgSSI.jpg?scale-down-to=2048 - Source: https://layuplabs.ai/company - **Layup | Guide users. Right in your product.** - Image: https://framerusercontent.com/images/EGlJPA40STxBS38XUvnhDqfkAsk.png?width=1500&height=1058 - Source: https://layuplabs.ai/ - **Layup | Guide users. Right in your product.** - Image: https://framerusercontent.com/images/GBKcVsS8GAsIMzoghn8o0qiSuQ4.png?width=1410&height=960 - Source: https://layuplabs.ai/ - **Layup | Guide users. Right in your product.** - Image: https://framerusercontent.com/images/Uw6eX06MUIs3lZGwkioFt10zZ2Y.png?width=1410&height=960 - Source: https://layuplabs.ai/ - **Layup | Guide users. Right in your product.** - Image: https://framerusercontent.com/images/pA4Kjr6fKFkMZ4S4u7njQ7gMc.png?width=1410&height=960 - Source: https://layuplabs.ai/ ## 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": "Geist Variable", "role": "unknown" }, { "family": "Inter", "role": "body" } ], "colors": { "primary": "#0000EE", "secondary": "#6161FD", "accent": "#6161FD", "background": "#FFFFFF", "textPrimary": "#1E1C21", "link": "#777967" }, "typography": { "fontFamilies": { "primary": "Inter", "heading": "Inter" }, "fontStacks": { "heading": [ "Geist Variable", "Geist Placeholder", "sans-serif" ], "body": [ "sans-serif" ], "paragraph": [ "Geist Variable", "Geist Placeholder", "sans-serif" ] }, "fontSizes": { "h1": "60px", "h2": "42px", "body": "18px" } }, "spacing": { "baseUnit": 10, "borderRadius": "12px" }, "components": { "buttonPrimary": { "background": "#6161FD", "textColor": "#0000EE", "borderRadius": "10px", "borderRadiusCorners": { "topLeft": "10px", "topRight": "10px", "bottomRight": "10px", "bottomLeft": "10px" }, "shadow": "rgba(16, 24, 40, 0.05) 0px 1px 2px 0px" }, "buttonSecondary": { "background": "#1E1C21", "textColor": "#0000EE", "borderRadius": "8px", "borderRadiusCorners": { "topLeft": "8px", "topRight": "8px", "bottomRight": "8px", "bottomLeft": "8px" }, "shadow": "rgba(0, 0, 0, 0.1) 0px 4px 6px -2px" } }, "images": { "favicon": "https://framerusercontent.com/images/kzj6HvLHbnbF0vm2C92V5AcTlCA.png", "ogImage": "https://framerusercontent.com/images/12EIaDads8GMVaPTgUsuh5EtyTo.png" }, "__llm_logo_reasoning": { "selectedIndex": -1, "reasoning": "No candidate clearly matches the brand 'Layup' in a prominent header position. The heuristic choice was a tiny icon, not suitable as a main logo.", "confidence": 0.3, "rejected": true, "source": "llm" }, "__llm_button_reasoning": { "primary": { "index": 0, "text": "NewLayup is joining Whatfix!", "reasoning": "Button #0 uses a vibrant blue color (#6161FD), which is a strong indicator of a primary call-to-action. The text 'NewLayup is joining Whatfix!' suggests an important announcement or action." }, "secondary": { "index": 1, "text": "Talk to sales", "reasoning": "Button #1 has a different background color (#1E1C21) and the text 'Talk to sales' indicates a secondary action, suitable for users seeking more information." }, "confidence": 0.9 }, "personality": { "tone": "modern", "energy": "medium", "targetAudience": "product managers and developers" }, "designSystem": { "framework": "custom", "componentLibrary": "" }, "confidence": { "buttons": 0.9, "colors": 0.9, "overall": 0.9 }, "__llm_metadata": { "logoSelection": { "llmCalled": true, "llmSucceeded": true, "finalSource": "llm", "rawLogoSelection": { "selectedLogoIndex": -1, "selectedLogoReasoning": "No candidate clearly matches the brand 'Layup' in a prominent header position. The heuristic choice was a tiny icon, not suitable as a main logo.", "confidence": 0.3 } }, "buttonClassification": { "llmCalled": true, "llmSucceeded": true } } } ```