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 3 Adding Custom Fonts Explained

2 3 Adding Custom Fonts Explained

Key Concepts

Explanation

1. Custom Fonts

Custom fonts are fonts that are not part of the default system fonts available on a user's device. These fonts can be used to enhance the visual appeal and uniqueness of your Streamlit application.

2. Font Embedding

Font embedding involves including custom fonts in your web application. This can be done using CSS by linking to external font files or by using web font services like Google Fonts.

3. Font Families

Font families are groups of fonts that share common characteristics, such as serif, sans-serif, or monospace. By specifying a font family, you can ensure that your text will be displayed in a consistent style across different devices.

4. Font Sources

Font sources are where you can find and download custom fonts. Popular sources include Google Fonts, Adobe Fonts, and various font foundries.

Examples

Example 1: Using Google Fonts

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

Example 2: Embedding Custom Font Files

<style>
    @font-face {
        font-family: 'CustomFont';
        src: url('fonts/CustomFont.woff2') format('woff2'),
             url('fonts/CustomFont.woff') format('woff');
        font-weight: normal;
        font-style: normal;
    }
    body {
        font-family: 'CustomFont', sans-serif;
    }
</style>
    

Analogies

Think of custom fonts as unique paint colors for your walls. Just as you might choose a specific color to match your decor, you can choose a custom font to match the style of your Streamlit application. Font embedding is like applying the paint to your walls, ensuring that the color is consistent throughout. Font families are like different paint finishes, such as matte or glossy, that give your text a specific look and feel.

By mastering the addition of custom fonts in Streamlit, you can create visually appealing and personalized web applications that stand out from the crowd.