页面反馈
### 目标
– 创建一个不仅功能齐全,而且在性能、安全性和可维护性方面遵循最佳实践的 Next.js 解决方案。
### 代码风格和结构
– 编写简洁、技术性的 TypeScript 代码,并提供准确示例。
– 使用函数式和声明式编程模式,避免使用类。
– 偏向于迭代和模块化,而非代码重复。
– 使用带有辅助动词的描述性变量名(例如 `isLoading`、`hasError`)。
– 结构化文件,包括导出的组件、子组件、辅助函数、静态内容和类型。
– 目录名称使用小写字母和短横线(例如 `components/auth-wizard`)。
### 优化和最佳实践
– 尽量减少使用 `'use client'`、`useEffect` 和 `setState`,优先使用 React 服务器组件(RSC)和 Next.js SSR 功能。
– 实现动态导入以便进行代码分割和优化。
– 采用响应式设计,优先考虑移动优先的方法。
– 优化图像:使用 WebP 格式,包含尺寸数据,实施懒加载。
### 错误处理和验证
– 优先考虑错误处理和边缘情况:
– 对错误条件使用提前返回。
– 实施保护条款以便提前处理前置条件和无效状态。
– 使用自定义错误类型以确保一致的错误处理。
### UI 和样式
– 使用现代 UI 框架(如 Tailwind CSS、Shadcn UI、Radix UI)进行样式设计。
– 在多个平台上实现一致的设计和响应式模式。
### 状态管理和数据获取
– 使用现代状态管理解决方案(例如 Zustand、TanStack React Query)来处理全局状态和数据获取。
– 使用 Zod 实现模式验证。
### 安全性和性能
– 实施适当的错误处理、用户输入验证和安全编程实践。
– 遵循性能优化技术,如减少加载时间和提高渲染效率。
### 测试和文档
– 使用 Jest 和 React Testing Library 为组件编写单元测试。
– 对复杂逻辑提供清晰简明的注释。
– 使用 JSDoc 注释函数和组件,以改善 IDE 智能提示。
### 方法论
1. **系统二思维**:以分析严谨的方式处理问题。将需求分解为更小的可管理部分,全面考虑每一步后再实施。
2. **思维树**:评估多个可能的解决方案及其后果。采用结构化的方法探索不同的路径并选择最佳方案。
3. **迭代精炼**:在最终确定代码之前,考虑改进、边缘情况和优化。通过潜在增强的迭代,确保最终解决方案的健壮性。
**过程**:
1. **深入分析**:首先对任务进行彻底分析,考虑技术要求和限制。
2. **规划**:制定明确的计划,概述解决方案的架构结构和流程,如有必要使用 标签。
3. **实施**:逐步实施解决方案,确保每个部分遵循指定的最佳实践。
4. **审核和优化**:对代码进行审核,寻找可能的优化和改进空间。
5. **最终确认**:确保代码满足所有要求,安全且高效。
### Objective
– Create a Next.js solution that is not only functional but also adheres to the best practices in performance, security, and maintainability.
### Code Style and Structure
– Write concise, technical TypeScript code with accurate examples.
– Use functional and declarative programming patterns; avoid classes.
– Favor iteration and modularization over code duplication.
– Use descriptive variable names with auxiliary verbs (e.g., `isLoading`, `hasError`).
– Structure files with exported components, subcomponents, helpers, static content, and types.
– Use lowercase with dashes for directory names (e.g., `components/auth-wizard`).
### Optimization and Best Practices
– Minimize the use of `'use client'`, `useEffect`, and `setState`; favor React Server Components (RSC) and Next.js SSR features.
– Implement dynamic imports for code splitting and optimization.
– Use responsive design with a mobile-first approach.
– Optimize images: use WebP format, include size data, implement lazy loading.
### Error Handling and Validation
– Prioritize error handling and edge cases:
– Use early returns for error conditions.
– Implement guard clauses to handle preconditions and invalid states early.
– Use custom error types for consistent error handling.
### UI and Styling
– Use modern UI frameworks (e.g., Tailwind CSS, Shadcn UI, Radix UI) for styling.
– Implement consistent design and responsive patterns across platforms.
### State Management and Data Fetching
– Use modern state management solutions (e.g., Zustand, TanStack React Query) to handle global state and data fetching.
– Implement validation using Zod for schema validation.
### Security and Performance
– Implement proper error handling, user input validation, and secure coding practices.
– Follow performance optimization techniques, such as reducing load times and improving rendering efficiency.
### Testing and Documentation
– Write unit tests for components using Jest and React Testing Library.
– Provide clear and concise comments for complex logic.
– Use JSDoc comments for functions and components to improve IDE intellisense.
### Methodology
1. **System 2 Thinking**: Approach the problem with analytical rigor. Break down the requirements into smaller, manageable parts and thoroughly consider each step before implementation.
2. **Tree of Thoughts**: Evaluate multiple possible solutions and their consequences. Use a structured approach to explore different paths and select the optimal one.
3. **Iterative Refinement**: Before finalizing the code, consider improvements, edge cases, and optimizations. Iterate through potential enhancements to ensure the final solution is robust.
**Process**:
1. **Deep Dive Analysis**: Begin by conducting a thorough analysis of the task at hand, considering the technical requirements and constraints.
2. **Planning**: Develop a clear plan that outlines the architectural structure and flow of the solution, using tags if necessary.
3. **Implementation**: Implement the solution step-by-step, ensuring that each part adheres to the specified best practices.
4. **Review and Optimize**: Perform a review of the code, looking for areas of potential optimization and improvement.
5. **Finalization**: Finalize the code by ensuring it meets all requirements, is secure, and is performant.








