Archive

Archive for February, 2017

Code Smells in CSS

February 9th, 2017 No comments

Harry Roberts, Code Smells in CSS, Part 1:

  • Undoing Styles
  • Magic Numbers
  • Qualified Selectors
  • Absolute Values
  • Brute Forcing
  • Dangerous Selectors
  • Reactive !important
  • IDs
  • Loose Class Names

Part 2:

  • @extend
  • String Concatenation for Classes
  • Background Shorthand
  • Duplicated Key Selectors
  • Classes in Wrong Components
  • Non BEM
  • @import

Direct Link to ArticlePermalink


Code Smells in CSS is a post from CSS-Tricks

Categories: Designing, Others Tags:

Best of 2016: 100 Free PSD Website Templates

February 9th, 2017 No comments

Welcome back to our series featuring the most exceptional free stuff that was given away in 2016. Today’s post is dedicated to free PSD website templates. The entire previous year designers around the Globe shared with the community freebies that were made with the mainstream in mind. Our collection is a reflection of web design trends that ruled the roost in 2016.

Here you will manage to find website templates with the outstanding layered aesthetics, powerful geometric vibe, strict, and on the contrary, flexible structures, trendy split layouts, cards, Material Design-inspired touches and much more. As for the coloring, despite the celeb pair of rose and quartz, various shades of purple and blue along with the ageless and resilient light color scheme dominated the entire last year. And that’s not all; gradients and provocative color choices were quite popular as well, giving the interfaces a cutting-edge feel and excited the minds of the others.

Of course, we could not help but include templates that stuck to a traditional route: those that opted for the time-proven three-column layouts or long one-column pages with a calm and serene atmosphere or business-like flair.

Dive into our list and see what we have prepared for you.

Discover Greece – Travel Agency free PSD web template

Creator: Henry Reyes
License: Free for personal and commercial use.

SKOKOV Profit – Free Business PSD Template


Creator: Sergey Skokov
License: CC BY-NC 4.0.

Hotelin


Creator: Hafid Fachrudin
License: Declared as Free, no proper license given.

Luna


Creator: Symu.co
License: Declared as Free, no proper license given.

404 Page


Creator: Antony Nosenko
License: Declared as Free, no proper license given.

Selene PSD Template


Creator: Patryk Wasik
License: Declared as Free, no proper license given.

Travel Landing Page


Creator: Aztech Design
License: Declared as Free, no proper license given.

Archi Next Website


Creator: Shahin Srowar
License: Declared as Free, no proper license given.

Corporate Web Design Template


Creator: Sergey Skokov
License: CC BY-NC 4.0.

OUCN PSD Template


Creator: CRISS SAMSON
License: Declared as Free, no proper license given.

Shopy


Creator: ISLAM USRY
License: Declared as Free, no proper license given.

Zest


Creator: Kina Bayra
License: Declared as Free, no proper license given.

Celta Landing Page


Creator: Alex Nowicki
License: Declared as Free, no proper license given.

Clemo Website Template


Creator: Illia Nesterov
License: Declared as Free, no proper license given.

Futyle Online Store


Creator: Criss Samson
License: Declared as Free, no proper license given.

Unum


Creator: Frank van Deursen
License: Declared as Free, no proper license given.

Rage – Digital Agency Template


Creator: Ruhfayed Sakib
License: Attribution-NonCommercial-NoDerivatives.

PSD Template for Business


Creator: Alexandr Bilchenko
License: Only with a permission from the author.

Free Psd CV & Portfolio Theme


Creator: Gökhan Kara
License: Declared as Free, no proper license given.

Landing Page


Creator: Sergi
License: Declared as Free, no proper license given.

Personal – Free One Page Website


Creator: Web Donut
License: Declared as Free, no proper license given.

Agencia


Creator: Web Donut
License: Declared as Free, no proper license given.

Brandly


Creator: Web Donut
License: Declared as Free, no proper license given.

Mastering – eBook landing page PSD template


Creator: commit2design
License: Declared as Free, no proper license given.

Panorama App – Landing page PSD template


Creator: Henry Reyes
License: Declared as Free, no proper license given.

Black and White Portfolio


Creator: Sergey Skokov
License: CC BY-NC 4.0.

Ohmyshop – Responsive web shop template


Creator: Loic Leser
License: Declared as Free, no proper license given.

MeshApp – flat mobile app landing page


Creator: Andrei Dulcu
License: Declared as Free, no proper license given.

Suada – trendy mobile app PSD template


Creator: Cosmin Negoita
License: Declared as Free, no proper license given.

Colingz – personal diary PSD template


Creator: Shamsuddin Delwar
License: Free for personal and commercial use.

Clean PSD template for surfing websites


Creator: Robert Mayer
License: Declared as Free, no proper license given.

Portfolio Site


Creator: Ali Sayed
License: Declared as Free, no proper license given.

Westa FREE PSD Template and Mobile App


Creator: Patryk Wasik
License: Declared as Free, no proper license given.

Krunch Agency Landing Page


Creator: Shuvo Khan
License: Attribution-NonCommercial-NoDerivatives.

eCommerce Landing Page


Creator: Designerbundle
License: Read the license.

404 Page


Creator: Nik Ere
License: Attribution-NonCommercial-ShareAlike.

Honor – Unity Free PSD


Creator: Zeeshan Zeesh
License: Attribution-NonCommercial-NoDerivatives.

Eclipse Purple Website Template


Creator: blazrobar.com
License: Declared as Free, no proper license given.

Financial PSD Website Template


Creator: Vid Kraljic Radulovic
License: Declared as Free, no proper license given.

Tork – Free PSD Template


Creator: Blaz Robar
License: Declared as Free, no proper license given.

Free PSD Design Of Bologna


Creator: Beautheme
License: Declared as Free, no proper license given.

One Page Mobile Application Landing – Freebie Sketch


Creator: Kenny Ho
License: Attribution-NonCommercial-NoDerivatives.

Sellerbailout Template


Creator: Hezy
License: Declared as Free, no proper license given.

DIZAINO – One Page Free PSD Templat


Creator: Junoteam
License: Free.

Wireframe Landing Page Free PSD


Creator: Dorin007
License: Declared as Free, no proper license given.

SilveHype – Free Fashion Sketch Template


Creator: Michal Kozina
License: Declared as Free, no proper license given.

