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!
- llms.txt: Links to what is included
- llms-ctx.txt: MonsterUI Documentation Pages
- API list: API list for MonsterUI (included in llms-ctx.txt)
- llms-ctx-full.txt: Full context that includes all api reference pages as markdown
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:
- Start by importing the modules as follows:
from fasthtml.common import *
from monsterui.all import *
- Instantiate the app with the MonsterUI headers
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:
- MonsterUI documentation page and Tutorial app
- Isaac & Hamel : Building his website’s team page
- Isaac & Audrey : Building a blog
- Isaac : Building a blog
More resources and improvements to the documentation will be added here soon!