8 Sites That Work Just Fine Without JS, Thank You

Gather ’round, ladies, gents, and children. Lo, before your very eyes, we shall reveal several freaks of the Internet! Behold! Websites that don’t need JavaScript to display their god-given content!

Oh, you think I’m kidding? Websites that are presented by plain old HTML and CSS are becoming increasingly rare. At this juncture, I don’t know who to blame, and is it really worth blaming anybody? I could point finger at whomever or whatever I think is to blame, or I could point fingers at creative and sometimes large websites that do it right!

Now, what do I mean about “doing it right”? Some of these sites, you might notice, do implement some things with JavaScript. But here’s the secret: if you turn JavaScript off, these sites still work just fine. The content doesn’t just disappear. The JavaScript effects and features have fallbacks! Sites are progressively enhanced, or they degrade gracefully.

Either way: they work. And they’re kind of hard to find, these days.

1. Amazon

You might expect a site with as much information present on any given page as Amazon has to use a mountain of JavaScript to, in some way, organize it more efficiently. Not so. Turn off the JS, and you can buy stuff just fine.

2. The Warren Trust

The Warren Trust is another one that degrades quite gracefully. With JS on, the site uses AJAX techniques to load content from other pages without technically leaving the home page. Turn off the JS, and it won’t work quite like it does with the JS on, but it does work. You can still see every page, but, you know, on its own page.

3. Stuff & Nonsense

Stuff & Nonsense was created by known and self-admitted web designer Andy Clarke. So yeah, it work with and without JS just fine. It’s a lovely example of a site that (mostly) works perfectly fine either way.

The only thing that doesn’t work when JS is turned off is the audio player. That is kind of to be expected, really. I can’t take many points away for that.

4. Mike Mai

Mike Mai’s site is proof enough that your site can be plenty creative—if a little odd in this case—with or without scripting. And I do mean “odd”, and I really do mean “little”.

It may not be the poster-site for visual accessibility, but it does show what kind of things can be accomplished in plain old HTML and CSS by those just crazy enough to try it.

5. Solace House

Solace House is a sobering example of a site that absolutely needs to work any time, under any circumstance, no matter which technologies are or aren’t working. It’s a suicide prevention center, after all.

You might be able to argue that your target demographic should just have JavaScript enabled at all times in some circumstances, but there are some services that are just too vital to ever leave to chance.

6. Twitter

Yeah, that Twitter. It was while researching this article that I found out Twitter works well enough without JavaScript. Well, their solution is a bit convoluted, perhaps, but it’s effective.

In short, Twitter will actually redirect you to a pared-down, mobile version of Twitter. It’s fully functional, except for features like feeds that update live, and so on. Who says social media needs JavaScript?

Truth be told, Twitter never felt faster.

7. Slack

You might need JavaScript to actually run a Slack chatroom, but the rest of the client-facing site looks and works just fine. It even has a condition in the URL for no JavaScript. And when you need to enable JS to make things run, they tell you! They actually tell you!

No seriously, it’s a thing that lots of sites would rather let you stare at a blank page than even say, “Woops! Looks like the JS broke, or you need to enable it.” I dislike this thing.

8. WebdesignerDepot

No, seriously, try it out. You’ll see a few visual downgrades, but everything essential looks fine, and works well. This is what it’s all about, people!

I’d love to take some credit for that, but I just write here on occasion. I guess this is my official letter of congratulations to the designer!

In Conclusion

I just wanted to show people what could be done. That’s it. I’m not saying you should ditch JS entirely, but I do believe that we should be a lot more considered about what we do and don’t implement in JavaScript.

Look at the sites I’ve listed here. Look at your own. For every thing you implement with a script, ask yourself if you really, really need to make it a script. For that matter, do you really need HTML?

Okay, okay. That’s going way too far.


Should the Web Have a Universal Design System?

Unlike mobile applications, the web has no set design guidelines to which a designer can refer. Instead, each web project tends to be a blank canvas. There are frameworks like Material, Bootstrap, and others which provide a base, but no set guidelines which span the web as a whole.

The result is a wide-ranging and diverse web, but one with a lack of cohesiveness, particularly in terms of user experience. Navigations differ in placement, structure, and overall design. Layouts alternate in width. Text sizes and typographic scales vary wildly. And a wide range of differing components, interactions, and user interface elements are used.

Design systems ensure consistency between apps, resulting in a more cohesive product

The lack of a set design system for the web is due to its open source nature, and lack of ownership. No company or organization has the power to enforce guidelines or standards. The closest anything or anyone comes to impacting the way we design is Google, who can affect your search rankings based on factors such as user experience, responsiveness, and code structure. On the other hand, mobile operating systems like iOS and Android have the power to enforce certain application structures, user experience practices, and standards. Design systems ensure consistency between apps, resulting in a more cohesive product, and one that is easier to use and understand for the end user. It also enhances performance and optimization, as well as accessibility.

Despite such a defined set of guidelines in both cases of iOS and Android, designers still find ways to differentiate through aspects like color, layout, and design details. In these circumstances it’s still entirely possible to achieve outstanding  and unique designs which still fall within the guidelines.

Conversely, the web is an absolute blank canvas. There is the ability to take a design and user experience in any direction desired. On one hand, it’s what makes the web so attractive, diverse, and abundant. On the other hand, it can lead to a confusing experience for many people: one that is highly inaccessible, inconsistent, and uses a variety of sub-optimal and dark user experience practices.

The case of iOS and Android show just how rich and diverse a digital product or ecosystem can be, even under such regulation and moderately-strict guidelines.

This poses the question of whether a set of open source guidelines should be introduced for the entire web. Whether it comes from W3C, is a unified effort between major browsers, or is devised by a group of designers, it could improve the web for all. There would still be great scope for producing unique designs, while ensuring the web reaches much more acceptable levels of accessibility and usability as a whole. Designers and user experience professionals could contribute to this as an open source project, pushing forward the progress of the entire web.