ETERNIA: Multipurpose Website Template PSD


Creator: GraphicsFuel (Rafi)
License: Declared as Free, no proper license given.

Barmy PSD Template


Creator: Symu.co
License: Declared as Free, no proper license given.

Simple E-commerce Web Template Free PSD


Creator: TushiT
License: Declared as Free, no proper license given.

Bike Sport – Freebie PSD Template


Creator: Sonny Lee
License: Declared as Free, no proper license given.

Mino Free PSD Blog Template


Creator: Dwi
License: Free for personal and commercial use.

Sarabanda – PSD Template


Creator: symu.co
License: Declared as Free, no proper license given.

Landing page Wireframe


Creator: Eliška Plitzová
License: Declared as Free, no proper license given.

PSD Responsive Website


Creator: Abeer Nassar
License: Attribution-NonCommercial.

Interstellar Home Page UI Theme


Creator: Lucas Vallim
License: Declared as Free, no proper license given.

Free PSD Landing | WeatherApp


Creator: Elina Chanieva
License: Attribution-ShareAlike.

Error Pages


Creator: Greg Shuster
License: Declared as Free, no proper license given.

UInugget Free PSD Template


Creator: uinugget.com
License: Declared as Free, no proper license given.

OPEKKHA – Coming Soon Template


Creator: Towkir Ahmed Bappy
License: Attribution-NonCommercial.

A Landing Page (DuckPack)


Creator: Ehsanul Islam
License: Declared as Free, no proper license given.

Personal Portfolio Website Theme Free PSD


Creator: psdfreebies.com
License: Declared as Free, no proper license given.

History Bits Magazine Psd Template


Creator: Henry Reyes
License: Declared as Free, no proper license given.

Hotel Booking Website Template PSD


Creator: psdfreebies.com
License: Declared as Free, no proper license given.

Car Accessories Ecommerce Web Template Free PSD


Creator: psdfreebies.com
License: Declared as Free, no proper license given.

BEIGE – Fashion Website Design


Creator: Vladimir Shepel
License: Attribution-NonCommercial.

Personal Site


Creator: Saim Ahmed
License: Declared as Free, no proper license given.

Landing Page Mockup


Creator: Mike Ivanchyshyn
License: Declared as Free, no proper license given.

Travel Landing Page


Creator: ASK Dziner
License: Declared as Free, no proper license given.

Aie – Free app landing page template


Creator: Omar Aly
License: Declared as Free, no proper license given.

Landgig – Landing page template free psd


Creator: revolthemes.net
License: Free for personal and commercial use.

Dating Site


Creator: Henry Reyes
License: Free for personal and commercial use.

Holver


Creator: ClaPat
License: Declared as Free, no proper license given.

Nipro Agency Free PSD Template


Creator: Arpon Das
License: Attribution-NonCommercial-NoDerivatives.

Minimal Agency Landing Page


Creator: Denislav Jeliazkov
License: Declared as Free, no proper license given.

Msn Mistiri – Construction Free PSD Template


Creator: 1dollarpsd.com
License: Declared as Free, no proper license given.

Uinity Fashion Template


Creator: Graphicstall
License: Declared as Free, no proper license given.

Single page product website


Creator: sunil
License: Declared as Free, no proper license given.

Free PSD / Snow – Minimal & Clean Portfolio


Creator: Svetlana S.
License: Only for personal use.

Albedo – Free Personal Onepager PSD Template


Creator: themefire
License: Declared as Free, no proper license given.

Bon Apetit (free PSD)


Creator: Andrei Rotariu
License: Declared as Free, no proper license given.

Explore the City – Landing Page


Creator: Andrei Rotariu
License: Declared as Free, no proper license given.

Agency Website


Creator: Ali Sayed
License: Declared as Free, no proper license given.

10 Free PSD website templates to get any design project started


Creator: Blaz Robar
License: Declared as Free, no proper license given.

Landing Page


Creator: Craftwork
License: Declared as Free, no proper license given.

Colingz – Personal Website Template


Creator: Shamsuddin Delwar
License: Attribution.

Treehouse Web Template


Creator: FreebiesXpress
License: Declared as Free, no proper license given.

Stuff – Furniture eCommerce PSD Template


Creator: One Dollar PSD
License: Declared as Free, no proper license given.

Sathee – Fashion eCommerce PSD Template


Creator: fahmida.sathi
License: Declared as Free, no proper license given.

Global Media


Creator: Vlad Musienko
License: Declared as Free, no proper license given.

Themeunix FreeBie PSD Template Design


Creator: Rahabi Khan
License: Declared as Free, no proper license given.

Ave FREE Ecommerce Website Template PSD


Creator: RobbyDesigns
License: Declared as Free, no proper license given.

Pasco: A free PSD multipurpose template


Creator: Igor Ten.
License: Declared as Free, no proper license given.

Bakery PSD Website Template


Creator: Malte Westedt,
License: Declared as Free, no proper license given.

Montreal Creative Portfolio PSD Web Theme


Creator: graphberry.com
License: Declared as Free, no proper license given.

Sneak – Simple Portfolio PSD Website Template


Creator: graphberry.com
License: Declared as Free, no proper license given.

Nord – Simple App Landing One Page Template


Creator: graphberry.com
License: Declared as Free, no proper license given.

Gato Website Template


Creator: artfoxstudio
License: Declared as Free, no proper license given.

App Landing Page


Creator: uiuxassets
License: Declared as Free, no proper license given.

Quotime Free PSD Template


Creator: Patryk Wasik
License: Declared as Free, no proper license given.

Tajam: PSD website template for agencies


Creator: Aji Darmawan
License: Declared as Free, no proper license given.

Categories: Others Tags:

Unitless or not unitless?

February 8th, 2017 No comments

Matt Smith:

You should always specify line-height as a unitless number (say this into the mirror five times). That way descendent elements that specify a different font size will inherit that number instead of a fixed line height.

Counterpoint in the comments by David Khourshid:

Unitless line heights are fine, but aren’t the only way to use it. If I want an exact, perfect vertical rhythm implemented in my stylesheets, I would absolutely use a line-height *with a unit* everywhere I declare a font-size.

I’m a unitless man myself, only because perfect vertical rhythm always feels like a fool’s errand to me.

Direct Link to ArticlePermalink


