Oscars live stream: How to watch the 2019 awards from anywhere in the world

If you have even the slightest interest in films, then it’s hard not to be aware that this Sunday, 24 February, is the date for the 2019 Academy Awards. And even if you’re not a huge movie fan, if you have a foot in the design world then you’re probably going to want to keep an eye on some of the award categories by getting an Oscars live stream..

Of the 24 little golden men up for grabs, there are a few categories that should be of interest to anyone with an eye for design or visual arts. The award we’ll all be looking out for, naturally, is the Best Animated Feature Film, and this year it’s a strong category.

While Pixar’s Incredibles 2, Wes Anderson’s Isle of Dogs, Disney’s Ralph Breaks the Internet and Mamoru Hosoda’s Mirai are all in the running, it looks like they have their work cut out against the brilliant Spider-Man: Into the Spider-Verse. While there’s no such thing as a dead cert when it comes to the Oscars, if the betting odds are anything to go by, then Spidey has this one sewn up.

You’ll also want to keep an eye on the Best Animated Short Film category, where Pixar may well clean up with Bao, an adorable little short about a Chinese dumpling that comes to life. Other candidates for the Oscar are the Animal Behaviour from the National Board of Canada, Cartoon Saloon’s Late Afternoon, One Small Step from a pair of ex-Disney artists, Andrew Chesworth and Bobby Pontillas, and there’s another Pixar-related entry in the form of Weekends by Trevor Jimenez, who used to work there as a story artist.

Beyond the animation, we’re sure you’ll want to watch out for the awards for Best Visual Effects and Best Production Design, and there ought to be some great-looking threads on show when it comes to the award for Best Costume Design. 

Whatever your reason for watching, though, you’re going to want to make sure that you can enjoy the whole show without any unexpected difficulties. And while this should be plain sailing if you’re watching a live broadcast on TV, if you plan to watch the 2019 Academy Awards online, then it won’t hurt to be prepared for all eventualities. So here’s our foolproof guide to getting a 91st Oscars live stream, wherever you might be in the world.

How to watch the 2019 Academy Awards from outside your country

If you’re away from your country on Oscars night and don’t want to miss out on the fun, you might have to jump through a few hoops if you want to watch on your laptop or mobile. If you try to watch through your usual streaming service, it’ll almost certainly be geo-blocked, so it’s best to have a VPN ready to go so that you can watch as if you were still at home.

A VPN changes your IP address to that it appears that you’re logging into your streaming service from a completely different location. If you don’t have a VPN then they’re easy to set up; read our guide to the best VPNs available right now, but if you’re in a hurry then these are our top picks:

  •  ExpressVPN
    With over 1,800 servers across 148 locations, ExpressVPN is a great choice if you’re looking for speed, security and ease of use. It supports just about every device you might have, and if you sign up now you can get your first three months for free.
  •  TunnelBear
    If you find the idea of setting up a VPN intimidating, TunnelBear’s the choice for you; it’ll help you set up in a matter of minutes and while its optons are limited compared to other services, it does the job well.
  •  CyberGhost
    For more advanced users, CyberGhost is probably the best option right now, giving you full control over all your configuration options.

How to live stream the Oscars in the USA

For viewers in the States, watching the 2019 Academy Awards couldn’t be easier; simply tune into ABC, sit back and enjoy. But if you’d rather watch online, then things become a little more complicated.

The obvious option would seem to be to stream it on abc.com or through the network’s app; however this is only available in Chicago, Fresno, Houston, Los Angeles, New York City, Philadelphia, Raleigh-Durham and San Francisco, and you’ll need your cable provider details.

Failing that, these online streaming services have ABC listed among their channels, and they all offer some kind of free trial; check that they’re definitely showing the Oscars before you sign up, though.

  • DirecTV Now $55 per month – DirecTV Now also includes CBS, Fox, NBC, and ESPN.
  • PlayStation Vue From $45 per month and the ideal choice for PS4 owners thanks to its access to the likes of ESPN, NBC, Fox, Disney and other essential networks. For a bit more you can add the likes of Showtime and HBO, too. 
  • YouTubeTV $40 per month – YouTubeTV also gives you access to Fox, NBC and ESPN.

How to stream the Oscars live in Canada

Watching the Academy Awards is almost as easy for Canadians as it is for Americans; it’s being shown live on CTV. If you don’t have a TV or would rather watch on your laptop or mobile, you can watch via the CTV website; you’ll need to select your TV service provider and sign in with your CTV account.

How to watch the Oscars online in the UK for free

If you’re a Sky subscriber in the UK then you’ll have an easy time tuning into the 2019 Oscars; it’s being shown live on the Sky Cinema Oscars channel or via Sky Go if you’d rather stream, starting at 10PM GMT with the red carpet coverage that’ll go on until the main show starts at 1AM.

If you don’t have a Sky subscription, that’s not a problem. Just sign up instead for a Now TV Cinema Pass, which enables you to watch all of Sky’s film channels for £9.99. Even better, if you’ve never signed up for Now TV before you can get a 14-day free trial and enjoy the Oscars without having to pay anything at all!

And remember: if you’re going to be out of the country on Oscars night, simply download and install a VPN and you’ll be good to go.

How to live stream the Oscars for free in Australia

Aussies get the best deal when it comes to the Oscars; not only do they avoid having to stay up half the night to watch the show, they can also watch it for free. This year’s Academy Awards are being shown live on Channel 9 with the fun starting at 12pm AEDT.

If you’re watching online then simply use the 9Now app to stream the action, and if you’re likely to be on your travels then have a VPN installed and ready to go so you don’t miss out.

Related articles:

Improving WordPress Code With Modern PHP

Improving WordPress Code With Modern PHP

Improving WordPress Code With Modern PHP

Leonardo Losoviz

WordPress was born fifteen years ago, and because it has historically preserved backwards compatibility, newer versions of its code couldn’t make full use of the latest capabilities offered by the newer versions of PHP. While the latest version of PHP is 7.3.2, WordPress still offers support up to PHP 5.2.4.

But those days will soon be over! WordPress will be upgrading its minimum PHP version support, bumping up to PHP 5.6 in April 2019, and PHP 7 in December 2019 (if everything goes according to plan). We can then finally start using PHP’s imperative programming capabilities without fear of breaking our clients’ sites. Hurray!

Because WordPress’ fifteen years of functional code have influenced how developers have built with WordPress, our sites, themes and plugins may be littered with less-than-optimal code that can gladly receive an upgrade.

This article is composed of two parts:

  1. Most relevant new features
    Further features have been added to PHP versions 5.3, 5.4, 5.5, 5.6 and 7.0 (notice that there is no PHP 6) and we’ll explore the most relevant ones.
  2. Building better software
    We’ll take a closer look through these features and how they are able to help us build better software.

Let’s start by exploring PHP’s “new” features.

Classes, OOP, SOLID And Design Patterns

Classes and objects were added to PHP 5, so WordPress already makes use of these features, however, not very extensively or comprehensively: The paradigm of coding in WordPress is mostly functional programming (performing computations by calling functions devoid of application state) instead of object-oriented programming (OOP) (performing computations by manipulating objects’ state). Hence I also describe classes and objects and how to use them through OOP.

OOP is ideal for producing modular applications: Classes allow the creation of components, each of which can implement a specific functionality and interact with other components, and can provide customization through its encapsulated properties and inheritance, enabling a high degree of code reusability. As a consequence, the application is cheaper to test and maintain, since individual features can be isolated from the application and dealt with on their own; there is also a boost of productivity since the developer can use already-developed components and avoid reinventing the wheel for each application.

A class has properties and functions, which can be given visibility by usingprivate (accessible only from within the defining class), protected (accessible from within the defining class and its ancestor and inheriting classes) and public (accessible from everywhere). From within a function, we can access the class’ properties by prepending their names with $this->:

class Person {

  protected $name;
  
  public function __construct($name) {
    $this->name = $name;
  }

  public function getIntroduction() {
    return sprintf(
      __('My name is %s'),
      $this->name
    );
  }
}

A class is instantiated into an object through the new keyword, after which we can access its properties and functions through ->:

$person = new Person('Pedro');
echo $person->getIntroduction(); 
// This prints "My name is Pedro"

An inheriting class can override the public and protected functions from its ancestor classes, and access the ancestor functions by prepending them with parent:::

class WorkerPerson extends Person {

  protected $occupation;
  
  public function __construct($name, $occupation) {

    parent::__construct($name);
    $this->occupation = $occupation;
  }

  public function getIntroduction() {
    return sprintf(
      __('%s and my occupation is %s'),
      parent::getIntroduction(),
      $this->occupation
    );
  }
}

$worker = new WorkerPerson('Pedro', 'web development');
echo $worker->getIntroduction();
// This prints "My name is Pedro and my occupation is web development"

A method can be made abstract, meaning that it must be implemented by an inheriting class. A class containing an abstract method must be made abstract itself, meaning that it cannot instantiated; only the class implementing the abstract method can be instantiated:

abstract class Person {
  
  abstract public function getName();

  public function getIntroduction() {
    return sprintf(
      __('My name is %s'),
      $this->getName()
    );
  }
}
// Person cannot be instantiated

class Manuel extends Person {
  
  public function getName() {
    return 'Manuel';
  }
}

// Manuel can be instantiated
$manuel = new Manuel();

Classes can also define static methods and properties, which live under the class itself and not under an instantiation of the class as an object. These are accessed through self:: from within the class, and through the name of the class + :: from outside it:

class Factory {

  protected static $instances = [];
  public static function registerInstance($handle, $instance) {
    self::$instances[$handle] = $instance;
  }
  public static function getInstance($handle) {
    return self::$instances[$handle];
  }
}

$engine = Factory::getInstance('Engine');

To make the most out of OOP, we can use the SOLID principles to establish a sound yet easily customizable foundation for the application, and design patterns to solve specific problems in a tried-and-tested way. Design patterns are standardized and well documented, enabling developers to understand how different components in the application relate to each other, and provide a way to structure the application in an orderly fashion which helps avoid the use of global variables (such as global $wpdb) that pollute the global environment.

Namespaces

Namespaces were added to PHP 5.3, hence they are currently missing altogether from the WordPress core.

Namespaces allow organizing the codebase structurally to avoid conflicts when different items have the same name — in a fashion similar to operating system directories which allow to have different files with the same name as long as they are stored in different directories. Namespaces do the same encapsulation trick for PHP items (such as classes, traits, and interfaces) avoiding collisions when different items have the same name by placing them on different namespaces.

Namespaces are a must when interacting with third-party libraries since we can’t control how their items will be named, leading to potential collisions when using standard names such as “File”, “Logger” or “Uploader” for our items. Moreover, even within a single project, namespaces prevent class names from becoming extremely long as to avoid clashes with other classes, which could result in names such as “MyProject_Controller_FileUpload”.

Namespaces are defined using the keyword namespace (placed on the line immediately after the opening ) and can span several levels or subnamespaces (similar to having several subdirectories where placing a file), which are separated using a :

