Insert HTML into your app.

Adding custom HTML to your app impacts safety, styling, and maintainability. We sanitize HTML with DOMPurify, but inserting HTML remains a developer risk. Passing untrusted code to st.html or dynamically loading external code can increase the risk of vulnerabilities in your app.

st.html content is not iframed. Executing JavaScript is not supported at this time.

Function signature[source]

st.html(body)

Parameters

body (any)

The HTML code to insert. This can be one of the following:

  • A string of HTML code.
  • A path to a local file with HTML code. The path can be a str or Path object. Paths can be absolute or relative to the working directory (where you execute streamlit run).
  • Any object. If body is not a string or path, Streamlit will convert the object to a string. body._repr_html_() takes precedence over str(body) when available.

Example

import streamlit as st

st.html(
    "<p><span style='text-decoration: line-through double red;'>Oops</span>!</p>"
)
forum

Still have questions?

Our forums are full of helpful information and Streamlit experts.