{
  "$schema": "https://mian.ro/schema/v2/registry.json",
  "schemaVersion": "2.0.0",
  "generatedAt": "2026-10-02T13:14:06.957Z",
  "id": "ramyeon",
  "name": "Ramyeon",
  "family": "Minimal",
  "origin": "Korea · instant noodles",
  "tagline": "Three minutes, a terminal and a timer.",
  "description": "Ramyeon comes in a packet with instructions: boil 550 ml, add noodles and soup, wait three minutes. Ramyeon is a terminal system: monospace everything, square corners, [ bracketed ] buttons, block-character progress, a text spinner and a blinking cursor, instructions, not decoration.",
  "inspiration": [
    "Printed instructions on the packet → monospace type, plain text first, uppercase labels",
    "Three minutes on a timer → block-character progress bars and a | / - \\ text spinner",
    "A block of dried noodles → square corners and a strict character grid",
    "Late-night screens → amber on black in dark mode, ink on paper in light"
  ],
  "traits": {
    "mood": [
      "technical",
      "terminal",
      "nerdy",
      "raw",
      "fast"
    ],
    "intensity": 2,
    "contrast": "high",
    "geometry": "square, monospace grid",
    "type": "monospace everywhere",
    "surface": "flat terminal",
    "motion": "stepped, instant",
    "goodFor": [
      "developer tools",
      "cli products",
      "hacker events",
      "changelogs",
      "infrastructure"
    ],
    "lessFor": [
      "luxury",
      "children",
      "wellness"
    ],
    "density": "compact"
  },
  "license": "LicenseRef-MIAN-1.0",
  "designLanguage": {
    "essence": "Ramyeon is a terminal. Its world is a packet of printed instructions and a three-minute wait, so the interface is plain monospaced text on a strict character grid: square corners, [ bracketed ] buttons and badges, selection shown in inverse video, progress and bars built from character blocks, a | /, \\ spinner and a blinking cursor. Instructions, not decoration.",
    "principles": [
      "Monospace everything; uppercase, tracked labels.",
      "Brackets mark what you can press or read as a token: [ SAVE ], [NEW].",
      "Selection = inverse video (fg background, bg text). Hover on quiet buttons inverts too.",
      "Blocks, not bars: progress and chart bars are rows of solid blocks with 2px gaps.",
      "Steps, not easing: motion uses steps(), typing in, ticking spinners, stepped fills."
    ],
    "aspects": {
      "Shape": "0px radius everywhere; square knobs and checkboxes.",
      "Surface": "Paper white or true black, 1px solid or dashed rules, a faint offset shadow on floating panels.",
      "Colour": "Ink and paper; amber accent (cursor, focus, highlights).",
      "Type": "Monospace at 400/600/700; # before card titles, ! before alert titles.",
      "Motion": "ramyeon-type: clip-path reveal in 10 steps (220ms); ramyeon-tick spinner in 4 steps.",
      "Data": "Block-character bars (6px blocks, 2px gaps), square line joins, dashed grid lines."
    },
    "extend": [
      "font-family: var(--mn-font-mono); border-radius: 0; border: 1px solid var(--mn-fg) (or 1px dashed var(--mn-input) for quiet rules).",
      "Wrap action labels in brackets with ::before / ::after content \"[\" \"]\".",
      "Selected / hovered rows and items: background var(--mn-fg); color var(--mn-bg).",
      "Show quantities as repeating-linear-gradient blocks (6px fill, 2px gap)."
    ],
    "avoid": [
      "Rounded corners",
      "Proportional fonts",
      "Smooth easing and fades",
      "Gradients or glass"
    ],
    "recipe": "[data-noodle=\"ramyeon\"] .tile { padding: 8px 12px; border: 1px dashed var(--mn-input); border-radius: 0; font-family: var(--mn-font-mono); text-transform: uppercase; letter-spacing: .04em; }\n[data-noodle=\"ramyeon\"] .tile::before { content: \"[ ] \"; }\n[data-noodle=\"ramyeon\"] .tile[aria-selected=\"true\"] { background: var(--mn-fg); color: var(--mn-bg); border-style: solid; }\n[data-noodle=\"ramyeon\"] .tile[aria-selected=\"true\"]::before { content: \"[x] \"; }"
  },
  "psychology": {
    "temperature": "neutral",
    "colours": [
      {
        "role": "Primary",
        "hex": "#111111",
        "family": "Black and ink",
        "depth": "deep, muted",
        "says": "Authority, precision, luxury. It makes everything next to it look more deliberate.",
        "use": "Fashion, editorial, developer tools, any brand that will let its content be the colour.",
        "risk": "Pure #000 on pure #fff is harsh on long text. Soften one of the two slightly, or warm both."
      },
      {
        "role": "Accent",
        "hex": "#a34c05",
        "family": "Brown and terracotta",
        "depth": "mid, saturated",
        "says": "Earth, craft, reliability, age. Feels made by hand and unhurried.",
        "use": "Food, coffee, leather, ceramics, heritage brands, anything artisanal.",
        "risk": "Looks dull on screens unless the neutrals around it are warm too."
      },
      {
        "role": "Page",
        "hex": "#f7f7f4",
        "family": "White and paper",
        "depth": "pale, muted",
        "says": "Space, honesty, simplicity. Warm whites feel human, cool whites feel clinical.",
        "use": "Almost everything. The page colour sets the temperature of the whole brand.",
        "risk": "Empty is not the same as calm: white space needs a grid behind it."
      }
    ],
    "relation": "A neutral primary with one brown and terracotta accent: the accent means “look here” precisely because nothing else is coloured.",
    "type": {
      "body": {
        "class": "mono",
        "name": "Monospace",
        "says": "Technical, exact, raw, honest. The voice of code, receipts and instruments.",
        "use": "Developer tools, data, labels, numbers that must align.",
        "risk": "Tiring for long paragraphs; reads as a costume when the product is not technical."
      },
      "heading": {
        "class": "mono",
        "name": "Monospace",
        "says": "Technical, exact, raw, honest. The voice of code, receipts and instruments.",
        "use": "Developer tools, data, labels, numbers that must align.",
        "risk": "Tiring for long paragraphs; reads as a costume when the product is not technical."
      },
      "weight": 700,
      "summary": "One voice throughout: monospace. Headings are semibold, which reads as confident without shouting."
    },
    "personality": {
      "reads": [
        "technical",
        "terminal",
        "nerdy",
        "raw",
        "fast"
      ],
      "intensity": 2,
      "dimensions": [],
      "suits": [
        "developer tools",
        "cli products",
        "hacker events",
        "changelogs",
        "infrastructure"
      ],
      "lessFor": [
        "luxury",
        "children",
        "wellness"
      ],
      "tone": "Calm and clear. Short sentences, one idea each, a friendly but not chatty register."
    },
    "logo": "Square and angular marks fit: a wordmark in capitals or a solid block symbol. A monospaced wordmark matches the headings."
  },
  "url": "https://mian.ro/noodles/ramyeon",
  "markdownUrl": "https://mian.ro/ai/noodles/ramyeon.md",
  "stylesheet": "https://mian.ro/dist/noodles/ramyeon.css",
  "usage": "<html data-noodle=\"ramyeon\">",
  "fonts": {
    "sans": "ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, \"Liberation Mono\", monospace",
    "heading": "ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, \"Liberation Mono\", monospace",
    "mono": "ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, \"Liberation Mono\", monospace"
  },
  "headingWeight": 700,
  "radius": {
    "field": "0px",
    "box": "0px",
    "badge": "0px"
  },
  "shadow": "none",
  "density": "compact",
  "glass": false,
  "light": {
    "bg": "#f7f7f4",
    "surface": "#ffffff",
    "surface2": "#eeeeea",
    "fg": "#111111",
    "muted": "#595955",
    "border": "#d9d9d4",
    "input": "#a9a9a3",
    "primary": "#111111",
    "primaryFg": "#f7f7f4",
    "secondary": "#eeeeea",
    "secondaryFg": "#111111",
    "accent": "#a34c05",
    "accentFg": "#ffffff",
    "ring": "#a34c05",
    "success": "#15803d",
    "successFg": "#ffffff",
    "warning": "#b45309",
    "warningFg": "#ffffff",
    "danger": "#dc2626",
    "dangerFg": "#ffffff",
    "info": "#0369a1",
    "infoFg": "#ffffff",
    "primaryText": "#111111",
    "secondaryText": "#6e6e6c",
    "accentText": "#a34c05",
    "successText": "#15793a",
    "warningText": "#aa4f09",
    "dangerText": "#c82424",
    "infoText": "#0369a1",
    "link": "#111111"
  },
  "dark": {
    "bg": "#0b0b0a",
    "surface": "#121211",
    "surface2": "#1b1b19",
    "fg": "#e9e9e4",
    "muted": "#9d9d97",
    "border": "#2a2a27",
    "input": "#55554f",
    "primary": "#e9e9e4",
    "primaryFg": "#0b0b0a",
    "secondary": "#1b1b19",
    "secondaryFg": "#e9e9e4",
    "accent": "#fbbf24",
    "accentFg": "#1f1300",
    "ring": "#fbbf24",
    "success": "#4ade80",
    "successFg": "#052e16",
    "warning": "#fbbf24",
    "warningFg": "#1f1300",
    "danger": "#f87171",
    "dangerFg": "#210505",
    "info": "#38bdf8",
    "infoFg": "#03202d",
    "primaryText": "#e9e9e4",
    "secondaryText": "#7e7e7a",
    "accentText": "#fbbf24",
    "successText": "#4ade80",
    "warningText": "#fbbf24",
    "dangerText": "#f87171",
    "infoText": "#38bdf8",
    "link": "#e9e9e4"
  },
  "css": "[data-noodle=\"ramyeon\"] {\n  --mn-bg: light-dark(#f7f7f4, #0b0b0a);\n  --mn-surface: light-dark(#ffffff, #121211);\n  --mn-surface-2: light-dark(#eeeeea, #1b1b19);\n  --mn-fg: light-dark(#111111, #e9e9e4);\n  --mn-muted: light-dark(#595955, #9d9d97);\n  --mn-border: light-dark(#d9d9d4, #2a2a27);\n  --mn-input: light-dark(#a9a9a3, #55554f);\n  --mn-primary: light-dark(#111111, #e9e9e4);\n  --mn-primary-fg: light-dark(#f7f7f4, #0b0b0a);\n  --mn-secondary: light-dark(#eeeeea, #1b1b19);\n  --mn-secondary-fg: light-dark(#111111, #e9e9e4);\n  --mn-accent: light-dark(#a34c05, #fbbf24);\n  --mn-accent-fg: light-dark(#ffffff, #1f1300);\n  --mn-ring: light-dark(#a34c05, #fbbf24);\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(#111111, #e9e9e4);\n  --mn-secondary-text: light-dark(#6e6e6c, #7e7e7a);\n  --mn-accent-text: light-dark(#a34c05, #fbbf24);\n  --mn-success-text: light-dark(#15793a, #4ade80);\n  --mn-warning-text: light-dark(#aa4f09, #fbbf24);\n  --mn-danger-text: light-dark(#c82424, #f87171);\n  --mn-info-text: light-dark(#0369a1, #38bdf8);\n  --mn-link: light-dark(#111111, #e9e9e4);\n  --mn-font: ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, \"Liberation Mono\", monospace;\n  --mn-font-heading: ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, \"Liberation Mono\", monospace;\n  --mn-font-mono: ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, \"Liberation Mono\", monospace;\n  --mn-heading-weight: 700;\n  --mn-radius-field: 0px;\n  --mn-radius-box: 0px;\n  --mn-radius-badge: 0px;\n  --mn-shadow-sm: none;\n  --mn-shadow-md: none;\n  --mn-shadow-lg: none;\n  --mn-size-xs: 24px;\n  --mn-size-sm: 28px;\n  --mn-size-md: 34px;\n  --mn-size-lg: 42px;\n  --mn-text-sm: 13px;\n  --mn-surface-alpha: 100%;\n  --mn-backdrop: none;\n  --mn-bg-image: none;\n}\n"
}