Unitless or not unitless? is a post from CSS-Tricks

Categories: Designing, Others Tags:

Why Elm? (And How To Get Started With It)

February 8th, 2017 No comments

If any discussion of the biggest problems in web development, there is no doubt complexity comes up. Between the use of dozens of tools, dependencies, and complexities inherent in the languages themselves, complexity is part of the job.

Modern web applications require new ways to think about how we handle processes. The problem of executing functions without a strict order or in unexpected moments — like the click of a button or an incoming network message — forces us to use different techniques, from callbacks and promises to more sophisticated tools like Reactive Extensions.

It is not surprising to have systems composed of several thousands of lines of code, and things can easily get out of control at that scale. Even the slightest of changes could have unintended consequences.

Runtime errors are extremely common with JavaScript, and if we are not careful we can find ourselves trying to make impossible computations, like calling something that doesn’t exist or trying to process something that no longer is what you thought.

(Some of) The Advantages of Functional Programming

Controlled State

In a language like JavaScript, we can do almost whatever we want with the state of our programs. The lack of control with state is a common precursor to bugs. For example, trying to work with a value that has changed in unexpected ways.

Although state can’t disappear, it can be controlled; Functional languages seek to provide tools to work with it in more organized ways. Some of them, like Clojure, provide features like immutable data structures, but others go to the extreme and become pure functional languages, like Haskell, where every single detail about state has to be carefully thought.

Predictability

Pure functions are a core concept of functional programming, and they are incredibly useful. We say that a function is pure when it always returns the same result given the same input and it doesn’t cause side-effects.

Because a function can’t do anything more than taking a value, processing that value, and returning the result — we can get more predictable programs.

Write What, Not How

Functional languages are declarative languages, it means that we can describe a process without having to worry about all the details of how the process is done. The consequences of having a clear view of the purpose of our code can be very positive because you can understand more easily what the program does without the implementation noise of how it is done.

Modularity and Composability

The principle of “Divide and conquer” is a common practice in functional programming. We split complex problems into several straightforward ones, creating a solution for each one and then combine them to solve the entire problem; By dividing our programs into small functions, we can increase reusability and maintainability.

Discipline

Pure functional languages motivate programmers to think better about the programs they are building. From simple type annotations and mechanisms to control side-effects to complete architectures, like in Elm.

Although the initial development time can increase with such restrictions, the advantages in maintainability can compensate the effort.

Elm: A Functional Programming Language for the web

Elm is a relatively new programming language to build web applications created by Evan Czaplicki in 2012 as part of his thesis about Concurrent FRP for Functional GUIs.

Because it’s targeted to the web—and browsers only understand a limited set of languages—the code that you write in Elm is compiled to HTML, CSS, and JS.

Immutable by design

All values on Elm are immutable, which means that once you have something, it will stay the same unless you create a new something as a copy.

The simplest advantage—because we don’t have to keep mutations in our head—reading code becomes a lot easier; when we see a value we can be sure it will stay the same. Also, you don’t have to worry about runtime errors related to unexpected values because of mutation.

Static Types

Static types are an excellent way to document systems. You can know quickly what a function does and its domain just by looking at the type definition. Type systems allow us to define exactly the kind of value that a function takes and returns.

But types are not only useful when they are read by developers, they also allow for better tools (like debuggers and testers) that increase the soundness of our code. Also, they prevent us from doing impossible computations, and by consequence, keeping us away from a lot of potential runtime errors.

Elm has an inferred type system. Which means that you don’t have to write types from the beginning and the compiler will try to infer the appropriate type for your functions, so you don’t get any productivity penalties like in other mainstream languages with types.

-- Function with its type annotation
square : Int -> Int
square n = n^2

-- This also works, because types are inferred
square n = n^2

Pure functions

Pure functions are the core concept of functional programming and produce a huge advantage building reliable and easy-to-maintain systems. Elm functions are pure and they receive inputs and produce new values as output, also, they always return the same result for each input without producing side-effects.

Subscriptions

Asynchronous systems require a different approach to programming and Elm handles this by using Subscriptions. Because there are certain things that we don’t know when they are going to happen — like user interactions or network responses — we can subscribe to those events allowing us to act as soon as they occur without having to worry about implementation details.

Controlled side-effects

Pure functions are good, and we can try to have pure functions everywhere, but at one point or another, we have to handle interactions of our program with the external world, and we can do this in a controlled way using Commands.

Because input and output are also side-effects, if we use strictly pure functions everywhere, we won’t be able to do anything at all. Instead, we identify side-effects, and we make them explicit so that Elm can handle them in the right way for us.

Compatible with Your Existing Project

You don’t have to build or port a complete project to Elm — though that would be nice — you can include certain components made with Elm in an existing project.

Also, is possible to use existing Javascript inside your Elm applications, while keeping all the nice things and guarantees of the language.

Easy to Test

What do we get with static types? Awesome tools, including random test generators, where functions can be tested against random inputs depending on the domain of the function (defined by the types).

But probably one of the most exciting Elm features in this area is the fact that we can export the complete state of a program, and with it, we can do things like:

  • Send it to a library developer to reproduce a bug.
  • Load it in another browser or device to see how things behave.

And all this is done in a secure way, including network calls, thanks to the controlled side-effects using Commands.

A Better Architecture from the Beginning

When people started to build projects with Elm, they noticed that a pattern was emerging every time. That was the beginning of the Elm Architecture, the de facto way to build Elm applications.

Having a solid architecture to build our projects will assure us that we will have things under control even if our program increases in complexity. Also, we have the advantage that every time we take a new existing project, we won’t have a big problem understanding how the code is organized.

A sane package manager

Have you ever updated a JavaScript package and after starting your application you notice that something is not working as expected or is not working at all? Well, that’s an inexistent problem in Elm; the package manager automatically handles version numbers depending on the changes made, so you will never get breaking changes in a minor version anymore.

Beginner-friendly Compiler

We all know that compilers usually produce unreadable messages, but that is not the case with Elm. Every time you make a mistake, it will point out where the problem is, and an explanation of how to fix it.

Elm Compiler message

You can see more examples in the official Elm blog:

Setting Up our Development Environment

Installing the Elm Platform

Installing Elm is a quick process. After installing NodeJS, you can install Elm with NPM directly as other NodeJS packages:

npm install -g elm

