A color palette from Flutter's predefined material colors. Yes, yet another color palette.
Few demo gifs are here: media/demos
Also there is available web version: https://nek-ra.github.io/flutter_material_palette/
P.S.: It's available because Flutter can provide web output while all project dependecies have web support.
I'm using this project to learn Flutter and few related packages. That's why something may be wrong, incorrect and so on. If you found any problem or have advices how to improve app - welcome to issues :)
IMPORTANT: App not yet optimized for wide screens!
For android device you can use Google Play or Github Releases.
While Google Play uses AppBundle files (result is split-apk on device), Github Releases contain standard apk files for ARMv7 (32-bit), ARMv8a (64-bit) and x86_64 (64-bit).
Flutter supported only 64-bit Windows 7+, and now app didn't published to MS Store or anywhere else.
ZIP archive with app is provided in Github Releases. ZIP file also contain shortcut to %appdata%\https___nek-ra.github.io
- here will be folder Material Palette
with file shared_preferences.json
, where stored all settings of the app.
Unzipped folder with all app files weights about 22MB.
Project was built on Linux Mint 20.1 (Cinnamon desktop).
AppImage package was added to Github Releases at 12th November of 2021. Currently I don't plan to package it into other formats. If you wish more package formats - welcome to issues :)
Also I added archive with binaries (as is, not packaged) to Github Releases. It is a tar.gz
archive. Inside it contain built project and a README.txt
where described location of settings file ($HOME/.local/share/flutter_material_palette
) as well as required libraries, which are:
- libgtk-3-0
- libblkid1
- liblzma5
For Debian based distros install them by
sudo apt install libgtk-3-0 libblkid1 liblzma5
Notice: They're required by any Flutter project. Look here - https://flutter.dev/desktop#linux
- App has 2 screens - the palette screen where shown all base colors predefined in Flutter (from red to blueGrey).
- App works with shared_preferences package to store few settings.
- auto_route package used to simplify usage of navigation and routing mechanism 2.0
- App's state currently includes 3 bool values:
- if palette page should be displayed as list or grid
- if shades page should be displayed as list or grid
- if app theme is dark or light
- App's state is managed with flutter_bloc package by using single Cubit for 3 bool values described above.
-
Copy HEX value of color when pressing concrete shadeDone, showing 3sec snackbar notification after copying -
Add "Settings" page with switches for settingsDone, "Settings" screen can be opened from colors screen by settings button in the app bar -
Check if grid with 3 columns will work nice. If yes, then add ability to increase columns count in settingsDone, in settings can be changed by slider. Now values limited between 2 and 3 -
Add "About" page or probably add such section into settingsDone, "About" added into "Settings" screen. -
Add support for few languages by official flutter_localizations packageDone -
Create an icon for the appDone -
Add ability to specify language in settingsDone -
Add url_launcher package to be able forward user to browser for the specified url (repo url, update url and etc)Done -
Instead of copying HEX value, open dialog where few next color's representations will be shown:HEX valueDoneRGB value with alpha channel valueDone RGB only, because alpha channel (for rgba) is not used at all (always255
value), so there's no transparent colorsFlutter's variable (i.e.DoneColors.red[400]
orColors.blueGrey.shade500
)
-
Add update checks with http packageDone -
Create AppImage build for LinuxDone, about 25MB size reached -
Add check for available screen width to adjust ColorCard size for that and allow set limit for columns in grid depending on that info
-
IMOPRTANT learn testing
-
Probably return FloatingActionButton widget instead of IconButton in the AppBar, but this required animation.
-
Probably add screen with RGB selector (sliders for ARGB channels)
-
Probably add screen for "Collections" where user can create a named folder and add into it some colors with giving them any meaningfull name. And for persistent storage probably use sqlite database