Download solace_space/theme.py from build-small-hackathon/solace-space: direct link, hf CLI and curl.
- Browser
- Download file 10.1 kB
-
https://huggingface.co/spaces/build-small-hackathon/solace-space/resolve/main/solace_space/theme.py
- Command line
-
hf download hf://spaces/build-small-hackathon/solace-space/solace_space/theme.py
-
curl -L -o theme.py https://huggingface.co/spaces/build-small-hackathon/solace-space/resolve/main/solace_space/theme.py
10.1 kB
| """CSS theme for the Solace Space Gradio interface.""" | |
| CSS = """ | |
| :root { | |
| --ink: #29314a; | |
| --chat-ink: #1f2328; | |
| --muted: #68708d; | |
| --surface: rgba(255, 255, 255, 0.82); | |
| --surface-strong: #ffffff; | |
| --soft-blue: #eef7ff; | |
| --soft-lavender: #f4f0ff; | |
| --line: rgba(91, 107, 143, 0.18); | |
| --joy: #f6c84f; | |
| --sadness: #6aa6df; | |
| --fear: #a78bd9; | |
| --anger: #e5746c; | |
| --disgust: #6dbf8b; | |
| --memory: #62b8d6; | |
| --dream: #df8fbf; | |
| } | |
| body, | |
| .gradio-container { | |
| background: | |
| radial-gradient(circle at 16% 8%, rgba(255, 226, 126, 0.34), transparent 23rem), | |
| radial-gradient(circle at 88% 14%, rgba(183, 216, 255, 0.44), transparent 28rem), | |
| radial-gradient(circle at 54% 92%, rgba(213, 201, 255, 0.38), transparent 28rem), | |
| linear-gradient(135deg, #fff8ea 0%, #eef7ff 44%, #f6f1ff 100%) !important; | |
| color: var(--ink); | |
| min-height: 100vh; | |
| } | |
| .gradio-container { | |
| font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; | |
| color: var(--ink); | |
| } | |
| .solace-app { | |
| max-width: 1280px; | |
| margin: 0 auto; | |
| padding: 20px; | |
| } | |
| .solace-header { | |
| align-items: end; | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 18px; | |
| padding: 8px 0 18px; | |
| position: relative; | |
| } | |
| .brand-mark { | |
| align-items: center; | |
| display: flex; | |
| gap: 14px; | |
| } | |
| .memory-logo { | |
| background: | |
| radial-gradient(circle at 34% 28%, #fff9cf 0 18%, transparent 19%), | |
| radial-gradient(circle at 50% 50%, #ffd86a, #f3a95f 72%); | |
| border: 1px solid rgba(255, 255, 255, 0.86); | |
| border-radius: 50%; | |
| box-shadow: 0 14px 34px rgba(235, 179, 68, 0.22), inset 0 -12px 18px rgba(143, 74, 18, 0.10); | |
| flex: 0 0 54px; | |
| height: 54px; | |
| width: 54px; | |
| } | |
| .solace-title { | |
| color: var(--ink); | |
| font-size: 34px; | |
| font-weight: 800; | |
| line-height: 1.05; | |
| letter-spacing: 0; | |
| margin: 0; | |
| text-shadow: 0 1px 0 rgba(255, 255, 255, 0.92); | |
| } | |
| .solace-subtitle { | |
| color: var(--muted); | |
| font-size: 15px; | |
| margin: 6px 0 0; | |
| } | |
| .system-strip { | |
| align-items: center; | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 8px; | |
| justify-content: flex-end; | |
| } | |
| .system-chip { | |
| background: rgba(255, 255, 255, 0.70); | |
| border: 1px solid var(--line); | |
| border-radius: 999px; | |
| color: #56607c; | |
| font-size: 12px; | |
| font-weight: 700; | |
| padding: 7px 10px; | |
| box-shadow: 0 8px 24px rgba(91, 107, 143, 0.08); | |
| } | |
| .console-grid { | |
| align-items: stretch; | |
| display: grid; | |
| gap: 18px; | |
| grid-template-columns: minmax(260px, 330px) minmax(0, 1fr); | |
| } | |
| .side-console, | |
| .chat-shell { | |
| background: | |
| linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.76)), | |
| var(--surface); | |
| border: 1px solid var(--line); | |
| border-radius: 18px; | |
| box-shadow: 0 22px 60px rgba(83, 102, 145, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.82); | |
| } | |
| .side-console { | |
| padding: 16px; | |
| } | |
| .panel-title { | |
| align-items: center; | |
| background: rgba(255, 255, 255, 0.72); | |
| border: 1px solid rgba(91, 107, 143, 0.12); | |
| border-radius: 12px; | |
| color: #1f2328 !important; | |
| display: flex; | |
| font-size: 13px; | |
| font-weight: 800; | |
| justify-content: space-between; | |
| letter-spacing: 0; | |
| margin-bottom: 12px; | |
| padding: 9px 10px; | |
| } | |
| .side-console .panel-title span { | |
| color: #1f2328 !important; | |
| } | |
| .pulse-dot { | |
| animation: solacePulse 1.8s ease-in-out infinite; | |
| background: var(--memory); | |
| border-radius: 50%; | |
| box-shadow: 0 0 16px rgba(98, 184, 214, 0.46); | |
| height: 9px; | |
| width: 9px; | |
| } | |
| .emotion-deck { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 10px; | |
| } | |
| .emotion-card { | |
| align-items: center; | |
| background: | |
| linear-gradient(90deg, color-mix(in srgb, var(--emotion) 16%, #ffffff), rgba(255, 255, 255, 0.94)), | |
| #ffffff; | |
| border: 1px solid color-mix(in srgb, var(--emotion) 32%, rgba(91, 107, 143, 0.14)); | |
| border-radius: 14px; | |
| box-shadow: inset 4px 0 0 var(--emotion); | |
| display: flex; | |
| gap: 12px; | |
| min-height: 74px; | |
| padding: 12px; | |
| } | |
| .emotion-avatar { | |
| align-items: center; | |
| background: | |
| radial-gradient(circle at 34% 28%, rgba(255, 255, 255, 0.82), transparent 16%), | |
| radial-gradient(circle at 50% 62%, color-mix(in srgb, var(--emotion) 76%, #ffffff), var(--emotion)); | |
| border: 1px solid rgba(255, 255, 255, 0.92); | |
| border-radius: 50%; | |
| box-shadow: 0 10px 24px color-mix(in srgb, var(--emotion) 28%, transparent); | |
| color: #30405b; | |
| display: flex; | |
| flex: 0 0 48px; | |
| font-size: 23px; | |
| font-weight: 900; | |
| height: 48px; | |
| justify-content: center; | |
| width: 48px; | |
| } | |
| .emotion-label { | |
| color: color-mix(in srgb, var(--emotion) 48%, #24304c); | |
| font-size: 14px; | |
| font-weight: 800; | |
| line-height: 1.15; | |
| } | |
| .emotion-tone { | |
| color: color-mix(in srgb, var(--emotion) 28%, #5d6681); | |
| font-size: 12px; | |
| font-weight: 680; | |
| line-height: 1.35; | |
| margin-top: 5px; | |
| } | |
| .memory-rail { | |
| display: grid; | |
| gap: 9px; | |
| grid-template-columns: repeat(5, 1fr); | |
| margin: 16px 0 4px; | |
| } | |
| .memory-orb { | |
| aspect-ratio: 1; | |
| background: | |
| radial-gradient(circle at 34% 28%, rgba(255, 255, 255, 0.82), transparent 18%), | |
| radial-gradient(circle, color-mix(in srgb, var(--orb) 48%, #ffffff), color-mix(in srgb, var(--orb) 78%, #ffffff)); | |
| border-radius: 50%; | |
| box-shadow: 0 10px 20px color-mix(in srgb, var(--orb) 20%, transparent); | |
| } | |
| .chat-shell { | |
| padding: 14px; | |
| } | |
| .chat-topbar { | |
| align-items: center; | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 12px; | |
| margin-bottom: 12px; | |
| } | |
| .chat-title { | |
| color: var(--ink); | |
| font-size: 15px; | |
| font-weight: 800; | |
| } | |
| .chat-meta { | |
| color: var(--muted); | |
| font-size: 12px; | |
| font-weight: 700; | |
| } | |
| #solace-chatbot { | |
| background: | |
| linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(246, 250, 255, 0.96)), | |
| var(--soft-blue); | |
| border: 1px solid rgba(120, 148, 190, 0.22); | |
| border-radius: 14px; | |
| box-shadow: | |
| inset 0 0 0 1px rgba(255, 255, 255, 0.72), | |
| inset 0 -24px 70px rgba(106, 166, 223, 0.08); | |
| min-height: 540px; | |
| } | |
| #solace-chatbot .message, | |
| #solace-chatbot .message-content, | |
| #solace-chatbot .user-message, | |
| #solace-chatbot .bot-message { | |
| border-radius: 8px !important; | |
| line-height: 1.55; | |
| } | |
| #solace-chatbot .message.user, | |
| #solace-chatbot .user-message { | |
| background: linear-gradient(180deg, #fff5c7 0%, #ffe69d 100%) !important; | |
| border: 1px solid rgba(224, 174, 58, 0.38) !important; | |
| box-shadow: 0 10px 26px rgba(224, 174, 58, 0.16) !important; | |
| color: var(--chat-ink) !important; | |
| } | |
| #solace-chatbot .message.bot, | |
| #solace-chatbot .message.assistant, | |
| #solace-chatbot .bot-message { | |
| background: linear-gradient(180deg, #ffffff 0%, #edf6ff 100%) !important; | |
| border: 1px solid rgba(106, 166, 223, 0.30) !important; | |
| box-shadow: 0 10px 26px rgba(94, 134, 187, 0.13) !important; | |
| color: var(--chat-ink) !important; | |
| } | |
| #solace-chatbot .message.user *, | |
| #solace-chatbot .user-message * { | |
| color: var(--chat-ink) !important; | |
| } | |
| #solace-chatbot .message.bot *, | |
| #solace-chatbot .message.assistant *, | |
| #solace-chatbot .bot-message * { | |
| color: var(--chat-ink) !important; | |
| } | |
| #solace-chatbot .message-content, | |
| #solace-chatbot .message-content *, | |
| #solace-chatbot .prose, | |
| #solace-chatbot .prose *, | |
| #solace-chatbot .md, | |
| #solace-chatbot .md *, | |
| #solace-chatbot p { | |
| background: transparent !important; | |
| border: 0 !important; | |
| box-shadow: none !important; | |
| outline: 0 !important; | |
| } | |
| #solace-chatbot .message p, | |
| #solace-chatbot .user-message p, | |
| #solace-chatbot .bot-message p { | |
| margin: 0 !important; | |
| } | |
| #solace-chatbot .typing-loader { | |
| align-items: center; | |
| display: inline-flex; | |
| gap: 7px; | |
| min-height: 26px; | |
| padding: 3px 1px; | |
| } | |
| #solace-chatbot .typing-loader span { | |
| animation: solaceTyping 1.1s ease-in-out infinite; | |
| background: #6aa6df !important; | |
| border: 0 !important; | |
| border-radius: 50% !important; | |
| box-shadow: 0 0 10px rgba(106, 166, 223, 0.38) !important; | |
| display: inline-block; | |
| height: 7px; | |
| opacity: 0.38; | |
| width: 7px; | |
| } | |
| #solace-chatbot .typing-loader span:nth-child(2) { | |
| animation-delay: 0.16s; | |
| } | |
| #solace-chatbot .typing-loader span:nth-child(3) { | |
| animation-delay: 0.32s; | |
| } | |
| @keyframes solaceTyping { | |
| 0%, | |
| 80%, | |
| 100% { | |
| opacity: 0.38; | |
| transform: translateY(0); | |
| } | |
| 40% { | |
| opacity: 1; | |
| transform: translateY(-4px); | |
| } | |
| } | |
| @keyframes solacePulse { | |
| 0%, | |
| 100% { | |
| box-shadow: 0 0 0 0 rgba(98, 184, 214, 0.34), 0 0 12px rgba(98, 184, 214, 0.34); | |
| opacity: 0.76; | |
| transform: scale(0.92); | |
| } | |
| 50% { | |
| box-shadow: 0 0 0 7px rgba(98, 184, 214, 0), 0 0 20px rgba(98, 184, 214, 0.62); | |
| opacity: 1; | |
| transform: scale(1); | |
| } | |
| } | |
| .quick-row { | |
| margin-top: 12px; | |
| } | |
| .quick-tool button, | |
| #send-button { | |
| border-radius: 12px !important; | |
| font-weight: 760 !important; | |
| } | |
| #send-button { | |
| background: linear-gradient(180deg, #5e9fd8 0%, #4b87c5 100%) !important; | |
| border: 1px solid rgba(75, 135, 197, 0.54) !important; | |
| color: #ffffff !important; | |
| box-shadow: 0 12px 26px rgba(75, 135, 197, 0.22) !important; | |
| } | |
| .quick-tool button { | |
| background: rgba(255, 255, 255, 0.74) !important; | |
| border: 1px solid rgba(148, 131, 192, 0.24) !important; | |
| color: var(--ink) !important; | |
| min-height: 44px; | |
| width: 100%; | |
| box-shadow: 0 8px 20px rgba(91, 107, 143, 0.08) !important; | |
| } | |
| .quick-tool button:hover { | |
| background: #f5f0ff !important; | |
| border-color: rgba(167, 139, 217, 0.42) !important; | |
| } | |
| #message-box textarea { | |
| background: | |
| linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(248, 251, 255, 0.96)), | |
| var(--surface-strong) !important; | |
| color: var(--ink) !important; | |
| border: 1px solid rgba(120, 148, 190, 0.28) !important; | |
| border-radius: 14px !important; | |
| box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82) !important; | |
| } | |
| #message-box textarea::placeholder { | |
| color: #7c849e !important; | |
| } | |
| footer { | |
| display: none !important; | |
| } | |
| @media (max-width: 820px) { | |
| .solace-title { | |
| font-size: 30px; | |
| } | |
| .solace-header { | |
| align-items: start; | |
| flex-direction: column; | |
| } | |
| .system-strip { | |
| justify-content: flex-start; | |
| } | |
| .console-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| #solace-chatbot { | |
| min-height: 460px; | |
| } | |
| } | |
| @media (max-width: 520px) { | |
| .solace-app { | |
| padding: 12px; | |
| } | |
| .memory-logo { | |
| flex-basis: 46px; | |
| height: 46px; | |
| width: 46px; | |
| } | |
| } | |
| """ | |