The Hosted Login v2 manageProfile_security Screen: CSS

ImportantIdentity Cloud's 2FA feature is currently in Limited Availability. Please contact your Akamai representative as usage of 2FA features must be approved during Limited Availability.


   

This screen appears after a user clicks Account Security on the manageProfile screen.

You can also display a Back to App button on this screen by including the redirect_uri parameter when opening the user profile. For example:

https://v1.api.us.janrain.com/e0a70b4f-1eef-4856-bcdb-f050fee66aae/auth-ui/profile?client_id=70a45721-c6ef-4d7c-91ff-f14e9346b8b6&redirect_uri=https://identitydocs.akamai.com

If the user clicks the Back to App button, he or she is sent to the URL specified by the redirect_uri parameter.

 The Back to App button (available only in Hosted Login v2), looks like this:

Click here for information on overriding the default CSS settings.




Login Page HTML


To help you put the CSS classes in context, the following snippet shows the HTML markup used to define the screen, with the CSS classes highlighted using red text. To view the latest HTML for a screen, right-click a blank spot on your Hosted Login login page, click View Page Source, then search for the screen name.


<div style="display:none;" id="manageProfile_security" class="screen">

  <div class="manage-screen content-wrapper">

    <div class="profile-header-actions">

  <div class="return-to-app-container">

  </div>

  <div class="logout-container">

    <button type="button" class="aic-control logout" data-action="logout">{* textLogout *}</button>

  </div>

</div>

<div class="profile-header">

  <div class="profile-header-image user-photo-container" data-render-user-photo="large"></div>

  <div class="profile-header-text">

    <h1>{* dataDisplayName *}</h1>

    <h3>{* dataEmailAddress *}</h3>

  </div>

