Design deals for the week

Post pobrano z: Design deals for the week

Every week, we’ll give you an overview of the best deals for designers, make sure you don’t miss any by subscribing to our deals feed. You can also follow the recently launched website Type Deals if you are looking for free fonts or font deals.

10 Full Font Families and Bonus Design Extras

Give your voice a new look thanks to this epic typeface deal full of 10 full font families! You’ll get multiple styles, resulting in 18 unique fonts, along with OpenType Features including Stylistic and Contextual Alternates. Not to mention multilingual support, additional glyphs and all sorts of fabulous design extras from Vectors to doodles.

$9 instead of $147 – Get it now!

The Wonderful Graphics Bundle

This amazing bundle includes 40 of the most popular graphic packs from the Design Bundles marketplace, all bundled together in this one-time offer.

$15 instead of $148 – Get it now!

Create Gorgeous Scenes with Floral and Stationery Mockup Sets

Add some real zip to your latest designs by creating some gorgeous and realistic scenes. This Mighty Deal features 200 high-quality items through a pair of Floral and Stationery Mockups. Easy to customize and sort using smart objects and organized layers, you can arrange a variety of flowers, leaves and stems or paper, envelopes and office supplies to build the perfect scene to show off your designs.

$19 instead of $49 – Get it now!

The Amazing Craft Bundle

Including 16 fonts and dingbats, monograms, hundreds of SVG’s and more! It’s a Crafters Dream Bundle!

$24 instead of $285 – Get it now!

Celestial Typeface Offers Antique, Victorian Style

Step back into the early 19th century with the beautiful, hand lettered font, Celestial. A gorgeous mix of modern and classic styles, you can give your latest project a true Victorian tone. Packed with 300+ glyphs, tons of OpenType features, and a trio of bonus items, the past never looked so good.

$9 instead of $18 – Get it now!

120 Stylish and Elegant Flyer Templates

Grab this stylish and clean Print Templates Bundle to showcase your business, products or services. Fully customizable, these hi-res files are ready to print and start sharing with the public. You can use the bundle for several activities: business, corporate, travel, mobile app, photography, menu, real estate, interior design, rent cars, etc.

$19 instead of $350 – Get it now!

Illustrator CC 2018 MasterClass Taught By One of the World’s Top Instructors

Always wanted to figure out how to use Adobe Illustrator? Now’s your chance! With Illustrator CC 2018 MasterClass, you’ll quickly learn everything there is to know about mastering Adobe Illustrator. From designing logos to using various brushes, these online tutorials feature hands-on exercises and quizzes to test your knowledge.

$17 instead of $97 – Get it now!

 

Yose-gi Stool by TAMEN

Post pobrano z: Yose-gi Stool by TAMEN

You may already have seen one of these videos showing how traditional houses are built without the need for nails. If you didn’t, I suggest you take a look at this article on the Interesting Engineering blog. The pieces used to build those houses without nails have their ending looking like puzzle pieces, they are assembled together and hold very good.

For his Yose-gi stool, Brooklyn-based Japanese product designer Yoshiaki Ito found his inspiration in these traditional elements. The founder of TAMEN, his design studio, made stools that can be assembled together in order to save space when the stools are not in use.

Adobe makes its prototyping tool XD CC free to download

Post pobrano z: Adobe makes its prototyping tool XD CC free to download

Dominant in the graphic design industry with tools like Photoshop, Illustrator, or InDesign, Adobe is not as successful with its web designing tools. Apps like Sketch or InVision are very popular among people who design for the web, which is not what Adobe wants. The company decided that its XD CC software wasn’t getting enough attention, so they changed their model to make it more accessible. It’s worth noting that you will still need to pay to get the full experience, as only the starter edition is free.

Adobe XD is a comprehensive solution for going to concept to a working prototype very quickly, the type of tool that all UX/UI designers need to be more productive. With the free version, you even get access to great icon sets you can use in your designs. Once ready, your designs can be previewed with Android or iOS transitions, then easily shared.

Are you a developer? Create plugins for XD. Adobe has even created a $10 million fund to invest in new features proposed by developers. This great announcement and the whole excitement around XD shows that Adobe is looking to make their UX/UI tool one of their flagship product. Scott Belsky, who is no less than the Chief Product Officer & Executive Vice President at Adobe, was quoted saying that XD may even become bigger than Photoshop.

Illegal copycat? / Une copie pareille, ça devrait être illégal

Post pobrano z: Illegal copycat? / Une copie pareille, ça devrait être illégal

