-
Notifications
You must be signed in to change notification settings - Fork 9
Home
CardStock is a cross-platform tool for quickly and easily building graphical desktop applications, called stacks, which can be made up of multiple pages called cards. It provides a drawing-program-like editor for building Graphical User Interfaces, and a code editor for adding event-driven python code.
There have been many open source projects in the past that tried to capture the fun and simplicity of building programs in HyperCard, but in my opinion, none of them offered the open-ended possibilities and ease of use that made HyperCard such a magical-feeling tool. So in the grand open source tradition, I built my own.
The guiding principles behind my vision for CardStock are the following, in order of importance:
- Keep it understandable, simple, and easy to use, for python beginners, through the most salty of Senior Software Engineers.
- Make it as capable as possible, without interfering with the previous priority.
- CardStock works on MacOS, Windows, and GNU/Linux.
- You can build programs using objects including text and graphics, images, buttons, and text entry fields.
- You can use your own python code to manipulate the objects and respond to mouse and keyboard events.
- You can play sound files from your code.
- Design and build your stack in the CardStock Designer, and run it from there to test it out. Or run your stack directly using the CardStock Viewer.
- In-context help appears in the app, right where you need it. And can be turned off when you no longer want it taking up space.
- All of the creature comforts you've come to expect from a proper application, like full Undo/Redo, and a Find/Replace system that works throughout all of your code and object properties.
- You can animate most properties of objects, to bring your creations to life.
- You can import other python packages into your code, and use them make web requests and display the results, control robots, or run machine learning code, all from within your CardStock stack.
- View all code used in a whole stack in one place, and click a line to jump to that line in that object's code for that event.
- View recent error messages, and click one to jump to the offending line of code in the Designer.
- A built-in media library with some basic icons/images, and sound files.
- Add code completion to the code editor.
- Allow exporting a stack into a standalone application that you can share/distribute.
- Add async support
- Add app icons for the CardStock Designer and Viewer
- Native views, like buttons and text fields, always remain in front of shapes and images, which get drawn directly on the card view.
- Visual selection indicators (the blue dotted outlines) are drawn behind native views, and so can hide behind overlapping native views.
CardStock requires Python 3.7 or newer, and wxPython 4.0 or newer. And for more responsive Sound playing, you can optionally install the python module simpleaudio.
Currently, you'll need to:
- install python
- pip install wxPython
- pip install simpleaudio
- download or clone this repository
- run designer.py and viewer.py as desired
Or download the ready-to-go CardStock application for Mac or Windows here: https://github.com/benjie-git/CardStock/releases/tag/0.8.2