# Installation Guide
Follow these steps to integrate **SigPro-UI** into your project.
---
!> **📘 Core Concepts**
SigProUI is built on top of the `SigPro` reactive core. To learn how to create signals, manage reactivity, and structure your application logic, check out the [SigPro documentation](https://sigpro.natxocc.com/#/).
---
## 1. Install the packages
```bash
# ESM / Bundler (tree-shaking)
npm install sigpro-ui
# Or with bun
bun add sigpro-ui
```
## 2. Import and use in your app
### ESM / Module usage
```javascript
import "sigpro-ui";
import "sigpro-ui/css";
const App = () => {
const count = $(0);
return h('div', { class: 'p-8 max-w-md mx-auto' }, [
h('h1', { class: 'text-2xl font-bold mb-4' }, 'SigProUI Demo'),
Input({
placeholder: 'Enter your name...'
}),
Button({
class: 'btn-primary mt-4',
onclick: () => count(count() + 1)
}, () => `Clicks: ${count()}`),
Alert({
class: 'alert-success',
message: () => `Welcome to SigProUI!`
})
]);
};
mount(App, "#app");
```
### CDN Usage
```html
SigProUI Demo
```
## What's included?
### SigPro Core Functions
- `$()` - Reactive signals
- `watch()` - Watch reactive dependencies
- `h()` - Create HTML elements with reactivity
- `when()` - Conditional rendering
- `each()` - List rendering
- `router()` - Hash‑based SPA router.
- `mount()` - Mount components to DOM
- `batch()` - Batch multiple reactive updates into a single flush
> For more information about SigPro Core visit official Docs [SigPro Docs](https://sigpro.natxocc.com/#/)
### UI Components
- `Button()` - Styled button with DaisyUI
- `Input()` - Form input with floating labels
- `Alert()` - Alert messages
- `Modal()` - Modal dialogs
- `Table()` - Data tables
- `Tabs()` - Tabbed interfaces
- `Toast()` - Toast notifications
- And 40+ more components!
### Utilities
- `t()` - i18n translation function
## Language Support
SigProUI includes built-in i18n with Spanish and English:
```javascript
import { t, Locale } from 'sigpro-ui';
// Change locale (default is 'es')
Locale('en');
// Use translations
Button({}, t('close'));
Input({ placeholder: t('search') });
```
## TypeScript Support
SigProUI includes TypeScript definitions:
```typescript
import { Button, Input, Toast } from 'sigpro-ui';
import type { ButtonProps, InputProps } from 'sigpro-ui';
```
## Troubleshooting
| Problem | Solution |
| :--- | :--- |
| Components don't look styled | Make sure you're loading the CSS (`sigpro-ui.min.css`) |
| CDN functions not working | All core functions (`$`, `h`, `watch`, etc.) are available globally |
| Locale not working | Set locale with `Locale('en')` before using translations |
**Happy coding!** 🎉