.voice_wrapper { background: url("@/assets/images/training_logo.png") top center no-repeat; overflow: hidden; .blur_bg { height: 100%; left: 0; position: absolute; top: 0; width: 100%; -webkit-backdrop-filter: blur(60px); backdrop-filter: blur(60px); background-color: rgba(244, 244, 246, 0.8); } .voice_chat_wrapper { align-items: center; display: flex; flex-direction: column; height: 100%; justify-content: space-between; padding-bottom: 80px; } .chat_header { position: relative; width: 100%; .avatar_container { align-items: center; display: flex; flex-direction: column; justify-content: center; margin-top: 70px; width: 100%; } .logo_wrap { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; } .logo { width: 140px; height: 140px; background-image: url("@/assets/images/training_logo.png"); background-position: 50%; background-repeat: no-repeat; background-size: cover; border-radius: 36px; box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.25); } .title { color: rgba(6, 7, 9, 0.96); font-size: 20px; font-weight: 500; line-height: 28px; margin-bottom: 16px; margin-top: 12px; max-width: 40%; min-width: 180px; overflow: hidden; text-align: center; text-overflow: ellipsis; white-space: nowrap; } .content_flag { position: absolute; top: 8px; right: 8px; .button_flag { border: none; } } .play_loading_wrap { position: absolute; top: -28px; right: -42px; width: 82px; height: 58px; background: #fff; border: 1px solid rgba(153, 182, 255, 0.12); border-radius: 36px; box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.25); } .play_loading { display: flex; gap: 4px; align-items: center; } .play_loading_dot { width: 8px; height: 8px; background-color: #7a70eb; border-radius: 4px; animation: bounce 0.8s infinite ease-in-out; &:nth-child(1) { animation-delay: 0s; } &:nth-child(2) { animation-delay: 0.2s; } &:nth-child(3) { animation-delay: 0.4s; } } @keyframes bounce { 0%, 100% { height: 8px; opacity: 0.6; } 50% { height: 16px; opacity: 1; } } } .chat_content { -webkit-mask: linear-gradient( hsla(0, 0%, 100%, 0), #fff 10%, #fff 90%, hsla(0, 0%, 100%, 0) ); mask: linear-gradient( hsla(0, 0%, 100%, 0), #fff 10%, #fff 90%, hsla(0, 0%, 100%, 0) ); font-size: 14px; padding: 24px 24px 8px; overflow-y: auto; max-width: 900px; width: 100%; flex: 1; .ant-list-item { border: none; } .message_item_wrap { text-align: left; padding: 8px 16px; } .message_item { padding: 8px 12px; border-radius: 8px; background-color: #fff; display: inline-block; color: rgba(0, 0, 0, 0.88); } .user_item { background-color: #c8c4f6; } } .chat_info { align-items: flex-end; display: flex; height: 70px; justify-content: center; margin-bottom: 16px; width: 100%; position: relative; .tips { font-size: 14px; color: rgba(6, 7, 9, 0.5); } .listening { display: flex; flex-direction: column; align-items: center; } .listen_dots { margin-bottom: 20px; } .dot { width: 8px; height: 8px; border-radius: 4px; background-color: #6c6a6f; margin-right: 4px; &:last-child { margin-right: 0; } } .retry_btn { cursor: pointer; color: $primary-color; } } .button_wrapper { align-items: center; display: flex; flex-wrap: nowrap; justify-content: center; .button_block { position: relative; height: 64px; width: 64px; } .button_hangup { border-radius: 100%; font-size: 24px; height: 64px; width: 64px; color: #e53241; box-shadow: 0 4px 12px 0 rgba(#000, 0.08), 0 8px 24px 0 rgba(#000, 0.04); border: none; &:hover { background-color: rgb(233, 235, 242); color: #e53241; } } .button_text { align-items: center; display: flex; flex-direction: column; justify-content: center; margin-top: 12px; position: absolute; width: 100%; font-size: 14px; } .button_answer_wrapper { position: relative; margin-left: 110px; .button_answer_box { height: 64px; position: relative; width: 64px; } .cycle { animation: diffusion 3s cubic-bezier(0.32, 0.94, 0.6, 1) infinite; background-image: linear-gradient(#3ec254, rgba(62, 194, 84, 0)); border-radius: 50%; height: 64px; position: absolute; width: 64px; } .cycle1 { animation-delay: 0.6s; } .cycle2 { animation-delay: 1.2s; } .cycle3 { animation-delay: 1.8s; } .button_answer { animation: rotation 0.2s cubic-bezier(0.4, 0.8, 0.74, 1) infinite; border-radius: 100%; font-size: 24px; height: 64px; position: absolute; width: 64px; z-index: 2; -webkit-tap-highlight-color: transparent; background-color: #3ec254; border: none; color: #fff; } } .btn_loading { animation: animation-rotate 0.6s linear infinite; animation-fill-mode: forwards; } } @keyframes diffusion { 0% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(2); } } @keyframes animation-rotate { 0% { transform: rotate(0); } 100% { transform: rotate(1turn); } } }