Less is moreWhat the deuce am I talking about? Take a task list for example. When we need a way to edit, reorder, checkoff and delete a task, what are the standard visual affordances to perform these actions? Maybe we have a set of actions to the right of every task item, but my god is that ugly. Mayhaps we only show this ugly action bar when we are hovering over a task; this provides a better sense of context, sure, but then we have these actions playing hide and seek while we mouse over the list. When building Strike we said hell no, there must be a better way.
Completing a Task
Lets start with the check box to complete a task. It feels good to check off an item. You punch that check box right in the face and blamo, that shiz is DUN (pronounced dee u en) done. So why would we want to take this pleasure away. Resist the urge to over think, and just leave the checkbox there. In fact, we added a little emphasis with a nice big X for a check mark. Yeah, that looks nice.
ReorderingHow about reordering the list. If we wanted to be really explicit, we could have had a reordering mode with a move cursor and other visual clues, or even worse, arrows for each item that moves it up or down the list. Or, now open your mind real big, we could just let people drag items to reorder them. We know we are going to be overloading the click event for other actions, so we ensure that the user actually wants to move the item by not starting the drag until the task has been dragged at least 6 pixels.
Editing felt like it needed an explicit action, but in the name of elegance we borrowed and tweaked an old school analogy from file browsers: the good old click twice to edit. In file browsers, it's not a double click (that opens the file), but rather two slow clicks, which can be annoying if you mess up the timing. There is no open action for our task actions, so any double click will make the task editable. Just like in the file browser interface, clicking off the task or pressing enter ends edit mode and saves the task.
Lastly, we need to delete tasks. Deletion has a different feeling than completion; we want these tasks out of our lives. Maybe someone else added this task to your list, but you sure as hell are not doing it. Delete that sucker. A simple delete link cheapens what should be the equivalent of the last scene in Gladiator (i.e. epic). To remove a task in Strike, you literally drag it off the list, then the task explodes into little puffs of smoke. Take that Deborah, guess I can't pick up your dry cleaning now that the task has been completely demolished.