feat: restructure project and update documentation

This commit is contained in:
2026-03-22 01:10:30 +01:00
parent 07d1fb0060
commit b95af97596
148 changed files with 3707 additions and 20260 deletions

View File

@@ -0,0 +1,76 @@
# Getting Started
**SigPro** is a lightweight, atomic reactive engine designed to build modern web interfaces with zero overhead. It focuses on high performance through fine-grained reactivity.
## 1. Installation
You can install SigPro via your favorite package manager:
::: code-group
```bash [npm]
npm install SigPro
````
```bash [pnpm]
pnpm add SigPro
```
```bash [yarn]
yarn add SigPro
```
```bash [bun]
bun add SigPro
```
:::
## 2\. Basic Usage
The core of SigPro is the `$` function, which creates reactive state (Signals) and computed effects.
Create a `main.js` file and try this:
```javascript
import { $ } from 'SigPro';
// 1. Create a reactive signal
const $name = $("World");
// 2. Define a reactive component
const App = () => div({ class: 'container' }, [
h1(["Hello, ", $name, "!"]),
input({
type: 'text',
$value: $name, // Two-way binding
placeholder: 'Enter your name...'
}),
button({
onclick: () => $name("SigPro")
}, "Set to SigPro")
]);
// 3. Mount the application
$.mount(App, '#app');
```
## 3\. How it Works
SigPro doesn't use a Virtual DOM. Instead, it creates real DOM nodes and binds them directly to your data:
1. **Signals**: `$(value)` creates a getter/setter function.
2. **Reactivity**: When you pass a signal or a function to a DOM element, SigPro automatically creates a subscription.
3. **Fine-Grained Updates**: Only the specific text node or attribute linked to the signal updates when the value changes.
## 4\. Global Tags
By default, SigPro exports common HTML tags to the global scope (`window`) when initialized. This allows you to write clean, declarative UI without importing every single tag:
```javascript
// Instead of $.html('div', ...), just use:
div([
h1("Clean Syntax"),
p("No more boilerplate.")
]);
```