Spaces:
Running
Running
/* Modern coding editor styling for AnyCoder */ | |
:root { | |
--primary-color: #007acc; | |
--secondary-color: #1e1e1e; | |
--accent-color: #4ec9b0; | |
--text-color: #d4d4d4; | |
--bg-color: #252526; | |
--surface-color: #2d2d30; | |
--border-color: #3e3e42; | |
--success-color: #4ec9b0; | |
--error-color: #f44747; | |
--warning-color: #ce9178; | |
--html-bg: #ffffff; | |
--code-bg: #1e1e1e; | |
--sidebar-bg: #252526; | |
} | |
@media (prefers-color-scheme: light) { | |
:root { | |
--text-color: #333333; | |
--bg-color: #f3f3f3; | |
--surface-color: #ffffff; | |
--border-color: #e1e1e1; | |
--html-bg: #ffffff; | |
--code-bg: #f8f8f8; | |
--sidebar-bg: #f5f5f5; | |
} | |
} | |
/* App header */ | |
.app-header { | |
display: flex; | |
align-items: center; | |
gap: 12px; | |
padding: 16px 24px; | |
background: var(--surface-color); | |
border-bottom: 1px solid var(--border-color); | |
margin-bottom: 0; | |
} | |
.app-header h1 { | |
margin: 0; | |
color: var(--text-color); | |
font-size: 24px; | |
font-weight: 600; | |
} | |
.app-header .subtitle { | |
color: var(--text-color); | |
opacity: 0.7; | |
font-size: 14px; | |
margin-left: auto; | |
} | |
/* Main layout */ | |
.gradio-container { | |
background: var(--bg-color); | |
min-height: 100vh; | |
} | |
/* Left sidebar */ | |
.code-input { | |
background: var(--surface-color) ; | |
border: 1px solid var(--border-color) ; | |
border-radius: 8px ; | |
color: var(--text-color) ; | |
font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace ; | |
font-size: 14px ; | |
} | |
.code-input:focus { | |
border-color: var(--primary-color) ; | |
box-shadow: 0 0 0 2px rgba(0, 122, 204, 0.2) ; | |
} | |
.model-display { | |
color: var(--text-color) ; | |
font-size: 14px ; | |
margin: 0 ; | |
} | |
.icon-btn { | |
background: var(--surface-color) ; | |
border: 1px solid var(--border-color) ; | |
color: var(--text-color) ; | |
border-radius: 6px ; | |
padding: 8px 12px ; | |
transition: all 0.2s ease ; | |
} | |
.icon-btn:hover { | |
background: var(--primary-color) ; | |
color: white ; | |
transform: translateY(-1px) ; | |
} | |
.generate-btn { | |
background: var(--primary-color) ; | |
color: white ; | |
border: none ; | |
border-radius: 8px ; | |
font-weight: 600 ; | |
transition: all 0.2s ease ; | |
} | |
.generate-btn:hover { | |
background: #005a9e ; | |
transform: translateY(-1px) ; | |
box-shadow: 0 4px 12px rgba(0, 122, 204, 0.3) ; | |
} | |
.clear-btn { | |
background: var(--surface-color) ; | |
border: 1px solid var(--border-color) ; | |
color: var(--text-color) ; | |
border-radius: 6px ; | |
} | |
.quick-example-btn { | |
background: var(--surface-color) ; | |
border: 1px solid var(--border-color) ; | |
color: var(--text-color) ; | |
border-radius: 6px ; | |
font-size: 12px ; | |
padding: 8px 12px ; | |
transition: all 0.2s ease ; | |
} | |
.quick-example-btn:hover { | |
background: var(--primary-color) ; | |
color: white ; | |
border-color: var(--primary-color) ; | |
} | |
/* Code editor tabs */ | |
.code-tabs { | |
background: var(--code-bg) ; | |
border: 1px solid var(--border-color) ; | |
border-radius: 8px ; | |
overflow: hidden ; | |
} | |
.code-tab, .preview-tab { | |
background: var(--code-bg) ; | |
color: var(--text-color) ; | |
border: none ; | |
padding: 12px 20px ; | |
font-weight: 500 ; | |
} | |
.code-tab[aria-selected="true"], .preview-tab[aria-selected="true"] { | |
background: var(--surface-color) ; | |
color: var(--primary-color) ; | |
border-bottom: 2px solid var(--primary-color) ; | |
} | |
/* Code editor */ | |
.code-editor { | |
background: var(--code-bg) ; | |
border: none ; | |
border-radius: 0 ; | |
color: var(--text-color) ; | |
font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace ; | |
font-size: 14px ; | |
line-height: 1.5 ; | |
min-height: 500px ; | |
} | |
.code-editor .monaco-editor { | |
background: var(--code-bg) ; | |
} | |
/* HTML content */ | |
.html_content { | |
width: 100% ; | |
height: 500px ; | |
border: none ; | |
border-radius: 0 ; | |
background: var(--html-bg) ; | |
} | |
/* Status bar */ | |
.status-bar { | |
background: var(--surface-color) ; | |
border-top: 1px solid var(--border-color) ; | |
padding: 8px 16px ; | |
font-size: 12px ; | |
color: var(--text-color) ; | |
} | |
.status-indicator { | |
display: flex; | |
align-items: center; | |
gap: 8px; | |
font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; | |
} | |
.status-indicator.generating { | |
color: var(--warning-color); | |
} | |
.status-indicator.success { | |
color: var(--success-color); | |
} | |
.status-indicator.error { | |
color: var(--error-color); | |
} | |
/* Modals */ | |
.modal { | |
max-width: 420px; | |
padding: 16px 20px 12px 20px ; | |
border-radius: 10px; | |
background: #23232b; | |
box-shadow: 0 2px 16px rgba(0,0,0,0.12); | |
border: 1px solid #29293a; | |
} | |
.modal h3 { | |
font-size: 1.1em; | |
margin-bottom: 8px; | |
margin-top: 0; | |
} | |
.modal-input { | |
font-size: 0.95em; | |
padding: 8px 10px; | |
border-radius: 6px; | |
background: #18181f; | |
border: 1px solid #29293a; | |
margin-bottom: 10px; | |
} | |
.modal .gr-button { | |
min-width: 80px; | |
height: 32px; | |
font-size: 0.95em; | |
margin-right: 8px; | |
border-radius: 6px; | |
padding: 0 10px; | |
} | |
/* Drawers */ | |
.drawer { | |
max-width: 420px; | |
padding: 12px 16px 8px 16px ; | |
border-radius: 10px; | |
background: #23232b; | |
box-shadow: 0 2px 16px rgba(0,0,0,0.12); | |
border: 1px solid #29293a; | |
} | |
.drawer h3 { | |
font-size: 1.1em; | |
margin-bottom: 8px; | |
margin-top: 0; | |
} | |
/* History chatbot */ | |
.history_chatbot { | |
background: #18181f ; | |
border-radius: 8px ; | |
padding: 8px ; | |
font-size: 0.97em ; | |
min-height: 200px; | |
max-height: 320px; | |
overflow-y: auto; | |
} | |
.history_chatbot .message { | |
margin-bottom: 6px ; | |
padding: 6px 10px ; | |
border-radius: 6px ; | |
} | |
/* Model cards */ | |
.model-select-row { | |
display: flex; | |
gap: 8px; | |
justify-content: flex-start; | |
margin-bottom: 8px; | |
} | |
.model-card-btn { | |
min-width: 80px; | |
max-width: 120px; | |
height: 40px; | |
border-radius: 8px; | |
font-size: 1em; | |
font-weight: 600; | |
text-align: center; | |
padding: 0 8px; | |
white-space: nowrap; | |
overflow: hidden; | |
text-overflow: ellipsis; | |
transition: background 0.2s, box-shadow 0.2s; | |
} | |
.model-card-btn:hover { | |
background: #2a2a2a; | |
box-shadow: 0 2px 8px rgba(0,0,0,0.08); | |
} | |
/* Image input */ | |
.image-input { | |
background: var(--surface-color) ; | |
border: 1px solid var(--border-color) ; | |
border-radius: 8px ; | |
} | |
/* Responsive design */ | |
@media (max-width: 768px) { | |
.app-header { | |
flex-direction: column; | |
gap: 8px; | |
text-align: center; | |
} | |
.app-header .subtitle { | |
margin-left: 0; | |
} | |
.code-editor { | |
min-height: 300px ; | |
} | |
.html_content { | |
height: 300px ; | |
} | |
} | |
/* Loading animation */ | |
@keyframes spin { | |
0% { transform: rotate(0deg); } | |
100% { transform: rotate(360deg); } | |
} | |
/* Scrollbar styling */ | |
::-webkit-scrollbar { | |
width: 8px; | |
} | |
::-webkit-scrollbar-track { | |
background: var(--bg-color); | |
} | |
::-webkit-scrollbar-thumb { | |
background: var(--border-color); | |
border-radius: 4px; | |
} | |
::-webkit-scrollbar-thumb:hover { | |
background: var(--primary-color); | |
} | |
/* Sidebar styling */ | |
.sidebar { | |
position: relative; | |
overflow: visible; | |
min-width: 320px; | |
max-width: 360px; | |
padding: 18px 12px 12px 12px; | |
background: #20202a; | |
border-right: 1px solid #23232b; | |
display: flex; | |
flex-direction: column; | |
gap: 12px; | |
} | |
.sidebar-header { | |
display: flex; | |
flex-direction: column; | |
align-items: center; | |
padding: 32px 0 16px 0; | |
background: var(--surface-color); | |
border-bottom: 1px solid var(--border-color); | |
} | |
.sidebar-header h1 { | |
margin: 8px 0 0 0; | |
font-size: 22px; | |
color: var(--primary-color); | |
font-weight: 700; | |
} | |
.sidebar-desc { | |
font-size: 13px; | |
color: var(--text-color); | |
opacity: 0.7; | |
margin-top: 4px; | |
text-align: center; | |
} | |
.sidebar-section { | |
padding: 18px 24px 0 24px; | |
} | |
.sidebar-section h3 { | |
font-size: 15px; | |
color: var(--primary-color); | |
margin-bottom: 8px; | |
} | |
.sidebar-section ul { | |
padding-left: 18px; | |
font-size: 13px; | |
color: var(--text-color); | |
opacity: 0.85; | |
} | |
.sidebar-btn { | |
width: 100%; | |
margin: 6px 0; | |
border-radius: 6px ; | |
font-size: 14px ; | |
font-weight: 500 ; | |
background: var(--surface-color) ; | |
color: var(--primary-color) ; | |
border: 1px solid var(--border-color) ; | |
transition: all 0.2s; | |
} | |
.sidebar-btn:hover { | |
background: var(--primary-color) ; | |
color: #fff ; | |
} | |
.quick-example-btn { | |
margin: 4px 0; | |
font-size: 13px ; | |
background: var(--surface-color) ; | |
color: var(--text-color) ; | |
border: 1px solid var(--border-color) ; | |
border-radius: 6px ; | |
transition: all 0.2s; | |
} | |
.quick-example-btn:hover { | |
background: var(--primary-color) ; | |
color: #fff ; | |
} | |
/* Main area styling */ | |
.main-area { | |
background: var(--bg-color); | |
min-height: 100vh; | |
padding: 32px 40px 32px 40px; | |
display: flex; | |
flex-direction: column; | |
box-shadow: 0 2px 16px rgba(0,0,0,0.04); | |
} | |
.model-display { | |
color: var(--primary-color) ; | |
font-size: 15px ; | |
margin-bottom: 8px ; | |
} | |
.code-input, .image-input { | |
margin-bottom: 8px ; | |
} | |
.generate-btn, .clear-btn { | |
min-width: 80px; | |
height: 32px; | |
font-size: 0.97em; | |
border-radius: 6px; | |
margin-right: 6px; | |
} | |
/* Code editor and preview */ | |
.code-tabs { | |
background: var(--code-bg) ; | |
border: 1px solid var(--border-color) ; | |
border-radius: 8px ; | |
margin-top: 24px ; | |
overflow: hidden ; | |
} | |
.code-tab, .preview-tab { | |
background: var(--code-bg) ; | |
color: var(--text-color) ; | |
border: none ; | |
padding: 12px 20px ; | |
font-weight: 500 ; | |
} | |
.code-tab[aria-selected="true"], .preview-tab[aria-selected="true"] { | |
background: var(--surface-color) ; | |
color: var(--primary-color) ; | |
border-bottom: 2px solid var(--primary-color) ; | |
} | |
.code-editor { | |
background: var(--code-bg) ; | |
border: none ; | |
border-radius: 0 ; | |
color: var(--text-color) ; | |
font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace ; | |
font-size: 15px ; | |
line-height: 1.5 ; | |
min-height: 500px ; | |
} | |
.code-editor .monaco-editor { | |
background: var(--code-bg) ; | |
} | |
.html_content { | |
width: 100% ; | |
height: 500px ; | |
border: none ; | |
border-radius: 0 ; | |
background: var(--html-bg) ; | |
} | |
.status-bar { | |
background: var(--surface-color) ; | |
border-top: 1px solid var(--border-color) ; | |
padding: 8px 16px ; | |
font-size: 13px ; | |
color: var(--text-color) ; | |
margin-top: 0 ; | |
} | |
.status-indicator { | |
display: flex; | |
align-items: center; | |
gap: 8px; | |
font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; | |
} | |
.status-indicator.generating { | |
color: var(--warning-color); | |
} | |
.status-indicator.success { | |
color: var(--success-color); | |
} | |
.status-indicator.error { | |
color: var(--error-color); | |
} | |
/* Modal and drawer styling remain as before */ | |
/* Responsive design */ | |
@media (max-width: 900px) { | |
.main-area { | |
padding: 16px 4vw 16px 4vw; | |
} | |
.sidebar { | |
min-width: 180px; | |
padding: 0 0 0 0; | |
} | |
} | |
@media (max-width: 600px) { | |
.main-area { | |
padding: 8px 2vw 8px 2vw; | |
} | |
.sidebar { | |
display: none; | |
} | |
.code-editor { | |
min-height: 250px ; | |
} | |
.html_content { | |
height: 220px ; | |
} | |
} | |
.sidebar .modal, | |
.sidebar .drawer { | |
position: absolute; | |
left: 0; | |
top: 420px; | |
width: 100%; | |
z-index: 10; | |
background: #23232b; | |
box-shadow: 2px 0 16px rgba(0,0,0,0.18); | |
border-radius: 10px; | |
border: 1px solid #29293a; | |
padding: 18px 16px 12px 16px ; | |
min-width: 320px; | |
max-width: 360px; | |
} | |
/* Sidebar section headings and text */ | |
.sidebar-section h3, | |
.sidebar-section { | |
color: #4fc3f7 ; | |
} | |
.sidebar-section ul, | |
.sidebar-section li { | |
color: #e0e0e0 ; | |
} | |
/* Quick Examples heading */ | |
.sidebar .sidebar-section h3 { | |
color: #4fc3f7 ; | |
} | |
/* Tab labels */ | |
.code-tabs .tab-nav .tab-nav-btn, | |
.code-tabs .tab-nav .tab-nav-btn.selected { | |
color: #f5f5f5 ; | |
font-weight: 600; | |
} | |
.code-tabs .tab-nav .tab-nav-btn.selected { | |
border-bottom: 2px solid #ff9800 ; | |
} | |
/* Live Preview tab content */ | |
.preview-tab { | |
color: #f5f5f5 ; | |
background: #18181f ; | |
} | |
/* For light mode, override with a media query or a .light class if you support it */ | |
body.light .sidebar-section h3, | |
body.light .sidebar-section { | |
color: #1976d2 ; | |
} | |
body.light .sidebar-section ul, | |
body.light .sidebar-section li { | |
color: #222 ; | |
} | |
body.light .code-tabs .tab-nav .tab-nav-btn, | |
body.light .code-tabs .tab-nav .tab-nav-btn.selected { | |
color: #222 ; | |
} | |
body.light .preview-tab { | |
color: #222 ; | |
background: #fff ; | |
} |