Wednesday, February 13, 2019

​​Avoiding those dang cannot read property of undefined errors

​​​​Uncaught TypeError: Cannot read property 'foo' of undefined.​ The dreaded error we all hit at some point in JavaScript development. Could be an empty state from an API that returns differently than you expected. Could be something else. We don’t know because the error itself is so general and broad.

​​I recently had an issue where certain environment variables weren't being pulled in for one reason or another, causing all sorts of funkiness with that error staring me in the face. Whatever the cause, it can be a disastrous error if it’s left unaccounted for, so how can we prevent it in the first place?

​​Let’s figure it out.

​​Utility library

​​If you are already using a utility library in your project, there is a good chance that it includes a function for preventing this error. _.get​ in lodash​ (docs) or R.path in Ramda​ (docs) allow accessing the object safely.
​​
​​If you are already using a utility library, this is likely the simplest solution. If you are not using a utility library, read on!

​​

Short-circuiting with &&

​​​​One interesting fact about logical operators in JavaScript is that they don't always return a boolean. According to the spec, "the value produced by a &&​ or ||​ operator is not necessarily of type Boolean. The value produced will always be the value of one of the two operand expressions.”
​​
​​​​In the case of the &&​ operator, the first expression will be used if it a "falsy" value. Otherwise, the second expression will be used. This means that the expression 0 && 1​ will be evaluated as 0​ (a falsy value), and the expression 2 && 3​ will be evaluated as 3​. If multiple &&​ expressions are chained together, they will evaluate to either the first falsy value or the last value. For example, 1 && 2 && 3 && null && 4​ will evaluate to null​, and 1 && 2 && 3​ will evaluate to 3​.

​​​​How is this useful for safely accessing nested object properties? Logical operators in JavaScript will "short-circuit." In this case of &&​, this means that the expression will cease moving forward after it reaches its first falsy value.

​​​​

​​const foo = false && destroyAllHumans();
​​console.log(foo); // false, and humanity is safe

​​In this example, destroyAllHumans is never called because the &&​ operand stopped all evaluation after false​.

​​This can be used to safely access nested properties.

​​

​​const meals = {
​​  breakfast: null, // I skipped the most important meal of the day! :(
​​  lunch: {
​​    protein: 'Chicken',
​​    greens: 'Spinach',
​​  },
​​  dinner: {
​​    protein: 'Soy',
​​    greens: 'Kale',
​​  },
​​};
​​
​​const breakfastProtein = meals.breakfast && meals.breakfast.protein; // null
​​const lunchProtein = meals.lunch && meals.lunch.protein; // 'Chicken'

​​Aside from its simplicity, one of the main advantages of this approach is its brevity when dealing with small chains. However, when accessing deeper objects, this can be quite verbose.

​​

const favorites = {
​​  video: {
​​    movies: ['Casablanca', 'Citizen Kane', 'Gone With The Wind'],
​​    shows: ['The Simpsons', 'Arrested Development'],
​​    vlogs: null,
​​  },
​​  audio: {
​​    podcasts: ['Shop Talk Show', 'CodePen Radio'],
​​    audiobooks: null,
​​  },
​​  reading: null, // Just kidding -- I love to read
​​};
​​
​​const favoriteMovie = favorites.video && favorites.video.movies && favorites.video.movies[0];
​​// Casablanca
​​const favoriteVlog = favorites.video && favorites.video.vlogs && favorites.video.vlogs[0];
​​// null

​​The more deeply nested an object is, the more unwieldy it gets.

​​
​​

The “Maybe Monad”

​​Oliver Steele came up with this method and goes through it in much more detail in his blog post, "Monads on the Cheap I: The Maybe Monad." I will attempt to give a brief explanation here.

​​

const favoriteBook = ((favorites.reading||{}).books||[])[0]; // undefined
​​const favoriteAudiobook = ((favorites.audio||{}).audiobooks||[])[0]; // undefined
​​const favoritePodcast = ((favorites.audio||{}).podcasts||[])[0]; // 'Shop Talk Show'

​​Similar to the short-circuit example above, this method works by checking if a value is falsy. If it is, it will attempt to access the next property on an empty object. In the example above, favorites.reading​ is null​, so the books​ property is being accessed from an empty object. This will result in an undefined​, so the 0​ will likewise be accessed from an empty array.

​​The advantage of this method over the &&​ method is that it avoids repetition of property names. On deeper objects, this can be quite a significant advantage. The primary disadvantage would be readability — it is not a common pattern, and may take a reader a moment to parse out how it is working.​

​​

​​try/catch

​​​​try...catch​ statements in JavaScript allow another method for safely accessing properties.

​​

try {
​​  console.log(favorites.reading.magazines[0]);
​​} catch (error) {
​​  console.log("No magazines have been favorited.");
​​}

​​Unfortunately, in JavaScript, try...catch​ statements are not expressions. They do not evaluate to a value as they do in some languages. This prevents a concise try​ statement as a way of setting a variable.

​​One option is to use a let​ variable that is defined in the block above the try...catch​.

​​

let favoriteMagazine;
​​try { 
​​  favoriteMagazine = favorites.reading.magazines[0]; 
​​} catch (error) { 
​​  favoriteMagazine = null; /* any default can be used */
​​};

