import streamlit as st import streamlit.components.v1 as components import math def main(): st.set_page_config(page_title="Storytelling Mastery", page_icon="๐", layout="wide") st.title("๐ญ The Art of Storytelling: Master Guide ๐ญ") # ----------------------------- # 1. The Storyteller's Song # ----------------------------- st.markdown("## ๐ต The Storyteller's Journey Song ๐ต") st.markdown(""" **Verse 1 โ Location** *I'm in a quiet town, where twilight meets the dawn,* *A simple street and weathered walls, where whispered dreams are drawn.* **Verse 2 โ Actions** *I lace my worn-out sneakers, stepping into a new dayโs light,* *I pedal through cobbled memories, heart racing with each flight.* **Verse 3 โ Thoughts** *In every echo of my footsteps, a raw, unfiltered thought appears,* *I muse, โAm I chasing shadows, or the brilliance of my years?โ* **Verse 4 โ Emotions** *My eyes reflect a storm of joy and painโa silent, candid art,* *A trembling smile, a furrowed brow, emotions painted on my heart.* **Verse 5 โ Dialogue** *Then comes a gentle, piercing voice: โKeep moving, dare to feel;โ* *Those words ignite the darkened skiesโmy destiny is real.* **Chorus** *Let each moment unfold its magic, in places, moves, and minds so bold,* *For every whispered thought and burst of feeling tells a story yet untold.* """) st.markdown("---") # ----------------------------- # 2. The Storytelling Points Outline # ----------------------------- storytelling_points = [ {"number": 1, "emoji": "๐ ", "keyword": "location", "description": "Set a scene that sparks the imagination: a place that's simply stated but vividly felt."}, {"number": 2, "emoji": "๐", "keyword": "actions", "description": "Show the kinetic energyโwhether itโs walking, biking, or a spontaneous burst of movement."}, {"number": 3, "emoji": "๐ง ", "keyword": "thoughts", "description": "Reveal those raw, neurotic inner monologues that make you real and relatable."}, {"number": 4, "emoji": "๐ฒ", "keyword": "emotions", "description": "Let your body speak the language of your feelingsโevery twitch and tear is a story."}, {"number": 5, "emoji": "๐ฌ", "keyword": "dialogue", "description": "Capture crisp, memorable dialogue that slices through the moment like lightning."}, # Additional points can be used for further storytelling techniquesโฆ ] # ----------------------------- # 3. Random Literary Wit โ Ten Poetic Lines # ----------------------------- random_poetry = [ "๐ Location: Where the horizon kisses the edge of dreams. ๐", "๐ด Action: Pedaling through the city's heartbeat, every turn a burst of rhythm. ๐ถ", "๐ญ Thoughts: Whispering secrets of a chaotic mind under a tranquil sky. ๐", "๐ Emotions: A smile that trembles like morning dew on a rose. ๐", "๐ฃ Dialogue: Words crackling like fire in the midnight hush. ๐ฅ", "๐ฒ Nature: The forest murmurs ancient tales to those who dare to listen. ๐", "๐ Waves: Dancing to the eternal hymn of the deep blue. ๐", "๐ Dreams: Starlight scattered over the canvas of restless nights. โจ", "๐ฅ Passion: A flame burning fierce in the silence of despair. โค๏ธ", "๐ Reflection: Leaves falling like whispered memories in autumnโs embrace. ๐๏ธ" ] st.markdown("## โจ Random Literary Wit") st.code("\n".join(random_poetry), language="python") # ----------------------------- # 4. Interactive Story Element Explorer (Vertical Flow and Tabs) # ----------------------------- st.markdown("## ๐ The Art of Storytelling: 5 Essential Elements") st.markdown("> \"The universe is made of stories, not of atoms.\" โ Muriel Rukeyser") for point in storytelling_points: st.markdown(f"{point['number']}. {point['emoji']} **{point['keyword'].capitalize()}** - {point['description']}") # ----------------------------- # 5. Star Layout for the Five Pillars # ----------------------------- st.markdown("## โญ Five Pillars in a Star Layout โญ") # Using absolute positioning in a relative container to arrange five points on a circle # Calculated using basic trigonometry (center = 200, radius = 150) star_html = """