Surajgjadhav's picture
Added Solace Space Code
cb95f1c verified
Raw
History Blame Contribute Delete
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;
}
}
"""