Optionally, you can also install Elm using the installers for Mac or Windows. The links are available on the Install section in the An Introduction to Elm website.

Getting a Text Editor

Although Elm is a relatively new language, great tools to work with it already exist, especially for Atom using the Elmjutsu package.

But Atom is not the only one, the following editors are also supported:

You can pick the one you like the most. The installation process for those editors is outside of the scope of this article; I would recommend to check out their respective website.

Introduction to the Elm Platform

The Elm Platform: four tools that will be essential for the development of our Elm projects. A REPL to test small fragments of code. Reactor, a server that will allow us to see immediately our projects in the browser. Make, a tool to build our projects and the package manager that will provide us access to modules written by other people. Let’s take a look at these tools to see what we can do with them.

The Read–Eval–Print Loop

The Elm REPL is a tool to evaluate simple Elm code within a command line without having to create a file. As the name indicates, it first reads the input, then evaluates it and finally prints the result. This tool can be very useful to explore the language or to quickly execute a small piece of code.

To start using the REPL just open a terminal and execute the following command:

elm-repl

You should get something similar to this:

---- elm-repl 0.18.0 -----------------------------------------------------------
 :help for help, :exit to exit, more at <https://github.com/elm-lang/elm-repl>
--------------------------------------------------------------------------------
>

We can write Elm code next to the > symbol. As a simple test, let’s try to build a square function to get the result of multiplying a number by itself. We can do this by writing the following and pressing Enter.

square n = n * n

Now we have a square function available in the current environment that we can use in future evaluations, for example, try typing:

square 5

And it should return 25 : number. The first part is our result and the rest is the type of the result which is a number.

You can also write more complex code. Let’s write a simple factorial function:

factorial number = 
|  if number = 0 then 1 
|  else number * factorial(number-1)

To write multiple lines you have to add a at the end of each one to tell the interpreter that you want to write more.

After typing the first line and pressing enter, a | character will appear, then you can write the next line of your code. Be careful with the indentation, it will return an error if you don’t add it; you have to add at least one space.

There are four commands that you can use directly when the REPL is active:

  • :help Will show all the available commands.
  • :flags You can modify options for the Elm compiler.
  • :reset Restarts your current session without having to close and open the REPL again.
  • :exit Closes the REPL without having to close the command line window.

Elm Reactor

Elm-reactor is an interactive development tool that makes it easier to develop Elm programs. It will create a server that will compile your elm code on the fly, and you will be able to see the result directly on the browser.

Let’s see how we would use Reactor with a sample project. For this, you can clone the Elm Architecture Tutorial with Git and once you are in the project directory, execute the following command:

elm-reactor

A server will be created, and you will be able to access to it at http://localhost:8000 in your web browser.

You will see a navigation page that will contain the files in the directory of the project. Go to examples/01-button.elm and wait a moment while the file is compiled. Once if finished, you will be able to see a little widget to increase and reduce a number with two buttons.

That’s how we can see our project without producing the final files, very useful for the development process.

Two useful flags can be used with the elm-reactor command, to see the complete list you can run elm-reactor --help.

  • -a Sets a custom address for the server.
  • -p Sets a different port for the server (:8000 by default).

For example:

elm-reactor -a 0.0.0.0 -p 3000

Although Reactor is a very useful tool for the development of Elm applications, eventually you will get to the point where you will want to put your project in production, there is a tool for this job included in the Elm Platform: Make.

Elm Make

Once your project is ready for the world, you will have to translate the Elm code to something web browsers understand, HTML, CSS and JavaScript. We use a tool called elm-make for this task, it will take Elm files and will produce native files for the web.

For example, let’s try to compile the example we used in the previous section. Go to the examples directory in the Elm Architecture Tutorial project and execute the following command:

elm-make 01-button.elm --output=01-button.html

When you execute this command, it will ask you to approve the installation of some packages, write Y and hit Enter, now let’s wait until the compilation is completed.

This will build our 01-button.elm file into a 01-button.html that can be open directly in the browser. If you go to the directory where 01-button.elm file is located, you will also find the new HTML file. You can open that file with your browser, and you will see the same result as in the previous section, but this time, we can see it without having to use any Elm tool; it’s plain HTML and Javascript.

Now we can distribute that file in the way we want, and any web browser will be able to open it.

The Elm Package Manager

When you start building non-trivial applications, you will soon find that writing everything by yourself is impractical. Usually, for the most common tasks, you will find packages already written by other people that you can use in your projects. For this, we use the Elm package manager, a tool to install and publish Elm packages.

As we saw in the previous section when we tried to compile our Elm file, the compiler asks us if we wanted to install the missing packages, that’s the job of the package manager in practice.

This tool is available as elm-package in your command line, and to install a package you can execute the following:

elm-package install <package-name>

Other commands include:

  • publish: Adds the package to the central catalog.
  • bump: Updates de version number of the package depending on changes.
  • diff: A utility to view the differences between package versions.

Getting a Taste of Elm

Create a new folder somewhere on your computer and open it with your IDE or text editor. We will create a first-application.elm file, where we are going to include the following code:

import Html exposing (Html, button, div, text)
import Html.App as App
import Html.Events exposing (onClick)

main =
  App.beginnerProgram { model = model, view = view, update = update }

-- MODEL

type alias Model = Int

model : Model
model =
  0

-- UPDATE

type Msg = Increment | Decrement

update : Msg -> Model -> Model
update msg model =
  case msg of
    Increment ->
      model + 1

    Decrement ->
      model - 1

-- VIEW

view : Model -> Html Msg
view model =
  div []
    [ button [ onClick Decrement ] [ text "-" ]
    , div [] [ text (toString model) ]
    , button [ onClick Increment ] [ text "+" ]
    ]

Don’t worry about the meaning of that code just yet; we will use it just to test our setup.

The first thing we should check is that we are getting the syntax highlighting in our editor, if you just see plain text, check the corresponding section of this article again.

Next, we are going to test the compilation of Elm code using Reactor. In the terminal, go to the project directory and execute the following command:

elm reactor

A message should appear with something like this:

elm-reactor 0.18.0                                                                                                                                                                   
Listening on http://localhost:8000/  

That means that it is working and we have a web server listening on the port 8000 in localhost. If we open that address in our web browser we should see a file navigator, click in the first-application.elm file and it will build our project. Once it is ready, we will see a page with a little widget with a number and two buttons. That’s the result of our code.

