Type to search Tours, Hints, options, and events.

to navigate · Enter to open · Esc to close

Product tours you write in Twig — or in PHP.

UX Driver wires Driver.js into Symfony. Declare a Tour, a Highlight, or a set of Hints as Twig Components next to the markup they point at, or compose them in a controller with the autowired PHP builders — the bundle ships the Stimulus controller, the assets, and the events.

Install the bundle
composer require pentiminax/ux-driver
AdminOrdersCustomersCatalog
Orders
#1048Paid€128.00
#1049Review€64.50
#1050Shipped€312.20
Contextual hint

Point new operators at the exact control they need.

Three shapes, one bundle

Three authoring modes, one controller

Wrap the Steps around the elements they describe with Twig Components, chain them in a template withcreate_tour(), or build the same Tour in PHP and hand it to the template. All three serialize the same Driver.js configuration for the same Stimulus controller.

Components keep the help visible while editing the page. The PHP builders — TourBuilder and HintsBuilder, autowired services — fit Steps that are data-driven, conditional, or translated in a controller. The authoring modes guide covers when each fits.

Twig Components
<twig:Driver:Tour id="admin-orders">
  <button {{ ux_tour_action('start') }}>
    Start tour
  </button>

  <twig:Driver:Step :order="1" title="Orders">
    <h1>Orders</h1>
  </twig:Driver:Step>
</twig:Driver:Tour>
PHP builder
$tour = $tourBuilder->create('admin-orders')
    ->addStep('.orders-title', 'Orders')
    ->addStep('.filters', 'Filters', 'Narrow the list')
    ->once();

return $this->render('orders.html.twig', [
    'tour' => $tour,
]);

Find your way in

Start here

Install UX Driver and ship a first Tour and a first Hint, in Twig or in PHP.

Guides

Author, control, style, and secure Tours, Highlights, and Hints.

Reference

Every option, action, event, and supported version range.