THE ORIGINAL?
Chipotle Restaurants – 1990’s
“… when you roll something
this good, it’s illegal”
Agency : Unknown (UK)
LESS ORIGINAL
Tortilla Restaurant – 2014
“Things this well rolled are
usually illegal”
Agency : Unknown (UK)
LESS ORIGINAL
Los Tacos Restaurant – 2018
“Usually, when you roll something
this good, it’s illegal”
Agency : Unknown (Oslo, Norway)

Learning Gutenberg: Modern JavaScript Syntax

Post pobrano z: Learning Gutenberg: Modern JavaScript Syntax

One of the key changes that Gutenberg brings to the WordPress ecosystem is a heavy reliance on JavaScript. Helpfully, the WordPress team have really pushed their JavaScript framework into the present and future by leveraging the modern JavaScript stack, which is commonly referred to as ES6 in the community. It’s how we’ll refer to it as in this series too, to avoid confusion.

Let’s dig into this ES6 world a bit, as it’s ultimately going to help us understand how to structure and build a custom Gutenberg block.

Article Series:

  1. Series Introduction
  2. What is Gutenberg, Anyway?
  3. A Primer with create-guten-block
  4. Modern JavaScript Syntax (This Post)
  5. React 101 (Coming Soon!)
  6. Setting up a Custom webpack (Coming Soon!)
  7. A Custom „Card” Block (Coming Soon!)

What is ES6?

ES6 is short for “EcmaScript 6” which is the 6th edition of EcmaScript. It’s official name is ES2015, which you may have also seen around. EcmaScript has since gone through many iterations, but modern JavaScript is still often referred to as ES6. As you probably guessed, the iterations have continued ES2016, ES2017 and so-on. I actually asked a question on ShopTalk show about what we could name modern JavaScript, which I the conclusion was… ES6.

I’m going to run through some key features of ES6 that are useful in the context of Gutenberg.

Functions

Functions get a heck of an update with ES6. Two changes I want to focus on are Arrow Functions and Class Methods.

Inside a class you don’t actually need to write the word function anymore in ES6. This can be confusing, so check out this example:

class Foo { 
  // This is your 'bar' function
  bar() {
    return 'hello';
  }
}

You’d invoke bar() like this:

const fooInstance = new Foo();
const hi = fooInstance.bar();

This is commonplace in the land of modern JavaScript, so it’s good to clear it up.

Fun fact! ES6 Classes in JavaScript aren’t really “classes” in an object-oriented programming sense—under the hood, it’s the same old prototypical inheritance JavaScript has always had. Prior to ES6, the bar() method would be defined like so: Foo.prototype.bar = function() { ... }. React makes great use of ES6 classes, but it’s worth noting that ES6 classes are essentially syntactic sugar and hotly contested by some. If you’re interested in more details, checkout the MDN docs and this article on 2ality.

Right, let’s move on to arrow functions. 🚀

An arrow function gives us a compact syntax that is often used as a one-liner for expressions. It’s also used to maintain the value of this, as an arrow function won’t rebind this like setInterval or an event handler would usually do.

An example of an arrow function as an expression is as follows:

// Define an array of fruit objects
const fruit = [
  {
    name: 'Apple',
    color: 'red'
  },
  {
    name: 'Banana',
    color: 'yellow'
  },
  {
    name: 'Pear',
    color: 'green'
  }
];

// Select only red fruit from that collection
const redFruit = fruit.filter(fruitItem => fruitItem.color === 'red');

// Output should be something like Object { name: "Apple", color: "red" }
console.log(redFruit[0]);

As you can see above, because there was a single parameter and the function was being used as an expression, we can redact the brackets and parenthesis. This allows us to really compact our code and improve readability.

Let’s take a look at how we can use an arrow function as an event handler in our Foo class from before:

class Foo {
        
  // This is your 'bar' function
  bar() {
    let buttonInstance = document.querySelector('button');
    
    buttonInstance.addEventListener('click', evt => {
      console.log(this);
    });
  }
}

// Run the handler
const fooInstance = new Foo();
fooInstance.bar();

When the button is clicked, the output should be Foo { }, because this is the instance of Foo. If we were to replace that example with the following:

class Foo {
        
  // This is your 'bar' function
  bar() {
    let buttonInstance = document.querySelector('button');
    
    buttonInstance.addEventListener('click', function(evt) {
      console.log(this);
    });
  }
}

// Run the handler
const fooInstance = new Foo();
fooInstance.bar();

When the button is clicked, the output would be <button> because the function has bound this to be the <button> that was clicked.

You can read more about arrow functions with Wes Bos, who wrote an excellent article about them.

const, let, and var

You may have noticed that I’ve been using const and let in the above examples. These are also a part of ES6 and I’ll quickly explain what each one does.