To access the above class, we need to fully qualify its name including its namespace (and starting with ):

$imageUpload = new CoolSoftImageResizerControllersImageUpload();

Or we can also import the class into the current context, after which we can reference the class by its name directly:

use CoolSoftImageResizerControllersImageUpload;
$imageUpload = new ImageUpload();

By naming namespaces following established conventions, we can get additional benefits. For instance, by following the PHP Standards Recommendation PSR-4, the application can use Composer’s autoloading mechanism for loading files, thus decreasing complexity and adding frictionless interoperability among dependencies. This convention establishes to include the vendor name (e.g. the company’s name) as the top subnamespace, optionally followed by the package name, and only then followed by an internal structure in which each subnamespace corresponds to a directory with the same name. The result maps 1 to 1 the physical location of the file in the drive with the namespace of the element defined in the file.

Traits

Traits were added to PHP 5.4, hence they are currently missing altogether from the WordPress core.

PHP supports single inheritance, so a subclass is derived from a single parent class, and not from multiple ones. Hence, classes that do not extend from one another can’t reuse code through class inheritance. Traits is a mechanism that enables horizontal composition of behavior, making it possible to reuse code among classes which live in different class hierarchies.

A trait is similar to a class, however, it can’t be instantiated on its own. Instead, the code defined inside a trait can be thought of as being “copied and pasted” into the composing class on compilation time.

A trait is defined using the trait keyword, after which it can be imported to any class through the use keyword. In the example below, two completely unrelated classes Person and Shop can reuse the same code through a trait Addressable:

trait Addressable {

  protected $address;
  
  public function getAddress() {
    return $this->address;
  }
  
  public function setAddress($address) {
    $this->address = $address;
  }
}

class Person {

  use Addressable;
}

class Shop {

  use Addressable;
}

$person = new Person('Juan Carlos');
$person->setAddress('Obelisco, Buenos Aires');

A class can also compose more than one trait:

trait Exportable {
  
  public class exportToCSV($filename) {
    // Iterate all properties and export them to a CSV file
  }
}

class Person {

  use Addressable, Exportable;
}

Traits can also be composed of other traits, define abstract methods, and offer a conflict resolution mechanism when two or more composed traits have the same function name, among other features.

Interfaces

Interfaces were added to PHP 5, so WordPress already makes use of this feature, however, extremely sparingly: the core includes less than ten interfaces in total!

Interfaces allow creating code which specifies which methods must be implemented, yet without having to define how these methods are actually implemented. They are useful for defining contracts among components, which leads to better modularity and maintainability of the application: A class implementing an interface can be a black box of code, and as long as the signatures of the functions in the interface do not change, the code can be upgraded at will without producing breaking changes, which can help prevent the accumulation of technical debt. In addition, they can help reduce vendor lock-in, by allowing to swap the implementation of some interface to that of a different vendor. As a consequence, it is imperative to code the application against interfaces instead of implementations (and defining which are the actual implementations through dependency injection).

Interfaces are defined using the interface keyword, and must list down just the signature of its methods (i.e. without having their contents defined), which must have visibility public (by default, adding no visibility keyword also makes it public):

interface FileStorage {

  function save($filename, $contents);
  function readContents($filename);
}

A class defines that it implements the interface through the implements keyword:

class LocalDriveFileStorage implements FileStorage {

  function save($filename, $contents) {
    // Implement logic
  }
  function readContents($filename) {
    // Implement logic
  }
}

A class can implement more than one interface, separating them with ,:

interface AWSService {
  function getRegion();
}

class S3FileStorage implements FileStorage, AWSService {

  function save($filename, $contents) {
    // Implement logic
  }
  function readContents($filename) {
    // Implement logic
  }
  function getRegion() {
    return 'us-east-1';
  }
}

Since an interface declares the intent of what a component is supposed to do, it is extremely important to name interfaces appropriately.

Closures

Closures were added to PHP 5.3, hence they are currently missing altogether from the WordPress core.

Closures is a mechanism for implementing anonymous functions, which helps declutter the global namespace from single-use (or seldom-used) functions. Technically speaking, closures are instances of class Closure, however, in practice, we can most likely be blissfully unaware of this fact without any harm.

Before closures, whenever passing a function as an argument to another function, we had to define the function in advance and pass its name as the argument:

function duplicate($price) {
  return $price*2;
}
$touristPrices = array_map('duplicate', $localPrices);

With closures, an anonymous (i.e. without a name) function can already be passed directly as a parameter:

$touristPrices = array_map(function($price) {
  return $price*2;
}, $localPrices);

Closures can import variables to its context through the use keyword:

$factor = 2;
$touristPrices = array_map(function($price) use($factor) {
  return $price*$factor;
}, $localPrices);

Generators

Generators were added to PHP 5.5, hence they are currently missing altogether from the WordPress core.

Generators provide an easy way to implement simple iterators. A generator allows to write code that uses foreach to iterate over a set of data without needing to build an array in memory. A generator function is the same as a normal function, except that instead of returning once, it can yield as many times as it needs to in order to provide the values to be iterated over.

