Documentație
AU
Notițe
Documentație UI
Ghid complet pentru utilizarea componentelor din această temă
Butoane
Butoane Primare
HTML
<button class="btn btn-primary">Primary</button> <button class="btn btn-success">Success</button> <button class="btn btn-danger">Danger</button> <button class="btn btn-warning">Warning</button>
Butoane Outline & Ghost
HTML
<button class="btn btn-outline">Outline</button> <button class="btn btn-ghost">Ghost</button>
Butoane Soft
HTML
<button class="btn btn-soft-primary">Soft Primary</button> <button class="btn btn-soft-success">Soft Success</button> <button class="btn btn-soft-danger">Soft Danger</button>
Mărimi Butoane
HTML
<button class="btn btn-primary btn-sm">Small</button> <button class="btn btn-primary">Default</button> <button class="btn btn-primary btn-lg">Large</button>
Butoane cu Iconițe
HTML
<button class="btn btn-primary"> <i class="bi bi-plus-lg"></i> Adaugă </button>
Action Buttons (pentru tabele)
HTML
<div class="actions-cell"> <button class="action-btn"><i class="bi bi-eye"></i></button> <button class="action-btn edit"><i class="bi bi-pencil"></i></button> <button class="action-btn delete"><i class="bi bi-trash"></i></button> </div>
Formulare
Input Text
HTML
<div class="form-group"> <label class="form-label">Nume <span class="required">*</span></label> <input type="text" class="form-control" placeholder="Introdu numele..."> </div>
Select
HTML
<div class="form-group"> <label class="form-label">Status</label> <select class="form-control"> <option value="">Selectează...</option> <option value="active">Activ</option> </select> </div>
Textarea
HTML
<div class="form-group"> <label class="form-label">Descriere</label> <textarea class="form-control" rows="3"></textarea> </div>
Checkbox & Switch
HTML
<!-- Checkbox --> <div class="form-check"> <input type="checkbox" class="form-check-input" id="check1"> <label class="form-check-label" for="check1">Checkbox</label> </div> <!-- Switch --> <div class="form-check form-switch"> <input type="checkbox" class="form-check-input" id="switch1"> <label class="form-check-label" for="switch1">Switch</label> </div>
Form Row (2 coloane)
HTML
<div class="form-row"> <div class="form-group"> <label class="form-label">Prenume</label> <input type="text" class="form-control"> </div> <div class="form-group"> <label class="form-label">Nume</label> <input type="text" class="form-control"> </div> </div>
Badge-uri & Status
Status Badge
Activ
În așteptare
Inactiv
În lucru
Finalizat
HTML
<span class="status-badge success">Activ</span> <span class="status-badge warning">În așteptare</span> <span class="status-badge danger">Inactiv</span> <span class="status-badge primary">În lucru</span> <span class="status-badge gray">Finalizat</span>
Role Badge
Administrator
Manager
Utilizator
HTML
<span class="role-badge admin">Administrator</span> <span class="role-badge manager">Manager</span> <span class="role-badge user">Utilizator</span>
Carduri
Card Standard
Titlu Card
Conținutul cardului aici...
HTML
<div class="card"> <div class="card-header"> <h3 class="card-title">Titlu Card</h3> </div> <div class="card-body"> <p>Conținutul cardului aici...</p> </div> </div>
Info Row
Nume
Ion Popescu
Email
ion@example.com
HTML
<div class="info-row"> <div class="info-label">Nume</div> <div class="info-value">Ion Popescu</div> </div>
Stat Card
248
Total clienți
186
Activi
PHP
<?php include 'blocks/stat-card.php'; ?> <?php echo renderStatCard( 'bi-people', // icon 'primary', // color: primary|success|warning|danger '248', // value 'Total clienți' // label ); ?>
Tabele
Data Table
Adaugă clasa
table-responsive-load pentru a transforma tabelul în carduri pe mobil.
| Nume | Status | Acțiuni |
|---|---|---|
|
IP
Ion PopescuManager |
Activ |
|
HTML
<table class="data-table table-responsive-load"> <thead> <tr> <th>Nume</th> <th>Status</th> <th>Acțiuni</th> </tr> </thead> <tbody> <tr> <td>...</td> </tr> </tbody> </table>
Cell Avatar
IP
Ion Popescu
Manager vânzări
TC
TechCorp SRL
RO12345678
HTML
<div class="cell-main"> <div class="cell-avatar primary">IP</div> <div class="cell-info"> <h4><a href="#">Ion Popescu</a></h4> <p>Manager vânzări</p> </div> </div> <!-- Variante avatar: primary, success, warning, danger -->
Culori
Paleta de Culori
Primary
#3b82f6
Success
#10b981
Warning
#f59e0b
Danger
#ef4444
Purple
#8b5cf6
Gray
#64748b
CSS
/* CSS Variables */ :root { --primary: #3b82f6; --primary-light: #60a5fa; --primary-dark: #2563eb; --success: #10b981; --warning: #f59e0b; --danger: #ef4444; }
Iconițe
Bootstrap Icons
Toate iconițele disponibile pe icons.getbootstrap.com
HTML
<!-- Prefix: bi bi-{nume} --> <i class="bi bi-house-door"></i> <i class="bi bi-people"></i> <i class="bi bi-folder"></i>
Filtre & Paginare
Secțiune Filtre
PHP
<?php $filters = [ 'search' => [ 'placeholder' => 'Caută...', 'name' => 'q' ], 'selects' => [ [ 'name' => 'status', 'placeholder' => 'Status', 'options' => [ ['value' => 'active', 'label' => 'Activ'] ] ] ] ]; include 'blocks/filters.php'; ?>
Paginare
PHP
<?php $pagination = [ 'current' => 3, // Pagina curentă 'total' => 10, // Total pagini 'perPage' => 10, // Itemi per pagină 'totalItems' => 98 // Total itemi ]; include 'blocks/pagination.php'; ?>
Page Header
Header cu Titlu și Butoane
Titlu Pagină
Descriere scurtă a paginii
PHP
<?php $pageHeader = [ 'title' => 'Titlu Pagină', 'subtitle' => 'Descriere scurtă', 'actions' => [ [ 'label' => 'Export', 'icon' => 'bi-download', 'class' => 'btn-outline' ], [ 'label' => 'Adaugă', 'icon' => 'bi-plus-lg', 'class' => 'btn-primary', 'modal' => 'client' ] ] ]; include 'blocks/page-header.php'; ?>
JavaScript
Notificări Toast
Notificările apar în colțul din dreapta sus și dispar automat după 5 secunde.
JavaScript
// Funcția globală fn_show_notification(message, type) // type: 'success' | 'error' | 'warning' | 'info' // Success notification fn_show_notification('Salvat cu succes!', 'success'); // Error notification fn_show_notification('A apărut o eroare!', 'error'); // Warning notification fn_show_notification('Verifică datele!', 'warning'); // Info notification fn_show_notification('Informație utilă.', 'info');
Modal Dialog
JavaScript
// Deschide modal cu conținut static fn_open_modal({ title: 'Titlu Modal', content: '<div>Conținut HTML</div>' }); // Deschide modal cu conținut încărcat via AJAX fn_open_modal({ title: 'Editează Client', url: 'ajax/modal-client.php', submit_text: 'Salvează', on_submit: function(modal, body) { // Logică la submit } }); // Închide modal-ul programatic fn_close_modal(); // Sau folosește atribute data-* pe butoane <button data-modal-open="client" data-modal-title="Client nou"> Adaugă Client </button>
Panou Notițe
Panoul de notițe permite atașarea de notițe la orice entitate (client, lead, proiect, task, contract).
JavaScript
// fn_open_notes_panel(object_type, object_id, object_name) // object_type: 'client' | 'lead' | 'project' | 'task' | 'contract' // Deschide notițe pentru un client fn_open_notes_panel('client', 1, 'TechCorp SRL'); // Deschide notițe pentru un proiect fn_open_notes_panel('project', 5, 'Redesign Website'); // Exemplu pe un buton în tabel <button class="action-btn" onclick="fn_open_notes_panel('client', 1, 'TechCorp')"> <i class="bi bi-sticky"></i> </button>
Funcții Utilitare
JavaScript
// Formatare numere cu separator de mii fn_format_number(1234567); // "1.234.567" // Formatare valută fn_format_currency(1250.50); // "1.250,50 RON" fn_format_currency(1250.50, 'EUR'); // "1.250,50 EUR" // Formatare dată fn_format_date('2024-03-15'); // "15.03.2024" fn_format_date('2024-03-15', 'long'); // "15 martie 2024" // Debounce pentru optimizare var handle_search = fn_debounce(function() { // Logică de căutare }, 300);
Select cu Căutare
Adaugă atributul
data-searchable pe un select pentru a-l transforma în select cu căutare.
HTML
<!-- Select simplu cu căutare --> <select class="form-control" data-searchable> <option value="">Selectează...</option> <option value="1">Opțiunea 1</option> <option value="2">Opțiunea 2</option> </select> <!-- Cu sublabel și icon --> <option value="1" data-sublabel="RO12345678" data-icon="TC" data-color="#3b82f6"> TechCorp SRL </option> // Refresh programatic fn_refresh_searchable_select('client_id');
Datepicker
Input-urile de tip
date sunt transformate automat în datepicker-uri cu calendar în limba română.
HTML
<!-- Datepicker simplu --> <input type="date" class="form-control" name="start_date"> <!-- Cu limite min/max --> <input type="date" class="form-control" name="deadline" min="2024-01-01" max="2024-12-31"> <!-- Cu valoare predefinită --> <input type="date" class="form-control" name="event_date" value="2024-03-15"> // Refresh programatic fn_refresh_datepicker('deadline');
Dialog de Confirmare
JavaScript
// Confirmare simplă cu confirm() nativ if (confirm('Sigur vrei să ștergi?')) { // Acțiune de ștergere fn_show_notification('Element șters!', 'success'); } // Pe un buton de ștergere <button class="action-btn delete" onclick="if(confirm('Ștergi?')) fn_delete_item(1)"> <i class="bi bi-trash"></i> </button>
Structura Pagină
Template Pagină Nouă
Copiază fișierul
demo.php pentru a crea o pagină nouă. Structura include toate componentele necesare.
PHP
<?php $pageTitle = 'Titlu Pagină'; $pageDescription = 'Descriere'; $activePage = 'page-id'; ?> <!DOCTYPE html> <html lang="ro"> <head> <?php include 'components/head.php'; ?> </head> <body> <div class="app-wrapper"> <?php include 'components/menu.php'; ?> <main class="app-main"> <?php include 'components/header.php'; ?> <div class="app-content"> <!-- Conținut --> </div> </main> <?php include 'components/right-sidebar.php'; ?> </div> <?php include 'components/footer.php'; ?> </body> </html>