baseline-ui

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Baseline UI

Baseline UI

Enforces an opinionated UI baseline to prevent AI-generated interface slop.
强制执行一套有明确主张的UI基线规范,避免AI生成的界面质量低下问题。

How to use

使用方法

  • /baseline-ui
    Apply these constraints to any UI work in this conversation.
  • /baseline-ui <file>
    Review the file against all constraints below and output:
    • violations (quote the exact line/snippet)
    • why it matters (1 short sentence)
    • a concrete fix (code-level suggestion)
  • /baseline-ui
    将这些约束应用到本次对话中的所有UI相关工作。
  • /baseline-ui <file>
    对照以下所有约束审查指定文件,并输出:
    • 违规项(引用准确的行/代码片段)
    • 问题影响(1句简短说明)
    • 具体修复方案(代码级建议)

Stack

技术栈

  • MUST use Tailwind CSS defaults unless custom values already exist or are explicitly requested
  • MUST use
    motion/react
    (formerly
    framer-motion
    ) when JavaScript animation is required
  • SHOULD use
    tw-animate-css
    for entrance and micro-animations in Tailwind CSS
  • MUST use
    cn
    utility (
    clsx
    +
    tailwind-merge
    ) for class logic
  • 除非已有自定义值或明确要求,否则必须使用Tailwind CSS默认配置
  • 需要JavaScript动画时必须使用
    motion/react
    (原
    framer-motion
  • Tailwind CSS中的入场动画和微动画应该使用
    tw-animate-css
    实现
  • 类名逻辑必须使用
    cn
    工具(
    clsx
    +
    tailwind-merge
    )处理

Components

组件规范

  • MUST use accessible component primitives for anything with keyboard or focus behavior (
    Base UI
    ,
    React Aria
    ,
    Radix
    )
  • MUST use the project’s existing component primitives first
  • NEVER mix primitive systems within the same interaction surface
  • SHOULD prefer
    Base UI
    for new primitives if compatible with the stack
  • MUST add an
    aria-label
    to icon-only buttons
  • NEVER rebuild keyboard or focus behavior by hand unless explicitly requested
  • 所有涉及键盘或焦点行为的组件必须使用可访问组件库实现(
    Base UI
    React Aria
    Radix
  • 必须优先使用项目现有组件库
  • 禁止在同一个交互面混用不同的组件基础库
  • 如果和技术栈兼容,新组件应该优先选用
    Base UI
  • 纯图标按钮必须添加
    aria-label
    属性
  • 除非明确要求,否则禁止手动实现键盘或焦点行为

Interaction

交互规范

  • MUST use an
    AlertDialog
    for destructive or irreversible actions
  • SHOULD use structural skeletons for loading states
  • NEVER use
    h-screen
    , use
    h-dvh
  • MUST respect
    safe-area-inset
    for fixed elements
  • MUST show errors next to where the action happens
  • NEVER block paste in
    input
    or
    textarea
    elements
  • 涉及破坏性或不可逆操作时必须使用
    AlertDialog
  • 加载状态应该使用结构化骨架屏
  • 禁止使用
    h-screen
    ,请使用
    h-dvh
  • 固定定位元素必须适配
    safe-area-inset
  • 错误提示必须展示在触发操作的位置附近
  • 禁止在
    input
    textarea
    元素中屏蔽粘贴功能

Animation

动画规范

  • NEVER add animation unless it is explicitly requested
  • MUST animate only compositor props (
    transform
    ,
    opacity
    )
  • NEVER animate layout properties (
    width
    ,
    height
    ,
    top
    ,
    left
    ,
    margin
    ,
    padding
    )
  • SHOULD avoid animating paint properties (
    background
    ,
    color
    ) except for small, local UI (text, icons)
  • SHOULD use
    ease-out
    on entrance
  • NEVER exceed
    200ms
    for interaction feedback
  • MUST pause looping animations when off-screen
  • SHOULD respect
    prefers-reduced-motion
  • NEVER introduce custom easing curves unless explicitly requested
  • SHOULD avoid animating large images or full-screen surfaces
  • 除非明确要求,否则禁止添加动画
  • 仅可对合成属性执行动画(
    transform
    opacity
  • 禁止对布局属性执行动画(
    width
    height
    top
    left
    margin
    padding
  • 除小型局部UI(文本、图标)外,应该避免对绘制属性执行动画(
    background
    color
  • 入场动画应该使用
    ease-out
    缓动函数
  • 交互反馈动画时长禁止超过
    200ms
  • 循环动画在离开可视区域时必须暂停
  • 应该尊重
    prefers-reduced-motion
    (减少动画偏好)设置
  • 除非明确要求,否则禁止引入自定义缓动曲线
  • 应该避免对大型图片或全屏元素执行动画

Typography

排版规范

  • MUST use
    text-balance
    for headings and
    text-pretty
    for body/paragraphs
  • MUST use
    tabular-nums
    for data
  • SHOULD use
    truncate
    or
    line-clamp
    for dense UI
  • NEVER modify
    letter-spacing
    (
    tracking-*
    ) unless explicitly requested
  • 标题必须使用
    text-balance
    ,正文/段落必须使用
    text-pretty
  • 数据内容必须使用
    tabular-nums
  • 高密度UI应该使用
    truncate
    line-clamp
    处理文本溢出
  • 除非明确要求,否则禁止修改
    letter-spacing
    tracking-*
    类)

Layout

布局规范

  • MUST use a fixed
    z-index
    scale (no arbitrary
    z-*
    )
  • SHOULD use
    size-*
    for square elements instead of
    w-*
    +
    h-*
  • 必须使用固定的
    z-index
    层级体系(禁止使用任意的
    z-*
    值)
  • 正方形元素应该使用
    size-*
    类,而非
    w-*
    +
    h-*
    组合

Performance

性能规范

  • NEVER animate large
    blur()
    or
    backdrop-filter
    surfaces
  • NEVER apply
    will-change
    outside an active animation
  • NEVER use
    useEffect
    for anything that can be expressed as render logic
  • 禁止对大型
    blur()
    backdrop-filter
    元素执行动画
  • 非活跃动画场景下禁止使用
    will-change
  • 所有可以用渲染逻辑实现的功能禁止使用
    useEffect

Design

设计规范

  • NEVER use gradients unless explicitly requested
  • NEVER use purple or multicolor gradients
  • NEVER use glow effects as primary affordances
  • SHOULD use Tailwind CSS default shadow scale unless explicitly requested
  • MUST give empty states one clear next action
  • SHOULD limit accent color usage to one per view
  • SHOULD use existing theme or Tailwind CSS color tokens before introducing new ones
  • 除非明确要求,否则禁止使用渐变
  • 禁止使用紫色或多色渐变
  • 禁止将发光效果作为主要的交互提示
  • 除非明确要求,否则应该使用Tailwind CSS默认阴影层级
  • 空状态必须提供一个清晰的下一步操作引导
  • 每个视图的强调色使用应该限制为1种
  • 引入新颜色之前应该优先使用现有主题或Tailwind CSS颜色令牌