# aurora_css.py aurora_css = """ /* Apply to body and panels */ body { background: var(--app-bg) !important; color: var(--text-color) !important; } .gr-dark .panel { background-color: #2a2a3c !important; color: white !important; } .dark .gradio-container .prose h1 { color: navy; } /* Gradient border on focus for the container div */ .aurora-hover-gradient { position: relative; border-radius: inherit; /* adjust as needed */ overflow: hidden; border: 2px solid transparent; /* invisible default border */ transition: border 0.3s ease; } /* Animated gradient border */ .aurora-hover-gradient::before { content: ""; position: absolute; inset: 0; /* cover entire container */ padding: 2px; /* thickness of the border */ border-radius: inherit; background: linear-gradient( 120deg, rgba(20, 232, 30, 1), rgba(0, 234, 141, 1), rgba(1, 126, 213, 1), rgba(181, 61, 255, 1), rgba(141, 0, 196, 1) ); background-size: 400% 400%; z-index: 0; opacity: 0; pointer-events: none; -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: destination-out; mask-composite: exclude; transition: opacity 0.6s ease; animation: aurora-glass-drift 18s ease-in-out infinite; } /* Show border on focus */ .aurora-hover-gradient:focus-within::before { opacity: 1; } /* Keep input content above the border */ .aurora-hover-gradient > * { position: relative; z-index: 1; } /* Gradient animation */ @keyframes aurora-glass-drift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } footer { color: #8d00c4 !important; } footer:hover { color: #b53dff !important; } """