58Y Shared Contract

Shared Sensory Component Contract

Future TheoB pages should share one component contract for backgrounds, cards, buttons, tabs, game tiles, tactile states, and audio-design cues. This keeps the whole system consistent and makes global skin changes easy.

page-shell

Every page wrapper should use a skin background and readable text token.

Tokens: pageBackground, text, textSoft

card

Cards should sit above the background with enough contrast.

Tokens: card, border, text, textSoft

button

firm-press or soft-pulse depending on action

Tokens: surfaceSoft, border, accent, text

tab

precise click

Tokens: surfaceSoft, border, accent

game-tile

tile-snap

Tokens: card, accent, border

safety-boundary

short-stop

Tokens: intent-boundary, text, border

Contract JSON

{
  "purpose": "Reusable design contract for future TheoB tabs, buttons, cards, game tiles, Academy lessons, and Founder Command actions.",
  "skinAccess": {
    "defaultSkin": "instrument-dark",
    "source": "theobSharedSensoryComponentContract58YCore",
    "rule": "Backgrounds should be changed from the skin registry, not patched page by page."
  },
  "components": [
    {
      "component": "page-shell",
      "requiredTokens": [
        "pageBackground",
        "text",
        "textSoft"
      ],
      "behavior": "Every page wrapper should use a skin background and readable text token."
    },
    {
      "component": "card",
      "requiredTokens": [
        "card",
        "border",
        "text",
        "textSoft"
      ],
      "behavior": "Cards should sit above the background with enough contrast."
    },
    {
      "component": "button",
      "requiredTokens": [
        "surfaceSoft",
        "border",
        "accent",
        "text"
      ],
      "tactile": "firm-press or soft-pulse depending on action"
    },
    {
      "component": "tab",
      "requiredTokens": [
        "surfaceSoft",
        "border",
        "accent"
      ],
      "tactile": "precise click",
      "audioDesign": "crystal-tap"
    },
    {
      "component": "game-tile",
      "requiredTokens": [
        "card",
        "accent",
        "border"
      ],
      "tactile": "tile-snap",
      "audioDesign": "match-pop"
    },
    {
      "component": "safety-boundary",
      "requiredTokens": [
        "intent-boundary",
        "text",
        "border"
      ],
      "tactile": "short-stop",
      "audioDesign": "muted-caution"
    }
  ],
  "sensoryTokens": {
    "tactile": [
      "tile-snap",
      "soft-pulse",
      "firm-press",
      "slow-glow",
      "short-stop"
    ],
    "audioDesignOnly": [
      "match-pop",
      "warm-chime",
      "low-bell",
      "crystal-tap",
      "muted-caution"
    ],
    "colorIntent": [
      "intent-clarity",
      "intent-warmth",
      "intent-growth",
      "intent-reflection",
      "intent-boundary"
    ]
  }
}
Skin RegistrySensory UI Tokens