Type to search columns, filters, options, and extensions.

↑↓ to navigate · Enter to open · Esc to close

Documentation

Responsive Extension

Make wide tables usable on smaller viewports

When To Use

Use Responsive for mobile-heavy usage and columns that cannot all fit on one line.

Minimal Example

$dataTable->responsive();

Advanced Example

$dataTable->responsive(
    auto: true,
    detailsTarget: 0,
    detailsType: 'inline',
    orthogonal: 'display',
);

detailsType accepts 'inline', 'column', 'colvis', or false to disable the hidden-column details control entirely. Pass breakpoints (a list of ['name' => string, 'width' => int] pairs) to override DataTables’ built-in breakpoint list; omit it to keep the defaults.

Column Priority

By default Responsive hides columns from the right. Use setResponsivePriority() when a column must stay visible longer than its position would imply. Lower numbers stay visible first; omitted columns use DataTables’ default of 10000.

use Pentiminax\UX\DataTables\Column\NumberColumn;
use Pentiminax\UX\DataTables\Column\TextColumn;

public function configureColumns(): iterable
{
    yield NumberColumn::new('id', 'ID')->setResponsivePriority(1);
    yield TextColumn::new('email', 'Email')->setResponsivePriority(2);
    yield TextColumn::new('notes', 'Notes')->setResponsivePriority(4);
}

ActionColumn already defaults to priority 1 so row actions stay on screen. Override it with setResponsivePriority() when another column should win.

Frequent Pitfalls

  • Not setting column priorities when too many columns compete for visibility.
  • Combining with checkbox selection without validating first-column rendering.