<link href="mobile.css" rel="stylesheet" media="screen and (max-width: 600px)">
But as the page loads, you’re on a desktop browser where the screen is 1753px wide. The browser should just skip loading that stylesheet entirely, right? It doesn’t. Thomas Steiner explains:
it turns out that the CSS spec writers and browser implementors are actually pretty darn smart about this:
The thing is, the user could always decide to resize their window (impacting width, height, aspect ratio), to print the document, etc., and even things that at first sight seem static (like the resolution) can change when a user with a multi-screen setup moves a window from say a Retina laptop screen to a bigger desktop monitor, or the user can unplug their mouse, and so on.
(This is a sponsored article.) WordPress has changed the way we make websites and millions of people use it to create websites today. But this tool has a few significant limitations — it requires time and coding skills to create a website.
Even when you have aquired coding skills, jumping into code each time when you need to solve a problem (add a new UI element or change styling options for existing one) can be tedious. All too often we hear: “We need to work harder to achieve our goals.” While working hard is definitely important we also need to work smarter.
Today, I’d like to review a tool that will allow us to work smarter. Imagine WordPress without design and technical limits; the tool that reduces the need to hand-code the parts of your website and frees you up to work on more interesting and valuable parts of the design.
In this article, I’ll review the Visual Composer Website Builder and create a real-world example — a landing page for a digital product — just by using this tool.
What Is Visual Composer Website Builder?
Visual Composer Website Builder is a simple and powerful drag-and-drop website builder that promises to change the way we work with WordPress. It introduced a more intuitive way of building a page — all actions involving changing visual hierarchy and content management are done visually. The tool reduces the need to hand-code the theme parts of a website and frees you up to work on valuable parts of the design such as content.
Content is the most important property of your website. It’s the primary reason why people visit your site — for content. It’s worth putting a lot of efforts in creating good content and use tools that help you to deliver the content in the best way to visitors with the least amount of effort.
Visual Composer And WPBakery
Visual Composer Website Builder is a builder from the creators of WPBakery Page Builder. If you had a chance to use the WPBakery Page builder before you might wonder what the difference between the two plugins is. Let’s be clear about these two products:
There are a few significant differences between the two:.
The key difference between WPBakery Page builder and Visual Composer is that WPBakery is only for the content part, while with Visual Composer Website Builder you can create a complete website (including Headers and Footers).
Visual Composer is not shortcode based, which helps generate clean code. Also, disabling the plugin won’t leave you with “shortcode hell” (a situation when shortcodes can’t be rendered without an activated plugin).
Now, Visual Composer Website Builder is not an ‘advanced’ version of WPBakery. It is an entirely new product that was created to satisfy the growing needs of web professionals. Visual Composer is not just a plugin; it’s a powerful platform that can be extended as user needs continue evolving.
A Quick List Of Visual Composer’s Features
While I’ll show you how Visual Composer works in action below, it’s worth to point out a few key benefits of this tool:
It’s a live-preview editor with drag-and-drop features, and hundreds of ready-to-use content elements that bring a lot of design freedom. You can make changes instantly and see end-results before publishing.
Two ways of page editing — using frontend editor and tree view. Tree view allows navigating through the elements available on a page and makes a design process much easier.
Ready-to-use WordPress templates for all types of pages — from landing pages and portfolios to business websites with dedicated product pages, because editing an existing template is a lot easier than starting from scratch with a blank page.
Visual Composer works with any theme (i.e. it’s possible to integrate Visual Composer Website builder into your themes)
Responsive design out-of-the-box. All the elements and templates are responsive and mobile-ready. You can adjust responsiveness for each independent column.
Header, footer, and sidebar editor. Usually the header, footer and sidebar are defined by the theme you’re using. When web professionals need to change them, they usually move to code. But with Visual Composer, you can change the layout quickly and easily using only the visual editor. This feature is available in the Premium version of the product.
An impressive collection of add-ons (it’s possible to get add-ons from the Hub or get them from third-party developers)
There are also three features that make Visual Composer stand out from the crowd. Here they are:
1. Visual Composer Hub
Visual Composer Hub is a cloud which stores all the elements available to the users. It’s basically like a design system that keeps itself updated and where you can get new elements, templates, elements, blocks (soon).
The great thing about Visual Composer Hub is that you don’t need to update the plugin to get new elements — you can download the elements whenever you need them. As a result, your WP setup isn’t bloated with a myriad of unused elements.
2. New Technical Stack
Visual Composer Website builder is built on a new technology stack — it’s powered by ReactJS and doesn’t use any of the WordPress shortcodes. This helps to achieve better performance — the team behind Visual Composer conducted a series of internal tests and showed that pages created with Visual Composer load 1-1.5s faster than the same layouts re-created with WPBakery.
3. API
Visual Composer Website builder has a well-documented open API. If you have coding skills, you can extend Visual Composer with your own custom elements which may be helpful for some custom projects.
How To Create A Landing Page With Visual Composer
In this section, I’ll show how to create a landing page for a digital product called CalmPod (a fictional home speaker device) with the new Visual Composer Website Builder.
Our journey starts in a WP interface where we need to create a new page — give it a title and click the ‘Edit with Visual Composer button.’
Creating A Layout For A Landing Page
The process of creating the page starts with building an appropriate layout. Usually building a layout for a landing page takes a lot of time and effort. Designers have to try a lot of different approaches before finding the one that works the best for the content. But Visual Composer simplifies the task for designers — it provides a list of ready-to-use layouts (available under the Add Template option). So, all you need to do to create a new page is to find the appropriate layout from the list of available options and see how it works for your content.
But for our example, we’ll select the Startup Page template. This template applies automatically as soon as we click the + symbol, so all we need to do is to modify it according to our needs.
Each layout in Visual Composer consists of rows and columns. The row is a base that defines the logical structure of the page. Each row consists of columns. Visual Composer gives you the ability to control the number of columns in a row.
Tip: Notice that Visual Composer uses different colored borders for UI units. When we select a row, we see a blue-colored border, when we select a column, we see an orange-colored border. This feature can be extremely valuable when you work on creating complex layouts.
The great thing about Visual Composer is that we can customize all properties of the layout — add/remove elements or change their styling options (such as margins, padding between elements). For example, we don’t need to dive into the code to alter the sizes of columns; we can simply drag and drop the borders of individual elements.
It’s important to mention that we can use either the visual editor or the tree view of elements to modify individual properties of UI elements.
By clicking on the ‘Pen’ icon, we activate a screen with individual styling properties for the element.
Stretch Content
Visual Composer allows making the layout either boxed or stretched. If you switch the ‘Stretch content’ toggle to ‘On’, your layout will be in full width.
Changing The Page Title
Visual Composer allows users to change the page title. You can do it in the Layout settings. Let’s give our page the following title: ‘CalmTech: the best digital assistant.’
Adding The Top Menu
Now it’s time to add a top menu to our landing page. Suppose we have the following menu in WP:
And we want to place it at the top of our newly created landing page. To do that, we need to go to Visual Composer -> Headers (because the top of the page is a default place for navigation) and create a new header.
As soon as we click on the ‘Add Header’ button, we’ll see a screen that asks us to provide a title for the page — let’s give it a name “Top header.” It’s a technical name that will help us identify this object.
Next, Visual Composer will direct us to the Hub where we can add all required UI elements to our header. Since we want to have a menu, we type ‘menu’ in the search box. The Hub provides us with two options: Basic menu and Sandwich menu. For our case, we’ll use the* Basic Menu* because we have a limited number of top level navigation options and want all of them to be visible all the time (hidden navigation such as Sandwich Menu can be bad for discoverability) .
Finally, we need to choose the menu source (in our case it’ll be Main menu, the one that we have in WP) and change the appearance of the navigation options.
Let’s change the alignment of the menu (we will move it to the right).
And that’s all. Now we can use our header page settings. Let’s modify our home page to include a Header. Hover over the *Please select Your Header*element, and you’ll see a button Add Header.
When you click on the button, you’ll see a dialog at the left part of the screen that invites you to select a header. Let’s choose the Top Header option from the list.
After we select a header, you’ll see a menu at the top of the page.
Making The Top Menu Sticky
The foundational principle of good navigation says that a navigation menu should be available for the users all of the time. But unfortunately, on many websites, the top navigation menu hides when you scroll. Such behavior forces users to scroll way back to the top in order to navigate to another page. It introduces unnecessary interaction costs. Fortunately, there’s a simple solution for this problem — we can make the top menu sticky. A sticky menu stays visible all the time no matter where the user is on a page.
To enable stickiness, we need to turn the Sticky toggle for our header On (for the whole Menu container) and add a margin 50-pixels margin to the Margin top.
When you scroll the landing page, you’ll notice that the header stays visible all the time.
Pairing Image With Text
Next comes a really exciting part — we need to describe our product to our visitors. To create a great first-time impression, we need to provide excellent images paired with a clear description. Text description and product picture (or pictures) should work together and engage visitors in learning more about a product.
We need to replace a default image with our image. Click on the image and upload a new one. We’ll use an image with a dart background, so we also need to change the background for the container. We need to select the row and modify the background color option.
Next, we need to add a text section to the left of the image. In the western world, users scan the page from left to right, so visitors will read text description and match it with the image. Visual Composer uses Text Block object to store the text information. Let’s replace a text that came with theme with our custom text “CalmTech A breakthrough speaker that adapts to its location.” Let’s also modify the text color to make the text more relevant to the theme (white for the title and a shade of gray for the subtitle).
Creating A Group Of Elements
We have a picture of a product and a text description, but still, one element is missing. As you probably guessed, it’s a call to action (CTA). Good designers don’t just create individual pages but a holistic user journey. Thus, to create an enjoyable user journey, it’s important to guide users along the way. At the time when visitors read the necessary information, it’s vital to provide the next logical step for them, and a CTA is a precisely right element for this role.
In our case, we’ll need two CTAs — ‘Buy now’ and ‘Learn More.’ The primary call to action button “Buy now” should come first and it should be more eye-catching (we expect that users will click on it). Thus, we need to make it more contrasting while the “Learn more” button should be a hollow button.
Visual Composer makes it easier to customize the general parameters for the UI element (such as a gap) as well as individual styling options. Since we’re interested in changing individual properties, we need to click on ‘Edit’ for a particular button.
Playing With Animation To Convey Dynamics And Telling Stories
People visit dozens of different websites on a daily basis. In such a highly competitive market web professionals need to create genuinely memorable products. One way to achieve this goal is to focus on building better user engagement.
It’s possible to engage visitors to interact with a product by conveying some dynamics. If you make a site less static, there’s a better chance that visitors remember it.
Visual Composer allows you to choose from a few predefined CSS animations of a particular element. When we open design options for any UI element we can find the option Animate. When we choose the animated option, it’ll be triggered once the element will be visible in the browser window.
Final Polishing
Let’s see how our page looks like for our site’s visitors. It’s obvious that it has two problems:
It looks a bit unfinished (we don’t have a logo of a website),
The elements have the wrong proportions (the text overpowers the image so the layout looks unbalanced).
Let’s solve the first problem. Go to the Headers section and select our Top Header. Click on ‘+’ element and select an object Single Image. Upload new image (the icon). Notice that we can modify the size of the image right in the Visual Composer. Let’s make the size of our icon 50px x 50px (in the Size section).
Now it’s time to solve the second problem. Select the first column and adjust the size of an text (set the size to 40 for the subheader). Here is how our page will look like after the changes.
Conclusion
Visual Composer Website Builder simplifies the process of page building in WordPress. The process of web design becomes not only fast and easy, but it also becomes more fun because designers have a lot more creative freedom to express their ideas. And when web professionals have more creative freedom, they can come up with better design solutions.
Designers and developers are hard at work creating tons of new goodies to make work life easier. This month’s roundup of tools for designers includes a smorgasbord of resources that includes everything from productivity and collaboration tools to icon and design kits to fonts that you’ll love.
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!
Drafta
Drafta is a team-based collaboration tool that allows you to store and share web and interface design screens. You can organize screens, share designs with a simple URL, store projects in one place, update activity and uploads and even gain inspiration from other projects. The tool has free and paid options (with integrations from other tools). The tool is designed to provide one-click access to every design screen in a project.
Galio
Galio is a free and open source framework to create mobile apps. It’s made to look great with plenty of ready-made components, typography options and a sleek base theme that you can adapt for each new project. It includes 11 screen options, more than 60 elements and more are getting added all the time.
DesignBase
DesignBase might be your new favorite tool. The website is a collection of curated resources for designers. It includes a database of UI kits, mockups, illustrations, color palettes, fonts, icons and stock photos. All in once place.
Playroom
Playroom is made so that you can simultaneously design across a variety of themes and screen sizes, powered by JSX and your component library. It allows you to create a zero-install code-oriented design environment, built into a standalone bundle that can be deployed alongside your existing design system documentation.
Dribbble for Sketch
Dribbble now works with Sketch. The new integration likely combines two of your favorite tools so that you can share what you are working on right in Dribble without having to export and add to your page. Just download the plugin to get started and post your shots.
Experimental Gradient Editor
If you like to play with gradients this pen from David A., is pure fun. Use the wheel to see different options and shift colors. Use light mode to see how colors look in different conditions and then copy your favorite gradient
Chatkit
Chatkit helps you build in-app messaging so that users can get in touch with your team without ever leaving your app. It works with new or existing app builds.
reCAPTCHA v3
Google’s popular captcha tool has been updated with a new version. reCAPTCHA v3 is an API that helps you detect abusive traffic on your website without user interaction. Instead of showing a CAPTCHA challenge, reCAPTCHA v3 returns a score so you can choose the most appropriate action.
Flashcards for Developers
Develop your skills the old-school way with a set of digital flashcards that help you learn or refresh your design and development skills. Collections include Python, JavaScript, C/C++ and computer science card sets.
Glorious Codes
Glorious Codes is an easy way to create animations to show your code in action. It’s an open source JavaScript library that uses an API to create animations for code samples.
Cosmos Pattern
This fun animated or still background pattern uses SVG to create an out of this world scene.
Toggle Buttons
It’s easy to see how this set of switches in different styles could be applied to projects. Each is made in pure CSS.
Colorblindly
Colorblindly is an extension that helps developers create websites for the people with colorblindness by allowing them to simulate experiences. The extension works by placing a CSS filter over the webpage that modifies color ratios in line with actual types of colorblindness. It includes eight settings.
April Landing Page Template
April is a landing page template, designed for startups. The design features plenty of white space and the free HTML landing page works on all device types.
Evericons
Evericons is a free set of line-style icons with plenty of options to choose from. Use them as is or add color for more impact.
Folder Icons
Folder Icons contains a set of 25 free icons in a line style with different folder actions depicted on each. The icons are in an editable vector format that you can use in a number of ways and for different projects.
Error Screen Illustrations
This set of error screen illustrations for mobile projects puts a fun – and visually interesting – spin on pages where things go wrong for the user. Having a delightful element when things go awry or users get lost can actually keep them looking for the right information. This set of illustrations is a great place to start.
Report: The Business Value of Design
Does design impact business performance? A report from McKinsey & Company shows the correlation, proving something that you may already know: Good design is good for business. The report is interesting reading for anyone in the design industry.
100 Days CSS Challenge
What could you create if you challenged yourself to something new every day? The 100 Days CSS Challenge provides an opportunity to try that every day and share your work with the community. Start with the daily template, recreate it, paste the pen. That’s it.
How Facebook 3D Photos Work
You are probably starting to see a few 3D photos in your Facebook feed. This article explains how that technology works, in case you are interested. (It’s pretty cool.)
Graphpack
Graphpack lets you create GraphQL servers with zero configuration. It includes features like Live Reloading, GraphQL Playground, GraphQL Imports.
Anaheim Script
Anaheim Script is a handwriting style script with a lot of charm. It’s readable with thin clean lines and includes plenty of fun elements such as swashes, alternates and ligatures. It includes a full character set and numerals.
Classy Beautiful Sans
Classy Beautiful Sans features a limited character set with uppercase option and a few alternates, in a retro style. It could make a nice display option or be used in branding.
Kontiki
Kontiki is a cool typeface that simulates a handmade woodprint. To create the typeface the designer manually cut 193 glyphs into wooden plates and printed them by hand. The font includes 560 characters in several styles with a full character set. Styles range from the filled German option to the less filled French variant.
Lineall Medium
Lineall Medium is a funky font that can make for a fun display option. It includes an all uppercase character site and is free for all uses – even commercial.
TT Firs Neue
TT Firs Neue is a highly readable and usable sans serif. It has a contemporary style with plenty of options in this robust font family.
It’s ironic to me that the numeronym “a11y” lacks accessibility: it’s not immediately decipherable by humans who aren’t “in the club”; and, in some fonts, it’s visually indistinguishable from the word “ally” (with lowercase L’s), which can foil searches for clarity.
Because I bet it took me a year after seeing that acronym (“numeronym”, I guess) for the first time to know that was just a stand-in for the word “accessibility”. I’m only now just understanding that “i18n” means “Internationalization” and “l10n” means “Localization”. I wonder how many conversations or articles I’ve missed because I just assumed the weird moniker was referring to something that had nothing to do with me. On the flip side, I wonder what good has come from having these cool words form a banner to rally under.
Lots of good conversation in that thread. I don’t know enough to have an opinion about whether anyone else should or shouldn’t use it, but remembering my own confusion, I think I’ll avoid it around here.
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.
Someone Made Ocean Wave Simulation as Real as Possible Using WebGL
Migrating Away from Google Maps and Cutting Costs
Redesigning your Product and Website for Dark Mode
8 Things your Website Better not Have in 2019
Butter Cake: A Modern CSS Framework Based on Flexbox
Spectre.css – A Lightweight, Responsive and Modern CSS Framework
10 Ways to Be a Successful Freelancer
Palx
Samsung Finally Teases Folding Phone After Years of Rumors
Playful Physics – Liquid in Web Design
A Beautifully Minimalist Render of your Location Inside of Every New Tab.
Freelancer’s Guide to Surviving the Famine Cycle
New Google Contacts Web App is Here to Stay, Becoming Only Option in 2019
How to Design a Payment Form your Customers will Actually Complete
A Contract for the Web
Samsung One UI
The Tried and True Laws of UX
4 Ways to Improve Robinhood
“User Research … But Why?”
Case Study: Creating Design Principles for a Team at Shopify
No More than 4 Colours and Still Cool
Why do People Leave your Website?
Most of Us are Cats!
Automation Threatens to Make Graphic Designers Obsolete
Five Lessons from a 1,000-year-old Design System
Want more? No problem! Keep track of top design news from around the web with Webdesigner News.
In the grand tradition of every single poll question I’ve ever posted, the poll below has a has a fundamental flaw. In this case, there is no option between “In the last month” and “Never” but, alas, the results are interesting:
When’s the last time you SFTP’d (or the equiv) into a server and changed a file directly?
What I was trying to get at with this poll is how many people do and don’t do any sort of editing of production files directly and instead work locally. I don’t think I need to launch a major investigation to know that it’s most people and more than in the past.
Most workflows these days have us working locally and pushing new and updated files through a version control system, and even through systems beyond that, perhaps continuous integration processes, testing processes, actions, deployment — it’s big world of DevOps out there! Rarely do we skip the line and dip our fingers into production servers and make live manipulations. Cowboy coding, they sometimes call it.
But just because you don’t generally code that way doesn’t mean you never do it, which is another flaw of this poll. I know DevOps nerds who are constantly SSH-ing into servers to manipulate configuration files. I personally still hop into Coda and will directly SFTP into servers sometimes to edit .htaccess files, which are sometimes on my production sites and dev sites and that I generally .gitignore.
Anyways, I think this is a fun thing to talk about, so feel free to have at it in the comments. I’d love to hear to what degree you cowboy code. Still do it all the time and love it? Do you do it because you haven’t learned another way or that’s how your workplace demands? Do you have a personal philosophy about it? Let the rodeo begin. ?
Among the questions I am most frequently asked is some variety of the question, “Should I use CSS Grid or Bootstrap?” In this article, I will take a look at that question. You will discover that the reasons for using frameworks are varied, and not simply centered around use of the grid system contained in that framework. I hope that by unpacking these reasons, I can help you to make your own decision, in terms of what is best for the sites and applications that you are working on, and also for the team you work with.
In this article when I talk about a framework, I’m describing a third party CSS framework such as Bootstrap or Foundation. You might argue these are really component libraries, but many people (including their own docs) would describe them as a framework so that is what we will use here. The important factor is that these are something developed externally to you, without reference to your specific issues. The alternative to using a third party framework is to write your own CSS — that might involve developing your own internal framework, using a bunch of common files as a starting point, or creating every project as a new thing. All these things are done in reference to your own specific needs rather than very generic ones.
Why Choose A CSS Framework?
The question of whether to use Grid or a framework is flawed, as CSS Grid is not a drop-in replacement for the things that a CSS framework does. Any exploration of the subject needs to consider what of our framework CSS Grid is going to replace. I wanted to start by finding out why people had chosen to use a CSS framework at all. So I turned to Twitter and posted this tweet.
A question: if you have chosen to use a CSS framework (Bootstrap, Foundation etc.) for your project, what were the main reasons for doing so?
There were a lot of responses. As I expected, there are far more reasons to use a framework than simply the grid system that it contains.
A Framework Gives Your Team Ready Made Documentation
If you are working on a project with a number of other developers then any internal system you create will need to also include documentation to help your team members use it effectively. Creating useful documentation is time-consuming, skilled work in itself, and something that the big frameworks do very well.
Framework documentation came up again and again, with many experienced front-end developers chipping in and explaining this is why they would recommend and use a CSS framework. I sometimes hear the opinion that people are using frameworks because they don’t really know CSS, many of the people replying, however, are well known to me as expert CSS developers. I’m sure that they are sometimes frustrated by the choices made by the framework, however, the positive aspects of that choice outweigh that.
Online Communities: Easy Access To Help
When you decide to use a particular tool, you also gain a community of users to ask for help. Unless you have a very clear CSS issue, and can produce a reduced use case to demonstrate it, asking for help with CSS can be difficult. It is especially so if you want to ask how to approach building a certain component. Using a framework can give you a starting point for your question; in general, you will be asking how to modify or style a particular component rather than starting from scratch. This is an easier thing to ask, as well as an easier thing to answer.
The Grid System
Despite the fact that we have CSS Grid, many people replied that the main reason they decided to use a framework was for the grid system. Of course, many of these projects may have been started a long time before CSS Grid was available. Even today, however, concerns about backwards compatibility or team understanding of newer layout methods might cause people to decide to use a framework rather than adopting native CSS.
Speed Of Project Delivery
when having a unique design and efficient css were a much lower priority than the due date
Opting for a framework will, in general, make it far quicker to deliver your project, in particular if that project fits very well with the way the framework does things and doesn’t need a lot of customization.
In the case of developing an MVP for a new idea, a framework may well be an excellent choice. You will have many things to spend time on, and be still testing assumptions in terms of what the project needs. Being able to develop that first version using a framework can help you get the product in front of users more quickly, and save burning up a lot of time developing things you then decide not to use.
I go with a framework on anything that’s an MVP — minimal dev effort on tooling and frameworks to optimise for time working on the actual concept.
I make my own CSS “framework” on anything that’s a redo of an existing large-scale site/app.
Another place where speed and a bunch of ready built components can be very useful is when developing the backend admin system for a site or application. In the case where you simply need to create a few admin screens, a framework can save a lot of time styling form fields and other components! There are even dashboard themes for Bootstrap and Foundation that can give a helpful starting point.
I’m Not A Designer!
This point is the reason I’ve opted for a CSS framework in the past. I’m not a designer, and if I have to both design and build something, I’ll spend a long time trying to make design decisions I am entirely unqualified to make. It would be lovely to have the funds to hire a designer for every side project, however, I don’t, and so a framework might mean the difference between shipping the thing and not.
Dealing With CSS Bugs And Browser Compatibility Issues
Mentioned less than I thought it might be was the fact that the framework authors would already have dealt with browser issues, be that due to actual bugs or lack of support for certain features. However, this was still a factor in the decision-making for many people.
To Help With Responsive Design
Responsiveness of web pages . I found it difficult for me to decide breakpoints for web pages.
This came up a few times; people were opting for a framework specifically due to the fact it was responsive, or that I made decisions about breakpoints for them. I thought it interesting that this specifically was something called out as a factor in choosing to use a framework.
Why Not Use A Framework?
Among positive reasons why frameworks had been selected were some of the issues that people have had with that choice.
Difficulty Of Overriding Framework Code
Many people commented on the fact that it could become difficult to override the code used in the framework, and that frameworks were a good choice if they didn’t need a lot of overriding. The benefits of ease of use, and everyone on the team understanding how to use the framework can be lost if there are then a huge number of customizations in place.
All Websites End Up Looking The Same
The blame for all websites starting to look the same has been placed squarely at the door of the well known CSS frameworks. I have seen sites where I am sure a certain framework has been used, then discover they are custom CSS, so prevalent are the design choices made in these frameworks.
The difficulty in overriding framework styles already mentioned is a large part of why sites developed using a particular framework will tend to look similar. This isn’t just a creative issue, it can be very odd as a user of a few websites which have all opted for the same framework to feel that they are all the same thing. In terms of conveying your brand, and making good user experience part of that, perhaps you lose something when opting for the generic choices of a framework.
Inheriting The CSS Problems Of The Entire World
Whether front or back-end, any tool or framework that seeks to hit the mainstream has to solve as many problems as possible. Unless the tool is tightly coupled to solving one particular use-case it is going to contain a lot of very generic code, and code which solves problems that you do not have, and will never have.
You may be in the fortunate position of only needing your full experience to be viewed in the most current browsers, allowing for a more limited experience in Internet Explorer, or older versions of Chrome. Using a framework with lots of built-in support going back to IE9 would result in lots of additional code — especially given the improvements in CSS layout recently. It might also prevent you from being creative, as everything in the framework is assuming this requirement for support. Things which are possible using CSS may well be limited by the framework.
As an example, the grid systems in popular frameworks do not have an ability to span rows, as there isn’t any concept or rows in layout systems prior to Grid Layout. CSS Grid Layout easily allows for this. If you are tied to the Bootstrap Grid and your designer comes up with a design that includes elements which span rows, you are left unable to implement it — despite the fact that Grid might be supported by your target browsers.
Performance Issues
Related to the above are performance issues inherent in using fairly generic code, rather than something optimized for the exact use cases that you have. When trying to improve performance you will find yourself hitting up against the decisions of the framework.
Increased Technical Debt
Speed, mainly, though we quickly found out it was a bit of a false economy because it created substantial technical debt in the long run.
While a framework might be a great way to get your startup quickly off the ground, and at the time of making that decision you are sure that you will replace it, is there a plan to make that happen?
Learning A Framework Rather Than Learning CSS
When talking to conference and workshop attendees, I have discovered that many people have only ever used a framework to write CSS. There is nothing wrong with coming into web development via one of these tools, given the complexity of the web platform today I imagine that will be the route in for many people. However, it can become a career-limiting choice, especially if the framework you based your skills around falls out of favor.
Having front-end developers without CSS knowledge should worry a company. It makes it incredibly hard to move away from that framework if your team doesn’t actually understand how to do CSS without it. While this isn’t really a reason not to use a framework, it is something to bear in mind when using one. When the day comes to move away you would hope that the team will be ready to take on something new, not needing to remember (or learn for the first time) how to write CSS!
In our race to get our site built quickly, our desire to make things as good as possible for ourselves as the designers and developers of the site, do we forget who we are doing this for? Do the decisions made by the framework developer match up with the needs of the users of the site you are building?
Can We Replace Frameworks With “Vanilla” CSS?
If you are considering replacing your framework or starting a new project without one, what are some of the things that you could consider in order to make that process easier?
Understand Which Parts Of The Framework You Need
If you are replacing the use of a framework with your own CSS, a good place to start would be to audit your use of the current framework. Work out what you are using and why. Consider how you will replace those things in the new design.
You could follow a similar process when thinking about whether to select a framework or write your own. What parts of this could you reasonably expect to need? How well does it fit with your requirements? Will there be a lot of code that you import, potentially ask visitors to download, but never make use of?
Create A Documented Pattern Library Or Style Guide
I am a huge fan of working with pattern libraries and you can read my post here on Smashing Magazine about our use of Fractal. A pattern library or a style guide enables the creation of documentation along with all of your components. I start all of my projects by working on the CSS in the pattern library.
You are still going to need to write the documentation, as someone who writes documentation, however, I know that often the hardest thing is knowing where to start and how to structure the docs. A pattern library helps with this by keeping the docs along with the CSS for the component itself. This approach can also help prevent the docs becoming out of date as they are tightly linked to the component they refer to.
Develop Your Own CSS Code Guidelines
Consistency across the team is incredibly useful, and without a framework, there may be nothing dictating that. With newer layout methods, in particular, there are often several ways in which a pattern could be built, if everyone picks a different one then inconsistencies are likely to creep in.
Better Places To Ask For Help
Other than sending people in the direction of Stack Overflow, it seems that there are very few places to ask for help on CSS. In particular there seem to be few places which are approachable for beginners. If we are to encourage people away from third-party tools then we need to fill that need for friendly, helpful support which comes from the communities around those tools.
Within a company, it is possible that more experienced developers can become the CSS support for newer team members. If moving away from a framework to your own solution, it would be wise to consider what training might be needed to help bridge the gap, especially if people are used to using the help provided around the third party tool when they needed help in the past.
Style Guides Or Starting Points For Non-Designers
I tie myself in knots with questions such as, “Which fonts should I use?”, “How big should the headings be in relationship to the body text?”, “Is it OK to use a drop shadow?” I can easily write the CSS — if I know what I’m trying to do! What I really need are some rules for making a not-terrible design, some kind of typography starting point, or a set of basic guidelines would replace being able to use the defaults of a framework in a lot of cases.
Educating People About The State Of Modern Browser Interoperability
I have discovered that people who have been immersed in framework-based development for a number of years, often have a view of browser interoperability which is several years out of date. We have never been in a better situation in terms of CSS working cross-browser. It may be that some browsers don’t support one new shiny bit of CSS, but in general, CSS (when supported) won’t be full of strange bugs. For example, in almost all cases if you use CSS Grid in one browser your CSS will work in exactly the same way in another.
If trying to make a case for not using a framework to team members who believe that the framework saves them from browser bugs, this point may be a useful one to raise. Are the browser compatibility problems real, or based on the concerns of the past?
Will We See A New Breed Of Frameworks?
Something that interests me is whether our new layout methods will help usher in a new breed of tools and frameworks. Will we see tools which take advantage of new layout methods, allow for more creativity but still give teams and individuals some of the undeniable advantages that came out of the responses to my tweet.
Perhaps by relying on new layout methods, rather than an inbuilt grid system, a new-style framework could be much lighter, becoming a collection of useful components. It might be able to then get away from some of the performance issues inherent in very generic code.
An area a framework could help with would be in helping to create solid fallbacks for browsers which don’t support newer layout methods, or by having really solid accessibility baked into the components. This could help provide guidance into a way of working that considers interoperability and accessibility, even for those people who don’t have these things in the forefront of their minds.
I don’t think that simply switching the Bootstrap Grid for CSS Grid Layout will achieve this. Instead, authors coming up with new frameworks, should perhaps look at some of the reasons outlined here, and try to solve them in new ways, using the new functionality we have in CSS to do that.
Should You Use A Framework?
You and your team will need to answer that question yourself. And, despite what people might try to have you believe, there is no universal right or wrong answer. There is only what is right or wrong for your project. I hope that this article and the many responses to my original question might give you some things to discuss as you ponder that question.
Remember that the answer will change over time. It might be a useful thought experiment to not only consider what you need right now, in terms of initially doing the development for the site, but consider the lifespan of the site. Do you expect this still to be around in five years? Will your choice be a positive or negative one then?
Document your decisions, don’t be afraid to revisit them, and do ensure that you and your team maintain your skills outside of any framework that you decide to use. That way, you will be in a good place to move on in future and to make the best decisions for the next phases of your project.
I’d love the conversation started in that tweet to continue. Let us know your stories in the comments — they may well help other folks trying to work out what is best for their projects right now.
But how do we get our hands on individual bits of that HTML? We don’t exactly have references to anything, even the whole chunk we put in.
I just saw this little lib called Facon that looks to do just this. It makes use of tagged template literals, which is super cool:
import f from 'facon';
const data = {
title: "Title",
content: "Content"
};
let html = f`
<div class="module">
<h2>${data.title}</h2>
<p>${data.content}</p>
</div>
`;
document.body.appendChild(html);
This skips the need for our little getNodes function, but more importantly, we can yank out those references!
let html = f`
<div class="module">
<h2 ref="title">${data.title}</h2>
<p ref="content">${data.content}</p>
</div>
`;
let { title, content } = html.collect();
title.innerText = "Title Changed!";
Taku Oomura is an award-winning Japanese Designer who came up with an innovative idea that made his name known worldwide. He started working on a project called “Trial and Error” a while back which received praise worldwide. Oomura took companies with popular logos and transformed them into useable everyday objects. How does he do it? Simply by designing them and printing them out on his 3D printer. Let’s see what he came up with.
While some believe that the Japanese Designer created too many object holding tools, others find them unique and useful. After all, these logos were not at all designed for what he recreated them to do. Many of the logos he used belong to Japanese brands that many of us have never heard before, but even so, we can appreciate the idea and enjoy the product, it is, indeed, useful. Today we are putting our judges masks on, and we will see which of these objects can really ease our life, and which ones are totally useless. Join us on this trip!
1. Adidas – pen holder
Although this particular design can only two pens, the individual bars that make up the logo are long enough to hold your pen perfectly in place. It’s quite a futuristic look and would look killer on an executive’s desk at Adidas Corporate office. Even if you’re just a relly big fan of the fan, this design would be easy to incorporate with many different styles at home.
2. Bluetooth
Who would have thought that a simple rotation and the right placement would have turned the Bluetooth logo into a very unique bowtie? Apparently, Japanese designer Taku Oomura did.
3. Jordan
Michael Jordan’s impressive mid-air pose makes for a great hanger. This would be the perfect gift for anyone who is a fan of basketball or the Jordan brand in general.
4. McDonald’s
Even though this has the potential of a creative design, I can’t imagine, unfortunately, that many people would actually buy, or even use a paper clip like this. No hate on McDonald’s, nor on the designer, but the McDonald’s brand doesn’t exactly scream paper clip. Nor does it look fashionable.
5. Nike
The swoosh from Nike makes for a very convenient way of opening envelopes. Because of its sharp and pointy ends, you can slice open any letter with ease.
6. Honda
The curve of the edge in the Honda logo makes for the perfect shape for a bottle opener. It doesn’t look like the easiest bottle opener to manipulate, but it looks like it gets the job done.
7. Twitter
Although it’s pictured as an orange peeler, the Twitter logo could probably be used for a lot of other things. Basically anytime you need something cut. It would probably be perfect for opening packages and cutting tape.
8. Yahoo
The stationary holder depicting Yahoo’s image looks rather inefficient. All it takes is mall bump and dozens of paper clips go flying. interesting in concept, but not very practical in the real world.
9. Coca-Cola
Unless you are a brand’s ambassador I can’t imagine that you’d wear this for a fashion statement. Nonetheless, it is pretty cool how the logo is embodied with such a simple design. It would be even cooler if the ring had more than one use.
10. Jr.
I find it cool how you can’t tell that the tablet support embodies a logo unless you look at it from a certain angle. The design looks modern and doesn’t take up as much room as other tablet holders do.
11. Pocari Sweat
For those of you who are not familiar with this brand, Porcari Sweat is a water and ice company. The relation between the design object and the logo is carefully chosen, this being the first object that actually is connected to the product the logo represents.
12. Taisho Pharmaceutical
I honestly think that this design was far too complex for such a simple object. It’s a cool logo, though, it’s just a little over the top for a paper holder.
13. Kobayashi.
This is another Japanese brand that most of the non-Japanese people have never heard about. The attempt of making its logo a usable item is quite stretched. Usually, the incense stick holder have a much elegant touch than the three pieces of blue plastic, which, if you missplace them, don’t even look like the logo anymore.
14. Marudai
Marudai is a Japanese food company featuring the given logo. We can appreciate the effort, but the usable object is not that usable, after all. A family of six would need three of those toothbrush holders, which would take way too much room.
15. Louis Vuitton
The napkin or/and little notes holder has the potential of a great gift for a person who loves the brand and works in a fancy office.
16. Seino
In order to unserstand why this cangoroo has so many legs, we have to know what the company is all about. Seino is a Japanese transportation company that makes itself remarkable due to its fast delivery. Thus the logo which was turned into a comb. I have to admit it, I think this is a very clever idea.
17. Playstation
I’d like you all to comment in the section below if you know what this is and how does it work. I’m confused.
18. Maruchan
This is one of those objects that people would buy just because they are cool and innovative, and to brag about at friends.
19. Toys“R”us
Sometimes, bottles simply don’t open and you pass it to several people until somebody manages to break the seal. This user object will help you open the hardest to open bottles. I see how this could be a great gift for grandparents who are not as strong as they used to.
20. Youtube
We conclude this article with the most useless “useful” object of all. A block of plastic on a plastic stick has a compromised purpose unless somebody elucidates its mistery.