ui-ux-design-assistant / frontend.py
Liam
as
38392db
import streamlit as st
from app import generate_response
# Title and Description
st.title("UI/UX Design Assistant Chatbot")
st.markdown(
"""
Welcome to the **UI/UX Design Assistant**! 🎨
This AI chatbot helps you:
- Create actionable design suggestions
- Generate visual templates
- Provide Figma-ready designs
Fill in the details below to get started!
"""
)
# User Inputs
task = st.text_input("Describe your design task (e.g., 'landing page design')", key="task_input")
style = st.selectbox(
"Select a design style:",
["modern minimalist", "vintage", "playful", "corporate", "futuristic"],
key="style_select"
)
requirements = st.text_area("Enter specific functional requirements (optional):", key="requirements_input")
# Generate Button
if st.button("Generate Design", key="generate_button"):
# Check if required fields are filled
if not task.strip():
st.error("⚠️ Please provide a design task before generating.")
else:
with st.spinner("Generating your design... πŸš€"):
try:
# Generate response
response = generate_response(task.strip(), style, requirements.strip())
# Display Textual Suggestions
st.subheader("πŸ’‘ Textual Suggestions:")
if response.get("text"):
st.write(response["text"])
else:
st.warning("⚠️ No textual suggestions generated. Please refine your input and try again.")
# Display Visual Template
st.subheader("πŸ–ΌοΈ Visual Template:")
if response.get("visual_template") and "Error" not in response["visual_template"]:
st.image(response["visual_template"], caption="Generated Visual Template")
else:
st.warning("⚠️ No visual template available or an error occurred.")
# Display Figma Template Link
st.subheader("πŸ“ Figma Template:")
if response.get("figma_template") and "Error" not in response["figma_template"]:
st.write(f"[View Template in Figma]({response['figma_template']})")
else:
st.warning("⚠️ No Figma template available or an error occurred.")
except Exception as e:
st.error(f"❌ An error occurred while generating the design: {e}")
# Footer
st.markdown("---")
st.markdown("πŸ’‘ **Tip**: Ensure your inputs are clear and concise for the best results.")