import streamlit as st from streamlit_extras.stylable_container import stylable_container import numpy as np # Configuration de la page Streamlit st.set_page_config( page_title="Calculateur d'IMC Professionnel", page_icon="⚖️", layout="wide", initial_sidebar_state="collapsed", ) # CSS personnalisé pour améliorer le design st.markdown( """ """, unsafe_allow_html=True, ) with stylable_container(key="main_container", css_styles=""" { padding: 2rem; border-radius: 10px; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); background-color: rgba(255, 255, 255, 0.8); } """): st.title("⚖️ Calculateur d'Indice de Masse Corporelle (IMC)") st.write("Entrez votre taille et votre poids pour calculer votre IMC.") # Utilisation de colonnes pour un agencement plus esthétique col1, col2 = st.columns(2) with col1: taille = st.number_input("📏 Taille (en mètres)", min_value=0.5, max_value=2.5, step=0.01, format="%.2f") with col2: poids = st.number_input("🏋️ Poids (en kilogrammes)", min_value=20.0, max_value=200.0, step=0.1, format="%.1f") if st.button("🧮 Calculer l'IMC"): if taille > 0: imc = poids / (taille ** 2) st.subheader("📊 Résultat de l'IMC") st.write(f"Votre IMC est de : **{imc:.2f}**") # Définir la catégorie d'IMC et la classe de couleur if imc < 18.5: categorie = "Insuffisance pondérale" couleur_classe = "color-insuffisant" elif 18.5 <= imc < 25: categorie = "Poids normal" couleur_classe = "color-normal" elif 25 <= imc < 30: categorie = "Surpoids" couleur_classe = "color-surpoids" else: categorie = "Obésité" couleur_classe = "color-obese" st.markdown(f"