import streamlit as st
from htbuilder import HtmlElement, a, div, img, p, styles
from htbuilder.units import percent, px
from streamlit.components.v1 import html
def image(src_as_string, **style):
return img(src=src_as_string, style=styles(**style))
def link(link, text, **style):
return a(_href=link, _target="_blank", style=styles(**style))(text)
def layout(*args):
style = """
"""
style_div = styles(
position="fixed",
left=0,
bottom=0,
margin=px(0, 0, 0, 0),
width=percent(100),
color="black",
text_align="center",
height="auto",
opacity=1,
align_items="center",
flex_direction="column",
display="flex",
)
body = p(
id="myFooter",
style=styles(
margin=px(0, 0, 0, 0),
padding=px(5),
font_size="0.9rem",
color="rgb(51,51,51)",
font_family="Exo",
),
)
foot = div(style=style_div)(body)
st.markdown(style, unsafe_allow_html=True)
for arg in args:
if isinstance(arg, str) or isinstance(arg, HtmlElement):
body(arg)
st.markdown(str(foot), unsafe_allow_html=True)
js_code = """
"""
html(js_code)
def footer():
myargs = [
"Made in 🇮🇹 with ",
link(
"https://streamlit.io/",
image("https://streamlit.io/images/brand/streamlit-mark-color.png", width="18px"),
),
" by ",
link("https://fabiogra.com", "@fabiogra"),
" ",
link(
"https://www.buymeacoffee.com/fabiogra",
image("https://i.imgur.com/YFu6MMA.png", margin="0em", align="top", width="130px"),
),
]
layout(*myargs)