It’s not just web applications this system should apply to. Whether it’s a blog, portfolio, landing page, or wiki, they are all still usable products. They still require important user experience considerations such as accessibility, navigation, color practices, and typography scales. Many companies consider such aspects, while many ignore them either through choice, misjudgement, or lack of consideration. It’s an area which is so fragmented under the current system, and does not work appropriately for everyone. That includes those with a disability, visual impairment, or lack of familiarity with computers and the web. These users should be designed for first.

As it stands, the primary consideration is often the design visuals: making something impressive, unique, and eye-catching. Often this desire to differentiate can lead to oversights with user experience, and design choices like unique navigation solutions which are confusing and unfamiliar to most.

Google is a prime example of a company who have developed a set of guidelines and applied them with absolute consistency across mobile and web. Whether you switch from Google Keep on iPhone, to Google Drive on the web, the user experience and design elements remain consistent. Then when switching between products on the web like Play Store or YouTube, it again remains consistent.

This ease of use and transition from one product or site to another should be a model to follow for others. It puts the user first, making for an entirely accessible and understandable experience. Google is beginning to take this even a step further, as they introduce Android apps and web-based equivalents that work at desktop size. With products like Chromebooks, it makes the transition between devices even more seamless.

The closer we can get to a cohesive design system across the web…the better it will be…for all parties involved

The closer we can get to a cohesive design system across the web as a whole, the better it will be in the long run, for all parties involved. This means having systems span much further than just one company.

IBM or Airbnb may perfect their design systems to the nth degree and apply them with excellent consistency. However, as soon as a user switches to another product or service, their design system is likely to be wholly different, from typography and layout, to navigational practices. That’s why it needs to be looked at as an issue from further afar. And apps are the closest example we have to how successful this can be as a means to improve the everyday lives of users.


Kinsta Review: Real Test Data + My Likes And Dislikes

Kinsta is a performance-oriented managed WordPress host that’s powered by Google Cloud Platform, which is the same hardware running Google’s own products (maybe you’ve heard of Google?). In the past, Kinsta was almost exclusively a premium host, with prices starting at $100. That’s changed now, though. Beginning in November 2017, Kinsta completely relaunched with an all-new pricing plan that starts at…. Continue Reading

The post Kinsta Review: Real Test Data + My Likes And Dislikes is written by Colin Newcomer and appeared first on WPKube.

What’s New for Designers, January 2018

Start 2018 by deleting some of those old tools from your computer that you never use in favor of some fresh, new options. While old favorites can be great for a while, there are so many great new elements out there that can streamline your workflow, or help add more creative spark to projects.

If we’ve missed something that you think should have been on the list, let us know in the comments. And if you know of a new app or resource that should be featured next month, tweet it to @carriecousins to be considered!

Let’s Enhance

Do you ever have an image that is just too small for what you need? Let’s Enhance is here to solve that problem. The free tool allows you to upload an image—just drag and drop—and it will remove JPEG artifacts and upscale by up to four times the original size without losing any quality. (And it actually works!) State of the art neural networks are used to help removed image noise and imagines missing details for images that look totally natural.

Design Principles

The open-source Design Principles project is a collection of resources that are the basis for good projects. According to the curator, “Design Principles help teams with decision making. A few simple principles or constructive questions will guide your team towards making appropriate decisions.” You can browse more than 1,000 principles and examples already in the database or submit your own.


Hexi-Flexi is an SCSS component built on the CSS grid layout that creates a lattice of hexagons. Without JavaScript, you can customize the number of shapes, cells and rows to fit your design or content. It also supports auto-populating backgrounds.


Snippetnote is a note-taking app that allows you to copy snippets for later. You can copy private snippets and change the layout as needed. Notes are available offline and in a drag and drop interface that’s easy to use. The interface is streamlined and simple without ads or social prompts.


Manta is a simple invoice-building app for Mac, with sleek design and customizable templates. Users can drag and drop items in invoice fields, include an SVG logo for better printing, and export invoices to a PDF or email format. (Plus, it’s a totally free-to-use invoice tool if you are looking for a simple product to streamline billing, which can be great for freelancers.)

Sketch Elements

This free iOS user interface elements kit has everything you need for your next app project. The kit includes 35 screen designs, 45 icons and 175 symbols. Plus, every element can be further customized so that your project feels unique. The kit is made for Sketch 48 or later.

Minimalist Icons

Themeisle has a set of free, minimalist vector icons that you can download and use in a number of projects. Each icon comes in a line-drawn, colorless style with a variety of options. The pack includes more than 100 icons.


Keep up with the status of critical services in one location. Get real-time notifications that you can see on screen or have them emailed or messaged to you. The ticker supports more than 145 services.


Looking for Instagram-style images for your projects? Instagram.css is a complete set of Instagram filters in pure CSS.

Epic Spinners

These simple CSS-only loading animations are fun and functional. Just grab the code and you are ready to use them.

Buy Me a Coffee

It’s like Kickstarter for creatives. Buy Me a Coffee allows you to showcase work and ask supporters for a small donation to fund the project.


Keepflow is a team-based project management tool for design freelancers and agencies. Currently in pre-launch beta, the software is designed to help you onboard clients and then manage a project – from an information-gathering questionnaire to the final product.

Tutorial: Using SVG to Create a Duotone Effect

CSS-Tricks has an excellent new tutorial that helps you navigate the world of SVG and create a trendy design element at the same time. The tutorial breaks down how to create a duotone effect in both the traditional manner using Adobe Photoshop and with SVG filter effects.

Product Manual

Product Manual is a collection of resources that help you build and understand the process of creating great products. The website is packed with resources by category—you can also add your own—so that every project can start here.

One Year of Design

Pixels collected a pretty cool collection of great website designs from 2017 all in one place. The retrospective is a nice bit of design inspiration.


