{
  "$schema": "https://mian.ro/schema/v2/registry.json",
  "schemaVersion": "2.0.0",
  "generatedAt": "2026-10-02T13:14:06.957Z",
  "id": "mafaldine",
  "name": "Mafaldine",
  "family": "Elegant",
  "origin": "Italy · Naples",
  "tagline": "Royal ribbons with ruffled edges.",
  "description": "Mafaldine are long ribbons with ruffled edges, named in 1902 for Princess Mafalda of Savoy. Mafaldine is a regal system: Didone italics, wavy ruffled underlines and dividers, scalloped badges, deep burgundy and antique gold on cream, and slow, courtly motion.",
  "inspiration": [
    "Ruffled edges → wavy underlines, wavy dividers and scalloped badge edges",
    "Named for a princess → Didone display type in italic, burgundy and antique gold",
    "A long ribbon → long horizontal rhythm with generous margins",
    "A court, not a kitchen → slow, graceful motion that settles"
  ],
  "traits": {
    "mood": [
      "regal",
      "ornate",
      "romantic",
      "elegant",
      "expressive"
    ],
    "intensity": 3,
    "contrast": "medium",
    "geometry": "wavy ruffled edges",
    "type": "Didone italics",
    "surface": "ruffled ribbons",
    "motion": "waves",
    "goodFor": [
      "weddings",
      "culture",
      "fashion",
      "perfume",
      "theatre"
    ],
    "lessFor": [
      "developer tools",
      "finance"
    ],
    "density": "comfortable"
  },
  "license": "LicenseRef-MIAN-1.0",
  "designLanguage": {
    "essence": "Mafaldine is regal. Long ribbons with ruffled edges, named for a princess, become Didone italics, wavy ruffled underlines and dividers, scalloped badges, a fine gold rule inside every card, burgundy and antique gold on cream, generous margins and slow, courtly motion that settles.",
    "principles": [
      "Ruffle the edges that matter: the selected tab, dividers and card footers use the wave mask (--mf-wave-mask).",
      "Italic Didone for every title, table head, tab and step number.",
      "Gold is jewellery: a 1px inner rule, a bead on the switch, a ring round avatars, never a fill.",
      "Slow, settling motion (240–420ms)."
    ],
    "aspects": {
      "Shape": "4px controls, 6px containers; arched chart columns; scalloped badge bottoms.",
      "Surface": "Cream paper with a fine gold rule inset 4px from the edge.",
      "Colour": "Burgundy (#6d1a2b), antique gold (#846020), cream.",
      "Type": "Didone italic for headings; book serif for text.",
      "Motion": "mafaldine-in: a 6px rise while the tracking settles, 420ms.",
      "Data": "Arched columns with a gold edge; burgundy highlight; a slim 16% donut."
    },
    "extend": [
      "font-family: var(--mn-font-heading); font-style: italic; font-weight: 400 for titles.",
      "Inner gold rule: box-shadow: inset 0 0 0 4px var(--mn-surface), inset 0 0 0 5px color-mix(in oklab, var(--mn-accent) 35%, transparent).",
      "Ruffle: background: currentColor; mask: var(--mf-wave-mask) 0 50% / 16px 6px repeat-x; height: 6px."
    ],
    "avoid": [
      "Bold sans-serif",
      "Flat, saturated colour",
      "Fast or springy motion"
    ],
    "recipe": "[data-noodle=\"mafaldine\"] .tile { padding: 14px 18px; border: 1px solid var(--mn-border); border-radius: 6px; background: var(--mn-surface); box-shadow: inset 0 0 0 4px var(--mn-surface), inset 0 0 0 5px color-mix(in oklab, var(--mn-accent) 35%, transparent); font-family: var(--mn-font-heading); font-style: italic; }\n[data-noodle=\"mafaldine\"] .tile[aria-selected=\"true\"] { background: var(--mn-primary); color: var(--mn-primary-fg); }"
  },
  "psychology": {
    "temperature": "warm",
    "colours": [
      {
        "role": "Primary",
        "hex": "#6d1a2b",
        "family": "Red",
        "depth": "deep",
        "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": "#846020",
        "family": "Brown and terracotta",
        "depth": "mid",
        "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": "#fbf7ef",
        "family": "White and paper",
        "depth": "pale",
        "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": "Red with brown and terracotta: a contrasting pair that needs one of the two to dominate.",
    "type": {
      "body": {
        "class": "serif",
        "name": "Book serif (old-style and transitional)",
        "says": "Considered, literate, established. The voice of books and long reading.",
        "use": "Editorial, publishing, research, thoughtful products, quotations.",
        "risk": "Needs size and good line spacing on screens; small serif text on low-resolution displays gets muddy."
      },
      "heading": {
        "class": "didone",
        "name": "Didone serif (high contrast)",
        "says": "Fashion, luxury, ceremony. Thick and hair-thin strokes signal expense.",
        "use": "Display sizes only: mastheads, product names, invitations.",
        "risk": "Unreadable as body text and fragile on dark backgrounds, where the thin strokes break up."
      },
      "weight": 400,
      "summary": "Two voices: didone serif (high contrast) for headings, book serif (old-style and transitional) for the interface. Headings are light to regular, which reads as delicate and unhurried."
    },
    "personality": {
      "reads": [
        "regal",
        "ornate",
        "romantic",
        "elegant",
        "expressive"
      ],
      "intensity": 3,
      "dimensions": [],
      "suits": [
        "weddings",
        "culture",
        "fashion",
        "perfume",
        "theatre"
      ],
      "lessFor": [
        "developer tools",
        "finance"
      ],
      "tone": "Lively. A point of view in the headline, concrete verbs, a little humour where it is true."
    },
    "logo": "A simple geometric mark with slightly softened corners fits; avoid both hard spikes and full circles. Set the wordmark in a serif to match the headings."
  },
  "url": "https://mian.ro/noodles/mafaldine",
  "markdownUrl": "https://mian.ro/ai/noodles/mafaldine.md",
  "stylesheet": "https://mian.ro/dist/noodles/mafaldine.css",
  "usage": "<html data-noodle=\"mafaldine\">",
  "fonts": {
    "sans": "\"Iowan Old Style\", \"Palatino Linotype\", Palatino, \"Book Antiqua\", ui-serif, Georgia, serif",
    "heading": "Didot, \"Bodoni 72\", \"Bodoni MT\", \"Bodoni Moda\", \"Libre Bodoni\", ui-serif, Georgia, serif",
    "mono": "ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, \"Liberation Mono\", monospace"
  },
  "headingWeight": 400,
  "radius": {
    "field": "4px",
    "box": "6px",
    "badge": "999px"
  },
  "shadow": "subtle",
  "density": "comfortable",
  "glass": false,
  "light": {
    "bg": "#fbf7ef",
    "surface": "#fffdf8",
    "surface2": "#f3ece0",
    "fg": "#2a1016",
    "muted": "#6d5359",
    "border": "#e9dccc",
    "input": "#d4c0ab",
    "primary": "#6d1a2b",
    "primaryFg": "#ffffff",
    "secondary": "#f3ece0",
    "secondaryFg": "#2a1016",
    "accent": "#846020",
    "accentFg": "#ffffff",
    "ring": "#6d1a2b",
    "success": "#15803d",
    "successFg": "#ffffff",
    "warning": "#b45309",
    "warningFg": "#ffffff",
    "danger": "#dc2626",
    "dangerFg": "#ffffff",
    "info": "#0369a1",
    "infoFg": "#ffffff",
    "primaryText": "#6d1a2b",
    "secondaryText": "#7e6c6b",
    "accentText": "#846020",
    "successText": "#17773a",
    "warningText": "#a94e0a",
    "dangerText": "#c72324",
    "infoText": "#0369a1",
    "link": "#6d1a2b"
  },
  "dark": {
    "bg": "#150a0d",
    "surface": "#1d0f13",
    "surface2": "#28151b",
    "fg": "#f8ece6",
    "muted": "#c3a7ad",
    "border": "#36212a",
    "input": "#573a43",
    "primary": "#e8a0ae",
    "primaryFg": "#33070f",
    "secondary": "#28151b",
    "secondaryFg": "#f8ece6",
    "accent": "#e2c07a",
    "accentFg": "#2b1d00",
    "ring": "#e8a0ae",
    "success": "#4ade80",
    "successFg": "#052e16",
    "warning": "#fbbf24",
    "warningFg": "#1f1300",
    "danger": "#f87171",
    "dangerFg": "#210505",
    "info": "#38bdf8",
    "infoFg": "#03202d",
    "primaryText": "#e8a0ae",
    "secondaryText": "#8c7c7c",
    "accentText": "#e2c07a",
    "successText": "#4ade80",
    "warningText": "#fbbf24",
    "dangerText": "#f87171",
    "infoText": "#38bdf8",
    "link": "#e8a0ae"
  },
  "css": "[data-noodle=\"mafaldine\"] {\n  --mn-bg: light-dark(#fbf7ef, #150a0d);\n  --mn-surface: light-dark(#fffdf8, #1d0f13);\n  --mn-surface-2: light-dark(#f3ece0, #28151b);\n  --mn-fg: light-dark(#2a1016, #f8ece6);\n  --mn-muted: light-dark(#6d5359, #c3a7ad);\n  --mn-border: light-dark(#e9dccc, #36212a);\n  --mn-input: light-dark(#d4c0ab, #573a43);\n  --mn-primary: light-dark(#6d1a2b, #e8a0ae);\n  --mn-primary-fg: light-dark(#ffffff, #33070f);\n  --mn-secondary: light-dark(#f3ece0, #28151b);\n  --mn-secondary-fg: light-dark(#2a1016, #f8ece6);\n  --mn-accent: light-dark(#846020, #e2c07a);\n  --mn-accent-fg: light-dark(#ffffff, #2b1d00);\n  --mn-ring: light-dark(#6d1a2b, #e8a0ae);\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(#6d1a2b, #e8a0ae);\n  --mn-secondary-text: light-dark(#7e6c6b, #8c7c7c);\n  --mn-accent-text: light-dark(#846020, #e2c07a);\n  --mn-success-text: light-dark(#17773a, #4ade80);\n  --mn-warning-text: light-dark(#a94e0a, #fbbf24);\n  --mn-danger-text: light-dark(#c72324, #f87171);\n  --mn-info-text: light-dark(#0369a1, #38bdf8);\n  --mn-link: light-dark(#6d1a2b, #e8a0ae);\n  --mn-font: \"Iowan Old Style\", \"Palatino Linotype\", Palatino, \"Book Antiqua\", ui-serif, Georgia, serif;\n  --mn-font-heading: Didot, \"Bodoni 72\", \"Bodoni MT\", \"Bodoni Moda\", \"Libre Bodoni\", ui-serif, Georgia, serif;\n  --mn-font-mono: ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, \"Liberation Mono\", monospace;\n  --mn-heading-weight: 400;\n  --mn-radius-field: 4px;\n  --mn-radius-box: 6px;\n  --mn-radius-badge: 999px;\n  --mn-shadow-sm: 0 1px 2px rgb(0 0 0 / .05);\n  --mn-shadow-md: 0 2px 6px -1px rgb(0 0 0 / .08), 0 1px 2px rgb(0 0 0 / .04);\n  --mn-shadow-lg: 0 12px 32px -8px rgb(0 0 0 / .18), 0 4px 8px -4px rgb(0 0 0 / .08);\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"
}
