提示词场景库提示词场景库提示词场景库
提示词分类发现
提示词场景库·2026
关于/免责隐私条款
全部标签

JavaScript提示词

59 个提示词
3D赛车游戏
文本

创建一个激动人心的3D赛车游戏

使用Three.js和JavaScript创建一个激动人心的3D赛车游戏。实现逼真的车辆物理效果,包括悬挂、轮胎摩擦和空气动力学。创建详细的汽车模型,支持可自定义的喷漆和升级。设计多条赛道,包含多变的地形和障碍物。添加具有不同难度等级和竞速行为的AI对手。实现本地竞速的分屏多人模式。包含一个全面的HUD,显示速度、圈速、排名和小地图。为轮胎烟雾、引擎效果和天气创建粒子效果。添加具有逼真光照的动态昼夜循环。实现计时赛、锦标赛和淘汰赛等竞速模式。包含支持多摄像机角度的回放系统。
JavaScriptHTMLCSS+1
F@f
0
URL 短链接服务
文本

构建一个 URL 短链接服务前端

使用 HTML5、CSS3、JavaScript 和后端 API 构建一个 URL 短链接服务前端。创建一个简洁的界面,包含醒目的输入框。实现 URL 验证和清理。为短链接添加二维码生成功能。包含点击跟踪和分析仪表板。支持为 URL 创建自定义别名。实现链接的过期日期设置。为敏感 URL 添加密码保护选项。包含带确认的复制到剪贴板功能。为所有设备创建响应式设计。添加短链接历史记录,支持搜索和筛选。
JavaScriptHTMLAPI+1
F@f
0
预算跟踪器
文本

开发一个全面的预算跟踪应用程序

使用 HTML5、CSS3 和 JavaScript 开发一个全面的预算跟踪应用程序。创建一个直观的仪表板,显示收入、支出、储蓄和预算状态。实现交易管理,支持分类、标签和定期交易。添加交互式图表和图形,用于按类别和时间段进行支出分析。包含预算目标设定,支持进度跟踪和提醒。支持多个账户以及账户之间的转账。使用设备摄像头实现收据扫描和存储。添加以 CSV and PDF 格式导出报告的功能。创建采用移动优先方法的响应式设计。包含数据备份和恢复功能。添加预测功能,根据当前趋势预测未来财务状况。
JavaScriptHTMLCSS
F@f
0
代码片段管理器
文本

构建一个面向开发者的代码片段管理器

使用 HTML5、CSS3 和 JavaScript 构建一个面向开发者的代码片段管理器。创建一个简洁的类 IDE 界面,支持 30 多种编程语言的语法高亮。实现标签和分类系统以组织代码片段。添加强大的搜索功能,支持正则表达式以及按语言/标签筛选。包含带行号、缩进参考线和括号匹配的代码编辑功能。为每个代码片段支持公开/私有可见性设置。实现 JSON 和 Gist 格式的导出/导入功能。为常用操作添加键盘快捷键。创建在所有设备上都能良好运行的响应式设计。包含带版本历史的自动保存功能。添加保留语法格式的复制到剪贴板功能。
JavaScriptHTMLCSS
F@f
0
食谱查找器
文本

创建一个食谱查找应用程序

使用 HTML5、CSS3、JavaScript 和一个食物 API 创建一个食谱查找应用程序。构建一个视觉上吸引人的界面,包含食物摄影和直观的导航。实现高级搜索,支持按食材、菜系、饮食限制和准备时间进行筛选。添加用户评分和评论,采用星级系统。包含详细的营养信息,并用可视化指示器显示卡路里、宏量营养素和过敏原。支持食谱保存并分类到收藏集中。实现一个膳食计划日历,具有拖放功能。添加自动份量调整,并重新计算数量。包含烹饪模式,提供分步说明和计时器。支持离线访问已保存的食谱。为喜爱的食谱添加社交分享功能。
JavaScriptHTMLAPI+1
F@f
0
记忆卡牌游戏
文本

开发一款记忆配对卡牌游戏

使用 HTML5、CSS3 和 JavaScript 开发一款记忆配对卡牌游戏。创建具有翻转动画的美观卡牌设计。实现具有不同网格尺寸和卡牌数量的难度级别。添加计时器和步数计数器用于计分。包含卡牌翻转和配对成功的音效。实现带有分数持久化的排行榜。添加具有不同卡牌设计的主题选择。包含用于竞技对战的多人模式。创建可适应屏幕尺寸的响应式布局。添加键盘导航的无障碍功能。实现游戏过程中的渐进式难度提升。
JavaScriptHTMLCSS
F@f
0
高级颜色选择器工具
文本

构建一个专业级颜色工具

使用 HTML5、CSS3 和 JavaScript 为设计师和开发者构建一个专业级颜色工具。创建一个直观的界面,提供多种选择方式,包括吸管、色轮、滑块和输入字段。实现颜色格式(RGB、RGBA、HSL、HSLA、HEX、CMYK)之间的实时转换,并支持复制功能。添加调色板生成器,支持互补色、类似色、三角色、四角色和单色配色方案。包含收藏系统,支持命名集合和导出选项。实现色彩和谐规则可视化,并支持交互式调整。创建一个渐变生成器,支持线性、径向和锥形渐变,并可添加多个色标。添加无障碍检查器,用于 WCAG 合规性检查,包括对比度和色盲模拟。实现 CSS、SCSS 和 SVG 代码片段的一键复制。包含颜色命名算法,为所选颜色推荐名称。支持将调色板导出为多种格式(Adobe ASE、JSON、CSS 变量、SCSS)。
JavaScriptHTMLCSS
F@f
0
音乐播放器
文本

开发一个基于网页的音乐播放器

使用 HTML5、CSS3、JavaScript 和 Web Audio API 开发一个基于网页的音乐播放器。创建具有专辑封面显示和可视化的现代界面。实现支持拖拽重新排序的播放列表管理。添加音频控制功能,包括播放/暂停、跳过、跳转、音量和播放速度。包含随机播放和重复模式,并提供视觉指示。支持多种音频格式及回退方案。实现带预设的 10 段均衡器。添加从音频文件中提取和显示元数据的功能。创建适用于所有设备的响应式设计。包含用于播放控制的键盘快捷键。通过 Media Session API 集成支持后台播放。
JavaScriptHTMLCSS
F@f
0
小米公司自助管理系统前端开发
文本

使用现代Web技术为小米自助管理系统开发前端。

担任前端开发人员。你的任务是创建小米自助管理系统的前端。你的职责包括:

- 使用HTML5、CSS3和JavaScript设计用户友好的界面。
- 确保与各种设备和屏幕尺寸的兼容性。
- 实现交互元素以增强用户参与度。
- 与后端服务集成以动态获取和显示数据。
- 进行彻底测试以确保无缝的用户体验。

规则:
- 遵循小米的设计指南和品牌规范。
- 确保高性能和响应性。
- 保持代码整洁且文档完善。

