# 前端开发技能

**描述**: 使用HTML5、CSS3、JavaScript进行前端页面开发，含响应式布局、交互逻辑和浏览器兼容性处理
**依赖工具**: read_text, write_text, edit_file, make_dir, search_file, ls, exec_code, run_script, call_agent

## 步骤

### 步骤1：读取相关常识知识
使用 `read_knowledge` 读取以下常识知识，了解领域规范和标准：
- 使用 `read_knowledge knowledge_name='naming_conventions'`
- 使用 `read_knowledge knowledge_name='project_structure'`
- 使用 `read_knowledge knowledge_name='logging_standards'`
- 使用 `read_knowledge knowledge_name='color_system'`
- 使用 `read_knowledge knowledge_name='typography'`
- 使用 `read_knowledge knowledge_name='responsive_breakpoints'`

### 步骤2：读取工作提示词
使用 `read_work` 读取以下工作提示词，按规范流程执行：
- 使用 `read_work work_name='html_css'`
- 使用 `read_work work_name='vue_development'`
- 使用 `read_work work_name='js_development'`
- 使用 `read_work work_name='api_integration'`
- 使用 `read_work work_name='responsive_testing'`

### 步骤3：分析需求与准备环境
> 明确页面数量、功能模块和设计风格，创建前端目录结构
1. 用 `read_text` 读取项目需求文档或UI设计规范
2. 用 `read_knowledge('project_structure')` 了解标准项目目录结构
3. 用 `make_dir` 创建目录：`./project/{项目名}/static/`、`css/`、`js/`、`img/`、`font/`

### 编写HTML结构
> 构建语义化的HTML5页面骨架
1. 用 `write_text` 写入 `./project/{项目名}/static/{页面名}.html`，使用语义化标签（header/nav/main/section/article/footer）
2. DOCTYPE 设为 `<!DOCTYPE html>`，lang 设为 `zh-CN`，meta viewport 设为 `width=device-width, initial-scale=1.0`
3. 用 `read_knowledge('responsive_breakpoints')` 了解响应式断点规范
4. CSS 通过 `<link>` 引入，JS 通过 `<script>` 在 body 末尾引入

### 编写CSS样式
> 实现页面布局和视觉风格，适配多端屏幕
1. 用 `write_text` 写入 `./project/{项目名}/static/css/{页面名}.css`
2. 使用CSS3特性（flexbox/grid/transition/animation），采用BEM命名法（block__element--modifier）
3. 颜色用十六进制或rgba，字号用rem单位
4. 用 `read_knowledge('spacing_grid')` 了解间距规范
5. 用 `@media (min-width: 768px)` 和 `@media (min-width: 576px)` 适配平板和手机

### 编写JavaScript逻辑
> 实现前端交互功能和数据请求
1. 用 `write_text` 写入 `./project/{项目名}/static/js/{模块名}.js`，使用严格模式 `'use strict'`
2. DOM操作用 `document.querySelector`/`document.getElementById`，事件监听用 `addEventListener`
3. 数据请求用 `fetch` API，函数命名用小驼峰（camelCase），常量用全大写加下划线（UPPER_SNAKE_CASE）

### 验证代码
> 确保JS语法正确、页面正常渲染
1. 用 `exec_code` 执行 `node --check ./project/{项目名}/static/js/{模块名}.js` 检查JS语法
2. 用 `run_script` 运行HTML文件，检查页面是否正常渲染

### 浏览器兼容性处理
> 为CSS属性补充浏览器前缀，确保跨浏览器兼容
1. 用 `search_file` 搜索项目中需加前缀的CSS属性（transform/transition/animation/flex/user-select）
2. 用 `edit_file` 在CSS中补充 `-webkit-`、`-moz-`、`-ms-` 前缀

**输出**: 
1. HTML文件：`./project/{项目名}/static/{页面名}.html`
2. CSS文件：`./project/{项目名}/static/css/{页面名}.css`
3. JS文件：`./project/{项目名}/static/js/{模块名}.js`
4. 目录结构：`./project/{项目名}/static/` 下含 css/、js/、img/、font/ 子目录

**失败**: 
- 需求文档不存在 → 用 `search_file` 搜索 `.md` 文件，仍找不到则用 `call_agent` 通知 `ui_designer` 获取设计规范
- 语法检查失败 → 用 `edit_file` 修正错误行，最多重试3次，第3次失败则用 `notify_user` 报告错误详情
- API未就绪 → 在JS中用模拟数据函数，加注释 `// TODO: 替换为真实API`，用 `call_agent` 通知 `nodejs_backend_developer` 推进API开发
