Перейти к содержимому
Разделы
Язык, сейчас Русский
Дизайн-система Rastrillo

Экраны

Экраны входа — это поставляемый партиал signin, показанный в разных состояниях. Последние два — примеры для копирования.

Каждый пример работает, но его ссылки никуда не ведут.

signin signin-title live-head

Вход

Покажите один главный способ входа, а остальные расположите под ним. Не разделяйте регистрацию и вход: одна кнопка на оба случая, меньше объяснять и меньше ломать.

Запрос адреса

Одно поле и одна кнопка. Нечего запоминать и нечего красть. rastrillo умеет это из коробки.

Предпросмотр
{{define "title"}}{{template "signin-title" (dict "State" .Signin "Brand" .Brand)}}{{end}}
{{define "content"}}{{template "signin" (dict "State" .Signin "Brand" .Brand)}}{{end}}

Возвращение через Keymail

Браузер помнит, как в прошлый раз выполнялся вход. Одно касание отправляет запомненный адрес, и он проверяется заново, с самого начала.

Предпросмотр
{{define "title"}}{{template "signin-title" (dict "State" .Signin "Brand" .Brand)}}{{end}}
{{define "content"}}{{template "signin" (dict "State" .Signin "Brand" .Brand)}}{{end}}

Ключ доступа

Самый быстрый вход для того, у кого он есть, и ничего не нужно печатать. Предложите и второй способ: люди теряют устройства, а ключ, который не срабатывает, — это запертая дверь.

Предпросмотр
{{define "title"}}{{template "signin-title" (dict "State" .Signin "Brand" .Brand)}}{{end}}
{{define "content"}}{{template "signin" (dict "State" .Signin "Brand" .Brand)}}{{end}}

После отправки ссылки

Повторите адрес как есть. Это единственный шанс заметить опечатку до того, как человек начнёт ждать письмо, которое никогда не придёт.

Предпросмотр
{{define "title"}}{{template "signin-title" (dict "State" .Signin "Brand" .Brand)}}{{end}}
{{define "content"}}{{template "signin" (dict "State" .Signin "Brand" .Brand)}}{{end}}

После отправки ссылки, в другом браузере

Если адрес отправлял не этот браузер, страница его не угадывает.

Предпросмотр
{{define "title"}}{{template "signin-title" (dict "State" .Signin "Brand" .Brand)}}{{end}}
{{define "content"}}{{template "signin" (dict "State" .Signin "Brand" .Brand)}}{{end}}

Когда предлагался Keymail, а ушла ссылка

Одна строка сообщает, что на этот раз отправлена ссылка. Причину она не угадывает.

Предпросмотр
{{define "title"}}{{template "signin-title" (dict "State" .Signin "Brand" .Brand)}}{{end}}
{{define "content"}}{{template "signin" (dict "State" .Signin "Brand" .Brand)}}{{end}}

По пути в Keymail

Страница переходит дальше сама, а на случай, если нет, есть ссылка.

Предпросмотр
{{define "title"}}{{template "signin-title" (dict "State" .Signin "Brand" .Brand)}}{{end}}
{{define "content"}}{{template "signin" (dict "State" .Signin "Brand" .Brand)}}{{end}}

Адрес, который выглядит неправильно

Сообщение относится к полю, и фокус начинается именно там.

Предпросмотр
{{define "title"}}{{template "signin-title" (dict "State" .Signin "Brand" .Brand)}}{{end}}
{{define "content"}}{{template "signin" (dict "State" .Signin "Brand" .Brand)}}{{end}}

Когда Keymail не смог подтвердить

Кнопка меняется и вместо этого отправляет ссылку, чтобы никто не застрял.

Предпросмотр
{{define "title"}}{{template "signin-title" (dict "State" .Signin "Brand" .Brand)}}{{end}}
{{define "content"}}{{template "signin" (dict "State" .Signin "Brand" .Brand)}}{{end}}

Google, Apple и остальные

Мы даём кнопки, нарисованные так, как требует каждая компания. Сам вход мы не даём: его вы подключаете к своему провайдеру.

Предпросмотр
<section rst-box>
  <h1>Вход</h1>
  <div rst-signin-providers>
    <form method="post" action="/auth/google">
      <button rst-btn="block" type="submit">
        <svg aria-hidden="true" focusable="false" width="1.1em" height="1.1em" viewBox="0 0 48 48"><path fill="#EA4335" d="M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z"/><path fill="#4285F4" d="M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z"/><path fill="#FBBC05" d="M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z"/><path fill="#34A853" d="M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z"/></svg>
        Продолжить с Google
      </button>
    </form>
    <form method="post" action="/auth/apple">
      <button rst-btn="block" type="submit">
        <svg aria-hidden="true" focusable="false" width="1.1em" height="1.1em" viewBox="0 0 24 24"><path fill="currentColor" d="M12.15 6.9c-.95 0-2.42-1.08-3.96-1.04-2.04.03-3.91 1.18-4.96 3.01-2.12 3.68-.55 9.1 1.52 12.09 1.01 1.45 2.2 3.09 3.79 3.04 1.52-.07 2.09-.99 3.94-.99 1.83 0 2.35.99 3.96.95 1.64-.03 2.68-1.48 3.68-2.95 1.15-1.69 1.63-3.33 1.66-3.42-.04-.01-3.18-1.22-3.22-4.86-.03-3.04 2.48-4.49 2.6-4.56-1.43-2.09-3.63-2.32-4.39-2.38-2-.15-3.68 1.09-4.62 1.09zm3.38-3.07c.84-1.01 1.4-2.43 1.25-3.83-1.21.05-2.66.8-3.53 1.82-.78.9-1.46 2.34-1.27 3.71 1.34.1 2.71-.69 3.55-1.7z"/></svg>
        Продолжить с Apple
      </button>
    </form>
    <a href="/signin">Войти по электронной почте</a>
  </div>
</section>

Почта и пароль

Если вы всё же используете пароли, оставьте ту же схему с одним главным входом и разместите сброс прямо под кнопкой, а не прячьте его.

Мы не рекомендуем пароли

rastrillo не поставляет этот экран. Пароли переиспользуют, они утекают, а хранить их безопасно приходится вам. Используйте ссылку в письме вместе с ключом доступа или только ключи доступа. Разметка здесь потому, что некоторым продуктам она всё ещё нужна.

Предпросмотр
<section rst-box>
  <h1>Вход</h1>
  <form rst-form method="post" action="/signin">
    <div rst-field>
      <label rst-field-label for="pw-email">Электронная почта</label>
      <input rst-input id="pw-email" name="email" type="email" autocomplete="email" required>
    </div>
    <div rst-field>
      <label rst-field-label for="pw-pass">Пароль</label>
      <input rst-input id="pw-pass" name="password" type="password" autocomplete="current-password" required>
    </div>
    <button rst-btn="primary" type="submit">Продолжить</button>
  </form>
</section>