A Material Design 3 component library built on top of Flet (Python/Flutter)
Project description
DE-DesignSystem
Material Design 3 component library for Python + Flet
Python 3.10+ · Flet 0.28.3+ · 20 components · 21 token families · 5 themes
Copyright © 2026 Almir J Gomes. Todos os direitos reservados.
Autor: Almir J Gomes · almir.jg@hotmail.com · Criado em: 03/2026
Installation
pip install DE-DesignSystem
Quick Start
import flet as ft
from flet_ds import DS_AppShell, DS_KPICard, DS_Button, SidebarItem
from flet_ds import TK_AppShellTokens, TK_KPICardTokens, TK_ButtonTokens
def main(page: ft.Page):
shell = DS_AppShell(
title="Data Platform",
subtitle="Pipeline Monitor",
icon=ft.Icons.STORAGE,
token=TK_AppShellTokens.default,
items=[
SidebarItem(label="Dashboard", icon=ft.Icons.DASHBOARD),
SidebarItem(label="Pipelines", icon=ft.Icons.SYNC_ALT),
],
content=ft.Column([
DS_KPICard(
title="Active Pipelines",
value="248",
variation=12.5,
trend="up",
icon=ft.Icons.SYNC_ALT,
token=TK_KPICardTokens.default,
),
DS_Button(
label="Run Pipeline",
icon=ft.Icons.PLAY_ARROW,
token=TK_ButtonTokens.filled,
),
]),
)
page.add(shell)
ft.app(target=main)
Components
| # | Component | Description |
|---|---|---|
| 1 | DS_Text |
Typed text with MD3 typography scale |
| 2 | DS_TextField |
Input with normal / readonly / required states |
| 3 | DS_Dropdown |
Select with icons per option |
| 4 | DS_Button |
5 variants: filled, outlined, text, tonal, danger |
| 5 | DS_Checkbox |
Checkbox with color variants |
| 6 | DS_RadioGroup |
Radio group with label |
| 7 | DS_Header |
Page header with search and action buttons |
| 8 | DS_Search |
Standalone search field |
| 9 | DS_Card |
Content card with header, body, footer |
| 10 | DS_KPICard |
Metric card with trend and variation |
| 11 | DS_Alert |
Inline alert banner (info/success/warning/error) |
| 12 | DS_Stepper |
Wizard stepper (horizontal/vertical) |
| 13 | DS_Toast |
Ephemeral notification (static method) |
| 14 | DS_Tabs |
Tab switcher with content panels |
| 15 | DS_StatusChip |
Status badge (running/done/failed/pending) |
| 16 | DS_Timeline |
Vertical event timeline |
| 17 | DS_Modal |
Dialog/modal with actions |
| 18 | DS_Table |
Data grid with sorting and row selection |
| 19 | DS_Sidebar |
Collapsible sidebar (expanded / icons-only) |
| 20 | DS_AppShell |
Full layout shell (sidebar + header + content) |
Themes
from flet_ds import DS_ThemeManager
tm = DS_ThemeManager.get()
tm.apply(page, "dark") # default | light | dark | demi_dark | system
tm.cycle(page) # cycle through all themes
Token System
Every visual property is controlled by an immutable @dataclass(frozen=True) token.
from flet_ds import DS_Button, TK_ButtonTokens
DS_Button(label="Save", token=TK_ButtonTokens.filled)
DS_Button(label="Delete", token=TK_ButtonTokens.danger)
Documentation
See Docs/design_system.md for the full technical reference.
License
MIT — Copyright © 2026 Almir J Gomes · almir.jg@hotmail.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file de_designsystem-0.0.0.tar.gz.
File metadata
- Download URL: de_designsystem-0.0.0.tar.gz
- Upload date:
- Size: 31.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d43c13e9c1247da296ccecfbe64f0cff251c39b4a9ab01a03a5555ad3bd969e
|
|
| MD5 |
b1be9349dbf2ff6da0da772400511baa
|
|
| BLAKE2b-256 |
6dfaaad6babe025343e2114fb32672b12f6f527a2facc4804cd031877eab0486
|
File details
Details for the file de_designsystem-0.0.0-py3-none-any.whl.
File metadata
- Download URL: de_designsystem-0.0.0-py3-none-any.whl
- Upload date:
- Size: 62.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c06bb2735c9ac59542bfeb12a8e4aa891636473ef16434ddf21fdc6b1ff4b024
|
|
| MD5 |
6e7987683427f2870e0db227fc86893f
|
|
| BLAKE2b-256 |
46287242eded5dbbc2f460c195a96f8fe472fcbce64e319fe4ccc189ae287440
|