PyLay

An iOS-inspired UI framework for pygame. PyLay provides a hierarchical widget tree, spring-based physics animations, reactive state management, and a complete iOS-style theming system — built entirely on top of pygame without any external UI toolkit.

PyLay powers the entire Pianove interface and is independently usable in any pygame application. It ships with 29 widgets, a page router with animated transitions, and a layout engine that scales to any window size.

Importfrom pylay import *
Python3.10 +
Dependencypygame (Pillow optional)
Widgets29 built-in components
ThemingDark + light, iOS palette
LicenseGPL v3
PyLay Controls tab — buttons, segmented control, badges, stepper
Controls — Button, Switch, SegmentedControl, Stepper, Badge
PyLay Forms tab — sliders, switches, checkboxes, radio buttons
Forms — TextField, Slider, ProgressBar, Switch, Checkbox, RadioButton
PyLay Lists tab — avatars, list items with dividers, slide reveal, empty state
Lists — Avatar, ListItem, Divider, SlideReveal, EmptyState
PyLay Display tab — progress rings, line charts, option selector
Display — ProgressRing, LineChart, OptionSelector
PyLay Extras tab — material icons, emoji icons, file picker, code viewer
Extras — Icon, EmojiIcon, FilePicker, CodeViewer