MonsterUI is a UI framework for FastHTML for building beautiful web interfaces with minimal code. It combines the simplicity of Python with the power of Tailwind. Perfect for data scientists, ML engineers, and developers who want to quickly turn their Python code into polished web apps without the complexity of traditional UI frameworks. Follows semantic HTML patterns when possible.
MonsterUI adds the following Tailwind-based libraries Franken UI and DaisyUI to FastHTML, as well as Python's Mistletoe for Markdown, HighlightJS for code highlighting, and Katex for latex support.
To install this library, uses
pip install MonsterUI
Run python file.py
on this to start:
from fasthtml.common import *
from monsterui.all import *
# Choose a theme color (blue, green, red, etc)
hdrs = Theme.blue.headers()
# Create your app with the theme
app, rt = fast_app(hdrs=hdrs)
@rt
def index():
socials = (('github','https://github.com/AnswerDotAI/MonsterUI'),
('twitter','https://twitter.com/isaac_flath/'),
('linkedin','https://www.linkedin.com/in/isaacflath/'))
return Titled("Your First App",
Card(
H1("Welcome!"),
P("Your first MonsterUI app", cls=TextPresets.muted_sm),
P("I'm excited to see what you build with MonsterUI!"),
footer=DivLAligned(*[UkIconLink(icon,href=url) for icon,url in socials])))
serve()
Using LLMs for development is a best practice way to get started and
explore. While LLMs cannot code for you, they can be helpful assistants.
You must check, refactor, test, and vet any code any LLM generates for
you - but they are helpful productivity tools. Take a look inside the
llms.txt
file to see links to particularly useful context files!
In addition you can add /md
(for markdown) to a url to get a markdown representation and /rmd
for rendered markdown representation (nice for looking to see what would be put into context.
To get started, check out:
from fasthtml.common import *
from monsterui.all import *
app = FastHTML(hdrs=Theme.blue.headers())
# Alternatively, using the fast_app method
app, rt = fast_app(hdrs=Theme.slate.headers())
The color option can be any of the theme options available out of the box
From here, you can explore the API Reference & examples to see how to implement the components. You can also check out these demo videos to as a quick start guide:
More resources and improvements to the documentation will be added here soon!