Shopify Tailwind Development Skill (Urtopia US)
0. 项目概览
此项目是一个高度定制的 Shopify 2.0 主题。
- •构建工具: Tailwind CSS (JIT mode)
- •核心前缀:
er-(例如er-container,er-block) - •JS 架构: Vanilla JS Web Components
1. 核心开发规则
CSS (Tailwind)
- •源文件:
tailwind.css(位于根目录) - •输出文件:
assets/tailwind.min.css(自动生成,勿改) - •命令:
npm run dev(同时启动 Shopify Theme Watch 和 Tailwind Watch) - •重要: 如果你添加了新的 Tailwind 类但没生效,检查是否忘记加
er-前缀,或者content配置未覆盖新文件路径。
JavaScript (Web Components)
项目广泛使用自定义元素。示例模板:
javascript
class MyCustomElement extends HTMLElement {
constructor() {
super();
this.init();
}
init() {
this.addEventListener('click', this.handleClick.bind(this));
}
handleClick() {
console.log('Clicked!');
}
}
customElements.define('my-custom-element', MyCustomElement);
可用工具函数 (assets/global.js):
- •
trapFocus(element): 用于弹窗打开时锁定焦点。 - •
removeTrapFocus(elementToFocus): 弹窗关闭时还原焦点。 - •
debounce(fn, wait): 性能优化。
Liquid & Schema
- •Image Picker: 始终支持
image_picker并配合image_url过滤器。 - •Looping: 使用
forloop.index生成唯一 ID。
2. 常见任务指南
任务:创建新 Section
- •在
sections/下创建.liquid文件。 - •编写 HTML 结构,使用
er-类名。 - •在文件底部定义
{% schema %}。 - •如果需要交互,定义一个 Web Component 并在 Schema 的
presets中由该 Section 引入(或全局引入)。
任务:修改 Header
- •不要直接修改
snippets/header-dropdown.liquid除非确定逻辑。 - •主入口是
sections/header.liquid。 - •注意
sticky-header自定义元素及其逻辑。
3. 调试与验证
- •样式问题: 检查 Chrome DevTools 中元素的 class 是否有
er-。 - •JS 报错: 检查
customElements.define命名是否包含连字符(kebab-case)。
4. 给 AI 的提示 (Trae/Cursor)
当你作为 AI 助手编写代码时:
- •自我纠正: 写完
class="flex"后立即改为class="er-flex"。 - •上下文意识到: 看到
pf-xxx.liquid文件时,提示用户这是 PageFly 文件,询问是否确定要修改。