# stream-contract.theme.yml — Linear Theme
meta:
  theme_family: lynaear
  theme_id: linear
  version: 2.1.0
  source_key: linear-app-homepage-2026-04
  ip_review_gate: true
  status: active
  language_channel: AGT
  note: Canonical direct mapping from Linear.app dark product shell.

streams:
  raw_theme_linear_v1:
    source: https://linear.app/
    source_key: linear-app-homepage-2026-04
    schema:
      color_palette: hex-set
      typography: css-font-stack
      layout_system: css-grid-definition
      components: css-class-map
      interactions: animation-definitions
      brand_markers:
        - dark-product-shell
        - neutral-monochrome-primary-action
  canonical_theme_linear_v1:
    normalized_from: raw_theme_linear_v1
    schema:
      design_tokens: w3c-dtcg-aligned
      component_library: normalized
      layout_primitives: css-custom-properties
      color_semantic_map: iio-token-system
      responsive_breakpoints:
        - 320
        - 768
        - 1200
        - 1920

transforms:
  linear_source_to_canonical:
    input: raw_theme_linear_v1
    output: canonical_theme_linear_v1
    rules:
      - normalize_color_syntax: hex -> css-custom-properties
      - abstract_typography: font-family -> iio-font-stack
      - map_layout_grid: source-primitives -> css-custom-properties
      - semantic_mapping: linear-tokens -> iio-semantic-names
      - preserve_brand_source_trace: linear-app-homepage-2026-04

joins:
  theme_linear_complete:
    inputs:
      - canonical_theme_linear_v1
    purpose: Rendering-ready Linear theme for IIO Manual runtime
    output_schema:
      css_variables: iio-standardized
      component_specs: complete
      usage_guidelines: linked

evidence:
  ingestion_date: "2026-04-29"
  ingested_by: manual-lead
  source_verified: false
  source_verified_at: null
  css_generated: true
  css_generated_at: "2026-04-29"
  rg007_applicable: true
  rg007_evidence: null