</div>

    <h1 class="screen-heading">{* textAccountScreensHeading *}</h1>

    <div class="profile-management-container profile-security">

      <div class="profile-management-card large">

        <div class="card-heading aic-control" data-render-screen="manageProfile">

          <h1><span class="chevron left"></span><span class="profile-preferences card-icon"></span>{* textAccountSecurity *}</h1>

        </div>

        <div class="card-body">


          <section class="profile">


            <article class="email">

              <div id="profileEmail" class="profile-card">

                <div class="profile-show">

                  <h2>Email Address</h2>

                    <p class=" profile-preferences card-icon " id="existingEmail">

                      gmstemp@hotmail.com

                        <span class="verified-identifier" id="verifiedEmail">{* textEmailVerified *}</span>

                    </p>

                </div>

                <div class="profile-actions">

                  <div class="profile-action-icons" data-group="profileEmailAction">

                    <button type="button" class="aic-icon icon-edit" value="edit"></button>

                  </div>

                </div>

              </div>

              <div id="profileEmailAction" class="action-card">

                <aside class="profile-action-icons" data-group="profileEmailAction">

                  <button type="button" value="close" class="aic-icon icon-subtract"></button>

                </aside>

                <div id="containerChangeEmailForm" class="edit add">

                    <h2>{* textChangeEmailTitle *}</h2>

                  <p class="action-description">{* textChangeEmailFormValue *}</p>

                  <label for="changeEmailInput">{* textEmailLabel *}</label>

                  <p>

                    <input id="changeEmailInput" name="changeEmailInput" value="" type="text" class="aic-input"

                      placeholder="{* textChangeEmailPlaceholder *}" data-action="submitRequestChangeEmail"

                      data-initialize="gmstemp@hotmail.com">

                  </p>

                  <div id="errorChangeEmail"><p></p></div>

                  <button type="submit" id="submitRequestChangeEmailButton" class="aic-control" data-action="submitRequestChangeEmail">{* textChangeEmailSubmit *}</button>

                </div>

                <div id="containerChangeEmailConfirm">

                  <h2>{* textChangeEmailConfirmTitle *}</h2>

                  <p class="action-description">{* textChangeEmailConfirmValue *} <a id="changeEmailSentTo"></a></p>

                  <p><label>{* textChangeEmailCodeLabel *}</label></p>

                  <p>

                    <input id="secondFactorCodeChangeEmailInput" value="" type="text" class="aic-input"

                      placeholder="{* textChangeEmailCodePlaceholder *}" data-action="submitChangeEmailCode">

                  </p>

                  <button type="submit" id="submitChangeEmailCodeButton" class="aic-control" data-action="submitChangeEmailCode">{* textChangeEmailCodeCodeSubmit *}</button>

                  <div id="resendCodeSecondFactorChangeEmail">

                    <p>{* textSecondFactorChangeEmailCodeResend *}

                      <a href="#" class="aic-control" data-action="resendChangeEmailCode">

                      {* textSecondFactorChangeEmailCodeSendLink *}

                      </a>

                    </p>

                  </div>

                  <div id ="resendCodeSecondFactorChangeEmailInvalid">

                    <p class="aic-error">{* textSecondFactorChangeEmailCodeResendInvalid *}

                      <a href="#" class="aic-control aic-error" data-action="resendChangeEmailCode">

                      {* textSecondFactorChangeEmailCodeSendLinkInvalid *}

                      </a>

                    </p>

                  </div>

                </div>

                <div id="containerChangeEmailSuccess">

                  <p class="aic-success">{* textChangeEmailCodeCodeSuccess *}</p>

                </div>

              </div>

            </article>


            <article class="phone">

              <div id="profilePhone" class="profile-card">

                <div class="profile-show">

                  <h2>{* textMobileNumberTitle *}</h2>

                </div>

                <div class="profile-actions">

                  <aside class="profile-action-icons" data-group="profilePhoneAction">

                      <button type="button" class="aic-icon icon-add" value="add"></button>

                  </aside>

                </div>

              </div>

              <div id="profilePhoneAction" class="action-card">

                <aside class="profile-action-icons" data-group="profilePhoneAction">

                  <button type="button" value="close" class="aic-icon icon-subtract"></button>

                </aside>

                <div id="containerChangeMobileNumberForm" class="edit add">

                    <h2>{* textAddMobileNumberTitle *}</h2>

                  <p class="action-description">{* textChangeMobileNumberFormValue *}</p>

                  <label>{* textMobileNumberLabel *}</label>

                  <p>

                    <input id="changeMobileNumberInput" class="aic-input"

                      type="tel" value="" name="changeMobileNumberInput" 

                      placeholder="{* textChangeMobileNumberPlaceholder *}"

                      data-action="submitRequestChangeMobileNumber"

                      data-initialize="">

                  </p>

                  <div id="errorChangeMobileNumber"><p></p></div>

                  <button type="submit" id="submitRequestChangeMobileNumberButton" class="aic-control" data-action="submitRequestChangeMobileNumber">{* textChangeMobileNumberSubmit *}</button>

                </div>

                <div id="containerChangeMobileNumberConfirm">

                  <h2>{* textChangeMobileNumberConfirmTitle *}</h2>

                  <p class="action-description">

                    {* textChangeMobileNumberConfirmValue *}

                    <span class="phone-group">

                      <span class="codesentto-tel-flag"></span>

                      <a id="changeMobileNumberSentTo"></a>

                    </span>

                  </p>

                  <p><label>{* textChangeMobileNumberCodeLabel *}</label></p>

                  <p>

                    <input id="secondFactorCodeChangeMobileNumberInput" value="" type="text" class="aic-input"

                      placeholder="{* textChangeMobileNumberCodePlaceholder *}" data-action="submitChangeMobileNumberCode">

                  </p>

                  <button type="submit" id="submitChangeMobileNumberCodeButton" class="aic-control" data-action="submitChangeMobileNumberCode">{* textChangeMobileNumberCodeCodeSubmit *}</button>

                  <div id="resendCodeSecondFactorChangeMobileNumber">

                    <p>{* textSecondFactorChangeMobileNumberCodeResend *}

                      <a href="#" class="aic-control" data-action="resendChangeMobileNumberCode">

                      {* textSecondFactorChangeMobileNumberCodeSendLink *}

                      </a>

                    </p>

                  </div>

                  <div id ="resendCodeSecondFactorChangeMobileNumberInvalid">

                    <p class="aic-error">{* textSecondFactorChangeMobileNumberCodeResendInvalid *}

                      <a href="#" class="aic-control aic-error" data-action="resendChangeMobileNumberCode">

                      {* textSecondFactorChangeMobileNumberCodeSendLinkInvalid *}

                      </a>

                    </p>

                  </div>

                </div>

                <div id="containerChangeMobileNumberSuccess">

                  <p class="aic-success">{* textChangeMobileNumberCodeCodeSuccess *}</p>

                </div>

                <div id="containerDeleteMobileNumberSuccess" class="delete">

                  <h2>{* textDeleteMobileNumberTitle *}</h2>

                </div>

              </div>

            </article>


            <article class="password">

              <div id="profilePassword" class="profile-card">

                <div class="profile-show">

                  <h2>Password</h2>

                  <p id="existingPassword">**************</p>

                </div>

                <div class="profile-actions">

                  <aside class="profile-action-icons" data-group="profilePasswordAction">

                    <button type="button" class="aic-icon icon-edit" value="edit"></button>

                  </aside>

                </div>

              </div>

              <div id="profilePasswordAction" class="action-card">

                <aside class="profile-action-icons" data-group="profilePasswordAction">

                  <button type="button" value="close" class="aic-icon icon-subtract"></button>

                </aside>

                <div class="add edit">

                  <h2>{* textPasswordSettings *}</h2>

                  {* #changePasswordForm *}

                    {* currentPassword *}

{* newPassword *}

{* newPasswordConfirm *}

                    <div class="form-action-buttons flex">

                      <button type="submit">{* textSaveChanges *}</button>

                      {* savedProfileMessage *}

                    </div>

                  {* /changePasswordForm *}

                </div>

              </div>

            </article>


          </section>


          <section class="integrations">


            <article class="linked-accounts">

              <div class="integration-card">

                <div class="flex-quad-header">

                  <h2>{* textLinkAccountsSettings *}</h2>

                  <p>{* textLinkAccountsDescription *}</p>

                </div>

                <div class="flex-quad-body" id="link-account-aic">

                  {* linkedAccounts *}

                  {* #linkAccountContainer *}

                  {* /linkAccountContainer *}

                  <div class="social-login-buttons link-account" data-button-prefix="{* textConnectWith *}"></div>

                </div>

              </div>

            </article>


          </section>


        </div>

      </div>

    </div>

  </div>

  <div class="footer-container">

    <div class="content-wrapper">

        <span class="help-link">{* textNeedHelp *}{* linkHelp *}</span>

        <div class="footer-text">

        {* textFooter *}

        </div>

        <div class="footer-extra-text">

        {* textFooterExtra *}

        </div>

    </div>

</div>

</div>




CSS Classes Used on This Screen


The following table lists all the CSS classes used on this screen; the table also includes the default CSS specified for each class (note that some classes, such as footer-text, are not spelled out in the base.css file). Click a class name for a more graphical look at the class and how it can be styled. Note that the sample shows a generic use of the class and doesn't necessarily show how the class is used on this particular form.


CSS Class

Default CSS

action-card

.action-card {
    flex-grow: 1;
    flex-basis: 0;
    flex wrap: wrap;
    min-width: 300 px;
    margin: 8 px;
    background-color: #f2f2f2;
    padding: 0 20 px 20 px 20 px
}

action-description existing-value


action-description


add edit


aic-control aic-error

.aic-control {
    cursor:pointer
}

.aic-error {
    color:# fa5151
}

aic-control logout

.aic-control {
   cursor:pointer
}

.logout {
   position: absolute;
   top: 25px;
   right:50px
}

aic-control

.aic-control {
    cursor:pointer
}

aic-error

.aic-error {
    color:# fa5151
}

aic-icon icon-add


aic-icon icon-edit


aic-icon icon-subtract


aic-input

.aic-input {
    border:1px solid # 979797;
    margin - bottom: 15 px;
    color: #444;
    padding:7px;
    border-radius:2px;
    width:100%;
    box-sizing:border-box
}

aic-success


card-body

.card-body {
   padding:15px 25px
}

card-heading aic-control

.aic-control {
   cursor:pointer
}

.card-heading {
   border-bottom: 1px solid #f2f2f2;
   position:relative
}

chevron left

.chevron::before {
   border-style: solid;
   border-width: .12em .12em 0 0;
   content: "";
   display: inline-block;
   height: .65em;
   left: .15em;
   position: relative;
   top: .32em;
   transform: rotate(-45deg);
   vertical-align: top;
   width: .65em;
   border-color:#979797
}

.chevron.left:before, .lang-rtl .chevron.right:before {
  left: .25em;
  transform:rotate(-135deg)
}

codesentto-tel-flag

.codesentto-tel-flag {
    display:none
}

content-wrapper

#content-wrapper {
   background-color: #fff;
   box-shadow:1px 1px 5px 2px rgba(0, 0, 0, .1)
}

delete


edit add


email


flex-quad body


flex-quad-header


footer-container

.footer-container {
   padding: 25px;
   border-top: 1px solid #f2f2f2;
   text-align:center
}

footer-extra-text


footer-text


form-action-buttons flex

.form-action-buttons {
    margin:0 -10px
}

help-link


integration-card


integrations


linked-accounts


logout-container


manage-screen content-wrapper

.manage-screen.content-wrapper {
   position:relative
}

password


phone-group

.phone-group {
    white-space:nowrap;
    margin-left:2px
}

phone


profile-action-icons

.profile-action-icons {
    display:flex;
    flex-direction:row;
    flex-wrap:wrap;
    margin-bottom:13px
}

profile-actions


profile-card


profile-header-actions

.profile-header-actions {
    display: flex;
    flex-direction: row;
    justify - content: space - between
}

profile-header

.profile-header {
   display: flex;
   flex-direction: row;
   flex-wrap:wrap
}

profile-header-image user-photo-container

.profile-header-image {
   text-align:right
}

.profile-header-image .profile-image {
   margin-right: 20px;
   border-radius: 50%;
   max-height: 100px;
   max-width:100px
}

profile-header-text


profile-management-card large

.profile-management-card {
   background-color: #fff;
   box-shadow: 1px 1px 5px 2px rgba(0, 0, 0, .1);
   min-width: 270px;
   max-width: 915px;
   margin-top: 15px;
   overflow:auto
}

.profile-management-card.large .card-body {
   padding:25px
}

profile-management-container profile-security


profile-preferences card-icon


profile-show


profile


return-to-app-container


screen

.screen {
   min-width:460px
}

screen-heading

.screen-heading {
   margin-top:0
}

social-login-buttons

.social-login-buttons button {
    margin: 5px 0;
    padding: 0;
    width:100%
}

verified-identifier

.verified-identifier {
    color:green;
    font-weight:bold;
    float:right;
    margin-right:40px
}




Mapping CSS Classes to UI Elements


The following graphic maps CSS classes to the more-visible UI elements used in the screen:






See Also