Smarty UI
A UI components framework for building DivKit widgets for Smarty, aligned with the Smartbank Figma design system.
Overview
Smarty UI provides a layered component architecture built on top of pydivkit:
- Tokens - Design system values (colors, typography, spacing)
- Primitives - Basic UI atoms (text, buttons, images, dividers)
- Composites - Reusable molecules (badges, input fields, status bubbles)
- Blocks - Complete UI patterns (cards, lists, widgets)
Installation
pip install -e .
Quick Start
import pydivkit as dk
from smart_ui import (
# Layout helpers
HStack, VStack,
# Primitives
title_1, text_1, primary_button, smarty_button,
# Blocks
transaction_success_widget, payment_status_widget,
home_balance_widget,
# Theme
default_theme,
)
# Create a simple card
card = VStack(
[
title_1("Hello, Smarty!"),
text_1("Welcome to the UI framework."),
primary_button("Get Started", action_url="div-action://start"),
],
gap=12,
padding=16,
background="#FFFFFF",
corner_radius=12,
)
# Create a transaction status widget
widget = transaction_success_widget(
amount="200 000",
recipient="ALEKSANDR GURYANOV ** 2221",
date_time="3 сентября 2023 18:27",
)
Components
Layout Helpers
# Horizontal stack (row)
HStack([item1, item2, item3], gap=8, align_v="center")
# Vertical stack (column)
VStack([header, content, footer], gap=12, align_h="left", padding=16)
Primitives
| Component | Description |
|---|---|
title_1, title_2 |
Heading text styles |
text_1, text_2, text_3 |
Body text styles |
caption_1, caption_2, caption_3 |
Small text styles |
primary_button, secondary_button |
Button variants |
outline_button, smarty_button |
Outline button styles |
icon, avatar, cover_image |
Image components |
divider, h_spacer, v_spacer |
Layout utilities |
Composites
| Component | Description |
|---|---|
status_bubble |
Transaction/payment status display |
chat_bubble |
Chat message bubbles |
badge, outline_badge |
Label badges |
icon_label |
Icon + text pair |
input_field |
Text input field |
card_balance_item |
Card balance row |
Blocks
| Component | Description |
|---|---|
transaction_success_widget |
Successful transfer status |
transaction_failed_widget |
Failed transfer status |
transaction_pending_widget |
Pending transfer status |
payment_success_widget |
Successful payment status |
payment_failed_widget |
Failed payment status |
payment_pending_widget |
Pending payment status |
home_balance_widget |
Utility balances widget |
balance_widget |
Card/account balances |
bank_card |
Bank card display |
service_list |
Service categories list |
contacts_list |
Contact list |
Theming
from smart_ui import default_theme, dark_theme, Theme, ColorTokens
# Use default Smartbank theme
widget = balance_widget(total_balance="1 000 000", theme=default_theme)
# Use dark theme
widget = balance_widget(total_balance="1 000 000", theme=dark_theme)
# Create custom theme
custom_theme = Theme(
colors=ColorTokens(
primary="#FF5722",
background="#FAFAFA",
)
)
Project Structure
src/smart_ui/
├── tokens/ # Design tokens
│ ├── colors.py # Color palette
│ ├── typography.py # Font styles
│ └── spacing.py # Spacing scale
├── primitives/ # Basic UI atoms
│ ├── text.py # Text components
│ ├── button.py # Button variants
│ ├── image.py # Image components
│ └── smarty_button.py
├── composites/ # Reusable molecules
│ ├── status_bubble.py
│ ├── chat_bubble.py
│ └── ...
├── blocks/ # Complete UI patterns
│ ├── transaction_status_widget.py
│ ├── payment_status_widget.py
│ ├── home_balance_widget.py
│ └── ...
└── _helpers.py # Layout utilities (HStack, VStack)
License
Internal use only.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
smarty_ui-0.1.2.tar.gz
(100.7 kB
view details)
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
smarty_ui-0.1.2-py3-none-any.whl
(162.1 kB
view details)
File details
Details for the file smarty_ui-0.1.2.tar.gz.
File metadata
- Download URL: smarty_ui-0.1.2.tar.gz
- Upload date:
- Size: 100.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
poetry/2.0.1 CPython/3.13.3 Linux/6.12.9-200.fc41.x86_64
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09297539ee553a8716df860666b19afc8013dbd6770da5ea1fc6797516a6fb44
|
|
| MD5 |
f21dc7b064a5d3b0a0ac89c31d0d732a
|
|
| BLAKE2b-256 |
625ee3cbcd987febdf9592aa19a31c0c0b571221c6bae56c4210f9d1811dd5cd
|
File details
Details for the file smarty_ui-0.1.2-py3-none-any.whl.
File metadata
- Download URL: smarty_ui-0.1.2-py3-none-any.whl
- Upload date:
- Size: 162.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
poetry/2.0.1 CPython/3.13.3 Linux/6.12.9-200.fc41.x86_64
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0deb03c916b76ce3b6d9497b1a057796282b145b0a3606c60d08818b99d3fbf8
|
|
| MD5 |
2c66d3152cef2c7534beb7010a74d157
|
|
| BLAKE2b-256 |
3387f46fc575c1b6c46083bb9134bf4b051bd946b2188a0ea2a3a3832078bc71
|