变量:
- Bootstrap - 要使用的CSS框架
- apiEndpoint - 后端API端点
- #FF6700 - 系统的主主题色

示例:
- 创建一个具有用户登录功能和数据可视化功能的仪表板界面。
JavaScriptFrontendHTML+2
云@shuofeng233
0
实时多人防御游戏
文本

创建一款受 forntwars.io 启发的引人入胜的多人防御游戏,专注于实时策略和资源管理。

扮演游戏开发者。你擅长创建以策略和参与度为重点的实时多人游戏。\n你的任务是设计一款类似于 forntwars.io 的多人防御游戏。\n你将:\n- 使用 Node.js 开发一个健壮的服务器,以处理实时玩家交互。\n- 使用 JavaScript 实现客户端应用,确保流畅的游戏体验和直观的控制。\n- 设计具有不同难度和挑战的引人入胜的地图和关卡。\n- 创建用于资源管理和升级的游戏内经济系统。\n规则:\n- 确保游戏平衡,以提供公平竞争。\n- 优化性能,以同时处理多个玩家。\n- 包含反作弊机制,以维护游戏完整性。\n- 纳入游戏测试的反馈,以完善游戏机制。
JavaScriptNode.js
Z@zafervrcic
0
Next.js 专业前端开发工程师
文本

担任专注于 Next.js 的专业前端开发工程师,专注于构建动态且高效的 Web 应用程序。

担任 Next.js 专业前端开发工程师。你是使用 Next.js 和 React 构建动态且高效 Web 应用程序的专家。

你的任务是:
- 使用 Next.js 和 React 开发高性能 Web 应用程序
- 与 UI/UX 设计师协作以提升用户体验
- 实现响应式设计并确保跨浏览器兼容性
- 优化应用程序以实现最高速度和可扩展性
- 集成 RESTful API 并确保无缝的数据流

工具与技术:
- Next.js
- React
- JavaScript (ES6+)
- CSS 和 Styled-components
- 用于版本控制的 Git

规则:
- 遵循代码结构和设计模式的最佳实践
- 确保所有代码均有文档记录且可维护
- 持续跟进 Next.js 和前端开发的最新趋势与更新
JavaScriptReactFrontend+1
N@nedirbu99
0
侧边栏仪表盘设计
文本

使用 HTML、CSS 和 JavaScript 开发一个现代化的侧边栏仪表盘界面,重点关注用户体验和响应式设计。

担任前端开发人员。你的任务是设计一个既现代化又用户友好的侧边栏仪表盘界面。你的职责包括:

- 使用 HTML5 和 CSS3 创建响应式布局。
- 使用 JavaScript 实现交互元素,以实现动态内容更新。
- 确保侧边栏易于导航和访问,并为不同功能提供可折叠区域。
- 使用 UX/UI 设计的最佳实践来提升用户体验。

规则:
- 保持代码整洁有序。
- 确保跨浏览器兼容性。
- 针对移动端和桌面端视图进行优化。
JavaScriptFrontendHTML+2
F@furkanerbm
0
Next.js React 综合部落冲突工具
文本

使用 Next.js 和 React 开发一个集成的部落冲突工具,具备阵型复制、策略教学和社区讨论功能。

担任 Next.js 和 React 开发者。你的任务是构建一个面向部落冲突爱好者的综合工具。该工具应集成阵型复制、策略教学和社区讨论功能。

你的任务:
- 使用 Next.js 和 React 设计和开发前端,确保界面响应式且用户友好。
- 实现用户无缝复制和分享阵型的功能。
- 创建策略教学模块,包括交互式教程和指南。
- 开发用于讨论和策略分享的社区论坛。
- 确保应用程序针对性能和 SEO 进行优化。

规则:
- 遵循 React 和 Next.js 开发的最佳实践。
- 确保跨浏览器兼容性和响应式设计。
- 在适当的地方利用服务器端渲染以获得 SEO 优势。

变量:
- formation copying, strategy teaching, community discussion - 要包含的功能列表
- Next.js - 用于开发的框架
- React - 用于 UI 组件的库
JavaScriptReactFrontend+2
W@huwei19950627
0
AST 代码分析超能力
技能

使用 ast-grep 进行基于 AST 的代码模式分析,用于发现安全性、性能和结构问题。适用场景:(1) 审查代码中的安全漏洞,(2) 分析 React hook 依赖或性能模式,(3) 在大型代码库中检测结构性反模式,(4) 需要超越人工检查的系统化模式匹配。

---
name: ast-code-analysis-superpower
description: 使用 ast-grep 进行基于 AST 的代码模式分析,用于发现安全性、性能和结构问题。适用场景:(1) 审查代码中的安全漏洞,(2) 分析 React hook 依赖或性能模式,(3) 在大型代码库中检测结构性反模式,(4) 需要超越人工检查的系统化模式匹配。
---

# AST-Grep 代码分析

AST 模式匹配通过结构识别而非逐行阅读来发现代码问题。代码结构揭示了表面检查所遗漏的隐藏关系、漏洞和反模式。

## 配置

- **目标语言**:javascript
- **分析重点**:security
- **严重级别**:ERROR
- **框架**:React
- **最大嵌套深度**:3

## 前置条件

```bash
# 安装 ast-grep(如果尚未安装)
npm install -g @ast-grep/cli
# 或:mise install -g ast-grep
```

## 决策树:何时使用 AST 分析

```
需要代码审查?
|
+-- 简单代码(<50 行,结构明显)--> 人工审查
|
+-- 复杂代码(嵌套、多文件、抽象层)
    |
    +-- 需要安全审查?--> 使用安全模式
    +-- 性能分析?--> 使用性能模式
    +-- 结构质量?--> 使用结构模式
    +-- 跨文件模式?--> 使用 --include glob 运行
```

## 模式类别

| 类别 | 重点 | 常见发现 |
|----------|-------|-----------------|
| 安全性 | 加密函数、认证流程 | 硬编码密钥、弱令牌 |
| 性能 | Hooks、循环、异步 | 无限重渲染、内存泄漏 |
| 结构 | 嵌套、复杂度 | 深层条件判断、可维护性 |

## 核心模式

### 安全性:硬编码密钥

```yaml
# sg-rules/security/hardcoded-secrets.yml
id: hardcoded-secrets
language: javascript
rule:
  pattern: |
    const $VAR = '$LITERAL';
    $FUNC($VAR, ...)
  meta:
    severity: ERROR
    message: "检测到潜在的硬编码密钥"
```

### 安全性:不安全的令牌生成

```yaml
# sg-rules/security/insecure-tokens.yml
id: insecure-token-generation
language: javascript
rule:
  pattern: |
    btoa(JSON.stringify($OBJ) + '.' + $SECRET)
  meta:
    severity: ERROR
    message: "使用 base64 的不安全令牌生成"
```

### 性能:React Hook 依赖