Need a special character? Rather than digging through typefaces or struggling to remember keyboard shortcuts, use CopyChar to click and add a special character right to your clipboard. Special character options include everything from letters and punctuation to math and numbers to symbols, arrows and emoji.


Dulcelin is a simple script that’s available free for personal use. It has a nice structure that’s readable and comes with a set of 177 characters.


Kabrio is a fun sans serif with the added bonus of having multiple corner options for typeface styles. The alternate variant features slightly rounded corners, that become even more round in the soft variant. Abarth features cut corner for a more mechanical, cold look. Each variant has seven weights and italics.


Promova is a blocky sans serif that would make a nice display option for website projects. The typeface includes regular and italic styles with wide character sets. The type family includes upper-and lowercase letters and is highly readable.

Studio Gothic

Studio Gothic is a nice sans serif with a rounded feel. The free version includes Extra Bold Italic and the Alternative Regular variations. The pair have an extensive character set and would work nicely for a variety of project types.

Sunshine Reggae

Sunshine Reggae is a lowercase typeface with a brush-stroke handwriting style. The limited font includes just 26 lowercase characters without any extras or frills, but it can make a fun display option.


Popular Design News of the Week: January 8, 2018 – January 14, 2018

Every week users submit a lot of interesting stuff on our sister site Webdesigner News, highlighting great content from around the web that can be of interest to web designers. 

The best way to keep track of all the great stories and news being posted is simply to check out the Webdesigner News site, however, in case you missed some here’s a quick and useful compilation of the most popular designer news that we curated from the past week.

Note that this is only a very small selection of the links that were posted, so don’t miss out and subscribe to our newsletter and follow the site daily for all the news.

Best WordPress Design Trends for 2018


5 Typography Trends for 2018


Coke’s New Font is Design at its Worst


Company Tricks People into Swiping Instagram Ad with Fake Strand of Hair


Golden Ratio. Bring Balance in UI Design


Gradient Cards – A Simple and Beautiful List of Editable Gradients


The 7 Best Design Case Studies of 2017


Goodbye IPod, and Thanks for all the Tunes


I’m Harvesting Credit Card Numbers and Passwords from your Site. Here’s How.


Inboxer – A Clean, Open-source Desktop Client for Google Inbox


Spotify for Developers


So your Website is Slow? Let’s Fix That.


Building Our Sketch Library


Low Poly Art – A Free Collection


Beginner’s COurse: JavaScript for the Web


Designers, Here is Why You Want to Limit You Tools


Simple Mockups – Minimalistic Devices Mockup Pack for Sketch & Photoshop


Workplace Hygiene in Sketch


How to Fix Facebook – Before it Fixes Us


5 UX Books that’ll Change How You Think About Design


How to Use Variable Fonts on the Web


Inspiration Feed: The New Designspiration


Challenge: To Create an Illustration Style


The 8 Greatest Ideas of CES 2018


A UX Career is a Business Career


Want more? No problem! Keep track of top design news from around the web with Webdesigner News.


Comics of the Week #423

Every week we feature a set of comics created exclusively for WDD.

The content revolves around web design, blogging and funny situations that we encounter in our daily lives as designers.

These great cartoons are created by Jerry King, an award-winning cartoonist who’s one of the most published, prolific and versatile cartoonists in the world today.

So for a few moments, take a break from your daily routine, have a laugh and enjoy these funny cartoons.

Feel free to leave your comments and suggestions below as well as any related stories of your own…

Shot of tolerance

Liquid inspiration


The multitasker

Can you relate to these situations? Please share your funny stories and comments below…


7 Great Uses of Gamification in Web Design

Gamification as a concept has been around just long enough for a number of experts to come out of nowhere. There was a brief moment where everybody wrote an article or five about it, and then it more or less became the preserve of “gamification experts” and business blogs.

The thing is, we should still be thinking about it. Buzzword or not, it’s often incredibly effective.

So, for the beginners: gamification is the practice of putting game-like features, mechanics, and sometimes UI elements into your website or app.

In this article, we’re taking a look at several different forms of gamification, and how they’ve been implemented across the Internet. You’ll probably have seen some of these before, but you might not have thought of these as game-like features. Also, I’m sticking to websites and web apps (you almost have to try to find a mobile app that doesn’t have some form of gamification).

1. Habitica

Game elements: experience points, levels, upgrades, gear, and more.

Habitica is probably the single most direct application of game design principles and mechanics that I’ve seen in a web app. Why? Because it basically is a game. Well, the app’s stated purpose is to help you form new good habits, and kick bad ones.

They attempt to do this through the rather direct application of roleplaying game mechanics. Spend time on your new habit, you get points. Succumb to old habits, lose points. Enough points gets you upgrades, and so on.

2. Zurb

Game elements: object finding, achievements.

Zurb is probably the best example of game mechanics implemented in a site that is more “site” than app. Simply put, you go looking for cows, which are hidden all over the site. There’s a page where you can track all of the cows you’ve found. It’s probably the most fun way of getting users to read or skim through every page that I’ve seen to date.

3. LinkedIn

Game elements: competition, completion.

Okay, you might not think of this as a “game mechanic” but LinkedIn (and almost every other social media site out there) implements a mechanic designed to encourage you to complete your profile. It treats filling out each part of your profile a bit like an achievement, and gives you a status bar to show just how full (or not full) the profile is.

It’s designed to trigger your “completionist” instinct on one level. Also, these sites often state that people with fuller profiles are more successful at networking. On the one hand, it’s good advice. On the other, it hits your competitive instincts a little bit.

They’re subtler aspects of game design, but they do fit the theme.

4. Klout

Game elements: competition.

Pretty much all social media is gamified to a limited extent, but Klout takes it quite a few steps further. In fact, it takes the rampant popularity contest that is social media, and adds a numerical value to everyone’s popularity.