If a value is absolutely constant and won’t change through re-assignment, or be re-declared, use a const. This would commonly be used when importing something or declaring non-changing properties such as a collection of DOM elements.

If you have a variable that you want to only be accessible in the block it was defined in, then use a let. This can be confusing to understand, so check out this little example:

function foo() {
  if (1 < 2) {
    let bar = 'always true';
    
    // Outputs: 'always true'
    console.log(bar);
  }
  
  // Outputs 'ReferenceError: bar is not defined'
  console.log(bar);
}

// Run the function so we can see our logs
foo();

This is a great way to keep control of your variables and make them disposable, in a sense.

Lastly, var is the same old friend we know and love so well. Unfortunately, between const and let, our friend is becoming more and more redundant as time goes on. Using var is totally acceptable though, so don’t be disheartened—you just won’t see it much in the rest of this tutorial!

Destructuring assignment

Destructuring allows you to extract object keys at the point where you assign them to your local variable. So, say you’ve got this object:

const foo = {
  people: [
    {
      name: 'Bar',
      age: 30
    },
    {
      name: 'Baz',
      age: 28
    }
  ],
  anotherKey: 'some stuff',
  heyAFunction() {
    return 'Watermelons are really refreshing in the summer' 
  }
};

Traditionally, you’d extract people with foo.people. With destructuring, you can do this:

let { people } = foo;

That pulls the people array out of the the foo object, so we can dump the foo. prefix and use it as it is: people. It also means that anotherKey and heyAFunction are ignored, because we don’t need them right now. This is great when you’re working with big complex objects where being able to selectively pick stuff out is really useful.

You can also make use of destructuring to break up an object into local variables to increase code readability. Let’s update the above snippet:

let { people } = foo;
let { heyAFunction } = foo;

Now we’ve got those two separate elements from the same object, while still ignoring anotherKey. If you ran console.log(people), it’d show itself an array and if you ran console.log(heyAFunction), you guessed it, it’d show itself as a function.

JSX

Most commonly found in React JS contexts: JSX is an XML-like extension to JavaScript that is designed to be compiled by preprocessors into normal JavaScript code. Essentially, it enables us to write HTML(ish) code within JavaScript, as long as we’re preprocessing it. It’s usually associated with a framework like React JS, but it’s also used for Gutenberg block development.

Let’s kick off with an example:

const hello = <h1 className="heading">Hello, Pal</h1>;

Pretty cool, huh? No templating system or escaping or concatenating required. As long as you return a single element, which can have many children, you’re all good. So let’s show something a touch more complex, with a React render function:

class MyComponent extends React.Component {
  /* Other parts redacted for brevity */
  
  render() {
    return (
      <article>
        <h2 className="heading">{ this.props.heading }</h2>
        <p className="lead">{ this.props.summary }</p>
      </article>
    );
  }
};

You can see above that we can drop expressions in wherever we want. This is also the case with element attributes, so we can have something like this:

<h2 className={ this.props.headingClass }> 
  { this.props.heading }
</h2> 

You might be thinking, “What are these random braces doing?”

The answer is that this is an expression, which you will see a ton of in JSX. Essentially, it’s a little inline execution of JavaScript that behaves very much like a PHP echo does.

You’ll also probably notice that it says className instead of class. Although it looks like HTML/XML, it’s still JavaScript, so reserved words naturally are avoided. Attributes are camel-cased too, so keep and eye out for that. Here’s a useful answer to why it’s like this.

JSX is really powerful as you’ll see while this series progresses. It’s a great tool in our stack and really useful to understand in general.

I like to think of JSX as made up-tag names that are actually just function calls. Pick out any of the made-up tags you see in Gutenberg, let’s use <InspectorControls /> for example, and do a „Find in Folder” for class InspectorControls and you’ll see something structured like Andy’s example here! If you don’t find it, then the JSX must be registered as functional component, and should turn up by searching for function InspectorControls.

Wrapping up

We’ve had a quick run through some of the useful features of ES6. There’s a ton more to learn, but I wanted to focus your attention on the stuff we’ll be using in this tutorial series. I’d strongly recommend your further your learning with Wes Bos’ courses, JavaScript 30 and ES6.io.

Next up, we’re going to build a mini React component!


Article Series:

  1. Series Introduction
  2. What is Gutenberg, Anyway?
  3. A Primer with create-guten-block
  4. Modern JavaScript Syntax (This Post)
  5. React 101 (Coming Soon!)
  6. Setting up a Custom webpack (Coming Soon!)
  7. A Custom „Card” Block (Coming Soon!)

