A List Apart

Menu
Issue № 321

Learn to let client criticism improve your design instead of just watering it down. And come to grips with the design of digital reading experiences.

A Simpler Page

by Craig Mod · 27 Comments

Want to design a book? There are mountains of beautifully designed examples to inspire you. But what about digital books? How do you create elegantly typeset, gloriously balanced reading experiences when tablets render type differently and support different fonts, text can extend in every direction, and type can change size? Craig Mod (Flipboard, Art Space Tokyo) addresses these questions and presents the initial release of Bibliotype, an HTML baseline typography library for tablet reading.

Design Criticism and the Creative Process

by Cassie McDaniel · 19 Comments

In every design project, at some point we quit what we're doing and share our unfinished work with colleagues or clients. This begs the question: Just what does the critique do for the design and the rest of the project? Do critiques really help and are they necessary? If so, how do we use their inconsistencies to improve our creative output? Cassie McDaniel explores how critiques can help us navigate complex processes and projects and collaborate effectively to create original and engaging work.

More from A List Apart

Columnists

Matt Griffin on How We Work

Pricing the Web

If you plan to bill your clients, you need a method for putting a price on what you do. The variables are always money, time, and scope of work, but the way they relate to each other can bring different client motivations to the foreground and fit different agency needs.

From the Blog

Driving Phantom from Grunt

For this example, we're going to build a Grunt task that takes a screen shot of the pages we're building (similar to Wraith, but far less advanced). There are multiple parts to make this work, so let's break it down. First, we will write a PhantomJS script that renders each page. Second, we make a NodeJS function that calls this script. Finally, we make a GruntJS task that calls that Node function. Fun!