SaaS-FrameWork
Reusable SaaS UI components for Flet: a versioned design system with 75 catalogued components — buttons, inputs, navigation, data tables and tree views, charts, overlays and dialogs, feedback, media and responsive layout — plus accessible color themes and a navigable component catalog.
Install
pip install SaaS-FrameWork
For web deployments, install the web extra:
pip install "SaaS-FrameWork[web]"
Quickstart
import flet as ft
from components import DEx_BtnPrimary, DEx_MetricCard, DEx_Notify, DEx_TextField
def main(page: ft.Page) -> None:
page.title = "Hello SaaS-FrameWork"
name = DEx_TextField(label="Your name", hint="Type and press the button")
page.add(
DEx_MetricCard(label="Active users", value="1,024", delta="+12%"),
name,
DEx_BtnPrimary("Greet", on_click=lambda e: DEx_Notify(page, f"Hello, {name.value}!")),
)
ft.app(main)
Save as hello.py and run:
python hello.py
Every public component is importable straight from components
(from components import DEx_DataTable, DEx_AppShell, ...).
Compatibility
| Requirement | Version |
|---|---|
| Python | >= 3.13 |
| Flet | == 0.84.0 (pinned) |
The Flet dependency is intentionally pinned: Flet's API still moves between releases, so upgrades only land here after the project's upgrade policy revalidates all 70 use cases against the candidate version. Installing this package therefore also pins your app's Flet version.
Component catalog
Browse every component, its use case, parameters and source in the live catalog:
- Online: https://saas-framework-catalog.onrender.com
- Local (from the repository):
flet run catalog/catalog.py
The catalog has global search, maturity filters and a responsive layout, and is audited for accessibility (WCAG AA contrast, keyboard navigation).
Versioning and maturity
The project is pre-1.0: APIs may still change between minor releases. Each component
declares its own COMPONENT_VERSION and the catalog groups them into maturity bands —
Experimental (0.0.x), Evolving (0.1.x+) and Stable (1.x+). Every component change that
touches behaviour is required (and enforced by the test suite, locally and in CI) to bump
the component version; docstring, comment and formatting-only changes are exempt. The version
header of each component's .md is checked against COMPONENT_VERSION as well. Release
history lives in CHANGELOG.md.
Feedback
Bug reports, questions and suggestions: https://github.com/DEx-SaaS/FrameWork/issues
Development
Contributor documentation — folder structure, naming conventions, versioning rules, test suite and the component contract — lives in CONTRIBUTING.md.
License
MIT.
Metadata
Release files for SaaS-FrameWork 0.1.21
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| saas_framework-0.1.21.tar.gz | 104.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| saas_framework-0.1.21-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 247.8 kB
Release files / saas_framework-0.1.21.tar.gz
| Download URL | saas_framework-0.1.21.tar.gz |
|---|---|
| Size | 104.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ddc3a0f4eb7cd601dcefdfd762896f1e13ac92528522a51e455a1638d2bc81e3
|
|
BLAKE2b-256 checksum How to use checksums |
7aa2894d9eb962d7a6c30c7e64be2b429fc90cba11beb7f2382574cc5e1a95d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.13
|
Release files / saas_framework-0.1.21-py3-none-any.whl
| Download URL | saas_framework-0.1.21-py3-none-any.whl |
|---|---|
| Size | 143.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0991c6d1063115f794b18bdce0de812dd201b348dadc5a6077dd69844cf6e2b7
|
|
BLAKE2b-256 checksum How to use checksums |
554a2beadcff89c8603833b3e1efa3477384f4782b23fbb7472e95623cdfe6f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.13
|