templates/security/login.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block title %}{{ "login.title"|trans }}{% endblock %}
  3. {% block body %}
  4.     <div class="container">
  5.         <div class="row">
  6.             <div class="col-sm-9 col-md-7 col-lg-5 mx-auto">
  7.                 <div class="card card-signin my-5">
  8.                     <div class="card-body">
  9.                         <h5 class="card-title text-center">{{ "login.title"|trans }}</h5>
  10.                         <form class="form-signin" method="post">
  11.                             {% if error %}
  12.                                 <div class="alert alert-danger">{{ error.messageKey|trans(error.messageData, 'security') }}</div>
  13.                             {% endif %}
  14.                             <div class="form-label-group">
  15.                                 <input type="email" id="inputEmail" class="form-control" placeholder="{{ "login.email"|trans }}"
  16.                                        value="{{ last_username }}" name="email" required autofocus>
  17.                                 <label for="inputEmail">{{ "login.email"|trans }}</label>
  18.                             </div>
  19.                             <div class="form-label-group">
  20.                                 <input type="password" id="inputPassword" class="form-control" placeholder="{{ "login.password"|trans }}"
  21.                                        name="password" required>
  22.                                 <label for="inputPassword">{{ "login.password"|trans }}</label>
  23.                             </div>
  24.                             <div class="form-label-group align-items-start">
  25.                                 <input type="checkbox" id="_remember_me"  name="_remember_me" checked class="form-control"/>
  26.                                 <label for="_remember_me">{{ "login.rememberme"|trans }}</label>
  27.                             </div>
  28.                             <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}">
  29.                             <button class="btn btn-lg btn-primary btn-block text-uppercase" type="submit">
  30.                                 {{ "login.title"|trans }}
  31.                             </button>
  32.                         </form>
  33.                     </div>
  34.                 </div>
  35.             </div>
  36.         </div>
  37.     </div>
  38. {% endblock %}
  39. {% block stylesheets %}
  40.     <style>
  41.         :root {
  42.             --input-padding-x: 1.5rem;
  43.             --input-padding-y: .75rem;
  44.         }
  45.         body {
  46.             background: #f4f6f9;
  47.         }
  48.         .card-signin {
  49.             border: 0;
  50.             border-radius: 1rem;
  51.             box-shadow: 0 0.5rem 1rem 0 rgba(0, 0, 0, 0.1);
  52.         }
  53.         .card-signin .card-title {
  54.             margin-bottom: 2rem;
  55.             font-weight: 300;
  56.             font-size: 1.5rem;
  57.         }
  58.         .card-signin .card-body {
  59.             padding: 2rem;
  60.         }
  61.         .form-signin {
  62.             width: 100%;
  63.         }
  64.         .form-signin .btn {
  65.             font-size: 80%;
  66.             border-radius: 5rem;
  67.             letter-spacing: .1rem;
  68.             font-weight: bold;
  69.             padding: 1rem;
  70.             transition: all 0.2s;
  71.         }
  72.         .form-label-group {
  73.             position: relative;
  74.             margin-bottom: 1rem;
  75.         }
  76.         .form-label-group input {
  77.             height: auto;
  78.             border-radius: 2rem;
  79.         }
  80.         .form-label-group > input,
  81.         .form-label-group > label {
  82.             padding: var(--input-padding-y) var(--input-padding-x);
  83.         }
  84.         .form-label-group > label {
  85.             position: absolute;
  86.             top: 0;
  87.             left: 0;
  88.             display: block;
  89.             width: 100%;
  90.             margin-bottom: 0;
  91.             /* Override default `<label>` margin */
  92.             line-height: 1.5;
  93.             color: #495057;
  94.             border: 1px solid transparent;
  95.             border-radius: .25rem;
  96.             transition: all .1s ease-in-out;
  97.         }
  98.         .form-label-group input::-webkit-input-placeholder {
  99.             color: transparent;
  100.         }
  101.         .form-label-group input:-ms-input-placeholder {
  102.             color: transparent;
  103.         }
  104.         .form-label-group input::-ms-input-placeholder {
  105.             color: transparent;
  106.         }
  107.         .form-label-group input::-moz-placeholder {
  108.             color: transparent;
  109.         }
  110.         .form-label-group input::placeholder {
  111.             color: transparent;
  112.         }
  113.         .form-label-group input:not(:placeholder-shown) {
  114.             padding-top: calc(var(--input-padding-y) + var(--input-padding-y) * (2 / 3));
  115.             padding-bottom: calc(var(--input-padding-y) / 3);
  116.         }
  117.         .form-label-group input:not(:placeholder-shown) ~ label {
  118.             padding-top: calc(var(--input-padding-y) / 3);
  119.             padding-bottom: calc(var(--input-padding-y) / 3);
  120.             font-size: 12px;
  121.             color: #777;
  122.         }
  123.         .btn-google {
  124.             color: white;
  125.             background-color: #ea4335;
  126.         }
  127.         .btn-facebook {
  128.             color: white;
  129.             background-color: #3b5998;
  130.         }
  131.         /* Fallback for Edge
  132.         -------------------------------------------------- */
  133.         @supports (-ms-ime-align: auto) {
  134.             .form-label-group > label {
  135.                 display: none;
  136.             }
  137.             .form-label-group input::-ms-input-placeholder {
  138.                 color: #777;
  139.             }
  140.         }
  141.         /* Fallback for IE
  142.         -------------------------------------------------- */
  143.         @media all and (-ms-high-contrast: none),
  144.         (-ms-high-contrast: active) {
  145.             .form-label-group > label {
  146.                 display: none;
  147.             }
  148.             .form-label-group input:-ms-input-placeholder {
  149.                 color: #777;
  150.             }
  151.         }
  152.     </style>
  153. {% endblock %}