Streamlit
1 Introduction to Streamlit
1.1 What is Streamlit?
1.2 Why use Streamlit?
1.3 Setting up the environment
1.4 Creating your first Streamlit app
2 Basic Components
2.1 Text elements
2.1 1 Displaying text
2.1 2 Formatting text
2.2 Data display elements
2.2 1 Displaying data frames
2.2 2 Displaying tables
2.3 Input widgets
2.3 1 Text input
2.3 2 Number input
2.3 3 Date input
2.3 4 Dropdown selection
2.3 5 Slider
2.3 6 Checkbox
2.3 7 Radio buttons
2.3 8 Buttons
3 Advanced Components
3.1 Interactive widgets
3.1 1 Multiselect
3.1 2 File uploader
3.1 3 Color picker
3.2 Media elements
3.2 1 Displaying images
3.2 2 Displaying videos
3.2 3 Displaying audio
3.3 Chart elements
3.3 1 Line chart
3.3 2 Bar chart
3.3 3 Area chart
3.3 4 Scatter chart
3.3 5 Map chart
4 Layout and Styling
4.1 Layout components
4.1 1 Columns
4.1 2 Tabs
4.1 3 Expander
4.2 Styling elements
4.2 1 Custom CSS
4.2 2 Theming
4.2 3 Adding custom fonts
5 State Management
5.1 Session state
5.1 1 Managing state across reruns
5.1 2 Persisting state
5.2 Caching
5.2 1 Caching functions
5.2 2 Caching data
6 Deployment
6.1 Deploying to Streamlit Sharing
6.1 1 Setting up Streamlit Sharing
6.1 2 Deploying your app
6.2 Deploying to other platforms
6.2 1 Deploying to Heroku
6.2 2 Deploying to AWS
6.2 3 Deploying to Google Cloud
7 Best Practices
7.1 Writing clean and maintainable code
7.2 Optimizing performance
7.3 Handling errors and exceptions
7.4 Version control with Git
8 Advanced Topics
8.1 Integrating with other libraries
8.1 1 Integrating with Pandas
8.1 2 Integrating with Plotly
8.1 3 Integrating with TensorFlow
8.2 Building complex apps
8.2 1 Creating multi-page apps
8.2 2 Handling authentication
8.2 3 Building interactive dashboards
8.3 Custom components
8.3 1 Creating custom widgets
8.3 2 Extending Streamlit with custom components
9 Case Studies
9.1 Building a data exploration app
9.2 Building a machine learning model deployment app
9.3 Building a real-time data visualization app
4 2 Styling Elements Explained

2 Styling Elements Explained

Key Concepts

CSS Integration

CSS (Cascading Style Sheets) can be integrated into Streamlit apps to control the layout and appearance of elements. This can be done by creating a CSS file and linking it to your Streamlit app using the st.markdown function.

Example:

<link rel="stylesheet" href="styles.css">
    

Themes

Streamlit allows you to customize the appearance of your app using themes. Themes control the overall look and feel, including colors, fonts, and spacing. You can define a theme in a configuration file or directly in your Streamlit script.

Example:

[theme]
primaryColor="#ff4b4b"
backgroundColor="#ffffff"
secondaryBackgroundColor="#f0f2f6"
textColor="#31333f"
font="sans serif"
    

Inline Styling

Inline styling involves applying styles directly to individual elements using the style attribute. This method is useful for quick adjustments and can be combined with other styling methods.

Example:

<div style="color: blue; font-size: 20px;">This is a styled text.</div>
    

Custom Fonts and Colors

Custom fonts and colors can significantly enhance the visual appeal of your Streamlit app. You can use web fonts from services like Google Fonts and apply custom colors using CSS variables or inline styles.

Example:

<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">
<style>
body {
    font-family: 'Roboto', sans-serif;
    color: #333;
}
</style>
    

Analogies

Think of CSS integration as the blueprint for your house, where each room (element) is designed according to the blueprint. Themes are like the overall architectural style, while inline styling is like adding decorative elements to individual rooms. Custom fonts and colors are like choosing the right paint and furniture to make the house look unique and appealing.

By mastering these styling elements, you can create visually appealing and user-friendly Streamlit applications that stand out.