From a25d7f3911598cd9f0644f24f093ee72eec37d52 Mon Sep 17 00:00:00 2001 From: sairaj mote Date: Sat, 3 Jun 2023 03:42:00 +0530 Subject: [PATCH] Minor UI/UX changes --- css/main.css | 54 +++++++++++++++++++----------------------------- css/main.min.css | 2 +- css/main.scss | 43 ++++++++++++++------------------------ index.html | 29 +++++++++++++++++--------- 4 files changed, 56 insertions(+), 72 deletions(-) diff --git a/css/main.css b/css/main.css index 9ed96f4..2d67d37 100644 --- a/css/main.css +++ b/css/main.css @@ -22,7 +22,7 @@ body { --background-color: 241, 243, 248; --danger-color: rgb(255, 75, 75); --green: #1cad59; - --yellow: rgb(220, 165, 0); + --yellow: rgb(255, 207, 65); scrollbar-width: thin; scrollbar-gutter: stable; color: rgba(var(--text-color), 1); @@ -72,15 +72,8 @@ a:focus-visible { box-shadow: 0 0 0 0.1rem rgba(var(--text-color), 1) inset; } -a.button { - padding: 0.4rem 0.6rem; - border-radius: 0.3rem; - font-size: 0.9rem; - font-weight: 500; - color: inherit; -} - -button { +button, +.button { -webkit-user-select: none; -moz-user-select: none; user-select: none; @@ -99,18 +92,22 @@ button { justify-content: center; flex-shrink: 0; } -button:focus-visible { +button:focus-visible, +.button:focus-visible { outline: var(--accent-color) solid medium; } -button:not(:disabled) { +button:not(:disabled), +.button:not(:disabled) { color: var(--accent-color); cursor: pointer; } -button .icon { +button .icon, +.button .icon { fill: var(--accent-color); } .button { + display: inline-flex; background-color: rgba(var(--text-color), 0.06); } .button--primary, .button--danger { @@ -128,6 +125,12 @@ button .icon { .button--small { padding: 0.4rem 0.5rem; } +.button--colored { + color: var(--accent-color) !important; +} +.button--colored .icon { + fill: var(--accent-color); +} .cta { text-transform: uppercase; @@ -854,10 +857,9 @@ ol li::before { } .transaction { - grid-template-columns: auto 1fr auto; + grid-template-columns: auto 1fr; gap: 0.5rem 1rem; align-items: center; - grid-template-areas: "icon time amount" "icon receiver receiver" "icon txid txid"; } .transaction:not(:last-of-type) { padding-bottom: 2rem; @@ -865,7 +867,7 @@ ol li::before { .transaction__amount { white-space: nowrap; } -.transaction.out .icon { +.transaction.out .transaction__icon .icon { fill: var(--danger-color); } .transaction.out .transaction__amount { @@ -874,7 +876,7 @@ ol li::before { .transaction.out .transaction__amount::before { content: "- "; } -.transaction.in .icon { +.transaction.in .transaction__icon .icon { fill: var(--green); } .transaction.in .transaction__amount { @@ -883,14 +885,10 @@ ol li::before { .transaction.in .transaction__amount::before { content: "+ "; } -.transaction.unconfirmed-tx { - grid-template-areas: "icon time amount" "icon receiver receiver" "icon txid txid" "icon unconfirmed unconfirmed" "icon badge badge"; -} -.transaction.unconfirmed-tx .icon { +.transaction.unconfirmed-tx .transaction__icon .icon { fill: var(--yellow); } .transaction__icon { - grid-area: icon; display: flex; align-items: center; justify-content: center; @@ -900,39 +898,29 @@ ol li::before { border-radius: 2rem; } .transaction__receiver { - grid-area: receiver; font-weight: 500; margin-bottom: 0.3rem; line-height: 1.5; } .transaction__time { - grid-area: time; font-size: 0.9rem; color: rgba(var(--text-color), 0.8); } .transaction .pending-badge { - grid-area: badge; font-size: 0.8rem; padding: 0.2rem 0.5rem; border-radius: 0.5rem; background-color: var(--yellow); - color: rgba(var(--foreground-color), 1); + color: rgba(0, 0, 0, 0.8); font-weight: 500; justify-self: flex-start; } .transaction__amount { - grid-area: amount; font-size: 1rem; font-weight: 700; } .transaction__id { - grid-area: txid; font-size: 0.9rem; - color: rgba(var(--text-color), 0.8); -} -.transaction .unconfirmed-wrapper { - grid-area: unconfirmed; - padding: 0.5rem 0; } .tx-participant:not(:last-of-type) { diff --git a/css/main.min.css b/css/main.min.css index 39d1ca9..d25cad3 100644 --- a/css/main.min.css +++ b/css/main.min.css @@ -1 +1 @@ -*{padding:0;margin:0;box-sizing:border-box;font-family:"Roboto",sans-serif}:root{font-size:clamp(1rem,1.2vmax,1.2rem)}html,body{height:100%}body{--accent-color: #4d77ff;--accent-color-rgb: 77, 119, 255;--text-color: 20, 20, 20;--foreground-color: 252, 253, 255;--background-color: 241, 243, 248;--danger-color: rgb(255, 75, 75);--green: #1cad59;--yellow: rgb(220, 165, 0);scrollbar-width:thin;scrollbar-gutter:stable;color:rgba(var(--text-color), 1);background-color:rgba(var(--background-color), 1);transition:background-color .3s;position:relative;display:flex;flex-direction:column}body[data-theme=dark]{--accent-color: #a0b6ff;--accent-color-rgb: 160, 182, 255;--text-color: 220, 220, 220;--foreground-color: 27, 28, 29;--background-color: 21, 22, 22;--danger-color: rgb(255, 106, 106);--green: #00e676;--yellow: rgb(255, 213, 5)}body[data-theme=dark] sm-popup::part(popup){background-color:rgba(var(--foreground-color), 1)}p,strong{font-size:.9rem;max-width:65ch;line-height:1.7;color:rgba(var(--text-color), 0.9)}.warning{line-height:normal;padding:1rem;background-color:khaki;border-radius:.5rem;font-weight:500;color:rgba(0,0,0,.7)}a{text-decoration:none;color:var(--accent-color)}a:focus-visible{box-shadow:0 0 0 .1rem rgba(var(--text-color), 1) inset}a.button{padding:.4rem .6rem;border-radius:.3rem;font-size:.9rem;font-weight:500;color:inherit}button{-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;display:inline-flex;border:none;background-color:rgba(0,0,0,0);overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;font-size:.9rem;font-weight:500;white-space:nowrap;padding:.8rem;border-radius:.3rem;justify-content:center;flex-shrink:0}button:focus-visible{outline:var(--accent-color) solid medium}button:not(:disabled){color:var(--accent-color);cursor:pointer}button .icon{fill:var(--accent-color)}.button{background-color:rgba(var(--text-color), 0.06)}.button--primary,.button--danger{color:rgba(var(--background-color), 1) !important}.button--primary .icon,.button--danger .icon{fill:rgba(var(--background-color), 1)}.button--primary{background-color:var(--accent-color)}.button--danger{background-color:var(--danger-color)}.button--small{padding:.4rem .5rem}.cta{text-transform:uppercase;font-size:.9rem;font-weight:700;letter-spacing:.05em;padding:.8rem 1rem}.icon{width:1.2rem;height:1.2rem;fill:rgba(var(--text-color), 0.8);flex-shrink:0}.icon-only{padding:.5rem;border-radius:.3rem}button:disabled{opacity:.5}a:-webkit-any-link:focus-visible{outline:rgba(var(--text-color), 1) .1rem solid}a:-moz-any-link:focus-visible{outline:rgba(var(--text-color), 1) .1rem solid}a:any-link:focus-visible{outline:rgba(var(--text-color), 1) .1rem solid}details summary{display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;align-items:center;justify-content:space-between;color:var(--accent-color)}details[open] summary{margin-bottom:1rem}details[open]>summary .down-arrow{transform:rotate(180deg)}sm-input,sm-textarea{width:100%;--border-radius: 0.4rem;--background-color: rgba(var(--foreground-color), 1)}sm-input button .icon,sm-textarea button .icon{fill:var(--accent-color)}sm-button{--padding: 0.8rem}sm-button[variant=primary] .icon{fill:rgba(var(--background-color), 1)}sm-button[disabled] .icon{fill:rgba(var(--text-color), 0.6)}sm-button.danger{--background: var(--danger-color);color:rgba(var(--background-color), 1)}sm-spinner{--size: 1rem;--stroke-width: 0.1rem}sm-form{--gap: 1rem}sm-select{font-size:.9rem;--padding: 0.6rem 0.3rem 0.6rem 0.6rem}sm-option{font-size:.9rem}sm-chips{--gap: 0;background-color:rgba(var(--text-color), 0.06);border-radius:.3rem;padding:.3rem}sm-chip{font-size:.9rem;--border-radius: 0.2rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}sm-chip[selected]{color:rgba(var(--background-color), 1);--background: var(--accent-color)}ul,ol{list-style:none}ol{counter-reset:item}ol li{position:relative;display:flex;align-items:flex-start;counter-increment:item}ol li:not(:last-of-type){padding-bottom:1.5rem}ol li:not(:last-of-type)::after{content:"";position:absolute;width:.1rem;height:calc(100% - 2.2rem);background:var(--accent-color);margin-left:.7rem;margin-top:2rem}ol li::before{content:counter(item);display:flex;align-items:center;justify-content:center;text-align:center;font-size:.9rem;font-weight:500;margin-top:.15rem;margin-right:1rem;line-height:1;width:1.5rem;height:1.5rem;border-radius:100%;flex-shrink:0;color:rgba(var(--text-color), 0.8);background:rgba(var(--text-color), 0.1)}.overflow-ellipsis{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.wrap-around{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word}.full-bleed{grid-column:1/-1}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.sticky{position:-webkit-sticky;position:sticky}.top-0{top:0}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.flex-direction-column{flex-direction:column}.grid{display:grid}.flow-column{grid-auto-flow:column}.gap-0-3{gap:.3rem}.gap-0-5{gap:.5rem}.gap-1{gap:1rem}.gap-1-5{gap:1.5rem}.gap-2{gap:2rem}.gap-3{gap:3rem}.text-align-right{text-align:right}.align-start{align-content:flex-start}.align-center{align-items:center}.align-end{align-items:flex-end}.text-center{text-align:center}.justify-start{justify-items:start}.justify-center{justify-content:center}.justify-right{margin-left:auto}.align-self-center{align-self:center}.align-self-end{align-self:end}.justify-self-center{justify-self:center}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.flex-direction-column{flex-direction:column}.space-between{justify-content:space-between}.w-100{width:100%}.h-100{height:100%}.label{font-size:.9rem;color:rgba(var(--text-color), 0.8);font-weight:500;margin-bottom:.2rem}.button--primary .ripple,.button--danger .ripple{background:radial-gradient(circle, rgba(var(--background-color), 0.3) 0%, rgba(0, 0, 0, 0) 50%)}.ripple{height:8rem;width:8rem;position:absolute;border-radius:50%;transform:scale(0);background:radial-gradient(circle, rgba(var(--text-color), 0.3) 0%, rgba(0, 0, 0, 0) 50%);pointer-events:none}.interactive{position:relative;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.empty-state{display:grid;width:100%;padding:1.5rem 0}.observe-empty-state:empty{display:none !important}.observe-empty-state:not(:empty)+.empty-state{display:none !important}.bullet-point{display:flex;align-items:center;justify-content:center;margin:0 .8ch}.bullet-point::after{content:"";height:.4ch;width:.4ch;border-radius:.5em;background-color:var(--accent-color)}.margin-right-0-3{margin-right:.3rem}.margin-right-0-5{margin-right:.5rem}.margin-right-auto{margin-right:auto}.margin-left-0-5{margin-left:.5rem}.margin-left-auto{margin-left:auto}.margin-top-1-5{margin-top:1.5rem}.margin-bottom-0-5{margin-bottom:.5rem}.margin-bottom-1{margin-bottom:1rem}.margin-bottom-1-5{margin-bottom:1.5rem}.margin-bottom-2{margin-bottom:2rem}.icon-button{padding:.6rem;border-radius:.8rem;background-color:rgba(var(--text-color), 0.1);height:-webkit-max-content;height:-moz-max-content;height:max-content}.icon-button .icon{fill:var(--accent-color)}.page{height:100%}.page__header{display:flex;justify-content:space-between;margin-bottom:1.5rem;min-height:8rem}.page__header .grid{margin-top:auto}.page__header h1{margin-top:auto;font-size:2rem}#confirmation_popup,#prompt_popup{flex-direction:column}#confirmation_popup h4,#prompt_popup h4{margin-bottom:.5rem}#confirmation_popup sm-button,#prompt_popup sm-button{margin:0}#confirmation_popup .flex,#prompt_popup .flex{padding:0;margin-top:1rem}#confirmation_popup .flex sm-button:first-of-type,#prompt_popup .flex sm-button:first-of-type{margin-right:.6rem;margin-left:auto}#prompt_message{margin-bottom:1.5rem}.popup__header{display:grid;gap:.5rem;width:100%;padding:0 1.5rem;align-items:center}.popup__header__close{padding:.5rem;margin-left:-0.5rem}.flo-icon{margin-right:.3rem;height:1.5rem;width:1.5rem}#secondary_pages{display:flex;flex-direction:column;width:100%}#secondary_pages header{padding:1.5rem}#secondary_pages .inner-page{height:100%}#landing>section{justify-content:center;justify-items:center;align-items:center;text-align:center;padding:8vw 0}#landing h1{font-size:clamp(2rem,5vw,5rem)}#loading_page{display:grid;gap:1rem;place-content:center;place-items:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:20;background-color:rgba(var(--foreground-color), 1)}#main_header{padding:1.5rem max(1rem,4vw)}#main_card{display:grid;grid-template-columns:minmax(0, 1fr);grid-template-rows:auto 1fr;height:100%;width:100%;transition:background-color .3s;background-color:rgba(var(--foreground-color), 1)}#main_navbar{display:flex;background:rgba(var(--text-color), 0.03)}#main_navbar.hide-away{position:absolute}#main_navbar ul{display:flex;height:100%;width:100%}#main_navbar ul li{width:100%}.nav-item{position:relative;display:flex;flex:1;width:100%;flex-direction:column;align-items:center;justify-content:center;padding:.5rem .3rem;color:var(--text-color);font-size:.9rem;border-radius:.3rem;font-weight:500}.nav-item .icon{transition:transform .2s cubic-bezier(0.175, 0.885, 0.32, 1.275)}.nav-item__title{margin-top:.3rem;transition:opacity .2s,transform .2s cubic-bezier(0.175, 0.885, 0.32, 1.275)}.nav-item--active{color:var(--accent-color)}.nav-item--active .icon{fill:var(--accent-color);transform:translateY(50%)}.nav-item--active .nav-item__title{transform:translateY(100%);opacity:0}.nav-item__indicator{position:absolute;bottom:0;width:2rem;height:.3rem;background:var(--accent-color);border-radius:1rem 1rem 0 0;z-index:1}.inner-page{padding:0 1.5rem;flex:1;overflow-y:auto;align-content:start}.password-field label{display:flex}.password-field label input:checked~.visible{display:none}.password-field label input:not(:checked)~.invisible{display:none}.multi-state-button{display:grid;text-align:center;align-items:center;justify-items:center}.multi-state-button>*{grid-area:1/1/2/2}.multi-state-button button{z-index:1;width:100%}.scrolling-wrapper{overflow-y:auto}#pages_container{overflow-y:auto;padding:0 1rem}.primary-action{display:flex;padding:.8rem 1rem;gap:.5rem;white-space:normal;font-size:.9rem;border-radius:.5rem;background-color:rgba(0,0,0,0);border:thin solid rgba(var(--text-color), 0.3);text-align:left;flex-shrink:1}.primary-action .icon{fill:var(--accent-color)}#flo_id_warning{padding-bottom:1.5rem;border-bottom:thin solid rgba(var(--text-color), 0.3)}#flo_id_warning .icon{height:4rem;width:4rem;padding:1rem;background-color:#ffc107;border-radius:3rem;fill:rgba(0,0,0,.8);margin-bottom:1.5rem}.generated-id-card{display:grid;gap:1rem}.generated-id-card h5{margin-bottom:.3rem}#address_balance_card{padding:1.5rem;border-radius:.5rem;margin-top:.5rem;margin-bottom:1.5rem;background-color:rgba(var(--accent-color-rgb), 0.2)}#address_balance{font-size:1.2rem;font-weight:700;color:var(--accent-color)}.card{padding:.5rem 0;border:none}.card:not(:last-of-type){border-bottom:solid thin rgba(var(--text-color), 0.3)}.remove-card-wrapper{min-height:2rem}.sender-card{display:grid;gap:.5rem;margin-bottom:.5rem}.sender-card sm-input{border-radius:.5rem}.sender-card sm-input.error{border:var(--danger-color) solid}.receiver-card{display:grid;gap:.5rem}.balance-wrapper{padding-bottom:.5rem;border-bottom:thin solid rgba(var(--text-color), 0.3)}#transactions_list{display:grid;gap:2rem;padding-bottom:4rem}.transaction{grid-template-columns:auto 1fr auto;gap:.5rem 1rem;align-items:center;grid-template-areas:"icon time amount" "icon receiver receiver" "icon txid txid"}.transaction:not(:last-of-type){padding-bottom:2rem}.transaction__amount{white-space:nowrap}.transaction.out .icon{fill:var(--danger-color)}.transaction.out .transaction__amount{color:var(--danger-color)}.transaction.out .transaction__amount::before{content:"- "}.transaction.in .icon{fill:var(--green)}.transaction.in .transaction__amount{color:var(--green)}.transaction.in .transaction__amount::before{content:"+ "}.transaction.unconfirmed-tx{grid-template-areas:"icon time amount" "icon receiver receiver" "icon txid txid" "icon unconfirmed unconfirmed" "icon badge badge"}.transaction.unconfirmed-tx .icon{fill:var(--yellow)}.transaction__icon{grid-area:icon;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background-color:rgba(var(--text-color), 0.03);border-radius:2rem}.transaction__receiver{grid-area:receiver;font-weight:500;margin-bottom:.3rem;line-height:1.5}.transaction__time{grid-area:time;font-size:.9rem;color:rgba(var(--text-color), 0.8)}.transaction .pending-badge{grid-area:badge;font-size:.8rem;padding:.2rem .5rem;border-radius:.5rem;background-color:var(--yellow);color:rgba(var(--foreground-color), 1);font-weight:500;justify-self:flex-start}.transaction__amount{grid-area:amount;font-size:1rem;font-weight:700}.transaction__id{grid-area:txid;font-size:.9rem;color:rgba(var(--text-color), 0.8)}.transaction .unconfirmed-wrapper{grid-area:unconfirmed;padding:.5rem 0}.tx-participant:not(:last-of-type){margin-right:.5rem}.tx-participant:not(:last-of-type)::after{content:","}table tr{text-align:left}table tr td,table tr th{padding:.8rem .5rem}table tr:nth-child(even){background-color:rgba(var(--text-color), 0.05)}#in_out_wrapper{display:grid;grid-template-columns:repeat(auto-fit, minmax(16rem, 1fr));gap:1rem;margin-bottom:3rem}.in-out-card{display:grid;grid-template-columns:minmax(0, 1fr) auto;gap:.5rem;padding:1rem;border-radius:.5rem;background-color:rgba(var(--text-color), 0.03)}.in-out-card:not(:last-of-type){margin-bottom:.5rem}.in-out-card>:first-child{margin-right:1rem}#selected_fee_tip{font-weight:500}#selected_fee_tip.error{color:var(--danger-color)}#selected_fee_tip.error .icon{fill:var(--danger-color)}.fab{position:absolute;right:0;bottom:0;margin:1.5rem;box-shadow:0 .5rem 1rem rgba(0,0,0,.2);z-index:2}#scroll_to_top{border-radius:3rem;background-color:rgba(var(--foreground-color), 1)}#txid{font-size:.9rem}.user-action-result__icon{justify-self:center;height:4rem;width:4rem;border-radius:5rem;-webkit-animation:popup 1s;animation:popup 1s}.user-action-result__icon.success{fill:rgba(var(--background-color), 1);padding:1rem;background-color:#0bbe56}.user-action-result__icon.failed{background-color:rgba(var(--text-color), 0.03);fill:var(--danger-color)}@-webkit-keyframes popup{0%{opacity:0;transform:scale(0.2) translateY(600%)}10%{transform:scale(0.2) translateY(5rem);opacity:1}40%{transform:scale(0.2) translateY(0)}80%{transform:scale(1.1) translateY(0)}100%{transform:scale(1) translateY(0)}}@keyframes popup{0%{opacity:0;transform:scale(0.2) translateY(600%)}10%{transform:scale(0.2) translateY(5rem);opacity:1}40%{transform:scale(0.2) translateY(0)}80%{transform:scale(1.1) translateY(0)}100%{transform:scale(1) translateY(0)}}@media screen and (max-width: 40rem){#main_navbar.hide-away{bottom:0;left:0;right:0}}@media screen and (min-width: 40rem){sm-popup{--width: 24rem}.popup__header{grid-column:1/-1;padding:1rem 1.5rem 0 1.5rem}body{align-items:center;justify-content:center}#main_card{grid-template-areas:"header" ".";position:relative;overflow:hidden;box-shadow:0 .1rem .2rem rgba(0,0,0,.05),0 1rem 3rem rgba(0,0,0,.2)}#main_card:not(.nav-hidden){grid-template-columns:auto 1fr;grid-template-rows:auto 1fr;grid-template-areas:"nav header" "nav ."}#main_header{grid-area:header}#main_navbar{grid-area:nav;border-top:none;flex-direction:column;background-color:rgba(37,110,255,.03)}#main_navbar ul{flex-direction:column;gap:.5rem;padding:.3rem}.nav-item{aspect-ratio:1/1}.nav-item__indicator{width:.25rem;height:50%;left:0;border-radius:0 1rem 1rem 0;bottom:auto}body[data-theme=dark] #main_navbar{background-color:rgba(0,0,0,.2)}.page{width:min(60rem,100%);margin:0 auto}#generate_btc_addr_popup,#retrieve_btc_addr_popup{--width: 28rem}#convert_key{width:min(72rem,100%)}#conversion_wrapper>*{grid-template-columns:1fr 1fr;align-items:flex-start}}@media screen and (min-width: 48rem){.sender-card,.receiver-card{grid-template-columns:1fr 1fr}}@media(any-hover: hover){::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background:rgba(var(--text-color), 0.3);border-radius:1rem}::-webkit-scrollbar-thumb:hover{background:rgba(var(--text-color), 0.5)}.interactive:not([disabled]){transition:background-color .3s}.interactive:not([disabled]):hover{background-color:rgba(var(--text-color), 0.06)}button:not([disabled]),.button:not([disabled]){transition:background-color .3s,filter .3s}button:not([disabled]):hover,.button:not([disabled]):hover{filter:contrast(2)}}@supports(overflow: overlay){body{overflow:overlay}}.hidden{display:none !important} \ No newline at end of file +*{padding:0;margin:0;box-sizing:border-box;font-family:"Roboto",sans-serif}:root{font-size:clamp(1rem,1.2vmax,1.2rem)}html,body{height:100%}body{--accent-color: #4d77ff;--accent-color-rgb: 77, 119, 255;--text-color: 20, 20, 20;--foreground-color: 252, 253, 255;--background-color: 241, 243, 248;--danger-color: rgb(255, 75, 75);--green: #1cad59;--yellow: rgb(255, 207, 65);scrollbar-width:thin;scrollbar-gutter:stable;color:rgba(var(--text-color), 1);background-color:rgba(var(--background-color), 1);transition:background-color .3s;position:relative;display:flex;flex-direction:column}body[data-theme=dark]{--accent-color: #a0b6ff;--accent-color-rgb: 160, 182, 255;--text-color: 220, 220, 220;--foreground-color: 27, 28, 29;--background-color: 21, 22, 22;--danger-color: rgb(255, 106, 106);--green: #00e676;--yellow: rgb(255, 213, 5)}body[data-theme=dark] sm-popup::part(popup){background-color:rgba(var(--foreground-color), 1)}p,strong{font-size:.9rem;max-width:65ch;line-height:1.7;color:rgba(var(--text-color), 0.9)}.warning{line-height:normal;padding:1rem;background-color:khaki;border-radius:.5rem;font-weight:500;color:rgba(0,0,0,.7)}a{text-decoration:none;color:var(--accent-color)}a:focus-visible{box-shadow:0 0 0 .1rem rgba(var(--text-color), 1) inset}button,.button{-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;display:inline-flex;border:none;background-color:rgba(0,0,0,0);overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;font-size:.9rem;font-weight:500;white-space:nowrap;padding:.8rem;border-radius:.3rem;justify-content:center;flex-shrink:0}button:focus-visible,.button:focus-visible{outline:var(--accent-color) solid medium}button:not(:disabled),.button:not(:disabled){color:var(--accent-color);cursor:pointer}button .icon,.button .icon{fill:var(--accent-color)}.button{display:inline-flex;background-color:rgba(var(--text-color), 0.06)}.button--primary,.button--danger{color:rgba(var(--background-color), 1) !important}.button--primary .icon,.button--danger .icon{fill:rgba(var(--background-color), 1)}.button--primary{background-color:var(--accent-color)}.button--danger{background-color:var(--danger-color)}.button--small{padding:.4rem .5rem}.button--colored{color:var(--accent-color) !important}.button--colored .icon{fill:var(--accent-color)}.cta{text-transform:uppercase;font-size:.9rem;font-weight:700;letter-spacing:.05em;padding:.8rem 1rem}.icon{width:1.2rem;height:1.2rem;fill:rgba(var(--text-color), 0.8);flex-shrink:0}.icon-only{padding:.5rem;border-radius:.3rem}button:disabled{opacity:.5}a:-webkit-any-link:focus-visible{outline:rgba(var(--text-color), 1) .1rem solid}a:-moz-any-link:focus-visible{outline:rgba(var(--text-color), 1) .1rem solid}a:any-link:focus-visible{outline:rgba(var(--text-color), 1) .1rem solid}details summary{display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;align-items:center;justify-content:space-between;color:var(--accent-color)}details[open] summary{margin-bottom:1rem}details[open]>summary .down-arrow{transform:rotate(180deg)}sm-input,sm-textarea{width:100%;--border-radius: 0.4rem;--background-color: rgba(var(--foreground-color), 1)}sm-input button .icon,sm-textarea button .icon{fill:var(--accent-color)}sm-button{--padding: 0.8rem}sm-button[variant=primary] .icon{fill:rgba(var(--background-color), 1)}sm-button[disabled] .icon{fill:rgba(var(--text-color), 0.6)}sm-button.danger{--background: var(--danger-color);color:rgba(var(--background-color), 1)}sm-spinner{--size: 1rem;--stroke-width: 0.1rem}sm-form{--gap: 1rem}sm-select{font-size:.9rem;--padding: 0.6rem 0.3rem 0.6rem 0.6rem}sm-option{font-size:.9rem}sm-chips{--gap: 0;background-color:rgba(var(--text-color), 0.06);border-radius:.3rem;padding:.3rem}sm-chip{font-size:.9rem;--border-radius: 0.2rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}sm-chip[selected]{color:rgba(var(--background-color), 1);--background: var(--accent-color)}ul,ol{list-style:none}ol{counter-reset:item}ol li{position:relative;display:flex;align-items:flex-start;counter-increment:item}ol li:not(:last-of-type){padding-bottom:1.5rem}ol li:not(:last-of-type)::after{content:"";position:absolute;width:.1rem;height:calc(100% - 2.2rem);background:var(--accent-color);margin-left:.7rem;margin-top:2rem}ol li::before{content:counter(item);display:flex;align-items:center;justify-content:center;text-align:center;font-size:.9rem;font-weight:500;margin-top:.15rem;margin-right:1rem;line-height:1;width:1.5rem;height:1.5rem;border-radius:100%;flex-shrink:0;color:rgba(var(--text-color), 0.8);background:rgba(var(--text-color), 0.1)}.overflow-ellipsis{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.wrap-around{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word}.full-bleed{grid-column:1/-1}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.sticky{position:-webkit-sticky;position:sticky}.top-0{top:0}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.flex-direction-column{flex-direction:column}.grid{display:grid}.flow-column{grid-auto-flow:column}.gap-0-3{gap:.3rem}.gap-0-5{gap:.5rem}.gap-1{gap:1rem}.gap-1-5{gap:1.5rem}.gap-2{gap:2rem}.gap-3{gap:3rem}.text-align-right{text-align:right}.align-start{align-content:flex-start}.align-center{align-items:center}.align-end{align-items:flex-end}.text-center{text-align:center}.justify-start{justify-items:start}.justify-center{justify-content:center}.justify-right{margin-left:auto}.align-self-center{align-self:center}.align-self-end{align-self:end}.justify-self-center{justify-self:center}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.flex-direction-column{flex-direction:column}.space-between{justify-content:space-between}.w-100{width:100%}.h-100{height:100%}.label{font-size:.9rem;color:rgba(var(--text-color), 0.8);font-weight:500;margin-bottom:.2rem}.button--primary .ripple,.button--danger .ripple{background:radial-gradient(circle, rgba(var(--background-color), 0.3) 0%, rgba(0, 0, 0, 0) 50%)}.ripple{height:8rem;width:8rem;position:absolute;border-radius:50%;transform:scale(0);background:radial-gradient(circle, rgba(var(--text-color), 0.3) 0%, rgba(0, 0, 0, 0) 50%);pointer-events:none}.interactive{position:relative;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.empty-state{display:grid;width:100%;padding:1.5rem 0}.observe-empty-state:empty{display:none !important}.observe-empty-state:not(:empty)+.empty-state{display:none !important}.bullet-point{display:flex;align-items:center;justify-content:center;margin:0 .8ch}.bullet-point::after{content:"";height:.4ch;width:.4ch;border-radius:.5em;background-color:var(--accent-color)}.margin-right-0-3{margin-right:.3rem}.margin-right-0-5{margin-right:.5rem}.margin-right-auto{margin-right:auto}.margin-left-0-5{margin-left:.5rem}.margin-left-auto{margin-left:auto}.margin-top-1-5{margin-top:1.5rem}.margin-bottom-0-5{margin-bottom:.5rem}.margin-bottom-1{margin-bottom:1rem}.margin-bottom-1-5{margin-bottom:1.5rem}.margin-bottom-2{margin-bottom:2rem}.icon-button{padding:.6rem;border-radius:.8rem;background-color:rgba(var(--text-color), 0.1);height:-webkit-max-content;height:-moz-max-content;height:max-content}.icon-button .icon{fill:var(--accent-color)}.page{height:100%}.page__header{display:flex;justify-content:space-between;margin-bottom:1.5rem;min-height:8rem}.page__header .grid{margin-top:auto}.page__header h1{margin-top:auto;font-size:2rem}#confirmation_popup,#prompt_popup{flex-direction:column}#confirmation_popup h4,#prompt_popup h4{margin-bottom:.5rem}#confirmation_popup sm-button,#prompt_popup sm-button{margin:0}#confirmation_popup .flex,#prompt_popup .flex{padding:0;margin-top:1rem}#confirmation_popup .flex sm-button:first-of-type,#prompt_popup .flex sm-button:first-of-type{margin-right:.6rem;margin-left:auto}#prompt_message{margin-bottom:1.5rem}.popup__header{display:grid;gap:.5rem;width:100%;padding:0 1.5rem;align-items:center}.popup__header__close{padding:.5rem;margin-left:-0.5rem}.flo-icon{margin-right:.3rem;height:1.5rem;width:1.5rem}#secondary_pages{display:flex;flex-direction:column;width:100%}#secondary_pages header{padding:1.5rem}#secondary_pages .inner-page{height:100%}#landing>section{justify-content:center;justify-items:center;align-items:center;text-align:center;padding:8vw 0}#landing h1{font-size:clamp(2rem,5vw,5rem)}#loading_page{display:grid;gap:1rem;place-content:center;place-items:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:20;background-color:rgba(var(--foreground-color), 1)}#main_header{padding:1.5rem max(1rem,4vw)}#main_card{display:grid;grid-template-columns:minmax(0, 1fr);grid-template-rows:auto 1fr;height:100%;width:100%;transition:background-color .3s;background-color:rgba(var(--foreground-color), 1)}#main_navbar{display:flex;background:rgba(var(--text-color), 0.03)}#main_navbar.hide-away{position:absolute}#main_navbar ul{display:flex;height:100%;width:100%}#main_navbar ul li{width:100%}.nav-item{position:relative;display:flex;flex:1;width:100%;flex-direction:column;align-items:center;justify-content:center;padding:.5rem .3rem;color:var(--text-color);font-size:.9rem;border-radius:.3rem;font-weight:500}.nav-item .icon{transition:transform .2s cubic-bezier(0.175, 0.885, 0.32, 1.275)}.nav-item__title{margin-top:.3rem;transition:opacity .2s,transform .2s cubic-bezier(0.175, 0.885, 0.32, 1.275)}.nav-item--active{color:var(--accent-color)}.nav-item--active .icon{fill:var(--accent-color);transform:translateY(50%)}.nav-item--active .nav-item__title{transform:translateY(100%);opacity:0}.nav-item__indicator{position:absolute;bottom:0;width:2rem;height:.3rem;background:var(--accent-color);border-radius:1rem 1rem 0 0;z-index:1}.inner-page{padding:0 1.5rem;flex:1;overflow-y:auto;align-content:start}.password-field label{display:flex}.password-field label input:checked~.visible{display:none}.password-field label input:not(:checked)~.invisible{display:none}.multi-state-button{display:grid;text-align:center;align-items:center;justify-items:center}.multi-state-button>*{grid-area:1/1/2/2}.multi-state-button button{z-index:1;width:100%}.scrolling-wrapper{overflow-y:auto}#pages_container{overflow-y:auto;padding:0 1rem}.primary-action{display:flex;padding:.8rem 1rem;gap:.5rem;white-space:normal;font-size:.9rem;border-radius:.5rem;background-color:rgba(0,0,0,0);border:thin solid rgba(var(--text-color), 0.3);text-align:left;flex-shrink:1}.primary-action .icon{fill:var(--accent-color)}#flo_id_warning{padding-bottom:1.5rem;border-bottom:thin solid rgba(var(--text-color), 0.3)}#flo_id_warning .icon{height:4rem;width:4rem;padding:1rem;background-color:#ffc107;border-radius:3rem;fill:rgba(0,0,0,.8);margin-bottom:1.5rem}.generated-id-card{display:grid;gap:1rem}.generated-id-card h5{margin-bottom:.3rem}#address_balance_card{padding:1.5rem;border-radius:.5rem;margin-top:.5rem;margin-bottom:1.5rem;background-color:rgba(var(--accent-color-rgb), 0.2)}#address_balance{font-size:1.2rem;font-weight:700;color:var(--accent-color)}.card{padding:.5rem 0;border:none}.card:not(:last-of-type){border-bottom:solid thin rgba(var(--text-color), 0.3)}.remove-card-wrapper{min-height:2rem}.sender-card{display:grid;gap:.5rem;margin-bottom:.5rem}.sender-card sm-input{border-radius:.5rem}.sender-card sm-input.error{border:var(--danger-color) solid}.receiver-card{display:grid;gap:.5rem}.balance-wrapper{padding-bottom:.5rem;border-bottom:thin solid rgba(var(--text-color), 0.3)}#transactions_list{display:grid;gap:2rem;padding-bottom:4rem}.transaction{grid-template-columns:auto 1fr;gap:.5rem 1rem;align-items:center}.transaction:not(:last-of-type){padding-bottom:2rem}.transaction__amount{white-space:nowrap}.transaction.out .transaction__icon .icon{fill:var(--danger-color)}.transaction.out .transaction__amount{color:var(--danger-color)}.transaction.out .transaction__amount::before{content:"- "}.transaction.in .transaction__icon .icon{fill:var(--green)}.transaction.in .transaction__amount{color:var(--green)}.transaction.in .transaction__amount::before{content:"+ "}.transaction.unconfirmed-tx .transaction__icon .icon{fill:var(--yellow)}.transaction__icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background-color:rgba(var(--text-color), 0.03);border-radius:2rem}.transaction__receiver{font-weight:500;margin-bottom:.3rem;line-height:1.5}.transaction__time{font-size:.9rem;color:rgba(var(--text-color), 0.8)}.transaction .pending-badge{font-size:.8rem;padding:.2rem .5rem;border-radius:.5rem;background-color:var(--yellow);color:rgba(0,0,0,.8);font-weight:500;justify-self:flex-start}.transaction__amount{font-size:1rem;font-weight:700}.transaction__id{font-size:.9rem}.tx-participant:not(:last-of-type){margin-right:.5rem}.tx-participant:not(:last-of-type)::after{content:","}table tr{text-align:left}table tr td,table tr th{padding:.8rem .5rem}table tr:nth-child(even){background-color:rgba(var(--text-color), 0.05)}#in_out_wrapper{display:grid;grid-template-columns:repeat(auto-fit, minmax(16rem, 1fr));gap:1rem;margin-bottom:3rem}.in-out-card{display:grid;grid-template-columns:minmax(0, 1fr) auto;gap:.5rem;padding:1rem;border-radius:.5rem;background-color:rgba(var(--text-color), 0.03)}.in-out-card:not(:last-of-type){margin-bottom:.5rem}.in-out-card>:first-child{margin-right:1rem}#selected_fee_tip{font-weight:500}#selected_fee_tip.error{color:var(--danger-color)}#selected_fee_tip.error .icon{fill:var(--danger-color)}.fab{position:absolute;right:0;bottom:0;margin:1.5rem;box-shadow:0 .5rem 1rem rgba(0,0,0,.2);z-index:2}#scroll_to_top{border-radius:3rem;background-color:rgba(var(--foreground-color), 1)}#txid{font-size:.9rem}.user-action-result__icon{justify-self:center;height:4rem;width:4rem;border-radius:5rem;-webkit-animation:popup 1s;animation:popup 1s}.user-action-result__icon.success{fill:rgba(var(--background-color), 1);padding:1rem;background-color:#0bbe56}.user-action-result__icon.failed{background-color:rgba(var(--text-color), 0.03);fill:var(--danger-color)}@-webkit-keyframes popup{0%{opacity:0;transform:scale(0.2) translateY(600%)}10%{transform:scale(0.2) translateY(5rem);opacity:1}40%{transform:scale(0.2) translateY(0)}80%{transform:scale(1.1) translateY(0)}100%{transform:scale(1) translateY(0)}}@keyframes popup{0%{opacity:0;transform:scale(0.2) translateY(600%)}10%{transform:scale(0.2) translateY(5rem);opacity:1}40%{transform:scale(0.2) translateY(0)}80%{transform:scale(1.1) translateY(0)}100%{transform:scale(1) translateY(0)}}@media screen and (max-width: 40rem){#main_navbar.hide-away{bottom:0;left:0;right:0}}@media screen and (min-width: 40rem){sm-popup{--width: 24rem}.popup__header{grid-column:1/-1;padding:1rem 1.5rem 0 1.5rem}body{align-items:center;justify-content:center}#main_card{grid-template-areas:"header" ".";position:relative;overflow:hidden;box-shadow:0 .1rem .2rem rgba(0,0,0,.05),0 1rem 3rem rgba(0,0,0,.2)}#main_card:not(.nav-hidden){grid-template-columns:auto 1fr;grid-template-rows:auto 1fr;grid-template-areas:"nav header" "nav ."}#main_header{grid-area:header}#main_navbar{grid-area:nav;border-top:none;flex-direction:column;background-color:rgba(37,110,255,.03)}#main_navbar ul{flex-direction:column;gap:.5rem;padding:.3rem}.nav-item{aspect-ratio:1/1}.nav-item__indicator{width:.25rem;height:50%;left:0;border-radius:0 1rem 1rem 0;bottom:auto}body[data-theme=dark] #main_navbar{background-color:rgba(0,0,0,.2)}.page{width:min(60rem,100%);margin:0 auto}#generate_btc_addr_popup,#retrieve_btc_addr_popup{--width: 28rem}#convert_key{width:min(72rem,100%)}#conversion_wrapper>*{grid-template-columns:1fr 1fr;align-items:flex-start}}@media screen and (min-width: 48rem){.sender-card,.receiver-card{grid-template-columns:1fr 1fr}}@media(any-hover: hover){::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background:rgba(var(--text-color), 0.3);border-radius:1rem}::-webkit-scrollbar-thumb:hover{background:rgba(var(--text-color), 0.5)}.interactive:not([disabled]){transition:background-color .3s}.interactive:not([disabled]):hover{background-color:rgba(var(--text-color), 0.06)}button:not([disabled]),.button:not([disabled]){transition:background-color .3s,filter .3s}button:not([disabled]):hover,.button:not([disabled]):hover{filter:contrast(2)}}@supports(overflow: overlay){body{overflow:overlay}}.hidden{display:none !important} \ No newline at end of file diff --git a/css/main.scss b/css/main.scss index 76fd950..0145762 100644 --- a/css/main.scss +++ b/css/main.scss @@ -21,7 +21,7 @@ body { --background-color: 241, 243, 248; --danger-color: rgb(255, 75, 75); --green: #1cad59; - --yellow: rgb(220, 165, 0); + --yellow: rgb(255, 207, 65); scrollbar-width: thin; scrollbar-gutter: stable; color: rgba(var(--text-color), 1); @@ -68,15 +68,8 @@ a { box-shadow: 0 0 0 0.1rem rgba(var(--text-color), 1) inset; } } -a.button { - padding: 0.4rem 0.6rem; - border-radius: 0.3rem; - font-size: 0.9rem; - font-weight: 500; - color: inherit; -} - -button { +button, +.button { user-select: none; position: relative; display: inline-flex; @@ -104,6 +97,7 @@ button { } } .button { + display: inline-flex; background-color: rgba(var(--text-color), 0.06); &--primary, &--danger { @@ -121,6 +115,12 @@ button { &--small { padding: 0.4rem 0.5rem; } + &--colored { + color: var(--accent-color) !important; + .icon { + fill: var(--accent-color); + } + } } .cta { text-transform: uppercase; @@ -792,10 +792,9 @@ ol { padding-bottom: 4rem; } .transaction { - grid-template-columns: auto 1fr auto; + grid-template-columns: auto 1fr; gap: 0.5rem 1rem; align-items: center; - grid-template-areas: "icon time amount" "icon receiver receiver" "icon txid txid"; &:not(:last-of-type) { padding-bottom: 2rem; } @@ -803,7 +802,7 @@ ol { white-space: nowrap; } &.out { - .icon { + .transaction__icon .icon { fill: var(--danger-color); } .transaction__amount { @@ -814,7 +813,7 @@ ol { } } &.in { - .icon { + .transaction__icon .icon { fill: var(--green); } .transaction__amount { @@ -825,13 +824,11 @@ ol { } } &.unconfirmed-tx { - grid-template-areas: "icon time amount" "icon receiver receiver" "icon txid txid" "icon unconfirmed unconfirmed" "icon badge badge"; - .icon { + .transaction__icon .icon { fill: var(--yellow); } } &__icon { - grid-area: icon; display: flex; align-items: center; justify-content: center; @@ -841,39 +838,29 @@ ol { border-radius: 2rem; } &__receiver { - grid-area: receiver; font-weight: 500; margin-bottom: 0.3rem; line-height: 1.5; } &__time { - grid-area: time; font-size: 0.9rem; color: rgba(var(--text-color), 0.8); } .pending-badge { - grid-area: badge; font-size: 0.8rem; padding: 0.2rem 0.5rem; border-radius: 0.5rem; background-color: var(--yellow); - color: rgba(var(--foreground-color), 1); + color: rgba(0 0 0/ 0.8); font-weight: 500; justify-self: flex-start; } &__amount { - grid-area: amount; font-size: 1rem; font-weight: 700; } &__id { - grid-area: txid; font-size: 0.9rem; - color: rgba(var(--text-color), 0.8); - } - .unconfirmed-wrapper { - grid-area: unconfirmed; - padding: 0.5rem 0; } } .tx-participant { diff --git a/index.html b/index.html index ebc4e7e..900c3dc 100644 --- a/index.html +++ b/index.html @@ -1259,14 +1259,25 @@ return html.node`
  • ${icon}
    - -
    ${formatAmount(getConvertedAmount(amount))}
    -
    - ${transactionReceiver} - ${transactingAddresses.length > 2 ? html`` : ''} +
    +
    + +
    ${formatAmount(getConvertedAmount(amount))}
    +
    +
    + ${transactionReceiver} + ${transactingAddresses.length > 2 ? html`` : ''} +
    + + ${!block ? html` +

    Confirmation pending: amount will be deducted after transaction is confirmed

    + ` : ''}
    -
    TXID: ${txid}
    - ${!block ? html`

    Confirmation pending: amount will be deducted after transaction is confirmed

    ` : ''}
  • `; }, @@ -1318,8 +1329,6 @@ } txDetailsAbortController = new AbortController(); btcOperator.getTx(txid).then(result => { - - const { block, time, size, fee, inputs, outputs, confirmations, total_input_value, total_output_value } = result; console.debug('tx', result); @@ -1392,7 +1401,7 @@ `) }).catch(err => { - notify(err, 'error') + notify('Invalid transaction ID', 'error') renderElem(getRef('tx_details'), html``) }) },