Vogel’s What do you bring

Post pobrano z: Vogel’s What do you bring

Goodman Fielder in New Zealand is running “What Do You Bring?”, a new brand platform for the iconic Vogel’s bread, celebrating the uniqueness of Kiwis, and of the bread they love. The idea centres around the true life stories of eight Kiwis that all bring something special to the table. None of them had met and all of them were kept in the dark about the project, not knowing anything about what they were doing and what they were there. Only knowing they were doing a commercial with Vogel’s, and they would tell their individual stories. On July 1, the group was seated at a table together, broke bread and told each other their personal stories. As they did so, the group came together in laughter and respect, connecting with each other in the unique way Kiwis do. It’s a simple but powerful observation, and celebration of the fabric of this modern New Zealand. The campaign includes a three minute launch spot, 60 and second edits, online content at vogels.co.nz/what-do-you-bring, outdoor, POS, social, and digital advertising.

Vogel's What do you bring - faces

In the campaign we meet Heta, a father who raised three girls alone, Jeremy, a streaker who eluded capture, Charlotte, a young woman who taught kids in an Iraqi war-zone, Lidu, a New Zealander of Chinese descent who speaks fluent Te Reo Maori even with English as a second language, Suresh, a pharmacist born in Kenya who has lived in New Zealand for 25 years who can name every All Black since 1987, Mary, the longest serving extra on Shortland St, Kayla, a woman for whom sign language was her first language even though she isn’t deaf, and Susi Newborn, a woman who stood between a harpoon and a whale – and bought, named, and crewed the original Rainbow Warrior.

Behind the Vogel’s What Do You Bring campaign

Says Rachel Ellerm, GM marketing at Goodman Fielder: “Vogel’s has been part of New Zealand for 50 years and over that time our country has changed a lot. But we think there’s one thing that’s always lay at the heart of our success as a nation; diversity and uniqueness. Every Kiwi, no matter who they are brings something special to the table and we want to celebrate that.”

Said Chris Schofield, executive creative director, Shine: “Vogel’s is a truly iconic Kiwi brand. One of those brands you work on and you immediately feel the responsibility of doing work that lives up to its history. It’s been a true collaboration with the team at Goodman Fielder. From the writing of the initial concept to the final edits. We’ve lived in each others’ pockets for months to get this right. We’re stoked to have made a campaign that feels so right for Vogel’s – one that celebrates the uniqueness of the place it has in the hearts of Kiwis everywhere.”

Curious Films director Oliver Green talks about the process of making an ad using real people without making “a done to death ‘real-people’ ad.”

Says Green: “The ad hinges on the folks round the table. So casting was more like researching a novel than making a commercial. We saw hundreds of people and heard some amazing stories to get to our eight breakfast guests. From there it was just about letting the stories unfold without hassling the moments too much. We weren’t just aiming for sound bites. We wanted authentic people’s experiences and a shot at putting some truth in a piece of advertising.”

Vogel's what do you bring site

Vogel’s What Do You Bring Credits

The Vogel’s What Do You Bring campaign was developed at Shine Ltd by executive creative director Chris Schofield, creatives Billy McQueen, Martin Brown, Matt Simpkins​, agency producer Nick Barnes, head of planning Andy McLeish, managing director Simon Curran, account team Olivia Baloghy, Lily-rose Dyer, Tim Ellis, working with Goodman Fielder head of marketing Rachel Ellerm, marketing team Jo Sutherland, Andrew Fenwick, Meghan Blair, Kate Swan.

Filming was shot by director Oliver Green via Curious Film with producer Stu Giles, editors Jonathan Venz and Ben Chesters.

Sound was produced at Liquid Studios.

Music is “Not Given Lightly”, by Chris Knox (Flying Nun and Mushroom Publishing), supervised by Aeroplane Music.

Media was handled by Ikon Communications.

Design deals for the week