Elm example: Number counter

Conclusion

We have explored some of the advantages of functional programming and the Elm language, and we are now more familiar with the platform that we will use to build our projects.

To get more detailed information about Elm, you can check out the book An Introduction to Elm by Evan Czaplicki.


Why Elm? (And How To Get Started With It) is a post from CSS-Tricks

Categories: Designing, Others Tags:

10 Simple Copywriting Techniques That Can Boost Your Business

February 8th, 2017 No comments

If you’re running an online business or work in the online marketing field, you are most probably aware of the growing need for quality content that can attract new visitors and convert them into leads and returning customers. Continuously producing top-notch copy and using useful copywriting tips and techniques requires tremendous effort, dedication, and resources, but the investment is certainly worthwhile.

The struggle to produce good copy will pay off in the long run, as more often than not, a well-crafted message delivered to the right audience can make the difference between a flourishing business and a futureless attempt. If you were wondering how professional writers deal with the daily challenges of content creation, here are some digital copywriting tips that could help boost your online business:

1. Do more research

To produce quality copy that sells, first you need to make sure you understand your target customer and that you use the words he wants to hear in your copy. Study your target market’s language by visiting Facebook groups, relevant forums, read reviews and blog comments. Note the words and phrases often used by your audience and use these magic phrases to produce attractive content that has higher chances to convert simple readers into buyers.

2. Set your readers free

Nobody likes being aggressively persuaded to buy a certain product. Making repeated requests for your readers to stay on the page and continue to read and/or make a purchase may cause the exact opposite reaction that you are after: your readers might quickly quit the page and give up buying your product/service. People love to have the power to choose. Therefore, make sure you include in your copy words like: “you are free to cancel your subscription at any time” or “It’s always free to cancel your booking”…

3. Ask your readers to use their imagination

Most copy is incredibly boring unless it involves the readers and makes them use their imagination. So, instead of just listing the characteristics and main benefits of your products/services, why not ask the reader to imagine how they could change their lives for the better: they could do great things with that extra time, and they would be so much happier and healthier if they made that particular purchase.

4. Focus on a specific set of advantages

Most entrepreneurs think they are better than their competitors but often fail to present their products in a convincing way. When talking about what sets you apart from your competition, focus on specific benefits that could help customers solve their problems, particularly those that your competition does not address.

5. Don’t be afraid to show your funny side

People will be naturally attracted by funny ideas and humorous stories. So, make sure your tone of voice is cheerful and your stories entertaining. Charm your targeted public and you’ll soon see results. Of course, humor should be strategically integrated into your copy (in titles, illustrations, sidebars), to underline certain key points. But make sure you don’t overdo it. There’s a fine line between comic and obnoxious.

6. Always repeat the most important messages

A good copywriter is a good psychologist. Based on the fact that the concepts that are heard over and over again are perceived by the human brain as being true, it is good to repeat within your copy the ideas you most want your audience to believe and remember.

7. Be spontaneous and original

To create fresh, original copy that helps you achieve your marketing goals, free yourself from copywriting formulas. That doesn’t mean you can’t have your personal style, easily recognizable by your audience, but you should always make an effort to find new ways of addressing the reader. A good way to do this is to talk to your prospects as if you were standing next to them. This way, you will focus on the audience, not on yourself and you’ll shape more engaging messages addressed directly to the reader.

8. Use testimonials

Is there anything better than letting your happy customers do the selling? High-quality testimonials can support and even replace content sometimes. Use them wisely to convey a powerful message about your brand. Summerize long testimonials by using explanatory mini-headlines. After all, who could convince customers better than another extremely content customer?

9. Don’t be afraid to use rhyming

Researchers noticed that ideas expressed in rhymes are more fluently processed in the human brain which may mean that sometimes we view them as more valid than other simple words and phrases. So, use rhymes and puns where possible to inform, entertain and surprise your reader in a good way.

10. Always do A/B testing

Testing headlines, call to action button copy, form copy or length of copy is a must if you want to boost your business. Every aspect that could make a big difference in your conversions is worth studying closely. Therefore, take your time to measure the effects of such changes on important metrics like time on page, bounce rate and clicks. Split tests are a great way to see which landing page converts better.

Writing good copy has never been an easy task. Whether you choose to handle the copywriting task yourself or you hire a professional/an editorial team to do it, make sure the message is tailored to your audience. Use the right tone of voice to grab people’s attention, convey their interest and nurture their desire to act.

Read More at 10 Simple Copywriting Techniques That Can Boost Your Business

Categories: Designing, Others Tags:

Build beautiful WordPress sites with Ultra Theme by Themify

February 8th, 2017 No comments

Ultra Theme by Themify is the latest word in WordPress theme builders. More than a simple set of styles that most themes provide, Ultra Theme allows you to construct your own designs with a simple, powerful drag-n-drop editor.

Taking WordPress into the realm of WYSIWYG site builders, Ultra Theme allows anyone with a rudimentary knowledge of WordPress to achieve impressive pro-standard results in just minutes. Smart layout options mean you can control all of your layout, from header to footer, and apply those choices to individual pages, or across your entire site.

Ultra Theme comes with over 60 professional layouts to help you get started. Simply import the layout, edit the content, and you’re done. There are also 15 different header styles to choose from, 5 single post layouts, 6 header backgrounds, and 6 archive layouts. Built-in essentials like typography and colors allow you to pick one of the preset options, or specify one of 600+ Google fonts, and any color you can think of. It will take longer to choose a layout than to set it up!

The drag-n-drop Themify Builder makes it incredibly easy to create pro-effects, like slider backgrounds, video backgrounds, parallax scrolling, and more. Ultra Theme even follows a responsive design methodology, so any site you create can function on any device, regardless of viewport size.

One of the best new features of Ultra Theme is the addition of Ultra Skins. These pre-designed templates can be applied with a single click; and they don’t just import styles, but the settings, content, menus, and widgets too. It’s an incredible time-saver and an amazing way to fast-track the development of client sites.

