app/views/devise/registrations/new.html.erb
<div class="row justify-content-xl-center">
<div class="col-xl-6">
<h2><%= t('devise.registrations.sign_up') %></h2>
<%= form_for(resource, as: resource_name, url: registration_path(resource_name), class: 'form-horizontal') do |f| %>
<%= render 'devise/shared/error_messages' %>
<div class="form-group">
<%= f.label :first_name %><br />
<%= f.text_field :first_name, autofocus: true, class: 'form-control' %>
</div>
<div class="form-group">
<%= f.label :last_name %><br />
<%= f.text_field :last_name, class: 'form-control' %>
</div>
<div class="form-group">
<%= f.label :email %><br />
<%= f.email_field :email, class: 'form-control' %>
<span class="help-block"><%= resource.errors[:email].join(', ') %></span>
</div>
<div class="form-group">
<%= f.label :password %>
<%= f.password_field :password, autocomplete: 'off', class: 'form-control' %>
<% if @minimum_password_length %>
<span class="help-block"><%= t('devise.passwords.minimum', minimum_length_value: @minimum_password_length) %></span>
<% end %><br />
</div>
<div class="form-group">
<%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation, autocomplete: 'off', class: 'form-control' %>
</div>
<div class="actions">
<%= f.submit t('devise.registrations.sign_up'), class: 'btn btn-primary' %>
</div>
<% end %>
<%= render 'devise/shared/links' %>
</div>
</div>
</div>