Main function to run the Streamlit app.
()
| 1374 | |
| 1375 | |
| 1376 | def main(): |
| 1377 | """Main function to run the Streamlit app.""" |
| 1378 | logger.info("Starting Fabric Pattern Studio") |
| 1379 | try: |
| 1380 | # Set page config |
| 1381 | st.set_page_config( |
| 1382 | page_title="Fabric Pattern Studio", |
| 1383 | page_icon="🧬", |
| 1384 | layout="wide", |
| 1385 | initial_sidebar_state="expanded", |
| 1386 | ) |
| 1387 | |
| 1388 | # Add title with gradient styling and footer signature |
| 1389 | st.markdown( |
| 1390 | """ |
| 1391 | <style> |
| 1392 | [data-testid="stHeader"] { |
| 1393 | background-color: rgba(0,0,0,0); |
| 1394 | } |
| 1395 | .fabric-header { |
| 1396 | padding: 1rem; |
| 1397 | margin-bottom: 1rem; |
| 1398 | background: linear-gradient(90deg, rgba(155, 108, 255, 0.1) 0%, rgba(76, 181, 255, 0.1) 100%); |
| 1399 | border-radius: 8px; |
| 1400 | } |
| 1401 | .fabric-title { |
| 1402 | font-size: 2.5em; |
| 1403 | margin: 0; |
| 1404 | background: linear-gradient(90deg, #9B6CFF 0%, #4CB5FF 100%); |
| 1405 | -webkit-background-clip: text; |
| 1406 | -webkit-text-fill-color: transparent; |
| 1407 | font-weight: 600; |
| 1408 | text-align: center; |
| 1409 | } |
| 1410 | .assistant-container { |
| 1411 | position: fixed; |
| 1412 | right: 20px; |
| 1413 | bottom: 40px; |
| 1414 | display: flex; |
| 1415 | flex-direction: column; |
| 1416 | align-items: center; |
| 1417 | gap: 8px; |
| 1418 | z-index: 1000; |
| 1419 | } |
| 1420 | .assistant-avatar { |
| 1421 | width: 42px; |
| 1422 | height: 42px; |
| 1423 | background: rgba(155, 108, 255, 0.05); |
| 1424 | border: 2px solid rgba(155, 108, 255, 0.1); |
| 1425 | border-radius: 50%; |
| 1426 | display: flex; |
| 1427 | align-items: center; |
| 1428 | justify-content: center; |
| 1429 | cursor: pointer; |
| 1430 | transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); |
| 1431 | backdrop-filter: blur(8px); |
| 1432 | -webkit-backdrop-filter: blur(8px); |
| 1433 | } |
no test coverage detected