It drives interaction by allowing you to connect all of your social media accounts, showing you how much more popular industry leaders in your fields of interest are than you, and giving you ways to easily post and boost content to raise your number.

5. Zoho Motivator

Game elements: competition (hard mode).

Zoho Motivator is a cheerfully-named tool from the Zoho online office suite. It takes data from Zoho’s CRM tool to measure how each of a company’s salespeople is doing. It calculates leads generated, potentials created, and sales completed. And then it pits them all against each other in a friendly competition.

Well, depending on the corporate environment, that could be friendly competition, or a cutthroat race to see who can get the most sales by any means possible. Forget the problems inherent in the world of social media. This is where I start to wonder if we shouldn’t be a bit more careful with how we use gamification.

6. Interland

Game elements: quizzes, puzzles, platforming, and more.

Interland is almost cheating, as far as examples go. It’s literally a site filled with educational mini-games designed to teach Internet safety and courtesy to new Internet users, and is primarily directed at children. This is, perhaps, not an approach that can be used for most sites. For educational sites, though, I’d say it’s pretty effective. Learning through play is a proven concept.

7. Quizzes in general

Game elements: quizzes (heh), competition.

Following that last example, it would be wrong of me to ignore one of the oldest forms of gamification on the web: the online quiz. Some of the most famous applications include Facebook quizzes, Buzzfeed quizzes, and quizzes from The Oatmeal (some of which may be NSFW—or life). For a clean quiz example, try this literary guide to Britain.

While the quizzes themselves usually don’t drive business-related interaction directly (though they can), they are often used quite effectively as marketing tools. I dare say that Buzzfeed and The Oatmeal especially owe their success in part to the viral quality of quizzes.

Bonus: Purely visual gamification

Game elements: purely visual.

Lastly, we have an example of sort-of-gamification that doesn’t require much input on the part of the user. You just have to scroll. I’m talking about Robby Leonardi’s interactive resume, a site that looks and feels a lot like a side-scrolling platformer.

I don’t know if this really counts as gamification, but it sure is pretty.


9 Expensive Ecommerce Mistakes to Avoid

An online shop’s shipping methods or rates have a significant impact on decreasing cart abandonment rates and driving up additional sales. Customers are just as attracted by low shipping rates, fast shipping options, and good packaging, as they are enticed by competitive market rates of products.

Ecommerce sites that have not yet mastered the complexities of shipping are unable to reach their full sales potential. Many new business owners grossly underestimate the importance of shipping cost, which can have the most impact on the overall expense it takes to get a product moving. Moreover, these online shops risk their business being run down as a result of the costs due to shipping mistakes eating into their profits.

Fortunately, with a little research and careful planning most of these mistakes are easy to identify and avoid. Avoiding the 10 common shipping mistakes listed below can help any online shop owner become a savvy e-retailer.

1. Not Letting Customers Choose a Shipping Option

Customers enjoy having multiple shipping options since every customer is likely to have different delivery expectations. Some may have an important event, like an anniversary or birthday, just around the corner so they will prioritize fast shipping to get the ordered gift on time. Others may be more interested in saving some extra bucks through free shipping. Your shop will automatically become undesirable if it does not provide suitable shipping options to accommodate customers with specific parcel arrival time or shipping cost preference.

2. Ignoring Customer Feedback

Customer feedback/reviews can make or break an online store. Consumer reviews not only help other potential customers to gauge their expectations with your online store, but their feedback can also help you modify your business methods and policies for greater efficiency. For instance, if customers are constantly complaining about delivery delays, then it’s time to upgrade to a better or higher-end shipping package/service provider. On the other hand, if your parcels are always delivered ahead of their delivery schedule then you can safely downgrade to a more economical shipping option and save on those shipping costs.

2. Not Providing Free Shipping

Customers are always on the lookout for the most economical and discounted product. Providing further discount via free shipping serves as an excellent incentive for these customers to proceed with the cart checkout. If, your store completely ignores free shipping, it can significantly increase cart abandonment rates and overall drive down your sales conversions. Remember, your competition can always steal away your customers by offering them a more economical solution (with free shipping included).

3. Using The Wrong Packaging

Packaging is a critical feature of the entire shipping process – from encasing consumer products into a box/bag to delivering it to the customer’s doorstep. Packaging not only serves to protect the product from damage during transportation, but it also contributes towards building your brand reputation. The type of packaging used also serves as an indicator for how much you’ll be charged by the shipping carrier.

In the past, delivery services were charged based on parcel weight alone. However, today’s carriers charge on basis of whichever description fits best, either by package weight or its corresponding dimensional weight. New store owners often make the mistake of underestimating the shipping cost of dimensionally large, but otherwise lightweight items. Sometimes business owners also try to save on shipping costs by placing items in inappropriately sized boxes or skip protection like bubble wrap. This can result in damaging the item during transportation. A good estimate is to leave around two-inches of spacing for protection to secure the item.

4. Estimating Shipping Expenses

Sometimes shop owners are neglectful of the DIM weight pricing and pack the items in whatever box is at hand; even if it’s slightly bigger in size. This can generate overhead shipping costs as such business owners are likely to break their shipping budget. Pay close attention to the sub-charges included in the shipping carrier’s package such as fuel surcharges, weekend delivery, residential delivery and recipient’s signature. If these services are not important or relevant to the customer base, there is really no benefit to paying for these additional shipping costs.

5. Not Keeping Track of Shipping Supplies

Suppose you’re effectively managing store inventory, but if no one is keeping track shipping supplies then it will be very difficult to ship out items to customers on time. Moreover, by keeping an eye on the shipping supplies, you can effectively establish re-order points at the right time and ensure that your supplies stores are never depleted.

6. Being Unprepared For Changes In Shipping Package

Shipping carriers make changes to their package prices and shipping policies annually. Most of the time, these changes happen at the beginning of the year, but they can also occur in mid-year. So it’s best to frequently get in touch with your shipping carrier to remain updated about any relevant alterations.

