Download src/components/Chat/Chat.module.css from Cripple-Lee/Personal-Assistant-Client: direct link, hf CLI and curl.
- Browser
- Download file 5.65 kB
-
https://huggingface.co/spaces/Cripple-Lee/Personal-Assistant-Client/resolve/main/src/components/Chat/Chat.module.css
- Command line
-
hf download hf://spaces/Cripple-Lee/Personal-Assistant-Client/src/components/Chat/Chat.module.css
-
curl -L -o Chat.module.css https://huggingface.co/spaces/Cripple-Lee/Personal-Assistant-Client/resolve/main/src/components/Chat/Chat.module.css
5.65 kB
| .layout { | |
| display: flex; | |
| width: 100%; | |
| height: 100svh; | |
| } | |
| .chat { | |
| flex: 1 1 auto; | |
| min-width: 0; | |
| display: flex; | |
| flex-direction: column; | |
| height: 100svh; | |
| max-width: 800px; | |
| margin: 0 auto; | |
| padding: 24px; | |
| box-sizing: border-box; | |
| } | |
| .header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 16px; | |
| margin-bottom: 24px; | |
| h1 { | |
| font-size: 32px; | |
| margin: 0; | |
| } | |
| p { | |
| color: var(--text); | |
| margin: 0; | |
| } | |
| } | |
| .headerActions { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| } | |
| .userName { | |
| font-size: 14px; | |
| font-weight: 600; | |
| color: var(--text-h); | |
| } | |
| .logoutButton { | |
| padding: 8px 14px; | |
| font-size: 13px; | |
| font-weight: 600; | |
| border: 1px solid var(--border); | |
| border-radius: 10px; | |
| background: var(--bg); | |
| color: var(--text-h); | |
| cursor: pointer; | |
| transition: background 0.2s; | |
| &:hover { | |
| background: #f0f0f0; | |
| } | |
| } | |
| .messages { | |
| flex: 1 1 auto; | |
| overflow-y: auto; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 16px; | |
| padding-bottom: 16px; | |
| } | |
| .message { | |
| display: flex; | |
| &.user { | |
| justify-content: flex-end; | |
| } | |
| &.agent { | |
| justify-content: flex-start; | |
| } | |
| } | |
| .bubble { | |
| max-width: 70%; | |
| padding: 12px 16px; | |
| border-radius: 16px; | |
| background: #f5f5f5; | |
| color: #111; | |
| text-align: left; | |
| word-break: break-word; | |
| .role { | |
| display: block; | |
| font-size: 12px; | |
| font-weight: 600; | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| margin-bottom: 4px; | |
| color: #777; | |
| } | |
| .content { | |
| margin: 0; | |
| line-height: 1.5; | |
| /* Markdown rendering styles (agent messages) */ | |
| p { | |
| margin: 0 0 12px; | |
| &:last-child { | |
| margin-bottom: 0; | |
| } | |
| } | |
| h1, h2, h3, h4, h5, h6 { | |
| margin: 16px 0 8px; | |
| line-height: 1.3; | |
| &:first-child { | |
| margin-top: 0; | |
| } | |
| } | |
| h1 { font-size: 1.5em; } | |
| h2 { font-size: 1.35em; } | |
| h3 { font-size: 1.2em; } | |
| h4 { font-size: 1.1em; } | |
| ul, ol { | |
| margin: 0 0 12px; | |
| padding-left: 24px; | |
| } | |
| li { | |
| margin: 4px 0; | |
| } | |
| code { | |
| background: rgba(0, 0, 0, 0.06); | |
| padding: 2px 6px; | |
| border-radius: 4px; | |
| font-size: 0.9em; | |
| font-family: var(--mono, ui-monospace, monospace); | |
| } | |
| pre { | |
| background: rgba(0, 0, 0, 0.06); | |
| padding: 12px; | |
| border-radius: 8px; | |
| overflow-x: auto; | |
| margin: 0 0 12px; | |
| code { | |
| background: none; | |
| padding: 0; | |
| } | |
| } | |
| table { | |
| border-collapse: collapse; | |
| width: 100%; | |
| margin: 0 0 12px; | |
| font-size: 0.95em; | |
| } | |
| th, td { | |
| border: 1px solid var(--border, #e5e5e5); | |
| padding: 6px 10px; | |
| text-align: left; | |
| } | |
| th { | |
| background: rgba(0, 0, 0, 0.04); | |
| font-weight: 600; | |
| } | |
| hr { | |
| border: none; | |
| border-top: 1px solid var(--border, #e5e5e5); | |
| margin: 12px 0; | |
| } | |
| blockquote { | |
| margin: 0 0 12px; | |
| padding-left: 12px; | |
| border-left: 3px solid var(--border, #e5e5e5); | |
| color: #555; | |
| } | |
| a { | |
| color: #2563eb; | |
| text-decoration: underline; | |
| } | |
| } | |
| } | |
| .user .bubble { | |
| background: #222; | |
| color: #fff; | |
| .role { | |
| color: #aaa; | |
| } | |
| } | |
| .inputArea { | |
| display: flex; | |
| gap: 12px; | |
| padding-top: 16px; | |
| border-top: 1px solid var(--border); | |
| input { | |
| flex: 1 1 auto; | |
| padding: 12px 16px; | |
| font-size: 16px; | |
| border: 1px solid var(--border); | |
| border-radius: 12px; | |
| background: var(--bg); | |
| color: var(--text-h); | |
| outline: none; | |
| transition: border-color 0.2s, box-shadow 0.2s; | |
| &:focus { | |
| border-color: #999; | |
| box-shadow: 0 0 0 3px #e5e5e5; | |
| } | |
| &:disabled { | |
| opacity: 0.6; | |
| cursor: not-allowed; | |
| } | |
| } | |
| button { | |
| flex: 0 0 auto; | |
| padding: 12px 24px; | |
| font-size: 16px; | |
| font-weight: 600; | |
| border: none; | |
| border-radius: 12px; | |
| background: #111; | |
| color: #fff; | |
| cursor: pointer; | |
| transition: opacity 0.2s, transform 0.1s; | |
| &:hover:not(:disabled) { | |
| opacity: 0.85; | |
| } | |
| &:active:not(:disabled) { | |
| transform: scale(0.98); | |
| } | |
| &:disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| } | |
| } | |
| .pauseButton { | |
| background: #b91c1c; | |
| } | |
| } | |
| .loading { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| color: var(--text); | |
| font-size: 14px; | |
| } | |
| .spinner { | |
| width: 16px; | |
| height: 16px; | |
| border: 2px solid #ddd; | |
| border-top-color: #111; | |
| border-radius: 50%; | |
| animation: spin 0.8s linear infinite; | |
| } | |
| @keyframes spin { | |
| to { | |
| transform: rotate(360deg); | |
| } | |
| } | |
| .error { | |
| padding: 12px 16px; | |
| border-radius: 12px; | |
| background: #f5f5f5; | |
| color: #111; | |
| font-size: 14px; | |
| text-align: left; | |
| } | |
| .usageBanner { | |
| padding: 12px 16px; | |
| border-radius: 12px; | |
| background: #fff4e5; | |
| border: 1px solid #ffd8a8; | |
| color: #8a4b00; | |
| font-size: 14px; | |
| text-align: left; | |
| } | |
| .timeTravelToggle { | |
| padding: 8px 14px; | |
| font-size: 13px; | |
| font-weight: 600; | |
| border: 1px solid var(--border); | |
| border-radius: 10px; | |
| background: var(--bg); | |
| color: var(--text-h); | |
| cursor: pointer; | |
| transition: background 0.2s; | |
| &:hover:not(:disabled) { | |
| background: #f0f0f0; | |
| } | |
| &[aria-pressed='true'] { | |
| background: #111; | |
| color: #fff; | |
| border-color: #111; | |
| } | |
| &:disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| } | |
| } | |
| .cursor { | |
| display: inline-block; | |
| width: 2px; | |
| height: 1em; | |
| background: currentColor; | |
| margin-left: 2px; | |
| vertical-align: text-bottom; | |
| animation: blink 1s step-end infinite; | |
| } | |
| @keyframes blink { | |
| 50% { | |
| opacity: 0; | |
| } | |
| } | |
| @media (max-width: 640px) { | |
| .chat { | |
| padding: 16px; | |
| } | |
| .bubble { | |
| max-width: 85%; | |
| } | |
| } | |