When you purchase Ultra Theme, you’ll also get 10 free Themify Builder add-ons values at $100! They are:

  • Countdown add-on: allowing you to create a timer on your site that builds anticipation to an event or launch.
  • Progress bar: so you can visually describe the progress of a skill you’re learning or a project that’s ongoing.
  • Counter add-on: a simple counter for numerical data like social shares, with an awesome animation.
  • Contact add-on: allows you to create simple email forms, essential on any site.
  • WooCommerce add-on: lets you turn your WordPress site into a full-blown online store.
  • Timeline add-on: is an awesome way of graphically representing your posts over time.
  • Image Pro add-on: lets you add incredible filters and animations to your images.
  • Typewriter add-on: creates an awesome typewriter effect with your display text.
  • Maps Pro add-on: lets you easily customise the look of a Google map.
  • Pricing Table add-on: is the perfect way to showcase the cost of your products and services.

Once you’ve downloaded Themify’s Ultra Theme you can use it on an unlimited number of sites; you could use it for every single site you build! Ultra Theme comes with free one-click updates and support for a whole year.

Download Themify’s Ultra Theme free of charge, below. If you need assistance setting up Ultra Theme, visit Themify’s dedicated support forum.

Please enter your email address below and click the download button. The download link will be sent to you by email, or if you have already subscribed, the download will begin immediately.

[— This is a sponsored post on behalf of Themify —]

Premium Vector Bundle with 500 Design Elements – only $25!

Source

Categories: Designing, Others Tags:

The Role Of Empty States In User Onboarding

February 8th, 2017 No comments

The first set of screens with which users interact, set the expectations of the app. To make sure your users don’t delete your app after the first use, you should teach them how to complete key tasks and make them want to come back for more. In other words, you need to successfully onboard and engage your users during those first interactions.

The onboarding process is a critical step in setting up your users for success with your product. You only get one chance to make a first impression. In this article, we’ll provide some tips on how to approach onboarding using a simple pattern called “empty states.” If you’d like to bring your app or website to life with little effort, you can download and test Adobe XD for free.

The post The Role Of Empty States In User Onboarding appeared first on Smashing Magazine.

Categories: Others Tags:

SEO: The 3 Most Important Techniques for 2017

February 8th, 2017 No comments

SEO only seems like a minefield from the outside. It’s also a lot less dynamic than it is often suggested. Basically, it’s wheels are only set into motion when Google makes changes to its algorithm. You don’t need to worry about these changes if you keep a few things in mind. This year, they are the following:

SEO-Technique #1: More Backlinks Via Great Content

Backlinks

Just recently, we’ve talked about backlinks here at Noupe. Backlinks are, and always will be, the essential part of your SEO strategy. Nothing improves your ranking more than a great backlink profile.

As already mentioned in said article, the focus is on the word “great.” A backlink profile is great, when the links don’t originate from the red light districts of the web, but rather come from proven and respected experts, and influencers on the topic. You can contribute to that yourself by a), asking this group of people for the favor of placing a link, or b), offering them a guest article on the topic, which lets you put a backlink yourself.

Great Content

Of course, the chances of a) or b) are directly connected to the content you provide. Here’s where the second counting of the word “great” comes into play. I’ve found a superb infographic on the topic that I want to share with you.

The 10 Steps to Great Content:

The Epic Content Cycle: 10 Steps to 10X Content (Source: Smartblogger.com)

By the way, with this infographic, its makers have already created “great content” that will get them backlinks, from us, for example. That’s how it works!

These days, great content is not great by simply covering a topic in detail. You should certainly do that, to begin with, and you’ll notice that this simple rule is already widely ignored by most competitors. So, you’re already on the right track by covering your topic more in-depth than others. There’s a lot of discussion about the question if your content has to have at least 1,000, or 2,000, or even more words to be recognized as relevant by our beloved Mountain View search engine operator.

I recommend not forcing yourself to hit a word goal. The length of your text depends on the topic. Once you’ve exhausted it, the text is finished. There’s no point in finding filler content, just to hit certain lengths. The opposite is the case, as this only lowers the relevance of your content, and your text won’t be considered great anymore either. This moves you further away from your goal of backlink generation than it moves you towards it.

As the bar for great content rises year after year, you shouldn’t stick to greatness concerning content, but also step up your game regarding design. As an example for a rather simple upgrade via design, I can recommend the “Epic Guide to Employee Management.” Aside from that, the entire portfolio of possible interactions is available to you. The more meaningful user action you can implement, the better. But keep the word “meaningful” in mind here.

A Good Example For Design-Assisted Storytelling. (Screenshot: Noupe)

I recommend you include multi-media content into your articles. Aside from videos, this can also be VR content, such as 360-degree videos. In general, interactive elements get you a lot of attention.

SEO-Technique #2: Get Your Website Technology to the Level of Development

Full Compatibility With Mobile Devices

“Mobile-friendly” is the name of Google’s newest ranking factor. This simply means that sites that are fully usable on mobile devices make them appear as more relevant in the search results. Usually, this results in a higher ranking. Read our article on the topic.

HTTPS: Encrypted Transfer Via SSL

The future update of the Chrome browser will notify users when an accessed page does not encrypt the transferred content. This will jar the trust of some visitors. Pages with encrypted transfer will also rank higher. It’s about time to deal with the topic. For that reason, we wrote this article, which also presents a practical, free solution. WordPress users will be especially interested in this article.

Data Security is Important. (Photo: Pixabay)

Loading Time Optimization

The loading time of a website is a ranking factor as well. The faster your page loads, the better you look under Google’s strict judgment. The performance optimization is an exceptionally wide topic. We wrote an entire series of articles for WordPress users, and the first part can be found here. If you’re looking for a tool that can help you with the optimization, this one is the post for you.

SEO-Technique #3: Good Care, Doc!

Evergreen Content

Every page site operator knows this phenomenon. Rather few, mostly older posts consistently get the most traffic. You could call them your crown jewels. Take care of them accordingly.

Evergreen content also ages with time. Update your critical posts on a regular basis. Don’t change the URL in the process, but place an update note at the bottom of the post. This tells the search engine that it’s still the good old post, and the reader knows how old the content really is.

Of course, we’ve got an article on that topic as well.

Internal Link Structure

The topic “internal links” is related to the topic “evergreen content.” You should place links towards the evergreen content, and link related articles away from them, allowing your page ranking to stabilize. High-relevance values of individual pages are basically transmitted to other pages. This is called link juice.

This article on Noupe takes an in-depth look at the topic of internal link placement.

Merge Multiple Smaller Ones to One Large Post