7. Manually Managing the Shipping Process

Creating shipping labels while simultaneously managing shipping demands can be a strenuous job. All of this stress can be easily avoided by automating the shipping process with the help of ecommerce shipping software. Try to take full advantage of the shipping software—create customized invoices and package delivery slips to give your product packaging a more professional feel.

8. Overlooking Customer Address Validation

The address registered by the customer may be wrong and should always be validated by the business owner. If this is neglected, the item will be shipped to the wrong address or returned to the business warehouse. As a result, the customer will be unhappy and may demand a refund or a new piece to be sent via expedited shipment. Businesses pay heavily for this mistake as this not only damages brand image, but the business owner will have to pay out of their own pocket for the second shipment. This mistake can be easily avoided, especially if your business uses some notable shipping software since they have built-in address verification features.

9. Failure to Audit Shipping

Many new business owners are often surprised to discover that parcels are delivered late at much higher rate than they anticipated. In such cases, there is a mechanism in place that ensures some compensation for the affected business owners, but still many fail to avail this. Shipping carriers do not voluntarily offer a refund for late shipments. However, if a business owner has done proper auditing of shipments and makes a request for refund for late delivery with proof, their request will be easily met. Moreover, auditing shipping and carrier bills can help business owners to check for duplicate receipts, invoice mistakes and other shipping failures.

Final Thoughts

If you pay close attention to shipping details and avoid these common mistakes, then your business can effectively source products in such a manner that it generates comfortable profit margins. However, if you are not successful the first time around, you can always play around with different package delivery services, shipping software, and carriers to find the right combination for your business.


How To Create a Living Style Guide

Using a living style guide (LSG) to drive development is a practice that is gaining a lot of popularity because it has many advantages, including code efficiency and UI consistency. But, how can you create one? What should you include? And where do you even start? In this tutorial I will delve into the nitty-gritty details of creating a living style using DocumentCSS.

The Beauty of Living Style Guides

Similar to a standard style guide, a living style guide provides a set of standards for the use and creation of styles for an application. In the case of a standard style guide, the purpose is to maintain brand cohesiveness and prevent the misuse of graphics and design elements. In the same way LSGs are used to maintain consistency in an application and to guide their implementation. But what makes a LSG different and more powerful is that much of its information comes right from the source code, making it easy and efficient to reflect the evolving state of an application.


Even today it’s mind blowing to learn that you can use the source code of your application for building your style guide.

If you look at the examples below you will see the common denominators of a LSG are:

  • A list of the elements that are documented
  • Succinct documentation with code snippets and interactive UI demonstrations

Lonely Planet Style Guide

Sales Force Style Guide

Another key element of a LSG is that you can use a style guide generator to automate the process. A style guide generator will use your application source code to feed the bulk of your LSG documentation and watch for any changes made in your code, taking care of updating your style guide documentation as your application changes.

Style Guide Generators

There are many flavors to choose from, depending on the code language that you want to document or your project setup. Here are some places to look for options:

For this tutorial I will be showing you how you can use DocumentCSS to create your LSG. This tool created by Bitovi is open source and can be used in any project to document CSS (preprocessors like Less and SASS are supported as well). If you are interested in documenting Javascript and other languages, you can easily do it with DocumentCSS, as this tool is a subset of DocumentJS. I won’t be covering that part in this tutorial, but it’s good to keep in mind.

Planning Your Style Guide

Before diving into creating your LSG the first step is planning what will be in it. Like any good website, a well structured Information Architecture (IE) is the key.

So let’s get started by using the following set of designs of our sample app called “Vintage Shop” and observe the persistent elements in the UI:

Vintage Shop Mockups

At this point I recommend starting with larger groups of elements, such as the navigation, the cart or the forms. For example, we’ll separate our design into these three groups: the steps indicator, the mini cart, and the products in the cart:

With these larger groups of elements, you can start going into more detail and identify the “styles” that persist. For example, there is a convention for the typography in general, and more specifically for the headings, the subheadings, and the links vs. regular text. The color of the buttons also persists across the pages.


Putting it all together, let’s write down these groups using a diagram:

Taking a deeper look into these groups you can fine tune them and turn them into categories that you can use in your style guide as it grows. For example:

  • “Elements” is a very vague term that could refer to any HTML element, so a better name for this group could be “Components” or “Modules. These are still broad terms but are more specific in the nature of the type of elements that would cover.
  • “Primary vs Secondary” buttons could be part of “Base Elements”, and the color aspect of it could go inside of a “Color Palette” category.

Additionally, you can think about a category where you can include more generic information about your style guide. A good example of that would be a “Guides” section where you could describe how to contribute to the style guide or a “Branding” section where you can include guidelines about your brand that should be kept in mind when designing and implementing your app.

With this in mind, here’s what the diagram would look like:

You can see how this diagram takes the shape of a site map, which is basically what you want to use as a plan when creating your living style guide.

Now, dive into the designs and sketch up your own site map, including as many categories as you think would be useful for the future. You can get ideas from other style guides (styleguides.io/examples is a great resource). Once you are done, check this more comprehensive version and compare.

Creating Pages in a Living Style Guide

While the bulk of your LSG documentation will come from special comments that you add to the source code, you can also create standalone pages where you can host other types of content that are not specific to the code (think of design principles, accessibility guidelines, or pull request guidelines). This gives you the advantage of centralizing your documentation in one place: your application living style guide.

You could almost think of the living style guide as the “game rules” of your app. Inside of “the rules” is all the information that is needed on how to “play” the game: The building blocks and the rules for creating and making building new blocks. Including how other members of your team can contribute to it and help maintaining it as a living document. 


Yas! Believe it. You can have all of your docs consolidated in one single place!

With this in mind, let’s get started by installing the sample application that we will use for this tutorial.

Installing the Sample Application

The installation process has 3 steps:

1. Installing Node

First, make sure you have Node installed. You will need at least version 6.

2. Installing the App

Then, download this zip file: sgdd-tutorial.zip to your Desktop and unzip it. This is important as another location would break the install commands.

Then open the terminal and enter the following command:

cd ~/Desktop/vintage-shop-sgdd-tutorial && npm install

It will take a few seconds to install the app and its dependencies.

3. Running the App

Once the installation is done enter the following commands:

  1. npm run develop
  2. In a new tab enter: npm run document

 Now, let’s break this down:

npm run develop

Starts a server where you can see your app running at: http://localhost:8080. You will see in the terminal:

And in the browser:

npm run document

Generates the living style guide at http://localhost:8080/styleguide. You can add the flag -- -w to this command to watch for changes in your code and then generate an update in the living style guide, like this:

npm run document -- -w

Switching to the browser you should see:

The generated living style guide uses DocumentCSS, so let’s take a look at how does this work. 

How does DocumentCSS Work?

DocumentCSS is a static site generator. This means it looks for specially formatted comments in your code and creates a static website. This site is called “static” because it remains unchanged until a command (in this case documentjs) is run again. This workflow works well for generating a living style guide as changes to your stylesheets are also changes to the Living Style Guide static site.

To build a living style guide, DocumentCSS does the following:

  • Reads through files specified in its configuration (for this tutorial it will be looking at .less and .md files)
  • Looks for comments that uses special “tags” (like @page, @stylesheet or @styles.
  • Generates html files and connects them to build the site.

With this in mind let’s jump into using DocumentCSS to create a new page in the LSG.

Creating a Page

To begin, first open the sample application in your code editor. You should see the following file structure:

Drill down into src , and find base/markdown. Here you will find pages that already exist in the style guide. Create a new markdown file and name it “about” (with the extension .md). Your file structure should now look like this:

Inside of this new file, add the tag @page followed by two strings:

@page about about

Now let’s break this down:


The tag @page declares the file as a page and tells DocumentCSS that the information in this file should be displayed as a page in the style guide. This serves to differentiate it from stylesheets, javascript, or other types of files in your documentation.


This is the unique name for the page and is used as a reference to other tags. So keep it short, lowercase and simple as it will be used as the url for the page. For our example, the url for our new page will be: http://localhost:8080/styleguide/about.html


This is the title of the page that will be used for display purposes in the generated site. Here you can use multiple words with spaces or other characters.

To view the newly created page run documentjs in the terminal again (unless you have it watching for changes), and then go to http://localhost:8080/styleguide/about.html to view the new page.

The next step is to add your page to the navigation. For this add a second line to your file as follows:

@page about About@parent index

The tag @parent allows to specify a parent for your document. In this case we want the “About” page to show under the home section. Now, you can rerun the docs and see the page appear below the “Welcome” link:

And if you click on the “Welcome” link, you can access the start page:

Now we are good to add content to this page using markdown or html. To finish the exercise, let’s add the following dummy content:

@page about About
@parent index
## Hello World!
This is the first page of my style guide. Here I can add any type of content that shouldn’t live with the code. Like who are the main contributors of the style guide or contact info.
For example here's an animated gif inside of an `iframe`:
<iframe class="giphy-embed" src="https://giphy.com/embed/3o7TKMt1VVNkHV2PaE" width="480" height="480" frameborder="0" allowfullscreen="allowfullscreen"></iframe> 

And here’s the output:

Documenting a Stylesheet in a Living Style Guide

The heart of creating a LSG is the ability to put your documentation right where it belongs: in the source code. Chances are that you are already documenting your code, which is a great opportunity to take it to the next level by using a style guide generator that can turn those comments into an organized site, letting others (and yourself from the future) know why and what has been done in the code.


Yourself from the future after reading the docs you wrote in the past.

Documenting a Stylesheet

Documenting a stylesheet follows a similar pattern to documenting a page, but in this case the documentation will go inside of a comment, right next to the code (that’s the beauty!).

To get started open the stylesheet: buttons-custom.less.

Inside of this file, and inside of a comment block, add the tag @stylesheet followed by two strings:

@stylesheet buttons.less Buttons

Note that the documentation comment needs to start with /** for the parser (in this case JSDoc) to recognized it.

Now let’s break this down:


The tag @stylesheet declares the file as a stylesheet and tells DocumentCSS that the information in this file should be displayed a such in the style guide. This serves to differentiate it from other types of documents, like pages, components, and models, among others (read here about the full list of document types).


This is the unique name for the stylesheet and is used as a reference to other tags. While you can use any type of name, I recommend using the name of the stylesheet file, as this will help finding the file when referencing the documentation. Do keep in mind that this will affect the url of your document. For this example the url will be: http://localhost:8080/styleguide/buttons.less.html


Similar to creating a page, this is the title of the stylesheet that will be used for display purposes in the generated site. Here you can use multiple words with spaces or other characters.

To view the newly created page run the following command  unless you have it watching for changes):


And then go to http://localhost:8080/styleguide/buttons.less.html to view the new page.

Now, let’s add this new doc to our navigation. For this we will follow the same convention we used when we created the page by using the @parent tag:

* @stylesheet buttons.less Buttons
* @parent styles.base

Note that in this case we have added .base to specify this page should appear under the group “Baseline” shown in the sidebar (you can also create groups in your subnav! We will dig into that in a little bit).

Re-running the docs and refreshing the page should look like this:

Now for the meaty part! With our page in place we can do a few things:

  • We can add an overall description for the doc
  • We can add all sorts of content using both markdown or plain HTML
  • And best of all, we can add demos for our code 😎

Let’s add a quick description and a demo for our buttons doc:

* @stylesheet buttons.less Buttons
* @parent styles.base
* @description
* Global style definitions for all button elements.
* @iframe src/base/bootstrap-custom/buttons/buttons-custom.html

Rerun the docs, and 🎉:

As you can see the @iframe tag allows to add an iframe with a demo to your doc. This demo is really just a simple html file with a script tag that imports the CSS of your app at run time. 

Let’s open the demo buttons-custom.html :

And see how the code looks like:

<script src="/node_modules/steal/steal.js" main="can/view/autorender/">
<import "vintage-shop/styles.less";
</script> <a class="btn btn-default" href="#" role="button">Link</a><button class="btn btn-default" type="submit">Button</button>
<input class="btn btn-default" type="button" value="Input">
<input class="btn btn-default" type="submit" value="Submit">
<hr />
<button type="button" class="btn btn-default">Default</button>
<button type="button" class="btn btn-primary btn-checkout">Primary</button>
<button type="button" class="btn btn-success">Success</button>
<button type="button" class="btn btn-info">Info</button>
<button type="button" class="btn btn-warning">Warning</button>
<button type="button" class="btn btn-danger">Danger</button>
<button type="button" class="btn btn-link">Link</button>

The only thing required in this file is the script tag, which should be the same for any demo that you create in this app. The rest of the code is the markup with the styles that you want to show in the demo.

Additionally you can use the tag @demo to also show the snippet of code used in it. Like this:

* @stylesheet buttons.less Buttons
* @parent styles.base
* @description
* Global style definitions for all button elements.
* @demo src/base/bootstrap-custom/buttons/buttons-custom.html

Which will output like this:

Demos credit goes to Bootstrap Docs where we snap the code from.

Now, before you go bananas with this, there are a couple of more goodies that you can take advantage of:

  • Creating Style Sections
  • Creating Stylesheet Groups

Creating Style Sections

To create a style section you can use the tag @styles. This tag is sweet because it allows you to break down your stylesheet doc into sensible chunks that you can talk about and understand better.

For instance, in our example, we have styles for defining buttons in general, regardless of the markup that is used ( either a <button/> vs <a/> tag). And then we have definitions of color. With the @styles tag we can break the color definitions into their own section, not only to talk about them separately, but to be able to hyperlink to that section directly.

This is how it works. In the same file buttons-custom.less, we are going to add the tag @styles right after the first block of styles and before the color variables. Here’s how it should look like:

* @stylesheet buttons.less Buttons
* @parent styles.base
* @description
* Global style definitions for all button elements.
* @demo src/base/bootstrap-custom/buttons/buttons-types.html
.btn {
display: inline-block;
* @styles buttons-colors Button Colors
* @description
* Buttons can be displayed in the following colors:
* @demo src/base/bootstrap-custom/buttons/buttons-color.html
@btn-default-color: #333;
There are a couple of things to point at here:
  • I updated the first demo to show only the button types.
  • I added a new comment block using the @styles tag. Here I gave it a unique name button-colors and the title of Button Colors. I also gave it a @description  and added a@demo  for it that only shows the button colors.

And here’s the output:

Notice that the new comment block is now a section within the “Buttons” doc, which you can also access directly using this url: http://localhost:8080/styleguide/buttons-colors.html

I personally find this super useful because you can point people to a specific section in the style guide, vs saying: “is in x page, under x section, then you need to scroll…and blah, blah, blah“. Instead you can provide a direct link to it, and end of the story.

Creating Stylesheet Groups

Additionally, you can also create sections or groups in the sidebar of the style guide. For this, open the file styles.md, located in the markdown directory.

You will notice here a new tag called @group.

@page styles Styles
@group styles.theme 0 Theme
@group styles.base 1 Baseline
The styles shown in this section show how elements are styles with definitions from the Bootstrap framework, in addition to any customizations made for this specific project. Therefore they will be available for use in any part of the application.

Now let’s break down the second line:


The @group tag allows you to create a section in the sidebar that appears under the parent section. For example, the groups: “Theme” and “Baseline” will appear under the parent section of “Styles”.


This is the unique name for the group. A good practice to follow here is to use the name of the parent section, in this case “Styles” as a namespace. In this way, if you want to create another group with the same name, but under a different section, the name of the group will remain unique.


This is the order in which the group should appear, which starts with 0. If no order is assigned, then the list of groups will be shown in alphabetical order.


This is the actual name that will show in the sidebar, so you can use multiple words with spaces and other characters.

To see groups in action, let’s add a new group as follows:

@page styles Styles
@group styles.theme 0 Theme
@group styles.base 1 Baseline
@group styles.forms 2 Forms
The styles shown in this section show how elements are styles with definitions from the Bootstrap framework, in addition to any customizations made for this specific project. Therefore they will be available for use in any part of the application.

Finally, let’s add an existing doc under this new section. For this open the file forms-custom.less:

And on line 3, replace styles.base for styles.forms.

* @stylesheet forms-custom.less Form Elements
* @parent styles.forms

Then run the docs and refresh the browser. You will now see the “Form Elements” doc under the group “Forms” in the sidebar.

Wrap Up

Living Style Guides are a tool to create more consistent and cohesive UI designs, and you can really take advantage of them when applying the Style Guide Driven Development Approach and when designing in a Modular Way.


You, building living style guides at this point!

At this point, if you have been following along you should now have a running Living Style Guide, and a well thought-out plan to create a LSG that you can use as a baseline for other projects.


[– Originally posted on the Bitovi blog, republished with the author’s permission. –]


20 Best New Portfolio Sites, January 2018

And it’s here! January 2018 has arrived in all its cold, cold glory, and I just spent the first few days of it looking at portfolio sites. I do it all for you, dear Readers. I do it all for you.

This month doesn’t have a particularly specific theme, unless you count pretty much every variation of minimalism. There’s nothing completely new, and nothing completely old. I’m seeing more and more effort being made to strike a balance between extreme design philosophies, and I have to say that I’m quite liking some of the results.

Note: I’m judging these sites by how good they look to me. If they’re creative and original, or classic but really well-done, it’s all good to me. Sometimes, UX and accessibility suffer. For example, many of these sites depend on JavaScript to display their content at all; this is a Bad Idea (TM), kids. If you find an idea you like and want to adapt to your own site, remember to implement it responsibly.


CRUX takes home the award for commitment to a concept. They work a lot with video, so they went and applied the timeline concept to the navigation on their one-pager. We’ve seen this once before in a previous portfolio article, but CRUX takes a less minimalist approach to the concept.

Fons Hickmann

Fons Hickmann’s portfolio is a shiny new example of what I’m calling the “Brutal Powerpoint” style of design. (W000! My first made-up trend name of 2018 has just happened, people! And no one has told me to stop yet.)

It’s all about mixing elements of minimalism, brutalism, and presentation-style sites to create something that feels like it was torn from two completely different design manuals.

Ben Mingo

Ben Mingo’s portfolio is classically minimalist, spiced up with animation. It’s on this list primarily because its layout and typographical elements are just that lovely.

My only peeve would be that I can’t use my scroll wheel on the home page. Drag-to-navigate is a normal interaction on mobile, but it seems clunky and inefficient on the desktop.


Zero uses a moderately stylized form of minimalism for its agency site. That balance between style and classic minimalism results in a site that is easy enough to navigate, but is still loaded with personality and potential.


Adoratorio is a slick-yet-simple example of minimalism gone animated. It’s clean, it’s pretty. I’m actually kind of impressed by the way they implemented that slideshow on the home page. I’m still not sure slideshows are the best thing ever, but I like the way this one was done.

Root Studio

Root Studio is here because it uses yellow in a perfectly pleasant way. It’s here because the typography is lovely and very, very readable. And because I turned off the JavaScript and everything worked perfectly.

Ugh, I told myself I was gonna get off that particular high horse for a while, but I still love it when I find a site that degrades gracefully. Whatever. Root Studio = good. Go look at it.

The Glyph Studio

The Glyph Studio uses a highly presentational design. Considering one of their clients is Wix, I’m assuming that’s what they were going for. While highly animated, everything is tasteful and, dare I say, elegant. They obviously had an art director working on their case studies.

Gabe Abadilla

I’d just like to give credit to Gabe Abadilla for embracing the inevitable nickname/meme and buying “gabadilla.com”. He’s a good sport. He’s also got a lovely one-page portfolio.

It’s nothing too experimental, or out of the ordinary. It just looks good and works better. I would define the design aesthetic as aggressively pleasant, more than anything else.

Jake Stangel

Jake Stangel combines pastels, minimalism, and background video to create a simple experience that just gets the point across. I do feel some of the text could use a bit more contrast, but the presentation of the imagery stands out more than enough to make up for it.

Ben Wegscheider

This one is on the list just for the “odd” factor. From the get-go, this portfolio hits you with animated effects straight out of that old ’70s sci-fi movie you have on VHS. And it doesn’t really stop. To counter the somewhat distracting animation, the rest of the site is dead simple, with large typography that mostly stays readable, even over everything else that’s going on.


Wibicom’s presentation-style portfolio is pretty standard, as these things go. I do find it interested that scrolling down on the home page takes you straight to the navigation menu.

No intro content, no frills beyond a bit of background animation. They just throw you straight into the browsing. The trend continues throughout the site, as they seem to depend more on their imagery to do the talking.


Sympozium is a French design agency with a lovely site that looks classically professional while incorporating a couple more modern trends like asymmetry. It’s clear that every page has a bit of art direction to it, which is mostly evident in the layout.


Round uses a style of minimalism that almost feels like the old days, now. It brings back the simple grid, the thick lines and almost thicker type.

It also splits the navigation in an interesting way. The actual portfolio part of the site is organized as an almost separate entity, and browsing that part of the site will display portfolio-specific navigation. Head to the part of the site that tells you all about the studio, and the main palette changes, along with the primary navigation.

The experiences are similar enough that the transition doesn’t feel too jarring; but they clearly design the portfolio experience to focus on browsing through their work, and the rest for the user who’s ready to get serious.

Tao Tajima

Tao Tajima is a filmmaker, and his website features his work by pretty much constantly being in motion. Animation and background video (as well as embedded video) are pretty heavily featured.

IPG Mediabrands

It’s been a while since I’ve reviewed a site that was as corporate-sounding as IPG Mediabrands. Their site is (who could have possibly guessed?) very visually corporate as well. It’s like the bank brochures I read as a child — while waiting for the adults to get done with the bank stuff already — grew up and turned into websites.

And none of that is criticism. Take one look at their list of clients, and you’ll get why they went with the corporate look. Plus, they use yellow really well.


Contemple went as wild with their design and animation as they did with their URL. And hey, if you’re going to make your site look like an advanced PowerPoint, why not go all out? There’s a lot of animation, but it’s pretty good animation.

Pierre Georges

Pierre Georges’ portfolio won’t blow any minds with weirdness. It’s just a clean, pleasant portfolio with big text, and much bigger images. Enjoy.

Jessica Chabot

Jessica Chabot’s portfolio takes a dead-simple, and makes it stand out with a few simple flourishes. That white space at the right, the white space in general. The site feels “feature-complete”, even with a bare minimum of content.

I’m not sure about that disappearing logotype, but hey. Can’t win ’em all.

Brad Geiger

Brad Geiger’s portfolio is an example of how post-minimalism is starting to trend back toward classic minimalism. We’ve got the now-familiar asymmetrical and staggered layout combined with the thick sans type and monochromatic tendencies of yesteryear.

Well, they do say life is about achieving balance. I think this site pulls it off.


Bibliothèque brings us a pretty-if-simple portfolio built around masonry layouts. Given this central concept, it’s pretty much all images. Just one giant image gallery, and some contact info. And it works.