```yaml
# sg-rules/performance/react-hook-deps.yml
id: react-hook-dependency-array
language: typescript
rule:
  pattern: |
    useEffect(() => {
      $BODY
    }, [$FUNC])
  meta:
    severity: WARNING
    message: "函数依赖可能导致无限重渲染"
```

### 结构:深层嵌套

```yaml
# sg-rules/structure/deep-nesting.yml
id: deep-nesting
language: javascript
rule:
  any:
    - pattern: |
        if ($COND1) {
          if ($COND2) {
            if ($COND3) {
              $BODY
            }
          }
        }
    - pattern: |
        for ($INIT) {
          for ($INIT2) {
            for ($INIT3) {
              $BODY
            }
          }
        }
  meta:
    severity: WARNING
    message: "深层嵌套(>3 层)- 考虑重构"
```

## 运行分析

```bash
# 安全扫描
ast-grep run -r sg-rules/security/

# 对 React 文件进行性能扫描
ast-grep run -r sg-rules/performance/ --include="*.tsx,*.jsx"

# 完整扫描并输出 JSON
ast-grep run -r sg-rules/ --format=json > analysis-report.json

# 交互模式进行调查
ast-grep run -r sg-rules/ --interactive
```

## 模式编写检查清单

- [ ] 模式匹配特定反模式,而非通用代码
- [ ] 使用 `inside` 或 `has` 进行上下文约束
- [ ] 包含 `not` 约束以减少误报
- [ ] 按语言分别编写规则(JS 与 TS)
- [ ] 适当的严重级别(ERROR/WARNING/INFO)

## 常见错误

| 错误 | 症状 | 修复 |
|---------|---------|-----|
| 模式过于通用 | 大量误报 | 添加上下文约束 |
| 缺少 `inside` | 匹配错误位置 | 使用父级上下文限定范围 |
| 没有 `not` 子句 | 匹配有效模式 | 排除已知正常情况 |
| 在 TS 上使用 JS 模式 | 类型注解导致匹配失败 | 创建语言特定规则 |

## 验证步骤

1. **测试模式准确性**:在已知存在漏洞的代码样本上运行
2. **检查误报率**:人工审查前 10 个匹配项
3. **验证严重级别**:确认 ERROR 级别的发现是可操作的
4. **跨文件覆盖**:验证模式在预期范围内运行

## 示例输出

```
$ ast-grep run -r sg-rules/
src/components/UserProfile.jsx:15: ERROR [insecure-tokens] 不安全的令牌生成
src/hooks/useAuth.js:8: ERROR [hardcoded-secrets] 潜在的硬编码密钥
src/components/Dashboard.tsx:23: WARNING [react-hook-deps] 函数依赖
src/utils/processData.js:45: WARNING [deep-nesting] 检测到深层嵌套

发现 4 个问题(2 个错误,2 个警告)
```

## 项目设置

```bash
# 在项目中初始化 ast-grep
ast-grep init

# 创建规则目录
mkdir -p sg-rules/{security,performance,structure}

# 添加到 CI 流水线
# .github/workflows/lint.yml
# - run: ast-grep run -r sg-rules/ --format=json
```

## 自定义模式模板

### React 特定模式

```yaml
# 列表渲染中缺少 key
id: missing-list-key
language: typescript
rule:
  pattern: |
    $ARRAY.map(($ITEM) => <$COMPONENT $$$PROPS />)
  constraints:
    $PROPS:
      not:
        has:
          pattern: 'key={$_}'
  meta:
    severity: WARNING
    message: "列表渲染中缺少 key 属性"
```

### 异步/Await 模式

```yaml
# 异步中缺少错误处理
id: unhandled-async
language: javascript
rule:
  pattern: |
    async function $NAME($$$) {
      $$$BODY
    }
  constraints:
    $BODY:
      not:
        has:
          pattern: 'try { $$$ } catch'
  meta:
    severity: WARNING
    message: "异步函数缺少 try-catch 错误处理"
```

## 与 CI/CD 集成

```yaml
# GitHub Actions 示例
name: AST Analysis
on: [push, pull_request]
jobs:
  analyze:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install ast-grep
        run: npm install -g @ast-grep/cli
      - name: Run analysis
        run: |
          ast-grep run -r sg-rules/ --format=json > report.json
          if grep -q '"severity": "ERROR"' report.json; then
            echo "发现严重问题!"
            exit 1
          fi
```
TypeScriptJavaScriptReact+2
İ@izzetemre
0
无障碍测试超能力
技能

对 Web 应用程序执行 WCAG 合规性审计和无障碍修复。适用场景:1) 审计 UI 是否符合 WCAG 2.1/2.2 2) 修复屏幕阅读器或键盘导航问题 3) 正确实现 ARIA 模式 4) 审查颜色对比度和视觉无障碍性 5) 创建无障碍表单或交互组件

---
name: accessibility-testing-superpower
description: |
  为 Web 应用程序执行 WCAG 合规性审计和无障碍修复。
  使用场景:1) 审计 UI 是否符合 WCAG 2.1/2.2 2) 修复屏幕阅读器或键盘导航问题 3) 正确实现 ARIA 模式 4) 审查颜色对比度和视觉无障碍性 5) 创建无障碍表单或交互组件
---

# 无障碍测试工作流

## 配置

- **WCAG 等级**: AA
- **被测组件**: Page
- **合规标准**: WCAG 2.1
- **最低 Lighthouse 分数**: 90
- **主要屏幕阅读器**: NVDA
- **测试框架**: jest-axe

## 审计决策树

```
收到无障碍请求
|
+-- 新组件/页面?
|   +-- 先运行自动化扫描(axe-core、Lighthouse)
|   +-- 键盘导航测试
|   +-- 屏幕阅读器播报检查
|   +-- 颜色对比度验证
|
+-- 要修复现有违规?
|   +-- 识别 WCAG 成功标准
|   +-- 检查语义 HTML 是否能解决
|   +-- 仅在 HTML 不足时应用 ARIA
|   +-- 使用辅助技术验证修复
|
+-- 合规审计?
    +-- 自动化扫描(捕获约 30% 的问题)
    +-- 手动测试清单
    +-- 按严重程度记录违规
    +-- 创建修复路线图
```

## WCAG 快速参考

### 严重程度分类

| 严重程度 | 影响 | 示例 | 修复时间线 |
|----------|--------|----------|--------------|
| 严重 | 完全阻止访问 | 无键盘焦点、空按钮、功能图像缺少 alt | 立即 |
| 重要 | 主要障碍 | 对比度差、缺少表单标签、无跳过链接 | 冲刺内 |
| 中等 | 困难但可用 | 导航不一致、错误消息不清晰 | 下个版本 |
| 轻微 | 不便 | 冗余 alt 文本、轻微的标题顺序问题 | 待办列表 |

### 常见违规及修复

**缺少可访问名称**
```html
<!-- 违规 -->
<button><svg>...</svg></button>

<!-- 修复:aria-label -->
<button aria-label="关闭对话框"><svg>...</svg></button>

<!-- 修复:视觉隐藏文本 -->
<button><span class="sr-only">关闭对话框</span><svg>...</svg></button>
```

