import gradio as gr import time def greet(name, greeting_style, emoji_enabled): """Generate a personalized greeting based on user input.""" if not name.strip(): return "Please enter your name!" greetings = { "Formal": f"Good day, {name}! It's a pleasure to meet you.", "Casual": f"Hey {name}! What's up?", "Friendly": f"Hello there, {name}! Great to see you!", "Professional": f"Dear {name}, welcome to our application.", "Enthusiastic": f"Wow, {name}! So excited to have you here!" } base_greeting = greetings.get(greeting_style, f"Hello, {name}!") if emoji_enabled: emojis = ["👋", "😊", "🎉", "✨", "🌟", "💫"] emoji = time.time() % len(emojis) base_greeting += f" {emojis[int(emoji)]}" return base_greeting def get_current_time(): """Get current time for display.""" return time.strftime("%H:%M:%S") # Create the Gradio 6 application with gr.Blocks( title="Greeting App", theme=gr.themes.Soft(), footer_links=[ {"label": "Built with anycoder", "url": "https://huggingface.co/spaces/akhaliq/anycoder"} ] ) as demo: # Header with branding gr.HTML("""

🎈 Welcome to the Greeting App!

Create personalized greetings with different styles

Built with anycoder

""") with gr.Row(): with gr.Column(scale=2): # Input section name_input = gr.Textbox( label="Your Name", placeholder="Enter your name here...", autofocus=True, lines=1 ) style_radio = gr.Radio( choices=["Formal", "Casual", "Friendly", "Professional", "Enthusiastic"], value="Friendly", label="Greeting Style", info="Choose how you'd like to be greeted" ) emoji_checkbox = gr.Checkbox( label="Add Emoji", value=True, info="Include a fun emoji with your greeting" ) # Buttons with gr.Row(): greet_btn = gr.Button("Generate Greeting", variant="primary", size="lg") clear_btn = gr.Button("Clear", variant="secondary") with gr.Column(scale=3): # Output section output_text = gr.Textbox( label="Your Personalized Greeting", lines=3, interactive=False, show_copy_button=True ) # Current time display time_display = gr.Textbox( label="Current Time", value=get_current_time(), interactive=False, every=1 ) # Example section gr.Examples( examples=[ ["Alice", "Casual", True], ["Bob", "Professional", False], ["Charlie", "Enthusiastic", True], ["Diana", "Formal", False] ], inputs=[name_input, style_radio, emoji_checkbox], label="Try these examples:", examples_per_page=4 ) # Event listeners with Gradio 6 syntax greet_btn.click( fn=greet, inputs=[name_input, style_radio, emoji_checkbox], outputs=output_text, api_visibility="public" ) # Also trigger on Enter key for name input name_input.submit( fn=greet, inputs=[name_input, style_radio, emoji_checkbox], outputs=output_text, api_visibility="public" ) # Clear button functionality clear_btn.click( fn=lambda: ["", "Friendly", True, ""], outputs=[name_input, style_radio, emoji_checkbox, output_text], api_visibility="private" ) # Footer info gr.HTML("""

💡 Tip: Try different greeting styles and toggle emojis for fun variations!

""") # Launch the application if __name__ == "__main__": demo.launch()