341 lines
7.3 KiB
CSS
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;
|
|
} |