**表单标签关联**
```html
<!-- 违规 -->
<label>Email</label>
<input type="email">

<!-- 修复:显式关联 -->
<label for="email">Email</label>
<input type="email" id="email">

<!-- 修复:隐式关联 -->
<label>Email <input type="email"></label>
```

**颜色对比度失败**
```
最低比率(WCAG AA):
- 正常文本(<18px 或 <14px 粗体):4.5:1
- 大文本(>=18px 或 >=14px 粗体):3:1
- UI 组件和图形:3:1

工具:WebAIM Contrast Checker、浏览器 DevTools
```

**焦点可见性**
```css
/* 永远不要在没有替代方案的情况下这样做 */
:focus { outline: none; }

/* 正确的自定义焦点 */
:focus-visible {
  outline: 2px solid #005fcc;
  outline-offset: 2px;
}
```

## ARIA 决策框架

```
需要向辅助技术传达信息?
|
+-- 语义 HTML 能做到吗?
|   +-- 是:使用 HTML(<button>、<nav>、<main>、<article>)
|   +-- 否:继续使用 ARIA
|
+-- 需要哪种类型的 ARIA?
    +-- 角色:这个元素是什么?(role="dialog"、role="tab")
    +-- 状态:什么条件?(aria-expanded、aria-checked)
    +-- 属性:什么关系?(aria-labelledby、aria-describedby)
    +-- 实时区域:动态内容?(aria-live="polite")
```

### 常见部件的 ARIA 模式

**展开/收起(显示/隐藏)**
```html
<button aria-expanded="false" aria-controls="content-1">
  显示详情
</button>
<div id="content-1" hidden>
  内容在此
</div>
```

**标签页界面**
```html
<div role="tablist" aria-label="Settings">
  <button role="tab" aria-selected="true" aria-controls="panel-1" id="tab-1">
    常规
  </button>
  <button role="tab" aria-selected="false" aria-controls="panel-2" id="tab-2" tabindex="-1">
    隐私
  </button>
</div>
<div role="tabpanel" id="panel-1" aria-labelledby="tab-1">...</div>
<div role="tabpanel" id="panel-2" aria-labelledby="tab-2" hidden>...</div>
```

**模态对话框**
```html
<div role="dialog" aria-modal="true" aria-labelledby="dialog-title">
  <h2 id="dialog-title">确认操作</h2>
  <p>您确定要继续吗?</p>
  <button>取消</button>
  <button>确认</button>
</div>
```

## 键盘导航清单

```
[ ] 所有交互元素可通过 Tab 键聚焦
[ ] 焦点顺序与视觉/逻辑顺序一致
[ ] 所有元素焦点可见
[ ] 无键盘陷阱(始终可以 Tab 出去)
[ ] 跳过链接作为第一个可聚焦元素
[ ] Escape 关闭模态框/下拉菜单
[ ] 方向键在部件内导航(标签页、菜单、网格)
[ ] Enter/Space 激活按钮和链接
[ ] 自定义快捷键已记录且可配置
```

### 焦点管理模式

**模态焦点陷阱**
```javascript
// 打开模态框时:
// 1. 保存之前聚焦的元素
// 2. 将焦点移动到模态框中的第一个可聚焦元素
// 3. 在模态框边界内捕获 Tab

// 关闭模态框时:
// 1. 将焦点返回到保存的元素
```

**动态内容**
```javascript
// 添加内容后:
// - 通过 aria-live 区域播报,或
// - 将焦点移动到新内容标题

// 移除内容后:
// - 将焦点移动到逻辑上的下一个元素
// - 永远不要将焦点留在已移除的元素上
```

## 屏幕阅读器测试

### 播报验证

| 元素 | 应播报 |
|---------|-----------------|
| 按钮 | 角色 + 名称 + 状态("提交按钮") |
| 链接 | 名称 + "链接"("主页链接") |
| 图像 | Alt 文本或 "装饰性"(跳过) |
| 标题 | 级别 + 文本("标题级别 2,关于我们") |
| 表单字段 | 标签 + 类型 + 状态 + 说明 |
| 错误 | 错误消息 + 字段关联 |

### 测试命令(快速参考)

**VoiceOver (macOS)**
- VO = Ctrl + Option
- VO + A:朗读全部
- VO + 右/左:导航元素
- VO + Cmd + H:下一个标题
- VO + Cmd + J:下一个表单控件

**NVDA (Windows)**
- NVDA + 下:朗读全部
- Tab:下一个可聚焦元素
- H:下一个标题
- F:下一个表单字段
- B:下一个按钮

## 自动化测试集成

### 测试中的 axe-core
```javascript
// jest-axe
import { axe, toHaveNoViolations } from 'jest-axe';
expect.extend(toHaveNoViolations);

test('component 是无障碍的', async () => {
  const { container } = render(<MyComponent />);
  const results = await axe(container);
  expect(results).toHaveNoViolations();
});
```

### Lighthouse CI 阈值
```javascript
// lighthouserc.js
module.exports = {
  assertions: {
    'categories:accessibility': ['error', { minScore: 90 / 100 }],
  },
};
```

## 修复优先级矩阵

```
影响 vs 努力:
                    低投入        高投入
高影响          |   优先执行   |   计划后续   |
                |   替代文本   |   重新设计   |
                |   标签       |   导航重建   |
----------------|--------------|---------------|
低影响          |   快速见效   |   待办清单   |
                |   对比度     |   锦上添花   |
                |   微调       |   增强功能   |
```

## 验证清单

在将无障碍工作标记为完成之前:

```
自动化测试:
[ ] axe-core 报告零违规
[ ] Lighthouse 无障碍评分 >= 90
[ ] HTML 验证器通过(影响辅助技术解析)

键盘测试:
[ ] 无需鼠标即可完成全部任务
[ ] 焦点始终可见
[ ] 逻辑 Tab 顺序
[ ] 无焦点陷阱

屏幕阅读器测试:
[ ] 已使用至少一种屏幕阅读器测试(NVDA)
[ ] 所有内容均正确播报
[ ] 交互元素具有角色/状态
[ ] 动态更新已播报

视觉测试:
[ ] 对比度已验证(最低 4.5:1)
[ ] 在 200% 缩放下正常工作
[ ] 无仅靠颜色传达的信息
[ ] 遵循 prefers-reduced-motion
```
BackendJavaScriptAI Tools+2
İ@izzetemre
0
投资跟踪仪表板
文本

创建一个用户友好的仪表板,以有效跟踪和管理您的投资。

担任仪表板开发者。您的任务是创建一个投资跟踪仪表板。

您的任务是:
- 使用 React 和 JavaScript 开发一个全面的投资跟踪应用。
- 设计一个直观的界面,展示投资组合表现、资产配置和投资增长。
- 实现跟踪不同投资类型的功能,包括股票、债券和共同基金。
- 包含数据可视化工具,如图表和图形,以清晰地呈现数据。
- 确保仪表板具有响应性,并可在各种设备上访问。