The post Learning Gutenberg: Modern JavaScript Syntax appeared first on CSS-Tricks.

How to Create a Quick Burnt Wood Text Effect in Adobe InDesign

Post pobrano z: How to Create a Quick Burnt Wood Text Effect in Adobe InDesign

Final product image
What You’ll Be Creating

This effect adds rustic charm to any typography, is quick and easy to create, and is a great way of mocking up logos or signage. We’ll use Adobe InDesign’s Effects window to develop depth, highlighting and shadowing.

Have 15 minutes? What are you waiting for!

If you’re on the hunt for more great fonts to use in your text effects, head on over to Envato Elements to browse a huge range of display typefaces.

What You’ll Need to Create Your Text Effect

As well as access to Adobe InDesign, you’ll also need to download the following image and font files:

1. How to Set Up the Wooden Backdrop for Your Effect

Step 1

Open up InDesign and go to File > New > Document. You can set up your page to any size, but here I’ve set it up as Landscape A3. When you’re ready, click Create

Expand the Layers panel (Window > Layers) and double-click on Layer 1 to rename it as Background.

Create three new layers above this, in this order—Smudge, Type, and finally Highlight at the top. 

Then lock all layers except Background.

background layer

Step 2

Working on Background, use the Rectangle Frame Tool (F) to create an image frame across the whole page.

File > Place, navigate to the wood texture image you downloaded earlier, and Open, allowing it to fill the whole frame. 

wood texture

Step 3

Lock the Background layer and unlock the Type layer. 

Expand the Swatches panel (Window > Color > Swatches), and choose New Color Swatch from the panel’s drop-down menu. 

Set the CMYK levels to C=71 M=79 Y=66 K=92, and click Add and then OK

Repeat to create three more CMYK swatches:

  • C=26 M=75 Y=89 K=21
  • C=8 M=46 Y=42 K=1
  • C=43 M=65 Y=48 K=48
swatch options

Step 4

Choose New Gradient Swatch from the Swatches panel’s menu. 

new gradient swatch

Name the swatch Burn Gradient and set the Type to Radial

Click on the left-hand stop on the Gradient Ramp, and choose your new dark swatch, C=71 M=79 Y=66 K=92, for this. 

Set the right-hand stop to your pale swatch, C=8 M=46 Y=42 K=1. Then click on the ramp to add a central, third stop, setting this to C=26 M=75 Y=89 K=21.

new gradient swatch

2. How to Create Your Burn Effect

Step 1

Still working on the Type layer, use the Type Tool (T) to create a text frame centrally on the page. Type in some text and set the Font to Douglas-Calgury Block.

font douglas calgury

Here, I’ve also added text frames above and below this central text frame.

text frames

I also add a framing circle around the typography using the Ellipse Tool (L), and increase the Weight of the circle’s stroke to 23 pt from the Stroke panel (Window > Stroke). 

stroke weight

Step 2

When you’ve finished formatting your typography, Right-Click > Group all of the elements together. 

group elements

Edit > Copy and Edit > Paste the group, moving the copy over onto the pasteboard. 

pasted group

Step 3

To format your effect you may find it easier to Right-Click > Ungroup the original type elements sitting on the page. 

Select each text frame individually and apply the Burn Gradient swatch as the Font Color of each. 

font color burn gradient

Also apply the Burn Gradient to any other elements, like the circle shape here.

burn gradient applied

You can use the Gradient panel (Window > Color > Gradient) to adjust the gradient on each text frame individually. Try shifting the Angle, reversing the gradient or moving the gradient stops on the ramp at the bottom, to create a deep, dark gradient effect on each text frame. 

radial gradient

Step 4

Select all the text frames and shapes and go to Object > Effects > Transparency. Set the Mode to Multiply and bring the Opacity down to 90%. 

multiply mode

Step 5

Click on Inner Shadow in the Effects window’s left-hand menu. 

Click on the colored square next to the Mode menu, and from here change the Effect Color to C=71 M=79 Y=66 K=92, and click OK.

Back in the Inner Shadow menu, set the Distance to 1 mm, Size to 3 mm, Choke to 25%, and Noise to around 15%. 

inner shadow

Step 6

Click on Outer Glow in the Effects window’s menu. Adjust the Mode to Normal and Opacity to about 90%. 

Change the Effect Color to C=26 M=75 Y=89 K=21.

With the Technique set to Softer, increase the Size to 5 mm, Noise to 25%, and Spread to around 45%

outer glow

Step 7

Finally, click on Inner Glow in the left-hand menu. Switch the Mode to Normal, Opacity to about 85%, and switch the Effect Color to C=8 M=46 Y=42 K=1.

