В версию Друпал 8.6.0 внесено изменение, которое позволяет выполнять рендеринг диалогов off-canvas вверху страницы. Пример:
$link = [
'my_link' => [
'#title' => 'My link',
'#type' => 'link',
'#url' => Url::fromRoute('my_route'),
'#attributes' => [
'class' => ['use-ajax'],
'data-dialog-type' => 'dialog',
'data-dialog-renderer' => 'off_canvas_top',
'data-dialog-options' => Json::encode([
'height' => 421,
]),
],
],
];
Этот массив рендеринга ссылки похож на любые другие, за исключением секции attributes, в которой есть запись 'data-dialog-renderer' => 'off_canvas_top',
, кроме того, можно указать высоту диалога (если она не задана явно, то будет использоваться стандартное значение).