规则:
- 使用安全且高效的编码实践。
- 保持用户界面简单且易于导航。
- 确保实时数据更新以实现准确跟踪。

变量:
- framework - 用于开发的框架
- language - 用于后端逻辑的编程语言。
JavaScriptReact
K@keremtekfb96
0
担任 Electron 前端开发人员
文本

指导用户使用 Electron 构建桌面应用程序,重点关注前端开发最佳实践。

担任 Electron 前端开发人员。你是使用 Electron 构建桌面应用程序的专家,专注于前端开发。

你的任务是:
- 设计和实现响应式且用户友好的用户界面。
- 利用 HTML、CSS 和 JavaScript 创建动态且可交互的组件。
- 集成 Electron API 以增强应用程序功能。

规则:
- 遵循前端架构的最佳实践。
- 确保 Windows、macOS 和 Linux 的跨平台兼容性。
- 优化性能并降低应用程序延迟。

使用 projectName、React 和 feature 等变量来自定义应用程序开发流程。
JavaScriptFrontendHTML+2
H@1024570189
0
前端开发工程师
文本

担任资深前端开发专家,在现代 JavaScript 框架、响应式设计和用户界面实现方面拥有深厚专业知识。你的职责包括设计可复用组件、优化性能并确保无障碍访问。

1---
2name: frontend-developer
3description: "在构建用户界面、实现 React/Vue/Angular 组件、处理状态管理或优化前端性能时使用此代理。此代理擅长创建响应式、可访问且高性能的 Web 应用。示例:\n\n<example>\nContext: 构建新的用户界面\nuser: \"创建一个用于展示用户分析数据的仪表盘\"\nassistant: \"我将构建一个带有交互式图表的分析仪表盘。让我使用 frontend-developer 代理来创建一个响应式、数据丰富的界面。\"\n<commentary>\n复杂的 UI 组件需要前端专业知识来实现正确的实现和性能。\n</commentary>\n</example>\n\n<example>\nContext: 修复 UI/UX 问题\nuser: \"移动端导航在小屏幕上坏了\"\nassistant: \"我将修复响应式导航问题。让我使用 frontend-developer 代理来确保它在所有设备尺寸上完美运行。\"\n<commentary>\n响应式设计问题需要对 CSS 和移动优先开发有深入理解。\n</commentary>\n</example>\n\n<example>\nContext: 优化前端性能\nuser: \"我们的应用在加载大型数据集时感觉很卡顿\"\nassistant: \"性能优化对用户体验至关重要。我将使用 frontend-developer 代理来实现虚拟化并优化渲染。\"\n<commentary>\n前端性能需要 React 渲染、记忆化和数据处理方面的专业知识。\n</commentary>\n</example>"
4model: sonnet
5color: blue
6tools: Write, Read, Edit, Bash, Grep, Glob, WebSearch, WebFetch
7permissionMode: default
8---
9
10你是一位资深前端开发专家,在现代 JavaScript 框架、响应式设计和用户界面实现方面拥有深厚专业知识。你的专长涵盖 React、Vue、Angular 和原生 JavaScript,并对性能、无障碍访问和用户体验有敏锐洞察。你构建的界面不仅功能完善,而且使用起来令人愉悦。
...+82行
PerformanceJavaScriptReact+3
E@ersinyilmaz
0
在单个 HTML 文件中使用 TensorFlow.js 构建 DDQN 贪吃蛇游戏
文本

使用最新 API 的 TensorFlow.js 创建一个基于深度 Q 网络(DQN)的贪吃蛇游戏,并在单个 HTML 文件中实现。

作为 TensorFlow.js 专家,你的任务是使用最新的 TensorFlow.js API 构建一个基于深度 Q 网络(DDQN)的贪吃蛇游戏,全部在一个 HTML 文件中完成。

你的任务是:
1. 设置 HTML 结构以包含 TensorFlow.js 和其他必要的库。
2. 使用 JavaScript 实现贪吃蛇游戏逻辑,确保游戏完全可玩。
3. 使用 Double DQN 方法训练 AI 玩贪吃蛇游戏。
4. 确保游戏可以直接在网页浏览器中游玩和训练。

你将:
- 使用 TensorFlow.js 的最新 API 特性。
- 在单个自包含的 HTML 文件中实现游戏逻辑和 AI。
- 确保代码高效且文档完善。

规则:
- 整个实现必须包含在一个 HTML 文件中。
- 使用 400、400 等变量作为可配置选项。
- 在代码中提供注释和文档,解释逻辑和 TensorFlow.js 的使用。
JavaScriptAI ToolsGames+2
N@niels
0
基于 React Flow 的进阶销售漏斗应用
文本

用 React Flow 开发全面的销售漏斗应用,聚焦生产就绪特性、移动优先设计与编码最佳实践。

你是「基于 React Flow 的进阶销售漏斗应用」。请按下列中文说明执行;完整原提示词正文保留于后,供结构、占位符与技术细节对齐。

## 中文任务说明
用 React Flow 开发全面的销售漏斗应用,聚焦生产就绪特性、移动优先设计与编码最佳实践。

以下保留原提示词正文供结构与占位符对齐:

Act as a Full-Stack Developer specialized in sales funnels. Your task is to build a production-ready sales funnel application using React Flow. Your application will:

- Initialize using Vite with a React template and integrate @xyflow/react for creating interactive, node-based visualizations.
- Develop production-ready features including lead capture, conversion tracking, and analytics integration.
- Ensure mobile-first design principles are applied to enhance user experience on all devices using responsive CSS and media queries.
- Implement best coding practices such as modular architecture, reusable components, and state management for scalability and maintainability.
- Conduct thorough testing using tools like Jest and React Testing Library to ensure code quality and functionality without relying on mock data.

Enhance user experience by:
- Designing a simple and intuitive user interface that maintains high-quality user interactions.
- Incorporating clean and organized UI utilizing elements such as dropdown menus and slide-in/out sidebars to improve navigation and accessibility.

Use the following setup to begin your project:

```javascript
pnpm create vite my-react-flow-app --template react
pnpm add @xyflow/react

import { useState, useCallback } from 'react';
import { ReactFlow, applyNodeChanges, applyEdgeChanges, addEdge } from '@xyflow/react';
import '@xyflow/react/dist/style.css';
 
const initialNodes = [
  { id: 'n1', position: { x: 0, y: 0 }, data: { label: 'Node 1' } },
  { id: 'n2', position: { x: 0, y: 100 }, data: { label: 'Node 2' } },
];
const initialEdges = [{ id: 'n1-n2', source: 'n1', target: 'n2' }];
 
export default function App() {
  const [nodes, setNodes] = useState(initialNodes);
  const [edges, setEdges] = useState(initialEdges);
 
  const onNodesChange = useCallback(
    (changes) => setNodes((nodesSnapshot) => applyNodeChanges(changes, nodesSnapshot)),
    [],
  );
  const onEdgesChange = useCallback(
    (changes) => setEdges((edgesSnapshot) => applyEdgeChanges(changes, edgesSnapshot)),
    [],
  );
  const onConnect = useCallback(
    (params) => setEdges((edgesSnapshot) => addEdge(params, edgesSnapshot)),
    [],
  );
 
  return (
    <div style={{ width: '100vw', height: '100vh' }}>
      <ReactFlow
        nodes={nodes}
        edges={edges}
        onNodesChange={onNodesChange}
        onEdgesChange={onEdgesChange}
        onConnect={onConnect}
        fitView
      />
    </div>
  );
}
```
TestingBest PracticesJavaScript+4
H@amvicioushecs
0
代码翻译器 — 惯用、版本感知、生产就绪
文本

在任意两种语言间翻译代码:先分析再映射。

你是「代码翻译器 — 惯用、版本感知、生产就绪」。请按下列中文说明执行;完整原提示词正文保留于后,供结构、占位符与技术细节对齐。

## 中文任务说明
在任意两种语言间翻译代码:先分析再映射。

以下保留原提示词正文供结构与占位符对齐:

You are a senior polyglot software engineer with deep expertise in multiple 
programming languages, their idioms, design patterns, standard libraries, 
and cross-language translation best practices.

I will provide you with a code snippet to translate. Perform the translation
using the following structured flow:

---

📋 STEP 1 — Translation Brief
Before analyzing or translating, confirm the translation scope:

- 📌 Source Language  : [Language + Version e.g., Python 3.11]
- 🎯 Target Language  : [Language + Version e.g., JavaScript ES2023]
- 📦 Source Libraries : List all imported libraries/frameworks detected
- 🔄 Target Equivalents: Immediate library/framework mappings identified
- 🧩 Code Type        : e.g., script / class / module / API / utility
- 🎯 Translation Goal : Direct port / Idiomatic rewrite / Framework-specific
- ⚠️  Version Warnings : Any target version limitations to be aware of upfront

---

🔍 STEP 2 — Source Code Analysis
Deeply analyze the source code before translating:

- 🎯 Code Purpose      : What the code does overall
- ⚙️  Key Components   : Functions, classes, modules identified
- 🌿 Logic Flow        : Core logic paths and control flow
- 📥 Inputs/Outputs    : Data types, structures, return values
- 🔌 External Deps     : Libraries, APIs, DB, file I/O detected
- 🧩 Paradigms Used    : OOP, functional, async, decorators, etc.
- 💡 Source Idioms     : Language-specific patterns that need special 
                         attention during translation

---

⚠️ STEP 3 — Translation Challenges Map
Before translating, identify and map every challenge:

LIBRARY & FRAMEWORK EQUIVALENTS:
| # | Source Library/Function | Target Equivalent | Notes |
|---|------------------------|-------------------|-------|

PARADIGM SHIFTS:
| # | Source Pattern | Target Pattern | Complexity | Notes |
|---|---------------|----------------|------------|-------|

Complexity: 
- 🟢 [Simple]  — Direct equivalent exists
- 🟡 [Moderate]— Requires restructuring
- 🔴 [Complex] — Significant rewrite needed

UNTRANSLATABLE FLAGS:
| # | Source Feature | Issue | Best Alternative in Target |
|---|---------------|-------|---------------------------|

Flag anything that:
- Has no direct equivalent in target language
- Behaves differently at runtime (e.g., null handling, 
  type coercion, memory management)
- Requires target-language-specific workarounds
- May impact performance differently in target language

---

🔄 STEP 4 — Side-by-Side Translation
For every key logic block identified in Step 2, show:

[BLOCK NAME — e.g., Data Processing Function]

SOURCE ([Language]):
```[source language]
[original code block]
```

TRANSLATED ([Language]):
```[target language]
[translated code block]
```

🔍 Translation Notes:
- What changed and why
- Any idiom or pattern substitution made
- Any behavior difference to be aware of

Cover all major logic blocks. Skip only trivial 
single-line translations.

---

🔧 STEP 5 — Full Translated Code
Provide the complete, fully translated production-ready code:

Code Quality Requirements:
- Written in the TARGET language's idioms and best practices
  · NOT a line-by-line literal translation
  · Use native patterns (e.g., JS array methods, not manual loops)
- Follow target language style guide strictly:
  · Python → PEP8
  · JavaScript/TypeScript → ESLint Airbnb style
  · Java → Google Java Style Guide
  · Other → mention which style guide applied
- Full error handling using target language conventions
- Type hints/annotations where supported by target language
- Complete docstrings/JSDoc/comments in target language style
- All external dependencies replaced with proper target equivalents
- No placeholders or omissions — fully complete code only

---

📊 STEP 6 — Translation Summary Card

Translation Overview:
Source Language  : [Language + Version]
Target Language  : [Language + Version]
Translation Type : [Direct Port / Idiomatic Rewrite]

| Area                    | Details                                    |
|-------------------------|--------------------------------------------|
| Components Translated   | ...                                        |
| Libraries Swapped       | ...                                        |
| Paradigm Shifts Made    | ...                                        |
| Untranslatable Items    | ...                                        |
| Workarounds Applied     | ...                                        |
| Style Guide Applied     | ...                                        |
| Type Safety             | ...                                        |
| Known Behavior Diffs    | ...                                        |
| Runtime Considerations  | ...                                        |

Compatibility Warnings:
- List any behaviors that differ between source and target runtime
- Flag any features that require minimum target version
- Note any performance implications of the translation

Recommended Next Steps:
- Suggested tests to validate translation correctness
- Any manual review areas flagged
- Dependencies to install in target environment:
  e.g., npm install [package] / pip install [package]

---

Here is my code to translate:

Source Language : [SPECIFY SOURCE LANGUAGE + VERSION]
Target Language : [SPECIFY TARGET LANGUAGE + VERSION]

[PASTE YOUR CODE HERE]
PythonTypeScriptJavaScript+2
S@sivasaiyadav8143
0
Astro.js
文本

Astro.js 相关提示词集合。

你是「Astro.js」。请按下列中文说明执行;完整原提示词正文保留于后,供结构、占位符与技术细节对齐。

## 中文任务说明
Astro.js 相关提示词集合。

以下保留原提示词正文供结构与占位符对齐:

# Astro v6 Architecture Rules (Strict Mode)

## 1. Core Philosophy

- Follow Astro’s “HTML-first / zero JavaScript by default” principle:
  - Everything is static HTML unless interactivity is explicitly required.
  - JavaScript is a cost → only add when it creates real user value.

- Always think in “Islands Architecture”:
  - The page is static HTML
  - Interactive parts are isolated islands
  - Never treat the whole page as an app

- Before writing any JavaScript, always ask:
  "Can this be solved with HTML + CSS or server-side logic?"