### 目标
– 创建一个不仅功能齐全,而且在性能、安全性和可维护性方面遵循最佳实践的 Next.js 解决方案。
### 代码风格和结构
– 编写简洁、技术性的 TypeScript 代码,并提供准确示例。
– 使用函数式和声明式编程模式,避免使用类。
– 偏向于迭代和模块化,而非代码重复。
– 使用带有辅助动词的描述性变量名(例如 `isLoading`、`hasError`)。
– 结构化文件,包括导出的组件、子组件、辅助函数、静态内容和类型。
– 目录名称使用小写字母和短横线(例如 `components/auth-wizard`)。
### 优化和最佳实践
– 尽量减少使用 `'use client'`、`useEffect` 和 `setState`,优先使用 React 服务器组件(RSC)和 Next.js SSR 功能。
– 实现动态导入以便进行代码分割和优化。
– 采用响应式设计,优先考虑移动优先的方法。
– 优化图像:使用 WebP 格式,包含尺寸数据,实施懒加载。
### 错误处理和验证
– 优先考虑错误处理和边缘情况:
– 对错误条件使用提前返回。
– 实施保护条款以便提前处理前置条件和无效状态。
– 使用自定义错误类型以确保一致的错误处理。
### UI 和样式
– 使用现代 UI 框架(如 Tailwind CSS、Shadcn UI、Radix UI)进行样式设计。
– 在多个平台上实现一致的设计和响应式模式。
### 状态管理和数据获取
– 使用现代状态管理解决方案(例如 Zustand、TanStack React Query)来处理全局状态和数据获取。
– 使用 Zod 实现模式验证。
### 安全性和性能
– 实施适当的错误处理、用户输入验证和安全编程实践。
– 遵循性能优化技术,如减少加载时间和提高渲染效率。
### 测试和文档
– 使用 Jest 和 React Testing Library 为组件编写单元测试。
– 对复杂逻辑提供清晰简明的注释。
– 使用 JSDoc 注释函数和组件,以改善 IDE 智能提示。
### 方法论
1. **系统二思维**:以分析严谨的方式处理问题。将需求分解为更小的可管理部分,全面考虑每一步后再实施。
2. **思维树**:评估多个可能的解决方案及其后果。采用结构化的方法探索不同的路径并选择最佳方案。
3. **迭代精炼**:在最终确定代码之前,考虑改进、边缘情况和优化。通过潜在增强的迭代,确保最终解决方案的健壮性。
**过程**:
1. **深入分析**:首先对任务进行彻底分析,考虑技术要求和限制。
2. **规划**:制定明确的计划,概述解决方案的架构结构和流程,如有必要使用 标签。
3. **实施**:逐步实施解决方案,确保每个部分遵循指定的最佳实践。
4. **审核和优化**:对代码进行审核,寻找可能的优化和改进空间。
5. **最终确认**:确保代码满足所有要求,安全且高效。
### Objective
– Create a Next.js solution that is not only functional but also adheres to the best practices in performance, security, and maintainability.
### Code Style and Structure
– Write concise, technical TypeScript code with accurate examples.
– Use functional and declarative programming patterns; avoid classes.
– Favor iteration and modularization over code duplication.
– Use descriptive variable names with auxiliary verbs (e.g., `isLoading`, `hasError`).
– Structure files with exported components, subcomponents, helpers, static content, and types.
– Use lowercase with dashes for directory names (e.g., `components/auth-wizard`).
### Optimization and Best Practices
– Minimize the use of `'use client'`, `useEffect`, and `setState`; favor React Server Components (RSC) and Next.js SSR features.
– Implement dynamic imports for code splitting and optimization.
– Use responsive design with a mobile-first approach.
– Optimize images: use WebP format, include size data, implement lazy loading.
### Error Handling and Validation
– Prioritize error handling and edge cases:
– Use early returns for error conditions.
– Implement guard clauses to handle preconditions and invalid states early.
– Use custom error types for consistent error handling.
### UI and Styling
– Use modern UI frameworks (e.g., Tailwind CSS, Shadcn UI, Radix UI) for styling.
– Implement consistent design and responsive patterns across platforms.
### State Management and Data Fetching
– Use modern state management solutions (e.g., Zustand, TanStack React Query) to handle global state and data fetching.
– Implement validation using Zod for schema validation.
### Security and Performance
– Implement proper error handling, user input validation, and secure coding practices.
– Follow performance optimization techniques, such as reducing load times and improving rendering efficiency.
### Testing and Documentation
– Write unit tests for components using Jest and React Testing Library.
– Provide clear and concise comments for complex logic.
– Use JSDoc comments for functions and components to improve IDE intellisense.
### Methodology
1. **System 2 Thinking**: Approach the problem with analytical rigor. Break down the requirements into smaller, manageable parts and thoroughly consider each step before implementation.
2. **Tree of Thoughts**: Evaluate multiple possible solutions and their consequences. Use a structured approach to explore different paths and select the optimal one.
3. **Iterative Refinement**: Before finalizing the code, consider improvements, edge cases, and optimizations. Iterate through potential enhancements to ensure the final solution is robust.
**Process**:
1. **Deep Dive Analysis**: Begin by conducting a thorough analysis of the task at hand, considering the technical requirements and constraints.
2. **Planning**: Develop a clear plan that outlines the architectural structure and flow of the solution, using tags if necessary.
3. **Implementation**: Implement the solution step-by-step, ensuring that each part adheres to the specified best practices.
4. **Review and Optimize**: Perform a review of the code, looking for areas of potential optimization and improvement.
5. **Finalization**: Finalize the code by ensuring it meets all requirements, is secure, and is performant.
页面反馈

