Кастомизация виджета
Как это работает
Виджет авторизации — это графический интерфейс для регистрации и авторизации пользователей в вашем приложении. Виджет может содержать поля для ввода данных учетной записи пользователя приложения и кнопки для входа в приложение через социальные сети. Также на виджете могут быть поясняющие тексты и дополнительные кнопки, например, для восстановления пароля или запроса кода подтверждения.
Xsolla предоставляет стандартные шаблоны виджетов. Их внешний вид и наполнение определяются способом авторизации, выбранным для проекта. Ниже приведен стандартный вид виджета для классической авторизации.
Продукт Login позволяет изменять параметры виджета, чтобы сделать его узнаваемым и органичным в интерфейсе вашего приложения или веб-сайта. Для этой цели вы можете:
- добавить на виджет свой логотип;
- изменить цветовую гамму виджета;
- загрузить изображение и использовать его как фон для области вокруг виджета;
- изменить форму контура кнопок и полей ввода;
- изменить порядок расположения кнопок социальных сетей на виджете (порядок определяется выбором страны локализации);
- задать язык отображения виджета.
Настроить внешний вид и наполнение виджета вы можете с помощью:
- графического редактора в Личном кабинете;
- изменения настроек в соответствующих JSON-файлах библиотеки Xsolla Login Widget SDK.
Кастомизация виджета в Личном кабинете
Редактирование виджета в Личном кабинете — это рекомендованный способ кастомизации, который позволяет:
- увидеть изменения в реальном времени;
- проверить работу кнопок виджета непосредственно в редакторе или в окне Предварительный просмотр на странице Кастомизация виджета.
Для кастомизации виджета:
- Откройте проект в Личном кабинете и перейдите в раздел Login.
- Нажмите Настроить в панели нужного варианта авторизации.
- Перейдите к блоку Кастомизация и выберите раздел Кастомизация виджета.
- Выберите язык и страну локализации виджета, если необходимо.
- Настройте стиль виджета с помощью редактора.
- После выполнения всех настроек переключитесь в режим HTML с помощью кнопки над областью просмотра виджета.
- Нажмите Copy code, чтобы скопировать сгенерированный код инициализации виджета. Используйте этот код для интеграции виджета в ваше приложение или веб-сайт.
Как использовать редактор виджета
- Чтобы открыть редактор виджета, на странице Кастомизация виджета нажмите Кастомизировать.
- В окне редактора внесите необходимые изменения в стиль виджета:Все изменения отображаются в области просмотра виджета в режиме реального времени.
- Чтобы проконтролировать, как виджет будет отображаться на разных языках, измените язык в выпадающем списке над областью просмотра.
- После внесения всех необходимых изменений в редакторе виджета нажмите Опубликовать.
Control+F5
.Как добавить логотип
- Откройте редактор виджета.
- В боковой панели редактора нажмите Виджет авторизации.
- В открывшейся панели Редактор виджета авторизации установите переключатель Логотип в активное положение.
- Нажмите кнопку загрузки под переключателем.
- В окне поиска файла выберите файл с рисунком логотипа и нажмите Открыть.
- В боковой панели редактора отобразится панель Медиа. Загруженный логотип появится как на этой панели, так и на виджете в области просмотра.
- Если вы хотите протестировать другой вариант логотипа, используйте кнопку Загрузить в панели Медиа.
- Чтобы отобразить вариант логотипа на виджете, нажмите его изображение в панели Медиа.
- По завершении настройки логотипа закройте панель Медиа. Ваш последний выбор будет автоматически сохранен.
Как изменить цветовую гамму виджета
Цветовая гамма виджета задается тремя базовыми цветами:- Текст — используется для поясняющих текстов, содержимого полей ввода и логотипов социальных сетей на кнопках внизу виджета.
- Кнопка — используется для кнопок Вход и Принять и создать, для контуров выделенных полей и кнопок, а также для ссылок и заголовка активной вкладки виджета.
- Оттенок фона — определяет цвет фона виджета.
- Откройте редактор виджета.
- В боковой панели редактора нажмите Тема, а затем кнопку базового цвета, который вы хотите изменить.
- Выберите желаемый цвет одним из следующих способов:
- Укажите цвет на открывшейся цветовой палитре. Для изменения цветов в палитре используйте расположенный под ней ползунок.
- С помощью кнопки под ползунком переключитесь в один из режимов: HEX, RGB или HSL, и введите код цвета в выбранном формате.
- Если требуется, измените другие базовые цвета аналогичным образом.
Как поместить фоновое изображение в область вокруг виджета
- Откройте редактор виджета.
- В боковой панели редактора нажмите Виджет авторизации.
- В открывшейся панели Редактор виджета авторизации в разделе Фон страницы нажмите значок +, а затем кнопку загрузки.
- В окне поиска файла выберите файл для фонового рисунка и нажмите Открыть.
- В боковой панели редактора отобразится панель Медиа. Загруженный рисунок появится как на этой панели, так и в области вокруг виджета.
- Если вы хотите протестировать другой вариант фонового изображения, используйте кнопку Загрузить в панели Медиа.
- Чтобы отобразить фоновое изображение вокруг виджета, нажмите соответствующий рисунок в панели Медиа.
- По завершении настройки фонового изображения закройте панель Медиа. Ваш последний выбор будет автоматически сохранен.
Как изменить форму кнопок
Кнопки и поля ввода виджета имеют форму прямоугольника или квадрата с закругленными углами. Степень закругления может меняться от 0 (прямые углы) до 100%.
Чтобы изменить степень закругления углов:
- Откройте редактор виджета.
- Выберите желаемую форму кнопок виджета с помощью ползунка Скругление.
Как изменить порядок расположения кнопок социальных сетей
Чтобы на виджете отображались кнопки социальных сетей, эти сети необходимо подключить в настройках вашего варианта авторизации. Порядок расположения кнопок определяется страной локализации. Для каждой страны на виджете отображаются кнопки сетей, наиболее популярных в этой стране. Кнопки упорядочены слева направо по убыванию популярности социальных сетей. В верхней строке виджета каждому пользователю отображается последняя социальная сеть, через которую он вошел в приложение.
По умолчанию для Страны установлено значение Определять автоматически. Чтобы изменить данную настройку, используйте выпадающий список Страна на странице Кастомизация виджета.
Как задать язык отображения виджета
Стандартные виджеты авторизации Xsolla локализованы на 20 языков. Язык локализации интерфейса кодируется в первых двух буквах параметра preferredLocale
, который может быть передан виджету при его инициализации.
Пример: Для отображения виджета на английском языке задайте preferredLocale: “en_XX”
.
Если значение переменной preferredLocale
не задано, то язык определяется автоматически по IP-адресу или языку браузера.
Чтобы задать язык, на котором виджет отображается пользователю:
- На странице Кастомизация виджета выберите язык из выпадающего списка Поддерживаемые языки.
- Переменная
preferredLocale
в сгенерированном Xsolla коде инициализации виджета изменит значение в соответствии с вашим выбором.- Чтобы просмотреть код инициализации, переключитесь в режим HTML (с помощью кнопки над областью просмотра).
- Чтобы проконтролировать отображение виджета на выбранном языке, переключитесь в режим Предварительный просмотр.
preferredLocale
непосредственно в коде инициализации виджета, интегрированном в ваше приложение или веб-сайт.Кастомизация виджета с помощью JSON-файлов
Если у вас уже подключен Xsolla Login Widget SDK, вы можете изменять внешний вид и наполнение виджета и без использования Личного кабинета. В текстовом редакторе внесите необходимые изменения в следующие JSON-файлы:
socialsJSON
, чтобы задать собственный порядок отображения кнопок социальных сетей на виджете;themeJSON
, чтобы настроить внешний вид виджета:- выбрать цветовую гамму виджета и окружающей его области;
- задать степень скругления углов для отдельных элементов: кнопок, полей ввода, самого виджета;
- использовать фоновые изображения для различных элементов: заголовка виджета, самого виджета, области вокруг виджета;
- при необходимости скрыть на виджете вкладку авторизации или регистрации, а также кнопки социальных сетей.
Доступные для редактирования настройки виджета описаны в разделе JSON-файлы с настройками виджета.
preferredLocale
.Кастомизация с помощью загрузки CSS-файла
- Создайте CSS-файл с визуальными настройками для блока Login.
Пример кода для кастомизации шрифтов:
- css
@font-face {
font-family: 'Chakra petch';
font-stretch: normal;
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Chakra-Petch-Regular'),
url('https://some-url-to-fonts/Chakra-Petch-Regular.woff2 ') format('woff2');
}
@font-face {
font-family: 'Chakra petch';
font-stretch: normal;
font-style: normal;
font-weight: 500;
font-display: swap;
src: local('Chakra-Petch-Bold'),
url('https://some-url-to-fonts/Chakra-Petch-Bold.woff2 ') format('woff2');
}
@font-face {
font-family: 'Chakra petch';
font-stretch: normal;
font-style: normal;
font-weight: 300;
font-display: swap;
src: local('Chakra-Petch-Thin'),
url('https://some-url-to-fonts/Chakra-Petch-Thin.woff2 ') format('woff2');
}
body, .app-block {
font-family: 'Chakra petch', sans-serif;
}
Пример кода для кастомизации стилей:
- css
#mainBody {
padding: 13px 36px 25px;
height: 464px;
border: 1px solid #989898;
box-shadow: 0 2px 27px rgba(0, 0, 0, 0.5);
}
form {
position: relative;
}
.universal-input {
margin-top: 30px;
}
button[data-testid="login-form__button-submit"] {
background: black;
padding: 10px 22px 11px;
height: 40px;
color: rgba(255, 255, 255, 1);
}
- Откройте проект в Личном кабинете и перейдите в раздел Login.
- Нажмите Настроить в панели нужного варианта авторизации.
- Перейдите к блоку Кастомизация и выберите раздел Кастомизация виджета.
- Загрузите CSS-файл в блоке Дополнительная кастомизация.
- Нажмите Сохранить изменения.
Кастомизация текстов виджета
Виджет авторизации локализован на 20 языков: английский, арабский, бирманский, болгарский, китайский, чешский, немецкий, испанский, французский, филиппинский, венгерский, индонезийский, итальянский, японский, кхмерский, корейский, польский, португальский, румынский, русский, тайский, турецкий, тайваньский и вьетнамский. Вы можете самостоятельно заменить тексты виджета авторизации на собственные. Ниже приведен список ключей и значений по умолчанию для английского языка.
- json
{
"form.auth.title": "",
"form.auth.subtitle": "",
"login.link": "Log in",
"sign-up.link": "Sign up",
"back-button.text": "Back to login",
"form.field.email": "Email",
"form.field.password": "Password",
"form.field.new-password": "New password",
"form.field.confirm-password.validation": "Passwords do not match",
"form.field.confirm-password": "Confirm password",
"form.field.required.validation": "Required",
"form.login.login-button": "Log in",
"form.reset-password.reset-button": "Recover password",
"form.reset-password.link": "Forgot your password?",
"form.reset-password.header": "Recover password",
"form.reset-password.message": "You will receive an email with a link to reset your password.",
"form.reset-password.success": "It’s okay, we all forget sometimes. Just change your password using the instructions we sent to {email}.",
"form.reset-password.resend": "Resend message",
"form.set-password.set-button": "Set new password",
"form.set-password.success": "Password is successfully recovered.",
"form.field.sign-up.consent" : "Please choose whether or not to give us your {link} to carry out profiling and use your data for marketing purposes.",
"form.field.sign-up.username": "Username",
"form.field.sign-up.email": "Email",
"form.field.sign-up.password": "Password",
"form.field.sign-up.bday": "Date of birth",
"form.field.sign-up.birthday": "Date of birth",
"form.field.sign-up.nickname": "Nickname",
"form.field.sign-up.last_name": "Last name",
"form.field.sign-up.first_name": "First name",
"form.field.sign-up.family-name": "Last name",
"form.field.sign-up.given-name": "First name",
"form.field.sign-up.gender": "Gender",
"form.field.sign-up.country": "Country",
"form.field.sign-up.country-name": "Country",
"form.field.sign-up.platform": "Platform",
"form.field.sign-up.promo_email_agreement": "Subscribe to our newsletter",
"form.field.sign-up.password_confirm": "Confirm password",
"form.field.sign-up.complete-registration.description": "Please confirm your account following the instructions we sent to {email}.",
"form.field.sign-up.confirm-registration.description": "We sent a confirmation code to {email}.{newLine}{timerMessage}",
"form.field.sign-up.complete-registration.spam": "If you cannot find the confirmation email, please check the spam folder.",
"form.field.sign-up.complete-registration.button": "Thanks, dismiss",
"form.sign-up.sign-up-button": "Create account",
"form.sign-up.sign-up-button.accept": "Accept and create",
"form.sign-up.sign-up-button.decline": "Skip and create",
"form.get-code.confirm-code.we-sent": "We sent a confirmation code to {whereTo}.",
"form.get-code.confirm-code.can-resend-timer": "You can get a new code in {timer} {timer, plural, one {second} other {seconds}}.",
"form.get-link.confirm-link.we-sent": "We’ve sent a confirmation email with a link to {whereTo}.",
"form.get-link.confirm-link.can-resend-timer": "You can get a new confirmation email with a link in {timer} {timer, plural, one {second} other {seconds}}.",
"form.ask.header": "Provide additional info",
"form.ask.back-button.text": "Back to {link}",
"form.ask.button.confirm": "continue",
"form.ask.back-button.text.link": "login options",
"form.ask.title.collect.email": "We will send an email with the confirmation code.",
"form.ask.title.collect.phone": "We will send you a confirmation code.",
"form.ask.title.collect.both-data.phone": "Confirm your phone and email address.",
"form.ask.title.collect.both-data.email": "Confirm your email address and phone.",
"form.ask.title.collect.confirm.phone": "Confirm your phone",
"form.ask.title.collect.confirm.email": "Confirm your email address",
"form.ask.title.collect.confirm.both-data": "Confirm your data",
"form.ask.confirm-code.email": "Enter the code we sent to {whereTo} to confirm your email address.",
"form.ask.confirm-code.phone": "Enter a confirmation code we sent to {whereTo}.",
"form.ask.confirm-code.email.link": "Click the link in the email we sent to {whereTo} to confirm your email address.",
"form.ask.confirm-code.email.link.resend": "Resend confirmation email",
"back-button.previous-step": "Back to {link}",
"back-button.previous-step.link": "previous step",
"form.ask.skip-button": "Skip",
"form.ask.dismiss-button": "dismiss",
"form.ask.ask-button": "Submit",
"form.ask.email.field-title": "Enter your email to secure your account.",
"form.ask.phone.field-title": "Enter your phone to secure your account.",
"form.ask.success-message": "Your data was saved.",
"form.ask.confirm-registration.description": "We sent a confirmation code to {whereTo}.{newLine}{timerMessage}",
"form.ask.confirm-registration.exist-phone": "This phone is linked to another {merchant} account. Log in with this phone?",
"form.ask.confirm-registration.exist-email": "This email is linked to another {merchant} account. Log in with this email?",
"form.ask.confirm-registration.exist-user.btn": "Yes, log in",
"form.confirm-status.success.title": "Success",
"form.confirm.main-title": "Are you trying to log in?",
"form.confirm.decline-btn": "No",
"form.confirm.accept-btn": "Yes",
"form.confirm-status.success.subtitle.phone": "Your phone number has been confirmed. You can close this tab.",
"form.confirm-status.success.subtitle.email": "Your email address has been confirmed. You can close this tab.",
"form.confirm-status.fail.title.phone": "Phone number not confirmed",
"form.confirm-status.fail.title.email": "Email address not confirmed",
"form.confirm-status.fail.subtitle": "Confirmation code has expired. Go back to login and try again.",
"form.confirm-status.decline.header": "Thank you. This answer helps us improve our services.",
"form.confirm-code.invalid": "Confirmation code has expired.",
"form.otp.description": "Enter the 6-digit verification code we sent to {destination}.",
"form.otp.resend": "Resend code",
"form.otp.resend-timer": "Resend code in {count} {count, plural, one {second} other {seconds}}",
"form.otp.send-button": "Confirm",
"form.field.otp.placeholder": "Verification code",
"form.field.search.placeholder": "Search...",
"form.change-auth-method.phone.message": "Enter phone number",
"form.change-auth-method.email-username.message": "Enter email or username",
"form.change-auth-method.email.message": "Enter email",
"form.change-auth-method.username.message": "Enter username",
"form.enter-your.email-username-phone": "Enter your email, username, or phone",
"form.enter-your.email-username": "Enter your email or username",
"form.enter-your.email-phone": "Enter your email or phone",
"form.enter-your.username-phone": "Enter your username or phone",
"form.enter-your.phone": "Enter your phone to receive SMS",
"form.enter-your.email": "Enter your email address to get code",
"form.enter-your.username": "Enter your username",
"form.field.phone.code.title": "Enter the confirmation code",
"form.button.login-now": "Log in",
"form.button.submit": "Submit",
"form.email-login.send-code.text": "We will send you a code to the email address you entered. Use this code to log in.",
"form.phone-login.send-sms.text": "We will send you a code to the phone number you entered. Use this code to log in.",
"form.button.get-code": "Get code",
"form.button.get-link": "Get link",
"form.button.get-link.resend": "Get link",
"form.enter-phone-code.error.incorrect-code": "Incorrect confirmation code. Check the code that you received and try again.",
"form.phone-login.get-code.timer-message": "We sent a confirmation code to {whereTo}.{newLine}{timerMessage}",
"form.phone-login.get-code.resend-message": "We sent you a text with a confirmation code. {link}.",
"form.phone-login.get-code.resend-code": "Resend the code",
"success-message.footer": "This window will automatically close in 5 seconds",
}
Чтобы изменить тексты:
- Создайте файл JSON с локализованными текстами виджета. Доступные локали:
en
— английский;ar
— арабский;bg
— болгарский;cn
— китайский упрощенный;cs
— чешский;de
— немецкий;es
— испанский;fr
— французский;he
— иврит;id
— индонезийский;it
— итальянский;ja
— японский;km
— кхмерский;ko
— корейский;lo
— лаосский;my
— бирманский;ne
— непальский;ph
— филиппинский;pl
— польский;pt
— португальский;ro
— румынский;ru
— русский;th
— тайский;tr
— турецкий;tw
— китайский традиционный;vi
— вьетнамский.
- json
{
"en": {
"form.auth.title": "Sign Up",
"form.auth.subtitle": "To continue authorization please enter your email"
},
"ar": {
"form.auth.title": "الاشتراك",
"form.auth.subtitle": "يُرجى إدخال بريدك الإلكتروني للمصادقة"
},
"bg": {
"form.auth.title": "Sign Up",
"form.auth.subtitle": "To continue authorization please enter your email<span>{timer}</span>"
},
"cn": {
"form.auth.title": "Sign Up",
"form.auth.subtitle": "To continue authorization please enter your email"
},
"cs": {
"form.auth.title": "Sign Up",
"form.auth.subtitle": "To continue authorization please enter your email"
},
"de": {
"form.auth.title": "Registrieren",
"form.auth.subtitle": "Bitte gib deine E-Mail-Adresse zur Authentifizierung ein"
},
"es": {
"form.auth.title": "Registrarse",
"form.auth.subtitle": "Introduce tu correo para la autentificación."
},
"fr": {
"form.auth.title": "S'abonner",
"form.auth.subtitle": "Veuillez saisir votre adresse e-mail pour vous authentifier"
},
"he": {
"form.auth.title": "Sign Up",
"form.auth.subtitle": "To continue authorization please enter your email"
},
"it": {
"form.auth.title": "Iscriviti",
"form.auth.subtitle": "Inserisci il tuo indirizzo e-mail per l'autenticazione"
},
"ja": {
"form.auth.title": "サインアップ",
"form.auth.subtitle": "認証のためにメールアドレスを入力してください"
},
"ko": {
"form.auth.title": "가입",
"form.auth.subtitle": "인증을 위해 이메일을 입력하세요"
},
"pl": {
"form.auth.title": "Zarejestruj się",
"form.auth.subtitle": "Podaj swój adres e-mail w celu uwierzytelnienia"
},
"pt": {
"form.auth.title": "Registrar-se",
"form.auth.subtitle": "Insira seu e-mail para autenticação"
},
"ro": {
"form.auth.title": "Sign Up",
"form.auth.subtitle": "To continue authorization please enter your email"
},
"ru": {
"form.auth.title": "Подписаться",
"form.auth.subtitle": "Введите адрес электронной почты для аутентификации"
},
"th": {
"form.auth.title": "สมัคร",
"form.auth.subtitle": "โปรดกรอกอีเมลของคุณเพื่อการตรวจสอบสิทธิ์"
},
"tr": {
"form.auth.title": "Kaydol",
"form.auth.subtitle": "Kimlik doğrulama için lütfen e-postanı gir"
},
"tw": {
"form.auth.title": "Sign Up",
"form.auth.subtitle": "To continue authorization please enter your email"
},
"vi": {
"form.auth.title": "Đăng Ký",
"form.auth.subtitle": "Vui lòng nhập email của bạn để xác thực",
},
"km": {
"form.auth.title": "ចុះឈ្មោះ",
"form.auth.subtitle": "បញ្ចូលអ៊ីមែល"
},
"id": {
"form.auth.title": "Daftar",
"form.auth.subtitle": "Masukkan email"
},
"lo": {
"form.auth.title": "ລົງຊື່ເຂົ້າໃຊ້",
"form.auth.subtitle": "ປ້ອນອີເມວ"
},
"my": {
"form.auth.title": "အကောင့်ဖွင့်ရန်",
"form.auth.subtitle": "အီးမေးလ်ကို ထည့်သွင်းပါ"
},
"ph": {
"form.auth.title": "Mag-sign up",
"form.auth.subtitle": "Ilagay ang email"
},
"ne": {
"form.auth.title": "साइन अप गर्नुहोस्",
"form.auth.subtitle": "इमेल हाल्नुहोस्"
}
}
- Разместите созданный файл JSON на вашем сервере.
https://your-domain.com/assets/loginWidgetLocales.json
- Передайте URL-адрес файла при инициализации виджета, как показано ниже:
- javascript
const xl = new Widget({
// any other params
customLabels: ‘https://your-domain.com/assets/loginWidgetLocales.json’
});
Кастомизация виджета через Site Builder
Если вы используете Xsolla Site Builder, то можете кастомизировать виджет авторизации в настройках блока конструктора.
Чтобы кастомизировать виджет в Site Builder:
- Откройте проект в Личном кабинете.
- В боковом меню нажмите Site Builder.
- В разделе Сайты выберите ваш сайт и нажмите Открыть Site Builder.
- В блоке Настройки входа перейдите к секции Настройка блока.
- Загрузите свой логотип или пользовательский фон. Для этого:
- Установите переключатель Логотип или Пользовательский фон в активное положение.
- Нажмите кнопку загрузки под переключателем.
- В окне поиска файла выберите файл с изображением и нажмите Открыть. В боковой панели редактора отобразится панель Медиа. Загруженное изображение появится как на этой панели, так и в виджете в области просмотра.
- Выберите размер изображения (опционально):
- Нажмите на загруженное изображение.
- В разделе Изображение в раскрывающемся списке Размер выберите Вписать, Растянуть или Фиксировать.
- Измените оттенок изображения (опционально):
- Нажмите на загруженное изображение.
- В разделе Изображение > Оттенок выберите один из предложенных вариантов или выберите любой цвет в палитре, нажав значок ⚙.
- Если вы хотите протестировать другой вариант логотипа или фона, используйте нажмите на это изображение в панели Медиа.
- В разделе Xsolla Login вы можете настроить автоматический подбор цветов для блока авторизации. Для этого установите переключатель Использовать тему сайта в активное положение.
Кастомизация с помощью CSS-кода в Site Builder
- Создайте CSS-файл с визуальными настройками для блока Login.
Пример:
- css
#mainBody {
padding: 13px 36px 25px;
height: 464px;
border: 1px solid #989898;
box-shadow: 0 2px 27px rgba(0, 0, 0, 0.5);
}
form {
position: relative;
}
.universal-input {
margin-top: 30px;
}
button[data-testid="login-form__button-submit"] {
background: black;
padding: 10px 22px 11px;
height: 40px;
color: rgba(255, 255, 255, 1);
}
- Загрузите файл с CSS-кодом на свой хостинг в публичный доступ и скопируйте ссылку на файл.
- В Site Builder нажмите Добавить блок > Ваш код.
- Вставьте следующий код:
- css
<script>
window.SB.subscribe((api) => {
api.login.setConfigMiddleware((config) => ({
...config,
customStyle: "https://your-domain.com/assets/loginWidgetStyles.css"
}));
});
</script>
где https://your-domain.com/assets/loginWidgetStyles.css
— ссылка на CSS-файл с вашими стилями.
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.