Spaces:
Running
Running
# Custom CSS for fullscreen image with overlay | |
custom_css = """ | |
/* Make the image container fullscreen */ | |
.image-container { | |
position: fixed !important; | |
top: 0 !important; | |
left: 0 !important; | |
width: 100vw !important; | |
height: 100vh !important; | |
z-index: 1 !important; | |
} | |
.image-container img { | |
width: 100vw !important; | |
height: 100vh !important; | |
object-fit: cover !important; | |
} | |
/* Style the overlay content */ | |
.overlay-content { | |
position: fixed !important; | |
bottom: 0 !important; | |
left: 0 !important; | |
right: 0 !important; | |
background: linear-gradient(transparent, rgba(0,0,0,0.8)) !important; | |
padding: 40px 20px 20px !important; | |
z-index: 10 !important; | |
color: white !important; | |
} | |
/* Style the narrative text */ | |
.narrative-text { | |
background: rgba(0,0,0,0.7) !important; | |
border: none !important; | |
color: white !important; | |
font-size: 18px !important; | |
line-height: 1.5 !important; | |
padding: 20px !important; | |
border-radius: 10px !important; | |
margin-bottom: 20px !important; | |
} | |
img { | |
pointer-events: none; | |
} | |
.narrative-text textarea { | |
background: transparent !important; | |
border: none !important; | |
color: white !important; | |
-webkit-text-fill-color: white !important; | |
font-size: 18px !important; | |
resize: none !important; | |
} | |
/* Style the choice buttons */ | |
.choice-buttons { | |
background: rgba(0,0,0,0.7) !important; | |
border-radius: 10px !important; | |
padding: 15px !important; | |
} | |
.choice-buttons label { | |
color: white !important; | |
font-size: 16px !important; | |
margin-bottom: 10px !important; | |
} | |
/* Fix radio button backgrounds */ | |
.choice-buttons input[type="radio"] { | |
background: transparent !important; | |
border: 2px solid white !important; | |
} | |
.choice-buttons input[type="radio"]:checked { | |
background: white !important; | |
} | |
.choice-buttons .form-radio { | |
background: transparent !important; | |
} | |
/* Style radio button containers */ | |
.choice-buttons > div { | |
background: transparent !important; | |
} | |
.choice-buttons fieldset { | |
background: transparent !important; | |
border: none !important; | |
} | |
/* Remove any remaining white backgrounds */ | |
.choice-buttons * { | |
background-color: transparent !important; | |
} | |
.choice-buttons input { | |
background-color: transparent !important; | |
border: 1px solid rgba(255,255,255,0.5) !important; | |
color: white !important; | |
} | |
.choice-buttons label span { | |
color: white !important; | |
} | |
/* Hide gradio header and footer */ | |
.gradio-header, .gradio-footer { | |
display: none !important; | |
} | |
/* Hide image control buttons using correct DOM selector */ | |
.image-container .icon-button-wrapper { | |
display: none !important; | |
} | |
.image-container .icon-buttons { | |
display: none !important; | |
} | |
/* Make form element transparent */ | |
.overlay-content .form { | |
background: transparent !important; | |
} | |
""" | |
# CSS for the loading indicator | |
loading_css_styles = """ | |
#loading-indicator { | |
position: fixed; | |
top: 0; | |
left: 0; | |
width: 100%; | |
height: 100%; | |
background-color: rgba(0, 0, 0, 0.8); /* Semi-transparent black */ | |
/* When Gradio makes this gr.Column visible, it will set display:flex !important; (or similar). */ | |
/* These properties will then apply to center the content of the Column: */ | |
justify-content: center; | |
align-items: center; | |
z-index: 9999; /* Ensure it's on top */ | |
} | |
#loading-indicator .loading-text { /* Style for the text inside */ | |
color: white; | |
font-size: 2em; | |
text-align: center; | |
} | |
""" |