{
  "schemaVersion": "1.0",
  "id": "monolith-standup",
  "version": "1.1.0",
  "name": "Monolith Standup",
  "tier": "free",
  "summary": "Brutalist project-management UI: square slabs, 2px borders and hard offset shadows, with acid-lime action on olive-tinted concrete neutrals.",
  "tags": {
    "industries": [
      "project-management",
      "developer-tools",
      "software"
    ],
    "moods": [
      "brutalist",
      "bold",
      "raw",
      "deliberate"
    ],
    "density": "comfortable",
    "contrast": "high"
  },
  "rationale": {
    "overview": "Monolith Standup is a project tracker where tasks, owners and deadlines are the content and the structure is left visible. It uses 2px borders, radius 0, solid offset shadows with 0 blur, and a single acid-lime signal color. Every text pair in both modes clears 5:1, so the hard look never costs legibility.",
    "color": "Neutrals are concrete greys tinted toward olive (OKLCH hue about 110), the same undertone as the lime brand. Chroma stays low and even across neutral 300–700 so mid-steps never turn muddy. Light mode: primary is brand.700 (#5f7000) with white text (about 5.5:1) on neutral.50 (about 5.1:1), and border is neutral.900. Bright brand.300 is accent only and always carries brand.950 text. Dark mode: primary is brand.400 (#b8cf2a) with brand.950 text, about 10:1 against the neutral.950 background. Destructive is crimson (danger.600 in light, danger.400 in dark), far from lime in hue in both modes. Warning is a warm amber that sits beside the lime's yellow side. Success is a deeper green (success.700 in light, success.400 in dark) placed clearly cooler than the brand so 'done' never reads as 'primary'.",
    "typography": "The scale runs 12/14/16/18/20 for UI text, then steps by about ×1.4 for display: 20 → 28 → 40 → 56. Syne (700–800) is used only at 28px and above. Tracking tightens with size: -0.015em at 28, -0.025em at 40, -0.035em at 56. Manrope (400–800) carries body text at 500 weight with 1.5–1.6 line height, plus labels at 700 with +0.04em uppercase tracking. Fira Code (400/500/700) sets IDs, branches, estimates and timestamps.",
    "layout": "Comfortable density on a 4px grid. Cards use 24px padding (space.6), and buttons and inputs are 44px tall. Columns and table cells meet at shared 2px borders instead of being separated by gaps. Align to the grid and don't center loose elements in whitespace.",
    "elevation": "Depth comes only from solid offset shadows in neutral.950: sm 2px for resting rows and chips, md 4px for cards, lg 8px for popovers and dialogs. In dark mode the shadow color merges with the background, so the 2px border plus the card step (neutral.900 on neutral.950) carry the separation.",
    "shapes": "radius.none (0) applies to buttons, inputs, cards, badges, tables, popovers and dialogs. The only rounded shape is radius.full, for avatars, radio dots and status dots."
  },
  "primitives": {
    "color": {
      "brand": {
        "50": "#f9fde1",
        "100": "#f1f9bd",
        "200": "#e3f28a",
        "300": "#d0e555",
        "400": "#b8cf2a",
        "500": "#9bb312",
        "600": "#7b9000",
        "700": "#5f7000",
        "800": "#475500",
        "900": "#313b00",
        "950": "#1c2200"
      },
      "neutral": {
        "50": "#f7f8f0",
        "100": "#eceee1",
        "200": "#d9dccb",
        "300": "#bfc3ae",
        "400": "#a0a58c",
        "500": "#818770",
        "600": "#666b57",
        "700": "#4e5342",
        "800": "#383c2f",
        "900": "#252820",
        "950": "#14160f"
      },
      "success": {
        "50": "#ebfdf0",
        "100": "#cff8db",
        "200": "#a0edba",
        "300": "#68da93",
        "400": "#3cc272",
        "500": "#1fa45a",
        "600": "#108548",
        "700": "#0b693a",
        "800": "#08512e",
        "900": "#053a21",
        "950": "#022313"
      },
      "warning": {
        "50": "#fff8e1",
        "100": "#ffefb8",
        "200": "#ffe07a",
        "300": "#ffcc3d",
        "400": "#f2b300",
        "500": "#d19600",
        "600": "#a87700",
        "700": "#835c00",
        "800": "#624400",
        "900": "#433000",
        "950": "#281c00"
      },
      "danger": {
        "50": "#fff3f2",
        "100": "#ffe1df",
        "200": "#ffc3c0",
        "300": "#ff9a98",
        "400": "#fb6a6d",
        "500": "#ec3f4a",
        "600": "#cc2536",
        "700": "#a61a2b",
        "800": "#7f1220",
        "900": "#5a0a15",
        "950": "#3a030b"
      }
    },
    "font": {
      "display": {
        "family": "Syne",
        "fallback": "Impact, sans-serif",
        "source": "google",
        "weights": [
          700,
          800
        ]
      },
      "sans": {
        "family": "Manrope",
        "fallback": "system-ui, sans-serif",
        "source": "google",
        "weights": [
          400,
          500,
          600,
          700,
          800
        ]
      },
      "mono": {
        "family": "Fira Code",
        "fallback": "ui-monospace, monospace",
        "source": "google",
        "weights": [
          400,
          500,
          700
        ]
      }
    },
    "radius": {
      "none": 0,
      "sm": 0,
      "md": 0,
      "lg": 0,
      "xl": 0,
      "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": "2px 2px 0 0 #14160f",
      "md": "4px 4px 0 0 #14160f",
      "lg": "8px 8px 0 0 #14160f"
    }
  },
  "typography": {
    "display-lg": {
      "font": "display",
      "size": 56,
      "lineHeight": 1,
      "weight": 800,
      "letterSpacing": -0.035
    },
    "display-md": {
      "font": "display",
      "size": 40,
      "lineHeight": 1.05,
      "weight": 800,
      "letterSpacing": -0.025
    },
    "heading-lg": {
      "font": "display",
      "size": 28,
      "lineHeight": 1.15,
      "weight": 700,
      "letterSpacing": -0.015
    },
    "heading-md": {
      "font": "sans",
      "size": 20,
      "lineHeight": 1.3,
      "weight": 800,
      "letterSpacing": -0.01
    },
    "heading-sm": {
      "font": "sans",
      "size": 16,
      "lineHeight": 1.35,
      "weight": 700,
      "letterSpacing": 0
    },
    "body-lg": {
      "font": "sans",
      "size": 18,
      "lineHeight": 1.6,
      "weight": 500,
      "letterSpacing": 0
    },
    "body-md": {
      "font": "sans",
      "size": 16,
      "lineHeight": 1.55,
      "weight": 500,
      "letterSpacing": 0
    },
    "body-sm": {
      "font": "sans",
      "size": 14,
      "lineHeight": 1.5,
      "weight": 500,
      "letterSpacing": 0.005
    },
    "label": {
      "font": "sans",
      "size": 14,
      "lineHeight": 1.2,
      "weight": 700,
      "letterSpacing": 0.04
    },
    "caption": {
      "font": "mono",
      "size": 12,
      "lineHeight": 1.4,
      "weight": 500,
      "letterSpacing": 0.02
    },
    "code": {
      "font": "mono",
      "size": 14,
      "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.700}",
      "accent": "{color.brand.300}",
      "accent-foreground": "{color.brand.950}",
      "destructive": "{color.danger.600}",
      "destructive-foreground": "#ffffff",
      "success": "{color.success.700}",
      "success-foreground": "#ffffff",
      "warning": "{color.warning.300}",
      "warning-foreground": "{color.warning.900}",
      "border": "{color.neutral.900}",
      "input": "{color.neutral.700}",
      "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.500}",
      "input": "{color.neutral.400}",
      "ring": "{color.brand.400}"
    }
  },
  "components": {
    "button": {
      "height": 44,
      "paddingX": "{space.5}",
      "radius": "{radius.none}",
      "typography": "{typography.label}",
      "fontWeight": 700
    },
    "input": {
      "height": 44,
      "paddingX": "{space.3}",
      "radius": "{radius.none}",
      "typography": "{typography.body-sm}",
      "borderWidth": 2
    },
    "card": {
      "padding": "{space.6}",
      "radius": "{radius.none}",
      "shadow": "{shadow.md}",
      "borderWidth": 2
    },
    "badge": {
      "height": 24,
      "paddingX": "{space.2}",
      "radius": "{radius.none}",
      "typography": "{typography.caption}"
    }
  },
  "guidance": {
    "do": [
      "Use radius.none on buttons, inputs, cards, badges, popovers and dialogs. Reserve radius.full for avatars, radio dots and status dots.",
      "Draw cards, inputs and table cells with a 2px solid border. Use the border token for cards and table cells, and the input token for form fields. Give cards shadow.md (4px 4px 0) and popovers and dialogs shadow.lg (8px 8px 0).",
      "Use Syne only through display-lg (56), display-md (40) and heading-lg (28), for page titles and section headers.",
      "Set task IDs, branch names, estimates and timestamps in caption (Fira Code 12/500) or code (Fira Code 14/400).",
      "Use primary for one main action per view. Use accent (brand.300 in light, brand.900 in dark) with accent-foreground text for the current sprint or a selected row.",
      "Set button and label text in the label style (Manrope 14/700), uppercase, with 0.04em tracking.",
      "Show focus as a 2px ring-token outline offset 2px on buttons, inputs and rows, in both modes.",
      "Put every status color (success, warning, destructive) in a square 24px badge, together with a text label or icon."
    ],
    "dont": [
      "Don't set border-radius above 0 on controls, cards or badges, and don't make pill buttons.",
      "Don't add blur to any shadow. Use only shadow.sm, md and lg, which are solid offsets with 0 blur.",
      "Don't set Syne below 28px or use it for body text, table cells or buttons; use Manrope instead.",
      "Don't put white text on brand.300 or brand.400. Use brand.950 (accent-foreground in light, primary-foreground in dark).",
      "Don't use primary or accent lime for errors or overdue states; use destructive.",
      "Don't use gradients, translucent glass, or text opacity below 0.6. To de-emphasize text, use muted-foreground instead.",
      "Don't use pure grey (#808080 family) or #000000. Take every surface and border from the olive-tinted neutral ramp."
    ]
  }
}