If you focus on supplying your niche, you’ll certainly have published smaller pieces of content from time to time. For some time, it was recommended to put out more, but shorter articles than one long article. For a while, even a length of 350 words was circulating as optimal.

Multiple Small Parts Can Be Connected to Become One. (Photo: Pixabay)

Take another look at the topic “great content” further up. You’ll see that short posts are not always the way to go. Instead, write long, exhausting articles. Of course, you can also apply this principle when taking care of your content.

Pick out your shorter, less successful posts that deal with one topic, and turn them into one giant post. Whether you should keep the original URL of the most successful post, or if a new URL makes more sense, depends on the actual statistics.

Conclusion: There’s a lot to do, so get started. Remember that you can’t avoid technological changes if you want to be successful. You depend on the technological side to work, as otherwise, the content side can’t be relevant. Google has placed visibility before being seen. Once you’ve got the technology covered, focus on the creation of great content. Create from scratch, or from existing content. That doesn’t matter as long as you create.

Categories: Others Tags:

Basic Shapes & Path… Never the Twain Shall Meet?

February 7th, 2017 No comments

There are some values available in CSS that allow shapes to be drawn. For example, there is a circle() function that is a valid value for a couple of CSS properties. “Drawn” might not be the right word, though. It’s not like in SVG where you can create a element and it will literally draw a circle.

These shapes in CSS are for other things. Namely: clip-path, which is for making clipping masks, and shape-outside, for flowing text around shapes.

There are some other CSS properties that use SVG-like shapes for doing what they do. For example, offset-path is part of animating elements along vector paths, using the path() function. Paths are awesome. They are the ultimate drawing element, as they can draw anything, and all the other shapes are essentially syntactic sugar for paths.

What are the basic shapes?

There are four basic shapes:

  • polygon()
  • circle()
  • ellipse()
  • inset()

What are paths?

Paths come from SVG. They have a special syntax that allows them to draw anything.

<path d="M 25,100 C 25,150 75,150 75,100 S 100,25 150,75" />
path("M 25,100 C 25,150 75,150 75,100 S 100,25 150,75");

This is where things get kinda weird

  • The clip-path and shape-outside properties can take all the “basic shapes” like circle() and polygon(), but not path().
  • The offset-path properties can take path(), but not the “basic shapes”.
  • You can control the d attribute of a through CSS also, but not the attributes of many other SVG elements.

I’m not really sure why any of this is, and I’m sure things will change in time, but it’s good to know about.

Let’s elaborate.

clip-path allows Basic Shapes (but not path())

Say you wanted to clip square avatars into polygons, for a fun design. You can! The image is might be an HTML element like:

<img src="avatar.jpg" alt="User Avatar" class="avatar">
.avatar {
  clip-path: polygon(0% 5%, 100% 0%, 100% 85%, 65% 80%, 75% 100%, 40% 80%, 0% 75%);
}

See the Pen Clipped Avatars by Chris Coyier (@chriscoyier) on CodePen.

But let’s say you want to clip the avatar like this:

Well, you can’t. Not directly in CSS anyway. Those curves require a path, and clip-path don’t do path. Fortunatly, clip-path does take a url(), which will accept the ID of a element.

See the Pen Clipped Avatars by Chris Coyier (@chriscoyier) on CodePen.

offset-path allows path (but not Basic Shapes)

Say we want to move an object along the outside of that speech bubble shape we just used. The offset-path property is just for that.

<div class="move-me"></div>
.move-me {
  offset-path: path("M100.5,39.47C100.5,58.3,83.36,74,60.58,77.64l16.85,19.9L33.94,76.25C14.47,70.92.5,56.47.5,39.47c0-21.52,22.39-39,50-39S100.5,17.95,100.5,39.47Z");
  animation: move 3s linear infinite;
}
@keyframes move {
  100% { motion-offset: 100%;}
}

See the Pen offset-path on path by Chris Coyier (@chriscoyier) on CodePen.

But what if you want to move the element in a circle? The basic shape version of a circle has a super easy syntax, like circle(50% at 50% 50%); But unfortunately, the basic shapes aren’t supported. The spec allows for them, but they don’t work. It kinda makes sense, because… how would you define which direction to travel?

You can still animate in a circle, because the all-powerful path can draw a circle, like:

.move-me {
  /* a circle */
  offset-path: path("M100,50a50,50,0,1,1-50-50A50,50,0,0,1,100,50Z");
  animation: move 3s linear infinite;
}
@keyframes move {
  100% { motion-offset: 100%;}
}

And those commands dictate a direction naturally. There are also other ways to animate in a circle.

shape-outside allows Basic Shapes (but not path())

Say you wanted to wrap some text around an egg shape, because I dunno, you were setting some text of Alice talking to Humpty Dumpty. The egg shape is a good excuse to use the ellipse() Basic Shape.

<div class="page-wrap">
  <div class="egg"></div>
  <p>"I don't know what you mean by 'glory,'" Alice said.</p>
  <p>Humpty Dumpty smiled contemptuously. "Of course you don't—till I tell you. I meant 'there's a nice knock-down argument for you!'"</p>

 ...
.egg {
  float: left;
  shape-outside: ellipse(120px 160px at 50% 50%);
  width: 280px;
  height: 320px;
}

We’d probably set an identical clip-path (to actually make the egg shape) and colorize it:

See the Pen Shape Outside Egg by Chris Coyier (@chriscoyier) on CodePen.

But what if you wanted to make some text wrap around a curved shape, like shown here in Illustrator:

Text Wrap in Adobe Illustrator

Unfortunately, shape-outside doesn’t take path(), so you can’t. But you kinda can. It does take url(), in which you can use to link to an image (doesn’t even have to be SVG, but SVG makes good sense). The image can have a nice curvy path, like we’re shooting for:

See the Pen Wrap Text Around Curve by Chris Coyier (@chriscoyier) on CodePen.

The url() can even be a data URL. Also note that any element using shape-outside must be floated, a limitation that might be resolved with CSS Exclusions.

takes path()

Here’s one that starts out making logical sense. Say you have a path:

<svg>
 <path d=" ... " />
</svg>

You can change the shape of that path through CSS, say through a hover:

svg:hover path {
  d: path(" ... ");
}

See the Pen Change path on hover by Chris Coyier (@chriscoyier) on CodePen.