Set the Technique to Softer, Source to Edge, Size to 2 mm, and Noise to around 25%. 

inner glow

Then click OK to exit the Effects window.

effects window exit

Step 8

Select the grouped elements which you moved over to the pasteboard earlier. Move this over on top of the elements sitting on the wooden background, placed slightly to the right, as shown below. 

In the Layers panel, expand the Type layer by clicking on the arrow to the left of the Type name. Drag the <group> element down onto the Create New Layer button at the bottom of the panel, to duplicate it.

Then unlock the Smudge layer, and drag one of the two <group> elements down, dropping it onto the Smudge layer. Then you can lock the Type layer.

Working on the <group> now sat on the Smudge layer, apply the Burn Gradient swatch to each element of this copy of the typography. Use the Gradient panel (Window > Color > Gradient), as before, to adjust the angle and position of the gradient on each section of the type. 

gradient swatch

With the <group> selected, go to Object > Effects > Transparency. Set the Mode to Soft Light and click OK.

soft light
effect so far

Step 9

Expand the Smudge layer and drag the <group> element down onto the Create New Layer button, to duplicate the <group>.

copied group

Unlock the top layer, Highlight, and drag one of the <group> elements up onto this layer. 

group in layer

Lock the Smudge layer, working on Highlight.

Select the group of type elements on this page and shift its position slightly to the left. Then go to Object > Effects > Transparency. Set the Mode to Screen and click OK

screen mode

Your Finished Text Effect

Your burnt wood text effect is finished—awesome job!

final wood effect

You can now incorporate your text effect into other InDesign work, or go to File > Export to create a JPG, PNG, or PDF version of your effect. 

A great way to give a twist on a text effect is to use a different typeface style. You can find a huge range of awesome fonts to use in your text effects over on Envato Elements.

Looking for more quick InDesign text effects? Make sure to check these out:

World Cup History Will Be Made with BBC Tapestry

Post pobrano z: World Cup History Will Be Made with BBC Tapestry

The BBC is running “History Will Be made”, a marketing campaign for the 2018 FIFA World Cup to be held in Russia. Every World Cup has a host of iconic moments and everyone has their own individual favourite that immediately takes you back to that time and place. The campaign trailer, “The Tapestry”, takes a journey through World Cup history via the skill of Diego Maradona, the flair of Zinedine Zidane and the emotion of Paul Gascoigne, with a preview of the most exciting talents of this year’s finals including Cristiano Ronaldo, Lionel Messi and Harry Kane. The BBC Tapestry film is only the beginning of a campaign which will continue through to the end of the 2018 FIFA World Cup series in Russia.

BBC Tapestry for FIFA World Cup 2018 - Messi and Ronaldo

Every single frame in the BBC Tapestry film was individually embroidered. More than 227,000 metres of thread were used to create over 600 unique frames of tapestry, that if laid end-to-end would measure over 1,200 metres in length. This visual style will then become the look and feel for the BBC’s coverage, extending into programming graphics, website design, social media, BBC One’s look, and more. The idea will be fully realised in a real 7-metre long tapestry that will be put on public display. Moments from this year’s competition will be added to the tapestry after the tournament’s completion, creating a historical record of the 2018 World Cup.

The launch film’s accompanying music is Ochi Cheryne – a traditional Russian folk song in keeping with the historical theme of the campaign. The song was recorded at Abbey Road Studios, arranged by Alex Baranowski, and features distinguished bass-baritone Sir John Tomlinson alongside a 40-piece orchestra. The lyrics speak of unification and friendship – the ambition of the World Cup itself.

BBC Tapestry World Cup Credits

The BBC World Cup Tapestry campaign was developed at BBC Sport Marketing and BBC Creative by portfolio head of marketing James Parry, marketing manager John Spratt, marketing executive Helen Worsey, campaign planner David Wheadon, media portfolio lead Marc Jones, executive creative directors Aidan McClure and Laurent Simon, creative directors Tim Jones and James Cross, creatives Edward Usher and Xander Hart, producer Liz Dolan, project manager Loretta Ramkissoon, production coordinator Emma Hamilton, head of planning Mike Lean.

Filming was shot by director Nicos Livesey via Blinkink with producer Alex Halley, executive producer Bart Yates, designer Luke Carpenter, and BBC Creative head of design Laurence Honderick.

Sound was designed and mixed by Mark Hills and Anthony Moore at Factory with producer Lucy Spong.

Music, “Ochi Cheryne”, was arranged by composer Alex Baranowski, performed by Sir John Tomlinson and the London Metropolitan Orchestra, recorded at Abbey Road Studios.