CODING TRAIN | The Nature of Code


A design system for an unconventional publication. Creating an automated flow to build book interior and web version of the book with both traditional graphic tools and open source libraries.

My task includes designing visual systems for the printed and web book, and implement the designs through CSS, while ensuring readability and accessibility.

BRAND IDENTITY GENERATIVE WEB DESIGN BOOK DESIGN


Website

https://natureofcode.com

Skills

React.js, Tailwind CSS, p5.js, Adobe InDesign, Illustrator, Figma

Role

Design Engineer



The book existed in both printed and digital format.




Origin


The old edition was published in 2012 and used Processing(Java) as the programming language. After 12 years, Daniel Shiffman rewrote the book in p5.js, with modified and new chapters. On one hand, he needed a modern and welcoming design for the printed book and the web version. And on the other, these designs have to be realized through code, an automated workflow that dynamically updates content from Notion, as opposed to the conventional way of book design.



My Role


As the designer engineer in the team, I provided first round of design mockups created in Adobe InDesign, Illustrator and Figma to gather feedback and refine. Once we have a winner, we implement the design through code, both in the PDF and on the website. I worked closely with a full-stack developer, to ensure visual coherence, navigate through the repository and refine CSS code. 








Process

In this project, we value friendliness, accessibility, and open source. Our goal is to make education and creative coding available to as many people as possible. 

To achieve friendliness and accessibility, there were many efforts that went into design details. We worked with an illustrator, Zannah Marsh, to integrate delightful graphics and diagrams in the book. Additionally, we incorporated small emojis, friendly font, colors, and rounded corners of text boxes to further enhance the playfullness. On the website, the interactivity is one of the main features - not only does the website has to meet accessibility standards, we provided various media types to help with all kinds of learners, ie. video, interactive exercises, live sketches, text. 

The book is not only a p5.js tutorial on physic simulations, but also an open source project to help educators build tutorial books with accessibility. Not only does the project lives in a public GitHub repository with documentations, we also integrated other open source libraries as technical support, such as magicbook.js, OpenMoji, etc. 




Detailed features of the physical book.


Technical


To systemize the input, the book content is written and copy edited in Notion, pulled into GitHub as HTML pages using a node-based action. And the design lives as a CSS code file and applies to the HTML files. 

To generate the output, the printed and web versions have separate build processes. The printed PDF file is created through the magicbook library, and the website is built with Gatsby. The CSS files are also separately written for these 2 different formats, using SCSS and tailwind CSS. 

Diagram of the build process of the printed and digital versions





Challenges


Two main challenges in the process are documentation and accessibility. Building this as an open source project, we want to keep extensive documentation throughout the process, and design elements as reusable and systematic modulars. For example, the labels and tags for design details are specifically marked down on this page. 

The content transform guid on Notion where we document how things should be labeled.


Team

Author | Daniel Shiffman (Coding Train) 
Developer | Jason Gao
Designer | Tuan Huang
Illustrator | Zannah Marsh
Publisher | No Starch Press






TUAN  HUANG © 2024


REACH ME AT