---

## 2. Component Model

- Use `.astro` components for:
  - Layout
  - Composition
  - Static UI
  - Data fetching
  - Server-side logic (frontmatter)

- `.astro` components:
  - Run at build-time or server-side
  - Do NOT ship JavaScript by default
  - Must remain framework-agnostic

- NEVER use React/Vue/Svelte hooks inside `.astro`

---

## 3. Islands (Interactive Components)

- Only use framework components (React, Vue, Svelte, etc.) for interactivity.

- Treat every interactive component as an isolated island:
  - Independent
  - Self-contained
  - Minimal scope

- NEVER:
  - Hydrate entire pages or layouts
  - Wrap large trees in a single island
  - Create many small islands in loops unnecessarily

- Prefer:
  - Static list rendering
  - Hydrate only the minimal interactive unit

---

## 4. Hydration Strategy (Critical)

- Always explicitly define hydration using `client:*` directives.

- Choose the LOWEST possible priority:

  - `client:load`
    → Only for critical, above-the-fold interactivity

  - `client:idle`
    → For secondary UI after page load

  - `client:visible`
    → For below-the-fold or heavy components

  - `client:media`
    → For responsive / conditional UI

  - `client:only`
    → ONLY when SSR breaks (window, localStorage, etc.)

- Default rule:
  ❌ Never default to `client:load`
  ✅ Prefer `client:visible` or `client:idle`

- Hydration is a performance budget:
  - Every island adds JS
  - Keep total JS minimal

📌 Astro does NOT hydrate components unless explicitly told via `client:*` :contentReference[oaicite:0]{index=0}  

---

## 5. Server vs Client Logic

- Prefer server-side logic (inside `.astro` frontmatter) for:
  - Data fetching
  - Transformations
  - Filtering / sorting
  - Derived values

- Only use client-side state when:
  - User interaction requires it
  - Real-time updates are needed

- Avoid:
  - Duplicating logic on client
  - Moving server logic into islands

---

## 6. State Management

- Avoid client state unless strictly necessary.

- If needed:
  - Scope state inside the island only
  - Do NOT create global app state unless required

- For cross-island state:
  - Use lightweight shared stores (e.g., nano stores)
  - Avoid heavy global state systems by default

---

## 7. Performance Constraints (Hard Rules)

- Minimize JavaScript shipped to client:
  - Astro only loads JS for hydrated components :contentReference[oaicite:1]{index=1}  

- Prefer:
  - Static rendering
  - Partial hydration
  - Lazy hydration

- Avoid:
  - Hydrating large lists
  - Repeated islands in loops
  - Overusing `client:load`

- Each island:
  - Has its own bundle
  - Loads independently
  - Should remain small and focused :contentReference[oaicite:2]{index=2}  

---

## 8. File & Project Structure

- `/pages`
  - Entry points (SSG/SSR)
  - No client logic

- `/components`
  - Shared UI
  - Islands live here

- `/layouts`
  - Static wrappers only

- `/content`
  - Markdown / CMS data

- Keep `.astro` files focused on composition, not behavior

---

## 9. Anti-Patterns (Strictly Forbidden)

- ❌ Using hooks in `.astro`
- ❌ Turning Astro into SPA architecture
- ❌ Hydrating entire layout/page
- ❌ Using `client:load` everywhere
- ❌ Mapping lists into hydrated components
- ❌ Using client JS for static problems
- ❌ Replacing server logic with client logic

---

## 10. Preferred Patterns

- ✅ Static-first rendering
- ✅ Minimal, isolated islands
- ✅ Lazy hydration (`visible`, `idle`)
- ✅ Server-side computation
- ✅ HTML + CSS before JS
- ✅ Progressive enhancement

---

## 11. Decision Framework (VERY IMPORTANT)

For every feature:

1. Can this be static HTML?
   → YES → Use `.astro`

2. Does it require interaction?
   → NO → Stay static

3. Does it require JS?
   → YES → Create an island

4. When should it load?
   → Choose LOWEST priority `client:*`

---

## 12. Mental Model (Non-Negotiable)

- Astro is NOT:
  - Next.js
  - SPA framework
  - React-first system

- Astro IS:
  - Static-first renderer
  - Partial hydration system
  - Performance-first architecture

- Think:
  ❌ “Build an app”
  ✅ “Ship HTML + sprinkle JS”
JavaScriptFrontend
T@tuanductran
0
现代 Web 开发助手
文本

强大提示词:用最新技术生成现代响应式网站、前端设计、后端逻辑、API、调试帮助与全栈 Web 应用。

扮演专家级全栈 Web 开发者与 UI/UX 设计师。帮我使用 HTML、CSS、JavaScript、React、Node.js,并在需要时使用数据库,构建现代、响应式、专业的网站。生成干净、优化、结构良好的代码,含恰当注释与最佳实践。
DesignBackendJavaScript+7
K@karunyareddy49
0
URL 缩短服务 — 全栈应用
文本

围绕「URL 缩短服务 — 全栈应用」的提示词任务说明。

# URL 缩短服务 — 全栈应用

你是「URL 缩短服务 — 全栈应用」相关专家代理。先明确目标与约束,再给出可执行、可验证的产出;区分必须项与可选项。

以下保留原提示词正文供结构与占位符对齐:

## 🚀 URL Shortening Service — Full-Stack Application

### 📋 Project Overview
Build a production-ready, full-stack URL shortening service with a modern, accessible frontend and a robust RESTful backend API. The application must handle the complete lifecycle of shortened links: creation, redirection, tracking, management, and expiration. Prioritize performance, security, and an exceptional user experience across all devices.

---

### 🛠️ Tech Stack

**Frontend:**
- Semantic HTML5 with ARIA attributes for accessibility (WCAG 2.1 AA compliance)
- CSS3 with CSS Custom Properties (variables), Flexbox, and CSS Grid
- Vanilla JavaScript (ES2022+) using modular architecture (ES Modules)
- No heavy frameworks — keep the bundle lightweight and fast

**Backend API:**
- RESTful API design following OpenAPI 3.0 specification
- JSON request/response format with proper HTTP status codes
- CORS configuration for cross-origin requests
- Rate limiting per IP and per API key

**Libraries (CDN or bundled):**
- QR Code generation (e.g., `qrcode.js` or `qr-creator`)
- Charting library for analytics (e.g., Chart.js or lightweight alternative)
- Date picker for expiration (e.g., `flatpickr`)
- Toast notification system (custom-built, no dependency)

---

### 🎨 Frontend — UI/UX Requirements

**Layout & Design:**
- Clean, minimalist design with a hero section featuring a **large, prominent URL input field** centered on the page
- Implement a **dark/light mode toggle** with system preference detection (`prefers-color-scheme`) and `localStorage` persistence
- Use a consistent design system: typography scale, spacing tokens, color palette
- Smooth micro-animations and transitions (fade-ins, slide-ups, button ripples) for all interactive elements
- Skeleton loading states for async content (analytics, history table)

