@spwig/theme-cli 1.1.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/README.md +0 -0
- package/dist/cli.d.ts +0 -0
- package/dist/cli.d.ts.map +0 -0
- package/dist/cli.js +4 -30
- package/dist/cli.js.map +1 -1
- package/dist/commands/component.d.ts +0 -0
- package/dist/commands/component.d.ts.map +0 -0
- package/dist/commands/component.js +0 -0
- package/dist/commands/component.js.map +0 -0
- package/dist/commands/dev.d.ts +0 -0
- package/dist/commands/dev.d.ts.map +0 -0
- package/dist/commands/dev.js +2 -2
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/init.d.ts +5 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +80 -115
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/package.d.ts +0 -0
- package/dist/commands/package.d.ts.map +1 -1
- package/dist/commands/package.js +0 -2
- package/dist/commands/package.js.map +1 -1
- package/dist/commands/validate.d.ts +1 -2
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +10 -112
- package/dist/commands/validate.js.map +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/schemas/component_manifest_schema.json +0 -0
- package/dist/schemas/theme_manifest_schema.json +5 -63
- package/dist/templates/assets/logo.svg.template +6 -0
- package/dist/templates/assets/theme.js.template +150 -0
- package/dist/templates/components/blank.template.html.template +0 -0
- package/dist/templates/components/footer.manifest.json.template +0 -0
- package/dist/templates/components/footer.schema.json.template +22 -0
- package/dist/templates/components/footer.styles.css.template +80 -0
- package/dist/templates/components/footer.template.html.template +0 -0
- package/dist/templates/components/header.manifest.json.template +0 -0
- package/dist/templates/components/header.schema.json.template +0 -0
- package/dist/templates/components/header.styles.css.template +104 -0
- package/dist/templates/components/header.template.html.template +0 -0
- package/dist/templates/components/schema.json.template +0 -0
- package/dist/templates/components/section.manifest.json.template +2 -2
- package/dist/templates/components/section.schema.json.template +40 -0
- package/dist/templates/components/section.styles.css.template +60 -0
- package/dist/templates/components/section.template.html.template +0 -0
- package/dist/templates/components/utility.manifest.json.template +0 -0
- package/dist/templates/pages/cart.html.template +104 -0
- package/dist/templates/pages/collection.html.template +86 -0
- package/dist/templates/pages/home.html.template +51 -0
- package/dist/templates/pages/layout.html.template +48 -0
- package/dist/templates/pages/product.html.template +90 -0
- package/dist/templates/presets/footer.json.template +16 -0
- package/dist/templates/presets/header.json.template +16 -0
- package/dist/templates/theme/README.md.template +51 -21
- package/dist/templates/theme/design_tokens.json.template +0 -0
- package/dist/templates/theme/manifest.json.template +6 -28
- package/dist/templates/theme/tokens.json.template +1254 -0
- package/dist/utils/file-system.d.ts +0 -0
- package/dist/utils/file-system.d.ts.map +0 -0
- package/dist/utils/file-system.js +0 -0
- package/dist/utils/file-system.js.map +0 -0
- package/dist/utils/validation.d.ts +0 -0
- package/dist/utils/validation.d.ts.map +0 -0
- package/dist/utils/validation.js +0 -0
- package/dist/utils/validation.js.map +0 -0
- package/package.json +2 -2
- package/schemas/theme_manifest_schema.json +5 -63
- package/schemas/component_manifest_schema.json +0 -221
|
@@ -6,54 +6,84 @@
|
|
|
6
6
|
|
|
7
7
|
- **Author**: {{author}}
|
|
8
8
|
- **Version**: 1.0.0
|
|
9
|
+
- **SDK Version**: 2.0
|
|
9
10
|
- **License**: {{license}}
|
|
11
|
+
- **Min Platform Version**: 2.0.0
|
|
10
12
|
|
|
11
13
|
## Features
|
|
12
14
|
|
|
13
15
|
- Responsive design optimized for all devices
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
16
|
+
- Mobile-first approach
|
|
17
|
+
- Fully customizable via design tokens
|
|
18
|
+
- Header and footer presets included
|
|
17
19
|
- Accessible and SEO-friendly
|
|
18
20
|
|
|
21
|
+
## Theme Structure
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
{{themeName}}/
|
|
25
|
+
├── manifest.json # Theme metadata and configuration
|
|
26
|
+
├── tokens.json # Design tokens (colors, typography, spacing, etc.)
|
|
27
|
+
├── presets/
|
|
28
|
+
│ ├── header.json # Default header layout preset
|
|
29
|
+
│ └── footer.json # Default footer layout preset
|
|
30
|
+
├── css/
|
|
31
|
+
│ └── theme.css # Custom CSS overrides (optional)
|
|
32
|
+
├── preview.png # Theme preview image
|
|
33
|
+
└── README.md
|
|
34
|
+
```
|
|
35
|
+
|
|
19
36
|
## Development
|
|
20
37
|
|
|
21
38
|
```bash
|
|
22
|
-
# Start development server
|
|
39
|
+
# Start development server with live preview
|
|
23
40
|
spwig dev
|
|
24
41
|
|
|
25
|
-
# Validate theme
|
|
42
|
+
# Validate theme structure and tokens
|
|
26
43
|
spwig validate
|
|
27
44
|
|
|
28
45
|
# Package for distribution
|
|
29
46
|
spwig package
|
|
30
47
|
```
|
|
31
48
|
|
|
32
|
-
##
|
|
49
|
+
## Customization
|
|
33
50
|
|
|
34
|
-
|
|
51
|
+
### Design Tokens
|
|
35
52
|
|
|
36
|
-
|
|
37
|
-
- **Default Footer** - Site footer with links
|
|
38
|
-
- **Hero Section** - Eye-catching hero banner
|
|
53
|
+
The `tokens.json` file is the primary deliverable of your theme. It controls every visual aspect of the storefront:
|
|
39
54
|
|
|
40
|
-
|
|
55
|
+
- **Colors** - Primary, secondary, accent, text, backgrounds, borders, status colors
|
|
56
|
+
- **Typography** - Font families, sizes, weights, line heights, letter spacing
|
|
57
|
+
- **Spacing** - Consistent spacing scale used throughout the layout
|
|
58
|
+
- **Borders** - Border widths and radius values
|
|
59
|
+
- **Shadows** - Elevation levels from subtle to prominent
|
|
60
|
+
- **Transitions** - Animation durations and easing functions
|
|
61
|
+
- **Breakpoints** - Responsive design breakpoints
|
|
62
|
+
- **Z-Index** - Layering system for overlapping elements
|
|
63
|
+
- **Container** - Max width and padding for page content
|
|
64
|
+
- **Menu** - Navigation styling and behavior
|
|
65
|
+
- **Header** - Header zones, backgrounds, text colors, and per-layout-type overrides
|
|
66
|
+
- **Footer** - Footer zones, backgrounds, text colors
|
|
67
|
+
- **Search** - Search input, button, and dropdown styling
|
|
68
|
+
- **Buttons** - Primary, secondary, neutral, and danger button variants (solid, outline, ghost)
|
|
69
|
+
- **Cards** - Default, elevated, bordered, and minimal card variants
|
|
70
|
+
- **Elements** - Hero, heading, body text, form, product card, gallery, modal, and more
|
|
71
|
+
- **Widgets** - Account, cart, logo, language, currency, announcement, newsletter, social, links, text, payment, trust badges, contact
|
|
41
72
|
|
|
42
|
-
|
|
73
|
+
Edit `tokens.json` to customize any of these values. The platform converts tokens into CSS custom properties automatically.
|
|
74
|
+
|
|
75
|
+
### Header & Footer Presets
|
|
43
76
|
|
|
44
|
-
|
|
77
|
+
The `presets/` directory contains default header and footer configurations:
|
|
45
78
|
|
|
46
|
-
|
|
79
|
+
- **header.json** - Defines the header layout type, sticky behavior, zone layout, and widget placements
|
|
80
|
+
- **footer.json** - Defines the footer layout type, zone layout, and widget placements
|
|
47
81
|
|
|
48
|
-
|
|
49
|
-
- `manifest.json` - Component configuration
|
|
50
|
-
- `template.html` - Component template
|
|
51
|
-
- `schema.json` - Component settings schema
|
|
52
|
-
- `styles.css` - Component styles (optional)
|
|
82
|
+
These presets are applied when a merchant activates your theme, giving them a ready-to-use layout that matches your design vision.
|
|
53
83
|
|
|
54
|
-
###
|
|
84
|
+
### Custom CSS (Optional)
|
|
55
85
|
|
|
56
|
-
|
|
86
|
+
For advanced customization beyond tokens, add a `css/theme.css` file. This CSS is loaded after the token-generated styles and can override specific rules.
|
|
57
87
|
|
|
58
88
|
## Support
|
|
59
89
|
|
|
File without changes
|
|
@@ -1,40 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "{{themeName}}",
|
|
3
3
|
"version": "1.0.0",
|
|
4
|
+
"sdk_version": "2.0",
|
|
4
5
|
"display_name": "{{displayName}}",
|
|
5
6
|
"description": "{{description}}",
|
|
6
7
|
"author": "{{author}}",
|
|
7
8
|
"license": "{{license}}",
|
|
8
|
-
"
|
|
9
|
-
{
|
|
10
|
-
"type": "header",
|
|
11
|
-
"name": "default_header",
|
|
12
|
-
"path": "components/headers/default_header"
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"type": "footer",
|
|
16
|
-
"name": "default_footer",
|
|
17
|
-
"path": "components/footers/default_footer"
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
"type": "section",
|
|
21
|
-
"name": "hero_section",
|
|
22
|
-
"path": "components/sections/hero_section"
|
|
23
|
-
}
|
|
24
|
-
],
|
|
25
|
-
"page_schemas": {
|
|
26
|
-
"home": "pages/home.json",
|
|
27
|
-
"product": "pages/product.json",
|
|
28
|
-
"collection": "pages/collection.json",
|
|
29
|
-
"cart": "pages/cart.json"
|
|
30
|
-
},
|
|
31
|
-
"design_tokens": "design_tokens.json",
|
|
9
|
+
"min_platform_version": "2.0.0",
|
|
32
10
|
"tags": ["ecommerce", "modern"],
|
|
33
11
|
"categories": ["general"],
|
|
34
12
|
"features": [
|
|
35
13
|
"Responsive design",
|
|
36
|
-
"
|
|
37
|
-
"Customizable
|
|
38
|
-
|
|
39
|
-
|
|
14
|
+
"Mobile-first",
|
|
15
|
+
"Customizable via design tokens"
|
|
16
|
+
],
|
|
17
|
+
"preview_image": "preview.png"
|
|
40
18
|
}
|