Spaces:
Sleeping
Sleeping
| /* Main Theme Variables */ | |
| :root { | |
| --primary-yellow: #FFC107; | |
| --primary-yellow-dark: #FFA000; | |
| --primary-yellow-light: #FFECB3; | |
| --secondary-blue: #2196F3; | |
| --secondary-purple: #9C27B0; | |
| --success-green: #10B981; | |
| --error-red: #EF4444; | |
| --warning-orange: #F59E0B; | |
| --info-blue: #3B82F6; | |
| --gray-50: #F9FAFB; | |
| --gray-100: #F3F4F6; | |
| --gray-200: #E5E7EB; | |
| --gray-300: #D1D5DB; | |
| --gray-400: #9CA3AF; | |
| --gray-500: #6B7280; | |
| --gray-600: #4B5563; | |
| --gray-700: #374151; | |
| --gray-800: #1F2937; | |
| --gray-900: #111827; | |
| --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); | |
| --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1); | |
| --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1); | |
| --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1); | |
| --radius-sm: 0.375rem; | |
| --radius-md: 0.5rem; | |
| --radius-lg: 0.75rem; | |
| --radius-xl: 1rem; | |
| } | |
| /* Global Styles */ | |
| body { | |
| font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif; | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); | |
| min-height: 100vh; | |
| margin: 0; | |
| padding: 20px; | |
| } | |
| .gradio-container { | |
| max-width: 1400px ; | |
| margin: 0 auto ; | |
| background: white ; | |
| border-radius: var(--radius-xl) ; | |
| box-shadow: var(--shadow-xl) ; | |
| overflow: hidden ; | |
| min-height: 90vh ; | |
| } | |
| /* Header Styles */ | |
| .header-container { | |
| background: linear-gradient(90deg, var(--gray-900) 0%, var(--gray-800) 100%); | |
| color: white; | |
| padding: 2rem 2.5rem; | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .header-container::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| right: 0; | |
| width: 300px; | |
| height: 300px; | |
| background: linear-gradient(45deg, var(--primary-yellow) 0%, transparent 70%); | |
| border-radius: 50%; | |
| opacity: 0.1; | |
| } | |
| .header-content { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| position: relative; | |
| z-index: 1; | |
| } | |
| .logo-section { | |
| display: flex; | |
| align-items: center; | |
| gap: 1.5rem; | |
| } | |
| .logo-icon { | |
| font-size: 3.5rem ; | |
| color: var(--primary-yellow); | |
| background: rgba(255, 193, 7, 0.1); | |
| padding: 1rem; | |
| border-radius: var(--radius-lg); | |
| border: 2px solid rgba(255, 193, 7, 0.3); | |
| } | |
| .logo-text h1 { | |
| margin: 0; | |
| font-size: 2.25rem; | |
| font-weight: 700; | |
| background: linear-gradient(90deg, var(--primary-yellow) 0%, #FFD700 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| .tagline { | |
| margin: 0.5rem 0 0 0; | |
| color: var(--gray-300); | |
| font-size: 1.1rem; | |
| font-weight: 400; | |
| } | |
| .header-badge { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| background: rgba(255, 193, 7, 0.1); | |
| padding: 0.75rem 1.5rem; | |
| border-radius: var(--radius-lg); | |
| border: 1px solid rgba(255, 193, 7, 0.3); | |
| font-weight: 600; | |
| color: var(--primary-yellow); | |
| } | |
| .header-badge .material-icons { | |
| font-size: 1.25rem; | |
| } | |
| .header-divider { | |
| height: 4px; | |
| background: linear-gradient(90deg, var(--primary-yellow) 0%, var(--secondary-blue) 50%, var(--secondary-purple) 100%); | |
| margin-top: 1.5rem; | |
| border-radius: 2px; | |
| } | |
| /* Sidebar Styles */ | |
| .sidebar { | |
| background: var(--gray-50); | |
| padding: 2rem 1.5rem ; | |
| border-right: 1px solid var(--gray-200); | |
| height: 100%; | |
| min-height: calc(90vh - 200px); | |
| } | |
| .steps-container { | |
| margin: 2rem 0; | |
| } | |
| .step { | |
| display: flex; | |
| align-items: center; | |
| gap: 1rem; | |
| padding: 1.25rem; | |
| margin-bottom: 1rem; | |
| background: white; | |
| border-radius: var(--radius-lg); | |
| border: 1px solid var(--gray-200); | |
| transition: all 0.3s ease; | |
| cursor: pointer; | |
| } | |
| .step:hover { | |
| transform: translateY(-2px); | |
| box-shadow: var(--shadow-md); | |
| border-color: var(--primary-yellow); | |
| } | |
| .step.active { | |
| background: linear-gradient(135deg, var(--primary-yellow-light) 0%, #FFF8E1 100%); | |
| border-color: var(--primary-yellow); | |
| border-left: 4px solid var(--primary-yellow); | |
| } | |
| .step-number { | |
| width: 2.5rem; | |
| height: 2.5rem; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: var(--gray-100); | |
| color: var(--gray-700); | |
| border-radius: 50%; | |
| font-weight: 700; | |
| font-size: 1.1rem; | |
| transition: all 0.3s ease; | |
| } | |
| .step.active .step-number { | |
| background: var(--primary-yellow); | |
| color: white; | |
| } | |
| .step-content { | |
| flex: 1; | |
| } | |
| .step-title { | |
| font-weight: 600; | |
| color: var(--gray-800); | |
| margin-bottom: 0.25rem; | |
| font-size: 1.1rem; | |
| } | |
| .step.active .step-title { | |
| color: var(--gray-900); | |
| } | |
| .step-description { | |
| font-size: 0.875rem; | |
| color: var(--gray-600); | |
| } | |
| .tips-container { | |
| margin: 2rem 0; | |
| } | |
| .tip { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 1rem; | |
| padding: 1rem; | |
| margin-bottom: 1rem; | |
| background: white; | |
| border-radius: var(--radius-lg); | |
| border: 1px solid var(--gray-200); | |
| } | |
| .tip-icon { | |
| color: var(--primary-yellow); | |
| font-size: 1.5rem ; | |
| margin-top: 0.25rem; | |
| } | |
| .tip-content strong { | |
| display: block; | |
| color: var(--gray-800); | |
| margin-bottom: 0.25rem; | |
| } | |
| .tip-content p { | |
| margin: 0; | |
| font-size: 0.875rem; | |
| color: var(--gray-600); | |
| line-height: 1.5; | |
| } | |
| .requirements ul { | |
| margin: 0; | |
| padding-left: 1.5rem; | |
| } | |
| .requirements li { | |
| margin-bottom: 0.5rem; | |
| color: var(--gray-700); | |
| font-size: 0.875rem; | |
| } | |
| /* API Guide Styles */ | |
| .api-guide { | |
| padding: 1.5rem; | |
| background: var(--gray-50); | |
| border-radius: var(--radius-lg); | |
| margin: 1rem 0; | |
| } | |
| .api-guide h4 { | |
| margin-top: 0; | |
| color: var(--gray-800); | |
| border-bottom: 2px solid var(--primary-yellow); | |
| padding-bottom: 0.5rem; | |
| } | |
| .api-guide ol { | |
| margin: 1rem 0 1.5rem 0; | |
| padding-left: 1.5rem; | |
| } | |
| .api-guide li { | |
| margin-bottom: 0.75rem; | |
| color: var(--gray-700); | |
| line-height: 1.6; | |
| } | |
| .api-guide code { | |
| background: var(--gray-200); | |
| padding: 0.125rem 0.375rem; | |
| border-radius: var(--radius-sm); | |
| font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; | |
| font-size: 0.875rem; | |
| } | |
| .note { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 0.75rem; | |
| padding: 1rem; | |
| background: rgba(59, 130, 246, 0.1); | |
| border-radius: var(--radius-md); | |
| border-left: 4px solid var(--info-blue); | |
| margin: 1.5rem 0; | |
| } | |
| .note .material-icons { | |
| color: var(--info-blue); | |
| margin-top: 0.125rem; | |
| } | |
| .note p { | |
| margin: 0; | |
| color: var(--gray-700); | |
| font-size: 0.875rem; | |
| } | |
| .security-tip { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 1rem; | |
| padding: 1rem; | |
| margin-bottom: 1rem; | |
| background: white; | |
| border-radius: var(--radius-md); | |
| border: 1px solid var(--gray-200); | |
| } | |
| .security-tip .material-icons { | |
| color: var(--primary-yellow); | |
| font-size: 1.5rem ; | |
| margin-top: 0.125rem; | |
| } | |
| .security-tip strong { | |
| display: block; | |
| color: var(--gray-800); | |
| margin-bottom: 0.25rem; | |
| } | |
| .security-tip p { | |
| margin: 0; | |
| font-size: 0.875rem; | |
| color: var(--gray-600); | |
| line-height: 1.5; | |
| } | |
| .resources h5 { | |
| margin: 1.5rem 0 0.75rem 0; | |
| color: var(--gray-800); | |
| } | |
| .resources ul { | |
| margin: 0; | |
| padding-left: 1.5rem; | |
| } | |
| .resources li { | |
| margin-bottom: 0.5rem; | |
| } | |
| .resources a { | |
| color: var(--secondary-blue); | |
| text-decoration: none; | |
| transition: color 0.2s ease; | |
| } | |
| .resources a:hover { | |
| color: var(--primary-yellow); | |
| text-decoration: underline; | |
| } | |
| /* Download Section Styles */ | |
| .download-section { | |
| padding: 2rem ; | |
| } | |
| .file-download { | |
| margin-bottom: 0.5rem ; | |
| } | |
| .file-info { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| padding: 0.75rem; | |
| background: var(--gray-50); | |
| border-radius: var(--radius-md); | |
| font-size: 0.875rem; | |
| color: var(--gray-700); | |
| } | |
| .file-info .material-icons { | |
| color: var(--primary-yellow); | |
| font-size: 1.125rem ; | |
| } | |
| .full-download { | |
| margin-top: 1rem ; | |
| } | |
| .package-info { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| padding: 1rem; | |
| background: linear-gradient(135deg, var(--primary-yellow-light) 0%, #FFF8E1 100%); | |
| border-radius: var(--radius-md); | |
| border: 2px solid var(--primary-yellow); | |
| font-weight: 600; | |
| color: var(--gray-800); | |
| margin-top: 0.5rem; | |
| } | |
| .package-info .material-icons { | |
| color: var(--primary-yellow); | |
| font-size: 1.5rem ; | |
| } | |
| /* Status Messages */ | |
| .status-container { | |
| padding: 1.5rem; | |
| border-radius: var(--radius-lg); | |
| margin: 1.5rem 0; | |
| background: var(--gray-50); | |
| border: 1px solid var(--gray-200); | |
| } | |
| .status-message { | |
| display: flex; | |
| align-items: center; | |
| padding: 1rem 1.25rem; | |
| border-radius: var(--radius-md); | |
| background: white; | |
| border-left: 4px solid; | |
| margin-bottom: 1rem; | |
| animation: slideIn 0.3s ease; | |
| } | |
| @keyframes slideIn { | |
| from { | |
| opacity: 0; | |
| transform: translateY(-10px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| .status-message.success { | |
| border-left-color: var(--success-green); | |
| } | |
| .status-message.error { | |
| border-left-color: var(--error-red); | |
| } | |
| .status-message.warning { | |
| border-left-color: var(--warning-orange); | |
| } | |
| .status-message.info { | |
| border-left-color: var(--info-blue); | |
| } | |
| .status-message .material-icons { | |
| font-size: 1.5rem ; | |
| margin-right: 0.75rem; | |
| } | |
| .error-message { | |
| padding: 1.5rem; | |
| background: linear-gradient(135deg, rgba(239, 68, 68, 0.1) 0%, rgba(239, 68, 68, 0.05) 100%); | |
| border-radius: var(--radius-lg); | |
| border: 1px solid var(--error-red); | |
| margin: 1.5rem 0; | |
| } | |
| .error-message h4 { | |
| margin-top: 0; | |
| color: var(--error-red); | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| } | |
| .error-message ul { | |
| margin: 0.75rem 0 0 0; | |
| padding-left: 1.5rem; | |
| } | |
| .error-message li { | |
| margin-bottom: 0.5rem; | |
| color: var(--gray-700); | |
| } | |
| /* Button Styles */ | |
| button { | |
| transition: all 0.3s ease ; | |
| } | |
| button:hover { | |
| transform: translateY(-2px) ; | |
| box-shadow: var(--shadow-md) ; | |
| } | |
| button.primary { | |
| background: linear-gradient(90deg, var(--primary-yellow) 0%, var(--primary-yellow-dark) 100%) ; | |
| border: none ; | |
| color: var(--gray-900) ; | |
| font-weight: 600 ; | |
| } | |
| button.secondary { | |
| background: white ; | |
| border: 2px solid var(--gray-300) ; | |
| color: var(--gray-700) ; | |
| font-weight: 600 ; | |
| } | |
| /* Form Styles */ | |
| input, textarea, select { | |
| border-radius: var(--radius-md) ; | |
| border: 1px solid var(--gray-300) ; | |
| transition: all 0.3s ease ; | |
| } | |
| input:focus, textarea:focus, select:focus { | |
| border-color: var(--primary-yellow) ; | |
| box-shadow: 0 0 0 3px rgba(255, 193, 7, 0.1) ; | |
| outline: none ; | |
| } | |
| /* Tab Styles */ | |
| .tab-nav { | |
| border-bottom: 2px solid var(--gray-200) ; | |
| } | |
| .tab-nav button { | |
| border-radius: var(--radius-md) var(--radius-md) 0 0 ; | |
| margin-right: 0.25rem ; | |
| } | |
| .tab-nav button.selected { | |
| background: linear-gradient(135deg, var(--primary-yellow-light) 0%, #FFF8E1 100%) ; | |
| border-color: var(--primary-yellow) ; | |
| border-bottom-color: transparent ; | |
| color: var(--gray-900) ; | |
| font-weight: 600 ; | |
| } | |
| /* Code Editor */ | |
| #code_editor { | |
| font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace ; | |
| font-size: 0.875rem ; | |
| line-height: 1.6 ; | |
| background: var(--gray-50) ; | |
| border: 1px solid var(--gray-300) ; | |
| border-radius: var(--radius-lg) ; | |
| padding: 1.5rem ; | |
| } | |
| /* Responsive Design */ | |
| @media (max-width: 1024px) { | |
| .gradio-container { | |
| padding: 0.5rem ; | |
| } | |
| .header-content { | |
| flex-direction: column; | |
| gap: 1.5rem; | |
| text-align: center; | |
| } | |
| .logo-section { | |
| flex-direction: column; | |
| text-align: center; | |
| } | |
| .sidebar { | |
| padding: 1rem ; | |
| } | |
| .step { | |
| flex-direction: column; | |
| text-align: center; | |
| padding: 1rem; | |
| } | |
| .step-number { | |
| margin-bottom: 0.5rem; | |
| } | |
| } | |
| @media (max-width: 768px) { | |
| body { | |
| padding: 10px; | |
| } | |
| .logo-text h1 { | |
| font-size: 1.75rem; | |
| } | |
| .header-badge { | |
| width: 100%; | |
| justify-content: center; | |
| } | |
| .api-guide { | |
| padding: 1rem; | |
| } | |
| } | |
| /* Animation for success states */ | |
| @keyframes pulse { | |
| 0%, 100% { | |
| opacity: 1; | |
| } | |
| 50% { | |
| opacity: 0.8; | |
| } | |
| } | |
| .success-pulse { | |
| animation: pulse 2s infinite; | |
| } | |
| /* Loading State */ | |
| .loading { | |
| position: relative; | |
| pointer-events: none; | |
| } | |
| .loading::after { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| background: rgba(255, 255, 255, 0.8); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| border-radius: inherit; | |
| z-index: 10; | |
| } | |
| .loading::before { | |
| content: ''; | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| width: 2.5rem; | |
| height: 2.5rem; | |
| margin: -1.25rem 0 0 -1.25rem; | |
| border: 3px solid var(--gray-300); | |
| border-top-color: var(--primary-yellow); | |
| border-radius: 50%; | |
| animation: spin 1s linear infinite; | |
| z-index: 11; | |
| } | |
| @keyframes spin { | |
| to { | |
| transform: rotate(360deg); | |
| } | |
| } |