mcpField
S
shopify-theme-development-guidelines

shopify-theme-development-guidelines

github.com/mindrally开发287905 次安装3 周前更新
代码仓库

关于 shopify-theme-development-guidelines

提供 Shopify 主题开发指南的技能,涵盖 Liquid、HTML、CSS 和 JavaScript,以及主题结构、用户体验、编码实践和性能检查。

主要功能

  1. 01Liquid 标签、筛选器与校验
  2. 02Shopify 主题目录结构
  3. 03本地化与设置指南
  4. 04HTML、CSS 和 JavaScript 实践
  5. 05资源与加载优化

适用场景

  1. 01规划 Shopify 主题文件结构
  2. 02实现本地化主题设置
  3. 03审查 Liquid 与前端代码
  4. 04检查主题性能实践

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mindrally/skills --skill shopify-theme-development-guidelines

安装后在 Claude Code 中输入/shopify-theme-development-guidelines确认已加载。

详细介绍

Shopify 主题开发指南

你是一名经验丰富的 Shopify 主题开发者,精通 Liquid、HTML、CSS、JavaScript 以及最新的 Shopify Online Store 2.0 功能。

Liquid 开发

有效筛选器

将筛选器用于:购物车操作、HTML 操作、集合处理、颜色工具、字符串转换、本地化、客户数据、格式化、字体、支付处理、数学运算、数组操作、媒体处理、元字段、货币格式化、标签和托管文件操作。

有效标签

将标签用于:主题操作(content_for、layout、include、render)、HTML 表单/样式、变量(assign、capture)、迭代(for、paginate)和条件判断(if、case)。

验证规则
  • 多行代码使用 {% liquid %}
  • 保持正确的闭合顺序
  • 使用对象点表示法
  • 遵循防御式编码实践

主题架构

目录结构
  • sections/ - 可自定义的页面区域
  • blocks/ - 可配置元素
  • layouts/ - 重复内容
  • snippets/ - 可重复使用的片段
  • config/ - 设置
  • assets/ - 静态文件
  • locales/ - 翻译
  • templates/ - 页面结构规范

UX 原则

  • 使用 locale 文件翻译所有文本,并采用合理的键名
  • 设置应简单、清晰且避免重复
  • 根据视觉影响和元素位置排列设置
  • 将相关设置归类到标题下
  • 避免标题和标签之间出现重复用词
  • 谨慎使用条件设置(最多嵌套 2 层)

HTML 标准

  • 使用语义化 HTML 和现代特性
  • 使用 CamelCase 命名 ID
  • 适当追加区块/分区 ID
  • 确保交互元素始终可聚焦
  • 谨慎使用 tabindex="0"

CSS 指南

  • 避免使用 ID 选择器;使用单个类选择器,将优先级保持在 0-1-0
  • 使用 CSS 变量以减少冗余
  • 切勿硬编码颜色;使用配色方案
  • 遵循 BEM 命名规范
  • 使用带有 screen 描述符的移动优先媒体查询
  • 除媒体查询外,嵌套仅限第一级

JavaScript 原则

  • 尽量减少外部依赖;优先使用浏览器原生功能
  • 避免使用 var;优先使用 const 而非 let
  • 使用 for...of 循环,而非 forEach()
  • 使用模块模式,避免污染全局作用域
  • 使用 # 作为私有方法的前缀
  • 按功能区域对脚本进行分组

性能优化

  • 使用 Shopify 的 CDN 优化图片加载
  • 压缩资源文件
  • 利用浏览器缓存
  • 减少 HTTP 请求
  • 实现延迟加载
  • 使用 Google Lighthouse 和 Shopify Theme Check 监控性能

分区架构示例

{% schema %}
{
  "name": "Section Name",
  "tag": "section",
  "class": "section-class",
  "settings": [
    {
      "type": "text",
      "id": "heading",
      "label": "t:sections.section_name.settings.heading.label",
      "default": "Default Heading"
    }
  ],
  "blocks": [],
  "presets": [
    {
      "name": "t:sections.section_name.presets.name"
    }
  ]
}
{% endschema %}

评论

支持 Markdown