depict is a web-based software that allows you to quickly draw simplified wireframes called breadboards.
This page contains complete features of depict. If you are looking for tutorials, please visit depict’s tutorials.
Places, items, and links
Core elements of breadboarding are places, items, and links.
Places
Top-level items represents places.
A place is an abstract concept that can be a screen, a dialog, a menu, or a popup. In the context of breadboarding, we deliberately use abstract terms to keep the focus on the content instead of specific UI elements.
Home
About
Contact
Items
Each place can have zero or more items. Indented lines represent items.
If a place Home
has three items, it will look like this:
Home
Header
Main contents
Footer
About
Contact
Items can have sub-items:
Home
Header
Logo
Navigation
Main contents
Footer
About
Contact
Use -
to make a separator:
Home
Menu1
Menu2
-
Menu3
Links
Items can be linked to other places. =>
symbols represent links.
Home
About
Description
Back to Home => Home
Now a place About
contains two items, Description
and Back to Home
, and
the Back to Home
item is linked to the Home
place.
You may omit the place name if the name of the item is the same as the name of the place.
Home
About
Description
Home =>
Type annotations
You may want to add more details to your breadboard as your work progresses. depict provides a set of type annotations to help you do that.
Type annotations are starting with a dot .
and goes after the name of the
item.
Type annotations for items
You can append .input
or .button
to an item to make it a text field or a
button, respectively. Brackets at the beginning of the item will make it a
checkbox. Parentheses at the beginning of the item will make it a radio button.
Sign-up
Email .input
Password .input
[] Agree to ToS
Sign-up .button
Type annotations for places
At the beginning of this manual, I mentioned that a place is an abstract concept. In the context of breadboarding, we deliberately use abstract terms to keep the focus on the content instead of specific UI elements.
But as your work progresses, you may want to add more details. For example, you
may decide to make a place Home
a page and a place Sign-up
a dialog.
Type annotations for places allow you to make your intent clear.
Home .page
Sign-up .dialog
Formal syntax and syntactic sugars
Symbols like []
, ()
, and =>
are syntactic sugars for type annotations.
You can use .link
type annotation to make an item a link:
Home
About
Description
Home .link target=Home
This is equivalent to:
Home
About
Description
Home => Home
And again, this is equivalent to:
Home
About
Description
Home =>
Also, []
is a syntactic sugar for .checkbox
and ()
is for .radio
:
Sign-up
Email .input
Password .input
Agree to ToS .checkbox
If you prefer consistency over brevity, you can choose to use formal annotation syntax.
Style annotations and wireframe mode
Types annotations are for semantic information, and style annotations are for representations.
In breadboarding, we intentionally ignore representations to keep the focus on the content. But as your work progresses, you may want to make your breadboard more concrete. Style annotations are here to help.
:row
mode and :col
mode
Add :row
to a parent item to make its children aligned horizontally. Add
:col
to make its children aligned vertically, which is the default.
Home
Header :row
Logo
Title
Search .input
Help
Since the item Header
has :row
style annotation, this section of the
breadboard is now in the wireframe mode. The wireframe mode is rendered
differently from the breadboard mode.
You may omit item name Header
and just use style annotations to visually group
related items:
Home
:row
Logo
Title
Search .input
Help
:fill
mode
Add :fill
to an item to make it fill the remaining space. The following
example shows how to use anonymous :fill
item to make space between Title
and Search
:
Home
:row
Logo
Title
:fill
Search .input
Help
Mixed-fidelity prototyping
With style annotations, it is hard to say that the artifact you are working on is a breadboard. It is something between a breadboard and a wireframe, which is okay. (See Mixed-fidelity prototyping of User Interface)
Do not obsess over the consistency of fidelity. It is encouraged to add details only to the parts where it is necessary and leave the rest as is.
It is a excellent practice to start with simple breadboarding and gradually add more details where and when necessary. depict is specifically designed to support this workflow.
The following example shows a typical mixed-fidelity prototype:
Home
Header :row
Logo
Search .input :fill
Sign-in .button =>
Main :row
Categories :col
Women
Men
Accessories
Product List :col
Product*3 :row
Image
Title => Product Detail :fill
Price
Footer :col
About =>
Copyright
Product Detail
Product summary
Product detail
Reviews
Sign-in
ID .input
Password .input
-
Sign-in .button => Home
Miscellanous features
Embedding a board into websites
You can embed shared board as iframe or PNG image. Here’s how:
- First, you have change the board’s visibility to “Anyone with the link” in the board’s settings.
- Then, append
.embed
into the URL of the board. For example, if the URL of the board ishttps://depict.page/boards/abc123
, the URL of the embeddable board ishttps://depict.page/boards/abc123.embed
. You can also append.png
to the URL to get a PNG image of the board. For example, the URL of the PNG image of the board ishttps://depict.page/boards/abc123.png
.