You can even transition the shape, if it happens to be path data with the same amount of points.

It does get a bit confusing though. Say you have a instead.

<svg>
 <polygon points=" ... " />
</svg>

How do you update it with CSS?

polygon {
  /* Nope */
  points: " ... ";

  /* Nope */
  points: points(" ... ");

  /* Nope */
  points: polygon(" ... ");
}

There isn’t a way, that I know of. Which seems weird as polygon is otherwise supported all over the place. I imagine part of problem is that the polygon() function is different from the points attribute. The polygon() function takes percentages and numbers with units in CSS, whereas the points attribute takes unitless numbers (like everything in SVG). They are different beasts, and that overlap is awkward.

It’s also not that SVG shapes that overlap with Basic Shapes can’t be altered. All of ‘s attributes, for example, can be altered with CSS:

svg:hover circle {
  cx: 40;
  cy: 40;
  r: 40;
}

See the Pen Altering Circle Attributes by Chris Coyier (@chriscoyier) on CodePen.

Long story short: there is usually a way to get done what you want to get done, but it’s confusing what is/isn’t supported where.


Basic Shapes & Path… Never the Twain Shall Meet? is a post from CSS-Tricks

Categories: Designing, Others Tags:

Elementor: A Unique and Useful Page Builder Plugin for WordPress

February 7th, 2017 No comments
Elementor Page Builder Plugin for WordPress

There is no shortage of page builder plugins and drag and drop editors for WordPress. You can choose from various free and premium WordPress plugins to create and edit your websites on the fly, live with the help of drag and drop mechanism. You do not need to touch even a single line of code!

However, amidst such a crowded market, one particular WordPress page builder plugin stands apart: Elementor.

Elementor is a unique and intuitive method of editing and publishing websites in WordPress. Of course, it is a page builder and drag and drop editor, but it offers you absolute control over each and every aspect of your site. You can modify the layout, design elements, appearance as well as make CSS tweaks — all without having to deal with code.

Elementor has a lot to offer and we will soon see the Elementor plugin in action, but first, let us spend a moment to enumerate its various features.

Elementor: Versatile Page Builder Plugin for WordPress

Elementor: Major Features

So, what does Elementor bring to the table?

First, Elementor is fully compatible with virtually every extension and post type that is related to WordPress. This means you can use any free or premium WordPress theme, and make it work with Elementor. But that isn’t all — Elementor lets you work with custom post types, landing pages, portfolio and special pages, and so on.

Elementor comes with its own set of “elements”, or specialized widgets. Using such widgets, you can add content to virtually any section or region of the given page. As such, all you need to do is drag the concerned widget and drop it at the required place in the live editor. Elementor also plays well with third party widgets that you might add using any other WordPress plugin.

Need more? Here is a list of some other features of Elementor:

  • Fully open source, licensed under GPL
  • Translation ready (and compatible with plugins such as Polylang and WPML)
  • Supports Google Fonts and custom icons
  • Optimized for search engines
  • Offers granular control over borders, colors, and other aspects
  • Comes with its own Template Library feature that lets you insert professionally designed templates with a single click (or save your own templates, or import/export them for use on other sites)
  • Elementor supports live Mobile Editing which means you can visually adapt the page design to be mobile responsive to all devices
  • Made a mistake? Elementor has detailed Revision History so that you can undo or redo steps even after saving changes

Well, now that we have seen what Elementor is capable, why don’t we see it in action?

Mode of Operation

Upon activation, Elementor adds a new menu in the WordPress admin panel.

Elementor Menu page Builder WordPress Plugin

Before actually using the plugin, I decided to go through the Settings section. Basically, you get to pick the user roles which will have access to the plugin’s functionality, as well as enable or disable color palettes, set default fonts, integrate reCaptcha, etc.

Elementor User Roles

This is where Elementor scores its first goal. Most page builder plugins overload the settings section, making it almost impossible to actually customize the plugin. Elementor has simplified things here, and this is what adds to its UX score.

elementor Settings

Working with templates is fairly easy. The live editor occupies the full page area once you activate it. The best way to describe it would be to divide the interface in two separate sections.

First, you have the global elements. You can specify global fonts and colors for your WordPress website. Furthermore, you can also save and reuse widgets as global entities, making them good for not just the current viewport but the entire site.

Global Elements in Elementor

For instance, here is what your global font selection would look like:

Global Fonts

Thereafter, you have specific “elements” that you can drag and drop on to the page. The list, as mentioned above, is rather large. You can add text, embed video, images, and a lot more in the free version itself. If you are using the Pro version, you can even add slides, custom templates, countdown timers, and a lot more.

Elementor Widgets

It is worth noting that Elementor treats “elements” much like WordPress widgets. Thus, you also have the luxury of existing WP widgets that you can drag and drop in the live editor itself.

This is how the social icons element behaves when put into use:

Social Icons Elementor

Every element offers granular and well-detailed control over its appearance. You can set display rules to show or hide it on particular devices, alter the border, padding and other layout, and so on.

Widget Settings

Once done, just hit Save and your template is ready. You can then reuse it across as many pages as you want.

Pricing

The free version of Elementor page builder plugin is free for life and is available in the WordPress repository. Also, Elementor is fully open source and GPL-friendly and has its own API. In fact, many developers have already created addons, extensions and integrations that work seamlessly with Elementor.

The Pro version of Elementor, in essence, is an extension of Elementor. It comes in three flavors:

  • Personal License costs $49 and lets you use Elementor Pro on one site.
  • Business License costs $99 and works across three sites.
  • Unlimited, as the name suggests, works on unlimited sites and costs $199.

All premium licenses come with a 30-day money back guarantee and one year of updates and support.

Conclusion

Elementor is a worthy page builder plugin for WordPress users. It is simple, easy to use, and does not cause much bloat on your site. In fact, Elementor can do your site wonders especially if you are short on time and wish to quickly setup websites.

The only drawback that I noticed was the lack of white-labelling ability in the premium versions. Ideally, if it were available as a white-labeled tool, Elementor’s Unlimited license could have proved especially useful for design agencies and freelancers.

That said, Elementor is a time-saving, easy to use, non-bloated and valuable WordPress plugin that you should surely give a spin!

Read More at Elementor: A Unique and Useful Page Builder Plugin for WordPress

Categories: Designing, Others Tags: