Extending Bootstrap is a fresh addition to the Bootstrap library. Rather than reiterating what other guides and books have said about Bootstrap, Extending Bootstrap distinctly offers an alternative perspective from a contributor’s point of view. That is, you will not be told extensively what Bootstrap can be used for, or what kinds of element styles, components and jQuery plugins are available to you. Instead, you will learn how to take those parts, develop your own custom variations of them, and build a fully branded package for your frontend application, ultimately in the form of a unique Bootswatch theme.
Some of the things you will be walked through deal with how to use Bootstrap themes, handpick suitable Bootstrap components, resize the grid, alter Bootstrap variables with LESS, automatically compile LESS files into CSS with Node.js and Grunt, extend Bootstrap’s jQuery plugins, and create your own Bootswatch theme. Each section is explored individually and you are also provided with alternative techniques along the way.
All of the techniques are covered one step at a time, but some parts may cause confusion if you have no previous experience with the tools. If you are unfamiliar with Grunt configurations (and although the tutorial does supply an example configuration that works out of the box) the section that deals with automated LESS compilation can be puzzling at first glance. But in case you are interested to know the nuts and bolts of a Gruntfile inside out, you will have to do some independent research on the side.
Overall, Extending Bootstrap adopts a very conversational and informal tone, which is positively welcome. You do not feel as if you were analyzing an academic treatise. The author speaks and delivers assistance directly to you. Christoffer Niska is a seasoned developer whom I have had the privilege of learning from and collaborating with, whose meticulous attention to precision and simplicity can be clearly observed in this manual as well. The book remains faithful to this minimalist methodology and does not try to cover anything that would not be relevant or useful in the context.
Despite its brevity, the book provides many practical code examples throughout the tutorials, supported by screenshots for visual representations of what is produced by the code. Although the examples are helpful for understanding the concepts, the lengthier blocks of code can become cumbersome to follow due to lack of highlighting on the important parts. The quality of the printed grayscale screenshots could also use some refinement.
If you choose to follow the book interactively—that is, reading while doing the exercises—you will need to have a Mac, Windows or Linux development environment in your employ. No other software licenses are required since you will be strictly utilizing open source tools, such as Node.js, Grunt, and Bootstrap itself.
To support and augment the concepts established in the book, Niska also provides a number of links to technical articles for further perusal. I encourage you to check the annotations and study the supporting material that is available for free.
What I would have wanted to read more about is the advised usages of Bootstrap variables and mixins in your LESS files, as opposed to explicitly using Bootstrap’s stock classes in HTML. Following this method makes your stylesheets more semantic as well as portable since you are decoupling Bootstrap’s CSS classes from your HTML and building your custom classes with the mixins provided by Bootstrap. You might argue that this is beyond the scope of the book, but I regard it as an important detail when bearing extensibility in mind.
To get a thorough picture of the contents of the book, I suggest you head over to the publisher’s website for a complete table of contents as well as information on availability and purchasing. Extending Bootstrap is currently available as a printed book as well as an electronic download.
Eric Nishio is a frontend developer who also likes to blog about selfeducation on his blog Self-Learner.