chore: add readme
This commit is contained in:
@@ -0,0 +1,158 @@
|
||||
# create-ezpplauncher-theme
|
||||
|
||||
A CLI tool to scaffold a new **EZPPLauncher theme** using a modern Svelte + Vite setup.
|
||||
|
||||
It generates a ready-to-use theme project with assets, build pipeline, and launcher integration support.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Usage
|
||||
|
||||
Run directly via Git using `npx`:
|
||||
|
||||
```bash
|
||||
npx git+https://git.ez-pp.farm/EZPPFarm/create-ezpplauncher-theme.git <theme-name>
|
||||
```
|
||||
|
||||
### Example
|
||||
|
||||
```bash
|
||||
npx git+https://git.ez-pp.farm/EZPPFarm/create-ezpplauncher-theme.git my-theme
|
||||
```
|
||||
|
||||
This creates a new theme in:
|
||||
|
||||
```
|
||||
./my-theme
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✨ Features
|
||||
|
||||
* ⚡ Svelte-based UI (`App.svelte`)
|
||||
* 🎨 Fully customizable layout & animations
|
||||
* 🎵 Built-in audio & media asset support
|
||||
* 🧱 Modular component structure
|
||||
* 🛠 Vite-powered build pipeline
|
||||
* 📦 Theme packaging via `npm run build`
|
||||
---
|
||||
|
||||
## 📁 Project Structure
|
||||
|
||||
```
|
||||
/
|
||||
├── public/assets/ # Static assets (audio, images, gifs)
|
||||
│ ├── audio.mp3
|
||||
│ ├── dance.gif
|
||||
│ └── preview.png # Preview image displayed in the launcher
|
||||
├── src/
|
||||
│ ├── lib/ # Reusable utilities/components
|
||||
│ ├── App.svelte # Main UI entry
|
||||
│ ├── main.ts
|
||||
│ └── types.ts
|
||||
├── index.html
|
||||
├── theme.json # Theme metadata/config
|
||||
├── build-theme.ts # Build & packaging script, ran via `npm run build`
|
||||
├── vite.config.ts
|
||||
├── tsconfig.json
|
||||
└── package.json
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎨 Customization
|
||||
|
||||
### `App.svelte` (Main UI)
|
||||
|
||||
This is the core of your theme. You can:
|
||||
|
||||
* Use full Svelte syntax
|
||||
* Import custom components
|
||||
* Play audio and display media assets
|
||||
|
||||
### Example
|
||||
|
||||
```svelte
|
||||
<script lang="ts">
|
||||
import { asset } from "./lib/assets";
|
||||
import type { EZPPLauncherThemeAPI } from "./types";
|
||||
|
||||
const props: { api: EZPPLauncherThemeAPI } = $props();
|
||||
</script>
|
||||
|
||||
<div class="w-full h-full flex flex-col items-center justify-center">
|
||||
<audio src={asset(props.api, "audio.mp3")} loop autoplay></audio>
|
||||
<img src={asset(props.api, "dance.gif")} alt="Dance" />
|
||||
</div>
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📦 Assets
|
||||
|
||||
Place all static files here:
|
||||
|
||||
```
|
||||
public/assets/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Theme Configuration
|
||||
|
||||
Edit `theme.json` to define:
|
||||
|
||||
* Theme name
|
||||
* Author
|
||||
* Version
|
||||
|
||||
---
|
||||
|
||||
## 🛠 Development
|
||||
|
||||
### Start development server
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### Build theme
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
or manually:
|
||||
|
||||
```bash
|
||||
node build-theme.ts
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎨 Testing your theme
|
||||
|
||||
Just extract the generated .ezpplauncher-theme file using any unzip tool and place the files into `C:\Users\<your-username>\.ezpplauncher\themes\<your-theme>`
|
||||
|
||||
---
|
||||
|
||||
## 💡 Tips
|
||||
|
||||
* Optimize assets (especially audio/video)
|
||||
* Keep reusable logic inside `src/lib`
|
||||
* Prefer lightweight GIFs or compressed media for performance
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ Notes
|
||||
|
||||
* This package is **not published on npm**
|
||||
* Must be executed via:
|
||||
|
||||
```bash
|
||||
npx git+https://git.ez-pp.farm/EZPPFarm/create-ezpplauncher-theme.git <theme-name>
|
||||
```
|
||||
* Requires Node.js
|
||||
* Designed specifically for EZPPLauncher themes
|
||||
Reference in New Issue
Block a user