Spaces:
Running on Zero
Running on Zero
| """Gradio theme and CSS for AnimaStudio.""" | |
| import gradio as gr | |
| THEME = gr.themes.Soft( | |
| primary_hue="purple", | |
| secondary_hue="pink", | |
| neutral_hue="slate", | |
| ) | |
| CSS = """ | |
| /* ββ Global βββββββββββββββββββββββββββββββββββββββ */ | |
| .gradio-container { | |
| max-width: 1380px !important; | |
| margin: 0 auto !important; | |
| } | |
| /* ββ Header ββββββββββββββββββββββββββββββββββββββββ */ | |
| .as-header { | |
| text-align: center; | |
| padding: 2.4rem 1rem 2rem; | |
| border-radius: 1.5rem; | |
| margin-bottom: 1.5rem; | |
| background: linear-gradient(135deg, #1a0b2e 0%, #2d1b4e 40%, #1a1040 70%, #0d0b1e 100%); | |
| border: 1px solid rgba(168,85,247,0.25); | |
| box-shadow: 0 4px 60px rgba(168,85,247,0.1), inset 0 1px 0 rgba(255,255,255,0.05); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .as-header::before { | |
| content: ''; | |
| position: absolute; | |
| top: -50%; left: -50%; | |
| width: 200%; height: 200%; | |
| background: radial-gradient(ellipse at center, rgba(168,85,247,0.08) 0%, transparent 60%); | |
| pointer-events: none; | |
| } | |
| .as-header h1 { | |
| font-size: 3.2rem !important; | |
| font-weight: 900 !important; | |
| margin: 0 0 0.6rem !important; | |
| line-height: 1.05 !important; | |
| background: linear-gradient(90deg, #e879f9 0%, #a855f7 40%, #f472b6 80%, #fb923c 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| letter-spacing: -0.035em; | |
| } | |
| .as-header .tagline { | |
| color: #94a3b8 !important; | |
| font-size: 1.0rem !important; | |
| margin: 0 0 1rem !important; | |
| } | |
| .as-header .badges { | |
| display: flex; | |
| justify-content: center; | |
| gap: 0.5rem; | |
| flex-wrap: wrap; | |
| } | |
| /* ββ Badges βββββββββββββββββββββββββββββββββββββββββ */ | |
| .badge { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.3rem; | |
| padding: 0.25rem 0.75rem; | |
| border-radius: 999px; | |
| font-size: 0.78rem; | |
| font-weight: 600; | |
| background: rgba(255,255,255,0.06); | |
| border: 1px solid rgba(255,255,255,0.1); | |
| color: #cbd5e1; | |
| } | |
| .badge-purple { border-color: rgba(168,85,247,0.4); color: #a855f7; background: rgba(168,85,247,0.08); } | |
| .badge-pink { border-color: rgba(244,114,182,0.4); color: #f472b6; background: rgba(244,114,182,0.08); } | |
| .badge-cyan { border-color: rgba(34,211,238,0.4); color: #22d3ee; background: rgba(34,211,238,0.08); } | |
| .badge-gold { border-color: rgba(251,191,36,0.4); color: #fbbf24; background: rgba(251,191,36,0.08); } | |
| .badge-teal { border-color: rgba(20,184,166,0.4); color: #14b8a6; background: rgba(20,184,166,0.08); } | |
| /* ββ Language selector ββββββββββββββββββββββββββββββ */ | |
| #lang-selector .wrap { gap: 4px !important; justify-content: center !important; } | |
| #lang-selector label span { font-size: 0.9rem !important; } | |
| #lang-selector { margin-bottom: 0.5rem !important; } | |
| /* ββ Generate Button ββββββββββββββββββββββββββββββββ */ | |
| #gen-btn { | |
| background: linear-gradient(135deg, #a855f7 0%, #ec4899 100%) !important; | |
| border: none !important; | |
| font-size: 1.15rem !important; | |
| font-weight: 700 !important; | |
| padding: 0.85rem 1rem !important; | |
| border-radius: 0.85rem !important; | |
| color: white !important; | |
| box-shadow: 0 4px 24px rgba(168,85,247,0.4) !important; | |
| transition: all 0.2s ease !important; | |
| letter-spacing: 0.02em !important; | |
| width: 100% !important; | |
| } | |
| #gen-btn:hover { | |
| transform: translateY(-2px) !important; | |
| box-shadow: 0 8px 32px rgba(168,85,247,0.55) !important; | |
| } | |
| #gen-btn:active { transform: translateY(0) !important; } | |
| /* ββ Dub Button ββββββββββββββββββββββββββββββββββββββ */ | |
| #dub-btn { | |
| background: linear-gradient(135deg, #06b6d4 0%, #a855f7 100%) !important; | |
| border: none !important; | |
| font-size: 1.15rem !important; | |
| font-weight: 700 !important; | |
| padding: 0.85rem 1rem !important; | |
| border-radius: 0.85rem !important; | |
| color: white !important; | |
| box-shadow: 0 4px 24px rgba(6,182,212,0.4) !important; | |
| transition: all 0.2s ease !important; | |
| letter-spacing: 0.02em !important; | |
| width: 100% !important; | |
| } | |
| #dub-btn:hover { | |
| transform: translateY(-2px) !important; | |
| box-shadow: 0 8px 32px rgba(6,182,212,0.55) !important; | |
| } | |
| #dub-btn:active { transform: translateY(0) !important; } | |
| /* ββ Output Video βββββββββββββββββββββββββββββββββββ */ | |
| #output-video, #dub-output-video { | |
| border-radius: 1rem !important; | |
| overflow: hidden !important; | |
| background: #0f172a !important; | |
| min-height: 420px !important; | |
| } | |
| /* ββ Footer βββββββββββββββββββββββββββββββββββββββββ */ | |
| .as-footer { | |
| text-align: center; | |
| padding: 1.2rem 0 0.5rem; | |
| color: #475569; | |
| font-size: 0.82rem; | |
| border-top: 1px solid #1e293b; | |
| margin-top: 1rem; | |
| } | |
| .as-footer a { color: #a855f7 !important; text-decoration: none !important; } | |
| .as-footer a:hover { text-decoration: underline !important; } | |
| /* ββ Mobile βββββββββββββββββββββββββββββββββββββββββ */ | |
| @media (max-width: 768px) { | |
| .as-header h1 { font-size: 2rem !important; } | |
| .badges { gap: 0.35rem !important; } | |
| } | |
| """ | |