function xrange($start, $limit, $step = 1) {
    for ($i = $start; $i 

Argument And Return Type Declarations

Different argument type declarations were introduced in different versions of PHP: WordPress is already able to declare interfaces and arrays (which it does not: I barely found one instance of a function declaring an array as parameter in core, and no interfaces), and will soon be able to declare callables (added in PHP 5.4) and scalar types: bool, float, int and string (added in PHP 7.0). Return type declarations were added to PHP 7.0.

Argument type declarations allow functions to declare of what specific type must an argument be. The validation is executed at call time, throwing an exception if the type of the argument is not the declared one. Return type declarations are the same concept, however, they specify the type of value that will be returned from the function. Type declarations are useful to make the intent of the function easier to understand and to avoid runtime errors from receiving or returning an unexpected type.

The argument type is declared before the argument variable name, and the return type is declared after the arguments, preceded by ::

function foo(boolean $bar): int {

}

Scalar argument type declarations have two options: coercive and strict. In coercive mode, if the wrong type is passed as a parameter, it will be converted to the right type. For example, a function that is given an integer for a parameter that expects a string will get a variable of type string. In strict mode, only a variable of the exact type of declaration will be accepted.

Coercive mode is the default. To enable strict mode, we must add a declare statement used with the strict_types declaration:

declare(strict_types=1);
function foo(boolean $bar) {

}

New Syntax And Operators

WordPress can already identify variable-length argument lists through function func_num_args. Starting from PHP 5.6, we can use the ... token to denote that the function accepts a variable number of arguments, and these arguments will be passed into the given variable as an array:

function sum(...$numbers) {
  $sum = 0;
  foreach ($numbers as $number) {
    $sum += $number;
  }
  return $sum;
}

Starting from PHP 5.6, constants can involve scalar expressions involving numeric and string literals instead of just static values, and also arrays:

const SUM = 37 + 2; // A scalar expression
const LETTERS = ['a', 'b', 'c']; // An array

Starting from PHP 7.0, arrays can also be defined using define:

define('LETTERS', ['a', 'b', 'c']);

PHP 7.0 added a couple of new operators: the Null coalescing operator (??) and the Spaceship operator (<=>).

The Null coalescing operator ?? is syntactic sugar for the common case of needing to use a ternary in conjunction with isset(). It returns its first operand if it exists and is not NULL; otherwise, it returns its second operand.

$username = $_GET['user'] ?? 'nobody';
// This is equivalent to:
// $username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

The Spaceship operator <=> is used for comparing two expressions, returning -1, 0 or 1 when the first operand is respectively less than, equal to, or greater than the second operand.

echo 1  2; // returns -1
echo 1  1; // returns 0
echo 2  1; // returns 1

These are the most important new features added to PHP spanning versions 5.3 to 7.0. The list of the additional new features, not listed in this article, can be obtained by browsing PHP’s documentation on migrating from version to version.

Next, we analyze how we can make the most out of all these new features, and from recent trends in web development, to produce better software.

PHP Standards Recommendations

The PHP Standards Recommendations was created by a group of PHP developers from popular frameworks and libraries, attempting to establish conventions so that different projects can be integrated more seamlessly and different teams can work better with each other. The recommendations are not static: existing recommendations may be deprecated and newer ones created to take their place, and new ones are released on an ongoing basis.

The current recommendations are the following:

Group Recommendation Description
Coding Styles
Standardized formatting reduces the cognitive friction when reading code from other authors
PSR-1 Basic Coding Standard
PSR-2 Coding Style Guide
Autoloading
Autoloaders remove the complexity of including files by mapping namespaces to file system paths
PSR-4 Improved Autoloading
Interfaces
Interfaces simplify the sharing of code between projects by following expected contracts
PSR-3 Logger Interface
PSR-6 Caching Interface
PSR-11 Container Interface
PSR-13 Hypermedia Links
PSR-16 Simple Cache
HTTP
Interoperable standards and interfaces to have an agnostic approach to handling HTTP requests and responses, both on client and server side
PSR-7 HTTP Message Interfaces
PSR-15 HTTP Handlers
PSR-17 HTTP Factories
PSR-18 HTTP Client

Think And Code In Components

Components make it possible to use the best features from a framework without being locked-in to the framework itself. For instance, Symfony has been released as a set of reusable PHP components that can be installed independently of the Symfony framework; Laravel, another PHP framework, makes use of several Symfony components, and released its own set of reusable components that can be used by any PHP project.

All of these components are published in Packagist, a repository of public PHP packages, and can be easily added to any PHP project through Composer, an extremely popular dependency manager for PHP.

WordPress should be part of such a virtuous development cycle. Unfortunately, the WordPress core itself is not built using components (as evidenced by the almost total absence of interfaces) and, moreover, it doesn’t even have the composer.json file required to enable installing WordPress through Composer. This is because the WordPress community hasn’t agreed whether WordPress is a site’s dependency (in which case installing it through Composer would be justified) or if it is the site itself (in which case Composer may not be the right tool for the job).

In my opinion, if we are to expect WordPress to stay relevant for the next fifteen years (at least WordPress as a backend CMS), then WordPress must be recognized as a site’s dependency and made available for installation through Composer. The reason is very simple: with barely a single command in the terminal, Composer enables to declare and install a project’s dependencies from the thousands of packages published in Packagist, making it possible to create extremely-powerful PHP applications in no time, and developers love working this way. If WordPress doesn’t adapt to this model, it may lose the support from the development community and fall into oblivion, as much as FTP fell out of favor after the introduction of Git-based deployments.

I would argue that the release of Gutenberg already demonstrates that WordPress is a site dependency and not the site itself: Gutenberg treats WordPress as a headless CMS, and can operate with other backend systems too, as Drupal Gutenberg exemplifies. Hence, Gutenberg makes it clear that the CMS powering a site can be swappable, hence it should be treated as a dependency. Moreover, Gutenberg itself is intended to be based on JavaScript components released through npm (as explained by core committer Adam Silverstein), so if the WordPress client is expected to manage its JavaScript packages through the npm package manager, then why not extend this logic to the backend in order to manage PHP dependencies through Composer?

Now the good news: There is no need to wait for this issue to be resolved since it is already possible to treat WordPress as a site’s dependency and install it through Composer. John P. Bloch has mirrored WordPress core in Git, added a composer.json file, and released it in Packagist, and Roots’ Bedrock provides a package to install WordPress with a customized folder structure with support for modern development tools and an enhanced security. And themes and plugins are covered too; as long as they have been listed on the WordPress theme and plugin directories, they are available under WordPress Packagist.

As a consequence, it is a sensible option to create WordPress code not thinking in terms of themes and plugins, but thinking in terms of components, making them available through Packagist to be used by any PHP project, and additionally packaged and released as themes and plugins for the specific use of WordPress. If the component needs to interact with WordPress APIs, then these APIs can be abstracted behind an interface which, if the need arises, can be implemented for other CMSs too.

Adding A Template Engine To Improve The View Layer

If we follow through the recommendation of thinking and coding in components, and treat WordPress as a site’s dependency other than the site itself, then our projects can break free from the boundaries imposed by WordPress and import ideas and tools taken from other frameworks.

Rendering HTML content on the server-side is a case in point, which is done through plain PHP templates. This view layer can be enhanced through template engines Twig (by Symfony) and Blade (by Laravel), which provide a very concise syntax and powerful features that give it an advantage over plain PHP templates. In particular, Gutenberg’s dynamic blocks can easily benefit from these template engines, since their process to render the block’s HTML on the server-side is decoupled from WordPress’ template hierarchy architecture.

Architect The Application For The General Use

Coding against interfaces, and thinking in terms of components, allows us to architect an application for general use and customize it for the specific use that we need to deliver, instead of coding just for the specific use for each project we have. Even though this approach is more costly in the short term (it involves extra work), it pays off in the long term when additional projects can be delivered with lower efforts from just customizing a general-use application.

For this approach to be effective, the following considerations must be taken into account:

Avoid Fixed Dependencies (As Much As Possible)

jQuery and Bootstrap (or Foundation, or <–insert your favorite library here–>) could’ve been considered must-haves a few years ago, however, they have been steadily losing ground against vanilla JS and newer native CSS features. Hence, a general-use project coded five years ago which depended on these libraries may not be suitable nowadays anymore. Hence, as a general rule of thumb, the lower the amount of fixed dependencies on third-party libraries, the more up-to-date it will prove to be for the long term.

Progressive Enhancement Of Functionalities

WordPress is a full-blown CMS system which includes user management, hence support for user management is included out of the box. However, not every WordPress site requires user management. Hence, our application should take this into account, and work optimally on each scenario: support user management whenever required, but do not load the corresponding assets whenever it is not. This approach can also work gradually: Say that a client requires to implement a Contact us form but has no budget, so we code it using a free plugin with limited features, and another client has the budget to buy the license from a commercial plugin offering better features. Then, we can code our functionality to default to a very basic functionality, and increasingly use the features from whichever is the most-capable plugin available in the system.

Continuous Code And Documentation Review

By periodically reviewing our previously-written code and its documentation, we can validate if it is either up-to-date concerning new conventions and technologies and, if it is not, take measures to upgrade it before the technical debt becomes too expensive to overcome and we need to code it all over again from scratch.

Recommended reading: Be Watchful: PHP And WordPress Functions That Can Make Your Site Insecure

Attempt To Minimize Problems But Be Prepared When They Happen

No software is ever 100% perfect: the bugs are always there, we just haven’t found them yet. As such, we need to make sure that, once the problems arise, they are easy to fix.

Make It Simple

Complex software cannot be maintained in the long term: Not just because other team members may not understand it, but also because the person who coded it may not understand his/her own complex code a few years down the road. So producing simple software must be a priority, more since only simple software can be correct and fast.

Failing On Compile Time Is Better Than On Runtime

If a piece of code can be validated against errors at either compile time or runtime time, then we should prioritize the compile time solution, so the error can arise and be dealt with in the development stage and before the application reaches production. For instance, both const and define are used for defining constants, however, whereas const is validated at compile time, define is validated at runtime. So, whenever possible, using const is preferable over define.

Following this recommendation, hooking WordPress functions contained in classes can be enhanced by passing the actual class as a parameter instead of a string with the class name. In the example below, if class Foo is renamed, whereas the second hook will produce a compilation error, the first hook will fail on runtime, hence the second hook is better:

class Foo {
  public static function bar() {

  }
}

add_action('init', ['Foo', 'bar']); // Not so good
add_action('init', [Foo::class, 'bar']); // Much better

For the same reason as above, we should avoid using global variables (such as global $wpdb): these not only pollute the global context and are not easy to track where they originate from, but also, if they get renamed, the error will be produced on runtime. As a solution, we can use a Dependency Injection Container to obtain an instance of the required object.

Dealing With Errors/Exceptions

We can create an architecture of Exception objects, so that the application can react appropriately according to each particular problem, to either recover from it whenever possible or show a helpful error message to the user whenever not, and in general to log the error for the admin to fix the problem. And always protect your users from the white screen of death: All uncaught Errors and Exceptions can be intercepted through function set_exception_handler to print a non-scary error message on screen.

Adopt Build Tools

Build tools can save a lot of time by automating tasks which are very tedious to execute manually. WordPress doesn’t offer integration with any specific build tool, so the task of incorporating these to the project will fall entirely on the developer.

There are different tools for accomplishing different purposes. For instance, there are build tools to execute tasks for compressing and resizing images, minifying JS and CSS files, and copying files to a directory for producing a release, such as Webpack, Grunt and Gulp; other tools help create the scaffolding of a project, which is helpful for producing the folder structure for our themes or plugins, such as Yeoman. Indeed, with so many tools around, browsing articles comparing the different available tools will help find the most suitable one for our needs.

In some cases, though, there are no build tools that can achieve exactly what our project needs, so we may need to code our own build tool as an extension to the project itself. For instance, I have done this to generate the service-worker.js file to add support for Service Workers in WordPress.

Conclusion

Due to its strong emphasis on keeping backwards compatibility, extended even up to PHP 5.2.4, WordPress has not been able to benefit from the latest features added to PHP, and this fact has made WordPress become a not-very-exciting platform to code for among many developers.

Fortunately, these gloomy days may soon be over, and WordPress may become a shiny and exciting platform to code for once again: The requirement of PHP 7.0+ starting in December 2019 will make plenty of PHP features available, enabling developers to produce more powerful and more performant software. In this article, we reviewed the most important newly-available PHP features and how to make the most out of them.

The recent release of Gutenberg could be a sign of the good times to come: even if Gutenberg itself has not been fully accepted by the community, at least it demonstrates a willingness to incorporate the latest technologies (such as React and Webpack) into the core. This turn of events makes me wonder: If the frontend can get such a makeover, why not extend it to the backend? Once WordPress requires at least PHP 7.0, the upgrade to modern tools and methodologies can accelerate: As much as npm became the JavaScript package manager of choice, why not making Composer become the official PHP dependency manager? If blocks are the new unit for building sites in the frontend, why not use PHP components as the unit for incorporating functionalities into the backend? And finally, if Gutenberg treats WordPress as a swappable backend CMS, why not already recognize that WordPress is a site dependency and not the site itself? I’ll leave these open questions for you to reflect upon and ponder about.

Smashing Editorial(rb, ra, il)

Generate New York is back for 2019

We’re delighted to announce that Generate New York, the unmissable event for web designers and developers, is back in 2019.

Generate returns to the Big Apple between April 24-25 and promises to be bigger and better than even before. Held at the TKP New York Conference Center, the two day conference will feature a packed day of practical workshops followed by an inspirational single-track conference.

Here’s a preview of some of the world-class names that’ll be speaking at Generate New York 2019 – and we’ll be updating you with even more conference speakers in the coming days.

Stellar conference lineup

Confirmed conference speakers include the founder of Big Medium, Josh Clark, who will deliver the day’s keynote: AI is your new design material.

Josh’s lively and inspiring talk will explore the technologies and practical techniques that you can use right now. Learn to use machine-generated content, insight, and interaction as design material in your everyday work.

The challenges and opportunities of AI and machine learning are plenty; Clark’s insight will help you discover your own influential role, and learn to handle this powerful new design material with care and respect.

Miriam Suzanne is an author, performer, musician, designer, and web developer working with OddBird, Teacup Gorilla, Grapefruit Lab, and CSS Tricks. 

Suzanne’s inspirational conference talk, Dynamic CSS: Layouts & Beyond, will cover Basics for understanding Custom Properties & Calc(); practical examples and use-cases for data-infused design and integrating with CSS Grids to build layouts on the fly.

Suzanne is also the author of Riding SideSaddle* and The Post-Obsolete Book, co-author of Jump Start Sass(Sitepoint), and creator of the Susy and True open source tools.

Sam Richard, better known as Snugug throughout the Internet, is currently working at Google to help companies build and deliver their applications for Chrome and Chrome OS.  

Richard’s talk Design System Magic with Houdini will focus on a handful of key browser specifications being developed under the CSS Houdini Task Force umbrella, with key interest given to features that can start to be leveraged today in design systems. Richard will cover what CSS Houdini is and describe these key technologies in relation to common design system problems and patterns, and how Houdini can greatly improve the flexibility, power, performance and maintainability of these patterns.

Get 25% off tickets – offer ends 28 February 2019

We’ve put together an early bird offer that will give you 25% off your ticket. Be quick though – this special offer runs out on 28 February 2019 and tickets will go quickly. What are you waiting for? Head to the Generate website now to book your seat at 2019’s biggest and best web design and development event – just click through to book tickets and you’ll see the early bird options.

Related articles:

The best pens for artists in 2019

What’s the best pen for an artist? It’s a difficult to answer, because pens are used for so many different things. So in this post, we’ve gathered the opinions of artists, designers and other creatives to find out which pens should be in your desk drawer.

Read on and you’ll find out which are the best pens for drawing, of course, but also the best pen for writing, the best pen for sketching, the best pen for calligraphy and so on. In short, whatever you need a pen for, you’ll find the right one for you in this list. If you’re sorting out your full pencil case, take a look at our guide to the best pencils, too. 

The best pen for drawing: Copic 1mm Multiliner

Picking the best pen for drawing was a close-run competition, but ultimately we had to opt for the Copic 1.0 mm Multiliner, which is a truly premium quality pen in all respects. The ink is densely pigmented, holds well on paper, and creates crisp, clean lines. Copic sells its Multiliners in a range of thicknesses, so you can pick the option that suits your artistic style best. Artists report they’re comfortable to use, and not scratchy – even in the finer sizes. Finally, the range is good value for money, and refillable. 

Ben O’Brien, aka Ben the Illustrator, started using Copic pens a couple of years ago for the Inktober challenge. While he used a range of different nib options, his preference was for the 1.0 pen (although he also noted Copic’s Multiliner brush pen is “brilliant”). “I find thinner pens too scratchy, but the 1.0 has a luscious feel to it. I use it for ‘good drawings’, usually on textured watercolour paper.”

“Copic fine liners are great for drawing,” agrees interactive designer Sush Kelly. “I mainly use them for inking sketches; I wouldn’t waste these bad boys on notes and so on. I love the super-fine, refillable nibs; I tend to use a 0.05, 0.1, 0.3, 0.5 and 0.8.”

The best pen for drawing: Pentel brush pen

With its hardwearing synthetic bristles, sturdy, precise tip and waterproof, fade-resistant ink, the Pentel Brush Pen runs a close second for our favourite all-round pen for drawing. The artists we spoke to commented that these pens are great for creating a variety of different line types – although the delicate nib does take some getting used to. The deep black pigment scans very well; ideal if you want to finish your artwork digitally. You’ll need to be careful transporting them though – the ink can leak or clump if the lid isn’t on tight. 

Illustrator Ailish Sullivan has fond memories of receiving her first Pentel Brush Pen. “A guy on my illustration course gave me one and I was blown away,” she recalls. “I think I drew everything for the rest of my course with it, because it added character and a personal touch to every stroke. I have now dated this guy for 10 years… a love story started by a brush pen!

“I love the variety of lines you can get from the pen. If you want to get really expressive, the individual hairs create a great texture when you really sweep it across the page. When you want something really precise it can also perform well, with practice. When you want to add a feeling of weight, you can increase the pressure ever so slightly and get a bolder finish.

“It does take a lot of practice because it’s so delicate,” she cautions. “I’ve tried the Kuretake Sumi brush pen and Pentel Sign pen alternatives and they are much easier to use, but have less potential.”

best pen for writing: Pilot V7 rollerball

The Pilot V7 Rollerball is essentially a hybrid between a fountain pen and a ballpoint, and our favourite pen for writing. Comfortable to hold, it produces a clean, consistent line with no smudging, and there’s a transparent ink reservoir window so you can be sure of getting hold of extra refills in time.

Sush Kelly uses the 0.7mm version for everything from scribbling to-do lists to creating quick wireframes. “It has such a great feel,” he enthuses. “It possibly wouldn’t be so good for really accurate drawing, as the flow is quite quick for a rollerball. But otherwise, this is my go-to pen.”

best ballpoint pen: Pilot BPS-GP Fine Ballpoint

If you’re looking for the best ballpoint pen, we’d recommend the Pilot BPS GP Fine. This smooth, stick ballpoint with triangular rubber grip is comfortable to hold, cheap to buy, and beautifully functional in use. However, like most ballpoint pens, ink clots can form on the tip, which will smear if they end up on your paper. This ballpoint pen includes 0.7mm, 1.0mm, 1.2mm and 1.6mm options.

Most people use them for writing of course, but it’s not unheard of to use them for drawing too. Illustrator Gaia Brodicchia sometimes uses the Pilot for black and white interior illustrations. “Shading with it produces darker drawings than working with graphite, but the process is identical; it only requires a lighter hand,” she explains. “The Pilot Fine tip works well even on smaller details, which are usually an issue with other brands of ballpoint pen. It gives a really good tonal range. I actually keep one that’s a bit spent for the lighter areas, and a new one for the darker parts of the illustrations.”

The best gel pen: MoMa Muji

Maybe it’s because we’re Japanophiles, but Muju’s MoMa pen with its unusual 0.38mm tip is our clear favourite for the best gel pen. These produce a thin line and consistent flow, and the ink won’t run when wet. You can also buy refills. 

And art director, designer and illustrator Savanna Rawson uses them for the linework in her illustrations. “Originally I was most interested in using this pen for my quite tiny handwriting, but in the last few years have I been using them for drawing as well,” she says. “I find it great for the line work in my illustrations, which I then complete with watercolour washes. The ink doesn’t reactivate with the water, which is perfect.”

best calligraphy pen: Tombow Fudenosuke Brush Pen

If calligraphy is your thing, the best pen for you is the Tombow Fudenosuke brush pen. You might assume that the best calligraphy pens cost a lot of money. But actually, our recommendation is a brand that’s both made in Japan and delivers excellent results, yet is surprisingly affordable. Coming as a set, with one soft type and one hard type, these light pens are very easy to use, with a flexible nib that’s perfect for the nuanced lines and curves needed for crafting beautiful Japanese script.

“I recently got a proper calligraphy set with nibs and inks and all that,” says brand and marketing guru Aleksandra Tambor. “But my Tombow brush pens are still the best for quick calligraphy and lettering.”

best pen for sketching: Platinum Carbon Pen DP-800S Extra Fine

Specifically looking for a pen for sketching? Then we recommend the Platinum carbon fountain pen, with its ultra-fine nib. Unlike most fountain pens, the nib isn’t rounded off, so you can use it to create thick or thin lines. Your expressive linework won’t run with water either, thanks to the carbon ink. It’s also great value for money. Like some other pens on this list, there’s a learning curve on this one, as it can feel scratchy to start with. 

Wil Freeborn, an illustrator and watercolour artist based in Glasgow, describes it as: “The closest I’ve found to using a dip pen on the go. Using it literally changed how I draw.” Freeborn uses this pen mainly for sketching. “It gives a really naturalistic expressive line, great for drawing in cafes,” he enthuses. “I use it with a Pentel Brush Pen, which pretty covers most of what I need. It needs quite a smooth paper to work, so wouldn’t really be suited with a rough watercolour paper.”

It was a very close-run thing, but we’ve plumped for the Sakura Pigma Graphic 1 as our runner-up for best sketching pen. This pen, which combines water-based and pigment-based inks, is a seriously fine model, delivering a bold, consistent line and superb colour transferal. 

Illustrator Anna Rose uses it for quick sketchbook studies, and finds it works particularly well for buildings, objects, food and lettering (although less so for people and animals). “The consistency of the ink and the way the pen tip glides mean I can get expressive lines and marks down immediately,” she says. “I also love the width of the line. With fineliners I get too precious about lines. But the Graphic lays down a bold line, so it sort of forces me to be bold and really commit to the lines.”

The Sakura Pigma Micron is our pick for the best pen for lettering and line art. They create a pleasingly dark line that bleeds very little, is archival safe, and won’t smudge when washed or erased over. The tips are fine but not too delicate, and they’re also odour-free. With a little practice, you can also use them to create a variety of line types – although if you’re wanting a lot of line variation, you’re better off with a brush pen. You’ll also want to add a marker to your pen set if you need to fill in large areas of shadow. Any downsides? Well, the nibs can sometimes spit a little ink, and the line can crack if used with some types of paper.

Cartoonist Aaron Uglum uses a Sakura Micron 08 for the majority of his line art and lettering, with a 01 for details such as eyes and mouths. He started out using a traditional dip pen with India Ink, but didn’t like the setup and clean-up time it required. “Eventually I moved to the 08 as my pen of choice,” he explains. “I liked being able to just pick up a pen and start inking. No worries about spilling the India Ink. And I could stop inking whenever and just walk away. No cleaning pen nibs. Very convenient. And it was still good ink.”

Concept artist Courtland Winslow is also an admirer of the Pigma Micron line, and regularly makes use of the 0.2mm version (the 005) in combination with a Copic Y19 Napoli Yellow (see number 13). Of the Micron, he says: “I needed a liner that wouldn’t run when washed or erased over. A good feeling tip that was both as thin as possible and sturdy, because I don’t have a very light hand.”

The best felt tip pen: Papermate flair original

PaperMate’s Flair Original felt tips are ideal for adding a splash of colour to your pen work. If you’re sick of look back on your notes, only to be faced with an inchoate mass of scribbles, these are the felt-tip pens for you. The colours are vibrant and bold, and won’t smudge or bleed. They flow smoothly across paper and the nibs won’t fray. If you’re thinking of using these for illustration, be aware they’re better suited to outlines – you’ll want something chunkier for colouring in large areas.

Ross Middleham, content lead at the Met Office, uses them for scribbling, storyboarding and general note-taking. “I love making notes in multiple colours as it simply livens up the day. My fave is the hot pink, which really zings on a white page,” he says. “You can be confident that the stroke you want will be the stroke it makes.”

Kuretake no. 13 Brush Pen

Looking to draw living things? Check out the Kuretake Sumi brush pen. It offers a wide variation in line width to give your sketches an organic, dynamic feel that’s well suited to portraits, animals and plants. 

“It’s refillable and fits a Platinum converter, which is very helpful because the ink that comes with it isn’t anything special or waterproof,” comments Anna Rose. “It would be nice if Kuretake supplied a waterproof ink themselves, though; I do worry that the Platinum may clog it up eventually.”

Best budget pens: Berol Colour Fine Liners

Short on cash, but still want a decent pen? Our budget choice is Berol’s Colour Fine range, which has a fine tip that’s suitable for detailed colouring and drawing. The perennial classroom favourite, these felt-tipped pens are available in a variety of colours (if you don’t want the full set, you can buy these individually), and are strong, sturdy and reliable. 

“I have used Berol colour fineliners all my life, in all different colours. The bolder colours – especially the orange and light blue – have got a really good tone to them,” says Ben O’Brien. “I have black ones littered around my desk, bag and house for writing lists and notes, and the colour ones I usually use for more experimental sketchbook work, or bringing a little colour to observational line drawings when I travel.”

Best pen for shading: Copic Y19 Napoli Yellow

For colour fills and shading, you can’t beat Copic Sketch markers.  The lines blend together seamlessly for block shading, and if you leave them to dry, they won’t bleed into each other much. The feature one brush tip and one wedge tip, meaning you can also use them for fine details. The full range includes a whopping 358 colours (buy the full set here, if you’re feeling flush), so you’re bound to find the shade you want. Concept artist Courtland Winslow is a loyal user of the Copic Y19 Napoli Yellow, which he uses in conjunction with the Micron 005 (see number 9, above).

Best pen for finishing touches: Pentel Brush Pen

The Pentel XGFKP/FP10-A Brush Pen is specifically designed for oriental artwork, cartoons and calligraphy. This light pen has a soft, flexible nib that’s great for both fine detail and graceful, sweeping lines.

As such, fashion, beauty, food and lifestyle illustrator Niki Groom, aka Miss Magpie, typically uses it at to add finishing touches to the end of any artwork. “I call this my desert island pen,” she says. “I use it to add names for live illustration work, and to make areas even more black if I’m not happy with the depth of colour.” 

KeyShot 8 review

We’ve watched with interest how KeyShot has evolved since first looking at version 3 back in 2012. Version 8 represents one of the biggest updates in the software’s history, bringing a range of new tools, materials and shaders to make your renders more varied and more realistic than ever.

KeyShot 8: New nodes

The key feature for 3D generalists will be the new geometry node types, which add Displacement, Flakes and Bubbles. Displacement works similarly to most renderers, using a greyscale texture to generate surface detail that would be difficult to model or sculpt.

KeyShot’s implementation is excellent, producing really fine levels of displacement. It’s not instant – there’s a bit of calculation time while KeyShot generates the necessary geometry, but once done, there’s seemingly no real hit on navigation or render times.

To use the Flakes node, ideally you should duplicate your mesh then apply the geometry node to one, and a transparent material to the other. This lets you create glass or plastics with sparkling metal flakes or spherical beads inside.

The Bubbles node works with a single material to add realistic bubbles, which is ideal for making fizzy drinks, clear gels, that kind of thing. You can, of course, use these nodes on their own for strange and dramatic results, such as a mesh made entirely of flakes or tiny spheres.

Pair of flaky Buddah models

The geometry nodes can be used to create things like metallic flakes or bubbles within an existing mesh

Another important addition is the Scattering Medium, which can be used for rendering smoke and fog, and works nicely with the new Spotlight to create visible light rays. You can render OpenVDB files or simply apply it to a mesh for more abstract imagery.

The end results are terrific, but the Scattering Medium can be one of the slowest elements to render, so use it with caution (or a lot of CPU cores). It’s also one of the things that make us think KeyShot would benefit from a de-noising solution, especially with some of its new materials being such render hogs.

The app always gets you to 90-95% of the final image very quickly, but there’s usually a wait for certain effects to resolve. A de-noising function or adaptive sampling would reduce that final waiting time.

KeyShot 8: Cutaway feature

KeyShot’s handy new Cutaway feature uses a Boolean function to remove sections of a mesh, revealing the details within. You simply apply the Cutaway material to an object, such as a cube or sphere, and have it intersect with your mesh. The sliced edges are shaded to highlight the effect, and you can exclude specific objects, enabling you to cut through a casing, for example, and leave the gearing inside intact.

Overall, it’s dead easy to apply and the results are very clean. There are a few caveats, in that it doesn’t work well with glass, and objects need to be solid, but it’s a really useful function and one that product designers and engineers will love. (And it can also be used as a last-minute modelling tool, if you need to remove part of a model or maybe add some details.)

Cutaway of an industrial tool

By applying the Cutaway material to a mesh, you can remove parts of your object and, in true engineering style, have the sliced edges painted red for clarity

KeyShot 8: Workflow improvements

Among the numerous workflow improvements, you now get built-in image-editing tools, with curves, tone mapping and colour adjustments. This is a simple but hugely convenient feature, which enables you to refine the look of your image – as it renders – without endless round-trips to an image editor.

There’s also new multi-layered optics, if realistic glass is your thing, support for hex colour codes, gITF/GLB export, and improvements to KeyShot’s Studios and Configurator.

All in all, KeyShot 8 is a really impressive update. Some things – such as displacement mapping – are a bit overdue, but they’re here now and very nicely implemented, with tweaks and enhancements already queued up for version 8.1. It’s a shame that KeyShot’s high cost and reputation as a niche renderer prevents broader adoption, because once you try it, there’s no going back.

A group of sprouting ferns

KeyShot’s not just for product shots any more. The addition of mesh displacement opens up a world of opportunities

Its ability to deal with multi-million-polygon scenes, and the sheer ease with which you can experiment with materials and lighting, make it a joy to use – and actually rather addictive. It also helps that the end results are usually pretty gorgeous, too. If you’re lucky enough to use KeyShot for a living, then your job’s about to get a whole lot easier.

KeyShot 8 is a huge update, bringing something for everyone. It’s still primarily a product visualisation tool, but these new features see it creep ever further into the realms of illustration, architecture and even VFX. It’s still expensive – especially if you want the ‘Pro’ features – but for current owners this update is definitely worth it.

Improve your manga art skills with ImagineFX

Learn how to become a better manga artist with the latest issue of ImagineFX magazine, which goes on sale today. Inside issue 172, you’ll learn how give your character art energy and a distinctive personality all of its own. So if you’ve always wanted to give your manga a recognisable flair, be sure to pick up this issue and put its lessons into practice!

Buy issue 172 of ImagineFX here

Elsewhere in issue 172, artist Patrick J Jones continues his comprehensive figure drawing series by showing you how to realise realistic hands and arms. Covering everything from the bones through to the proportions and muscles, this workshop will help you nail one of the most difficult body parts.

On top of that, we take a look into the sketchbooks of Martin Abel and Guille Rancel shares how to design creatures with a strong personality. There’s also all the news, reviews and reader art you’ve come to expect from ImagineFX magazine, so don’t miss it, grab yours today!

Never miss an issue: Subscribe to ImagineFX here

Explore what’s on offer by taking a peek at the lead features, below.

Develop your individual art style

ImagineFX magazine spread

Leading artists reveal how they honed their style

Is style something that you can learn, or is it the result of work, work and more work? We catch up with industry leading artists to hear how they stayed true to their creative outlook and made work that reflects their vision – and what you need to keep in mind if you want to do the same.

The roller-coaster career of Sachin Teng

ImagineFX magazine spread

Sachin Teng reveals her work and life story so far

Could you make it as an artist in just two years after graduation? That was the challenge set by Sachin Teng’s mum after she dropped out of art school. With rent to pay and work to make, Sachin set to work on forging her career as a commercial artist. We catch up with her to discover how she’s making it work.

Learn how to paint a fantasy manga portrait

ImagineFX magazine spread

Discover how to create this colourful manga character

Put away your inks and maker pens, you won’t be needing them for this digital art manga tutorial. Instead you’ll discover how Photoshop can create brush-like effects and soft colours that emulate traditional manga methods. With advice on shading, textures and more, this workshop is full of skills that can be transferred to your next project.

Anime composition insights

ImagineFX magazine spread

How’s that for a street view?

If you’ve already got a good understanding of basic perspective concepts, this tutorial by Tan Hui Tian will show you how to give your street scenes an anime twist. With her advice, you’ll be able to create backgrounds that are loaded with cohesive colours, characterful details and immaculate vanishing points.

Create a Neon Genesis Evangelion character

ImagineFX magazine spread

This workshop will show you how to create a beloved character

Concept artist and illustrator Paul Kwon has worked for Riot Games and Blizzard Entertainment, so he knows a thing or two about creating character art. In this workshop, the man himself shares how he gives Asuka from Neon Genesis Evangelion an anime twist in Procreate.

Related articles:

40 inspiring examples of letterpress business cards

Letterpress printing has been around for hundreds of years and yet remains one of the hottest trends in stationery, so it’s little surprise that letterpress business cards can still turn heads. The ancient technique involves a surface with raised letters or artwork inked and then pressed into thick, soft paper, adding an exciting, tactile quality to the design.

Known for producing a clean and elegant style, the letterpress technique is favoured by many designers for creating unique and creative business cards. Here we’ve picked some brilliant examples of letterpress business cards to inspire your designs.

01. Maldini Studios

letterpress business cards: Maldini Studios

The textured stock helps the custom typeface stand out

Maldini Studios is a Stockholm-based interior design and construction firm that specialises in design and carpentry for private and public spaces. As part of a larger identity project for Maldini, Jens Nilsson created these fantastic letterpress business cards on textured stock from GF Smith and Arjowiggins, making good use of the bespoke Donadoni typeface he created for the studio.

02. Gala Tuesday

letterpress business cards: Gala Tuesday

Gold foil makes a perfect finishing touch for these luxurious cards

Produced by Jukebox Print for Gala Tuesday, these letterpress business cards create an instant impression thanks to their die-cut pineapple shape, backed up by eye-catching pink and green paper stock, plus a luxurious finish in the form of some gold foil.

03. Stawomir Mielnik photography

Stawomir Mielnik photography letterpress business card

We love the creative use of embossing here

Polish print and design studio PanBonTon came up with a very clever camera-inspired card for photographer Stawomir Mielnik, using uninked embossed lines to represent light, and turn a simple cube into a pinhole camera.

04. Sauvage Garage

Sauvage Garage letterpress business cards

Sauvage Garage’s cards grab the attention with their bold colours

Sauvage Garage is a creative collective consisting of graphic artists, photographers, writers, illustrators and more, from all across France. Its business cards, designed by Anne-Perrine Couët and printed by Letterpress de Paris, keep things simple with strong colours and an evocative graffiti logo. 

05. Stefan Leitner

These bold cards really reflect Stefan Leitner’s personality

Photographer Stefan Leitner asked Kristina Bartosova to design a simple business card for him. Instead, inspired by his extrovert personality, she decided to do the exact opposite, and designed a bold logotype that really stands out when rendered in letterpress.

06. Voltalab

 Voltalab business cards

The Voltalab logo combines a test tube rack and keyboard

Voltalab is a recording studio built in the space where Cargo Studios and Suite 16 used to record classic bands such as Joy Division, The Fall, Happy Mondays and The Stone Roses. Fieldwork designed a whole identity package inspired by the building’s rich heritage, including these stunning minimal business cards. The cards showcase the logo mark, which is a visual play on the Voltalab name and combines references to a test tube rack and an octave on a keyboard.

07. Spotted Zebra

Spotted Zebra branding

Sarah Mangion’s Spotted Zebra branding is sophisticated yet slightly quirky

Sarah Mangion‘s branding for Spotted Zebra, an online resource for writing, events and media management, needed to feel professional, bold and sophisticated with a slight quirkiness. Her letterpress business card design combines the logo in a simple geometric typeface, and a hand-drawn zebra illustration to add a custom feel.

08. Le Balene

Le Balene letterpress business cards

Those little stamps make Le Balene’s cards totes adorbs

We love Eleonora Petrolati‘s wonderful stylised whale-based logo for Italian communication agency, Le Balene, and how she’s turned it into a distinctive business card design. But what really marks this project out is her inclusion of a set of stamps and coloured inks that people can add their own little customisations to.

09. Quentin Monge

letterpress business cards: Don't try studio

The pattern work is great on these letterpress business cards

Created using white foil, these five-colour letterpress business cards on triplex colourplan paper certainly pop. Using a bold and colourful pattern only plays to the card’s strengths, which will certainly make for a memorable exchange. Designed by Don’t Try Studio for Quentin Monge, they’re some of the best-looking we’ve ever seen.

10. The Fox Yards Company

Letterpress business cards: Jukebox Print

3D embossed design makes its mark

Produced by Jukebox Print, these ultra-thick cotton paper letterpress business cards bring 3D embossed design to the table. Using Jukebox Print’s own innovative method, the attention to detail is wonderful, with the letterpress used to add text as well as a quirky textured background.

11. Christina Yan

Letterpress business cards: Belinda Love Lee

A sophisticated letterpress option from Belinda Love Lee

“Christina Yan is a talented prop stylist based in Toronto,” explains creator Belinda Love Lee. “This whole stationery set exudes sophistication and timelessness with a bit of edge. Each piece was letterpressed with the finishing touches of gold foiling, gold edging, and embossing.”

12. OF ZOOS

Letterpress business cards: Charmaine Yeo

The cards were designed for Singaporean online literary journal OF ZOOS

Using a simple yet effective pattern of illustrative animals, these letterpress business cards pack a punch when it comes to originality. Designed for Singaporean online literary journal OF ZOOS, we love designer Charmaine Yeo‘s execution.

13. Rafal Borek Photography

Letterpress business cards: Letter & Press

The historic press was used for this business card design

The Letter & Press Behance page states: “Mr Rafal from Ireland needed some business cards for his photographic business. But not a usual ones – really wonderful and over the top. So we printed the graphic with our historic press which can really show fine detail.”

14. Mild Whistle

Letterpress business cards: Oddds

Beautiful letterpress business cards for a Singapore-based agency

Combining craft and precision to produce a beautiful aesthetic, these cards from Singapore-based agency Oddds are about as beautiful as they come. The Oddds website states: “The identity broadens with usage of letterpress accompanied by glamour with modernism. This is created with the intertwining between bronze and a soft tone of turquoise. The play of metal tones and pieces with cotton represents the designer’s ideologies of art direction and design.”

15. Elias Mendoza

Letterpress business cards: Elias Mendoza

These classic-looking cards aim to convey the unique and personalised touch that Mendoza brings to his work

When Cocoa Branding was hired to create branding materials for Elias Mendoza, an immigration and naturalisation attorney in the US, it needed to convey the unique and personalised touch that Mendoza brings to his work with all types of family and business immigration needs. Part of the branding solution was these heavyweight letterpress business cards, designed by Rodrigo Suárez.

16. Bailey H Robinson

Letterpress business cards: Bailey H Robinson

Two Arms Inc aimed for a turn-of-the-century look with this card, and got it spot-on

Brooklyn-based tattoo artist Bailey H Robinson has a very distinct take on traditional American tattooing. Two Arms Inc was keen to design something that looked and felt like traditional turn-of-the-century type. The resulting letterpress card is an ornate delight that wouldn’t have looked out of place in 1901 (except for the contact URL, of course).

17. Motor City Chop Shop

letterpress business cards

We can practically hear the thunder of the engines

This design for Motor City Chop Shop has its finger on the pulse of Detroit’s motorcycle culture. Created by Company Folders, the card’s surface features a dotted emboss effect for a cool background texture that doesn’t compete with the letterpress text. Tires and handlebars turn the curvy font into a chopper, while the slanted letters add a sense of speed and movement.

18. The Yard VFX

The yard vfx

The striking silver contrasts perfectly with the inky blue background

The Yard VFX is a visual effects company based in Paris. When Mr Cup Studio was tasked with redesigning the studio’s identity, the entire graphic language was built around the fact that it would be printed using letterpress. The eye-catching letterpress business cards feature a debossed astrological design, with the studio’s URL in striking silver.

19. Mia Parcell

letterpress business cards

Typographer Mia Parcell gets a circular letterpress card

Impressworks printed these letterpress business cards for designer Mia Parcell. The job features a two-colour, double-sided print on our 600gsm Fluoro White Crane Lettra stock. Parcell took care of the artwork herself, with Impressworks coming up with the circular execution.

20. Simon Featherstone

examples of letterpress business cards

A contemporary logo design and letterpress card for the lighting designer

Simon Featherstone is a freelance lighting designer and programmer, with vast experience in video and LED technology. The contemporary logo marque uses a pattern derived from LEDs and combines it with a bold gradient running from cyan to magenta. The branding collateral uses a range of cool grey tones to suitably reflect the high-end nature of the industry and communicate a professional and knowledgable tone of voice.

Next page: More brilliant letterpress business cards

21. Ben Chen

letterpress business cards: Ben Chen

The gold foil brings these colourful cards to life

Taiwan-based designer Sion Hsu created these stunning business cards for the photographer, Ben Chen. Using textured card stock in a variety of colours, Sion’s designed are enlivened by a letterpress process and gold foil.

22. Dane Holmquist

Letterpress business cards:  Dane Holmquist

American artist Dane Holmquist created the illustration for these letterpress business cards himself

These detailed, beautiful letterpress business cards belong to illustrator and graphic designer Dane Holmquist. The talented artist created the intricate illustration himself, before enlisting the help of printers DSJ in Santa Monica, who helped bring his vision to life. Holmquist’s mantra is: “If it has the potential to be cool, I will do my very best to make it so.” And he’s certainly achieved that with this gorgeous design.

23. Jee

Letterpress business cards: Jee

Johanna Ecker’s gorgeous letterpress business cards double as a tiny notebook

Brand consultant Johanna Elisabeth Ecker wanted a business card that reflected both the quality of her work and her personality. Working alongside designer Kurt Glanzer, she developed these beautiful letterpress business cards, which double as a tiny notebook, including a personal handwritten message for the receiver and 15 more empty pages for them to use as they wish.

24. Bentply

Letterpress business cards: Bentply

One minute it’s a business card, the next it’s a Gerald Summers armchair. Cool, huh?

What you see here is one of the neat letterpress business cards for furniture shop Bentply in Marylebone, London that can be made into mini bent plywood chairs. The ingenious card design was created by art director, writer, and designer Richard C Evans and produced by Elegante Press in Lithuania. Just follow the instructions and the kiss-cut card can be folded into a miniature replica of the iconic 1934 plywood armchair designed by Gerald Summers.

25. Whitney Shaw

letterpress business cards: Whitney Shaw

We love the colours used on this letterpress business card

The colours really won us over with Whitney Shaw‘s letterpress business card. Incorporating a variety of fonts, as well as a playful illustration, this is a design that would surely be cherished by the receiver. The use of larger ‘W’s’ also allow for Whitney’s name to stick in the mind, while keeping the design aspects to a minimum.

26. Bryon Darby

letterpress business cards: Bryon Darby

The clean-cut, minimal approach works for this letterpress business card

Often, less is more when it comes to design. That’s certainly the case for this letterpress business card for photographer Bryon Darby. With its minimal colour scheme and use of the letterpress to create a series of beautiful patterns, it’s beautifully simple.

27. For Luca

letterpress business cards: For Luca

A lovely letterpress card for a worthy cause

When Luca was three years old he was struck down with Meningococcal Septicaemia, losing both of his legs along with muscle and skin below his hips. When his dad contacted Blush Publishing in North Wales for some business cards to help with Luca’s fundraising campaign they fired up the presses and produced this delightful design. We love the bright blue typography placed on a simple, white backdrop. 

28. Amy Weibel

Letterpress business cards: Amy Weibel

The typography is simple but effective

Amy Weibel is an art director and designer with a passion for food, travel, technology and, of course, design. The typography treatment on each side is simple and effective, while the trim is bold and memorable.

29. Mei Yen Chua

Letterpress business cards: Mei Yen Chua

The card combines slab-serif and serif typefaces

A variety of techniques were used on this business card for Mei Yen Chua. The experimental techniques using overlays of ink works wonders. Each shape also been embossed into the card, combining slab-serif and serif typefaces. This is a confident and eye-catching card.

30. Meg Gleason

Letterpress business cards: Meg Gleason

We love the incorporation of natural images into this card

Moglea is a boutique letterpress stationery design studio created by Meg Gleason. She loves bold pops of colour, hand-lettered typography and intricate floral and geometric patterns. The letterpress studio is within a farmhouse in Western Iowa, and this influences her style, which often involves animals and nature.

31. Ninja star

letterpress business cards: Ninja star

A letterpress business card that will get ‘the point’ across

Now, here’s a letterpress business card that’ll catch a potential client’s eye for all the right reasons. This design will certainly get your ‘point’ across (sorry!) Although it might not be the ideal shape and size to slip into your wallet, the letterpress design and carefully placed typography make it a must in this list.

Next page: More brilliant letterpress business cards

32. LG Whittaker

letterpress business cards: LG Whittaker

These all-black cards are all about the texture

For instrument repair specialist LG Whittaker, Canadian designer Jesse Ladret made these gloriously black business cards. With a layout based on Whittaker’s existing banner but with refreshed typography, these debossed letterpress cards are wonderfully tactile.

33. Nili Studios

letterpress business cards: Nili Studio

Print & Grain triumph again with this letterpress design for Nili Studios

This lovely-looking letterpress business card was designed for creative agency Nili Studios by Print & Grain. The nautical-inspired theme is perfectly executed with the chosen soft blues as well as the waves and anchor logo. The easily readable font is also a brilliant choice.

34. Druckerei Eisenhardt

letterpress business cards: Druckerei Eisenhardt

The bold choice in size, shape and typography make this business card stand out

A printing press that’s been operating for over 42 years, Eisenhardt is a trusted German company offering the best in letterpress design. A family-run business, it works with both modern and traditional techniques in the centre of Frankfurt.

This letterpress business card design immediately caught our eye thanks to its bold choice in size, shape and typography. The orange-on-white colour scheme enables the font to stand out while the understated letterpress gives it the edge it needs.

35. Stu Horvath

letterpress business card

Dolce Press showcase the intensity of one-colour printing

Dolce Press is a boutique print shop and design studio located on the eastern end of Long Island. Specialising in letterpress, the design studio creates one-of-a-kind prints. This letterpress business card was printed on super-thick kraft stock in black ink, showcasing what can be accomplished with one-colour printing. The letterpress cards were finished off with black edge colouring.

36. Dare

Letterpress business cards: Dare

These letterpress-printed cards feature ASCII images of individual employees

We love these innovative designs by creative agency Dare. The company describes itself as ‘a merger of a traditional agency and digital shop’, so it wanted letterpress business cards that also combine old with new. An ASCII image was automatically created using characters from employees’ contact details. The company then chose to letterpress these images onto individual business cards in order to re-emphasise the idea of traditional techniques meeting digital.

37. Pablo Abad

Letterpress business cards: Pablo Abad

Pablo Abad created this sans-serif typeface specifically for this project

This beautiful letterpress business card was created by Madrid-based graphic designer and art director Pablo Abad. In a quest to create a new visual identity, Abad designed a bespoke geometric sans-serif typeface, gara. The clean yet edgy letterpress business card design makes it eye-catching but still easy to understand. Abad’s love of illustration and typography is clear in this very personal project.

38. Shyama Golden

Letterpress business cards: Shyama Golden

Shyama ‘Rhymes with Llama’ – as in Shama-Llama, get it?

It’s always an awkward moment when you can’t pronounce someone’s name or get it wrong. To ensure that never happens again, artist and designer Shyama Golden designed these funky letterpressed business cards with her catchphrase ‘It rhymes with llama’. Printed on Cranes Lettra cotton paper, with 100 per cent hand-drawn type and a hand-drawn llama, these beauties are one-colour letterpress printing at its best.

39. Ovi Prunean

Letterpress business cards: James Prunean

James Prunean lovingly created these awesome business cards for his brother Ovi

As is often the case, simplicity can work wonders. A perfect example of this is these gorgeous letterpressed business cards created by graphic designer James Prunean for his brother, Ovi. Prunean used strong, bold colours that immediately catch your eye and at a first glance look very similar to Pantone colour cards. Printed on 220lb cotton paper, the soft yet strong impression has reportedly helped painter Ovi beat off a lot competition. And we can see why!

40. Jennifer Daniel

Letterpress business cards: Jennifer Daniel

Jennifer Daniel loves unicorns. Can you tell?

These quirky but cool letterpress business cards belong to Bloomberg Businessweek’s graphic director Jennifer Daniel. An internationally recognised illustrator, designer and art director, Daniel is also a lover of unicorns. After having a hard time choosing from her designs, she decided to have three printed, each one as memorable as the next and featuring her RSI-inducing contact email along the bottom. We wonder whether she’s got any unicorn grooming business off the back of them? 

Related articles:

Save up to 40% on Adobe Creative Cloud with this incredible deal

Adobe has opened up its massive Creative Cloud deals to UK and US audiences, meaning that users in these territories can now save between 25% and 40% on its full Creative Suite of apps. The offers, which were previously limited to a select group of countries, see the price of Adobe’s entire collection drop to £30.34/ $39.99/ €36.29 from £49.94/ $52.99/ €60.49.

Creators in the UK join the long list of European and African countries that have already been able to claim the huge 40% saving. Meanwhile, American users can grab 25% off the usual price of a Creative Cloud Individual plan.

Save up to 40% on Adobe Creative Cloud now

The full list of countries that can save now are: US, UK, South Africa, Austria, Belgium, Bulgaria, Switzerland, CIS, Cyprus, Czech Republic, Denmark, Estonia, Spain, Finland, Greece, Hungary, Ireland, Israel, Italy, Lithuania, Luxembourg, Latvia, MENA, Malta, Netherlands, Norway, Poland, Portugal, Romania, Russia, Sweden, Slovenia, Slovakia, Turkey and Ukraine.

These offers are valid in all territories until 1 March. So if you’ve been on the fence about signing up to Creative Cloud, there’s really never been a better time to join.

The biggest Creative Cloud deals right now

What’s included?

Adobe’s Creative Cloud All Apps plan includes:

  • The entire collection of 20+ creative desktop and mobile apps, including Photoshop CC, Illustrator CC, and Adobe XD CC
  • 100GB of cloud storage
  • Adobe Portfolio
  • Adobe Fonts
  • Adobe Spark with premium features 
  • The option of up to 10TB of cloud storage

The programmes are fully integrated, so you can work between them (and different devices) seamlessly – whether you’re out and about or in the studio. Built-in templates help you jump-start your designs, while step-by-step tutorials will help you sharpen your skills and get up to speed quickly.

These deals expire on Friday 1 March 2019.

Related articles:

Including Animation In Your Design System

Including Animation In Your Design System

Including Animation In Your Design System

Val Head

(This article is sponsored by Adobe.) Design systems come in all shapes and sizes, but as Sparkbox’s design system survey noted, not all of them include guidelines for animation. Sure, some teams may have decided that motion wasn’t something their product needed guidance on, but I suspect that in some cases motion was left out because they weren’t sure what to include.

In the past few years, I’ve talked with many teams and designers who admit they think motion is something they should address, but they just aren’t sure how. If you’re in that boat, you’re in luck. This article is all about what to include in a set of motion guidelines for your design system and how to pull it off.

Why Animation?

Animation is an important design tool for both UX and brand messaging. Just like typography and color, the animation you use says something about your product and its personality. So, when it’s not addressed in a design system, that system essentially leaves that area of UI design tooling unaccounted for. Then people following the design system either do whatever they want with animation—which can lead to a strange mish-mash of animation execution across the experience—or, they just don’t use animation at all because they don’t have time to figure out all the details themselves. Neither case is ideal.

Having a clear stance on how animation is used (or not used) in your design system can help ensure your brand is using animation consistently and effectively while also helping your team work faster. Let’s dig in to get started on a set of motion guidelines for your design system.

The Groundwork: Defining What You Need To Cover

First, Talk To People

As Jina Anne says, “Design systems are for people.” I’ve often heard the advice that talking to the people who will be using the design system you’re creating is key to making a design system people will actually use. That holds true for the guidelines you create around animation too. The biggest thing you can gain from this is finding out what they need and what to focus on. This helps you set an appropriate scope for what you need to cover in your guidelines. No one wants to spend hours on extensive guidelines that address more than your team will ever actually need. That wouldn’t be any fun (or use).

Your team may not tell you about their animation pain points unprompted, but that doesn’t mean they don’t have any. Set up some user interviews (the users of your design system) and ask them about where they get stuck with animation. Ask them how/if they use animation, and where animation falls in their design process. Ask them about what they wish they had to help with the pain points they encounter. Most importantly, listen to how they talk about using animation in their work and what goes well or not so well.

While every team is different, the concerns and questions I’ve heard most often when doing this research are things like: “How do I know an animation is good, or fits with our brand?”, “How can I convey the animation details to our engineers effectively?”,or “Our developers always say there’s no time to implement the animations we design.”

You’ve probably guessed where I’m going with this, but all of those concerns are things you can help provide answers to in your motion guidelines. And you can use the questions and pain points that come up most often to guide and focus your motion guideline efforts.

Reference Other Systems

Not every design system has to be public, but it’s great that so many of them are. They make for a helpful resource when planning your design system, and they can be useful research for your design system’s motion guidelines too. (In fact, we’ll be referencing a few them in this very article.)

Using other motion sections as reference for your own design system is very helpful, but I don’t recommend adopting another brand’s motion guidelines wholesale in place of your own. No, not even if it’s Material Design’s motion guidelines.

Material Design’s motion section is Google’s take on motion guidelines. A good one, yes, but its aim is to show you how to animate the Google way. That’s perfect if you’re making something for the Google ecosystem (or intentionally wanting to seem like you are). But it’s not a good fit when that’s not your goal. You wouldn’t use another brand’s colors or typeface on your product, so don’t just follow another brand’s motion guidelines either.

The most effective design systems contain a branded point of view unique to them—things that make their design system more specific to the product they’re for—along with common design best practices. Spend a little time researching and reading through other systems’ motion guidelines, and you start to get a feel for which parts are best practices and which parts are customized to that brand or product’s point of view. Then you can decide which best practices you might also like to include in your guidelines, as well as where to customize the guidelines for your product.

For example, using ease-ins for exits and ease-outs for entrances is a common best practice for UI animation. But the exact ease-in or ease-out curve is usually customized to a brand’s intended message and personality.

To quote Dan Mall:

“This is the kind of thing a design system should have guidelines for: perspective, point of view, extending creative direction to everyone that decides to build something with the design system. That stuff should be baked in.”

I totally agree.

The Two Main Sections Of A Design System’s Motion Guidelines

There’s no specific rule out there stating that you must have these two sections, but I’ve found this breakdown to be an effective way to approach the motion guidelines I’ve worked on. And I’ve also noticed that most design systems out there that address motion have these two categories as well, so it seems to be an approach that works for others too.

The two main sections are: principles and implementation. Principles are typically high-level statements that explain how that brand uses motion. They’re the big picture point of view or design intention behind why the brand uses animation and their perspective on it. The implementation section focuses on how to carry out those principles practically in design and/or code. It serves as the building blocks of animation for the design system, and the amount of detail they cover varies based on brand needs.

Motion Principles

The principles section is where to state your brand values around animation. They’re the high-level principles to measure design decisions against, and a place to state some specific definitions or values around animation. Principles often tend to focus on the “why” of using animation within a particular design system and the UX-driven purpose they serve. In many cases, design systems list these under the heading of Principles in their motion section. However, you can see the concept of principles present in ones that don’t include a specific section for them as well.

Your motion principles can be modeled after existing global design principles that your brand might have, extrapolated from things like voice and tone guidelines, or even be inferred from looking at your product’s existing UI animations in a motion audit.

Let’s look at some examples to get a better idea of how these play out. Microsoft’s Fluent design system lists their motion principles as being physical, functional, continuous, and contextual. They include a short description and illustration of each to explain how it applies to UI animation.


Screenshot of the Fluent’s first motion principle
A segment of Fluent’s motion principles page (Large preview)

Audi doesn’t have a separate principles section, but they start off their animation section with a declaration of why they use animation, which is setting the stage for what sort of motion is to be used in the design system, just like a principle would. They state:

“We stand for dynamic premium mobility. As such, movements in the Audi look have a typically dynamic character.”

While developing the motion section for Spectrum, Adobe’s design system, we opted for a principles section to match the pattern used in other sections of the system. Within Spectrum, animation aims to be purposeful, intuitive, and seamless.

Note: Spectrum does not have a publicly available site at the time of writing.


Spectrum’s motion principles of purposeful, intuitive and seamless
Spectrum’s guiding motion principles for UI animation (Large preview)

No matter how you decide to present them, your design system’s animation principles can be used to both establish the system’s expectation around animation and to evaluate potential future UI animation for the product(s) the design system is applied to. For example, if a designer following the Fluent design system wanted to introduce a large bouncing animation into a component, there could be discussion around whether that meets the motion principles. (Does it fit the principles of functional and continuous?) Then a decision could be made as to whether or not that particular animation warranted breaking from the stated principles, or if the animation should be redesigned to fit the principles.

This helps to keep the design discussions away from the “do you like it?” or personal opinion realm and gives a structure for evaluating animation in a more pragmatic design-oriented way. That’s my favorite advantage of having declared motion principles; they make discussing animation meaningfully so much easier, even for people who don’t have a lot of animation experience.

Quick Tip: For more motion principles references, check out Photon’s motion principles, Material Design motion principles and Carbon’s motion principles. There are also others out there, but these are a good start.

Implementation

Motion principles are great for some high-level guidance, but without some details on exactly how to implement them, you’ll be missing the biggest time-saving benefits of including animation in your design system. The implementation section (though rarely actually titled as such) helps to answer many of the “how” and
“what” questions your team has around animation. The objective is to provide smart defaults for anyone following the design system. That way, instead of spending ages playing around with durations and easing for every animation, they can use the smart defaults you’ve provided in the guidelines and be on their way. It’s a huge timesaver that also makes your UI animation much more consistent across the board.

The implementation guidelines are where a lot of design systems diverge in their approach and coverage. The amount of detail you include and the topics you cover in these guidelines will depend on how big of a role animation plays in your design efforts and what your team needs. For example, Photon’s implementation section includes just one duration and one easing curve, while Material Design’s includes individual sections on duration and easing as well as additional pages full of implementation details.

There’s no perfect length for a motion section; it’s more about covering the details your team needs than hitting a specific number of pages or rules. Some of the animation building blocks to consider including in your motion guidelines are:

The first three in the list are the main ways we customize or style animation. Variations in the properties, durations, and easings used for animation can drastically affect how animations come across. (And the last one is a way of packing up the first three.)

Let’s dig into each in more detail, and for each of these I’ll point out some of the common best practices and where there’s room for your own customized interpretation.

Durations, Ranges, And Rhythm

Duration has to do with how long animations should be, and when we’re talking about UI animation, these values tend to be very short. It’s amazing how much information we can convey in fractions of a second! This is a key aspect of animation, so every design system with motion guidelines covers it, but they do it in a variety of ways.

Some of the best practices around duration that you’ll see addressed in most motion guidelines include:

  • Shorter durations should be used for simpler effects and animationsof relatively small-sized (such as fades or color changes);
  • Longer durations should be used for more complex effects andanimations of larger relative scale (such as page transitions or moving objects on and offscreen);
  • Optimal timing can change based on viewport size.
    While the specifics of each set of guidelines varies — sometimes even greatly — you’ll see these common best practices in almost all of them. Different systems have different definitions of exactly what “short” or “long” durations are, and go into varying amounts of detail on the difference between the two. Also, while it’s more of a design system thing than an animation best practice, providing design tokens for your specified duration values is a useful thing to consider here as well.

Carbon provides a short table of ranges of duration values based on the type of animation in question. While Material Design breaks down recommendations on duration speed in categories based on the complexity of the animation, as well as by the relative area covered by the animation. Pluralsight takes a different approach and provides a set of keywords for different durations paired with cute animals.


An animated illustration and data table for guidance on Carbon’s animation duration
Carbon’s illustration and table sorted by interaction type give guidance on what durations to use for UI animation within the system. (Large preview)

Animals ranging from a snail to a cheetah to represent possible animation durations
Pluarsight’s design system lists durations, animals and design tokens for each of its duration options. (Large preview)

Easing Values

My number one advice for easing guidelines is to create your own customized curves and don’t just use the CSS defaults. This is the most effective way to build some consistent motion association for your brand and as Sarah Drasner puts it: build “motion equity.” You’ll be on solid ground with just three curves: a custom eas-out, ease-in, and ease-in-out. And there’s always the option to add more if needed.

Quick Tip: If you’re totally stumped on where to start on easing curves, check out the Penner Easing equations on easings.net. These are designed to give you some nice looking motion and are grouped in threes for easy use. They’re much more expressive and flexible than the CSS defaults. Using a set of these in your motion guidelines can be a great place to start.


Six sets of easing curves that vary in their range of speed changes for an animation
A few of the Penner Easing Equations illustrated as cubic-bezier curves. (Large preview)
Essential Easing Functions

I recommend defining the three core easing curves because that will cover all your main easing needs for various animations.

  • Ease-in
    This curve is the one that accelerates as it begins any movement which reads well for moving an object out of view.
  • Ease-out
    This curve causes objects to decelerate before stopping which makes for a more natural feeling way to bring objects into view.
  • Ease-in-out
    As the name suggests, this curve combines the features of the first two and is best for moving elements from point to point.

With these three custom curves, you’ll have almost all your animation needs covered.


One curve for accelerating into the action, one for decelerating out of the action, and one for doing both
The three main types of curves most motion guidelines include (Large preview)

For Spectrum, we did exactly that and created three custom easing curves along with recommendations on which kinds of animation to use each for. (We came up with these curves through looking at existing animation and experimenting with some motion studies.)

Carbon and Pluralsight take a similar approach, designating three curves with suggested uses, as well as designating one as the default curve to use when in doubt. In some cases, you might only feel the need to have one custom easing curve (like Photon does) defining one curve for use across all animations.


The ease-out curve for Spectrum
One of Spectrum’s three custom easing curves (Large preview)

Along with the easing curves, it’s helpful to provide some supporting information like associated design tokens, language-specific code (for CSS, JS, iOS and/or Android), or After Effects keyframe velocities depending on which tools your team uses. This adds to the ease of use and helps make following the smart defaults in your motion guidelines the path of least resistance.

A visual illustration of the curve and interactive examples of the curve are also a big plus for quickly demonstrating how the easing curves work and what they look like. Never underestimate the power of showing instead of telling. (Or showing along with telling!)

Easing Hierarchy

Including a hierarchy of easing is one way you can take things a little further than the three core custom curves. This can be especially useful for brands that use motion as a core method of conveying their design message. Just like with type, you may want a way to make certain animation stand out more than others. Animations that stand out more strongly can be used to emphasize a particular point or interaction. In these cases, structuring your easing curves so that you have one that is more dramatic to stand out from the others can be a useful technique.

Off To A Good Start

At this point, armed with principles plus your durations and easing sections, you have a solid set of motion guidelines. That might be all you need for a version one of your motion guidelines, or for a brand that doesn’t rely heavily on motion in its design. If you’re pressed for time, establishing smart defaults for durations and easing will get far enough to see the benefits of establishing motion guidelines and save your team time.

Named Effects

Providing a listing of named effects or a library of animations to use can be a useful thing to have in your motion guidelines. Not all design system’s motion guidelines have these, some opt to bake the animation guidelines into their components instead (or as well), and some just don’t need this level of detail.

One word of caution on these though: more isn’t always better. It might look cool to have a huge library of animations as part of your design system, but the more effects you list, the more time and effort it will take to maintain those effects. To avoid creating a huge time sink for you and your team, I’d suggest making any collection of named effects as small as you possibly can.

There tend to be two approaches to providing a library of effects in motion guidelines. One approach is the way the Lightning design system does it, providing a library of small animation effects (molecules of animation, if you will) that can be used individually or composed together to build up more complex animations.


A listing of small named animations that can be composed into more complex effects
A few of Lightning Design System’s named animation library (Large preview)

The other approach is to provide more comprehensive and purpose-specific effects like Audi does for its show and hide, transform, shift, and superimposing effects and Fluent does for its page transition effects. For either approach, providing the design rationale and specific code implementations for each is useful.

Quick Tip: If you’re looking for additional motion guidelines for research, Adele is a design system collection that lets you filter by topics like motion, and styleguides.io is always a great resource for finding public design systems too.

Other Places Motion Might Come Up In Your Design System

Design systems come in all shapes and sizes. And in many cases these animation guidelines are also baked into the DNA or components of your design systems. Digging into how to do that is beyond the scope of what we’re covering here, but I do want to note that can also be useful to include animation information on component-specific pages instead of in a named effects section. It all depends on what works best for your team and your design system.

Additionally, it might be useful to call out performance and accessibility considerations for animation either in those sections of your design system, in guidelines for components, or in the motion section itself. Performance and accessibility goals affect all aspects of our design work, and animation is no exception there.

Some Parting Thoughts

I hope this article has helped to show that including motion guidelines in your design system can be incredibly useful, and helped to demystify the process of creating one. Addressing animation in your design system can be beneficial to the consistency of your product’s design and doesn’t have to be an overly time-consuming effort.

As you’re working on your motion guidelines, I encourage you to work in stages instead of waiting for your motion guidelines to be perfect. Shipping a version one with the intention of adding to it and updating it is much easier on you, the person or people authoring the guidelines, and can help you make sure you’re creating guidelines that are useful.

As hard as it can be to share something that you know is missing some detail, it can be hugely useful to ship a version one of your motion guidelines then talk to your team again to see how the first version of the guidelines has helped them and which pain points are still a factor. This iterative approach can go far towards making your guidelines cover the most relevant topics, and lets you adapt them to your team’s needs. Both are good for having a system that’s useful and avoiding unnecessary extra effort.

Smashing Editorial(il)

This article is part of the UX design series sponsored by Adobe. Adobe XD is made for a fast and fluid UX design process, as it lets you go from idea to prototype faster. Design, prototype and share — all in one app. You can check out more inspiring projects created with Adobe XD on Behance, and also sign up for the Adobe experience design newsletter to stay updated and informed on the latest trends and insights for UX/UI design.

Use the Pen tool and textures to add depth in Photoshop

Over the following short screen-capture videos, Charlie Davis, a London-based illustrator, covers how to use the Pen tool and brushes to build a peaceful countryside scene. You’ll also learn how to apply masks, and how to use textures from Adobe Stock to add depth and warmth.

Davis took a mental trip to the country to evoke silence and solitude when he was asked to illustrate this scene in Photoshop CC. “This scene is about getting away from the digital noise of modern-day life,” he explains.

Once you’ve mastered the techniques in this Photoshop tutorial, you can apply them to your own artwork. 

01. Begin your composition with the Brush tool

After importing your initial sketch into a new Photoshop CC file, you can begin your composition, using the Brush tool (B) to draw in major elements.

Davis works on a Wacom Cintiq – his graphics tablet of choice – and the majority of his brushes were created by Kyle T Webster. 

02. Add solid shapes using the Pen tool

Now, switch to Photoshop’s Pen tool (P). You need to draw simple, solid shapes to build up the most distant elements of the illustration.

03. Add midground elements

You can now use a combination of freehand drawing and the Pen tool to introduce the midground elements of your illustration.

05. Focus on the foreground

Next, turn your attention to the foreground elements, which you can colour in dark shades to enhance the composition’s sense of depth. To create the leaves of a plant, draw one leaf with the Pen tool and then duplicate it. You can rotate angles and play with size to introduce more natural-looking variations.

06. Add more plants

At this stage, return to the Brush tool (B) to freehand another plant.

07. Add highlights with colour

Draw the general shape of the foreground bird with the Pen tool (P), and make it one solid colour. In this clip, you can see how to add highlights with a lighter colour.

08. Add texture with masks

Add details to break up the flat expanse of snow in the centre of the illustration. Towards the end of this clip, Davis creates a layer named ‘tone ledge’ and walks through a technique you can use again and again.

Mask into a shape, then draw up against the mask to give one side a textured edge. This combination of freehand drawing with the more precise vector shapes and masks is a hallmark of the process.

09. Think about the light source

With all the elements of the illustration now in place, add long shadows that indicate the light direction and time of day. These help enhance the mood of the image.

10. Add definition

Now, return to the background. Use the Brush tool to apply shades to the mountain-sides, giving them definition.

11. Make it more organic with brushwork

To give the appearance of a sun that’s low in the sky, brush highlights onto the edges of the forms in the illustration. An added benefit is that the pixel-based brush roughens the too-perfect vector shapes, making everything feel more organic.

12. Create shadows

Add snow and shadows to a rock.

13. Add dimension

To give the foreground more dimension, you can work in a bright ray of sun hitting the rocks. This not only enhances the drama of the lighting, but it also calls attention to the bird – an important element of the composition.

14. Add warmth with Adobe Stock textures

To enhance the organic feel of the illustration, add textures from Adobe Stock using the Creative Cloud Libraries feature inside Photoshop. This clip is a fascinating look into how small details can elevate an artwork.

15. Refine colour with Adjustment layers

Your finishing touches can include adding more textures and refining colour via Adjustment layers. 

Related articles: