# Implementación de Avanza UI en Studio Panel
## 🚀 Pasos de Instalación
### 1. Instalar Avanza UI en studio-panel
```bash
cd packages/studio-panel
npm install ../ui-components
```
### 2. Actualizar package.json de studio-panel
```json
{
"dependencies": {
"avanza-ui": "file:../ui-components",
"react": "^18.3.1",
"react-dom": "^18.3.1"
}
}
```
### 3. Importar estilos globales en main.tsx
```tsx
// packages/studio-panel/src/main.tsx
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
// Importar estilos de Avanza UI
import 'avanza-ui/dist/index.css';
// Tus estilos personalizados
import './styles.css';
ReactDOM.createRoot(document.getElementById('root')!).render(
);
```
### 4. Ejemplo de Uso en Componentes
#### Header.tsx con Avanza UI
```tsx
// packages/studio-panel/src/components/Header.tsx
import React from 'react';
import {
Avatar,
Button,
Dropdown,
DropdownItem,
DropdownDivider,
Tooltip,
} from 'avanza-ui';
export const Header: React.FC = () => {
return (
);
};
```
#### Sidebar.tsx con Avanza UI
```tsx
// packages/studio-panel/src/components/Sidebar.tsx
import React from 'react';
import { Card, CardHeader, CardBody, Badge, Tooltip } from 'avanza-ui';
export const Sidebar: React.FC = () => {
return (
{/* Lista de participantes */}
Chat
{/* Mensajes de chat */}
);
};
```
#### StudioLayout.tsx con Avanza UI
```tsx
// packages/studio-panel/src/components/StudioLayout.tsx
import React, { useState } from 'react';
import {
Button,
Modal,
ModalHeader,
ModalBody,
ModalFooter,
Input,
Alert,
Spinner,
} from 'avanza-ui';
import { Header } from './Header';
import { Sidebar } from './Sidebar';
export const StudioLayout: React.FC = () => {
const [isModalOpen, setIsModalOpen] = useState(false);
const [isLoading, setIsLoading] = useState(false);
return (
);
};
```
## 🎨 Personalización del Tema
### Archivo de estilos personalizado (styles.css)
```css
/* packages/studio-panel/src/styles.css */
/* Personalizar colores primarios */
:root {
--au-primary-600: #6366f1; /* Tu color primario */
--au-primary-700: #4f46e5;
}
/* Dark theme personalizado */
[data-theme="dark"] {
--au-bg-primary: #0a0e1a;
--au-surface: #13192b;
}
/* Estilos adicionales específicos del studio */
.studio-video-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: var(--au-spacing-4);
padding: var(--au-spacing-4);
}
```
### Toggle de Tema
```tsx
// packages/studio-panel/src/components/ThemeToggle.tsx
import React, { useState, useEffect } from 'react';
import { Button } from 'avanza-ui';
export const ThemeToggle: React.FC = () => {
const [theme, setTheme] = useState<'light' | 'dark'>('light');
useEffect(() => {
// Leer tema del localStorage
const savedTheme = localStorage.getItem('theme') as 'light' | 'dark' | null;
if (savedTheme) {
setTheme(savedTheme);
document.documentElement.setAttribute('data-theme', savedTheme);
}
}, []);
const toggleTheme = () => {
const newTheme = theme === 'light' ? 'dark' : 'light';
setTheme(newTheme);
document.documentElement.setAttribute('data-theme', newTheme);
localStorage.setItem('theme', newTheme);
};
return (
);
};
```
## 📋 Checklist de Migración
- [ ] Instalar avanza-ui en package.json
- [ ] Importar estilos globales en main.tsx
- [ ] Reemplazar componentes existentes con Avanza UI
- [ ] Configurar tema dark/light
- [ ] Personalizar variables CSS si es necesario
- [ ] Probar en diferentes navegadores
- [ ] Verificar accesibilidad
## 🔄 Comparación con Vristo
| Vristo | Avanza UI | Beneficio |
|--------|-----------|-----------|
| Depende de Tailwind | CSS Modules | Sin conflictos de clases |
| require('react-popper') | Estado interno | Menos dependencias |
| Configuración compleja | Plug & Play | Más rápido de implementar |
| Múltiples estilos | Variables CSS | Personalización fácil |
## 🚀 Comandos Útiles
```bash
# Desarrollo
cd packages/ui-components && npm run dev
cd packages/studio-panel && npm run dev
# Build de producción
cd packages/ui-components && npm run build
cd packages/studio-panel && npm run build
# Actualizar biblioteca
cd packages/ui-components && npm run build
cd packages/studio-panel && npm install ../ui-components
```
---
¡Listo para usar Avanza UI en tu Studio Panel!