Spaces:
Sleeping
Sleeping
| /* 現有樣式 */ | |
| /* 新增更明顯的打字動畫 */ | |
| .typing-animation { | |
| margin-top: 8px; | |
| padding-top: 6px; | |
| border-top: 1px solid rgba(0, 0, 0, 0.1); | |
| } | |
| .typing-text { | |
| font-size: 14px; | |
| color: #666; | |
| font-style: italic; | |
| min-width: 80px; | |
| animation: pulse 2s infinite ease-in-out; | |
| } | |
| @keyframes pulse { | |
| 0% { opacity: 0.6; } | |
| 50% { opacity: 1; } | |
| 100% { opacity: 0.6; } | |
| } | |
| /* 更生動的打字指示器 */ | |
| .typing-indicator { | |
| display: flex; | |
| align-items: center; | |
| margin-top: 8px; | |
| padding-top: 6px; | |
| border-top: 1px solid rgba(0, 0, 0, 0.1); | |
| font-size: 14px; | |
| color: #666; | |
| } | |
| .typing-indicator span { | |
| margin-right: 5px; | |
| } | |
| .typing-dots { | |
| display: inline-flex; | |
| align-items: center; | |
| } | |
| .typing-dots span { | |
| width: 4px; | |
| height: 4px; | |
| margin: 0 1px; | |
| background-color: #666; | |
| border-radius: 50%; | |
| animation: blink 1.4s infinite both; | |
| } | |
| .typing-dots span:nth-child(2) { | |
| animation-delay: 0.2s; | |
| } | |
| .typing-dots span:nth-child(3) { | |
| animation-delay: 0.4s; | |
| } | |
| @keyframes blink { | |
| 0% { opacity: 0.2; } | |
| 20% { opacity: 1; } | |
| 100% { opacity: 0.2; } | |
| } | |
| /* 添加閃爍的光標效果 */ | |
| .blinking-cursor { | |
| display: inline-block; | |
| width: 8px; | |
| height: 16px; | |
| background-color: #333; | |
| margin-left: 2px; | |
| animation: blink 1s infinite; | |
| } | |
| @keyframes blink { | |
| 0%, 49% { | |
| opacity: 1; | |
| } | |
| 50%, 100% { | |
| opacity: 0; | |
| } | |
| } | |
| /* 呼吸效果的氣泡 */ | |
| .ai-bubble.breathing { | |
| animation: breathe 2s infinite ease-in-out; | |
| box-shadow: 0 0 8px rgba(0, 120, 255, 0.3); | |
| } | |
| @keyframes breathe { | |
| 0%, 100% { | |
| transform: scale(1); | |
| box-shadow: 0 0 8px rgba(0, 120, 255, 0.3); | |
| } | |
| 50% { | |
| transform: scale(1.02); | |
| box-shadow: 0 0 12px rgba(0, 120, 255, 0.5); | |
| } | |
| } | |
| /* 打字光標效果 */ | |
| .typing-cursor { | |
| display: inline-block; | |
| width: 2px; | |
| height: 16px; | |
| background-color: #3498db; | |
| margin-left: 2px; | |
| vertical-align: middle; | |
| animation: cursor-blink 1s infinite; | |
| } | |
| @keyframes cursor-blink { | |
| 0%, 49% { opacity: 1; } | |
| 50%, 100% { opacity: 0; } | |
| } | |
| /* 確保消息內容區域有適當的樣式 */ | |
| .message-content { | |
| display: inline; | |
| } | |
| /* Markdown 樣式 */ | |
| .markdown-content h1 { | |
| font-size: 1.8em; | |
| margin-top: 16px; | |
| margin-bottom: 8px; | |
| font-weight: 600; | |
| } | |
| .markdown-content h2 { | |
| font-size: 1.5em; | |
| margin-top: 14px; | |
| margin-bottom: 7px; | |
| font-weight: 600; | |
| } | |
| .markdown-content h3 { | |
| font-size: 1.3em; | |
| margin-top: 12px; | |
| margin-bottom: 6px; | |
| font-weight: 600; | |
| } | |
| .markdown-content h4, .markdown-content h5, .markdown-content h6 { | |
| font-size: 1.1em; | |
| margin-top: 10px; | |
| margin-bottom: 5px; | |
| font-weight: 600; | |
| } | |
| .markdown-content strong { | |
| font-weight: 700; | |
| } | |
| .markdown-content em { | |
| font-style: italic; | |
| } | |
| .markdown-content code { | |
| font-family: 'Courier New', Courier, monospace; | |
| background-color: rgba(0, 0, 0, 0.05); | |
| padding: 2px 4px; | |
| border-radius: 3px; | |
| font-size: 0.9em; | |
| } | |
| .markdown-content pre { | |
| background-color: #f6f8fa; | |
| border-radius: 6px; | |
| padding: 16px; | |
| overflow: auto; | |
| margin: 16px 0; | |
| } | |
| .markdown-content pre code { | |
| background-color: transparent; | |
| padding: 0; | |
| font-size: 0.9em; | |
| white-space: pre; | |
| } | |
| .markdown-content a { | |
| color: #0366d6; | |
| text-decoration: none; | |
| } | |
| .markdown-content a:hover { | |
| text-decoration: underline; | |
| } | |
| .markdown-content blockquote { | |
| border-left: 4px solid #dfe2e5; | |
| padding-left: 16px; | |
| color: #6a737d; | |
| margin: 16px 0; | |
| } | |
| .markdown-content ul, .markdown-content ol { | |
| padding-left: 24px; | |
| margin: 8px 0; | |
| } | |
| .markdown-content img { | |
| max-width: 100%; | |
| margin: 8px 0; | |
| } | |
| .markdown-content table { | |
| border-collapse: collapse; | |
| width: 100%; | |
| margin: 16px 0; | |
| } | |
| .markdown-content table th, .markdown-content table td { | |
| border: 1px solid #dfe2e5; | |
| padding: 8px 12px; | |
| } | |
| .markdown-content table th { | |
| background-color: #f6f8fa; | |
| font-weight: 600; | |
| } | |
| /* 確保 AI 氣泡內的 Markdown 內容有適當的間距 */ | |
| .ai-bubble .markdown-content { | |
| margin: 0; | |
| } | |
| .ai-bubble .markdown-content > *:first-child { | |
| margin-top: 0; | |
| } | |
| .ai-bubble .markdown-content > *:last-child { | |
| margin-bottom: 0; | |
| } |