.relatedpost ol{padding: 0 20px;}
.relatedpost li{padding: 5px 0;}
#wp-block-categories-1{height:30px;}
.top-product-tags {display: flex;flex-wrap: wrap;gap: 5px;}
.top-product-tag {font-size: 0.875rem;text-decoration: none;transition: background-color 0.3s ease, color 0.3s ease;}
.top-product-tag:hover,.top-product-tag:focus {background-color: #f8f8f8;padding: 0 5px;border-radius: 12px;color: #222;}
.custom-contact-form {width: 100%;margin: 0 auto;padding: 1em;box-sizing: border-box;background: #f9f9f9;border-radius: 8px;box-shadow: 0 2px 8px rgba(0,0,0,0.1);font-family: Arial, sans-serif;}
:root {--wp-spacing-small: 8px;--wp-spacing-medium: 16px;--wp-spacing-large: 24px;}
.custom-contact-form .row {display: flex;flex-wrap: wrap;gap: var(--wp-spacing-medium);margin-bottom: var(--wp-spacing-medium);}
.custom-contact-form .column {flex: 1;min-width: 200px;}
.custom-contact-form label {display: block;margin-bottom: var(--wp-spacing-small);font-weight: bold;font-size: 14px;color: #333;}
.custom-contact-form input[type="text"],.custom-contact-form input[type="email"],.custom-contact-form input[type="tel"],.custom-contact-form input[type="url"],.custom-contact-form textarea {width: 100%;padding: 8px 12px;border: 1px solid #ccc;border-radius: 4px;font-size: 14px;box-sizing: border-box;transition: border-color 0.3s;}
.custom-contact-form input[type="text"]:focus,.custom-contact-form input[type="email"]:focus,.custom-contact-form input[type="tel"]:focus,.custom-contact-form input[type="url"]:focus,.custom-contact-form textarea:focus {border-color: #66afe9;outline: none;}
.custom-contact-form .message-row {flex-direction: column;}
.custom-contact-form .submit-row {text-align: center;margin-top: var(--wp-spacing-large);}
.custom-contact-form input[type="submit"] {background-color: #007bff;border: none;padding: 10px 20px;color: #fff;font-size: 16px;border-radius: 4px;cursor: pointer;transition: background-color 0.3s;}
.custom-contact-form input[type="submit"]:hover,.custom-contact-form input[type="submit"]:focus {background-color: #0056b3;outline: 2px solid rgba(0, 123, 255, 0.5);}
.acf-attribute-table {max-width: 100%;border-collapse: collapse;font-size: 16px;}
.acf-attribute-table td {text-align: left;padding: 8px;border: 1px solid #ccc;}
.custom-pc-categories {display: flex;align-items: center;justify-content: center;flex-wrap: wrap;width: 100%;text-align: center;}
.custom-pc-categories .custom-pc-link {margin: 0 15px;text-decoration: none;color: #333;position: relative;padding: 5px 0;}
.custom-pc-categories .custom-pc-link:focus {outline: 2px solid #333;outline-offset: 2px;}
.custom-pc-categories .custom-pc-link.custom-pc-active {font-weight: bold;}
.custom-pc-categories .custom-pc-link.custom-pc-active::after {content: '';position: absolute;left: 0;width: 100%;bottom: 0;height: 2px;background-color: #333;}
.custom-pc-more {position: relative;margin: 0 15px;}
.custom-pc-more .custom-pc-more-toggle {text-decoration: none;color: #333;cursor: pointer;}
.custom-pc-more .custom-pc-more-toggle:focus {outline: 2px solid #333;outline-offset: 2px;}
.custom-pc-more .custom-pc-dropdown {display: none;position: absolute;top: 100%;left: 50%;transform: translateX(-50%);background: #fff;box-shadow: 0 2px 5px rgba(0,0,0,0.2);padding: 10px;z-index: 10;min-width: 150px;text-align: center;}
.custom-pc-more:hover .custom-pc-dropdown {display: block;}
.custom-pc-more .custom-pc-dropdown a {display: block;padding: 5px 0;text-decoration: none;color: #333;}
.custom-pc-more .custom-pc-dropdown a:hover,.custom-pc-more .custom-pc-dropdown a:focus {color: #000;background-color: #f5f5f5;outline: none;}
.custom-pc-more p{margin: 0 !important;}
a:focus {outline:none;}
.wp-block-post-excerpt__excerpt{display: -webkit-box;-webkit-line-clamp: 3;-webkit-box-orient: vertical;overflow: hidden;text-overflow: ellipsis;}
.postexp p {display: -webkit-box;-webkit-line-clamp: 1 !important;-webkit-box-orient: vertical;overflow: hidden;text-overflow: ellipsis;}
#wp-block-categories-2{padding: 8px;margin-right: 10px;border: 1px solid #ddd;border-radius: 4px;width: 200px;}
#custom-search-container {position: relative;}
@media (max-width: 600px) {#custom-search-form {width: 90vw !important;left: 50% !important;transform: translateX(-50%);top: 50px !important;} #custom-search-input {width: 70vw !important;}}
.two-line-ellipsis {display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;overflow: hidden;text-overflow: ellipsis;line-height: 1.5;height: calc(1.5em * 2);}
.makeiteasy-popup-wrapper{border-radius: 10px;}
.product-image-wrapper {position: relative;display: inline-block;}
.productcat{top: 8px;left: 8px;transform: translateX(-20px);position: absolute;background: #ffee5882;padding: 4px 8px;border-radius: 4px;font-size: 14px;user-select: none;white-space: nowrap;opacity: 0;pointer-events: none;transition: opacity 0.3s ease, transform 0.3s ease;}
.producttag {bottom: 8px;right: 8px;transform: translateX(20px);border-radius: 20px 4px 20px 4px;position: absolute;background: rgba(0,0,0,0.6);color: #fff;padding: 4px 8px;font-size: 8px;user-select: none;white-space: nowrap;opacity: 0;pointer-events: none;transition: opacity 0.3s ease, transform 0.3s ease;}
.product-image-wrapper:hover .productcat,.product-image-wrapper:hover .producttag {opacity: 1;pointer-events: auto;transform: translateX(0);}
:not(.productpagetag) .wp-block-post-terms__separator {display: none;}
.productpagetag::before {content: "Tags: ";color: #686868;}
.productpagetag {margin-left: 0;margin-right: 0;align-items: center;font-size: 14px;}
.productpagetag a {text-decoration: none;transition: background-color 0.3s ease;}
.productpagetag a:hover,.productpagetag a:focus {background-color: #eef6fb;padding: 4px 8px;border-radius: 4px;outline: none;}
.productpagetag .wp-block-post-terms__separator {display: inline-block;color: #555;margin: 0 4px;user-select: none;}
.breadcump {font-size: 14px;display: flex;flex-wrap: nowrap;align-items: center;max-width: 100%;overflow: hidden;color: #333;user-select: none;}
.breadcump a {text-decoration: none;color: #0073aa;white-space: nowrap;user-select: text;}
.breadcump a:hover,.breadcump a:focus {text-decoration: underline;outline: none;}
.breadcrumb-sep {margin: 0 8px;color: #999;flex-shrink: 0;user-select: none;}
.breadcrumb-last {white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 200px;flex-shrink: 1;cursor: default;user-select: text;}
.catfilter label{width: auto !important;}
.singleposttitle {display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;overflow: hidden;text-overflow: ellipsis;}
### 故事概要:
米娅是一个充满好奇心和想象力的小女孩。
在她的后院,有一棵被邻里传说能够实现愿望的古老树。
故事围绕米娅如何用一颗真诚的心去理解愿望的真意展开。
### 分镜脚本:
#### 开场画面:
- **画面一(开场白页面)**
- **内容描述**:夜晚的卧室,米娅戴着睡帽,坐在床上,对着窗外闪烁的星星许愿。
- **角色动作**:米娅双手合十,眼睛闭着,表情充满期待。
- **文本**:旁白“亲爱的小朋友,今天我要讲一个关于米娅和一棵神奇许愿树的故事。”
- **画面二(启动兴趣页面)**
- **内容描述**:夜晚辽阔的星空下,一棵根深蒂固的宏伟树木凸现在米娅的卧室窗外。
- **角色动作**:米娅的眼睛睁开了,充满好奇地凝视着窗外。
- **文本**:旁白“在米娅的花园里,有一棵不一样的树。它能听见孩子们的愿望。”
#### 故事发展:
- **画面三(故事起始)**
- **内容描述**:早晨,米娅在花园中接近许愿树。
- **角色动作**:米娅怀着敬仰,轻轻触摸树皮,树上的叶子发出轻微的银铃般响声。
- **文本**:“米娅,你的愿望是什么?”旁白问道,引出米娅的内心想法。
- **画面四(冲突/愿望页面)**
- **内容描述**:米娅思索,面前浮现出她的愿望——最想要的玩具、旅行的经历、和朋友们的欢乐时光。
- **角色动作**:米娅的眼神透露出困惑,她面临着选择。
- **文本**:旁白继续道,“要选择哪一个呢?”
#### 高潮:
- **画面五(决策页面)**
- **内容描述**:米娅闭上眼睛,深呼吸,她的周围环绕着幻想的光芒。
- **角色动作**:米娅显得更坚定,开口许下了她的愿望。
- **文本**:旁白“勇敢且真诚的心,让许愿树听见了。”
#### 结局:
- **画面六(愿望实现页面)**
- **内容描述**:米娅惊喜地发现,她的愿望以一个预料之外的方式实现了—让全家人度过一个美好的家庭时光。
- **角色动作**:米娅和家人在树下聚餐,她的脸上洋溢着幸福的微笑。
- **文本**:旁白“真正的愿望不总是你想的那样,有时,它们是你真正需要的。”
### 检查点:
- 确保画面和文本都充满童趣与魔法感。
- 制作草稿插画,检查是否适合目标儿童年龄段。
- 对分镜脚本和故事进行审查,确保易于理解、教育意义丰富、传递正能量。
完成以上工作后,我们将与插画师合作,继续完善《米娅的许愿树》的分镜头,并最终将故事带给孩子们。









.relatedpost ol{padding: 0 20px;}
.relatedpost li{padding: 5px 0;}
#wp-block-categories-1{height:30px;}
.top-product-tags {display: flex;flex-wrap: wrap;gap: 5px;}
.top-product-tag {font-size: 0.875rem;text-decoration: none;transition: background-color 0.3s ease, color 0.3s ease;}
.top-product-tag:hover,.top-product-tag:focus {background-color: #f8f8f8;padding: 0 5px;border-radius: 12px;color: #222;}
.custom-contact-form {width: 100%;margin: 0 auto;padding: 1em;box-sizing: border-box;background: #f9f9f9;border-radius: 8px;box-shadow: 0 2px 8px rgba(0,0,0,0.1);font-family: Arial, sans-serif;}
:root {--wp-spacing-small: 8px;--wp-spacing-medium: 16px;--wp-spacing-large: 24px;}
.custom-contact-form .row {display: flex;flex-wrap: wrap;gap: var(--wp-spacing-medium);margin-bottom: var(--wp-spacing-medium);}
.custom-contact-form .column {flex: 1;min-width: 200px;}
.custom-contact-form label {display: block;margin-bottom: var(--wp-spacing-small);font-weight: bold;font-size: 14px;color: #333;}
.custom-contact-form input[type="text"],.custom-contact-form input[type="email"],.custom-contact-form input[type="tel"],.custom-contact-form input[type="url"],.custom-contact-form textarea {width: 100%;padding: 8px 12px;border: 1px solid #ccc;border-radius: 4px;font-size: 14px;box-sizing: border-box;transition: border-color 0.3s;}
.custom-contact-form input[type="text"]:focus,.custom-contact-form input[type="email"]:focus,.custom-contact-form input[type="tel"]:focus,.custom-contact-form input[type="url"]:focus,.custom-contact-form textarea:focus {border-color: #66afe9;outline: none;}
.custom-contact-form .message-row {flex-direction: column;}
.custom-contact-form .submit-row {text-align: center;margin-top: var(--wp-spacing-large);}
.custom-contact-form input[type="submit"] {background-color: #007bff;border: none;padding: 10px 20px;color: #fff;font-size: 16px;border-radius: 4px;cursor: pointer;transition: background-color 0.3s;}
.custom-contact-form input[type="submit"]:hover,.custom-contact-form input[type="submit"]:focus {background-color: #0056b3;outline: 2px solid rgba(0, 123, 255, 0.5);}
.acf-attribute-table {max-width: 100%;border-collapse: collapse;font-size: 16px;}
.acf-attribute-table td {text-align: left;padding: 8px;border: 1px solid #ccc;}
.custom-pc-categories {display: flex;align-items: center;justify-content: center;flex-wrap: wrap;width: 100%;text-align: center;}
.custom-pc-categories .custom-pc-link {margin: 0 15px;text-decoration: none;color: #333;position: relative;padding: 5px 0;}
.custom-pc-categories .custom-pc-link:focus {outline: 2px solid #333;outline-offset: 2px;}
.custom-pc-categories .custom-pc-link.custom-pc-active {font-weight: bold;}
.custom-pc-categories .custom-pc-link.custom-pc-active::after {content: '';position: absolute;left: 0;width: 100%;bottom: 0;height: 2px;background-color: #333;}
.custom-pc-more {position: relative;margin: 0 15px;}
.custom-pc-more .custom-pc-more-toggle {text-decoration: none;color: #333;cursor: pointer;}
.custom-pc-more .custom-pc-more-toggle:focus {outline: 2px solid #333;outline-offset: 2px;}
.custom-pc-more .custom-pc-dropdown {display: none;position: absolute;top: 100%;left: 50%;transform: translateX(-50%);background: #fff;box-shadow: 0 2px 5px rgba(0,0,0,0.2);padding: 10px;z-index: 10;min-width: 150px;text-align: center;}
.custom-pc-more:hover .custom-pc-dropdown {display: block;}
.custom-pc-more .custom-pc-dropdown a {display: block;padding: 5px 0;text-decoration: none;color: #333;}
.custom-pc-more .custom-pc-dropdown a:hover,.custom-pc-more .custom-pc-dropdown a:focus {color: #000;background-color: #f5f5f5;outline: none;}
.custom-pc-more p{margin: 0 !important;}
a:focus {outline:none;}
.wp-block-post-excerpt__excerpt{display: -webkit-box;-webkit-line-clamp: 3;-webkit-box-orient: vertical;overflow: hidden;text-overflow: ellipsis;}
.postexp p {display: -webkit-box;-webkit-line-clamp: 1 !important;-webkit-box-orient: vertical;overflow: hidden;text-overflow: ellipsis;}
#wp-block-categories-2{padding: 8px;margin-right: 10px;border: 1px solid #ddd;border-radius: 4px;width: 200px;}
#custom-search-container {position: relative;}
@media (max-width: 600px) {#custom-search-form {width: 90vw !important;left: 50% !important;transform: translateX(-50%);top: 50px !important;} #custom-search-input {width: 70vw !important;}}
.two-line-ellipsis {display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;overflow: hidden;text-overflow: ellipsis;line-height: 1.5;height: calc(1.5em * 2);}
.makeiteasy-popup-wrapper{border-radius: 10px;}
.product-image-wrapper {position: relative;display: inline-block;}
.productcat{top: 8px;left: 8px;transform: translateX(-20px);position: absolute;background: #ffee5882;padding: 4px 8px;border-radius: 4px;font-size: 14px;user-select: none;white-space: nowrap;opacity: 0;pointer-events: none;transition: opacity 0.3s ease, transform 0.3s ease;}
.producttag {bottom: 8px;right: 8px;transform: translateX(20px);border-radius: 20px 4px 20px 4px;position: absolute;background: rgba(0,0,0,0.6);color: #fff;padding: 4px 8px;font-size: 8px;user-select: none;white-space: nowrap;opacity: 0;pointer-events: none;transition: opacity 0.3s ease, transform 0.3s ease;}
.product-image-wrapper:hover .productcat,.product-image-wrapper:hover .producttag {opacity: 1;pointer-events: auto;transform: translateX(0);}
:not(.productpagetag) .wp-block-post-terms__separator {display: none;}
.productpagetag::before {content: "Tags: ";color: #686868;}
.productpagetag {margin-left: 0;margin-right: 0;align-items: center;font-size: 14px;}
.productpagetag a {text-decoration: none;transition: background-color 0.3s ease;}
.productpagetag a:hover,.productpagetag a:focus {background-color: #eef6fb;padding: 4px 8px;border-radius: 4px;outline: none;}
.productpagetag .wp-block-post-terms__separator {display: inline-block;color: #555;margin: 0 4px;user-select: none;}
.breadcump {font-size: 14px;display: flex;flex-wrap: nowrap;align-items: center;max-width: 100%;overflow: hidden;color: #333;user-select: none;}
.breadcump a {text-decoration: none;color: #0073aa;white-space: nowrap;user-select: text;}
.breadcump a:hover,.breadcump a:focus {text-decoration: underline;outline: none;}
.breadcrumb-sep {margin: 0 8px;color: #999;flex-shrink: 0;user-select: none;}
.breadcrumb-last {white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 200px;flex-shrink: 1;cursor: default;user-select: text;}
.catfilter label{width: auto !important;}
.singleposttitle {display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;overflow: hidden;text-overflow: ellipsis;}
### 故事概要:
米娅是一个充满好奇心和想象力的小女孩。
在她的后院,有一棵被邻里传说能够实现愿望的古老树。
故事围绕米娅如何用一颗真诚的心去理解愿望的真意展开。
### 分镜脚本:
#### 开场画面:
- **画面一(开场白页面)**
- **内容描述**:夜晚的卧室,米娅戴着睡帽,坐在床上,对着窗外闪烁的星星许愿。
- **角色动作**:米娅双手合十,眼睛闭着,表情充满期待。
- **文本**:旁白“亲爱的小朋友,今天我要讲一个关于米娅和一棵神奇许愿树的故事。”
- **画面二(启动兴趣页面)**
- **内容描述**:夜晚辽阔的星空下,一棵根深蒂固的宏伟树木凸现在米娅的卧室窗外。
- **角色动作**:米娅的眼睛睁开了,充满好奇地凝视着窗外。
- **文本**:旁白“在米娅的花园里,有一棵不一样的树。它能听见孩子们的愿望。”
#### 故事发展:
- **画面三(故事起始)**
- **内容描述**:早晨,米娅在花园中接近许愿树。
- **角色动作**:米娅怀着敬仰,轻轻触摸树皮,树上的叶子发出轻微的银铃般响声。
- **文本**:“米娅,你的愿望是什么?”旁白问道,引出米娅的内心想法。
- **画面四(冲突/愿望页面)**
- **内容描述**:米娅思索,面前浮现出她的愿望——最想要的玩具、旅行的经历、和朋友们的欢乐时光。
- **角色动作**:米娅的眼神透露出困惑,她面临着选择。
- **文本**:旁白继续道,“要选择哪一个呢?”
#### 高潮:
- **画面五(决策页面)**
- **内容描述**:米娅闭上眼睛,深呼吸,她的周围环绕着幻想的光芒。
- **角色动作**:米娅显得更坚定,开口许下了她的愿望。
- **文本**:旁白“勇敢且真诚的心,让许愿树听见了。”
#### 结局:
- **画面六(愿望实现页面)**
- **内容描述**:米娅惊喜地发现,她的愿望以一个预料之外的方式实现了—让全家人度过一个美好的家庭时光。
- **角色动作**:米娅和家人在树下聚餐,她的脸上洋溢着幸福的微笑。
- **文本**:旁白“真正的愿望不总是你想的那样,有时,它们是你真正需要的。”
### 检查点:
- 确保画面和文本都充满童趣与魔法感。
- 制作草稿插画,检查是否适合目标儿童年龄段。
- 对分镜脚本和故事进行审查,确保易于理解、教育意义丰富、传递正能量。
完成以上工作后,我们将与插画师合作,继续完善《米娅的许愿树》的分镜头,并最终将故事带给孩子们。


