| | import streamlit as st |
| | import time |
| |
|
| | def show_loading_state(): |
| | """ |
| | Cyber-inspired loading animation with circuit-like effects |
| | """ |
| | try: |
| | st.html(""" |
| | <div class="loading-container-cyber"> |
| | <div class="rocket-animation-cyber"> |
| | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" class="cyber-rocket"> |
| | <path d="M50 10 L30 70 L50 65 L70 70 Z" fill="#00FFD1"/> |
| | <path d="M40 80 L50 90 L60 80" stroke="#00FFD1" stroke-width="3" fill="none"/> |
| | </svg> |
| | </div> |
| | |
| | <h1 class="title-cyber">AutoML</h1> |
| | |
| | <h2 class="subtitle-cyber">You Ask , We Deliver</h2> |
| | |
| | <div class="loading-content-cyber"> |
| | <p class="loading-text-cyber">Initializing neural networks...</p> |
| | <div class="loading-bar-container-cyber"> |
| | <div class="loading-bar-cyber"></div> |
| | </div> |
| | </div> |
| | |
| | <style> |
| | body { background-color: #000000 !important; } |
| | |
| | .loading-container-cyber { |
| | display: flex; |
| | flex-direction: column; |
| | align-items: center; |
| | justify-content: center; |
| | min-height: 80vh; |
| | text-align: center; |
| | padding: 2rem; |
| | background: radial-gradient(circle, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 100%); |
| | } |
| | |
| | .cyber-rocket { |
| | width: 100px; |
| | height: 100px; |
| | animation: pulse 2s infinite; |
| | } |
| | |
| | .title-cyber { |
| | font-size: 3rem; |
| | margin-bottom: 0.5rem; |
| | color: #00FFD1; |
| | text-shadow: 0 0 10px #00FFD1; |
| | font-family: 'Orbitron', sans-serif; |
| | } |
| | |
| | .subtitle-cyber { |
| | font-size: 1.5rem; |
| | margin-bottom: 2rem; |
| | color: #00A86B; |
| | font-family: 'Chakra Petch', sans-serif; |
| | } |
| | |
| | .loading-content-cyber { |
| | background: rgba(0, 255, 209, 0.05); |
| | border: 1px solid rgba(0, 255, 209, 0.2); |
| | padding: 1.5rem 2rem; |
| | border-radius: 8px; |
| | max-width: 600px; |
| | width: 100%; |
| | } |
| | |
| | .loading-text-cyber { |
| | margin: 0 0 1rem 0; |
| | font-size: 1.1rem; |
| | color: #00FFD1; |
| | font-family: 'Chakra Petch', sans-serif; |
| | } |
| | |
| | .loading-bar-container-cyber { |
| | height: 6px; |
| | background: rgba(0, 255, 209, 0.2); |
| | border-radius: 3px; |
| | overflow: hidden; |
| | } |
| | |
| | .loading-bar-cyber { |
| | height: 100%; |
| | width: 30%; |
| | background: linear-gradient(90deg, #00FFD1, #00A86B); |
| | animation: circuit-load 1.5s cubic-bezier(0.4, 0.0, 0.2, 1) infinite; |
| | } |
| | |
| | @keyframes pulse { |
| | 0%, 100% { transform: scale(1); } |
| | 50% { transform: scale(1.1); } |
| | } |
| | |
| | @keyframes circuit-load { |
| | 0% { transform: translateX(-100%); box-shadow: 0 0 10px #00FFD1; } |
| | 50% { box-shadow: 0 0 20px #00FFD1; } |
| | 100% { transform: translateX(400%); box-shadow: 0 0 10px #00FFD1; } |
| | } |
| | </style> |
| | </div> """) |
| | except Exception as e: |
| | |
| | st.warning("Custom loading animation unavailable. Using default spinner...") |
| | with st.spinner("Loading, please wait..."): |
| | time.sleep(3) |
| |
|
| |
|
| | if __name__ == "__main__": |
| | show_loading_state() |
| | time.sleep(3) |
| | st.empty() |
| | st.success("App loaded successfully!") |
| |
|
| |
|
| |
|