|
import streamlit as st |
|
from htbuilder import HtmlElement, div, a, p, img, styles |
|
from htbuilder.units import percent, px |
|
|
|
|
|
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> |
|
# MainMenu {visibility: hidden;} |
|
footer {visibility: hidden;} |
|
.stApp { bottom: 40px; } |
|
.st-emotion-cache-139wi93 { |
|
width: 100%; |
|
padding: 1rem 1rem 15px; |
|
max-width: 46rem; |
|
} |
|
</style> |
|
""" |
|
|
|
style_div = styles( |
|
position="fixed", |
|
left=0, |
|
bottom=0, |
|
margin=px(0, 0, 0, 0), |
|
width=percent(100), |
|
color="white", |
|
text_align="center", |
|
height="auto", |
|
opacity=1 |
|
) |
|
|
|
body = p() |
|
foot = div( |
|
style=style_div |
|
)( |
|
body |
|
) |
|
|
|
st.markdown(style, unsafe_allow_html=True) |
|
|
|
for arg in args: |
|
if isinstance(arg, str): |
|
body(arg) |
|
|
|
elif isinstance(arg, HtmlElement): |
|
body(arg) |
|
|
|
st.markdown(str(foot), unsafe_allow_html=True) |
|
|
|
|
|
def footer(): |
|
myargs = [ |
|
"Made with ❤️ by Nikhil, Mihir, Nilay", |
|
] |
|
layout(*myargs) |
|
|
|
|
|
if __name__ == "__main__": |
|
footer() |