Post pobrano z: Design deals for the week
first image of the post

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.

The Summer Time Font Bundle

For those of us in the Northern Hemisphere Summer has arrived. For everybody in the Southern Hemisphere…. Here are some fonts to warm you through the winter months. Packed with 27 Summer Style Fonts from 19 Different Font Families, you can save a HUGE 92% off the RRP.

$19 instead of $226 – Get it now!

Trenda Font Family

Based on the uppercase of the popular typeface Trend, from 2013, Trenda is a geometric sans-serif typeface that sports a wider character set and complete family of uppercase and lowercase letters available in different weights. This versatile and easy-to-use functional font is perfect for both display and text sizes.

$17 instead of $199 – Get it now!

The Splendid Design Bundle

Take a look at the wonderful graphics packs, mock ups, illustrations, textures, fonts and more available below. This bundle is perfect for Designers and Crafters alike with something for everybody included!

$21 instead of $359 – Get it now!

3,000 Artistic Vectors, Watercolors, Flower Decorations & More

This amazing mega-packed Artistic Bundle is overstuffed with more than 3,000 beautiful designer assets. You’ll find loads of hand-drawn vector illustrations, seamless patterns, watercolors, brushes, symbols, layer styles and so much more. Your latest projects won’t know what hit ’em!

$14 instead of $1170 – Get it now!

SOLID GRAY aluminium edition: an incredible backpack made of aluminium composite material

Post pobrano z: SOLID GRAY aluminium edition: an incredible backpack made of aluminium composite material
first image of the post

Solid Gray’s latest bag has a wonderful futuristic look and an innovative design. It was designed to protect your prized possession by using layered aluminium polymer composite material only.

It comes with a prize, but it’s unique and even has a laser engraved serial number to prove it.

Why You Need a Mobile Friendly Website More Than Ever

Post pobrano z: Why You Need a Mobile Friendly Website More Than Ever
first image of the post

Smartphones have revolutionized how we use and understand web design. Websites these days need to be mobile-friendly, or else there’s a risk of losing readers, or customers, or clients – whatever your website is looking to garner. There are even some households that entirely forego the use of laptop or desktop computers, since the start up price of purchasing a mobile phone and the ability to pay it off in increments every month with their cell phone bill, dwarfs in comparison to the price of a laptop or desktop computer.

In fact, the use of mobile devices is so prevalent outside of laptop or desktop computers, that some homes even install a mobile repeater, because that is their only access to the internet. Homes in rural areas especially would use a GSM repeater, as it’s customary in France, etc., as in many areas the mobile phone signal is weak. The main goal of this is to make sure that their access to the internet is never disrupted – and you, too, should make sure your mobile website is always accessible, even to those who can’t access a computer.

Catering to mobile users in your web design is the way of the future. Creating a mobile website that’s user-friendly and completely accessible is almost required now that the internet is at your fingertips. People are using their mobile devices to apply for jobs, order items, browse the internet, read the news – everything that you can do on a browser, people are starting to do on their cell phones. A website that doesn’t have an accessible or user-friendly mobile website will immediately lose followership, by virtue of excluding those people who have only access to the internet happens to be their smartphone, thanks to devices found on online store of cell phone boosters.

Though, not just useful for those who have only access to their smartphones, websites with mobile-friendly interface are perfect for people who are also always traveling, especially for business. Being able to do business on their smartphones and tablets allows people a great ease of access. A mobile-friendly website will ensure that clients, business people, or just anyone who travels and needs quick and easy access to your site will be able to do so. Everyone wins when your website completely translates between desktop and laptop browsers, and mobile devices such as smartphones and tablets.

User-friendly is a must when it comes to translating your website into a mobile website! You don’t want to have your website just become a squished, smaller version of web browser site. Do away with the flashy graphics and rotating pictures. Simple, user-friendly and accessible is the key here! You’ll also want to make sure that all the information that can be found on your desktop site is also available on the mobile version as well.

