@vojtaholik/create-static-kit 1.0.8 → 2.1.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/package.json +6 -34
- package/src/index.ts +41 -0
- package/template/blocks/feature-grid.block.html +28 -0
- package/template/blocks/feature-grid.block.ts +32 -0
- package/template/blocks/gen/feature-grid.render.ts +92 -0
- package/template/blocks/gen/hero.render.ts +79 -0
- package/template/blocks/gen/index.ts +4 -0
- package/template/blocks/gen/latest-posts.render.ts +114 -0
- package/template/blocks/gen/text-section.render.ts +69 -0
- package/template/blocks/hero.block.html +31 -0
- package/template/blocks/hero.block.ts +40 -0
- package/template/blocks/index.ts +46 -0
- package/template/blocks/latest-posts.block.html +38 -0
- package/template/blocks/latest-posts.block.ts +45 -0
- package/template/blocks/text-section.block.html +18 -0
- package/template/blocks/text-section.block.ts +25 -0
- package/template/package.json +21 -0
- package/template/public/css/styles.css +589 -0
- package/template/public/js/dev-overlay.js +366 -0
- package/template/public/js/index.js +35 -0
- package/template/public/sprite.svg +6 -0
- package/template/public/svg/magic-wand.svg +4 -0
- package/template/site/pages/about.page.ts +91 -0
- package/template/site/pages/base.html +38 -0
- package/template/site/pages/index.page.ts +107 -0
- package/template/site/pages/index.ts +16 -0
- package/template/static-kit.config.ts +10 -0
- package/template/tsconfig.json +23 -0
- package/bin/create-static-kit.js +0 -3
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -488
- package/templates/default/.cursor/rules/configuration.mdc +0 -20
- package/templates/default/.cursor/rules/figma-integration.mdc +0 -22
- package/templates/default/.cursor/rules/html-components.mdc +0 -24
- package/templates/default/.cursor/rules/html-pages.mdc +0 -22
- package/templates/default/.cursor/rules/inline-tailwind-to-bem-with-apply-directive.mdc +0 -218
- package/templates/default/.cursor/rules/project-overview.mdc +0 -30
- package/templates/default/.cursor/rules/public-assets.mdc +0 -22
- package/templates/default/.cursor/rules/scss-styles.mdc +0 -22
- package/templates/default/.cursor/rules/svg-icons.mdc +0 -22
- package/templates/default/.cursor/rules/typescript-js.mdc +0 -23
- package/templates/default/public/favicon.ico +0 -1
- package/templates/default/src/components/button.html +0 -1
- package/templates/default/src/components/feature-card.html +0 -8
- package/templates/default/src/components/footer.html +0 -5
- package/templates/default/src/components/navigation.html +0 -11
- package/templates/default/src/icons/ui/star.svg +0 -3
- package/templates/default/src/js/index.ts +0 -28
- package/templates/default/src/pages/about.html +0 -24
- package/templates/default/src/pages/index.html +0 -23
- package/templates/default/src/styles/main.scss +0 -210
- package/templates/default/tsconfig.json +0 -19
- package/templates/minimal/.cursor/rules/configuration.mdc +0 -20
- package/templates/minimal/.cursor/rules/figma-integration.mdc +0 -22
- package/templates/minimal/.cursor/rules/html-components.mdc +0 -24
- package/templates/minimal/.cursor/rules/html-pages.mdc +0 -22
- package/templates/minimal/.cursor/rules/inline-tailwind-to-bem-with-apply-directive.mdc +0 -218
- package/templates/minimal/.cursor/rules/project-overview.mdc +0 -30
- package/templates/minimal/.cursor/rules/public-assets.mdc +0 -22
- package/templates/minimal/.cursor/rules/scss-styles.mdc +0 -22
- package/templates/minimal/.cursor/rules/svg-icons.mdc +0 -22
- package/templates/minimal/.cursor/rules/typescript-js.mdc +0 -23
- package/templates/minimal/public/favicon.ico +0 -1
- package/templates/minimal/src/components/footer.html +0 -3
- package/templates/minimal/src/components/header.html +0 -6
- package/templates/minimal/src/js/index.ts +0 -9
- package/templates/minimal/src/pages/index.html +0 -15
- package/templates/minimal/src/styles/main.scss +0 -77
- package/templates/minimal/tsconfig.json +0 -19
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Static Kit configuration and build settings
|
|
3
|
-
globs: ["static-kit.config.json", "static-kit.local.json"]
|
|
4
|
-
alwaysApply: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Configuration
|
|
8
|
-
|
|
9
|
-
Global build configuration in `static-kit.config.json`. Local overrides go in `static-kit.local.json` (ignored by git).
|
|
10
|
-
|
|
11
|
-
## Configuration Files
|
|
12
|
-
|
|
13
|
-
- `static-kit.config.json` - Global build configuration
|
|
14
|
-
- `static-kit.local.json` - Local overrides (git ignored)
|
|
15
|
-
|
|
16
|
-
## Guidelines
|
|
17
|
-
|
|
18
|
-
- Keep global settings in main config
|
|
19
|
-
- Use local config for environment-specific overrides
|
|
20
|
-
- Local config is automatically ignored by git
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Figma MCP integration and design-to-dev workflow
|
|
3
|
-
globs: ["**/*.html"]
|
|
4
|
-
alwaysApply: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Figma Integration
|
|
8
|
-
|
|
9
|
-
For Figma MCP integration, component and page file names should match Figma node/component names for proper mapping.
|
|
10
|
-
|
|
11
|
-
## Design-to-Dev Workflow
|
|
12
|
-
|
|
13
|
-
- Component/page file names should match Figma node names
|
|
14
|
-
- Follow Static Kit conventions when generating from Figma designs
|
|
15
|
-
- Maintain consistent naming between design and code
|
|
16
|
-
- Use proper file placement per Static Kit rules
|
|
17
|
-
|
|
18
|
-
## Guidelines
|
|
19
|
-
|
|
20
|
-
- Generate HTML/SCSS from Figma following Static Kit conventions
|
|
21
|
-
- Ensure proper file placement in src/ directories
|
|
22
|
-
- Maintain design-code consistency through naming
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Reusable HTML components conventions
|
|
3
|
-
globs: ["src/components/**/*.html"]
|
|
4
|
-
alwaysApply: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# HTML Components
|
|
8
|
-
|
|
9
|
-
Reusable HTML components should follow specific naming and structure conventions.
|
|
10
|
-
|
|
11
|
-
## File Naming
|
|
12
|
-
|
|
13
|
-
- Use lowercase kebab-case for file names
|
|
14
|
-
- Examples: `button.html`, `ui/card.html`
|
|
15
|
-
|
|
16
|
-
## Structure Rules
|
|
17
|
-
|
|
18
|
-
- No `<html>` or `<body>` tags in components
|
|
19
|
-
- Keep components focused and reusable
|
|
20
|
-
- Place under `src/components/` directory
|
|
21
|
-
|
|
22
|
-
## Import Usage
|
|
23
|
-
|
|
24
|
-
Components should be imported using `@components/` prefix in pages.
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: HTML pages structure and import conventions
|
|
3
|
-
globs: ["src/pages/**/*.html"]
|
|
4
|
-
alwaysApply: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# HTML Pages
|
|
8
|
-
|
|
9
|
-
HTML pages go in `src/pages/` directory. Use `@components/` prefix for imports, not relative paths.
|
|
10
|
-
|
|
11
|
-
## Import Examples
|
|
12
|
-
|
|
13
|
-
```html
|
|
14
|
-
<!-- @import: @components/header.html -->
|
|
15
|
-
<!-- @import: @components/footer.html -->
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
## Guidelines
|
|
19
|
-
|
|
20
|
-
- Place all pages under `src/pages/` with correct folder structure
|
|
21
|
-
- Use `@components/` prefix for component imports
|
|
22
|
-
- Avoid relative imports unless absolutely necessary
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Convert inline Tailwind CSS utility classes to BEM-compliant @apply directives in CSS files
|
|
3
|
-
globs: ["**/*"]
|
|
4
|
-
alwaysApply: true
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Tailwind CSS v4 @apply Conversion Specialist
|
|
8
|
-
|
|
9
|
-
You are a Tailwind CSS v4 expert focused on converting inline utility classes to `@apply` directives in CSS files.
|
|
10
|
-
|
|
11
|
-
## Core Rules
|
|
12
|
-
|
|
13
|
-
### Tailwind CSS v4 Context
|
|
14
|
-
|
|
15
|
-
- Always use `@import "tailwindcss";` syntax (not the old v3 @tailwind directives)
|
|
16
|
-
- Understand that v4 uses CSS-first configuration and native CSS features
|
|
17
|
-
- Recognize that @apply works the same but the import syntax has changed
|
|
18
|
-
|
|
19
|
-
### @apply Conversion Guidelines
|
|
20
|
-
|
|
21
|
-
#### MANDATORY CONVERSION RULE
|
|
22
|
-
|
|
23
|
-
**ALWAYS convert inline utility classes to @apply when asked.** No exceptions, no questions, no debate about whether it's "worth it". If the user asks for conversion, you fucking do it.
|
|
24
|
-
|
|
25
|
-
#### BEM Naming Convention
|
|
26
|
-
|
|
27
|
-
**ALWAYS use BEM (Block Element Modifier) methodology for class names:**
|
|
28
|
-
|
|
29
|
-
- **Block**: `.card`, `.button`, `.navbar`
|
|
30
|
-
- **Element**: `.card__title`, `.card__content`, `.button__icon`
|
|
31
|
-
- **Modifier**: `.card--primary`, `.button--large`, `.navbar--mobile`
|
|
32
|
-
|
|
33
|
-
#### BEM Examples
|
|
34
|
-
|
|
35
|
-
```css
|
|
36
|
-
/* Block */
|
|
37
|
-
.card {
|
|
38
|
-
@apply bg-white rounded-lg shadow-md p-6;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/* Element */
|
|
42
|
-
.card__header {
|
|
43
|
-
@apply border-b border-gray-200 pb-4 mb-4;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.card__title {
|
|
47
|
-
@apply text-xl font-semibold text-gray-900;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.card__content {
|
|
51
|
-
@apply text-gray-600 leading-relaxed;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/* Modifier */
|
|
55
|
-
.card--primary {
|
|
56
|
-
@apply border-l-4 border-blue-500;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
.card--error {
|
|
60
|
-
@apply border-l-4 border-red-500 bg-red-50;
|
|
61
|
-
}
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
#### Conversion Rules
|
|
65
|
-
|
|
66
|
-
- **User request = immediate conversion** (no questioning)
|
|
67
|
-
- Convert ANY utility classes when user requests it
|
|
68
|
-
- Create BEM-compliant class names that describe component structure
|
|
69
|
-
- Group related properties logically in @apply statements
|
|
70
|
-
- Preserve responsive/state variants when complex
|
|
71
|
-
|
|
72
|
-
#### Conversion Process
|
|
73
|
-
|
|
74
|
-
1. **Identify the component structure**: Determine Block, Elements, and Modifiers
|
|
75
|
-
2. **Create BEM class names**: Use semantic names that describe purpose and hierarchy
|
|
76
|
-
3. **Group logically**: Organize related properties together in @apply statements
|
|
77
|
-
4. **Preserve responsive/state variants**: Keep complex variants inline if needed
|
|
78
|
-
|
|
79
|
-
#### Best Practices
|
|
80
|
-
|
|
81
|
-
```css
|
|
82
|
-
/* ✅ Good: BEM naming with logical grouping */
|
|
83
|
-
.card {
|
|
84
|
-
@apply bg-white rounded-lg shadow-md;
|
|
85
|
-
@apply p-6 border border-gray-200;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
.card--primary {
|
|
89
|
-
@apply border-l-4 border-blue-500;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
.button {
|
|
93
|
-
@apply text-white font-medium px-4 py-2 rounded-md;
|
|
94
|
-
@apply transition-colors duration-200;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
.button--primary {
|
|
98
|
-
@apply bg-blue-500 hover:bg-blue-600;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
.button__icon {
|
|
102
|
-
@apply mr-2 w-4 h-4;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/* ❌ Bad: Non-BEM naming */
|
|
106
|
-
.blue-rounded {
|
|
107
|
-
@apply bg-blue-500 rounded-md;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/* ❌ Bad: Non-semantic naming */
|
|
111
|
-
.margin-top {
|
|
112
|
-
@apply mt-4;
|
|
113
|
-
}
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
#### Handling Complex Cases
|
|
117
|
-
|
|
118
|
-
- **Responsive variants**: Keep complex responsive logic inline, abstract base styles
|
|
119
|
-
- **State variants**: Group base styles in @apply, keep interactive states inline when complex
|
|
120
|
-
- **Component variants**: Create separate classes for different component states
|
|
121
|
-
|
|
122
|
-
#### File Organization
|
|
123
|
-
|
|
124
|
-
- Place @apply styles in the same file as the `@import "tailwindcss";`
|
|
125
|
-
- Group related component styles together
|
|
126
|
-
- Use comments to organize sections
|
|
127
|
-
- Follow this structure:
|
|
128
|
-
|
|
129
|
-
```css
|
|
130
|
-
@import "tailwindcss";
|
|
131
|
-
|
|
132
|
-
/* Base component styles */
|
|
133
|
-
.card {
|
|
134
|
-
/* ... */
|
|
135
|
-
}
|
|
136
|
-
.button {
|
|
137
|
-
/* ... */
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/* Layout components */
|
|
141
|
-
.container {
|
|
142
|
-
/* ... */
|
|
143
|
-
}
|
|
144
|
-
.grid-layout {
|
|
145
|
-
/* ... */
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/* Utility combinations */
|
|
149
|
-
.form-input {
|
|
150
|
-
/* ... */
|
|
151
|
-
}
|
|
152
|
-
.error-text {
|
|
153
|
-
/* ... */
|
|
154
|
-
}
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
### Conversion Examples
|
|
158
|
-
|
|
159
|
-
#### Before (inline classes):
|
|
160
|
-
|
|
161
|
-
```html
|
|
162
|
-
<div
|
|
163
|
-
class="bg-white rounded-lg shadow-md p-6 border border-gray-200 hover:shadow-lg transition-shadow"
|
|
164
|
-
>
|
|
165
|
-
<h2 class="text-xl font-semibold text-gray-900 mb-4">Card Title</h2>
|
|
166
|
-
<p class="text-gray-600 leading-relaxed">Card content</p>
|
|
167
|
-
</div>
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
#### After (with @apply and BEM):
|
|
171
|
-
|
|
172
|
-
```css
|
|
173
|
-
.card {
|
|
174
|
-
@apply bg-white rounded-lg shadow-md p-6 border border-gray-200;
|
|
175
|
-
@apply hover:shadow-lg transition-shadow;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
.card__title {
|
|
179
|
-
@apply text-xl font-semibold text-gray-900 mb-4;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
.card__content {
|
|
183
|
-
@apply text-gray-600 leading-relaxed;
|
|
184
|
-
}
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
```html
|
|
188
|
-
<div class="card">
|
|
189
|
-
<h2 class="card__title">Card Title</h2>
|
|
190
|
-
<p class="card__content">Card content</p>
|
|
191
|
-
</div>
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
### Action Instructions
|
|
195
|
-
|
|
196
|
-
When converting (MANDATORY when asked):
|
|
197
|
-
|
|
198
|
-
1. **Analyze the HTML/JSX** for component structure and hierarchy
|
|
199
|
-
2. **Create BEM class names** following Block\_\_Element--Modifier pattern
|
|
200
|
-
3. **Show the CSS @apply implementation** with proper BEM organization
|
|
201
|
-
4. **Provide the updated HTML** with new BEM class names
|
|
202
|
-
5. **Explain the BEM structure** and benefits of the conversion
|
|
203
|
-
|
|
204
|
-
Always prioritize:
|
|
205
|
-
|
|
206
|
-
- **BEM naming convention** (Block\_\_Element--Modifier)
|
|
207
|
-
- **Mandatory conversion** when user requests it
|
|
208
|
-
- **Component hierarchy** in naming structure
|
|
209
|
-
- **Logical grouping** of related properties in @apply statements
|
|
210
|
-
- **Semantic naming** that describes purpose and structure
|
|
211
|
-
|
|
212
|
-
### TypeScript Integration
|
|
213
|
-
|
|
214
|
-
When working with TypeScript projects, consider:
|
|
215
|
-
|
|
216
|
-
- Type-safe class name patterns
|
|
217
|
-
- Component prop interfaces for style variants
|
|
218
|
-
- Utility types for consistent naming conventions
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Static Kit project overview and general guidelines
|
|
3
|
-
globs: ["**/*"]
|
|
4
|
-
alwaysApply: true
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Static Kit Framework
|
|
8
|
-
|
|
9
|
-
Static site framework with TypeScript, SCSS, and HTML imports. Integrated with Figma MCP for design-to-dev workflow.
|
|
10
|
-
|
|
11
|
-
## Core Principles
|
|
12
|
-
|
|
13
|
-
- Use `@components/` prefix for imports, not relative paths
|
|
14
|
-
- Follow lowercase kebab-case naming for files
|
|
15
|
-
- Keep modules isolated and modular
|
|
16
|
-
- Maintain clean separation between pages, components, and styles
|
|
17
|
-
|
|
18
|
-
## Git Conventions
|
|
19
|
-
|
|
20
|
-
### Commit Message Conventions
|
|
21
|
-
|
|
22
|
-
- `feat: new component/page`
|
|
23
|
-
- `style: scss changes`
|
|
24
|
-
- `fix: bugfix`
|
|
25
|
-
- `design-sync: figma-linked update`
|
|
26
|
-
|
|
27
|
-
### Ignored Files
|
|
28
|
-
|
|
29
|
-
- `dist/` - Build output
|
|
30
|
-
- `static-kit.local.json` - Local configuration overrides
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Public assets organization and handling
|
|
3
|
-
globs: ["public/**/*"]
|
|
4
|
-
alwaysApply: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Public Assets
|
|
8
|
-
|
|
9
|
-
Static assets copied directly to dist/ with no processing. Organize into logical folders.
|
|
10
|
-
|
|
11
|
-
## Organization
|
|
12
|
-
|
|
13
|
-
- `public/images/` - Image assets
|
|
14
|
-
- `public/fonts/` - Font files
|
|
15
|
-
- `public/` - Other static assets
|
|
16
|
-
|
|
17
|
-
## Guidelines
|
|
18
|
-
|
|
19
|
-
- Assets are copied as-is to dist/
|
|
20
|
-
- No build-time processing
|
|
21
|
-
- Organize into meaningful subdirectories
|
|
22
|
-
- Reference in development as `/<filename>` (no 'public' prefix needed)
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: SCSS styling conventions and import structure
|
|
3
|
-
globs: ["src/styles/**/*.scss"]
|
|
4
|
-
alwaysApply: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# SCSS Styles
|
|
8
|
-
|
|
9
|
-
SCSS entrypoint is `src/styles/main.scss`. Component styles should be imported into main.scss.
|
|
10
|
-
|
|
11
|
-
## Import Structure
|
|
12
|
-
|
|
13
|
-
```scss
|
|
14
|
-
@import "./components/button.scss";
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Guidelines
|
|
18
|
-
|
|
19
|
-
- Main entrypoint: `src/styles/main.scss`
|
|
20
|
-
- Import component styles into main.scss
|
|
21
|
-
- Follow modular SCSS architecture
|
|
22
|
-
- Keep component styles organized and focused
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: SVG icon naming and sprite conventions
|
|
3
|
-
globs: ["src/icons/**/*.svg"]
|
|
4
|
-
alwaysApply: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# SVG Icons
|
|
8
|
-
|
|
9
|
-
SVG icons should use lowercase-kebab-case naming. Folder structure defines sprite ID namespace.
|
|
10
|
-
|
|
11
|
-
## Naming Convention
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
src/icons/ui/arrow.svg → <use href="/sprite.svg#ui-arrow"></use>
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Guidelines
|
|
18
|
-
|
|
19
|
-
- Use lowercase kebab-case for icon names
|
|
20
|
-
- Folder structure creates namespace (ui/, social/, etc.)
|
|
21
|
-
- Icons are compiled into sprite.svg
|
|
22
|
-
- Reference using sprite ID format: `namespace-iconname`
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: TypeScript and JavaScript module conventions
|
|
3
|
-
globs: ["src/js/**/*.ts", "src/js/**/*.js"]
|
|
4
|
-
alwaysApply: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# TypeScript/JavaScript Modules
|
|
8
|
-
|
|
9
|
-
Component-specific scripts go in `src/js/components/`. Keep modules isolated with no bundler-only imports.
|
|
10
|
-
|
|
11
|
-
## File Organization
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
src/js/components/modal.ts
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Guidelines
|
|
18
|
-
|
|
19
|
-
- Place component scripts in `src/js/components/`
|
|
20
|
-
- Keep modules isolated and modular
|
|
21
|
-
- Avoid bundler-only patterns
|
|
22
|
-
- Use effective TypeScript for library-style code
|
|
23
|
-
- Maintain clean module boundaries
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# Empty favicon placeholder
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
// Main JavaScript entry point
|
|
2
|
-
// This file is automatically included in every page
|
|
3
|
-
|
|
4
|
-
console.log("Static Kit is ready! 🚀");
|
|
5
|
-
|
|
6
|
-
// Example: Add some interactivity
|
|
7
|
-
document.addEventListener("DOMContentLoaded", () => {
|
|
8
|
-
console.log("DOM loaded and ready");
|
|
9
|
-
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
<!-- @import: @components/header.html -->
|
|
2
|
-
|
|
3
|
-
<main>
|
|
4
|
-
<h1>Welcome to Static Kit</h1>
|
|
5
|
-
<p>A simple, no-bullshit static site framework.</p>
|
|
6
|
-
|
|
7
|
-
<section>
|
|
8
|
-
<h2>Getting Started</h2>
|
|
9
|
-
<p>Edit this file at <code>src/pages/index.html</code> to get started.</p>
|
|
10
|
-
<p>Create new components in <code>src/components/</code> and import them with:</p>
|
|
11
|
-
<pre><code><!-- @import: @components/your-component.html --></code></pre>
|
|
12
|
-
</section>
|
|
13
|
-
</main>
|
|
14
|
-
|
|
15
|
-
<!-- @import: @components/footer.html -->
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
body {
|
|
2
|
-
font-family: system-ui, sans-serif;
|
|
3
|
-
line-height: 1.6;
|
|
4
|
-
margin: 0;
|
|
5
|
-
padding: 0;
|
|
6
|
-
color: #333;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
header {
|
|
10
|
-
background: #f8f9fa;
|
|
11
|
-
padding: 1rem;
|
|
12
|
-
border-bottom: 1px solid #e5e7eb;
|
|
13
|
-
|
|
14
|
-
nav {
|
|
15
|
-
display: flex;
|
|
16
|
-
gap: 1rem;
|
|
17
|
-
|
|
18
|
-
a {
|
|
19
|
-
text-decoration: none;
|
|
20
|
-
color: #0066cc;
|
|
21
|
-
|
|
22
|
-
&:hover {
|
|
23
|
-
text-decoration: underline;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
main {
|
|
30
|
-
max-width: 800px;
|
|
31
|
-
margin: 0 auto;
|
|
32
|
-
padding: 2rem 1rem;
|
|
33
|
-
|
|
34
|
-
h1 {
|
|
35
|
-
color: #1f2937;
|
|
36
|
-
margin-bottom: 0.5rem;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
section {
|
|
40
|
-
margin-top: 2rem;
|
|
41
|
-
|
|
42
|
-
h2 {
|
|
43
|
-
color: #374151;
|
|
44
|
-
margin-bottom: 1rem;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
code {
|
|
49
|
-
background: #f3f4f6;
|
|
50
|
-
padding: 0.2rem 0.4rem;
|
|
51
|
-
border-radius: 0.25rem;
|
|
52
|
-
font-size: 0.875rem;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
pre {
|
|
56
|
-
background: #1f2937;
|
|
57
|
-
color: #f9fafb;
|
|
58
|
-
padding: 1rem;
|
|
59
|
-
border-radius: 0.5rem;
|
|
60
|
-
overflow-x: auto;
|
|
61
|
-
|
|
62
|
-
code {
|
|
63
|
-
background: none;
|
|
64
|
-
padding: 0;
|
|
65
|
-
color: inherit;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
footer {
|
|
71
|
-
background: #f8f9fa;
|
|
72
|
-
text-align: center;
|
|
73
|
-
padding: 2rem 1rem;
|
|
74
|
-
margin-top: 3rem;
|
|
75
|
-
border-top: 1px solid #e5e7eb;
|
|
76
|
-
color: #6b7280;
|
|
77
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2020",
|
|
4
|
-
"useDefineForClassFields": true,
|
|
5
|
-
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
6
|
-
"module": "ESNext",
|
|
7
|
-
"skipLibCheck": true,
|
|
8
|
-
"moduleResolution": "bundler",
|
|
9
|
-
"allowImportingTsExtensions": true,
|
|
10
|
-
"resolveJsonModule": true,
|
|
11
|
-
"isolatedModules": true,
|
|
12
|
-
"noEmit": true,
|
|
13
|
-
"strict": true,
|
|
14
|
-
"noUnusedLocals": true,
|
|
15
|
-
"noUnusedParameters": true,
|
|
16
|
-
"noFallthroughCasesInSwitch": true
|
|
17
|
-
},
|
|
18
|
-
"include": ["src"]
|
|
19
|
-
}
|