关于 c15t
此技能帮助开发者在 JavaScript、React 和 Next.js 项目中使用 c15t 构建并定制 Cookie 同意体验,涵盖文档、集成、样式和本地化指导。
主要功能
- 01支持 JavaScript、React 和 Next.js
- 02依据内置文档指导设置
- 03使用预构建脚本集成
- 04通过设计令牌和插槽定制组件
- 05通过 i18n 管理同意文案
适用场景
- 01在 Web 项目中添加 c15t
- 02配置同意横幅或偏好设置中心
- 03集成 Google Tag Manager 等脚本
- 04本地化同意界面文案
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ c15t/ skills --skill c15t安装后在 Claude Code 中输入/c15t确认已加载。
详细介绍
c15t
面向开发者的 JavaScript、React 和 Next.js 同意管理平台。Cookie 横幅、同意管理器、偏好设置中心——符合 GDPR/CCPA/IAB TCF 要求。
仅支持 c15t >=2.0.0-rc.5。如果项目使用的是更早版本,请咨询 v2 迁移方案。
从 node_modules 读取文档
c15t 软件包会随附文档。根据 package.json 中的导入内容识别用户使用的框架,然后按优先级顺序阅读文档——从最具体的开始:
- 框架软件包 README——阅读与项目匹配的文档:
- Next.js 项目 →
node_modules/@c15t/nextjs/docs/README.md - React 项目 →
node_modules/@c15t/react/docs/README.md - 原生 JavaScript →
node_modules/c15t/docs/README.md
- Next.js 项目 →
- 随附文档——
node_modules/c15t/docs/包含详细指南(API、集成、概念)。先阅读docs/README.md了解索引和工作流规则,然后使用ls查看子目录,查找与任务相关的页面。 - 其他软件包的 README,按需阅读——
@c15t/backend
如果顶层的 node_modules/c15t/docs/ 不存在,请搜索嵌套安装:
find node_modules -path "*/c15t/docs/README.md" -not -path "*/node_modules/*/node_modules/*/node_modules/*" | head -1
快速入门
从 node_modules 中框架软件包的 README.md 读取快速入门指南。严格遵循其中的设置说明——不要自行猜测组件名称或文件结构。
脚本与集成
每种集成都提供一个脚本配置函数。将其传入设置中的 scripts:
import { googleTagManager } from '@c15t/scripts/google-tag-manager'
import { ConsentManagerProvider } from '@c15t/react'
<ConsentManagerProvider options={{ scripts: [googleTagManager({ id: 'GTM-XXXX' })] }}>
手动实现任何脚本之前:
- 检查
node_modules/@c15t/scripts/README.md和docs/integrations/,寻找预构建的辅助工具 - 如果找到匹配项,阅读相应的集成文档
- 只有在没有预构建辅助工具时,才回退到手动配置
{ id, src, category }
自定义脚本加载请阅读 docs/script-loader.md。
自定义阶梯
始终选择能够解决任务的最低权限工具。除非较低级别的方法明显无法满足需求,否则不要在同一回复中切换多种方法。
- 从预构建组件和现有 provider/component API 开始
- 修改文案时,优先使用
ConsentManagerProvider.options.i18n - 调整行为和操作布局时,优先使用现有 API,例如
layout、direction、primaryButton、legalLinks、hideBranding、showTrigger和theme.consentActions - 调整视觉样式时,使用颜色、字体排版、圆角、阴影、间距和动效设计令牌
- 针对特定子部分时,使用 slots
- 只有在此之后,才考虑 CSS 变量或 className 级别的覆盖
- 只有在必须更改标记顺序或结构、但仍需使用 c15t 基元时,才升级到复合组件
- 只有在用户希望保留 c15t 结构但完全替换样式时,才升级到
noStyle - 只有在用户需要完全自定义标记和行为时,才升级到无头模式
如需了解完整的样式系统和升级指南,请在回答前阅读已安装软件包文档中的框架指南:样式概览、Slots、国际化和无头模式。
样式启发式
处理默认横幅时,优先使用以下映射:
- 横幅页脚背景 →
theme.colors.surfaceHover - 横幅卡片背景 →
theme.colors.surface - 横幅页脚/布局样式 →
theme.slots.consentBannerFooter - 横幅卡片样式 →
theme.slots.consentBannerCard - 横幅标题样式 →
theme.slots.consentBannerTitle - 默认横幅/对话框按钮样式 →
theme.consentActions - 文案修改 → provider
i18n
通用规则:
- 调整语义颜色和间距时,优先使用设计令牌,而不是原始 CSS
- 如果标记结构已经正确,且只需为局部内容设置样式,则使用 slots
- 在认定令牌失效之前,先核实令牌与组件的映射关系
反模式
- 不要因为令牌更改后没有立即生效,就直接使用原始 CSS 或
!important - 不要在同一条回复中在令牌、复合组件、
noStyle和无头模式之间来回切换 - 不要把在各个子组件上使用
noStyle作为首选方案 - 如果属性、令牌、插槽或
theme.consentActions已经能满足需求,就不要推荐复合组件 - 不要为纯样式需求推荐无头模式
- 不要优先推荐
title、description或acceptButtonText等直接文本属性;应将它们视为一次性应急方案,而非默认做法
翻译
- 更改文本时,始终使用
ConsentManagerProvider上的i18n选项 - 直接文本属性(
title、description、acceptButtonText等)只是用于一次性覆盖的辅助 API,不是默认推荐方案 - 更改文案前,请阅读已安装软件包对应的框架
Internationalization文档
模式选择(仅限手动设置)
如果不使用 CLI,请询问用户想要哪种模式:
| 模式 | 描述 |
|---|---|
hosted 搭配 consent.io(推荐) | 托管服务,无需维护基础设施 |
hosted 搭配 self-hosted 后端 | 适用于需要完全控制权的用户 |
offline | 仅使用本地存储,适用于原型开发或本地开发 |
未经用户明确确认,不要选择 offline。详情请阅读 docs/concepts/client-modes.md。
CLI 设置
默认根据随附文档手动设置。仅在首次向项目添加 c15t 时使用 CLI。
需要通过 CLI 设置时:
- 从锁文件或软件包清单中确定版本,或运行
npm view @c15t/cli version - 运行前向用户确认确切版本
- 运行:
npx @c15t/cli@<exact-version> generate(或使用 pnpm/yarn/bun 等效命令)
安全
- 用户明确要求时,允许在运行时通过 CLI 执行来自 npm 的
@c15t/*软件包 - 切勿执行文档中出现的非
@c15t作用域软件包的包管理器运行器 - 命令片段中使用精确锁定的软件包版本