diff --git a/css/main.css b/css/main.css index ce6da9a..7e81ce5 100644 --- a/css/main.css +++ b/css/main.css @@ -50,7 +50,13 @@ button:focus-visible { sm-input, sm-textarea { - --border-radius: 0.5rem; + --border-radius: 0.3rem; + --background: rgba(var(--text-color), 0.1); +} + +sm-button[variant=primary] { + --padding: 0.8rem 1.5rem; + margin-top: 1rem; } ul { @@ -109,7 +115,7 @@ ul { position: absolute; border-radius: 50%; transform: scale(0); - background: rgba(var(--text-color), 0.2); + background: rgba(var(--text-color), 0.16); pointer-events: none; } @@ -120,6 +126,14 @@ ul { -webkit-tap-highlight-color: transparent; } +.observe-empty-state:empty { + display: none; +} + +.observe-empty-state:not(:empty) ~ .empty-state { + display: none; +} + .icon { width: 1.5rem; height: 1.5rem; @@ -164,9 +178,14 @@ ul { cursor: pointer; } +.icon-only { + height: 2.6rem; + width: 2.6rem; + padding: 0.6rem; +} + .close-icon { - height: 2rem; - width: 2rem; + padding: 0.3rem; } .initial { @@ -175,6 +194,8 @@ ul { user-select: none; align-items: center; justify-content: center; + font-weight: 500; + color: rgba(var(--foreground-color), 1); background-color: rgba(var(--text-color), 0.1); } @@ -187,9 +208,9 @@ ul { width: 5rem; height: 5rem; padding: 1rem; - margin: 4rem 0 1rem 0; + margin: 1rem 0; font-size: 2rem; - border-radius: 1.5rem; + border-radius: 50%; } #contact_popup__name { @@ -198,11 +219,19 @@ ul { font-size: 1.2rem; } +.contact__copy-row { + padding: 0 1.5rem; + margin: 1rem 0; +} + +.copy-label { + font-weight: 500; + color: rgba(var(--text-color), 0.8); +} + .flo-id-grid { gap: 0.5rem; - padding: 0 1.5rem; grid-template-columns: 1fr auto; - margin-bottom: 1rem; } .copy-button { @@ -238,10 +267,16 @@ ul { #main_header { grid-area: header; height: max-content; - gap: 0.2rem 0.5rem; - padding: 1rem 0.7rem 1rem 1rem; - grid-template-columns: 1fr auto; - grid-template-areas: "company setting" "app setting"; + gap: 0.2rem 1rem; + padding: 1rem; + grid-template-columns: auto 1fr; + grid-template-areas: "logo company" "logo app"; +} + +#main_header__logo { + width: 1.8rem; + height: 1.8rem; + grid-area: logo; } #page_container { @@ -254,6 +289,8 @@ ul { flex-direction: column; height: 100%; width: 100%; + overflow-y: auto; + align-content: flex-start; } .header__company-name { @@ -271,11 +308,6 @@ ul { color: rgba(var(--text-color), 0.9); } -.header__settings-button { - grid-area: setting; - padding: 0.8rem; -} - #main_navbar { grid-area: nav; } @@ -300,7 +332,7 @@ ul { } .navbar__item__title { - font-size: 0.85rem; + font-size: 0.8rem; font-weight: 500; color: rgba(var(--text-color), 0.7); } @@ -321,10 +353,6 @@ ul { fill: white; } -#dashboard_page__header { - height: 7.5rem; -} - #base_header { position: relative; width: 100%; @@ -336,15 +364,11 @@ ul { color: rgba(var(--text-color), 0.8); } -z #search_contacts { +#search_contacts { --padding: 0.5rem 0.6rem; --background: rgba(var(--text-color), 0.1); } -.search__icon { - height: 1.2rem; -} - .expanding-search { width: 14rem; } @@ -379,59 +403,48 @@ z #search_contacts { #contacts_container { display: flex; - flex-wrap: wrap; - height: 100%; + flex-direction: column; + max-height: 100%; overflow-y: auto; - min-height: 0; align-content: flex-start; padding: 0 0 6rem 1rem; - grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); } .contact-card { position: relative; overflow: hidden; - display: flex; - width: calc(50% - 1rem); - aspect-ratio: 1/1; - flex-direction: column; + display: grid; + width: 100%; + gap: 1rem; + grid-template-columns: auto auto 1fr auto; align-items: center; - margin: 0 1rem 1rem 0; - padding: 1.5rem 1rem; + padding: 0.5rem 0.6rem; flex-shrink: 0; cursor: pointer; user-select: none; align-self: flex-start; justify-content: center; - border-radius: 0.5rem; + border-radius: 0.3rem; background: rgba(var(--foreground-color), 0.6); - box-shadow: 0 0 0 1px rgba(var(--text-color), 0.2) inset; -webkit-tap-highlight-color: transparent; } -.contact-hidden-options { - position: absolute; - width: 100%; - top: 0; - padding: 0.5rem 0.8rem; -} - .contact-card__checkbox { - --border-radius: 0.5rem; + --height: 1.5rem; + --width: 1.5rem; + --border-radius: 0.3rem; --border-color: rgba(var(--text-color), 0.6); } .contact-card__initial { - width: 3rem; - height: 3rem; - padding: 1.5rem; - font-size: 1.2rem; - border-radius: 1rem; - margin: 1.5rem 0; + width: 2rem; + height: 2rem; + padding: 1.2rem; + font-size: 1.1rem; + border-radius: 50%; } .contact-card__name { - text-align: center; font-weight: 500; font-size: 1rem; color: rgba(var(--text-color), 0.8); @@ -441,19 +454,23 @@ z #search_contacts { padding: 0.4rem; } -.more-icon { - height: 1.2rem; - width: 1.2rem; +#contacts_empty_state { + text-align: center; } -#add_contact_button { +.empty-state__title { + font-weight: 400; + color: rgba(var(--text-color), 0.8); +} + +#show_contact_popup_button { right: 0; bottom: 0; margin: 1.5rem; } .page__header { - padding: 1rem 1rem 2rem 1rem; + padding: 1rem; } .page__title { @@ -461,8 +478,27 @@ z #search_contacts { } #send_flo_form { + width: min(26rem, 100%); + height: 100%; padding: 0 1rem; - gap: 1rem; + gap: 0.3; +} + +.label { + font-size: 0.9rem; + margin-bottom: 0.3rem; + color: rgba(var(--text-color), 0.9); +} +.label:not(:first-of-type) { + margin-top: 0.8rem; +} + +#sent_flo_data { + --max-height: 12rem; +} + +#send_flo_button { + margin-top: 1.5rem; } #balance_card { @@ -493,6 +529,28 @@ z #search_contacts { margin: 2rem 0 1rem 0; } +.settings__section { + padding: 0 1rem; + width: min(50ch, 100%); +} +.settings__section:not(:last-of-type) { + margin-bottom: 1rem; +} + +.setting__title { + color: rgba(var(--text-color), 0.9); +} + +.setting__description { + font-size: 0.9rem; + color: rgba(var(--text-color), 0.8); +} + +.toggle-grid { + gap: 0.3rem; + margin-right: 1rem; +} + @media all and (max-width: 640px) { .hide-on-mobile { display: none; @@ -532,10 +590,6 @@ z #search_contacts { z-index: 1; width: 100%; } - - .back-button { - margin-right: 1rem; - } } @media all and (min-width: 640px) { body { @@ -565,13 +619,13 @@ z #search_contacts { overflow: hidden; backdrop-filter: blur(1rem); grid-template-columns: 15rem 1fr; - grid-template-rows: min-content 1fr; + grid-template-rows: auto 1fr; grid-template-areas: "header page" "nav page"; box-shadow: 0 1.5rem 1.5rem rgba(0, 0, 0, 0.16); } #main_header { - padding: 1.5rem 1.2rem 1.5rem 2rem; + padding: 1.5rem; } #main_navbar { @@ -601,22 +655,20 @@ z #search_contacts { } .page__header { + min-height: 6.2rem; padding: 1.5rem; } #contacts_container { - padding: 0 1rem 8rem 2rem; + padding: 0 1rem 8rem 1.5rem; } - #add_contact_button { - right: 0; - bottom: 0; - margin: 2rem; + #send_flo_form { + padding: 0 1.5rem 1.5rem 1.5rem; } -} -@media all and (min-width: 1080px) { - .contact-card { - width: calc(33.33% - 1rem); + + .settings__section { + padding: 0 1.5rem; } } @media all and (min-width: 1280px) { @@ -632,8 +684,25 @@ z #search_contacts { } } @media (any-hover: hover) { - .contact-card__checkbox:not([checked]):not(:focus-within), -.contact-card__more:not(:focus-within) { + ::-webkit-scrollbar { + width: 0.5rem; + height: 0.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); + } + + .contact-card__checkbox:not([checked]):not(:focus-within) { + opacity: 0.4; + transition: opacity 0.3s; + } + + .contact-card__more:not(:focus-within) { opacity: 0; transition: opacity 0.3s; } diff --git a/css/main.min.css b/css/main.min.css index 2e72ab2..b2fe365 100644 --- a/css/main.min.css +++ b/css/main.min.css @@ -1 +1 @@ -.interact,.overflow-ellipsis,button{overflow:hidden}.contact-card,.interact,button{cursor:pointer;-webkit-tap-highlight-color:transparent}.button__icon,.icon{fill:rgba(var(--text-color),.7)}*,::after,::before{padding:0;margin:0;box-sizing:border-box;font-family:Roboto,sans-serif}:root{height:100%;font-size:clamp(1rem,1.2vmax,3rem);--ease-in-overshhot:cubic-bezier(0.6, -0.28, 0.735, 0.045);--ease-out-overshhot:cubic-bezier(0.175, 0.885, 0.32, 1.275)}body{--accent-color:#6300d4;--text-color:17,17,17;--text-color-light:100,100,100;--foreground-color:255,255,255;--background-color:#efefef;--error-color:red;color:rgba(var(--text-color),1);height:calc(100%)}body[data-theme=dark]{--accent-color:#c64aff;--text-color:240,240,240;--text-color-light:170,170,170;--foreground-color:20,20,20;--error-color:rgb(255, 106, 106)}button{position:relative;display:inline-flex;border:none;background:0 0;outline:0}button:focus-visible{outline:solid rgba(var(--text-color),1)}sm-input,sm-textarea{--border-radius:0.5rem}ul{list-style:none}.flex{display:flex}.grid{display:grid}.align-center{align-items:center}#confirmation_popup,#prompt_popup,.direction-column{flex-direction:column}.justify-right{margin-left:auto}.space-between{justify-content:space-between}.full-width{width:100%}.hide{opacity:0;pointer-events:none}.hide-completely{display:none!important}.no-transformations{transform:none!important}.overflow-ellipsis{width:100%;white-space:nowrap;text-overflow:ellipsis}.ripple{position:absolute;border-radius:50%;transform:scale(0);background:rgba(var(--text-color),.2);pointer-events:none}.interact,.navbar__item,.page{position:relative}.icon{width:1.5rem;height:1.5rem}#confirmation_popup h4,#prompt_popup h4{font-weight:500;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}.popup__header{padding:.5rem 1.5rem 0 1rem;display:grid;grid-template-columns:auto 1fr;gap:.5rem;align-items:center;width:100%}.popup__header__close{padding:.5rem;cursor:pointer}.close-icon{height:2rem;width:2rem}.initial{display:flex;text-align:center;user-select:none;align-items:center;justify-content:center;background-color:rgba(var(--text-color),.1)}#contact_popup{--body-padding:0}#contact_popup__initial{align-self:center;width:5rem;height:5rem;padding:1rem;margin:4rem 0 1rem;font-size:2rem;border-radius:1.5rem}#contact_popup__name{align-self:center;font-weight:700;font-size:1.2rem}.flo-id-grid{gap:.5rem;padding:0 1.5rem;grid-template-columns:1fr auto;margin-bottom:1rem}.copy-button{padding:.4rem}#contact_popup__options{padding:1rem 0}.contact__option{font-size:1rem;padding:.8rem 1.5rem;font-weight:500;color:rgba(var(--text-color),.8)}.button__title{margin-left:1rem}#main_card{height:100%;width:100%;grid-row:1/3;background:rgba(var(--foreground-color),.9)}#main_header{grid-area:header;height:max-content;gap:.2rem .5rem;padding:1rem .7rem 1rem 1rem;grid-template-columns:1fr auto;grid-template-areas:"company setting" "app setting"}#page_container{grid-area:page}.page{display:flex;flex-direction:column;height:100%;width:100%}.header__company-name{grid-area:company;font-weight:500;color:rgba(var(--text-color),.7);align-self:flex-end}.header__app-name{align-self:flex-start;line-height:1;grid-area:app;font-weight:700;color:rgba(var(--text-color),.9)}.header__settings-button{grid-area:setting;padding:.8rem}#main_navbar{grid-area:nav}.navbar__item{display:flex;align-items:center;padding:.8rem;border-radius:.5rem}.navbar__item--active .navbar__item__icon{fill:var(--accent-color)}.navbar__item--active .navbar__item__title{color:var(--accent-color)}.navbar__item__icon{margin-right:1rem;fill:rgba(var(--text-color),.7)}.navbar__item__title{font-size:.85rem;font-weight:500;color:rgba(var(--text-color),.7)}.fab{position:absolute;display:inline-flex;border-radius:5rem;aspect-ratio:1/1;padding:.7rem;background:#FF1F1F;box-shadow:0 .5rem .5rem rgba(0,0,0,.16)}.fab__icon{height:1.8rem;width:1.8rem;fill:#fff}#dashboard_page__header{height:7.5rem}#base_header{position:relative;width:100%}.header__title{font-size:1.1rem;font-weight:700;color:rgba(var(--text-color),.8)}.contact-card__name,.contact-option__name{font-weight:500;color:rgba(var(--text-color),.8)}z #search_contacts{--padding:0.5rem 0.6rem;--background:rgba(var(--text-color), 0.1)}.search__icon{height:1.2rem}.expanding-search{width:14rem}.contact-option:not(:last-of-type){margin-right:.5rem}.contact-option:first-of-type{padding-right:.6rem;margin-right:auto;margin-left:-.6rem}.contact-option__button{display:inline-flex;align-items:center;border-radius:.3rem;padding:.5rem .6rem}.contact-option__icon{height:1.2rem;width:1.2rem;margin-right:.5rem}.contact-option__name{font-size:.9rem}#contacts_container{display:flex;flex-wrap:wrap;height:100%;overflow-y:auto;min-height:0;align-content:flex-start;padding:0 0 6rem 1rem;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr))}.contact-card{position:relative;overflow:hidden;display:flex;width:calc(50% - 1rem);aspect-ratio:1/1;flex-direction:column;align-items:center;margin:0 1rem 1rem 0;padding:1.5rem 1rem;flex-shrink:0;user-select:none;align-self:flex-start;justify-content:center;border-radius:.5rem;background:rgba(var(--foreground-color),.6);box-shadow:0 0 0 1px rgba(var(--text-color),.2) inset}.contact-hidden-options{position:absolute;width:100%;top:0;padding:.5rem .8rem}.contact-card__checkbox{--border-radius:0.5rem;--border-color:rgba(var(--text-color), 0.6)}.contact-card__initial{width:3rem;height:3rem;padding:1.5rem;font-size:1.2rem;border-radius:1rem;margin:1.5rem 0}.contact-card__name{text-align:center;font-size:1rem}.balance_card__title,.page__title{font-size:1.1rem}.contact-card__more{padding:.4rem}.more-icon{height:1.2rem;width:1.2rem}#add_contact_button{right:0;bottom:0;margin:1.5rem}.page__header{padding:1rem 1rem 2rem}#send_flo_form{padding:0 1rem;gap:1rem}#balance_card{width:min(22rem,calc(100% - 2rem));padding:1rem;margin:1rem;border-radius:.3rem}#balance_card__input{margin-bottom:1rem}.balance_card__description,.balance_card__title{margin-bottom:.5rem;color:rgba(var(--text-color),.8)}.balance_card__description{font-size:.9rem}#flo_balance{font-size:3rem;margin:2rem 0 1rem}@media all and (max-width:640px){.hide-on-mobile{display:none}#main_card{min-height:100%;grid-template-rows:auto 1fr auto;grid-template-areas:"header" "page" "nav";background:rgba(var(--foreground-color),1)}#main_navbar{flex-direction:row}.navbar__item{flex:1;flex-direction:column}.navbar__item__icon{margin:0 0 .5rem}#dashboard_page__header{padding-top:0}.expanding-search{background-color:rgba(var(--foreground-color),1);position:absolute;z-index:1;width:100%}.back-button{margin-right:1rem}}@media all and (min-width:640px){body{align-items:center;justify-content:center;background:url(lighthouse.svg) center no-repeat;background-size:cover}sm-popup{--width:24rem}.hide-on-desktop{display:none}.popup__header{padding:1rem 1.5rem 0 1rem}#main_card{position:relative;width:80vw;height:80vh;border-radius:.5rem;overflow:hidden;backdrop-filter:blur(1rem);grid-template-columns:15rem 1fr;grid-template-rows:min-content 1fr;grid-template-areas:"header page" "nav page";box-shadow:0 1.5rem 1.5rem rgba(0,0,0,.16)}#main_header{padding:1.5rem 1.2rem 1.5rem 2rem}#main_navbar{flex-direction:column;height:100%;padding:0 1rem;align-content:flex-start}.navbar__item__title{font-size:.9rem}#page_container{position:relative;grid-row:1/3}#page_container::after{content:"";position:absolute;left:0;height:65%;width:1px;background:rgba(var(--text-color),.2);top:50%;transform:translateY(-50%)}.page__header{padding:1.5rem}#contacts_container{padding:0 1rem 8rem 2rem}#add_contact_button{right:0;bottom:0;margin:2rem}}@media all and (min-width:1080px){.contact-card{width:calc(33.33% - 1rem)}}@media all and (min-width:1280px){#main_card{width:65vw;height:85vh}}@media all and (min-width:1920px){#main_card{width:60vw;height:65vh}}@media (any-hover:hover){.contact-card__checkbox:not([checked]):not(:focus-within),.contact-card__more:not(:focus-within){opacity:0;transition:opacity .3s}.contact-card:hover .contact-card__checkbox,.contact-card:hover .contact-card__more{opacity:1}.contact-option__button{transition:background .3s}.contact-option__button:hover{background-color:rgba(var(--text-color),.1)}} \ No newline at end of file +.contact-card,.interact,button{overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent}#contacts_empty_state,.initial{text-align:center}.button__icon,.icon{fill:rgba(var(--text-color),.7)}*,::after,::before{padding:0;margin:0;box-sizing:border-box;font-family:Roboto,sans-serif}:root{height:100%;font-size:clamp(1rem,1.2vmax,3rem);--ease-in-overshhot:cubic-bezier(0.6, -0.28, 0.735, 0.045);--ease-out-overshhot:cubic-bezier(0.175, 0.885, 0.32, 1.275)}body{--accent-color:#6300d4;--text-color:17,17,17;--text-color-light:100,100,100;--foreground-color:255,255,255;--background-color:#efefef;--error-color:red;color:rgba(var(--text-color),1);height:calc(100%)}body[data-theme=dark]{--accent-color:#c64aff;--text-color:240,240,240;--text-color-light:170,170,170;--foreground-color:20,20,20;--error-color:rgb(255, 106, 106)}button{position:relative;display:inline-flex;border:none;background:0 0;outline:0}button:focus-visible{outline:solid rgba(var(--text-color),1)}sm-input,sm-textarea{--border-radius:0.3rem;--background:rgba(var(--text-color), 0.1)}sm-button[variant=primary]{--padding:0.8rem 1.5rem;margin-top:1rem}ul{list-style:none}.flex{display:flex}.grid{display:grid}.align-center{align-items:center}.justify-right{margin-left:auto}.direction-column{flex-direction:column}.space-between{justify-content:space-between}.full-width{width:100%}.hide{opacity:0;pointer-events:none}.hide-completely{display:none!important}.no-transformations{transform:none!important}.overflow-ellipsis{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ripple{position:absolute;border-radius:50%;transform:scale(0);background:rgba(var(--text-color),.16);pointer-events:none}.interact,.navbar__item,.page{position:relative}.observe-empty-state:empty{display:none}.observe-empty-state:not(:empty)~.empty-state{display:none}.icon{width:1.5rem;height:1.5rem}#confirmation_popup,#prompt_popup{flex-direction:column}#confirmation_popup h4,#prompt_popup h4{font-weight:500;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}.popup__header{padding:.5rem 1.5rem 0 1rem;display:grid;grid-template-columns:auto 1fr;gap:.5rem;align-items:center;width:100%}.popup__header__close{padding:.5rem;cursor:pointer}.icon-only{height:2.6rem;width:2.6rem;padding:.6rem}.close-icon{padding:.3rem}.initial{display:flex;user-select:none;align-items:center;justify-content:center;font-weight:500;color:rgba(var(--foreground-color),1);background-color:rgba(var(--text-color),.1)}.contact__option,.copy-label{color:rgba(var(--text-color),.8)}#contact_popup{--body-padding:0}#contact_popup__initial{align-self:center;width:5rem;height:5rem;padding:1rem;margin:1rem 0;font-size:2rem;border-radius:50%}#contact_popup__name{align-self:center;font-weight:700;font-size:1.2rem}.contact__copy-row{padding:0 1.5rem;margin:1rem 0}.copy-label{font-weight:500}.flo-id-grid{gap:.5rem;grid-template-columns:1fr auto}.copy-button{padding:.4rem}#contact_popup__options{padding:1rem 0}.contact__option{font-size:1rem;padding:.8rem 1.5rem;font-weight:500}.button__title{margin-left:1rem}#main_card{height:100%;width:100%;grid-row:1/3;background:rgba(var(--foreground-color),.9)}#main_header{grid-area:header;height:max-content;gap:.2rem 1rem;padding:1rem;grid-template-columns:auto 1fr;grid-template-areas:"logo company" "logo app"}#main_header__logo{width:1.8rem;height:1.8rem;grid-area:logo}#page_container{grid-area:page}.page{display:flex;flex-direction:column;height:100%;width:100%;overflow-y:auto;align-content:flex-start}.header__company-name{grid-area:company;font-weight:500;color:rgba(var(--text-color),.7);align-self:flex-end}.header__app-name{align-self:flex-start;line-height:1;grid-area:app;font-weight:700;color:rgba(var(--text-color),.9)}#main_navbar{grid-area:nav}.navbar__item{display:flex;align-items:center;padding:.8rem;border-radius:.5rem}.navbar__item--active .navbar__item__icon{fill:var(--accent-color)}.navbar__item--active .navbar__item__title{color:var(--accent-color)}.navbar__item__icon{margin-right:1rem;fill:rgba(var(--text-color),.7)}.navbar__item__title{font-size:.8rem;font-weight:500;color:rgba(var(--text-color),.7)}.fab{position:absolute;display:inline-flex;border-radius:5rem;aspect-ratio:1/1;padding:.7rem;background:#FF1F1F;box-shadow:0 .5rem .5rem rgba(0,0,0,.16)}.fab__icon{height:1.8rem;width:1.8rem;fill:#fff}#base_header{position:relative;width:100%}.header__title{font-size:1.1rem;font-weight:700;color:rgba(var(--text-color),.8)}.contact-card__name,.contact-option__name{font-weight:500;color:rgba(var(--text-color),.8)}#search_contacts{--padding:0.5rem 0.6rem;--background:rgba(var(--text-color), 0.1)}.expanding-search{width:14rem}.contact-option:not(:last-of-type){margin-right:.5rem}.contact-option:first-of-type{padding-right:.6rem;margin-right:auto;margin-left:-.6rem}.contact-option__button{display:inline-flex;align-items:center;border-radius:.3rem;padding:.5rem .6rem}.contact-option__icon{height:1.2rem;width:1.2rem;margin-right:.5rem}.contact-option__name{font-size:.9rem}#contacts_container{display:flex;flex-direction:column;max-height:100%;overflow-y:auto;align-content:flex-start;padding:0 0 6rem 1rem}.contact-card{position:relative;display:grid;width:100%;gap:1rem;grid-template-columns:auto auto 1fr auto;align-items:center;padding:.5rem .6rem;flex-shrink:0;user-select:none;align-self:flex-start;justify-content:center;border-radius:.3rem;background:rgba(var(--foreground-color),.6)}.contact-card__checkbox{--height:1.5rem;--width:1.5rem;--border-radius:0.3rem;--border-color:rgba(var(--text-color), 0.6)}.contact-card__initial{width:2rem;height:2rem;padding:1.2rem;font-size:1.1rem;border-radius:50%}.contact-card__name{font-size:1rem}.contact-card__more{padding:.4rem}.empty-state__title{font-weight:400;color:rgba(var(--text-color),.8)}#show_contact_popup_button{right:0;bottom:0;margin:1.5rem}.page__header{padding:1rem}.page__title{font-size:1.1rem}#send_flo_form{width:min(26rem,100%);height:100%;padding:0 1rem;gap:.3}.label{font-size:.9rem;margin-bottom:.3rem;color:rgba(var(--text-color),.9)}.label:not(:first-of-type){margin-top:.8rem}#sent_flo_data{--max-height:12rem}#send_flo_button{margin-top:1.5rem}#balance_card{width:min(22rem,calc(100% - 2rem));padding:1rem;margin:1rem;border-radius:.3rem}#balance_card__input{margin-bottom:1rem}.balance_card__description,.balance_card__title{margin-bottom:.5rem;color:rgba(var(--text-color),.8)}.balance_card__title{font-size:1.1rem}.balance_card__description{font-size:.9rem}#flo_balance{font-size:3rem;margin:2rem 0 1rem}.settings__section{padding:0 1rem;width:min(50ch,100%)}.settings__section:not(:last-of-type){margin-bottom:1rem}.setting__title{color:rgba(var(--text-color),.9)}.setting__description{font-size:.9rem;color:rgba(var(--text-color),.8)}.toggle-grid{gap:.3rem;margin-right:1rem}@media all and (max-width:640px){.hide-on-mobile{display:none}#main_card{min-height:100%;grid-template-rows:auto 1fr auto;grid-template-areas:"header" "page" "nav";background:rgba(var(--foreground-color),1)}#main_navbar{flex-direction:row}.navbar__item{flex:1;flex-direction:column}.navbar__item__icon{margin:0 0 .5rem}#dashboard_page__header{padding-top:0}.expanding-search{background-color:rgba(var(--foreground-color),1);position:absolute;z-index:1;width:100%}}@media all and (min-width:640px){body{align-items:center;justify-content:center;background:url(lighthouse.svg) center no-repeat;background-size:cover}sm-popup{--width:24rem}.hide-on-desktop{display:none}.popup__header{padding:1rem 1.5rem 0 1rem}#main_card{position:relative;width:80vw;height:80vh;border-radius:.5rem;overflow:hidden;backdrop-filter:blur(1rem);grid-template-columns:15rem 1fr;grid-template-rows:auto 1fr;grid-template-areas:"header page" "nav page";box-shadow:0 1.5rem 1.5rem rgba(0,0,0,.16)}#main_header{padding:1.5rem}#main_navbar{flex-direction:column;height:100%;padding:0 1rem;align-content:flex-start}.navbar__item__title{font-size:.9rem}#page_container{position:relative;grid-row:1/3}#page_container::after{content:"";position:absolute;left:0;height:65%;width:1px;background:rgba(var(--text-color),.2);top:50%;transform:translateY(-50%)}.page__header{min-height:6.2rem;padding:1.5rem}#contacts_container{padding:0 1rem 8rem 1.5rem}#send_flo_form{padding:0 1.5rem 1.5rem}.settings__section{padding:0 1.5rem}}@media all and (min-width:1280px){#main_card{width:65vw;height:85vh}}@media all and (min-width:1920px){#main_card{width:60vw;height:65vh}}@media (any-hover:hover){::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background:rgba(var(--text-color),.3);border-radius:1rem}::-webkit-scrollbar-thumb:hover{background:rgba(var(--text-color),.5)}.contact-card__checkbox:not([checked]):not(:focus-within){opacity:.4;transition:opacity .3s}.contact-card__more:not(:focus-within){opacity:0;transition:opacity .3s}.contact-card:hover .contact-card__checkbox,.contact-card:hover .contact-card__more{opacity:1}.contact-option__button{transition:background .3s}.contact-option__button:hover{background-color:rgba(var(--text-color),.1)}} \ No newline at end of file diff --git a/css/main.scss b/css/main.scss index 2f39e1f..7cac3fb 100644 --- a/css/main.scss +++ b/css/main.scss @@ -44,7 +44,12 @@ button:focus-visible{ } sm-input, sm-textarea{ - --border-radius: 0.5rem; + --border-radius: 0.3rem; + --background: rgba(var(--text-color), 0.1); +} +sm-button[variant="primary"]{ + --padding: 0.8rem 1.5rem; + margin-top: 1rem; } ul{ list-style: none; @@ -90,7 +95,7 @@ ul{ position: absolute; border-radius: 50%; transform: scale(0); - background: rgba(var(--text-color), 0.2); + background: rgba(var(--text-color), 0.16); pointer-events: none; } .interact{ @@ -99,6 +104,12 @@ ul{ cursor: pointer; -webkit-tap-highlight-color: transparent; } +.observe-empty-state:empty{ + display: none; +} +.observe-empty-state:not(:empty) ~ .empty-state{ + display: none; +} .icon{ width: 1.5rem; height: 1.5rem; @@ -135,9 +146,13 @@ ul{ padding: 0.5rem; cursor: pointer; } +.icon-only{ + height: 2.6rem; + width: 2.6rem; + padding: 0.6rem; +} .close-icon{ - height: 2rem; - width: 2rem; + padding: 0.3rem; } .initial{ display: flex; @@ -145,6 +160,8 @@ ul{ user-select: none; align-items: center; justify-content: center; + font-weight: 500; + color: rgba(var(--foreground-color), 1); background-color: rgba(var(--text-color), 0.1); } @@ -156,20 +173,26 @@ ul{ width: 5rem; height: 5rem; padding: 1rem; - margin: 4rem 0 1rem 0; + margin: 1rem 0; font-size: 2rem; - border-radius: 1.5rem; + border-radius: 50%; } #contact_popup__name{ align-self: center; font-weight: 700; font-size: 1.2rem; } +.contact__copy-row{ + padding: 0 1.5rem; + margin: 1rem 0; +} +.copy-label{ + font-weight: 500; + color: rgba(var(--text-color), 0.8); +} .flo-id-grid{ gap: 0.5rem; - padding: 0 1.5rem; grid-template-columns: 1fr auto; - margin-bottom: 1rem; } #contact__flo_id{ } @@ -202,10 +225,15 @@ ul{ #main_header{ grid-area: header; height: max-content; - gap: 0.2rem 0.5rem; - padding: 1rem 0.7rem 1rem 1rem; - grid-template-columns: 1fr auto; - grid-template-areas: 'company setting' 'app setting'; + gap: 0.2rem 1rem; + padding: 1rem; + grid-template-columns: auto 1fr; + grid-template-areas: 'logo company' 'logo app'; +} +#main_header__logo{ + width: 1.8rem; + height: 1.8rem; + grid-area: logo; } #page_container{ grid-area: page; @@ -216,6 +244,8 @@ ul{ flex-direction: column; height: 100%; width: 100%; + overflow-y: auto; + align-content: flex-start; } .header__company-name{ grid-area: company; @@ -230,10 +260,6 @@ ul{ font-weight: 700; color: rgba(var(--text-color), 0.9); } -.header__settings-button{ - grid-area: setting; - padding: 0.8rem; -} #main_navbar{ grid-area: nav; } @@ -258,7 +284,7 @@ ul{ fill: rgba(var(--text-color), 0.7); } .navbar__item__title{ - font-size: 0.85rem; + font-size: 0.8rem; font-weight: 500; color: rgba(var(--text-color), 0.7); } @@ -279,7 +305,6 @@ ul{ } #dashboard_page__header{ - height: 7.5rem; } #base_header{ position: relative; @@ -291,16 +316,16 @@ ul{ color: rgba(var(--text-color), 0.8); } -z #search_contacts{ --padding: 0.5rem 0.6rem; --background: rgba(var(--text-color), 0.1); } -.search__icon{ - height: 1.2rem; +#search_contacts_button{ + } + .expanding-search{ width: 14rem; } @@ -336,55 +361,44 @@ z #contacts_container{ display: flex; - flex-wrap: wrap; - height: 100%; + flex-direction: column; + max-height: 100%; overflow-y: auto; - min-height: 0; align-content: flex-start; padding: 0 0 6rem 1rem; - grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); } .contact-card{ position: relative; overflow: hidden; - display: flex; - width: calc(50% - 1rem); - aspect-ratio: 1/1; - flex-direction: column; + display: grid; + width: 100%; + gap: 1rem; + grid-template-columns: auto auto 1fr auto; align-items: center; - margin: 0 1rem 1rem 0; - padding: 1.5rem 1rem; + padding: 0.5rem 0.6rem; flex-shrink: 0; cursor: pointer; user-select: none; align-self: flex-start; justify-content: center; - border-radius: 0.5rem; + border-radius: 0.3rem; background: rgba(var(--foreground-color), 0.6); - // box-shadow: 0 0.2rem 0.4rem rgba(0, 0, 0, 0.06); - box-shadow: 0 0 0 1px rgba(var(--text-color), 0.2) inset; -webkit-tap-highlight-color: transparent; } -.contact-hidden-options{ - position: absolute; - width: 100%; - top: 0; - padding: 0.5rem 0.8rem; -} .contact-card__checkbox{ - --border-radius: 0.5rem; + --height: 1.5rem; + --width: 1.5rem; + --border-radius: 0.3rem; --border-color: rgba(var(--text-color), 0.6); } .contact-card__initial{ - width: 3rem; - height: 3rem; - padding: 1.5rem; - font-size: 1.2rem; - border-radius: 1rem; - margin: 1.5rem 0; + width: 2rem; + height: 2rem; + padding: 1.2rem; + font-size: 1.1rem; + border-radius: 50%; } .contact-card__name{ - text-align: center; font-weight: 500; font-size: 1rem; color: rgba(var(--text-color), 0.8); @@ -392,27 +406,47 @@ z .contact-card__more{ padding: 0.4rem; } -.more-icon{ - height: 1.2rem; - width: 1.2rem; +#contacts_empty_state{ + text-align: center; +} +.empty-state__title{ + font-weight: 400; + color: rgba(var(--text-color), 0.8); } -#add_contact_button{ +#show_contact_popup_button{ right: 0; bottom: 0; margin: 1.5rem; } .page__header{ - padding: 1rem 1rem 2rem 1rem; + padding: 1rem; } .page__title{ font-size: 1.1rem; } #send_flo_form{ + width: min(26rem, 100%); + height: 100%; padding: 0 1rem; - gap: 1rem; + gap: 0.3; +} + +.label{ + font-size: 0.9rem; + margin-bottom: 0.3rem; + color: rgba(var(--text-color), 0.9); + &:not(:first-of-type){ + margin-top: 0.8rem; + } +} +#sent_flo_data{ + --max-height: 12rem; +} +#send_flo_button{ + margin-top: 1.5rem; } @@ -441,6 +475,28 @@ z margin: 2rem 0 1rem 0; } + + +.settings__section{ + padding: 0 1rem; + width: min(50ch, 100%); + &:not(:last-of-type){ + margin-bottom: 1rem; + } +} +.setting__title{ + color: rgba(var(--text-color), 0.9); +} +.setting__description{ + font-size: 0.9rem; + color: rgba(var(--text-color), 0.8); +} +.toggle-grid{ + gap: 0.3rem; + margin-right: 1rem; +} + + // mobile only styles @media all and (max-width: 640px){ .hide-on-mobile{ @@ -475,7 +531,7 @@ z width: 100%; } .back-button{ - margin-right: 1rem; + } } @@ -504,12 +560,12 @@ z overflow: hidden; backdrop-filter: blur(1rem); grid-template-columns: 15rem 1fr; - grid-template-rows: min-content 1fr; + grid-template-rows: auto 1fr; grid-template-areas: 'header page' 'nav page'; box-shadow: 0 1.5rem 1.5rem rgba(0, 0, 0, 0.16); } #main_header{ - padding: 1.5rem 1.2rem 1.5rem 2rem; + padding: 1.5rem; } #main_navbar{ flex-direction: column; @@ -535,21 +591,21 @@ z } } .page__header{ + min-height: 6.2rem; padding: 1.5rem; } #contacts_container{ - padding: 0 1rem 8rem 2rem; + padding: 0 1rem 8rem 1.5rem; } - #add_contact_button{ - right: 0; - bottom: 0; - margin: 2rem; + #send_flo_form{ + padding: 0 1.5rem 1.5rem 1.5rem; + } + .settings__section{ + padding: 0 1.5rem; } } @media all and (min-width: 1080px){ - .contact-card{ - width: calc(33.33% - 1rem); - } + } @media all and (min-width: 1280px){ #main_card{ @@ -564,7 +620,22 @@ z } } @media (any-hover: hover){ - .contact-card__checkbox:not([checked]):not(:focus-within), + ::-webkit-scrollbar{ + width: 0.5rem; + height: 0.5rem; + } + + ::-webkit-scrollbar-thumb{ + background: rgba(var(--text-color), 0.3); + border-radius: 1rem; + &:hover{ + background: rgba(var(--text-color), 0.5); + } + } + .contact-card__checkbox:not([checked]):not(:focus-within){ + opacity: 0.4; + transition: opacity 0.3s; + } .contact-card__more:not(:focus-within){ opacity: 0; transition: opacity 0.3s; diff --git a/new.html b/new.html index 73fd48e..3fafeb6 100644 --- a/new.html +++ b/new.html @@ -11,7 +11,7 @@ - +