iguazoft/yii2-ui

Complete Yii2 extension for creating modern dashboard interfaces with 50+ widgets based on Bootstrap 5 and Atomic Design

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

Type:yii2-extension

pkg:composer/iguazoft/yii2-ui

dev-main / 1.0.x-dev 2026-02-08 22:50 UTC

This package is auto-updated.

Last update: 2026-02-08 22:50:45 UTC


README

Latest Stable Version Total Downloads License PHP Version Yii2

Extensión Yii2 con 40+ widgets para crear interfaces de dashboard con Bootstrap 5, generadas completamente desde PHP.

Requisitos

  • PHP >= 7.4
  • Yii2 >= 2.0.0
  • yiisoft/yii2-bootstrap5

Instalación

composer require iguazoft/yii2-ui

Registra los assets en tu layout:

use iguazoft\ui\DashboardAsset;
DashboardAsset::register($this);

Componentes

Categoría Widgets
Base Card, Button, Badge, Alert
Dashboard DashboardLayout, Sidebar, MetricCard, ReportCard, ProductTable, StatCard, Chart
Formularios Form, Input, Select, Checkbox, Radio, Textarea, FileUpload
Navegación Navbar, Breadcrumb, Tabs, Pagination
Datos DataTable, ListView, DetailView
Feedback Modal, Toast, Progress, Spinner
Layout Container, Row, Col, Grid, Divider
Avanzados Dropdown, Accordion, Carousel, Timeline, Offcanvas

Uso

MetricCard

use iguazoft\ui\widgets\MetricCard;

<?= MetricCard::widget([
    'title' => 'December income',
    'value' => '287,000',
    'prefix' => '$',
    'trend' => 'up',
    'trendValue' => '18.24%',
    'trendType' => 'success',
    'icon' => '💰',
]) ?>

DashboardLayout + Sidebar

use iguazoft\ui\widgets\DashboardLayout;
use iguazoft\ui\widgets\Sidebar;

<?php DashboardLayout::begin([
    'sidebar' => Sidebar::widget([
        'user' => ['name' => 'Admin', 'role' => 'Manager'],
        'mainMenu' => [
            ['label' => 'Dashboard', 'icon' => '🏠', 'url' => ['/'], 'active' => true],
            ['label' => 'Analytics', 'icon' => '📊', 'url' => ['/analytics']],
        ],
    ]),
]); ?>
    <!-- content -->
<?php DashboardLayout::end(); ?>

ProductTable

use iguazoft\ui\widgets\ProductTable;

<?= ProductTable::widget([
    'dataProvider' => $products,
    'totalCount' => 120,
    'pageSize' => 10,
    'currentPage' => 1,
    'columns' => [
        ['label' => 'Name', 'attribute' => 'name'],
        ['label' => 'Price', 'attribute' => 'price', 'format' => 'currency'],
        ['label' => 'Rating', 'attribute' => 'rating', 'format' => 'rating'],
    ],
]) ?>

Chart (Chart.js)

use iguazoft\ui\widgets\Chart;

<?= Chart::widget([
    'type' => 'line',
    'data' => [
        'labels' => ['Jan', 'Feb', 'Mar'],
        'datasets' => [[
            'label' => 'Sales',
            'data' => [12, 19, 3],
            'borderColor' => 'rgb(99, 102, 241)',
        ]],
    ],
    'height' => '300px',
]) ?>

Formularios

use iguazoft\ui\widgets\forms\Form;
use iguazoft\ui\widgets\forms\Input;
use iguazoft\ui\widgets\forms\Select;

<?php Form::begin(['action' => ['/save'], 'title' => 'Create Product']); ?>
    <?= Input::widget(['name' => 'title', 'label' => 'Product Name', 'required' => true]) ?>
    <?= Select::widget(['name' => 'category', 'label' => 'Category', 'items' => $categories]) ?>
<?php Form::end(); ?>

Más ejemplos

Ver la carpeta examples/ para un dashboard completo funcional.

Personalización

:root {
    --dashboard-primary: #6366f1;
    --dashboard-success: #22c55e;
    --dashboard-danger: #ef4444;
}

Todos los widgets aceptan options para clases CSS personalizadas:

<?= Card::widget(['title' => 'Custom', 'options' => ['class' => 'my-class']]) ?>

Para extender un widget:

class MyCard extends \iguazoft\ui\widgets\Card
{
    public function init()
    {
        parent::init();
        // custom logic
    }
}

Testing

composer install
vendor/bin/phpunit

Contribuir

Ver CONTRIBUTING.md.

Soporte

Licencia

MIT