html, body { margin: 0; padding: 0; background-color: rgba(235, 235, 235, 0.75); } /* The first word of the class is the component that it modifys. */ #splash { width: 100vw; height: 100vh; display: flex; align-items: center; justify-content: center; } #app { font-family: "SF Pro Text"; -webkit-font-smoothing: antialiased; height: 100vh; width: 100vw; border-radius: 15px; } #header-titlebar { position: fixed; width: 100vw; height: 54px; opacity: 0.75; background-color: #EBEBEB; -webkit-app-region: drag; border: none; outline: none; z-index: 1; } .contacts { margin: 0; padding: 0; border-radius: inherit; background-color: #DBDBDB; } .contacts > li { padding: 12px; display: flex; } .contacts img { height: 30px; border-radius: 50%; } .contacts .info { margin-left: 10px; margin-right: 10px; } .contacts .name { } .contacts .email { font-family: SF Compact Display; font-size: 12px; color: #898989; } #header-menu { position: fixed; margin-left: 20px; margin-top: 20px; z-index: 2; } .header-menu-button { min-width: 14px; min-height: 14px; border-radius: 7px; } .header-exit-button { background-color: #FF6157; } .header-exit-button:active { background: #c14645; } .header-min-button { background-color: #FFC12F; margin-left: 8px; } .header-min-button:active { background-color: #c08e38; } #login { width: 100vw; height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; } #login-form { font-family: "SF Compact Display"; display: flex; flex-direction: column; align-items: center; justify-content: center; padding-bottom: 20px; } .login-input-box { display: flex; flex-direction: column; align-items: center; justify-content: center; margin-bottom: 10px; } .login-input { background-color: #B9B9B9; border: none; outline: none; padding: 16px; text-decoration: none; margin: 4px 2px; cursor: pointer; border-radius: 10px; } .login-input-modifier { min-width: 181px; font-size: 12px; font-weight: bold; text-align: left; margin-left: 15px; } .login-submit-button { font-family: "SF Compact Display"; position: fixed; margin-top: 260px; background-color: #58C4FD; color: white; padding: 10px 30px; border-radius: 20px; font-size: 14px; font-weight: bold; } .login-submit-button:active { background-color: #4296C3; } /* generic shaking functionality */ .shake { animation: shake 0.82s cubic-bezier(.36,.07,.19,.97) both; transform: translate3d(0, 0, 0); backface-visibility: hidden; perspective: 1000px; } @keyframes shake { 10%, 90% { transform: translate3d(-1px, 0, 0); } 20%, 80% { transform: translate3d(2px, 0, 0); } 30%, 50%, 70% { transform: translate3d(-4px, 0, 0); } 40%, 60% { transform: translate3d(4px, 0, 0); } } #messenger { width: 100vw; height: 100vh; overflow: auto; } /* hide native scrollbar */ #messenger::-webkit-scrollbar { display: none; } #ws { position: fixed; width: 100vw; height: 54px; display: flex; align-items: center; justify-content: center; z-index: 1; } #ws-logo { transition: all 0.5s; } #ws-logo.move { transform: translateX(15px); } #ws-dots { opacity: 0; transition: all 0.5s; } #ws-dots.move { opacity: 1; transform: translateX(-15px); } .ws-dot { width: 6px; height: 6px; border-radius: 50%; background-color: #48E065; position: relative; transform: translateX(-15px); animation: ws-dot-flashing 1s infinite linear alternate; animation-delay: .25s; } .ws-dot::before, .ws-dot::after { content: ''; display: inline-block; position: absolute; box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.15); } .ws-dot::before { width: 6px; height: 6px; border-radius: 50%; background-color: #48E065; left: -9px; animation: ws-dot-flashing 1s infinite alternate; animation-delay: 0s; } .ws-dot::after { width: 6px; height: 6px; border-radius: 50%; background-color: #48E065; left: 9px; animation: ws-dot-flashing 1s infinite alternate; animation-delay: 0.5s; } @keyframes ws-dot-flashing { 0% { background-color: #48E065; } 50%, 100% { background-color: #9B9B9B; } } #input { position: absolute; display: flex; align-items: center; justify-content: center; padding: 0; width: 40px; height: 40px; z-index: 3; /* To prevent window drag when overlapping with titlebar. */ -webkit-app-region: no-drag; border-radius: 50%; /* Set opacity here to not affect child. */ background-color: rgba(235, 235, 235, 0.75); cursor: pointer; box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.15); } #input-text { position: absolute; min-width: 150px; height: 16px; border-radius: 18px; padding: 10px; outline: none; border: none; pointer-events: none; background-color: white; z-index: -1; box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.15); transform-origin: center; opacity: 0; transform: translateX(70%); transition: all 0.5s; } #input-text.show { opacity: 1; } #input-text.leftSide { transform: translateX(-70%); } #settings { position: fixed; width: 100vw; height: 100vh; background-color: rgba(235, 235, 235, 0.75); z-index: 4; display: flex; flex-direction: column; justify-content: center; align-items: center; animation-name: settings-appear; animation-duration: 0.5s; } @keyframes settings-appear { from { background-color: rgba(235, 235, 235, 0); } to { background-color: rgba(235, 235, 235, 0.75); } } .settings-icon { position: fixed; right: 0; border: none; outline: none; display: flex; flex-direction: row; padding: 5px; margin-right: 20px; margin-top: 19px; z-index: 2; background-color: Transparent; } .settings-icon:hover { cursor: pointer; } .settings-account { font-size: 12px; font-weight: bold; margin-bottom: 25px; } .settings-logout-button { font-family: "SF Compact Display"; background-color: #B7B7B7; padding: 10px 30px; border-radius: 20px; font-size: 14px; font-weight: bold; } .settings-logout-button:hover { cursor: pointer; } .settings-version { position: absolute; left: 50%; top: 75%; transform: translate(-50%, -50%); font-size: 12px; font-weight: bold; color: #575757; } .message { width: 100vw; display: flex; flex-direction: column; padding-top: 9px; padding-bottom: 9px; animation-name: message-init-anim; animation-duration: 0.25s; } @keyframes message-init-anim { from { opacity: 0; } to { opacity: 1; } } .message:first-child { margin-top: 55px; } .message:last-child { margin-bottom: 6px; } .client-message { align-items: flex-end; } .ai-message { align-items: flex-start; } .bubble { position: relative; max-width: 66vw; font-family: "SF Pro Text"; font-size: 14px; border-radius: 18px; margin-bottom: 4px; } .ai-bubble { background-color: #FFFFFF; margin-left: 15px; } .client-bubble { color: white; background-color: #58C4FD; margin-right: 15px; } .ai-first-child { border-bottom-left-radius: 9px; } .ai-middle-child { border-top-left-radius: 9px; border-bottom-left-radius: 9px; } .ai-last-child { border-top-left-radius: 9px; } .client-first-child { border-bottom-right-radius: 9px; } .client-middle-child { border-top-right-radius: 9px; border-bottom-right-radius: 9px; } .client-last-child { border-top-right-radius: 9px; } .bubble > p { margin: 0px; padding: 10px; } .bubble > div { border-radius: inherit; } .bubble > img { border-radius: inherit; display: block; max-width: inherit; } .bubble a { display:inline-block; text-decoration: none; border-radius: inherit; background-color: #D9D9D9; font-weight: bold; padding: 10px; color: #727272; } .context { position: relative; min-height: 14px; display: flex; align-items: center; font-family: "SF Compact Display"; font-size: 12px; font-weight: bold; margin-top: 5px; } .ai-context { margin-left: 15px; } .client-context { margin-right: 15px; } .context-avatar { margin-right: 5px; border-radius: 50%; height: 30px; } /* ---------- shared between components ---------- */ .button { border: none; outline: none; text-decoration: none; } /*.button:hover { cursor: pointer; }*/ .audio { animation-name: audio-anim; animation-duration: 2s; animation-iteration-count: infinite; } @keyframes audio-anim { 0%, 100% { box-shadow: 0 0 0 0.4em rgba(195, 195, 195, 0.4), 0 0 0 0.25em rgba(195, 195, 195, 0.15); } 25% { box-shadow: 0 0 0 0.15em rgba(195, 195, 195, 0.15), 0 0 0 0.4em rgba(195, 195, 195, 0.3); } 50% { box-shadow: 0 0 0 0.55em rgba(195, 195, 195, 0.55), 0 0 0 0.15em rgba(195, 195, 195, 0.05); } 75% { box-shadow: 0 0 0 0.25em rgba(195, 195, 195, 0.25), 0 0 0 0.55em rgba(195, 195, 195, 0.45); } }