{
  "schemaVersion": "1.0",
  "id": "doubloon-directory",
  "version": "1.1.0",
  "name": "Doubloon Directory",
  "tier": "free",
  "summary": "Dense CRM interface with brass-gold actions, cool grey-blue structure, 1px borders and tabular figures for fast record scanning.",
  "tags": {
    "industries": [
      "crm",
      "sales-ops",
      "b2b-saas"
    ],
    "moods": [
      "technical",
      "precise",
      "calm"
    ],
    "density": "compact",
    "contrast": "standard"
  },
  "rationale": {
    "overview": "Doubloon Directory is for people who work in contact, pipeline and activity records for hours: account executives, RevOps analysts and customer success leads. Spacing stays on space.0.5 to space.3 inside rows. Every container has a 1px border token. Numeric columns use tabular figures so values align without effort. Decoration is limited to one serif title per page and one gold primary action per view.",
    "color": "Tally Gold (brand, a brass in the 80 to 99 OKLCH hue band) carries primary, ring and selected states. It is brand.700 #735a00 in light mode, about 6.2:1 on background, and brand.400 #d6af24 in dark mode, about 8.5:1 on background. The neutral ramp is tinted cool blue (hue near 255) at low chroma, so long grids stay quiet and gold reads as the only warm accent. Status scales follow the same chroma curve as brand: chroma peaks at 400 to 500, then tapers toward 50 and 950 so mid-steps stay clean. Success is a slightly warm green and warning is a burnt amber that sits clear of gold. Danger is a magenta-leaning crimson (danger.600 #b8244a light, danger.400 #f0607a dark), more than 18 ΔE from primary in both modes. Dark surfaces use neutral.950 #131823 for background and neutral.900 #222937 for card and popover, so cards sit one step above the page.",
    "typography": "Inter (400, 500, 600) sets all interface text, tables and forms. Its tnum feature keeps numeric columns aligned. Instrument Serif at weight 400 sets only display-lg 38px, display-md 30px and heading-lg 24px. Those sizes step by a 1.25 ratio, with letterSpacing tightened from -0.01em to -0.02em as size grows. Sans text runs 11 / 13 / 14 / 16 / 18px. body-md is 14px at 1.5 line height for comfortable reading in dense views. Geist Mono (400, 500) sets code at 13px for deal IDs, API keys and record identifiers.",
    "layout": "Compact density on a 4px grid, with space.0.5 (2px) and space.1.5 (6px) for hairline adjustments. Buttons, inputs and table rows are 32px tall. Card padding is space.3 (12px). Badges are 18px tall. Section gaps use space.4 to space.6.",
    "elevation": "Mostly flat. Panels and table containers are separated by the 1px border token (neutral.200 light, neutral.800 dark). Cards use shadow.sm. Menus and popovers use shadow.md, and dialogs use shadow.lg. Shadows are tinted with neutral.950 rather than black.",
    "shapes": "radius.sm (3px) for checkboxes and inline tags, radius.md (6px) for buttons and inputs, and radius.lg (8px) for cards. radius.xl (12px) is for dialogs only. radius.full is for status badges only."
  },
  "primitives": {
    "color": {
      "brand": {
        "50": "#fffbeb",
        "100": "#fff3c6",
        "200": "#fde58c",
        "300": "#f2d050",
        "400": "#d6af24",
        "500": "#b48f0c",
        "600": "#927302",
        "700": "#735a00",
        "800": "#5a4600",
        "900": "#413300",
        "950": "#2a2100"
      },
      "neutral": {
        "50": "#f6f8fb",
        "100": "#eceff4",
        "200": "#dde2ea",
        "300": "#c3cbd7",
        "400": "#9aa5b5",
        "500": "#738096",
        "600": "#556275",
        "700": "#445063",
        "800": "#333c4c",
        "900": "#222937",
        "950": "#131823"
      },
      "success": {
        "50": "#effcf2",
        "100": "#d6f7df",
        "200": "#ade9c0",
        "300": "#75d698",
        "400": "#3fbd72",
        "500": "#1b9d58",
        "600": "#0e7f46",
        "700": "#086638",
        "800": "#09502e",
        "900": "#073c23",
        "950": "#032816"
      },
      "warning": {
        "50": "#fff8ec",
        "100": "#ffedd0",
        "200": "#fdd6a2",
        "300": "#f8b96a",
        "400": "#ef9a38",
        "500": "#dc7d14",
        "600": "#b8620a",
        "700": "#934c0b",
        "800": "#733b0c",
        "900": "#562c0b",
        "950": "#381b05"
      },
      "danger": {
        "50": "#fff1f3",
        "100": "#ffe0e5",
        "200": "#ffc2cc",
        "300": "#fb96a8",
        "400": "#f0607a",
        "500": "#d93a5a",
        "600": "#b8244a",
        "700": "#97163b",
        "800": "#78102f",
        "900": "#560a21",
        "950": "#37000f"
      }
    },
    "font": {
      "display": {
        "family": "Instrument Serif",
        "fallback": "Georgia, serif",
        "source": "google",
        "weights": [
          400
        ]
      },
      "sans": {
        "family": "Inter",
        "fallback": "system-ui, sans-serif",
        "source": "google",
        "weights": [
          400,
          500,
          600
        ]
      },
      "mono": {
        "family": "Geist Mono",
        "fallback": "ui-monospace, monospace",
        "source": "google",
        "weights": [
          400,
          500
        ]
      }
    },
    "radius": {
      "none": 0,
      "sm": 3,
      "md": 6,
      "lg": 8,
      "xl": 12,
      "full": 9999
    },
    "space": {
      "0": 0,
      "1": 4,
      "2": 8,
      "3": 12,
      "4": 16,
      "5": 20,
      "6": 24,
      "8": 32,
      "10": 40,
      "12": 48,
      "16": 64,
      "20": 80,
      "24": 96,
      "0.5": 2,
      "1.5": 6
    },
    "shadow": {
      "sm": "0 1px 2px rgba(19, 24, 35, 0.08)",
      "md": "0 4px 10px -2px rgba(19, 24, 35, 0.14)",
      "lg": "0 12px 28px -6px rgba(19, 24, 35, 0.22)"
    }
  },
  "typography": {
    "display-lg": {
      "font": "display",
      "size": 38,
      "lineHeight": 1.1,
      "weight": 400,
      "letterSpacing": -0.02
    },
    "display-md": {
      "font": "display",
      "size": 30,
      "lineHeight": 1.15,
      "weight": 400,
      "letterSpacing": -0.015
    },
    "heading-lg": {
      "font": "display",
      "size": 24,
      "lineHeight": 1.2,
      "weight": 400,
      "letterSpacing": -0.01
    },
    "heading-md": {
      "font": "sans",
      "size": 18,
      "lineHeight": 1.3,
      "weight": 600,
      "letterSpacing": -0.01
    },
    "heading-sm": {
      "font": "sans",
      "size": 14,
      "lineHeight": 1.35,
      "weight": 600,
      "letterSpacing": -0.003
    },
    "body-lg": {
      "font": "sans",
      "size": 16,
      "lineHeight": 1.55,
      "weight": 400,
      "letterSpacing": 0
    },
    "body-md": {
      "font": "sans",
      "size": 14,
      "lineHeight": 1.5,
      "weight": 400,
      "letterSpacing": 0
    },
    "body-sm": {
      "font": "sans",
      "size": 13,
      "lineHeight": 1.45,
      "weight": 400,
      "letterSpacing": 0
    },
    "label": {
      "font": "sans",
      "size": 13,
      "lineHeight": 1.25,
      "weight": 500,
      "letterSpacing": 0.003
    },
    "caption": {
      "font": "sans",
      "size": 11,
      "lineHeight": 1.4,
      "weight": 500,
      "letterSpacing": 0.01
    },
    "code": {
      "font": "mono",
      "size": 13,
      "lineHeight": 1.5,
      "weight": 400,
      "letterSpacing": 0
    }
  },
  "semantic": {
    "light": {
      "background": "{color.neutral.50}",
      "foreground": "{color.neutral.950}",
      "card": "#ffffff",
      "card-foreground": "{color.neutral.950}",
      "popover": "#ffffff",
      "popover-foreground": "{color.neutral.950}",
      "primary": "{color.brand.700}",
      "primary-foreground": "#ffffff",
      "secondary": "{color.neutral.100}",
      "secondary-foreground": "{color.neutral.900}",
      "muted": "{color.neutral.100}",
      "muted-foreground": "{color.neutral.600}",
      "accent": "{color.brand.100}",
      "accent-foreground": "{color.brand.900}",
      "destructive": "{color.danger.600}",
      "destructive-foreground": "#ffffff",
      "success": "{color.success.700}",
      "success-foreground": "#ffffff",
      "warning": "{color.warning.200}",
      "warning-foreground": "{color.warning.900}",
      "border": "{color.neutral.200}",
      "input": "{color.neutral.300}",
      "ring": "{color.brand.700}"
    },
    "dark": {
      "background": "{color.neutral.950}",
      "foreground": "{color.neutral.50}",
      "card": "{color.neutral.900}",
      "card-foreground": "{color.neutral.50}",
      "popover": "{color.neutral.900}",
      "popover-foreground": "{color.neutral.50}",
      "primary": "{color.brand.400}",
      "primary-foreground": "{color.brand.950}",
      "secondary": "{color.neutral.800}",
      "secondary-foreground": "{color.neutral.100}",
      "muted": "{color.neutral.800}",
      "muted-foreground": "{color.neutral.300}",
      "accent": "{color.brand.900}",
      "accent-foreground": "{color.brand.100}",
      "destructive": "{color.danger.400}",
      "destructive-foreground": "{color.danger.950}",
      "success": "{color.success.400}",
      "success-foreground": "{color.success.950}",
      "warning": "{color.warning.400}",
      "warning-foreground": "{color.warning.950}",
      "border": "{color.neutral.800}",
      "input": "{color.neutral.700}",
      "ring": "{color.brand.400}"
    }
  },
  "components": {
    "button": {
      "height": 32,
      "paddingX": "{space.3}",
      "radius": "{radius.md}",
      "typography": "{typography.label}",
      "fontWeight": 500
    },
    "input": {
      "height": 32,
      "paddingX": "{space.2}",
      "radius": "{radius.md}",
      "typography": "{typography.body-sm}",
      "borderWidth": 1
    },
    "card": {
      "padding": "{space.3}",
      "radius": "{radius.lg}",
      "shadow": "{shadow.sm}",
      "borderWidth": 1
    },
    "badge": {
      "height": 18,
      "paddingX": "{space.1.5}",
      "radius": "{radius.full}",
      "typography": "{typography.caption}"
    }
  },
  "guidance": {
    "do": [
      "Use the primary token for at most one button per view, such as Save or Create deal. Set every other button to secondary (neutral.100 fill) or ghost.",
      "Set numeric table columns in Inter with font-feature-settings: 'tnum' and align them right.",
      "Keep table rows and buttons at 32px. Use space.1 to space.3 for in-row and in-cell padding.",
      "Separate table rows and outline inputs with 1px border and input tokens, not shadows or background tints alone.",
      "Show focus on every interactive element with a 2px ring token outline at 2px offset (brand.700 light, brand.400 dark).",
      "Pair every success, warning and destructive badge with a text label or icon so state is never conveyed by color alone.",
      "Use muted-foreground (neutral.600 light, neutral.300 dark) for secondary metadata such as timestamps and owner names. Do not go lighter than these tokens."
    ],
    "dont": [
      "Don't use primary, accent or any brand step for errors, overdue dates or negative deltas. Use destructive for those.",
      "Don't set Instrument Serif below 24px (heading-lg) or on table headers, labels, buttons or form text.",
      "Don't use weights other than 400 for Instrument Serif, 400 to 600 for Inter, or 400 and 500 for Geist Mono.",
      "Don't apply shadow.md or shadow.lg to table rows, list items or cards. Use shadow.md for menus and popovers and shadow.lg for dialogs.",
      "Don't use the warning token for highlights or selection. Use accent (brand.100 light, brand.900 dark) for selected rows instead.",
      "Don't use pure black, pure grey or warm greys. Draw every surface, border and text color from color.neutral."
    ]
  }
}