Smartphones are making everyone’s lives easier, with nearly instant access to all kinds of information and websites. Making sure that your website keeps up with the times is key – and making sure that it doesn’t make someone’s life harder is important, too! Do your best to make sure your mobile website does your web content, business or client justice.

Vintage movie and fashion posters by Raymond Gid

Post pobrano z: Vintage movie and fashion posters by Raymond Gid
first image of the post

Raymond Gid is a French graphic designer who specialized in posters and typography. He started working as early as the 1930s, but his most prominent work was done in the 60s and 70s.

Gid created posters for many famous French movies of his time and could be compared a bit to Saul Bass for the relationship he had with directors. He also designed for more commercial work, like the one he did for fashion companies.

Solar Trees Powering The Park Of South Florida

Post pobrano z: Solar Trees Powering The Park Of South Florida


Joining South Florida’s lush, green canopy of real trees are a new crop of solar trees. These “trees” have blue trunks and bear no fruit, but supply clean energy to whoever needs it.

If you’re at the beach and your phone starts to die, you can charge it right here using Solar Power.

Here’s how the solar trees work: Each solar tree comes with 2 solar powered panels up top. Some of that energy collected is powering the grid of the community, and to a nearby box that send electricity to plugs where phones or compuers can be charged.

Simple Server Side Rendering, Routing, and Page Transitions with Nuxt.js

Post pobrano z: Simple Server Side Rendering, Routing, and Page Transitions with Nuxt.js

A bit of a wordy title, huh? What is server side rendering? What does it have to do with routing and page transitions? What the heck is Nuxt.js? Funnily enough, even though it sounds complex, working with Nuxt.js and exploring the benefits of isn’t too difficult. Let’s get started!

Server side rendering

You might have heard people talking about server side rendering as of late. We looked at one method to do that with React recently. One particularly compelling aspect is the performance benefits. When we render our HTML, CSS, and JavaScript on the server, we often have less JavaScript to parse both initially and on subsequent updates. This article does really well going into more depth on the subject. My favorite takeaway is:

By rendering on the server, you can cache the final shape of your data.

Instead of grabbing JSON or other information from the server, parsing it, then using JavaScript to create layouts of that information, we’re doing a lot of those calculations upfront, and only sending down the actual HTML, CSS, and JavaScript that we need. This can reap a lot of benefits with caching, SEO, and speed up our apps and sites.

What is Nuxt.js?

Server side rendering sounds pretty nice, but you’re probably wondering if it’s difficult to set up. I’ve been using Nuxt.js for my Vue applications lately and found it surprisingly simple to work with. To be clear: you don’t need to use Nuxt.js in particular to do server side rendering. I’m just a fan of this tool for many reasons. I ran some tests last month and found that Nuxt.js had even higher lighthouse scores out of the gate than Vue’s PWA template, which I thought was impressive.

Nuxt.js is a higher-level framework that you can use with a CLI command that you can use to create universal Vue applications. Here are some, not all, of the benefits:

  • Server-Side Rendering
  • Automatic Code Splitting
  • Powerful Routing System
  • Great lighthouse scores out of the gate 🐎
  • Static File Serving
  • ES6/ES7 Transpilation
  • Hot reloading in Development
  • Pre-processors: SASS, LESS, Stylus, etc
  • Write Vue Files to create your pages and layouts!
  • My personal favorite: easily add transitions to your pages

Let’s set up a basic application with some routing to see the benefits for ourselves.

Getting Set up

The first thing we need to do if you haven’t already is download Vue’s CLI. You can do so globally with this command:

npm install -g vue-cli

# ... or ...
 
yarn add global vue-cli

You will only need to do this once, not every time you use it.

Next, we’ll use the CLI to scaffold a new project, but we’ll use Nuxt.js as the template:

vue init nuxt/starter my-project
cd my-project
yarn  # or...  npm install
npm run dev

