llms.txt

Lovable Brand Identity

A complete profile of Lovable's visual system — colors, typography, components, and personality — extracted from https://lovable.dev/. Built for designers, agents, and AI tools.

Quick Facts

Field Value
Primary #000000
Accent #1E1E1E
Body Font Camera Plain Variable
Heading Font Camera Plain Variable

Color Palette

Typography

Visual Assets

UI Components

Brand Personality

Tone: modern · Energy: medium · Audience: developers and tech enthusiasts

Lovable Brand in the Wild

Real-world brand assets — ads, campaigns, marketing materials.

Working with these fonts

Not found on Google Fonts? Agent Instructions that you can follow if you have permission to use the fonts:

  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

{
 "colorScheme": "light",
 "fonts": [
 {
 "family": "Camera Plain Variable",
 "role": "unknown"
 }
],
 "colors": {
 "primary": "#000000",
 "accent": "#1E1E1E",
 "background": "#FCFBF8",
 "textPrimary": "#1C1C1C",
 "link": "#000000"
 },
 "typography": {
 "fontFamilies": {
 "primary": "Camera Plain Variable",
 "heading": "Camera Plain Variable"
 },
 "fontStacks": {
 "heading": [
 "Camera Plain Variable",
 "ui-sans-serif",
 "system-ui",
 "sans-serif"
 ],
 "body": [
 "Camera Plain Variable",
 "ui-sans-serif",
 "system-ui",
 "sans-serif"
 ],
 "paragraph": [
 "Camera Plain Variable",
 "ui-sans-serif",
 "system-ui",
 "sans-serif"
 ]
 },
 "fontSizes": {
 "h1": "20px",
 "h2": "48px",
 "body": "20px"
 }
 },
 "spacing": {
 "baseUnit": 4,
 "borderRadius": "4px"
 },
 "components": {
 "buttonPrimary": {
 "background": "#1E1E1E",
 "textColor": "#FAFAFA",
 "borderRadius": "8px",
 "borderRadiusCorners": {
 "topLeft": "8px",
 "topRight": "8px",
 "bottomRight": "8px",
 "bottomLeft": "8px"
 },
 "shadow": "rgba(0, 0, 0, 0.08) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.16) 0px -1px 0px 0px inset, rgb(0, 0, 0) 0px 0px 0px 1px inset, rgba(255, 255, 255, 0.24) 0px 1px 0px 0px inset, rgba(255, 255, 255, 0.16) 0px -1px 0px 0px inset, rgba(0, 0, 0, 0.12) 0px 2px 2px -1px, rgba(0, 0, 0, 0.12) 0px 4px 4px -2px"
 },
 "buttonSecondary": {
 "background": "transparent",
 "textColor": "#2E2E2D",
 "borderColor": "#C5C4C2",
 "borderRadius": "8px",
 "borderRadiusCorners": {
 "topLeft": "8px",
 "topRight": "8px",
 "bottomRight": "8px",
 "bottomLeft": "8px"
 },
 "shadow": "none"
 }
 },
 "images": {
 "logo": "data:image/svg+xml;utf8,%3Csvg%20role%3D%22img%22%20aria-label%3D%22Lovable%22%20viewBox%3D%220%200%20755%20129%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20class%3D%22shrink-0%20text-foreground%20h-6%20lg%3Ah-%5B18px%5D%22%20data-fc-idx%3D%220%22%3E...%3C%2Fsvg%3E",
 "favicon": "https://lovable.dev/favicon.svg",
 "ogImage": "https://lovable.dev/img/opengraph-image.png",
 "logoHref": "/",
 "logoAlt": "Lovable"
 },
 "__llm_logo_reasoning": {
 "selectedIndex": 3,
 "reasoning": "Selected #3 because it is visible, located in the header, links to the homepage, and matches the brand name 'Lovable'.",
 "confidence": 0.9,
 "source": "llm"
 },
 "__llm_button_reasoning": {
 "primary": {
 "index": 0,
 "text": "Get started",
 "reasoning": "Button #0 with text 'Get started' is likely the primary CTA due to its action-oriented text and dark background color, which stands out as a strong call-to-action."
 },
 "secondary": {
 "index": 6,
 "text": "View all",
 "reasoning": "Button #6 with text 'View all' is chosen as secondary due to its transparent background, making it less prominent than the primary button."
 },
 "confidence": 0.9
 },
 "personality": {
 "tone": "modern",
 "energy": "medium",
 "targetAudience": "developers and tech enthusiasts"
 },
 "designSystem": {
 "framework": "tailwind",
 "componentLibrary": ""
 },
 "confidence": {
 "buttons": 0.9,
 "colors": 0.9,
 "overall": 0.9
 },
 "__llm_metadata": {
 "logoSelection": {
 "llmCalled": true,
 "llmSucceeded": true,
 "finalSource": "llm",
 "rawLogoSelection": {
 "selectedLogoIndex": 3,
 "selectedLogoReasoning": "Selected #3 because it is visible, located in the header, links to the homepage, and matches the brand name 'Lovable'.",
 "confidence": 0.9
 }
 },
 "buttonClassification": {
 "llmCalled": true,
 "llmSucceeded": true
 }
 }
}