import gradio as gr
from datetime import datetime
DAILY_PROMPTS = [
"Кто ты, когда никто не видит?",
"Что сегодня было по-настоящему твоим?",
"Что ты делаешь из страха, а не из желания?",
"Если бы ты знал(а), что тебя никто не осудит — что бы ты изменил(а)?",
"Кто смотрит изнутри этих глаз?",
"Что ты прячешь даже от себя?",
"Что в тебе хочет быть услышанным — но молчит?"
]
PRACTICES = [
"Письмо от Тени",
"Кто наблюдает?",
"Голос из зеркала",
"Письмо от будущего себя",
"Тело знает"
]
def get_daily_prompt():
today = datetime.today().date()
seed = hash(today.strftime("%Y-%m-%d")) % len(DAILY_PROMPTS)
return DAILY_PROMPTS[seed]
CSS = """
body {
background-color: #fdfbf7 !important;
color: #2d2b26 !important;
}
.gradio-container {
background: transparent !important;
}
"""
with gr.Blocks(css=CSS, title="Тишина внутри") as demo:
gr.Markdown("## 🌿 Тишина внутри")
gr.Markdown(f"### «{get_daily_prompt()}»")
# Основная заметка
main_note = gr.Textbox(
label="Твоя заметка",
placeholder="Напиши всё, что приходит…",
lines=4,
elem_id="main_note"
)
gr.HTML("""
""")
# Практики
gr.Markdown("### Практики")
for i, name in enumerate(PRACTICES):
with gr.Accordion(name, open=False):
practice_box = gr.Textbox(
label="Твои впечатления",
placeholder=f"Практика {i}",
lines=3,
elem_id=f"practice_{i}"
)
# ВАЖНО: используем f-строку, чтобы {i} подставилось на стороне Python
gr.HTML(f"""
""")
# Кнопки действий
gr.HTML("""
""")
# Загрузка сохранённых данных при старте
gr.HTML("""
""")
demo.launch(ssr_mode=False)