CG创作约束
- **文本/语义结构**:`p/span/strong/em`,所有标题 `h1-h6`,`blockquote`、`div`、`section/article/nav/aside/header/footer/main`、`ul/ol/li`、`table/thead/tbody/tr/th/td` 等都放开,足够搭建多层级模块。
- **交互/布局标签**:白名单支持 `input`(radio/checkbox/text 等)、`label`、`button`、`details/summary`,还可以用 `table`、`svg`、`path/rect/circle/linearGradient/stop` 等组件来绘制装饰图形或进度条。
- **媒体/链接**:`img` 必须绑定 HTTPS 静态地址,无法拼接变量;`a` 标签会保留样式但 `href` 会被移除,不允许跳出沙箱;`svg` 的 `viewBox/width/height/fill/stroke` 等属性均可用。
- **属性白名单**:所有标签默认只保留 `class/id/title/style`;`input` 额外支持 `type/placeholder/value/checked/disabled/name`,`label` 支持 `for`;`img` 保留 `src/alt/width/height`;`details` 可用 `open`;`svg/path/rect/circle` 允许 `fill/stroke/opacity/transform` 等安全属性。
- **CSS 能力范围**:颜色、渐变、字体、Flex/Grid 布局、`gap`、`position`(支持 `static/relative/absolute`)、`z-index`、`opacity`、`transform/transition/animation`、`clip-path`、`filter/backdrop-filter`、`mask`、`pointer-events`、`mix-blend-mode` 等主流属性均可使用;`cursor:none` 等危险值会被过滤,URL 只允许 HTTPS,`javascript:`/`data:` 会直接删除。
- **内联样式与 class**:`style` 属性会自动重写,只保留安全声明;`class` 会过滤非法字符并阻止自定义脚本注入。
- **全局属性**:系统只保留 `class/id/title/style` 这几个基础属性,`class`/`id` 会自动做合法性校验;`style` 会被过滤为安全 CSS,非法声明会被丢弃。
- **CSS 白名单**:颜色、字体、布局(Flex/Grid)、动画(transition/animation)、滤镜(filter/backdrop-filter)等主流属性都已放开;`position` 仅支持 `static/relative/absolute`,`cursor:none` 等危险值会被移除;URL 只能引用 HTTPS,本地 `javascript:` / `data:` 会被拦截。最終更新