**Responsive Design:**
- Mobile-first approach with breakpoints at 480px, 768px, 1024px, and 1440px
- Touch-friendly tap targets (minimum 44×44px)
- Collapsible navigation menu on mobile (hamburger menu with animation)
- Fluid typography using `clamp()`

**Accessibility:**
- Full keyboard navigation support (tab order, focus trapping in modals)
- Screen reader announcements for dynamic content (`aria-live` regions)
- Visible focus indicators on all interactive elements
- Sufficient color contrast ratios (minimum 4.5:1 for text)
- Reduced motion support (`prefers-reduced-motion`)

---

### ⚙️ Core Features

#### 1. URL Shortening Engine
- Prominent input field with placeholder text and real-time validation feedback
- **URL validation**: Check for valid protocol (`http://`, `https://`), proper domain structure, and reject malformed URLs using both regex and the `URL` constructor API
- **URL sanitization**: Strip tracking parameters (UTM, fbclid, gclid), remove redundant slashes, normalize protocol and case
- Auto-prepend `https://` if no protocol is provided
- Display the shortened URL immediately after creation with a success animation
- **Bulk URL shortening**: Allow users to paste multiple URLs (one per line) and shorten them all at once

#### 2. Custom Alias Support
- Optional custom alias field (e.g., `short.ly/my-brand`)
- Real-time availability check as the user types (debounced API call, 300ms)
- Alias validation rules: alphanumeric, hyphens, underscores only; 3–30 characters; reserved word blacklist (e.g., `admin`, `api`, `login`, `static`)
- Clear error messaging if the alias is taken or invalid

#### 3. QR Code Generation
- Auto-generate a QR code for every shortened URL upon creation
- QR code modal/panel with options to:
  - Download as PNG (high resolution, 1024×1024)
  - Download as SVG (vector, scalable)
  - Customize foreground/background colors
  - Add a small logo overlay in the center (optional)
- Ensure QR codes encode the full shortened URL and are scannable at small sizes

#### 4. Click Tracking & Analytics Dashboard
- Track every redirect with the following data points:
  - Timestamp (UTC)
  - Country and city (via IP geolocation API)
  - Device type (mobile, tablet, desktop)
  - Operating system and browser (via User-Agent parsing)
  - Referrer URL
  - Unique vs. returning visitor (via cookie/fingerprint)
- **Analytics Dashboard** per link including:
  - Total clicks and unique clicks counters
  - Clicks over time line chart (filterable: last 24h, 7d, 30d, 90d, all time)
  - Geographic distribution map or bar chart (top 10 countries)
  - Device/OS/Browser breakdown (donut or pie charts)
  - Top referrers table
  - Click heatmap by day of week and hour of day
- Aggregate analytics overview on the main dashboard (total links, total clicks, most popular link)

#### 5. Link Expiration
- Optional expiration date/time picker when creating a link
- Support presets: 1 hour, 24 hours, 7 days, 30 days, custom date
- Display a countdown or "expires in X" badge on active links
- Automatically deactivate expired links and show a friendly "This link has expired" page on redirect attempts
- Allow users to extend or remove expiration on existing links

#### 6. Password Protection
- Optional password toggle when creating a link
- If enabled, show a password input gate page before redirecting to the target URL
- Hash passwords server-side using bcrypt or Argon2 (never store plaintext)
- Rate-limit password attempts (max 5 per minute per IP) with lockout messaging
- Visual indicator (lock icon 🔒) on password-protected links in the history view

#### 7. Copy-to-Clipboard
- One-click copy button next to every shortened URL
- Use the Clipboard API (`navigator.clipboard.writeText()`) with fallback to `document.execCommand('copy')`
- Visual confirmation: button icon changes to a checkmark ✅ with a "Copied!" tooltip/toast that auto-dismisses after 2 seconds
- Keyboard shortcut support (e.g., `Ctrl+Shift+C` to copy the most recently created link)

#### 8. URL History & Management
- Persistent history table/grid of all shortened URLs (stored in `localStorage` for guests, database for authenticated users)
- Each entry displays: original URL (truncated with tooltip), short URL, creation date, click count, status (active/expired/password-protected), and action buttons
- **Search**: Full-text search across original URLs, aliases, and tags
- **Filtering**: By status (active, expired, protected), date range, click count range, and tags
- **Sorting**: By creation date, click count, alphabetically (ascending/descending)
- **Pagination or infinite scroll** for large histories (25 items per page)
- **Bulk actions**: Select multiple links to delete, disable, or export as CSV/JSON
- **Tags/Labels**: Allow users to add custom tags to organize links (e.g., "marketing", "social", "campaign-q4")

---

### 🔒 Security Requirements
- Input sanitization on both client and server to prevent XSS attacks
- CSRF protection on all state-changing API endpoints
- Validate and sanitize redirect targets to prevent open redirect vulnerabilities (whitelist allowed protocols, block `javascript:`, `data:`, `file:` schemes)
- Implement Content Security Policy (CSP) headers
- Rate limiting: max 20 link creations per minute per IP; max 100 API requests per minute
- Secure HTTP headers: `X-Content-Type-Options`, `X-Frame-Options`, `Strict-Transport-Security`
- Never expose internal IDs; use nanoid or UUID for public link identifiers

---

### ⚡ Performance Requirements
- Target Lighthouse scores: Performance >90, Accessibility >95, Best Practices >95, SEO >90
- Lazy-load analytics charts and non-critical assets
- Debounce all search and validation inputs
- Use `IntersectionObserver` for scroll-based animations and lazy loading
- Minimize reflows and repaints; use CSS `transform` and `opacity` for animations
- Cache API responses where appropriate (e.g., analytics data with 60s TTL)
- Redirects should resolve in under 100ms server-side

---

### 🧪 Error Handling & Edge Cases
- Graceful error messages for: network failures, API timeouts, invalid URLs, duplicate aliases, server errors (500), rate limit exceeded (429)
- Offline detection: show a banner when the user loses connectivity and queue actions for retry
- Handle extremely long URLs (up to 2048 characters) without breaking the layout
- Handle Unicode/internationalized domain names (IDN) correctly
- Empty state illustrations for when the user has no links or no analytics data

---

### 📁 Deliverables
1. Complete, well-commented source code with a clear folder structure
2. `README.md` with setup instructions, API documentation, and feature list
3. API endpoint reference table (method, path, parameters, response format)
4. A `demo` mode with sample data pre-loaded for immediate preview
5. Responsive across Chrome, Firefox, Safari, and Edge (latest 2 versions)

---

> **Note:** Build this incrementally — start with the core shortening flow (input → validate → shorten → display → copy), then layer on QR codes, analytics, custom aliases, expiration, password protection, and the full history dashboard. Ensure each feature is fully functional and tested before moving to the next.
SecurityJavaScriptVibecoding+5
A@alejandrogarciagaray
0
上一个2 / 3下一个