Custom wrapper field I have a normal field submit:

$form['submit'] = [
  '#type' =&gt; 'submit',
  '#value' =&gt; 'Submit,
];


But I wish he had a complex wrapper without using #prefix and #suffix. This wrapper also has to pass variables.
What is the easiest way to do it? Creating a tpl.
What you are looking for are "theme wrappers" ... this allows you to create a theme function (or tpl) to use to wrap a form element (or any element in a render array).

There is a good write-up here: https://guusvandewal.nl/drupal-blog/theme-wrappers-drupal-forms

Its for drupal 7 but not much has changed with theme wrappers in Drupal 8