You’ll see the progress of the app being built and it will give you a dedicated development server to check out: http://127.0.0.1:3000/. This is what you’ll see right away (with a pretty cool little animation):

Screenshot of Nuxt starting screen

Let’s take a look at what’s creating this initial view of our application at this point. We can go to the `pages` directory, and inside see that we have an `index.vue` page. If we open that up, we’ll see all of the markup that it took to create that page. We’ll also see that it’s a `.vue` file, using single file components just like any ordinary `vue` file, with a template tag for the HTML, a script tag for our scripts, where we’re importing a component, and some styles in a style tag. (If you aren’t familiar with these, there’s more info on what those are here.) The coolest part of this whole thing is that this `.vue` file doesn’t require any special setup. It’s placed in the `pages` directory, and Nuxt.js will automatically make this server-side rendered page!

Let’s create a new page and set up some routing between them. In `pages/index.vue`, dump the content that’s already there, and replace it with:

<template>
  <div class="container">
    <h1>Welcome!</h1>
    <p><nuxt-link to="/product">Product page</nuxt-link></p>
  </div>
</template>

<style>
.container {
  font-family: "Quicksand", "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; /* 1 */
  padding: 60px;
}
</style>

Then let’s create another page in the pages directory, we’ll call it `product.vue` and put this content inside of it:

<template>
  <div class="container">
    <h1>This is the product page</h1>
    <p><nuxt-link to="/">Home page</nuxt-link></p>
  </div>
</template>

Right away, you’ll see this:

Ta-da! 🏆
Right away, we have server side rendering, routing between pages (if you check out the URL you can see it’s going between the index page and product page), and we even have a sweet little green loader that zips across the top. We didn’t have to do much at all to get that going.

You might have noticed in here, there’s a special little element: <nuxt-link to="/">. This tag can be used like an a tag, where it wraps around a bit of content, and it will set up an internal routing link between our pages. We’ll use to="/page-title-here" instead of an href.

Now, let’s add some transitions. We’ll do this in a few stages: simple to complex.

Creating Page Transitions

We already have a really cool progress bar that runs across the top of the screen as we’re routing and makes the whole thing feel very zippy. (That’s a technical term). While I like it very much, it won’t really fit the direction we’re headed in, so let’s get rid of it for now.

We’re going to go into our `nuxt.config.js` file and change the lines:

/*
** Customize the progress-bar color
*/
loading: { color: '#3B8070' },

to

loading: false,

You’ll also notice a few other things in this nuxt.config.js file. You’ll see our meta and head tags as well as the content that will be rendered inside of them. That’s because we won’t have a traditional `index.html` file as we do in our normal CLI build, Nuxt.js is going to parse and build our `index.vue` file together with these tags and then render the content for us, on the server. If you need to add CSS files, fonts, or the like, we would use this Nuxt.js config file to do so.

Now that we have all that down, let’s understand what’s available to us to create page transitions. In order to understand what’s happening on the page that we’re plugging into, we need to review how the transition component in Vue works. I’ve written an article all about this here, so if you’d like deeper knowledge on the subject, you can check that out. But what you really need to know is this: under the hood, Nuxt.js will plug into the functionality of Vue’s transition component, and gives us some defaults and hooks to work with:

transition component hooks

You can see here that we have a hook for what we want to happen right before the animation starts enter, during the animation/transition enter-active, and when it finishes. We have these same hooks for when something is leaving, prepended with leave instead. We can make simple transitions that just interpolate between states, or we could plug a full CSS or JavaScript animation into them.

Usually in a Vue application, we would wrap a component or element in <transition> in order to use this slick little functionality, but Nuxt.js will provide this for us at the get-go. Our hook for the page will begin with, thankfully- page. All we have to do to create an animation between pages is add a bit of CSS that plugs into the hooks:

