Files
cherry-studio/cagents/python-cli-web-poc/public/style.css
T
Vaayne 4b0db10195 ...
2025-08-03 11:43:02 +08:00

341 lines
7.3 KiB
CSS

/* Cherry Studio Design System CSS Variables */
:root {
/* Colors - Dark Theme (Default) */
--color-white: #ffffff;
--color-white-soft: rgba(255, 255, 255, 0.8);
--color-white-mute: rgba(255, 255, 255, 0.94);
--color-black: #181818;
--color-black-soft: #222222;
--color-black-mute: #333333;
--color-gray-1: #515c67;
--color-gray-2: #414853;
--color-gray-3: #32363f;
--color-text-1: rgba(255, 255, 245, 0.9);
--color-text-2: rgba(235, 235, 245, 0.6);
--color-text-3: rgba(235, 235, 245, 0.38);
--color-background: var(--color-black);
--color-background-soft: var(--color-black-soft);
--color-background-mute: var(--color-black-mute);
--color-background-opacity: rgba(34, 34, 34, 0.7);
--color-primary: #00b96b;
--color-primary-soft: #00b96b99;
--color-primary-mute: #00b96b33;
--color-text: var(--color-text-1);
--color-text-secondary: rgba(235, 235, 245, 0.7);
--color-icon: #ffffff99;
--color-border: #ffffff19;
--color-border-soft: #ffffff10;
--color-error: #f44336;
--color-success: #52c41a;
--color-warning: #faad14;
--color-link: #338cff;
--color-code-background: #323232;
--color-hover: rgba(40, 40, 40, 1);
--color-active: rgba(55, 55, 55, 1);
/* Typography */
--font-family: 'Segoe UI', 'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif;
--font-family-mono: 'SF Mono', 'Monaco', 'Cascadia Code', 'Roboto Mono', 'Courier New', monospace;
--font-family-serif: 'Times New Roman', Times, serif;
/* Sizing */
--navbar-height: 44px;
--border-radius: 10px;
--border-radius-small: 6px;
--spacing-xs: 4px;
--spacing-sm: 8px;
--spacing-md: 12px;
--spacing-lg: 16px;
--spacing-xl: 24px;
--spacing-xxl: 32px;
/* Transitions */
--transition-fast: 0.15s ease;
--transition-normal: 0.2s ease;
--transition-slow: 0.3s ease;
}
/* Light Theme */
[theme-mode='light'] {
--color-white: #ffffff;
--color-white-soft: rgba(0, 0, 0, 0.04);
--color-white-mute: #eee;
--color-black: #1b1b1f;
--color-black-soft: #262626;
--color-black-mute: #363636;
--color-gray-1: #8e8e93;
--color-gray-2: #aeaeb2;
--color-gray-3: #c7c7cc;
--color-text-1: rgba(0, 0, 0, 1);
--color-text-2: rgba(0, 0, 0, 0.6);
--color-text-3: rgba(0, 0, 0, 0.38);
--color-background: var(--color-white);
--color-background-soft: var(--color-white-soft);
--color-background-mute: var(--color-white-mute);
--color-background-opacity: rgba(243, 243, 243, 1);
--color-text: var(--color-text-1);
--color-text-secondary: rgba(0, 0, 0, 0.75);
--color-icon: #00000099;
--color-border: #00000019;
--color-border-soft: #00000010;
--color-link: #1677ff;
--color-code-background: #e3e3e3;
--color-hover: var(--color-white-mute);
--color-active: var(--color-white-soft);
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: var(--font-family);
background-color: var(--color-background);
color: var(--color-text);
height: 100vh;
overflow: hidden;
font-size: 14px;
line-height: 1.5;
transition: background-color var(--transition-normal), color var(--transition-normal);
}
.container {
display: flex;
flex-direction: column;
height: 100vh;
position: relative;
}
header {
background-color: var(--color-background-soft);
padding: var(--spacing-lg) var(--spacing-xl);
border-bottom: 1px solid var(--color-border);
display: flex;
justify-content: space-between;
align-items: center;
height: var(--navbar-height);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
transition: background-color var(--transition-normal), border-color var(--transition-normal);
position: relative;
z-index: 10;
}
header h1 {
font-size: 1.25rem;
font-weight: 600;
color: var(--color-text);
margin: 0;
transition: color var(--transition-normal);
}
.status {
display: flex;
align-items: center;
gap: var(--spacing-sm);
padding: var(--spacing-xs) var(--spacing-md);
background-color: var(--color-background-opacity);
border-radius: var(--border-radius-small);
border: 1px solid var(--color-border-soft);
transition: all var(--transition-normal);
}
.status-connected {
color: var(--color-success);
}
.status-disconnected {
color: var(--color-error);
}
.status span:first-child {
font-size: 12px;
animation: pulse 2s infinite;
}
.status span:last-child {
font-size: 13px;
font-weight: 500;
color: var(--color-text-secondary);
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.5; }
}
.chat-container {
flex: 1;
display: flex;
flex-direction: column;
overflow: hidden;
position: relative;
}
.output-area {
flex: 1;
padding: var(--spacing-lg) var(--spacing-xl);
overflow-y: auto;
background-color: var(--color-background);
font-family: var(--font-family);
font-size: 14px;
line-height: 1.6;
scroll-behavior: smooth;
position: relative;
}
.message {
margin-bottom: 1rem;
padding: 0.75rem 1rem;
border-radius: 8px;
max-width: 100%;
word-wrap: break-word;
}
.message.command {
background-color: #0d7377;
color: white;
margin-left: auto;
margin-right: 0;
text-align: right;
}
.message.output {
background-color: #2d2d2d;
border-left: 4px solid #4caf50;
}
.message.error {
background-color: #2d2d2d;
border-left: 4px solid #f44336;
}
.message.system {
background-color: #2d2d2d;
border-left: 4px solid #ff9800;
font-style: italic;
}
.message pre {
margin: 0;
white-space: pre-wrap;
word-break: break-all;
}
.input-area {
background-color: #2d2d2d;
padding: 1rem 2rem;
border-top: 1px solid #404040;
}
.command-input-container,
.user-input-container {
display: flex;
gap: 0.5rem;
align-items: center;
}
.user-input-container {
margin-top: 0.5rem;
}
input[type="text"] {
flex: 1;
padding: 0.75rem 1rem;
border: 1px solid #404040;
border-radius: 4px;
background-color: #1e1e1e;
color: #ffffff;
font-size: 14px;
font-family: 'Courier New', monospace;
}
input[type="text"]:focus {
outline: none;
border-color: #0d7377;
box-shadow: 0 0 0 2px rgba(13, 115, 119, 0.2);
}
button {
padding: 0.75rem 1.5rem;
border: none;
border-radius: 4px;
font-size: 14px;
font-weight: 600;
cursor: pointer;
transition: background-color 0.2s;
}
#run-btn {
background-color: #4caf50;
color: white;
}
#run-btn:hover:not(:disabled) {
background-color: #45a049;
}
#run-btn:disabled {
background-color: #666;
cursor: not-allowed;
}
#kill-btn {
background-color: #f44336;
color: white;
}
#kill-btn:hover:not(:disabled) {
background-color: #da190b;
}
#kill-btn:disabled {
background-color: #666;
cursor: not-allowed;
}
#send-btn {
background-color: #2196f3;
color: white;
}
#send-btn:hover:not(:disabled) {
background-color: #1976d2;
}
.timestamp {
font-size: 12px;
color: #888;
margin-bottom: 0.25rem;
}
/* Scrollbar styling for webkit browsers */
.output-area::-webkit-scrollbar {
width: 8px;
}
.output-area::-webkit-scrollbar-track {
background: #1e1e1e;
}
.output-area::-webkit-scrollbar-thumb {
background: #404040;
border-radius: 4px;
}
.output-area::-webkit-scrollbar-thumb:hover {
background: #555;
}