UNPKG

ploy-test-one

Version:

Passwordless authentication Study

596 lines (541 loc) 12.8 kB
[class|="passwordless"] { /* all: initial; protect against external styles */ box-sizing: border-box; font-family: "Open Sans", Inter, Avenir, Helvetica, Arial, sans-serif; font-stretch: 100%; --passwordless-primary: #0972d3; --passwordless-primary-hover: #042b4f; --passwordless-secondary: white; --passwordless-secondary-hover: #eff6fc; --passwordless-primary-text: black; --passwordless-secondary-text: black; --passwordless-error-text: red; --passwordless-soft-shadow: #efefef; --passwordless-disabled: #e9ebed; --passwordless-disabled-hover: #9aa7b5; --passwordless-banner: #f4f4f4; --passwordless-box-shadow: grey; --passwordless-line: #9aa7b5; --passwordless-disabled-input: #f5f5f5; --passwordless-divider: rgba(0, 0, 0, 0.1); --passwordless-error: red; --passwordless-background: white; } .passwordless-button { display: inline-block; background: var(--passwordless-primary); color: var(--passwordless-secondary); cursor: pointer; text-align: center; border-radius: 20px; font-size: 14px; font-weight: 800; line-height: 22px; letter-spacing: 0.07px; padding: 4px 20px; border: 2px solid var(--passwordless-primary); min-height: 2rem; } .passwordless-button-sign-in { width: 18rem; } .passwordless-button:hover, .passwordless-button:focus { background-color: var(--passwordless-primary-hover); border-color: var(--passwordless-primary-hover); outline: none; } .passwordless-button svg { fill: var(--passwordless-background); } .passwordless-button-outlined { background-color: var(--passwordless-background); color: var(--passwordless-primary); } .passwordless-button-outlined svg { fill: var(--passwordless-primary); } .passwordless-button-outlined:hover { border-color: var(--passwordless-secondary-text); color: var(--passwordless-secondary-text); background-color: var(--passwordless-secondary-hover); } .passwordless-button-outlined:hover svg { fill: var(--passwordless-secondary-text); } .passwordless-button:disabled { cursor: unset; border-color: var(--passwordless-disabled); color: var(--passwordless-disabled-hover); background-color: var(--passwordless-disabled); } .passwordless-button:disabled svg { fill: var(--passwordless-disabled-hover); } .passwordless-plain-button { display: inline-block; background: var(--passwordless-background); color: initial; font-weight: normal; border: none; text-decoration: underline; } .passwordless-plain-button:hover, .passwordless-plain-button:focus { text-decoration: none; background-color: var(--passwordless-soft-shadow); border: none; } .passwordless-svg-icon-container { height: 24px; width: 24px; } .passwordless-svg-icon-container.passwordless-flex-align-start svg { margin-top: 2px; } .passwordless-main-container { color: var(--passwordless-primary-text); background-color: var(--passwordless-soft-shadow); display: flex; flex-direction: column; height: 100%; width: 100%; align-items: center; justify-content: center; position: relative; gap: 1rem; padding: 1rem; min-height: 300px; color-scheme: only light; } .passwordless-main-background-image { position: absolute; width: 100%; height: 100%; object-fit: cover; } .passwordless-card-container { background-color: var(--passwordless-background); border-radius: 16px; box-sizing: border-box; padding: 32px; position: relative; max-width: 100%; width: 500px; text-align: center; } .passwordless-customer-logo { max-width: 100px; max-height: 80px; object-fit: contain; display: inline-block; } .passwordless-text-left { text-align: left; } .passwordless-text-center { text-align: center; } .passwordless-text-right { text-align: right; } .passwordless-customer-name { font-weight: normal; display: block; font-size: 1.2em; margin-top: 1em; margin-bottom: 1.5em; margin-left: 0; margin-right: 0; } .passwordless-link { text-decoration: underline; color: unset; cursor: pointer; color: var(--passwordless-secondary-text); } button.passwordless-link { background: none; border: none; text-decoration: underline; cursor: pointer; padding: 0; } .passwordless-link:hover { color: var(--passwordless-primary); } .passwordless-link-clicked { text-decoration: underline; color: unset; cursor: unset; } .passwordless-align-right { text-align: right; } .passwordless-align-left { text-align: left; } .passwordless-flex { display: flex; align-items: center; justify-content: center; gap: 0.6rem; flex-wrap: wrap; } .passwordless-flex-col { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; flex-wrap: wrap; } .passwordless-flex-vertical-buttons { align-items: center; flex-direction: column; } .passwordless-grid { display: grid; grid-template-columns: 15rem 15rem 15rem; align-items: center; gap: 0.6rem; } .passwordless-mobile-spacer { display: none; } .passwordless-input-label { text-align: left; flex: 1; } .passwordless-email-input { height: 2rem; border: 1px solid var(--passwordless-box-shadow); box-shadow: 0px 0px 5px var(--passwordless-box-shadow); border-radius: 0.25rem; text-align: left; padding: 0.5rem; min-width: 15rem; appearance: none; flex-basis: 100%; } .passwordless-email-input:focus { outline: transparent; box-shadow: 0px 0px 5px 1px var(--passwordless-primary); } .passwordless-email-input:disabled { background-color: var(--passwordless-disabled-input); } .passwordless-email-title { margin-bottom: 0; font-size: 1.17em; margin-top: 1em; margin-left: 0; margin-right: 0; font-weight: bold; } .passwordless-loading-spinner { display: inline-block; width: 20px; height: 20px; border: 2px solid var(--passwordless-primary); border-radius: 50%; border-bottom-color: transparent; animation: rotate360 1.2s linear infinite; } @keyframes rotate360 { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .passwordless-fido-recommendation { position: fixed; top: 0px; right: 0px; margin: 1rem; padding: 0.5rem; display: flex; align-items: center; justify-content: center; gap: 0.6rem; flex-wrap: wrap; box-shadow: 0px 0px 5px var(--passwordless-box-shadow); border-radius: 5px; animation: 1s slideInFromRight 1s ease-out; animation-fill-mode: both; background-color: var(--passwordless-secondary); color: var(--passwordless-primary-text); } .passwordless-fido-recommendation-text { max-width: 300px; } @keyframes slideInFromRight { 0% { transform: translateX(calc(100% + 2rem)); } 100% { transform: translateX(0); } } .passwordless-table { position: fixed; top: 0px; right: 0px; margin: 1rem; animation: slideInFromRight 0.5s; animation-fill-mode: both; border-collapse: collapse; box-shadow: 0px 0px 5px var(--passwordless-box-shadow); padding: 0.5rem; border-radius: 5px; background-color: var(--passwordless-secondary); overflow: hidden; width: min(50rem, 100% - 2rem); color: var(--passwordless-primary-text); background-color: var(--passwordless-secondary); text-align: start; } .passwordless-table table { border-collapse: collapse; width: 100%; } .passwordless-table th { text-align: left; font-weight: 800; border-style: none; padding: 0.5rem 0.5rem; } .passwordless-table td { padding: 0.5rem 0.5rem; border-top: 1px solid var(--passwordless-divider); border-bottom: 1px solid var(--passwordless-divider); border-collapse: collapse; } .passwordless-friendly-name { padding: 0.25rem; font-size: 1rem; font-weight: 800; cursor: pointer; text-decoration: underline; color: var(--passwordless-primary); background: none; border: none; flex: 1 1 auto; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 95%; } .passwordless-friendly-name:disabled { cursor: unset; text-decoration: unset; opacity: 0.5; } .passwordless-edit-icon { display: inline-block; margin-right: 0.25rem; width: 15px; top: 2px; position: relative; fill: var(--passwordless-primary); } .passwordless-authenticators-action-row { margin: 0.5rem 1rem; display: flex; align-items: center; justify-content: flex-end; gap: 1rem; margin-right: 1rem; flex-wrap: wrap; } .passwordless-authenticator-error { margin-top: 1rem; max-width: 100%; align-self: center; text-align: center; color: var(--passwordless-error); font-style: italic; } .passwordless-edit-friendly-name { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.5rem; width: 100%; } .passwordless-confirm-delete-device { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 0.5rem; width: 100%; } .passwordless-confirm-delete-device span { flex-grow: 1; } .passwordless-confirm-delete-device div { display: flex; gap: 0.6rem; } .passwordless-friendly-name-input { height: 2rem; border: 1px solid var(--passwordless-box-shadow); box-shadow: 0px 0px 5px var(--passwordless-box-shadow); border-radius: 0.25rem; text-align: left; padding: 0.5rem; min-width: 15rem; appearance: none; flex-grow: 1; } .passwordless-friendly-name-input:focus { outline: transparent; box-shadow: 0px 0px 5px 1px var(--passwordless-primary); } .passwordless-friendly-name-input:disabled { box-shadow: unset; background-color: var(--passwordless-disabled-input); } .passwordless-table-hide-headers th { opacity: 0; } .passwordless-table-col-friendly-name { width: 12rem; max-width: 21rem; } .passwordless-table-col-created-at { width: 12rem; } .passwordless-table-col-last-sign-in { width: 12rem; } .passwordless-table-col-delete { width: 0px; text-align: right; } .passwordless-table-col-confirm-delete { width: 15rem; } .passwordless-flex.passwordless-flex-align-start { align-items: start; } .passwordless-flex.passwordless-flex-align-start svg { margin-top: 5px; } .passwordless-flex.passwordless-flex-align-start svg.rotate-45 { transform: rotate(45deg); } .passwordless-flex.passwordless-flex-justify-end, .passwordless-table-col-confirm-delete .passwordless-flex { justify-content: flex-end; } .passwordless-table td { height: 3.5rem; } @media only screen and (max-width: 800px) { .passwordless-grid { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.6rem; } .passwordless-table { left: 0; } .passwordless-table table { width: 100%; } .passwordless-mobile-spacer { display: block; margin-bottom: 1rem; } .passwordless-table-col-created-at { display: none; } .passwordless-friendly-name-input { width: 100%; } } .passwordless-table-cell-ellipsis { position: relative; } .passwordless-table-cell-ellipsis:before { content: " "; visibility: hidden; } .passwordless-table-cell-ellipsis span { position: absolute; left: 0; right: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .passwordless-table td.passwordless-table-cell-ellipsis span { left: 0.5rem; } .passwordless-button-delete { height: 2rem; padding: 0.25rem 0.75rem; background-color: var(--passwordless-secondary); border: 2px solid var(--passwordless-primary); fill: var(--passwordless-primary); } .passwordless-button-delete:disabled .passwordless-delete-icon { fill: var(--passwordless-disabled-hover); } .passwordless-delete-icon { height: 100%; display: block; fill: var(--passwordless-primary); } .passwordless-no-devices-yet { background: var(--passwordless-banner); display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; text-align: center; padding: 0.5rem; } .passwordless-button-cancel { color: var(--passwordless-primary); background-color: var(--passwordless-secondary); border: 2px solid var(--passwordless-primary); } .passwordless-button-cancel:hover { border-color: var(--passwordless-secondary-text); color: var(--passwordless-secondary-text); background-color: var(--passwordless-secondary-hover); } .passwordless-username { font-weight: 700; } .passwordless-error { color: var(--passwordless-error-text); margin-top: 1rem; } .passwordless-between-lines { margin: 15px 0px; display: flex; flex-direction: row; } .passwordless-between-lines:before, .passwordless-between-lines:after { content: ""; flex: 1 1; border-bottom: 1px solid var(--passwordless-line); margin: auto; } .passwordless-between-lines:before { margin-right: 20px; } .passwordless-between-lines:after { margin-left: 20px; }