{
  "meta": {
    "name": "chatontcf App v1 · 方向 D 卡片活泼（冷白底）",
    "source": "html/tokens.css",
    "rn_target": "frontend-app/lib/theme/index.ts",
    "note": "颜色全部经过 WCAG AA 检查，见 contrast-report.md。只用黑色阴影，不用彩色光晕；音乐页另有光效主题，不在本文件。"
  },
  "color": {
    "bg": "#F5F6FA",
    "bg-tint": "#EEF2FA",
    "card": "#FFFFFF",
    "card-dark": "#1B1B22",
    "line": "#E8E8EE",
    "line-strong": "#D9D9E2",
    "scrim": "rgba(18,18,28,.32)",
    "ink": "#1A1A1F",
    "ink-2": "#3A3A45",
    "muted": "#6E6E7A",
    "placeholder": "#868692",
    "on-dark": "#FFFFFF",
    "on-dark-muted": "#B9B9C6",
    "primary": "#5E5DD6",
    "primary-pressed": "#4C4BC2",
    "primary-ink": "#4644B8",
    "primary-tint": "#EEEEFD",
    "primary-tint-2": "#DEDDFA",
    "lilac": "#C9C8F8",
    "sky": "#B7D4FF",
    "mint": "#A6E3C7",
    "pink": "#F3BFE3",
    "gold": "#F2C33F",
    "on-pastel-2": "#3A3F52",
    "lilac-50": "#F1F1FE",
    "sky-50": "#EAF2FF",
    "mint-50": "#E5F6EE",
    "pink-50": "#FCEDF7",
    "again": "#C2362F",
    "again-tint": "#FDECEB",
    "hard": "#8F5B00",
    "hard-tint": "#FFF2D6",
    "good": "#16774A",
    "good-tint": "#E2F5EA",
    "easy": "#2453BF",
    "easy-tint": "#E7EFFE",
    "masc": "#2453BF",
    "masc-tint": "#E7EFFE",
    "fem": "#A02F7C",
    "fem-tint": "#FCEDF7"
  },
  "font": {
    "latin": "Outfit",
    "cjk": "Noto Sans SC（iOS 回落 PingFang SC）",
    "ipa": "Inter（Outfit 缺 IPA 字形 ʁ ɑ̃ ɛ̃）",
    "numeric": "Outfit + tabular-nums"
  },
  "type": {
    "display": {
      "size": 40,
      "lineHeight": 44
    },
    "title1": {
      "size": 28,
      "lineHeight": 34
    },
    "title2": {
      "size": 22,
      "lineHeight": 28
    },
    "title3": {
      "size": 19,
      "lineHeight": 25
    },
    "headline": {
      "size": 17,
      "lineHeight": 24
    },
    "body": {
      "size": 15,
      "lineHeight": 22
    },
    "callout": {
      "size": 14,
      "lineHeight": 20
    },
    "footnote": {
      "size": 13,
      "lineHeight": 18
    },
    "caption": {
      "size": 12,
      "lineHeight": 16
    },
    "micro": {
      "size": 11,
      "lineHeight": 14
    }
  },
  "typeUsage": {
    "headword": "display 40/44 Semibold（>11 字母 32/38，>15 字母 26/32）",
    "flashcardWord": "44/50 Semibold（>11 字母 34/40）",
    "largeTitle": "title1 28/34",
    "cardTitle": "headline 17/24",
    "mainGloss": "19/28 Semibold",
    "body": "body 15/22",
    "caption": "caption 12/16"
  },
  "fontWeight": {
    "regular": 400,
    "medium": 500,
    "semibold": 600
  },
  "space": {
    "1": 4,
    "2": 8,
    "3": 12,
    "4": 16,
    "5": 20,
    "6": 24,
    "8": 32,
    "page": 18
  },
  "radius": {
    "xs": 8,
    "sm": 12,
    "md": 16,
    "lg": 20,
    "xl": 24,
    "pill": 999
  },
  "shadow": {
    "ring": "0 0 0 1px #E8E8EE（RN：borderWidth 1 + borderColor line）",
    "float": "0 10 28 rgba(20,20,40,.10) + 0 2 6 rgba(20,20,40,.06)（RN iOS shadow*/Android elevation 6）",
    "sheet": "0 -6 24 rgba(20,20,40,.08)"
  },
  "size": {
    "controlHeight": 48,
    "rowMinHeight": 56,
    "tabBarHeight": 83,
    "railWidthLandscape": 220,
    "railWidthPortrait": 84,
    "splitListWidth": 360,
    "splitListWidthPortrait": 320,
    "contentMaxWidth": 560,
    "wideBreakpoint": 720,
    "hitSlop": 8,
    "icon": 22,
    "gradeButtonHeight": 66
  },
  "motion": {
    "duration": {
      "fast": 120,
      "base": 200,
      "slow": 320,
      "flip": 420,
      "cardOut": 260,
      "toast": 2600,
      "toastWithUndo": 4000,
      "longPress": 480,
      "searchDebounce": 220
    },
    "easing": {
      "standard": [
        0.2,
        0,
        0,
        1
      ],
      "out": [
        0.22,
        0.9,
        0.25,
        1
      ],
      "in": [
        0.4,
        0,
        1,
        1
      ]
    },
    "spring": {
      "sheet": {
        "damping": 22,
        "stiffness": 240
      },
      "cardSnapBack": {
        "damping": 18,
        "stiffness": 220
      }
    },
    "press": {
      "scale": 0.97,
      "duration": 120
    },
    "swipe": {
      "flashcardThreshold": 96,
      "flashcardVelocity": 800,
      "rotatePerPx": "1/22 deg",
      "rowReveal": 88,
      "rowThreshold": 60
    }
  },
  "haptics": {
    "save": "impactLight",
    "grade": "impactLight（忘记用 notificationWarning）",
    "longPress": "impactMedium",
    "remove": "notificationWarning"
  }
}