Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -194,42 +194,74 @@ BG_URL = "https://plus.unsplash.com/premium_photo-1679830513869-cd3648acb1db?q=8
|
|
| 194 |
st.sidebar.subheader("๐จ ๋ฐฐ๊ฒฝ ์ค์ ")
|
| 195 |
st.sidebar.toggle("๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ์ฌ์ฉ", key="bg_on", value=True)
|
| 196 |
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
|
| 200 |
-
.
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
"""
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
.
|
| 217 |
-
|
| 218 |
|
| 219 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 220 |
}}
|
| 221 |
-
|
| 222 |
-
|
| 223 |
-
|
| 224 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 225 |
color = st.session_state.get("bg_color", "#F1F1F1")
|
| 226 |
-
st.markdown(f"""
|
| 227 |
<style>
|
| 228 |
-
|
| 229 |
-
|
| 230 |
-
|
| 231 |
-
|
| 232 |
-
|
|
|
|
|
|
|
| 233 |
apply_background()
|
| 234 |
|
| 235 |
|
|
|
|
| 194 |
st.sidebar.subheader("๐จ ๋ฐฐ๊ฒฝ ์ค์ ")
|
| 195 |
st.sidebar.toggle("๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ์ฌ์ฉ", key="bg_on", value=True)
|
| 196 |
|
| 197 |
+
# ๋๋จธ์ง ์์ธ ์ค์ ์ expander ์์ ๋ฃ์ด ๊น๋ํ๊ฒ ๊ด๋ฆฌํฉ๋๋ค.
|
| 198 |
+
with st.expander("๋ฐฐ๊ฒฝ ์ต์
ํผ์น๊ธฐ"):
|
| 199 |
+
st.text_input("๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง URL", key="bg_url", value="https://images.unsplash.com/photo-1506744038136-46273834b3fb")
|
| 200 |
+
st.slider("๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ์ค๋ฒ๋ ์ด (%)", 0, 100, 15, key="bg_overlay_pct")
|
| 201 |
+
st.color_picker("๋จ์ ๋ฐฐ๊ฒฝ ์์", key="bg_color", value="#F1F1F1")
|
| 202 |
+
|
| 203 |
+
|
| 204 |
+
def apply_background():
|
| 205 |
+
# ๋ณดํธ: ๊ธฐ์กด ::before ๋ฐฐ๊ฒฝ์ด ์์ผ๋ฉด ๋๊ธฐ (๊ฒน์นจ/๋๊น ๋ฐฉ์ง)
|
| 206 |
+
base_reset_css = """
|
| 207 |
+
<style>
|
| 208 |
+
.stApp::before, .block-container::before { content:none !important; }
|
| 209 |
+
/* ์
๋ ฅ๋ฐ์ค ์๋ ์ฌ๋ฐฑ */
|
| 210 |
+
div[data-testid="stTextInput"] { margin-bottom:18px !important; }
|
| 211 |
+
</style>
|
| 212 |
+
"""
|
| 213 |
+
st.markdown(base_reset_css, unsafe_allow_html=True)
|
| 214 |
+
|
| 215 |
+
if st.session_state.get("bg_on") and st.session_state.get("bg_url"):
|
| 216 |
+
url = st.session_state["bg_url"]
|
| 217 |
+
overlay_alpha = float(st.session_state.get("bg_overlay_pct", 15)) / 100.0
|
| 218 |
|
| 219 |
+
# โ
์ด๋ฏธ์ง ๋ฐฐ๊ฒฝ (๋ฉ์ธ ์ปจํ
์ธ ์์ญ์๋ง ๊ณ ์ ๋ฐฐ๊ฒฝ ์ ์ฉ)
|
| 220 |
+
st.markdown(f"""
|
| 221 |
+
<style>
|
| 222 |
+
[data-testid="stAppViewContainer"] {{
|
| 223 |
+
background: url('{url}') center / cover no-repeat fixed;
|
| 224 |
+
position: relative; /* ์ค๋ฒ๋ ์ด์ ๊ธฐ์ค์ ์ด ๋๋๋ก ์ค์ */
|
| 225 |
+
z-index: 0; /* ์ปจํ
์ธ ๊ฐ ์์ ์ค๋๋ก */
|
| 226 |
+
}}
|
| 227 |
+
|
| 228 |
+
/* ์ค๋ฒ๋ ์ด: ์ด๋ฏธ์ง ์์ ํฐ์ ๋ง์ ์น์ด ๊ฐ๋
์ฑ ํ๋ณด */
|
| 229 |
+
[data-testid="stAppViewContainer"]::after {{
|
| 230 |
+
content: "";
|
| 231 |
+
position: absolute; /* ๋ถ๋ชจ(stAppViewContainer)๋ฅผ ๊ธฐ์ค์ผ๋ก ์์น */
|
| 232 |
+
inset: 0;
|
| 233 |
+
background: rgba(255, 255, 255, {overlay_alpha});
|
| 234 |
+
z-index: -1; /* ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ๋ฐ๋ก ์์ ์ค๋๋ก */
|
| 235 |
+
pointer-events: none;
|
| 236 |
}}
|
| 237 |
+
|
| 238 |
+
/* ์ปจํ
์ธ ์ ์ฌ์ด๋๋ฐ๊ฐ ๋ฐฐ๊ฒฝ๋ณด๋ค ์์ ์ค๋๋ก */
|
| 239 |
+
.block-container, [data-testid="stSidebar"] {{
|
| 240 |
+
position: relative;
|
| 241 |
+
z-index: 1;
|
| 242 |
+
}}
|
| 243 |
+
|
| 244 |
+
/* ๋ชจ๋ฐ์ผ์ fixed ์ด์๊ฐ ์์ด ๊ณ ์ ํด์ */
|
| 245 |
+
@media (max-width: 768px) {{
|
| 246 |
+
[data-testid="stAppViewContainer"] {{
|
| 247 |
+
background-attachment: initial;
|
| 248 |
+
}}
|
| 249 |
+
}}
|
| 250 |
+
</style>
|
| 251 |
+
""", unsafe_allow_html=True)
|
| 252 |
+
|
| 253 |
+
else:
|
| 254 |
+
# โ
๋จ์ ๋ฐฐ๊ฒฝ (๋ฉ์ธ ์ปจํ
์ธ ์์ญ์๋ง ์ ์ฉ)
|
| 255 |
color = st.session_state.get("bg_color", "#F1F1F1")
|
| 256 |
+
st.markdown(f"""
|
| 257 |
<style>
|
| 258 |
+
[data-testid="stAppViewContainer"] {{
|
| 259 |
+
background-color: {color} !important;
|
| 260 |
+
}}
|
| 261 |
+
</style>
|
| 262 |
+
""", unsafe_allow_html=True)
|
| 263 |
+
|
| 264 |
+
# ํจ์ ํธ์ถ
|
| 265 |
apply_background()
|
| 266 |
|
| 267 |
|