​​Although it’s verbose, this works for setting a single variable (that is, if the mutable variable doesn't scare you off). However, issues can arise if they’re done in bulk.

​​

let favoriteMagazine, favoriteMovie, favoriteShow;
​​try {
​​  favoriteMovie = favorites.video.movies[0];
​​  favoriteShow = favorites.video.shows[0];
​​  favoriteMagazine = favorites.reading.magazines[0];
​​} catch (error) {
​​  favoriteMagazine = null;
​​  favoriteMovie = null;
​​  favoriteShow = null;
​​};
​​
​​console.log(favoriteMovie); // null
​​console.log(favoriteShow); // null
​​console.log(favoriteMagazine); // null

​​If any of the attempts to access the property fails, this will cause all of them to fall back into their defaults.

​​An alternative is to wrap the try...catch​ in a reusable utility function.

​​

const tryFn = (fn, fallback = null) => {
​​  try {
​​    return fn();
​​  } catch (error) {
​​    return fallback;
​​  }
​​} 
​​
​​const favoriteBook = tryFn(() => favorites.reading.book[0]); // null
​​const favoriteMovie = tryFn(() => favorites.video.movies[0]); // "Casablanca"

​​By wrapping the access to the object in a function, you can delay the "unsafe" code and pass it into a try...catch​.

​​A major advantage of this method is how natural it is to access the property. As long as properties are wrapped in a function, they are safely accessed. A default value can also be specified in the case of a non-existent path.

​​Merge with a default object

​​
By merging an object with a similarly shaped object of "defaults," we can ensure that the path that we are trying to access is safe.
​​
​​

const defaults = {
​​  position: "static",
​​  background: "transparent",
​​  border: "none",
​​};
​​
​​const settings = {
​​  border: "1px solid blue",
​​};
​​
​​const merged = { ...defaults, ...settings };
​​
​​console.log(merged); 
​​/*
​​  {
​​    position: "static",
​​    background: "transparent",
​​    border: "1px solid blue"
​​  }
​​*/

​​
​​Careful, though, because the entire nested object can be overwritten rather than a single property.
​​
​​

const defaults = {
​​  font: {
​​    family: "Helvetica",
​​    size: "12px",
​​    style: "normal",
​​  },        
​​  color: "black",
​​};
​​
​​const settings = {
​​  font: {
​​    size: "16px",
​​  }
​​};
​​
​​const merged = { 
​​  ...defaults, 
​​  ...settings,
​​};
​​
​​console.log(merged.font.size); // "16px"
​​console.log(merged.font.style); // undefined

​​Oh no! To fix this, we'll need to similarly copy each of the nested objects.

​​

const merged = { 
​​  ...defaults, 
​​  ...settings,
​​  font: {
​​    ...defaults.font,
​​    ...settings.font,
​​  },
​​};
​​
​​console.log(merged.font.size); // "16px"
​​console.log(merged.font.style); // "normal"

​​Much better!

​​This pattern is common with plugins or components that accept a large settings object with included defaults.

​​A bonus about this approach is that, by writing a default object, we’re including documentation on how an object should look. Unfortunately, depending on the size and shape of the data, the "merging" can be littered with copying each nested object.

​​​

The future: optional chaining

​​There is currently a TC39 proposal for a feature called "optional chaining." This new operator would look like this:

​​console.log(favorites?.video?.shows[0]); // 'The Simpsons'
​​console.log(favorites?.audio?.audiobooks[0]); // undefined

​​The ?.​ operator works by short-circuiting: if the left-hand side of the ?.​ operator evaluates to null​ or undefined​, the entire expression will evaluate to undefined​ and the right-hand side will remain unevaluated.

​​To have a custom default, we can use the ||​ operator in the case of an undefined.

​​

console.log(favorites?.audio?.audiobooks[0] || "The Hobbit");

​​

Which method should you use?

​​The answer, as you might have guessed, is that age-old answer… "it depends." If the optional chaining operator has been added to the language and has the necessary browser support, it is likely the best option. If you are not from the future, however, there are more considerations to take into account. Are you using a utility library? How deeply nested is your object? Do you need to specify defaults? Different cases may warrant a different approach.

The post ​​Avoiding those dang cannot read property of undefined errors appeared first on CSS-Tricks.

from CSS-Tricks https://css-tricks.com/%e2%80%8b%e2%80%8bavoiding-those-dang-cannot-read-property-of-undefined-errors/

​​Avoiding those dang cannot read property of undefined errors Find more on: Instant Web Site Tools



source https://www.instant-web-site-tools.com/2019/02/13/%e2%80%8b%e2%80%8bavoiding-those-dang-cannot-read-property-of-undefined-errors/

OctaneRender: A beginner’s guide

The 20 best Drupal themes

The best online art classes in 2019

Tuesday, February 12, 2019

How Technology Affects Mother Nature

The planet is going through so many difficulties right now because of human abuse and misuse of resources. The continuously increasing human population is likewise putting too much strain on the planet and the rapid advancements in technology do not help either. While many of us feel relieved that manual labor is no longer a must in most of the things we do since almost everything is automated now, we fail to realize its negative effects to Mother Nature.

As our digital footprint increases, so does our carbon footprint. We burn fuel in running our tech devices and equipment and the more gadgets we use, the more fuel we likewise burn. It does not help that we are now heavily addicted to social media, online games, online streaming, etc. that we can’t just slow down with our tech use. We become increasingly reliant on these contrivances not only for work or study but to keep us entertained 24/7. More often than not we get stressed at technical difficulties we face like hardware failure or data loss and would not hesitate to spend hundreds to thousands of dollars on services like https://www.harddrivefailurerecovery.net/how-flat-rate-data-recovery-pricing-works/ and https://www.harddrivefailurerecovery.net/do-your-data-recovery-for-mac-a-nice-tool/ rather than worry about the hazards these new technologies pose to human life.

Watching your favourite show or listening to your playlist has never been easier.

A virtually endless supply of film, music and TV can be streamed and downloaded almost instantly.

But at what cost to the environment?

Vast amounts of energy are needed to keep data flowing on the internet and demand will only increase as our reliance on digital services grows.

Some of that energy is generated from clean energy sources, but much of it comes from burning carbon-based fossil fuels, which scientists believe is a contributing factor to rising global temperatures.

The latest report by climate scientists demonstrates the scale of the dangers faced from carbon emissions.

(Via: https://www.bbc.com/news/technology-45798523)

Most technologies burn fossil fuel for energy and they contribute to global warming and the increasing threats of global warming. This is the major issue these days as the world becomes addicted to all sorts of gadgets in our day-to-day. Even the mere act of charging your numerous devices daily contributes to the rise of the world’s carbon footprint and no need to look far just to see its extent because in your homes alone you can see the number of devices that need charging daily.

One of our favorite hobbies these days is online streaming as Internet advancements enable most homes to have a readily available WiFi connection. Keeping the WiFi all day long also eats up energy. Our new habits should warn us of these dangers and burden that Mother Nature has to endure moving forward.

What do you do when you love a blockchain project and also want to preserve the environment? This question has crossed the minds of many crypto enthusiasts who are also aware of the increasing global warming effect brought about by increased carbon emissions from power generating plants (coal and diesel plants). More so, when you consider that Bitcoin mining activities have on many occasions been highlighted as a contributor of Carbon Dioxide in the atmosphere due to the amount of electrical energy used to mine BTC.

The more you mine BTC, the more power is generated from the plant. This means more coal used and more carbon emissions. In a sense, Bitcoin has become a scapegoat for energy analysts and naysayers of blockchain technology. However, we had explored a few days ago how some of these studies and reports are one sided.

(Via: https://ethereumworldnews.com/how-the-xrp-tree-project-is-reducing-the-environmental-impact-of-ripple-technology/)

By now, we don’t really think highly of cryptocurrency in general because we are aware of how these miners proliferate malware and other online viruses and scams in order to steal computing power from ordinary computer users. Aside from that, the endless cryptocurrency mining likewise contributes to increasing carbon footprint. However, not everyone in this industry has no care for the environment. The XRP Community supports a tree project that aims to reduce carbon footprint. By now, they have planted over a thousand trees that help counter the effects of their cryptocurrency mining. These people are conscientious enough and not just simply abuse the resources but also give back to nature for the benefit of future generations.

How Technology Affects Mother Nature was initially published on http://www.harddrivefailurerecovery.net/

from Hard Drive Recovery Associates - Feed
at https://www.harddrivefailurerecovery.net/how-technology-affects-mother-nature/

How Technology Affects Mother Nature Find more on: Instant Web Site Tools



source https://www.instant-web-site-tools.com/2019/02/13/how-technology-affects-mother-nature/

A Site for Front-End Development Conferences (Built with 11ty on Netlify)

Quick! What’s the Difference Between Flexbox and Grid?

A Funny Thing Happened on the Way to the JavaScript

How to model concept art in Cinema 4D

How to Increase Mobile Engagement with Simpler Contact Forms

Contact forms are a necessity for websites. Without them, your clients would be relegated to handling website- or business-related matters over the phone or email. Worse, they’d have absolutely no context for the call or message, which would increase the amount of time they’d have to spend responding to it.

Contact forms, instead, gather essential details from visitors so that your clients can go into each conversation better prepared.

Of course, mobile contact forms are tricky. With less screen space to work with, how do you design a form that captures all the details your clients require? The fact of the matter is, you might not be able to. Instead, you’ll have to look at ways to do more with less.

Even if all a form does is collect a name, email, and phone number for someone interested in learning more about a service, the digital collection of that data ensures your clients won’t lose track of leads or capture details incorrectly when writing them by hand. And when forms collect more than that (say, details about an issue they’re experiencing with the website or product), your clients can better prepare themselves for a possibly stressful encounter.

But there’s a delicate balance you must strike when designing forms for mobile users. If you want them to engage with the forms so you can keep your clients from missing out on leads as well as sales, you have to keep a number of things in mind.

Columns

Plain and simple: there’s no excuse for using more than one column on a mobile contact form. Leadformly has a beautiful example of a mobile contact form that keeps everything in a vertical line.

The same principle applies to the fields themselves. If you’re thinking about breaking up the “Name” field into “First Name” and “Last Name”, don’t do it. It’s hard enough inputting information into a mobile contact form. Instead, only place one field per horizontal line and always merge fields that belong together.

Fields

When creating a contact form for your clients’ website, ask yourself: Is each of these fields necessary?

Take, for instance, the Shopify mobile contact form:

Although the store address field is optional, it’s a good choice in this context since this is a support contact form. If someone’s asking for support, then they’re a Shopify customer with a corresponding store address to share.

The “Subject” field, on the other hand, seems like a waste. This form is coming from the help desk. The designer could easily program submissions from this form to include a descriptive subject line so the support representative knows what he or she is about to read.

When too many unnecessary or optional fields are shown, a few things can happen:

  1. Visitors will be frustrated with the extra time spent reading each label, deciding whether or not it’s necessary, and then tabbing over to the next one.
  2. Visitors will give up before they ever get started because the length of the form alone is daunting.
  3. Visitors will be confused by some of the fields, wondering what they’re for and trying to figure out the answer to them.

All in all, a poor selection of form fields can lead to a negative user experience. But only your client and the end user will know which of these fields is absolutely necessary, so make sure you engage with them so you can create the optimal mobile form experience.

Pages

In cases when you have a lengthy contact form you want to put on mobile, you have to think of ways to keep it from appearing overwhelmingly long.

One way to do this is by creating a multi-page form. While you can do this for mobile contact forms that are legitimately lengthy, this is something anyone could use really. Here’s an example from Typeform:

With a handy progress bar at the bottom of the form, users have a clear picture of how much more is left to fill out.

I’d also argue that this is a more engaging mobile contact form experience than a static form stuck to the page.

If you’re not too keen on creating multi-page forms, that’s fine too. There are other things you can do to shorten the space without compromising how many fields are shown. For instance, you can use collapsible menus to only display certain parts of the form at any given time. You can also turn checkbox or radio dial lists into hidden dropdowns.

Labels

In your attempts to conserve space in mobile contact forms, you have to be careful with labels, hints, and error messages that appear within them. Just because you make a form faster to get through space-wise doesn’t mean the instructive text won’t cause friction.

Here’s a good example from MailChimp you can use:

Within this form:

  • Each field is succinctly and clearly labeled outside of the field.
  • Any hint text (i.e. instructions on what to do with the field) appears inside the field in a lighter color.
  • Error messages immediately appear once a user has failed to properly fill in a field.

Also, take notice of the fact that MailChimp does not use asterisks to indicate required fields. This keeps labels clear of unnecessary debris and easy to focus on. If the majority or all of your fields are required, it’s not necessary to mark them as such.

Keyboards

Want to decrease the time it takes users to fill out your mobile contact form? Program it to display the correct keyboard per field. Here is how WPForms does this:

Basic text fields show a standard alpha keyboard:

Email fields show a lowercase alpha keyboard along with punctuation commonly used in email addresses:

Website fields provide options for “/” as well as “.com”:

Saving users time hunting down punctuation and numbers, or typing out expected responses or snippets, will encourage more of them to complete your form.

Wrap-Up

Let’s be honest: for most businesses, the chances of someone converting from a mobile website are quite low — at least lower than they are on desktop. Until consumers become more confident in converting from a smartphone, we have to find other ways to capture their information so we can stay in touch.

That said, just because mobile visitors are unwilling to convert doesn’t mean they’ll be unwilling to fill out a mobile contact form. It’s a low-risk alternative to entering their sensitive data into a mobile website and device, and puts the onus on the company to take the next step. Of course they’re going to prefer this option, so make sure it’s a worthwhile one to take.

 

Featured image via Unsplash.

Add Realistic Chalk and Sketch Lettering Effects with Sketch’it – only $5!

Source

from Webdesigner Depot https://www.webdesignerdepot.com/2019/02/how-to-increase-mobile-engagement-with-simpler-contact-forms/

The following post How to Increase Mobile Engagement with Simpler Contact Forms was originally published to Instant Web Site Tools



source https://www.instant-web-site-tools.com/2019/02/12/how-to-increase-mobile-engagement-with-simpler-contact-forms-2/

35 incredible dataviz tools

How to Increase Mobile Engagement with Simpler Contact Forms

Contact forms are a necessity for websites. Without them, your clients would be relegated to handling website- or business-related matters over the phone or email. Worse, they’d have absolutely no context for the call or message, which would increase the amount of time they’d have to spend responding to it.

Contact forms, instead, gather essential details from visitors so that your clients can go into each conversation better prepared.

Of course, mobile contact forms are tricky. With less screen space to work with, how do you design a form that captures all the details your clients require? The fact of the matter is, you might not be able to. Instead, you’ll have to look at ways to do more with less.

Even if all a form does is collect a name, email, and phone number for someone interested in learning more about a service, the digital collection of that data ensures your clients won’t lose track of leads or capture details incorrectly when writing them by hand. And when forms collect more than that (say, details about an issue they’re experiencing with the website or product), your clients can better prepare themselves for a possibly stressful encounter.

But there’s a delicate balance you must strike when designing forms for mobile users. If you want them to engage with the forms so you can keep your clients from missing out on leads as well as sales, you have to keep a number of things in mind.

Columns

Plain and simple: there’s no excuse for using more than one column on a mobile contact form. Leadformly has a beautiful example of a mobile contact form that keeps everything in a vertical line.

The same principle applies to the fields themselves. If you’re thinking about breaking up the “Name” field into “First Name” and “Last Name”, don’t do it. It’s hard enough inputting information into a mobile contact form. Instead, only place one field per horizontal line and always merge fields that belong together.

Fields

When creating a contact form for your clients’ website, ask yourself: Is each of these fields necessary?

Take, for instance, the Shopify mobile contact form:

Although the store address field is optional, it’s a good choice in this context since this is a support contact form. If someone’s asking for support, then they’re a Shopify customer with a corresponding store address to share.

The “Subject” field, on the other hand, seems like a waste. This form is coming from the help desk. The designer could easily program submissions from this form to include a descriptive subject line so the support representative knows what he or she is about to read.

When too many unnecessary or optional fields are shown, a few things can happen:

  1. Visitors will be frustrated with the extra time spent reading each label, deciding whether or not it’s necessary, and then tabbing over to the next one.
  2. Visitors will give up before they ever get started because the length of the form alone is daunting.
  3. Visitors will be confused by some of the fields, wondering what they’re for and trying to figure out the answer to them.

All in all, a poor selection of form fields can lead to a negative user experience. But only your client and the end user will know which of these fields is absolutely necessary, so make sure you engage with them so you can create the optimal mobile form experience.

Pages

In cases when you have a lengthy contact form you want to put on mobile, you have to think of ways to keep it from appearing overwhelmingly long.

One way to do this is by creating a multi-page form. While you can do this for mobile contact forms that are legitimately lengthy, this is something anyone could use really. Here’s an example from Typeform:

With a handy progress bar at the bottom of the form, users have a clear picture of how much more is left to fill out.

I’d also argue that this is a more engaging mobile contact form experience than a static form stuck to the page.

If you’re not too keen on creating multi-page forms, that’s fine too. There are other things you can do to shorten the space without compromising how many fields are shown. For instance, you can use collapsible menus to only display certain parts of the form at any given time. You can also turn checkbox or radio dial lists into hidden dropdowns.

Labels

In your attempts to conserve space in mobile contact forms, you have to be careful with labels, hints, and error messages that appear within them. Just because you make a form faster to get through space-wise doesn’t mean the instructive text won’t cause friction.

Here’s a good example from MailChimp you can use:

Within this form:

  • Each field is succinctly and clearly labeled outside of the field.
  • Any hint text (i.e. instructions on what to do with the field) appears inside the field in a lighter color.
  • Error messages immediately appear once a user has failed to properly fill in a field.

Also, take notice of the fact that MailChimp does not use asterisks to indicate required fields. This keeps labels clear of unnecessary debris and easy to focus on. If the majority or all of your fields are required, it’s not necessary to mark them as such.

Keyboards

Want to decrease the time it takes users to fill out your mobile contact form? Program it to display the correct keyboard per field. Here is how WPForms does this:

Basic text fields show a standard alpha keyboard:

Email fields show a lowercase alpha keyboard along with punctuation commonly used in email addresses:

Website fields provide options for “/” as well as “.com”:

Saving users time hunting down punctuation and numbers, or typing out expected responses or snippets, will encourage more of them to complete your form.

Wrap-Up

Let’s be honest: for most businesses, the chances of someone converting from a mobile website are quite low — at least lower than they are on desktop. Until consumers become more confident in converting from a smartphone, we have to find other ways to capture their information so we can stay in touch.

That said, just because mobile visitors are unwilling to convert doesn’t mean they’ll be unwilling to fill out a mobile contact form. It’s a low-risk alternative to entering their sensitive data into a mobile website and device, and puts the onus on the company to take the next step. Of course they’re going to prefer this option, so make sure it’s a worthwhile one to take.

 

Featured image via Unsplash.

Add Realistic Chalk and Sketch Lettering Effects with Sketch’it – only $5!

Source

from Webdesigner Depot https://www.webdesignerdepot.com/2019/02/how-to-increase-mobile-engagement-with-simpler-contact-forms/

The following blog article How to Increase Mobile Engagement with Simpler Contact Forms was originally published to Instant Web Site Tools Blog



source https://www.instant-web-site-tools.com/2019/02/12/how-to-increase-mobile-engagement-with-simpler-contact-forms/

Create cool UI animations with CSS

Animation is an important part of modern UX and is easier than ever to implement with CSS. While it may seem limited or a lesser tool when it comes to animation, CSS is actually a really powerful tool and is capable of producing beautifully smooth 60fps animations. In this feature we'll explore everything from reasoning and planning to implementation.

Read on to learn about CSS transitions, or jump to page 2 for CSS keyframes, page 3 for a closer look at animation performance, page 4 for a guide to animating SVG. Or click through to page 5 to see how to bring it all together to create a UI animation.

Need some more inspiration? Take a look at our roundup of awesome CSS animation examples (and how to code them).

CSS transitions

Put simply, CSS transitions are a way to provide animation between two property values. For the animation to trigger, something needs to change in the application or website. CSS transitions can be used to achieve a number of animated effects, from a simple colour change to more complex transitions.

Transitions in CSS are simple, we just need to choose what elements to transition and when. For example, if we have a button and we want to change the background colour gradually instead of instantly when the user hovers over the button, we use a transition.

Transition syntax

Transitions in CSS are made up of four properties. These give us control over how the transition will animate.

transition-property
This enables us to choose which properties we want to animate. We can transition a number of different properties. See a full list of transition-property properties.

transition-duration
This property enables us to control how long the transition from one property value to another will take. This can be defined in either seconds (s) or milliseconds (ms).

transition-timing-function
Timing functions, or 'easing', enable us to adjust the rate of change over time. There are a number of keywords we can use. For example, the linear keyword will transition from A to B at an equal tempo, whereas ease-in-out will start slowly, speed up in the middle and slow down towards the end. Custom timing functions can also be defined using the cubic-bezier property. See a full list of timing keywords.

transition-delay
Transitions can be delayed using this property and is set using seconds or milliseconds.

Transition shorthand

All of the transition properties listed above can be combined into a shorthand statement using the transition property.

We are free to omit the values we don't need in order to set the defaults.

Combining transitions

You can combine multiple transitions to create choreographed animations. Check this example:

Browser support

Support for transitions and animations in modern browsers is really good. Everything from Internet Explorer 11 or above is going to support the majority of the code needed for animation.

There are exceptions with some of the newer animation properties; CSS Motion Path, for example, or when using SVG or custom properties (CSS variables) as part of the animation.

Prefixing for the most part is probably not needed unless we need to provide support for Internet Explorer 10 and below. There are several ways we can prefix code if needed. Auto-prefixer is a really useful tool that can be used as part of a build process or manually at the end of a project. It enables us to configure the browser support you need, then it will automatically prefix our code where needed. 

We can also check the support for any property using the amazing tool CanIUse. Simply type in the property we want to use and see which browsers  are supported.

Next page: A guide to CSS keyframes

CSS keyframes are used for complex or repeatable animations. They enable us to define multiple property values to animate between. Keyframe animations can be reused and repeated, unlike CSS transitions.

CSS keyframe animations are defined using the @keyframes syntax. This works much like a media query where we nest elements inside of the @ statement. Inside the keyframe declaration we have two options: we can use the keyword to and from or we can define our timeline using percentages. 

Keyword animations

When the animation we're creating only has two points to animate between, we can use the to and from syntax, in fact we can use just to, providing the original property value is set on the element we're going to be animating.

Percentage animations

When creating animations where we need to define more than one point to animate, we can use percentages. This enables us to have precise control over our animation.

Applying an animation

Animation in CSS has a number of properties we can set in order to have precise control over the playback of our keyframe animations. Some, like animation-duration, animation-delay, animation-iteration-count, animation-play-state and animation-name are all fairly self-explanatory, while some of the other properties can be a little trickier to learn and utilise to their full potential.

animation-timing-function
Timing functions in animation are the same as transitions – we can use either keywords or set a custom timing function by using the cubic-bezier value. Take a look at a full list of timing keywords.

animation-direction
When applying our animations, we have the ability to play them back in a number of ways. The default value is normal, which will play the animation forwards. We can also play the animation in reverse or alternate the animations playing forwards and backwards.

animation-fill-mode
The fill mode value enables us to choose what should happen at the end of an animation to the value that we have changed. For example, setting the value to forwards will keep the property values from the end of the animation, whereas the default value none will return the elements to their original state after the animation has finished.

Animation shorthand

All of the animation properties can be combined into a shorthand statement using the 'animation' property. We are free to omit the values we do not need and want to leave as the default values.

Next page: Learn how to manage the performance of your animations

Page speed and performance is an important aspect of any application or website. If you are using animation as part of your project, it can be a good place to start when trying to optimise performance. Animating too much or too many properties will cause animations to stutter.

Firstly you can check that you're not using too many animations all at once on the page: as well as being bad for performance, it is also bad for your users' experience. Multiple animations on different parts of the page will be fighting for their attention as well as potentially causing performance issues. Being aware of the number of animations will help to address both of these potential issues. 

What causes janky animations?

In order to achieve a smooth 60fps animation, the browser has only 16.7ms (1000ms/60) to achieve all of the work that needs to be done per frame. If the browser can't complete all of the operations needed, it will stop and move on to the next frame, starting the calculation and redrawing process all over again. This is when we start to see dropped frames, causing janky or stuttering animations.

How to avoid janky animations

While the list of animatable properties is extensive, at the moment we can only safely animate a handful of these properties to keep within the necessary 16.7ms. These properties are transform, opacity and filter.

The reason for this is that animating any other property will cause the browser to have to repaint the page, and this is an expensive process in terms of performance and will likely take longer than 16.7ms to calculate and draw each change.

We can also give the browser a helping hand by utilising the will-change property, which gives it a heads up that a property is going to change. This enables the browser to perform some optimisations before your animation even starts.

The future of web animation performance

The new Firefox Quantum project is taking amazing strides towards making every animatable property perform well, as well as many other improvements to rendering content on the web.

It's also worth noting that the newest versions of the iPad will play animations back at 120fps, which will reduce the time in which the browser has to calculate and paint each frame to 8.35ms.

Timing and choreography

Utilising the correct timing and delays will produce animations that look better and are easier to comprehend. When animating any elements, it's important to choose a duration that is appropriate to its context. For example, an animation that's applied to a button interaction should be short, usually less than a second. 

Utilising long animations for common interactions is tedious and annoying to the user and can make your application or website feel sluggish and slow. However, providing an animation duration that is too short can cause confusion and provoke the wrong emotions and feelings for your audience. Once you have chosen a comfortable animation duration, you should use this in every aspect of your website or application.

When animating, multiple elements or property delays should be used to enhance comprehension. It's much easier to see what's happening in an animation when one thing happens at a time instead of all at once. 

Next page: Learn how to animate SVG

SVG has many benefits – its vector nature is great, and we don't get any of the problems we get with bitmap images when displaying an image too big or too small or on devices with differing DPIs. SVG is also much smaller in size. SVGs are basically instructions for the browser to draw the image contained within.

How do I animate SVG?

SVG enables us to create intricate drawings and images, where all of the elements inside SVG can be animated using CSS.

Animation in SVG works exactly the same way as it does with any element on the page. We need some way to target the element we want to animate, and then apply the animation.

The main way in which animating SVG elements differs from regular elements is the transform-origin property. Normally we would use percentages or keyword values in order to set the point at which a transform operation takes place.

So if we can't use keywords and can't use percentages, how do we set our transform origin? The answer is to use pixel values. Further complications come into play because, unlike regular elements that would measure the pixels from the top left corner of itself, SVGs will measure from the top left corner of the parent SVG canvas. This blog post covers the topic in detail.

Finally, a note on browser support: CSS animation when used with SVG requires the SVG to be inline in the page for the majority of browsers. This means we can't use the image tag to include our SVG and perform animations; we need to have our SVG inside an SVG tag on the page.

desktop windows illustration

Custom properties

Custom properties, or CSS variables, can be used to create configurable parts of your animation. Animations and movement can cause motion sickness in some users. We can use custom properties in order to effectively remove animations for users who have indicated preferring reduced motion.

By changing the timing to 0, we stop the animation from running when the user has requested it. While this media query isn't yet widely supported, it is by iOS.

We can use custom properties to define other parts of our animation, such as the colour or size and use. This is useful if we have a part that's configurable and we're using that property as part of an animation.

Next page: Bring everything together in a UI animation

In this final tutorial we'll look at how we can combine all of the elements we've covered in the article into one single animation. 

We'll be creating a record player animation where the arm of the record player moves into position over the record, as well as rotating the record itself at two different speeds. We'll create the animation using SVG transitions and keyframes, and we'll be using custom properties in order to make our animation configurable.

01. Create and export our SVG

The first step is to create and export our SVG code. You can do this using many different graphics editors (the example is Sketch for Mac). The shapes being used are simple – mostly straight and poly lines combined with circles. We want to create the SVG in the initial state of our animation.

02. Optimise our SVG

When we have the exported code from our editor we need to optimise that code to make it easier for us when creating our animation. Firstly we'll run it through SVGOMG making sure to only optimise the parts we need. Once we've done this, we'll paste our code into CodePen and create some basic page styles. We'll be using Sass to take advantage of the nesting capability.

03. Edit by hand

Next we will need to edit our SVG by hand. We are going to need to remove any inline transforms on elements that we are going  to animate into our CSS. Doing this will make it easier to animate, because we'll be able to see all of our transform properties in one place.

04. Animate the arm

We can achieve most of what we are trying to do using transitions. We will start with the record arm and animating the arm into position over the record. To do this we will need to rotate the arm of the record from -90deg to 0deg. In order to transition rotation we need to use the transform property. This means we also need to keep any other transform properties the same when changing the rotation.

05. Slowly rotate the record

Next we can use another transition to complete the first, slower rotation of our record. To do this we will need to target the container and apply our transition code, much like we did in the previous step, except this time we will be adding a delay of a quarter of the time it takes for the arm to move into position.

06. Speed up the rotation

In order to speed up the rotation, and for it to repeat infinitely, we'll need to use a keyframe animation. The animation we need to create is simple, we just need to rotate the record 360 degrees.

Then when we're applying our animation, we need to make sure to set the delay correctly so our animation starts at the end of the container stopping.

07. Reverse the movement

Everything is working now and our animation is complete – until the interaction stops. At that point, both the arm and record stop animating and jump back to their original positions. This is where the setup of our SVG is important. The record element itself sits inside of a container. By animating the container using a transition we can also perform another transition in reverse with just a couple of lines of code.

08. Introduce custom properties

Now we've got our complete animation, we'll make it configurable with custom properties. We can do this by setting our custom properties on the root element in our CSS.

We can then apply them to the property values where needed, making sure to provide a fallback for each one.

We can also use custom properties as part of calc() functions, which is particularly useful for sizing and for creating durations and delays.

09. Make the duration configurable

We can utilise the calc() function in order to make the animation duration configurable. Firstly we need to set a new custom property for our duration with a value, in seconds. We can then use this value in order to set all of the other animation time values.

Given the custom property --animation-duration being two seconds becomes:

By doing this for every time value in our animation, we can control the speed of the entire animation by simply changing the custom property at the top of our CSS.

10. Optimise the animation

Now we can add our accessibility options for prefers-reduced-motion and add the will-change property to all of the elements.

This article was originally published in creative web design magazine Web Designer. Buy issue 282 or subscribe.

Read more: 

from Creative Bloq http://www.creativebloq.com/features/create-cool-ui-animations-with-css

Create cool UI animations with CSS See more on: www.instant-web-site-tools



source https://www.instant-web-site-tools.com/2019/02/12/create-cool-ui-animations-with-css/

How to self-publish a book

The future of web design

Enjoy unlimited access to thousands of design assets

You're probably aware of the pain of having to scour the web for design resources every time you have a project. To streamline your design process, do yourself a favour and get a Webmaster Design VIP subscription for an extensive package of designer assets.

A gold mine of design elements, this offer grants unlimited access to thousands of stock photos, textures, mockups, vectors and so much more. Once you download an asset, you're free to use it forever. Plus, you'll also get to download every addition to the collection in the future at no extra cost. 

Start beefing up your resource collection and snag a lifetime subscription to Webmaster Design VIP today for only $49 – 95 per cent off the usual price.

Read more:

from Creative Bloq http://www.creativebloq.com/news/enjoy-unlimited-access-to-thousands-of-design-assets

The blog post Enjoy unlimited access to thousands of design assets was originally seen on Instant Web Site Tools



source https://www.instant-web-site-tools.com/2019/02/12/enjoy-unlimited-access-to-thousands-of-design-assets-2/

Enjoy unlimited access to thousands of design assets

You're probably aware of the pain of having to scour the web for design resources every time you have a project. To streamline your design process, do yourself a favour and get a Webmaster Design VIP subscription for an extensive package of designer assets.

A gold mine of design elements, this offer grants unlimited access to thousands of stock photos, textures, mockups, vectors and so much more. Once you download an asset, you're free to use it forever. Plus, you'll also get to download every addition to the collection in the future at no extra cost. 

Start beefing up your resource collection and snag a lifetime subscription to Webmaster Design VIP today for only $49 – 95 per cent off the usual price.

Read more:

from Creative Bloq http://www.creativebloq.com/news/enjoy-unlimited-access-to-thousands-of-design-assets

The following blog post Enjoy unlimited access to thousands of design assets is courtesy of https://www.instant-web-site-tools



source https://www.instant-web-site-tools.com/2019/02/12/enjoy-unlimited-access-to-thousands-of-design-assets/

7 reasons you can’t miss Vertex

In case you hadn't heard, Vertex is now just a few weeks away, but there's still time to get a ticket. Vertex is the ultimate event for 2D and 3D artists, and if you work or play in CG, you can't afford to miss it. Here's why:

01. Discover the VFX secrets behind Jurassic Park: Fallen Kingdom

Alex Wuttke fallen kingdom promo

Taking to the main stage at Vertex this year is none other than Industrial Light & Magic visual effects supervisor Alex Wuttke to talk all things Jurassic World: Fallen Kingdom. The keynote covers the entire timeline of the filmmaking process, detailing the design decisions made in pre-production, the resultant methodology employed during the shoot and the execution of the visual effects shots in post. Along the way Wuttke will touch on most aspects of the process, concept art, creature design, animatronics, practical effects and rigs, and digital dinosaurs.

02. Framestore returns to Hogwarts – and Vertex!

Framestore's Christian Manz will take the main stage at Vertex 2019 to tell all about the studio's welcome return to Hogwarts for J.K.Rowling’s sequel Fantastic Beasts: The Crimes of Grindelwald. Responsible for 490 VFX shots across their sites in London and Montréal, the Framestore team were creatively involved from the outset, conjuring complex London and Paris environment builds, including the intricate French Department de la Magie, as well as crafting 15 beasts across the film; including the standout Zouwu and old friends the Niffler and Pickett.

03. Free life drawing lessons with pro artists

free life drawing promo

Drawing  figure and form is the foundation of any artist's creative toolkit. At Vertex 2019, you can follow along a life drawing class taken by a professional artist. We'll provide the model, lights and setting.  All you need to do is pull up a chair, bring your sketchbook or tablet and start creating.

04. Learn from the experts at Vertex's workshops

The best way to get your skills up to scratch is by learning from the experts. At Vertex 2019, we have a host of masterclass workshops you can attend, held by the likes of DNEG's Adam Dewhirst, Jellyfish Pictures' Dave Cook and Jas Dhatt and Danny Sweeney of Creative Assembly. 

05. Get inspired in the Vertex Expo area

You’ll be able to discover – and even try out – cutting-edge new tech and software in our Expo area in the East Hall. The latest advancements will be on show so make sure you give them a go.

06. Make your mark on the Vertex doodle walls

drawing wall at Vertex

We'll be providing a wall for you to get creative on! In between the workshop sessions you can sketch and scribble to your heart's content on our dedicated doodle walls. You can collaborate with friends, new people you meet or just do your own doodles.

07. Supercharge your career prospects

Some of the world's leading VFX and creative studios will be at Vertex 2019, many of which will be talking recruitment. There's also portfolio review sessions and Ask An Artist spot featuring creatives from the likes of Creative Assembly, Framestore and Double Negative. Don't miss this great opportunity to get on the radar of some of these VFX powerhouses. 

from Creative Bloq http://www.creativebloq.com/inspiration/7-reasons-you-cant-miss-vertex

The following post 7 reasons you can’t miss Vertex was initially published to http://www.instant-web-site-tools/



source https://www.instant-web-site-tools.com/2019/02/12/7-reasons-you-cant-miss-vertex/

15+ Brochure Cover Design Templates + Ideas

The cover of a brochure is the most important part of the design for grabbing attention. It needs to be crafted in a specific way to suit your target audience, and these brochure cover design templates can get you off to a great start!

To help you find inspiration for your cover design, we handpicked a collection of elegant and professional brochure cover design templates that you can use to find brochure design ideas to easily make the perfect cover for all kinds of brochures. From corporate companies to creative agencies, luxury brands, products, and much more.

If you see a design you like, you can download the template and use it with your own project as well. All of the templates below are from Envato Elements, which allows unlimited downloads for a monthly subscription.

Creative Business Brochure Template

Creative Business Brochure Template

This brochure template cover proves that you can create something truly amazing with the right combination of a great photo and the ideal font. It’s perfect for modern business, startup, or a creative agency brochure.

The template itself includes this cover and a total of 16 unique page designs, which you can easily customize using Adobe InDesign. It also features image placeholders, allowing you to place your own photos on the cover with just a few clicks.

Minimal Brochure Cover Design Template

Minimal Brochure Cover Design Template

This beautifully minimalist brochure cover is the perfect example of a clean and simple cover design. It has a unique design and provides enough space for you to describe your business or company.

The template comes in A5 size and it includes 18 different page designs. You can download and customize this template to fit your brand.

Company Brochure Cover & Template

Company Brochure Cover & Template

Most companies use dull and outdated designs for its annual report brochures. Annual report brochures don’t have to be boring. When you use a clean and simple design like this template cover, your annual report will certainly stand out from the crowd.

This template also comes in both A4 and US Letter sizes. It includes a total of 44 page designs and you can customize it using InDesign CS4 or higher.

Fashion & Beauty Brochure Template

Fashion & Beauty Brochure Template

Crafting a brochure cover for a fashion and beauty brands requires extra effort. It has to be simply elegant and stylish at the same time. However, you can’t wrong with a beautiful brochure template cover like this one.

This template includes a stylish cover as well as 16 inner page designs with image placeholders, paragraph styles, and more. It’s available in A4 size.

Business Proposal Brochure Template

Business Proposal Brochure Template

With this creative brochure template, you’ll be able to not only design an elegant cover for your business and company proposal brochures but also easily design its inner pages with a professional look and feel.

The template comes with 22 custom page designs in A4 and US Letter sizes. As a bonus, the template bundle also comes with invoice, letterhead, flyer, and business card templates as well.

Light & Dark Business Brochure Template

Light & Dark Business Brochure Template

If you’re a fan of minimalism, this brochure cover design will help you find inspiration for your own brochure design. This template comes in both light and dark color designs with a stylishly clean look.

The template is available in A4 size and it’s fully customizable with InDesign CS4 and higher.

Creative Agency Portfolio Brochure Template

Creative Agency Portfolio Brochure Template

The best way to show off your creativity is to keep things simple. This brochure cover design is the perfect example that shows how to craft an attractive and minimal cover for a creative agency brochure.

The template itself comes with 24 page designs for creating a catalog of your creative agency portfolio. It’s available in A4 size and you can edit it with InDesign CS4.

Colorful Pattern Brochure Cover Template

Colorful Pattern Brochure Cover Template

Adding a little bit of color with stylish geometric shapes is another great way to make a brochure cover that’s more attractive. This particular brochure cover design features a similar design, making it a great choice for creative agencies and brands.

The template comes with 26 pages with a fully layered design for easily customizing the template however you like.

Business Profile Brochure Template

Business Profile Brochure Template

When designing a brochure for showcasing a business or company profile, it needs to feature an elegant cover that represents the core values of the company and brand. This brochure template cover comes with the perfect design to craft a professional brochure for any company profile.

The template also includes 24 page designs with fully layered and customizable layouts. It’s available in both A4 and US Letter sizes.

Modern Architecture Brochure Template

Modern Architecture Brochure Template

Going with a landscape layout is the perfect choice for crafting a portfolio brochure for an architecture firm or agency. This brochure template comes with a landscape design and a cover that helps showcase your firm better.

The template includes 12 pages with lots of space for showcasing your catalog with page layouts featuring minimal designs.

Modern Interior Design Catalogue Template

Modern Interior Design Catalogue Template

Working on a brochure design for an interior design product catalog? Then you should use a minimal cover for the brochure design. Use a simple and clean cover design, just like the cover that comes with this template. It’s simple, yet tells a lot about the quality of design.

The template also comes with 12 page designs in A5 size.

Elegant Business & Report Brochure Template

Elegant Business & Report Brochure Template

When creating brochures for business reports such as sales reports, marketing reports, or projection reports, it’s always best to use a simple and clean cover. This brochure template comes with a clean design that you can use with almost any type of brochure design.

The template is available in US Letter and A4 size and it features 20 unique page designs that can be easily customized to your preference.

Annual Report Corporate Brochure Template

Annual Report Corporate Brochure Template

Another creative and modern brochure cover design for crafting more attractive annual report brochures. This cover features an elegant design with a dark color theme.

You can also easily customize this template to change its colors using InDesign CS4 or higher.

Geometric Business Brochure Cover Template

Geometric Business Brochure Cover Template

Using geometric shapes in brochure cover design is nothing new. However, this cover uses a creative combination of shapes and style to make a perfect brochure cover. It’s perfect for creative agencies and businesses.

The template comes with 18 unique and editable page layouts in A4 size.

Creative Corporate Brochure Template

Creative Corporate Brochure Template

Another great example of using geometric shapes in brochure cover design. This cover also uses a set of shapes with image overlays to create a unique effect.

The template comes with image placeholders to let you easily edit the design and place your own images. It also includes 12 custom page designs as well.

Milwaukee Brochure Cover Template

Milwaukee Brochure Cover Template

Creative agencies usually go with minimal and a mixed design of image and shapes for brochure designs. This brochure template’s cover represents a combination of a beautiful and creative brochure cover design.

The template also includes 20 page designs with editable colors, size, and elements.

Luxury Brand & Corporate Brochure Template

Luxury Brand & Corporate Brochure Template

Using a dark color theme for your brochure design can also help highlight its content more easily. It’s also commonly used by luxury brands and businesses. This template is ideal for crafting that type of brochures.

The template features 32 customizable pages with paragraph styles, image placeholders, and more in A4 and US Letter sizes.

from Design Shack https://designshack.net/articles/inspiration/brochure-cover-design/

15+ Brochure Cover Design Templates + Ideas Find more on: Instant Web Site Tools.com Blog



source https://www.instant-web-site-tools.com/2019/02/12/15-brochure-cover-design-templates-ideas/

Monday, February 11, 2019

How to hack the Instagram algorithm

It's no secret that Instagram can be a very powerful marketing tool. Use it right, and it can help you grow your brand and tap into entirely new audiences. But like any promo tool, getting the best from Instagram can be tricky.

Someone who has well and truly mastered the platform is Dot lung, the self-styled 'Mother of Social Media Dragons'. Earlier today, she revealed her fail-safe formula for gaining and retaining followers to a packed room at Digital Design Days, and we caught up with her afterwards to find out a bit more. Here are five hot tips for hacking the Instagram algorithm.

 01. Talk, talk, talk 

Rule one is: create a dialogue. "Social media is not a one-way street; it's a two-way tango," says Lung. Instagram shouldn't just be you putting out content and forgetting about it. Read your comments and start conversations with your followers. The more people speak to you, the more you'll grow your reach. 

If you're a brand, you're probably going to need to make announcements from time to time, but make sure you balance this with conversations. Make sure your followers are getting something back. 

To help with this, it's time to get opinionated. Figure out what your brand stands for and let people know; opinions help open up a dialogue.  

02. Make your audience feel something

Keep your content relevant, and remember, emotional content is much more  relatable to people. "Everything you create should make your audience feel something," says Lung.

While what will resonate most with your audience will of course vary hugely from group to group, there are some universal human emotions that the internet loves. "One of them is humour. If you can make them laugh, it's automatically shareable," says Lung. "If you can make them say, 'Oh my god, me too', that has the possibility to be viral." Further to that, use what you know about your audience to tailor your feel to what will make them tick.

03. Don't be perfect

The key thing with Instagram is that what you put out genuinely reflects your brand personality. Real and organic wins out over perfect and packaged every time, says Lung.

It's might require a bit of a mental shift, given that crafting the perfect image is something that companies have historically invested an awful lot of time and effort into.  

She goes on to qualify her earlier statement that a little. "Research shows that millenials trust brands that are authentic. So that might be raw and real, or you might be authentically polished and prim - that's OK too." The message is to find your authentic voice, and be consistent in your messaging. Keeping things consistent is key to brokering that trust with your audience.

Remember: Your vibe attracts your tribe. If you push out a fake persona, you're not going to attract genuine followers. 

04. Niche down

On Instagram, the more curated your content is, the better. Don't believe us? Take a look at House of Magazines, which curates content from super-niche Instagram communities. Whether you're into cacti, David Bowie, or the colour yellow, there's a dedicated magazine on here for you. The follower numbers are testament to just how popular very specific channels can be.

So how do you find your niche? "What is your true passion? What are you so hot and crazy about, and would geek out to... figure out what you don't mind spending hours and hours looking at and thinking about," suggests lung. "You have to be obsessed. I mean... you don't have to, but it's easier if you are."

05. Try new tools

There's a bunch of tools to help you create slick content and ensure your posts jump out in someone's feed. As well as the hugely popular VSCO filters ("everyone has them"), Lung picks out Unfold as the hottest tool right now. Use it to create professional-looking Stories quickly. 

CutStory is another favourite - used for chopping your videos into 15-second chunks - but Instagram has recently rolled out a feature that does this automatically. "I still like to use it because you don't always need to post everything," Lung adds.

To make your Stories creative, Lung suggests exploring the features within the app itself. "It's crazy - there are so many features and so much stuff you can do with Stories." 

Read more:

from Creative Bloq http://www.creativebloq.com/advice/how-to-hack-the-instagram-algorithm

The following post How to hack the Instagram algorithm was initially published on Instant Web Site Tools Blog



source https://www.instant-web-site-tools.com/2019/02/11/how-to-hack-the-instagram-algorithm/

40+ Best Minimal Logo Design Templates

Minimalist logo design is an art. How can you convey your brand with a professional logo, but keep the simplicity of a minimal, clean, and s...