{
  "$schema": "https://mian.ro/schema/v2/registry.json",
  "schemaVersion": "2.0.0",
  "generatedAt": "2026-10-02T13:14:06.957Z",
  "id": "laksa",
  "name": "Laksa",
  "family": "Bold",
  "origin": "Malaysia · Singapore",
  "tagline": "Spicy, creamy, layered colour.",
  "description": "Curry laksa is rice noodles in a rich coconut-curry broth, red with chilli oil, topped with tofu puffs, lime and laksa leaf. Laksa is a bold colour system: saturated sambal red over coconut cream, thick coloured rings and bands, and a bubbling pulse of motion.",
  "inspiration": [
    "Chilli oil floating on coconut broth → saturated red-orange over warm cream, layered in thick bands",
    "Rich and creamy → full, rounded shapes with thick coloured rings instead of borders",
    "Laksa leaf and lime → herb green and lime as accents",
    "A simmering pot → components bubble in with a soft pulse"
  ],
  "traits": {
    "mood": [
      "spicy",
      "warm",
      "colourful",
      "layered",
      "vibrant"
    ],
    "intensity": 4,
    "contrast": "medium",
    "geometry": "rounded, layered colour",
    "type": "bold sans",
    "surface": "layered warm colour",
    "motion": "lively",
    "goodFor": [
      "food",
      "festivals",
      "travel",
      "culture"
    ],
    "lessFor": [
      "enterprise",
      "legal"
    ],
    "density": "comfortable"
  },
  "license": "LicenseRef-MIAN-1.0",
  "designLanguage": {
    "essence": "Laksa is layered colour. Chilli oil floats in a red layer over creamy coconut broth, so the interface is bold and saturated: sambal red over coconut cream in thick bands, thick coloured rings instead of thin borders, full round shapes, laksa-leaf and lime accents, and a bubbling pulse as things arrive.",
    "principles": [
      "Thick rings (3px inset box-shadows) replace thin borders.",
      "Layers: a band of chilli red floats on top of cream surfaces (inset top band plus --lk-oil).",
      "Saturated and warm: red, turmeric, leaf green, cream.",
      "Round and plump with a bubbling spring (laksa-in, laksa-bubble)."
    ],
    "aspects": {
      "Shape": "14px fields, 22px panels, pill buttons with a 4px darker base edge.",
      "Surface": "Coconut cream with a red band on top and warm coloured shadows.",
      "Colour": "Sambal red primary, laksa-leaf green accent, turmeric and chilli series.",
      "Type": "Rounded body, heavy (850) headings.",
      "Motion": "laksa-in: pop with overshoot 360ms; checkboxes bubble; the spinner is a rising ripple.",
      "Data": "Round saturated bars in four broth colours, thick lines and a thick donut."
    },
    "extend": [
      "Outline with box-shadow: inset 0 0 0 3px (colour at 30–45%) instead of border.",
      "Put a 5px inset top band of var(--mn-primary) on panels.",
      "Buttons: 999px radius, 4px darker bottom edge, lift on hover."
    ],
    "avoid": [
      "1px hairlines",
      "Cold neutrals",
      "Flat, unlayered surfaces"
    ],
    "recipe": "[data-noodle=\"laksa\"] .tile {\n  padding: 16px 18px; border: 0; border-radius: 22px; background: var(--mn-surface);\n  box-shadow: inset 0 5px 0 var(--mn-primary), inset 0 0 0 3px var(--mn-border);\n}\n[data-noodle=\"laksa\"] .tile[aria-selected=\"true\"] { box-shadow: inset 0 0 0 3px var(--mn-primary), 0 0 0 3px color-mix(in oklab, var(--mn-primary) 22%, transparent); }"
  },
  "psychology": {
    "temperature": "warm",
    "colours": [
      {
        "role": "Primary",
        "hex": "#be3a10",
        "family": "Red",
        "depth": "mid, saturated",
        "says": "Urgency, energy, appetite, danger. It raises attention faster than any other hue and reads as the most forceful.",
        "use": "One action that must be seen, sale and limited-time states, food, sport, entertainment.",
        "risk": "It is also the colour of errors. A red primary button next to a red error message makes both ambiguous, so pair a red brand with a distinct danger treatment (icon and words)."
      },
      {
        "role": "Accent",
        "hex": "#3f6212",
        "family": "Green",
        "depth": "deep",
        "says": "Growth, health, permission, money. The easiest colour to look at for a long time.",
        "use": "Finance, health, food, sustainability, and “go” or success states.",
        "risk": "Success messages are green too: a green brand needs a success state that is clearly a status (icon, words). Claims of sustainability made with green alone read as greenwashing."
      },
      {
        "role": "Page",
        "hex": "#fff5e8",
        "family": "Orange",
        "depth": "pale, saturated",
        "says": "Warmth, friendliness, appetite, affordability. Active like red, without the alarm.",
        "use": "Consumer products, food, community, calls to action on a neutral page.",
        "risk": "Can read as cheap when saturated across large areas; text on orange rarely passes contrast, so use it for fills with dark text or for accents."
      }
    ],
    "relation": "Red with green: a contrasting pair that needs one of the two to dominate.",
    "type": {
      "body": {
        "class": "rounded",
        "name": "Rounded sans",
        "says": "Friendly, soft, safe, young.",
        "use": "Consumer apps, children, food, onboarding.",
        "risk": "Hard to take seriously for money, law or medicine."
      },
      "heading": {
        "class": "neutral",
        "name": "Neutral sans",
        "says": "Clear, modern, impartial. The voice of software and signage.",
        "use": "Interfaces, documentation, most product marketing.",
        "risk": "The same few neutral sans typefaces set every generated page. Without a distinct weight, size or pairing it reads as a template."
      },
      "weight": 850,
      "summary": "Two voices: neutral sans for headings, rounded sans for the interface. Headings are heavy, which reads as loud and direct."
    },
    "personality": {
      "reads": [
        "spicy",
        "warm",
        "colourful",
        "layered",
        "vibrant"
      ],
      "intensity": 4,
      "dimensions": [
        "Excitement"
      ],
      "suits": [
        "food",
        "festivals",
        "travel",
        "culture"
      ],
      "lessFor": [
        "enterprise",
        "legal"
      ],
      "tone": "Bold. Short claims, strong verbs, big numbers. Say one thing per screen and say it loudly."
    },
    "logo": "Round marks fit: a circular symbol or a soft, lowercase wordmark. Use a heavy wordmark; a thin one would vanish beside these headings."
  },
  "url": "https://mian.ro/noodles/laksa",
  "markdownUrl": "https://mian.ro/ai/noodles/laksa.md",
  "stylesheet": "https://mian.ro/dist/noodles/laksa.css",
  "usage": "<html data-noodle=\"laksa\">",
  "fonts": {
    "sans": "ui-rounded, \"SF Pro Rounded\", \"Nunito\", ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", sans-serif",
    "heading": "ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif",
    "mono": "ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, \"Liberation Mono\", monospace"
  },
  "headingWeight": 850,
  "radius": {
    "field": "14px",
    "box": "22px",
    "badge": "999px"
  },
  "shadow": "soft",
  "density": "comfortable",
  "glass": false,
  "light": {
    "bg": "#fff5e8",
    "surface": "#fffcf6",
    "surface2": "#fbe6cd",
    "fg": "#2a120a",
    "muted": "#6e4a36",
    "border": "#f2d6b6",
    "input": "#dfb58b",
    "primary": "#be3a10",
    "primaryFg": "#ffffff",
    "secondary": "#fbe6cd",
    "secondaryFg": "#2a120a",
    "accent": "#3f6212",
    "accentFg": "#ffffff",
    "ring": "#be3a10",
    "success": "#15803d",
    "successFg": "#ffffff",
    "warning": "#b45309",
    "warningFg": "#ffffff",
    "danger": "#dc2626",
    "dangerFg": "#ffffff",
    "info": "#0369a1",
    "infoFg": "#ffffff",
    "primaryText": "#b83810",
    "secondaryText": "#826b5c",
    "accentText": "#3f6212",
    "successText": "#177739",
    "warningText": "#a64d09",
    "dangerText": "#c32322",
    "infoText": "#0369a1",
    "link": "#be3a10"
  },
  "dark": {
    "bg": "#170b06",
    "surface": "#22120a",
    "surface2": "#2f1a0f",
    "fg": "#fdebdc",
    "muted": "#c9a58c",
    "border": "#45281a",
    "input": "#654030",
    "primary": "#ff8a5b",
    "primaryFg": "#2a0d03",
    "secondary": "#2f1a0f",
    "secondaryFg": "#fdebdc",
    "accent": "#b5e36b",
    "accentFg": "#172603",
    "ring": "#ff8a5b",
    "success": "#4ade80",
    "successFg": "#052e16",
    "warning": "#fbbf24",
    "warningFg": "#1f1300",
    "danger": "#f87171",
    "dangerFg": "#210505",
    "info": "#38bdf8",
    "infoFg": "#03202d",
    "primaryText": "#ff8a5b",
    "secondaryText": "#927e71",
    "accentText": "#b5e36b",
    "successText": "#4ade80",
    "warningText": "#fbbf24",
    "dangerText": "#f87171",
    "infoText": "#38bdf8",
    "link": "#ff8a5b"
  },
  "css": "[data-noodle=\"laksa\"] {\n  --mn-bg: light-dark(#fff5e8, #170b06);\n  --mn-surface: light-dark(#fffcf6, #22120a);\n  --mn-surface-2: light-dark(#fbe6cd, #2f1a0f);\n  --mn-fg: light-dark(#2a120a, #fdebdc);\n  --mn-muted: light-dark(#6e4a36, #c9a58c);\n  --mn-border: light-dark(#f2d6b6, #45281a);\n  --mn-input: light-dark(#dfb58b, #654030);\n  --mn-primary: light-dark(#be3a10, #ff8a5b);\n  --mn-primary-fg: light-dark(#ffffff, #2a0d03);\n  --mn-secondary: light-dark(#fbe6cd, #2f1a0f);\n  --mn-secondary-fg: light-dark(#2a120a, #fdebdc);\n  --mn-accent: light-dark(#3f6212, #b5e36b);\n  --mn-accent-fg: light-dark(#ffffff, #172603);\n  --mn-ring: light-dark(#be3a10, #ff8a5b);\n  --mn-success: light-dark(#15803d, #4ade80);\n  --mn-success-fg: light-dark(#ffffff, #052e16);\n  --mn-warning: light-dark(#b45309, #fbbf24);\n  --mn-warning-fg: light-dark(#ffffff, #1f1300);\n  --mn-danger: light-dark(#dc2626, #f87171);\n  --mn-danger-fg: light-dark(#ffffff, #210505);\n  --mn-info: light-dark(#0369a1, #38bdf8);\n  --mn-info-fg: light-dark(#ffffff, #03202d);\n  --mn-primary-text: light-dark(#b83810, #ff8a5b);\n  --mn-secondary-text: light-dark(#826b5c, #927e71);\n  --mn-accent-text: light-dark(#3f6212, #b5e36b);\n  --mn-success-text: light-dark(#177739, #4ade80);\n  --mn-warning-text: light-dark(#a64d09, #fbbf24);\n  --mn-danger-text: light-dark(#c32322, #f87171);\n  --mn-info-text: light-dark(#0369a1, #38bdf8);\n  --mn-link: light-dark(#be3a10, #ff8a5b);\n  --mn-font: ui-rounded, \"SF Pro Rounded\", \"Nunito\", ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", sans-serif;\n  --mn-font-heading: ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n  --mn-font-mono: ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, \"Liberation Mono\", monospace;\n  --mn-heading-weight: 850;\n  --mn-radius-field: 14px;\n  --mn-radius-box: 22px;\n  --mn-radius-badge: 999px;\n  --mn-shadow-sm: 0 1px 3px rgb(0 0 0 / .08);\n  --mn-shadow-md: 0 4px 14px -4px rgb(0 0 0 / .12), 0 2px 4px -2px rgb(0 0 0 / .06);\n  --mn-shadow-lg: 0 20px 48px -12px rgb(0 0 0 / .25), 0 8px 16px -8px rgb(0 0 0 / .10);\n  --mn-size-xs: 28px;\n  --mn-size-sm: 34px;\n  --mn-size-md: 42px;\n  --mn-size-lg: 50px;\n  --mn-text-sm: 15px;\n  --mn-surface-alpha: 100%;\n  --mn-backdrop: none;\n  --mn-bg-image: none;\n}\n"
}
