1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00
metamask-extension/ui/app/css/itcss/components/send.scss
Etienne Dusseault 0e9c8fb5cc Improved UX for sweeping accounts (#6488)
* Changed max button to checkbox, disabled input if max mode is on, recalculate price according to gas fee if max mode is on

* Disabled insufficient funds message in the modal if max mode is on, displays proper amounts in modal when max mode is on, sets the send amount according to custom gas price after gas modal save, resets the send amount after resetting custom gas price

* Disabled max mode checkbox if gas buttons are loading, refactored gas-modal-page-container

* Implemented new max button & max mode message. Moved insufficient funds error to underneath the send amount field

* Fixed existing integration test to pass, created new tests to ensure send amount field is disabled when max button is clicked and the amount changes when the gas price is changed. Refactored some components
2019-05-20 14:08:08 -02:30

1164 lines
20 KiB
SCSS

.send-screen-wrapper {
display: flex;
flex-flow: column nowrap;
z-index: 25;
font-family: Roboto;
@media screen and (max-width: $break-small) {
width: 100%;
overflow-y: auto;
}
section {
flex: 0 0 auto;
}
}
.send-screen-card {
background-color: #fff;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .08);
padding: 46px 40.5px 26px;
position: relative;
// top: -26px;
align-items: center;
display: flex;
flex-flow: column nowrap;
width: 498px;
flex: 1 0 auto;
@media screen and (max-width: $break-small) {
top: 0;
width: 100%;
box-shadow: none;
padding: 12px;
}
}
/* Send Screen */
.send-screen section {
margin: 4px 16px;
}
.send-screen input {
width: 100%;
font-size: 12px;
}
.send-eth-icon {
border-radius: 50%;
width: 70px;
height: 70px;
border: 1px solid $alto;
box-shadow: 0 0 4px 0 rgba(0, 0, 0, .2);
position: absolute;
top: -35px;
z-index: 25;
padding: 4px;
background-color: $white;
@media screen and (max-width: $break-small) {
position: relative;
top: 0;
}
}
.send-screen-input-wrapper {
width: 95%;
position: relative;
.fa-bolt {
padding-right: 4px;
}
.large-input {
border: 1px solid $dusty-gray;
border-radius: 4px;
margin: 4px 0 20px;
font-size: 16px;
line-height: 22.4px;
font-family: Roboto;
}
.send-screen-gas-input {
border: 1px solid transparent;
}
&__error-message {
display: none;
}
&--error {
input,
.send-screen-gas-input {
border-color: $red !important;
}
.send-screen-input-wrapper__error-message {
display: block;
position: absolute;
bottom: 4px;
font-size: 12px;
line-height: 12px;
left: 8px;
color: $red;
}
}
.send-screen-input-wrapper__error-message {
display: block;
position: absolute;
bottom: 4px;
font-size: 12px;
line-height: 12px;
left: 8px;
color: $red;
}
}
.send-screen-input {
width: 100%;
}
.send-screen-gas-input {
width: 100%;
height: 41px;
border-radius: 3px;
background-color: #f3f3f3;
border-width: 0;
border-style: none;
display: flex;
justify-content: space-between;
align-items: center;
padding-left: 10px;
padding-right: 12px;
font-size: 16px;
color: $scorpion;
}
.send-screen-amount-labels {
display: flex;
flex-direction: row;
justify-content: space-between;
}
.send-screen-gas-labels {
display: flex;
flex-direction: row;
justify-content: space-between;
}
.currency-toggle {
&__item {
color: $curious-blue;
cursor: pointer;
&--selected {
color: $black;
cursor: default;
}
}
}
.send-screen-gas-input-customize {
color: $curious-blue;
font-size: 12px;
cursor: pointer;
}
.gas-tooltip-close-area {
position: fixed;
top: 0;
left: 0;
z-index: 1000;
width: 100%;
height: 100%;
}
.customize-gas-tooltip-container {
position: absolute;
bottom: 50px;
width: 237px;
height: 307px;
background-color: $white;
opacity: 1;
box-shadow: $alto 0 0 5px;
z-index: 1050;
padding: 13px 19px;
font-size: 16px;
border-radius: 4px;
font-family: "Lato";
font-weight: 500;
}
.gas-tooltip-arrow {
height: 25px;
width: 25px;
z-index: 1200;
background: $white;
position: absolute;
transform: rotate(45deg);
left: 107px;
top: 294px;
box-shadow: 2px 2px 2px $alto;
}
.customize-gas-tooltip-container input[type="number"]::-webkit-inner-spin-button {
-webkit-appearance: none;
display: none;
}
.customize-gas-tooltip-container input[type="number"]:hover::-webkit-inner-spin-button {
-webkit-appearance: none;
display: none;
}
.customize-gas-tooltip {
position: relative;
}
.gas-tooltip {
display: flex;
justify-content: center;
}
.gas-tooltip-label {
font-size: 16px;
color: $tundora;
}
.gas-tooltip-header {
padding-bottom: 12px;
}
.gas-tooltip-input-label {
margin-bottom: 5px;
}
.gas-tooltip-input-label i {
color: $silver-chalice;
margin-left: 6px;
}
.customize-gas-input {
width: 178px;
height: 28px;
border: 1px solid $alto;
font-size: 16px;
color: $nile-blue;
padding-left: 8px;
}
.customize-gas-input-wrapper {
position: relative;
}
.gas-tooltip-input-detail {
position: absolute;
top: 4px;
right: 26px;
font-size: 12px;
color: $silver-chalice;
}
.gas-tooltip-input-arrows {
position: absolute;
top: 0;
right: 4px;
width: 17px;
height: 28px;
border: 1px solid #dadada;
border-left: 0;
display: flex;
flex-direction: column;
color: #9b9b9b;
font-size: .8em;
padding: 1px 4px;
cursor: pointer;
}
.token-gas {
&__amount {
display: inline-block;
margin-right: 4px;
}
&__symbol {
display: inline-block;
}
}
.send-screen {
&__title {
color: $scorpion;
font-size: 18px;
line-height: 29px;
}
&__subtitle {
margin: 10px 0 20px;
font-size: 14px;
line-height: 24px;
}
&__send-button,
&__cancel-button {
width: 163px;
text-align: center;
}
&__send-button__disabled {
opacity: .5;
cursor: auto;
}
}
.send-token {
display: flex;
flex-flow: column nowrap;
z-index: 25;
font-family: Roboto;
&__content {
width: 498px;
height: 605px;
background-color: #fff;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .08);
padding: 46px 40.5px 26px;
position: relative;
// top: -26px;
align-items: center;
display: flex;
flex-flow: column nowrap;
flex: 1 0 auto;
@media screen and (max-width: $break-small) {
top: 0;
width: 100%;
box-shadow: none;
padding: 12px;
}
}
.identicon {
position: absolute;
top: -35px;
z-index: 25;
@media screen and (max-width: $break-small) {
position: relative;
top: 0;
flex: 0 0 auto;
}
}
&__title {
color: $scorpion;
font-size: 18px;
line-height: 29px;
}
&__description,
&__balance-text,
&__token-symbol {
margin-top: 10px;
font-size: 14px;
line-height: 24px;
text-align: center;
}
&__token-balance {
font-size: 40px;
line-height: 40px;
margin-top: 13px;
.token-balance__amount {
padding-right: 12px;
}
}
&__button-group {
display: flex;
flex-flow: column nowrap;
align-items: center;
flex: 0 0 auto;
@media screen and (max-width: $break-small) {
margin-top: 24px;
}
button {
width: 163px;
}
}
}
.confirm-send-token {
&__hero-amount-wrapper {
width: 100%;
}
}
.send-v2 {
&__container {
// height: 701px;
width: 380px;
border-radius: 8px;
background-color: $white;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .08);
display: flex;
flex-flow: column nowrap;
z-index: 25;
align-items: center;
font-family: Roboto;
position: relative;
@media screen and (max-width: $break-small) {
width: 100%;
top: 0;
box-shadow: none;
flex: 1 1 auto;
}
}
&__send-header-icon-container {
z-index: 25;
@media screen and (max-width: $break-small) {
position: relative;
top: 0;
}
}
&__send-header-icon {
border-radius: 50%;
width: 48px;
height: 48px;
border: 1px solid $alto;
z-index: 25;
padding: 4px;
background-color: $white;
}
&__send-arrow-icon {
color: #f28930;
transform: rotate(-45deg);
position: absolute;
top: -2px;
left: 0;
font-size: 1.12em;
}
&__arrow-background {
background-color: $white;
height: 14px;
width: 14px;
position: absolute;
top: 52px;
left: 199px;
border-radius: 50%;
z-index: 100;
@media screen and (max-width: $break-small) {
top: 36px;
}
}
&__header {
height: 88px;
width: 380px;
background-color: $athens-grey;
position: relative;
display: flex;
justify-content: center;
align-items: center;
@media screen and (max-width: $break-small) {
height: 59px;
width: 100vw;
}
}
&__header-tip {
height: 25px;
width: 25px;
background: $athens-grey;
position: absolute;
transform: rotate(45deg);
left: 178px;
top: 75px;
@media screen and (max-width: $break-small) {
top: 46px;
left: 0;
right: 0;
margin: 0 auto;
}
}
&__title {
color: $scorpion;
font-size: 22px;
line-height: 29px;
text-align: center;
margin-top: 25px;
}
&__copy {
color: $gray;
font-size: 14px;
line-height: 19px;
text-align: center;
margin-top: 10px;
width: 287px;
}
&__error {
font-size: 12px;
line-height: 12px;
left: 8px;
color: $red;
}
&__error-amount {
margin-top: 5px;
}
&__warning {
font-size: 12px;
line-height: 12px;
left: 8px;
color: $orange;
}
&__error-border {
color: $red;
}
&__form {
padding: 10px 0 25px;
@media screen and (max-width: $break-small) {
margin: 0;
flex: 1 1 auto;
}
}
&__form-header,
&__form-header-copy {
width: 100%;
display: flex;
flex-flow: column;
align-items: center;
}
&__form-row {
margin: 8px 18px 0px;
position: relative;
display: flex;
flex-flow: row;
flex: 1 0 auto;
justify-content: space-between;
}
&__form-field-container {
display: flex;
flex-direction: column;
width: 277px;
}
&__form-field {
flex: 1 1 auto;
min-width: 0;
max-width: 277px;
.currency-display {
color: $tundora;
&__currency-symbol {
color: $tundora;
}
&__converted-value,
&__converted-currency {
color: $tundora;
}
}
.account-list-item {
&__account-secondary-balance {
color: $tundora;
}
}
}
&__form-label {
color: $scorpion;
font-family: Roboto;
font-size: 16px;
line-height: 22px;
width: 95px;
font-weight: 400;
flex: 0 0 auto;
}
&__from-dropdown,
&__asset-dropdown {
width: 100%;
border: 1px solid $alto;
border-radius: 4px;
background-color: $white;
font-family: Roboto;
line-height: 16px;
font-size: 12px;
color: $tundora;
position: relative;
&__close-area {
position: fixed;
top: 0;
left: 0;
z-index: 1000;
width: 100%;
height: 100%;
}
&__list {
z-index: 1050;
position: absolute;
height: 220px;
width: 100%;
border: 1px solid $geyser;
border-radius: 4px;
background-color: $white;
box-shadow: 0 3px 6px 0 rgba(0 ,0 ,0 ,.11);
margin-top: 11px;
margin-left: -1px;
overflow-y: scroll;
}
}
&__from-dropdown {
height: 73px;
}
&__asset-dropdown {
height: 54px;
border: none;
&__asset {
display: flex;
flex-flow: row nowrap;
align-items: center;
padding: 0 8px;
cursor: pointer;
&:hover {
background-color: rgba($alto, 0.2);
}
}
&__asset-icon {
.identicon {
border: 1px solid $alto;
}
}
&__asset-data {
display: flex;
flex-flow: column nowrap;
margin-left: 8px;
}
&__symbol {
font-size: 16px;
margin-bottom: 2px;
}
&__name {
display: flex;
flex-flow: row nowrap;
font-size: 12px;
&__label {
margin-right: .25rem;
}
}
&__close-area {
z-index: 2000;
}
&__list {
z-index: 2050;
position: absolute;
height: 220px;
width: 100%;
border: 1px solid $geyser;
border-radius: 4px;
background-color: $white;
box-shadow: 0 3px 6px 0 rgba(0 ,0 ,0 ,.11);
top: 65px;
left: 0;
box-sizing: content-box;
overflow-y: scroll;
margin-top: 0;
padding: 4px 0;
.send-v2__asset-dropdown__asset {
padding: 8px;
}
}
&__input-wrapper {
border: 1px solid $alto;
border-radius: 4px;
height: 100%;
&--opened {
position: relative;
z-index: 2050;
}
.send-v2__asset-dropdown__asset {
height: 100%;
&:hover {
background-color: $white;
}
}
}
&__input {
z-index: 1025;
position: relative;
height: 54px;
width: 100%;
border: none;
border-radius: 4px;
background-color: $white;
color: $tundora;
padding: 10px;
font-family: Roboto;
font-size: 16px;
line-height: 21px;
}
}
&__to-autocomplete {
position: relative;
&__down-caret {
z-index: 1026;
position: absolute;
top: 18px;
right: 12px;
}
&__qr-code {
z-index: 1026;
position: absolute;
top: 13px;
right: 33px;
cursor: pointer;
padding: 8px 5px 5px;
border-radius: 4px;
}
&__qr-code:hover {
background: #f1f1f1;
}
&__input.with-qr {
padding-right: 65px;
}
}
&__to-autocomplete {
display: flex;
flex-direction: column;
z-index: 1025;
position: relative;
height: 54px;
width: 100%;
border: 1px solid $alto;
border-radius: 4px;
background-color: $white;
color: $tundora;
padding: 0 10px;
font-family: Roboto;
line-height: 21px;
&__input {
font-size: 16px;
height: 100%;
border: none;
}
&__resolved {
font-size: 12px;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
height: 30px;
cursor: pointer;
+ .send-v2__to-autocomplete__qr-code {
top: 2px;
right: 0;
}
}
}
&__memo-text-area, &__hex-data {
&__input {
z-index: 1025;
position: relative;
height: 54px;
width: 100%;
border: 1px solid $alto;
border-radius: 4px;
background-color: $white;
color: $tundora;
padding: 10px;
font-family: Roboto;
font-size: 16px;
line-height: 21px;
}
}
&__amount-max {
font-family: Roboto;
font-size: 12px;
position: relative;
display: inline-block;
width: 56px;
height: 20px;
margin-top: 5px;
&__button {
width: 56px;
height: 20px;
position: absolute;
border: 2px solid #B0D7F2;
border-radius: 6px;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
color: #2f9ae0;
&__disabled {
color: #B0D7F2;
cursor: auto;
}
}
input:checked + &__button {
background-color: #037DD6;
border: 2px solid #037DD6;
color: #fff;
}
}
&__amount-max input {
opacity: 0;
width: 0;
height: 0;
}
&__gas-fee-display {
width: 100%;
position: relative;
.currency-display--message {
padding: 8px 38px 8px 10px;
display: flex;
align-items: center;
}
}
&__sliders-icon-container {
display: flex;
align-items: center;
justify-content: center;
height: 24px;
width: 24px;
border: 1px solid $curious-blue;
border-radius: 4px;
background-color: $white;
position: absolute;
right: 15px;
top: 14px;
cursor: pointer;
font-size: 1em;
}
&__sliders-icon {
color: $curious-blue;
}
&__memo-text-area {
&__input {
padding: 6px 10px;
}
}
&__footer {
height: 92px;
width: 100%;
display: flex;
justify-content: space-evenly;
align-items: center;
border-top: 1px solid $alto;
background: $white;
padding: 0 12px;
flex-shrink: 0;
}
&__next-btn,
&__cancel-btn {
width: 163px;
margin: 0 4px;
}
&__customize-gas {
border: 1px solid #D8D8D8;
border-radius: 4px;
background-color: #FFFFFF;
box-shadow: 0 2px 4px 0 rgba(0,0,0,0.14);
font-family: Roboto;
display: flex;
flex-flow: column;
@media screen and (max-width: $break-small) {
width: 100vw;
height: 100vh;
}
&__header {
height: 52px;
border-bottom: 1px solid $alto;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 22px;
@media screen and (max-width: $break-small) {
flex: 0 0 auto;
}
}
&__title {
margin-left: 19.25px;
}
&__close::after {
content: '\00D7';
font-size: 1.8em;
color: $dusty-gray;
font-family: sans-serif;
cursor: pointer;
margin-right: 19.25px;
}
&__content {
display: flex;
flex-flow: column nowrap;
height: 100%;
}
&__body {
display: flex;
margin-bottom: 24px;
@media screen and (max-width: $break-small) {
flex-flow: column;
flex: 1 1 auto;
}
}
&__footer {
height: 75px;
border-top: 1px solid $alto;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 22px;
position: relative;
@media screen and (max-width: $break-small) {
flex: 0 0 auto;
}
}
&__buttons {
display: flex;
justify-content: space-between;
margin-right: 21.25px;
}
&__revert, &__cancel, &__save, &__save__error {
display: flex;
justify-content: center;
align-items: center;
padding: 0 3px;
cursor: pointer;
}
&__revert {
color: $silver-chalice;
font-size: 16px;
margin-left: 21.25px;
}
&__cancel, &__save, &__save__error {
width: 85.74px;
min-width: initial;
}
&__save__error {
opacity: 0.5;
cursor: auto;
}
&__error-message {
display: block;
position: absolute;
top: -18px;
right: 0;
font-size: 12px;
line-height: 12px;
color: $red;
width: 100%;
text-align: center;
}
&__cancel {
margin-right: 10px;
}
}
&__gas-modal-card {
width: 360px;
display: flex;
flex-flow: column;
align-items: flex-start;
padding-left: 20px;
&__title {
height: 26px;
color: $tundora;
font-family: Roboto;
font-size: 20px;
line-height: 26px;
margin-top: 17px;
}
&__copy {
height: 38px;
width: 314px;
color: $tundora;
font-family: Roboto;
font-size: 14px;
line-height: 19px;
margin-top: 17px;
}
.customize-gas-input-wrapper {
margin-top: 17px;
}
.customize-gas-input {
height: 54px;
width: 315px;
border: 1px solid $geyser;
background-color: $white;
padding-left: 15px;
}
.gas-tooltip-input-arrows {
width: 32px;
height: 54px;
border-left: 1px solid #dadada;
font-size: 18px;
color: $tundora;
right: 0px;
padding: 0;
display: flex;
justify-content: space-around;
align-items: center;
}
.gas-tooltip-input-arrow-wrapper {
align-items: center;
align-self: stretch;
display: flex;
flex-direction: column;
flex-grow: 1;
justify-content: center;
}
input[type="number"]::-webkit-inner-spin-button {
-webkit-appearance: none;
display: none;
}
input[type="number"]:hover::-webkit-inner-spin-button {
-webkit-appearance: none;
display: none;
}
}
}
.advanced-gas-options-btn {
display: flex;
justify-content: flex-end;
font-size: 14px;
color: #2f9ae0;
cursor: pointer;
margin-top: 5px;
}
.sliders-icon-container {
display: flex;
align-items: center;
justify-content: center;
height: 24px;
width: 24px;
border: 1px solid $curious-blue;
border-radius: 4px;
background-color: $white;
position: absolute;
right: 15px;
top: 14px;
cursor: pointer;
font-size: 1em;
}
.gas-fee-reset {
display: flex;
align-items: center;
justify-content: center;
height: 24px;
border-radius: 4px;
background-color: #fff;
position: absolute;
right: 12px;
top: 14px;
cursor: pointer;
font-size: 1em;
font-size: 14px;
color: #2f9ae0;
font-family: Roboto;
}
.sliders-icon {
color: $curious-blue;
}