.page-enter-active, .page-leave-active {
  transition: all .25s ease-out;
}
.page-enter, .page-leave-active {
  opacity: 0;
  transform-origin: 50% 50%;
}

I’m also going to add an extra bit of styling here so that you can see the page transitions a little easier:

html, body {
  font-family: "Quicksand", "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; /* 1 */
  background: #222;
  color: white;
  width: 100vw;
  height: 100vh;
}

a, a:visited {
  color: #3edada;
  text-decoration: none;
}

.container {
  padding: 60px;
  width: 100vw;
  height: 100vh;
  background: #444;
}

Right now we’re using a CSS Transition. This only gives us the ability to designate what to do in the middle of two states. We could do something a little more interesting by having an animation adjust in a way that suggests where something is coming from and going to. For that to happen, we could separate out transitions for page-enter and page-leave-active classes, but it’s a little more DRY to use a CSS animation and specify where things are coming from and going to, and plug into each for .page-enter-active, and .page-leave-active:

.page-enter-active {
  animation: acrossIn .45s ease-out both;
} 

.page-leave-active {
  animation: acrossOut .65s ease-in both;
} 

@keyframes acrossIn {
  0% {
    transform: translate3d(-100%, 0, 0);
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes acrossOut {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(100%, 0, 0);
  }
}

Let’s also add a little bit of special styling to the product page so we can see the difference between these two pages:

<style scoped>
  .container {
    background: #222;
  }
</style>

This scoped tag is pretty cool because it will apply the styles for this page/vue file only. If you have heard of CSS Modules, you’ll be familiar with this concept.

We would see this (this page is for demo purposes only, that’s probably too much movement for a typical page transition):

Now, let’s say we have a page with a totally different interaction. For this page, the movement up and down was too much, we just want a simple fade. For this case, we’d need to rename our transition hook to separate it out.

Let’s create another page, we’ll call it the contact page and create it in the pages directory.

<template>
  <div class="container">
    <h1>This is the contact page</h1>
    <p><nuxt-link to="/">Home page</nuxt-link></p>
  </div>
</template>

<script>
export default {
  transition: 'fadeOpacity'
}
</script>

<style>
.fadeOpacity-enter-active, .fadeOpacity-leave-active {
  transition: opacity .35s ease-out;
}

.fadeOpacity-enter, .fadeOpacity-leave-active {
  opacity: 0;
}
</style>

Now we can have two-page transitions:

You can see how we could build on these further and create more and more streamlined CSS animations per page. But from here let’s dive into my favorite, JavaScript animations, and create page transitions with a bit more horsepower.

Javascript Hooks

Vue’s <transition> component offers some hooks to use JavaScript animation in place of CSS as well. They are as follows, and each hook is optional. The :css="false" binding lets Vue know we’re going to use JS for this animation:

<transition 
  @before-enter="beforeEnter"
  @enter="enter"
  @after-enter="afterEnter"
  @enter-cancelled="enterCancelled"

  @before-Leave="beforeLeave"
  @leave="leave"
  @after-leave="afterLeave"
  @leave-cancelled="leaveCancelled"
  :css="false">
 
 </transition>

The other thing we have available to us are transition modes. I’m a big fan of these, as you can state that one animation will wait for the other animation to finish transitioning out before transitioning in. The transition mode we will work with will be called out-in.

We can do something really wild with JavaScript and the transition mode, again, we’re going a little nuts here for the purposes of demo, we would usually do something much more subtle:

In order to do something like this, I’ve run yarn add gsap because I’m using GreenSock for this animation. In my `index.vue` page, I can remove the existing CSS animation and add this into the <script> tags:

import { TweenMax, Back } from 'gsap'

export default {
  transition: {
    mode: 'out-in',
    css: false,
    beforeEnter (el) {
      TweenMax.set(el, {
        transformPerspective: 600,
        perspective: 300,
        transformStyle: 'preserve-3d'
      })
    },
    enter (el, done) {
      TweenMax.to(el, 1, {
        rotationY: 360,
        transformOrigin: '50% 50%',
        ease: Back.easeOut
      })
      done()
    },
    leave (el, done) {
      TweenMax.to(el, 1, {
        rotationY: 0,
        transformOrigin: '50% 50%',
        ease: Back.easeIn
      })
      done()
    }
  }
}

All of the code for these demos exist in my Intro to Vue repo for starter materials if you’re getting ramped up learning Vue.

One thing I want to call out here is that currently there is a bug for transition modes in Nuxt.js. This bug is fixed, but the release hasn’t come out yet. It should be all fixed and up to date in the upcoming 1.0 release, but in the meantime, here is a working simple sample demo, and the issue to track.

With this working code and those JavaScript hooks we can start to get much fancier and create unique effects, with different transitions on every page:

Here’s the site that the demo was deployed to if you’d like to see it live: https://nuxt-type.now.sh/ as well as the repo that houses the code for it: https://github.com/sdras/nuxt-type

Navigation

In that last demo you might have noticed we had a common navigation across all of the pages what we routed. In order to create this, we can go into the `layouts` directory, and we’ll see a file called `default.vue`. This directory will house the base layouts for all of our pages, „default” being the, uhm, default 🙂

Right away you’ll see this:

<template>
  <div>
    <nuxt/>
  </div>
</template>

That special <nuxt/> tag will be where our `.vue` pages files will be inserted, so in order to create a navigation, we could insert a navigation component like this:

<template>
  <div>
    <img class="moon" src="~assets/FullMoon2010.png" />
    <Navigation />
    <nuxt/>
  </div>
</template>

<script>
import Navigation from '~components/Navigation.vue'

export default {
  components: {
    Navigation
  }
}
</script>

I love this because everything is kept nice and organized between our global and local needs.

I then have a component called Navigation in a directory I’ve called `components` (this is pretty standard fare for a Vue app). In this file, you’ll see a bunch of links to the different pages:

<nav>
  <div class="title">
    <nuxt-link to="/rufina">Rufina</nuxt-link>
    <nuxt-link to="/prata">Prata</nuxt-link>
    <nuxt-link exact to="/">Playfair</nuxt-link>
  </div>
</nav>

You’ll notice I’m using that <nuxt-link> tag again even though it’s in another directory, and the routing will still work. But that last page has one extra attribute, the exact attribute: <nuxt-link exact to="/">Playfair</nuxt-link> This is because there are many routes that match just the `/` directory, all of them do, in fact. So if we specify exact, Nuxt will know that we only mean the index page in particular.

Further Resources

If you’d like more information about Nuxt, their documentation is pretty sweet and has a lot of examples to get you going. If you’d like to learn more about Vue, I’ve just made a course on Frontend Masters and all of the materials are open source here, or you can check out our Guide to Vue, or you can go to the docs which are extremely well-written. Happy coding!


Simple Server Side Rendering, Routing, and Page Transitions with Nuxt.js is a post from CSS-Tricks

A Collection of Interesting Facts about CSS Grid Layout

Post pobrano z: A Collection of Interesting Facts about CSS Grid Layout

A few weeks ago I held a CSS Grid Layout workshop. Since I’m, like most of us, also pretty new to the topic, I learned a lot while preparing the slides and demos.
I decided to share some of the stuff that was particularly interesting to me, with you.

Have fun!

Negative values lower than -1 may be used for grid-row-end and grid-column-end

In a lot of code examples and tutorials you will see that you can use grid-column-start: 1 and grid-column-end: -1 (or the shorthand grid-column: 1 / -1) to span an element from the first line to the last. My friend Max made me aware that it’s possible to use lower values than -1 as well.

.grid-item {
  grid-column: 1 / -2;
}

For example, you can set grid-column: 1 / -2 to span the cells between the first and the second to last line.

See the Pen Grid item from first to second to last by Manuel Matuzovic (@matuzo) on CodePen.

It’s possible to use negative values in grid-column/row-start

Another interesting thing about negative values is that you can use them on grid-column/row-start as well. The difference between positive and negative values is that with negative values the placement will come from the opposite side. If you set grid-column-start: -2 the item will be placed on the second to last line.

.item {
  grid-column-start: -3;
  grid-row: -2;
}

See the Pen Negative values in grid-column/row-start by Manuel Matuzovic (@matuzo) on CodePen.

Generated content pseudo-elements (::before and ::after) are treated as grid items

It may seem obvious that pseudo-elements generated with CSS become grid items if they’re within a grid container, but I wasn’t sure about that. So I created a quick demo to verify it. In the following Pen you can see that generated elements become grid- and flex-items if they are within a corresponding container.

See the Pen Experiment: Pseudo elements as grid items by Manuel Matuzovic (@matuzo) on CodePen.

Animating CSS Grid Layout properties

According to the CSS Grid Layout Module Level 1 specification there are 5 animatable grid properties:

  • grid-gap, grid-row-gap, grid-column-gap
  • grid-template-columns, grid-template-rows

Currently only the animation of grid-gap, grid-row-gap, grid-column-gap is implemented and only in Firefox and Firefox Mobile. I wrote a post about animating CSS Grid Layout properties, where you’ll find some more details and a demo.

The value of grid-column/row-end can be lower than the start value

In level 4 of the CSS Grid Garden game I learned that the value of grid-column-end or grid-row-end may be lower than the respective start equivalent.

.item:first-child {
  grid-column-end: 2;
  grid-column-start: 4;
}

The item in the above code will start on the 4th line and end on the 2nd, or in other words, start on the 2nd line and end on the 4th.

See the Pen Lower grid-column-end value than grid-column-start by Manuel Matuzovic (@matuzo) on CodePen.

Using the `span` keyword on grid-column/row-start and grid-column/row-end

A grid item by default spans a single cell. If you want to change that, the span keyword can be quite convenient. For example setting grid-column-start: 1 and grid-column-end: span 2 will make the grid item span two cells, from the first to the third line.

You can also use the span keyword with grid-column-start. If you set grid-column-end: -1 and grid-column-start: span 2 the grid-item will be placed at the last line and span 2 cells, from the last to third to last line.

See the Pen CSS Grid Layout: span keyword by Manuel Matuzovic (@matuzo) on CodePen.

grid-template-areas and implicit named lines

If you create template areas in a grid, you automatically get four implicit named lines, two naming the row-start and row-end and two for the column-start and column-end. By adding the -start or -end suffix to the name of the area, they’re applicable like any other named line.

.grid {
  display: grid;
  grid-template-columns: 1fr 200px 200px;
  grid-template-areas: 
    "header header header"
    "articles ads posts"
}

.footer {
  grid-column-start: ads-start;
  grid-column-end: posts-end;
}

See an example for implicit named lines in this Pen.

Grid is available in the insider version of Microsoft Edge

Support for CSS Grid Layout is pretty great since all major browsers, except IE and Edge, support it. For a lot of projects you can start using CSS Grid Layouts today. Support for Microsoft Edge will probably come pretty soon, because it’s already available in the insider version of Microsoft Edge.

This browser support data is from Caniuse, which has more detail. A number indicates that browser supports the feature at that version and up.

Desktop

Chrome Opera Firefox IE Edge Safari
57 44 52 11* 16 10.1

Mobile / Tablet

iOS Safari Opera Mobile Opera Mini Android Android Chrome Android Firefox
10.3 No No 56 59 54

If you want to learn more about Grids check out The Complete Guide to Grid, Getting Started with CSS Grid, Grid By Example and my Collection of Grid demos on CodePen.


A Collection of Interesting Facts about CSS Grid Layout is a post from CSS-Tricks