KivyMD
KivyMD copied to clipboard
✓ KivyMD. TODO List
TODO List
This is the list that contains all ideas about KivyMD. Please create issues with feature description if you really need it.
KivyMD library - components
kivymd/KivyMD
repository
- [x] Labels
- [x] MDLabel
- [x] MDIcon
- [x] Support for using standard sizes (like 32x, 48x)
- [x] Support for images inside MDIcon widget
- [ ] Animation for icon changes
- [x] Buttons
- Material Design spec, Buttons
- Material Design spec, Buttons: floating action button
- [x] Can we join all MD* buttons to one MDButton class?
- May be use
type
property for different styles
- May be use
- [x] Text fields
- Material Design spec, Text fields
- [x] Type: line
- [x] Type: filled
- [x] Round
- Can we join MDTextFieldRound with MDTextField to use
type
property for changing style?
- Can we join MDTextFieldRound with MDTextField to use
- [x] Round
- [x] Type: outlined
- [x] Selection controls
- [x] Checkbox
- [x] Make animation of checking/unchecking more like in specification
- [x] Radio button
- [x] Switch
- [x] Checkbox
- [x] Cards
- Material Design spec, Cards
- [x] Elevation on hover
- [x] Button behavior with ripple
- [ ] Search
- [x] Chips
- [x] Dialogs
- [x] Dividers
- [x] Data tables
- Material Design spec, Data tables
- https://gitlab.com/zuhaib/KivyMD/tree/feature/DataTable
- [x] Image lists
- [x] Lists
- [x] Menus
- [x] Navigation drawer
- [x] Pickers
- [x] Progress indicators
- [x] App bars
- [x] Navigation bar
- [x] Sheets
- [x] Sliders
- [x] Snackbars
- [x] Tabs
- [x] Tooltips
- Material Design spec, Tooltips
- [x] Direction of the tooltip (left/top/right/bottom)
- [x] Time delay before showing tooltip
- [x] Feature to show tooltip by function call, not by hover
KivyMD library - modules
- [x] App
- MDApp class that has theme manager object
- [x] Toast
- [x] Theming
- [x] Theme class
- Fast theme changing
- [x] Theme class
- [ ] Navigation
- Material Design spec, Understanding navigation
- Material Design spec, Navigation transitions
- [ ] Function in MDApp that can automatically set animation of transition between screens (that depend on position of previous and next screen in the screen tree
Automation
- [x] Auto formatting with Black
- [x] Checking formatting via GitHub Actions
- [x] Script for making release
- [x] Auto deploying to PyPI
- [ ] Signing packages published to PyPI
- [ ] Signing demos binaries
- [ ] Publish demos to Play Store (autopublishing)
- [ ] Tests for main modules
- [ ] Tests for demos
- [ ] Generation videos (gifs) and screenshots for documentation
Demos
- [x] Make studies as individual demos
- [ ] Test mode for Kitchen Sink demo (runs all demo widgets)
- [x] Add Readme for each app
Documentation
- [x] Make one-style documentation for all modules
- [x] Generating documentation for GitHub pages
- [ ] Documentation standards for KivyMD Extensions
- [ ] Documentation for developers
KivyMD Website
kivymd/website
repository
- [ ] Collect all documentation (KivyMD, KivyMD Extensions) into one website
- [ ] Buy domain
- [ ] Publish development documentaion in
dev
subdomain - [ ] Publish public keys in
keys
subdomain - [ ] Make documentation using Material-UI (example)
- [ ] Connect translation system
- [ ] Make documentation as pdf
- [ ] Page with statistics
- Website pages views
- KivyMD library installs, downloads, clones
- Extensions statistics
- Discord server statistics
- Other statistics
- [ ] Badges:
kivymd-official
,kivymd-internal
,kivymd-extensions
,kivymd-unofficial
- Page where listed all projects with these badges
- [ ] Page with all links related to KivyMD
KivyMD Extensions
kivymd-extensions
organization,
kivymd-extensions/KivyMD_Extensions
repository,
kivymd-extensions/extension_template
repository
- [ ] Workflow to check package structure
- Don't allow to edit
kivymd_extensions/__init__.py
file - Check that there is
__version__
in__init__.py
- Don't allow to edit
- [ ] Documentation for developers
KivyMD Template
kivymd/KivyMD_Template
repository
- [ ] Create KivyMD_Template utility - generator for new apps/packages/extensions
- [ ] Create KivyMD_Template_Sample repository - template repository that user can just clone
- [ ] Command line interface (CLI)
- [ ] Graphical interface (GUI)
- [ ] Show list of commands that utility will run
- [ ] Show resulting file structure (before real creation)
Features:
- [ ] Setup settings
- PyCharm settings (
.idea
directory) - Git (
.gitignore
,.gitattributes
, pre-commit), branches - Tools: autoformatters, linters
- Packaging tools (Buildozer, PyInstaller)
- CI (GitHub Actions)
- PyCharm settings (
- [ ] Create screens
- [ ] Create asynchronous classes: connection with API (asynchronous loading),
- [ ] Customize theme
KivyMD Bot
kivymd/kivymd_bot
repository
GitHub:
- [ ] Welcoming new contributors
- [ ] Pushing binaries, build website to kivymd/storage repository
- [ ] Pull request status in second comment
- [ ] Autolabeling, autoclosing, autolocking, autoassigning
- [ ] Storing keys, signing packages, posting packages to PyPI
- [ ] Marking donaters/sponsors
- [ ] Autohide private, illegal or spam messages
- [ ] Contacting sponsors to notify about their privileges
- [ ] Synchronizing labels among all KivyMD repositories
Discord:
- [ ] Welcoming new members (in direct message)
- [ ] Controlling rules
- Duplicate messages
- [ ] Commands
- Quick search in documentation
- Instructions
- [ ] Posting GitHub updates
- Edit message when comment has been edited on GitHub
- Edit message with pull request status
- [ ] Autosetting roles (sponsors/extensions developers)
- [ ] Posting announcements about new releases
Development workflow
- [ ] Development in
dev
branch, latest release inmain
branch - [x] Structured labels
- Scope: uix, tests, theming
- Type: bug, enhancement; for KivyMD Extensions: new extension, extension request
- Platform: android, ios, windows, linux, mac
- Resolution: fixed, won't fix, rejected (for feature requests), out of date (already fixed in dev), duplicate, invalid
- Priority: critical, high, normal, low
- Bounty: has bounty; amount
- Sponsoring level: donator, backer, gold sponsor
- [ ] Milestones
- New releases
- Large features
- [ ] Projects
Sponsoring
kivymd
collective on OpenCollective
- [ ] Accepting cryptocurrency donations
- [ ] Automate bounty setting (if somebody sent a donation with message - issue id)
Design
- [x] New color from Material palette that will be used for all our design
- [ ] New logo that fits Material style and can be exported as .svg
- KivyMD
- KivyMD Extensions
- KivyMD Template
- KivyMD Collection
- KivyMD Bot
- Social preview
Other
- [ ] Rebase KivyMD repository
- Include old commits (currently all commits from older repositories are squashed into one)
- Remove large files (replace them with empty file), decrease repository size
- Fix commits author if there were any mistakes