Entries by admin

Incredible Reinterpretations of Picasso in 3D using Cinema 4D and Octane

Original Source: http://feedproxy.google.com/~r/abduzeedo/~3/hrPG1jsyW4s/incredible-reinterpretations-picasso-3d-using-cinema-4d-and-octane

Incredible Reinterpretations of Picasso in 3D using Cinema 4D and Octane
Incredible Reinterpretations of Picasso in 3D using Cinema 4D and Octane

abduzeedoJan 08, 2019

Construed MIMIC III is the 3rd installment of the series of studies of Picasso’s artwork and translation to 3D form using Maxon Cinema 4D and Otoy Octane. The project was created by Omar. Aqil and it’s been a great experience for him as he mentioned on his Behance post. “I have learned a lot from his work” – he adds. Omar this time picked six art pieces from Picasso’s work and try to recreate them in a different way. “I am trying to explore more complexity and abstraction of the shapes he used” – adds Omar. The result is a set of beautiful 3D artwork that brings a new dimension to the amazing work of Pablo Picasso. I am trying to explore more complexity and abstraction of the shapes he used

Omar is an art director, CGI, and illustrator currently working at CR Studio. He is based in Lahore, Pakistan and his portfolio includes much more amazing 3D work including the previous two series of artworks for the MIMIC series, the Atypical Portraits. MIMIC II and the original MIMIC. There are other incredible 3D projects in character design and typography, but the highlight for me is the abstract pieces. There are the Cubist Compositions that is also awesome to check out. As you can see, we highly recommend visiting Omar’s portfolio it’s truly inspiring.

Interpreting Picasso in 3D


Respectful UX: 5 Ways to Make Users Feel Valued

Original Source: https://www.webdesignerdepot.com/2019/01/respectful-ux-5-ways-to-make-users-feel-valued/

Every human being needs, rather desperately, to feel accepted. They don’t necessarily need to feel accepted by everyone, but they do need to feel accepted by someone. It’s a part of our nature, and nature in general. Even as I type this, my cat Cleocatra is demanding that I give her attention, and if I don’t, she’ll leave my room in a huff.

[A few minutes later:] She didn’t leave. She stuck her claws into me. Users can have very similar reactions if their needs aren’t met when interacting with your website. Humans will anthropomorphize anything, and if they feel like your website doesn’t accept them for who they are, they might just go find one that will. Or do the claw thing.

This is why users need to feel accepted and respected when they use your site. I’ve put together some ideas about how to achieve that. Don’t expect a list of fifty genders to put in your forms, I’m not the guy to ask about that; this is just usability 101:

1. Respect Their Time

Build your website or product to be as efficient as possible. When users leave because your website didn’t load in five seconds or less, it’s not because they’re entitled. It’s because they have stuff to do, and a finite amount of hours in the day to do it.

If your site asks them to jump through a bunch of hoops before they can even read your content, or get that free e-book, or what-have-you, you’re not respecting their time. If your sign-up form is too detailed and asks for too much information, you’re wasting their time.

Think of all the meetings you’ve had that could have been emails. If your site feels more like going to a meeting, they won’t want to go.

2. Avoid Assumptions & Judgment in all Content

People often hate it when you make assumptions about them. They hate it when those assumptions are wrong, and they especially hate it when the assumptions are right. What will tick anyone right off is when those assumptions come with judgment.

Goddammit Netflix. Yes, I’m still watching.

Marketing in general has operated on assumptions and judgment for years, promoting now-derided ideas about what it means to be male, female, a good parent, or a good person. If you haven’t noticed, these assumptions have been the subject of considerable debate for years, now, and many are even considered harmful.

When you make too many assumptions about who is, or should, be using your website, you risk running off users and customers. Now, why would you do that?

3. Encourage Trying Again

People make mistakes, and lots of them. It’s normal, it’s life, and it’s why we have form validation. Now, if your users are signing up for or buying something they feel they absolutely need, and can’t get anywhere else, they’ll stay. They’ll keep trying to fill out your form, or follow your app’s arcane process for doing things, or no matter what.

I know I’ve personally abandoned checkout processes because, in the end, I felt like the thing I kinda sorta wanted to buy wasn’t worth the effort to try to buy it twice. I figured that if they wanted my money so badly they wouldn’t have made it so hard for me to spend, and went on my merry way.

Having to re-fill entire forms is a particular pet peeve of mine. If there’s a mistake, let me go back and fix the one mistake I made. Do not make me refill entire sections of the form. That just makes me wish I hadn’t bothered in the first place. Encourage people to try again when a process fails by not making them redo more work.

You can also encourage them to try again by never making them feel dumb for screwing up in the first place. Error messages should be clear, gentle, and encouraging. Making users feel dumb is the fastest way to put them on the defensive, and defensive people don’t buy stuff. Make it clear that mistakes are just part of the process sometimes, and they are more likely to feel accepted.

4. Provide Clear Instructions

People are more likely to feel like they belong when they know what they’re “supposed” to do. Learning the rules of any peer group is the first step to feeling accepted in a new place.

Clear instructions can provide this confidence to users (and help avoid situations where they feel dumb). You can do this in your copy, in your micro-copy, or even with those animated walk-throughs that so many apps have nowadays. I’d even go further, and say to have illustrated instructions whenever you can.

Think of those credit card input forms that look like actual credit cards. They’re a perfect example of setting clear expectations and easily-understood requirements. Users that have a clear idea of how to do what they want to do on your site will feel like they belong there.

5. Make a Human Point of Contact Available

“Nah, you’re doing fine.”

“Don’t worry about it. We have it covered on this end.”

“No, that was our mistake, really.”

“No worries, you got everything right.”

“Okay, that is a problem, but we can fix it.”

We all need reassurance from time to time. It helps to have another human being tell us that everything’s going to be okay in the end, and that we didn’t irrevocably ruin things for everyone. Want people to feel accepted? Give them a point of contact with people who can tell them those things.

Even if it’s just an email address, people need a way to talk to another person. Ultimately, a website can only do so much to make people feel accepted and respected. Sometimes, you just need the human touch to make a human connection.

Above all, delivering a feeling of acceptance and respect to people is about recognizing and even appreciating their humanity. We don’t always get enough of that in a digital world.

 

Featured image via Depositphotos.

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

Source

p img {display:inline-block; margin-right:10px;}
.alignleft {float:left;}
p.showcase {clear:both;}
body#browserfriendly p, body#podcast p, div#emailbody p{margin:0;}

Animated Mesh Lines

Original Source: http://feedproxy.google.com/~r/tympanus/~3/Sd9FEXrcJ-s/

MeshLines_Featured

Two years ago, I started playing with lines in WebGL using THREE.MeshLine, a library made by Jaume Sanchez Elias for Three.js.

This library tackles the problem that you cannot handle the width of your lines with classic lines in Three.js. A MeshLine builds a strip of triangles billboarded to create a custom geometry instead of using the native WebGL GL_LINE method that does not support the width parameter.

These lines shaped as ribbons have a really interesting graphic style. They also have less vertices than a TubeGeometry usually used to create thick lines.

Animate a MeshLine

The only thing missing is the ability to animate lines without having to rebuild the geometry for each frame.
Based on what had already been started and how SVG Line animation works, I added three new parameters to MeshLineMaterial to visualize animated dashed line directly through the shader.

DashRatio: The ratio between what is visible or not (~0: more visible, ~1: less visible)
DashArray: The length of a dash and its space (0 == no dash)
DashOffset: The location where the first dash begins

Like with an SVG path, these parameters allow you to animate the entire traced line if they are correctly handled.

Here is a complete example of how to create and animate a MeshLine:

// Build an array of points
const segmentLength = 1;
const nbrOfPoints = 10;
const points = [];
for (let i = 0; i < nbrOfPoints; i++) {
points.push(i * segmentLength, 0, 0);
}

// Build the geometry
const line = new MeshLine();
line.setGeometry(points);
const geometry = line.geometry;

// Build the material with good parameters to animate it.
const material = new MeshLineMaterial({
lineWidth: 0.1,
color: new Color('#ff0000'),
dashArray: 2, // always has to be the double of the line
dashOffset: 0, // start the dash at zero
dashRatio: 0.75, // visible length range min: 0.99, max: 0.5
});

// Build the Mesh
const lineMesh = new Mesh(geometry, material);
lineMesh.position.x = -4.5;

// ! Assuming you have your own webgl engine to add meshes on scene and update them.
webgl.add(lineMesh);

// ! Call each frame
function update() {
// Check if the dash is out to stop animate it.
if (lineMesh.material.uniforms.dashOffset.value < -2) return;

// Decrement the dashOffset value to animate the path with the dash.
lineMesh.material.uniforms.dashOffset.value -= 0.01;
}

First animated MeshLine

Create your own line style

Now that you know how to animate lines, I will show you some tips on how to customize the shape of your lines.

Use SplineCurve or CatmullRomCurve3

These classes smooth an array of points that is roughly positioned. They are perfect to build curved and fluid lines and keep control of them (length, orientation, turbulences…).

For instance, let’s add some turbulences to our previous array of points:

const segmentLength = 1;
const nbrOfPoints = 10;
const points = [];
const turbulence = 0.5;
for (let i = 0; i < nbrOfPoints; i++) {
// ! We have to wrapped points into a THREE.Vector3 this time
points.push(new Vector3(
i * segmentLength,
(Math.random() * (turbulence * 2)) – turbulence,
(Math.random() * (turbulence * 2)) – turbulence,
));
}

Then, use one of these classes to smooth your array of lines before you create the geometry:

// 2D spline
// const linePoints = new Geometry().setFromPoints(new SplineCurve(points).getPoints(50));

// 3D spline
const linePoints = new Geometry().setFromPoints(new CatmullRomCurve3(points).getPoints(50));

const line = new MeshLine();
line.setGeometry(linePoints);
const geometry = line.geometry;

And like that you create your smooth curved line!

Animated MeshLine Curved

Note that SplineCurve only smoothes in 2D (x and y axis) compared to CatmullRomCurve3 that takes into account three axes.

I recommend to use the SplineCurve, anyway. It is more performant to calculate lines and is often enough to create the desired curved effect.

For instance, my demos Confetti and Energy are only made with the SplineCurve method:

AnimatedMeshLine - Confetti demo

AnimatedMeshLine - Energy demo

Use Raycasting

Another technique taken from a THREE.MeshLine example is using a Raycaster to scan a Mesh already present in the scene.

Thus, you can create your lines that follow the shape of an object:

const radius = 4;
const yMax = -4;
const points = [];
const origin = new Vector3();
const direction = new Vector3();
const raycaster = new Raycaster();

let y = 0;
let angle = 0;
// Start the scan
while (y < yMax) {
// Update the orientation and the position of the raycaster
y -= 0.1;
angle += 0.2;
origin.set(radius * Math.cos(angle), y, radius * Math.sin(angle));
direction.set(-origin.x, 0, -origin.z);
direction.normalize();
raycaster.set(origin, direction);

// Save the coordinates raycsted.
// !Assuming the raycaster cross the object in the scene each time
const intersect = raycaster.intersectObject(objectToRaycast, true);
if (intersect.length) {
points.push(
intersect[0].point.x,
intersect[0].point.y,
intersect[0].point.z,
);
}
}

This method is employed in the Boreal Sky demo. Here I used a sphere part as geometry to create the mesh objectToRaycast:

Boreal Sky - raycasting example

Now, you have enough tools to play and animate MeshLines. Many of these methods are inspired by the library’s examples. Feel free to explore these and share your own experiments and methods to create your own lines!

References and Credits

Three.js
THREE.MeshLine
THREE.MeshLine – Shape example
Gsap

Animated Mesh Lines was written by Jérémie Boulay and published on Codrops.

3 Essential Design Trends, January 2019

Original Source: https://www.webdesignerdepot.com/2019/01/3-essential-design-trends-january-2019/

New year, new design trends!

While everyone is talking about big-picture trends such as designing for voice and virtual reality, there are more immediate design elements that you can see (and deploy) right now for a more on-trend website.

From websites without images above the scroll, to ecommerce that disguises itself as content, to bright blue everything, here’s a look at what’s trending this month.

1. No “Art” Above the Scroll

Have you noticed how many websites don’t have images or video above the scroll? This no “art” design style used to be reserved for coming soon or construction pages that didn’t have images, but it’s trending even for website designs with plenty of other imagery.

If you have a message or statement that is the most important thing for users to know right away, this can be an effective design technique. It works because there’s nothing else to see. (Unless the user refuses to read the words and abandons the design, which can be a risk with this style.)

Make the most of a no art design with beautiful typography and strong color choices.

These design elements can serve as art on their own and help add visual interest to the words on the screen.

Each of the three examples below does this in a slightly different way.

We Are Crowd uses a strong serif-sans serif typography pair on a bright colored background. Users are enticed to delve into the design thanks to an animated scroller on the homepage. The no “art” design actually alternates between image and non-image panels, showing users there is something to look at.

Easys uses a simple serif in the center of the screen to draw the eye. Bright red text on a stark background draws you right to the lettering. There’s also a call to scroll, where the design fills with more color, images and interesting shapes.

David Pacheco’s portfolio takes a more minimal approach to the no art aesthetic. With simple, but oversized sans serif typography and a black background, there’s no way not to know what the website is about. The stark nature of the design makes the small, animated scroller at the bottom left more obvious, and it’s worth the effort with great images of his projects.

2. Bright Blue

It might not come as a surprise that a bright color is trending. But the hue might surprise you. Even though a bright coral was named color of the year by Pantone, bright blue is trending.

Bright blue backgrounds, text elements, overlays and more are everywhere. The color, which has roots in the Material Design palette, is rather cheerful and works with almost any content type. These are reasons why it might be so popular.

Blue is traditionally one of the most used colors among all website designs. Mostly because of associations that are harmonious, pleasing and trustworthy. This brighter blue adds to that with a somewhat lighter feel.

The best part of a website design trend that’s rooted in color is that it’s easy to use. Designers don’t have to overhaul a brand color palette to incorporate bright blue into the design. Sneak it in for accents or in images.

This is also a trend that you can add to a project quickly and without a lot of planning for a modern flair that can be deployed (and even removed) with minimal effort.

Like the blues you see in the examples below? Try these color mixes to replicate the hues:

Matt Downey uses a bright blue with an almost purple undertone; hex #263d83.

Output scrolls trough plenty of bright blue options on the homepage with more purple (hex #4d34d8) and brighter sky blue (hex #3a63d8) options.

Florent Biffi puts a new spin on navy with a brighter tone; hex #142877.

3. Ecommerce That Looks Like Content

Content is king…even when it comes to online sales.

Maybe as a design trend that’s a carryover from social media or maybe just to try something that’s a little more engaging, more ecommerce websites are deploying site architectures that look less like pages of items for sale and more like integrated content elements with a “buy it” button included.

This idea makes sales more about lifestyle and uses a product placement philosophy to sell items. This design concept can take a lot of time to plan out and design effectively, but it can be worthwhile if it resonates with a new customer or shopper base.

It’s likely that it takes a certain type of product as well. Ecommerce websites that use a lot of content and that look more like content that product sales or information tend to be lifestyle brands such as clothing or home textiles. This is because these items don’t need a lot of explanation–most shoppers know what size shirt they wear–and create a sense of urgency in the desire to buy. A customer sees the shirt and want it because of the associated sense of style or connection to brand.

It’s an interesting way to create a more authentic connection with users–a key marketing concept, particularly among millennial shoppers and audiences. It’s one of those design trends that has a lot of potential to grow, but only if designers and developers are willing to commit the time and resources to overhaul their ecommerce projects in this manner.

Conclusion

When it comes to using website design trends, the ones that come and go the quickest are the ones that are most deployable. Some of those–such as color–are on this list. Others, like ecommerce that looks like content, takes a lot more strategy to do well. Which type of trend are you most likely to try?

What trends are you loving (or hating) right now? I’d love to see some of the websites that you are fascinated with. Drop me a link on Twitter; I’d love to hear from you.

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

Source

p img {display:inline-block; margin-right:10px;}
.alignleft {float:left;}
p.showcase {clear:both;}
body#browserfriendly p, body#podcast p, div#emailbody p{margin:0;}

5 awesome JavaScript APIs

Original Source: http://feedproxy.google.com/~r/CreativeBloq/~3/o10Wm2sXjKE/5-awesome-javascript-apis

There are plenty of great JavaScript APIs around right now. Here we've picked five for you to explore in your web projects. Combine them with our pick of the best HTML APIs to help enhance your sites' user experience.

01. Intersection Observer
Status: Working draftRead more: W3C summary

This JavaScript API can be used to understand the visibility and position of DOM elements (known as 'targets') relative to a containing element (the 'root'). Use it to fire a callback whenever an element enters and exits a certain area. This API is best for lazy loading or infinite scroll effects.

02. Reporting Observer
Read more: W3C summary

Part of the Reporting API, Reporting Observers observe some types of reports from JavaScript. Use them to get notified when the browser has to intervene – for example, if it has to provide a fallback for a slow-loading font.

03. OffscreenCanvas
Read more: Google Developers summary

Drawing to a <canvas> is an expensive task for a browser. This new API enables you to render graphics off the main thread, without hitting the DOM.

04. Internationalisation API
Read more: MDN web docs

Known by the namespace Intl, the ECMAScript Internationalization API provides language-sensitive string comparison, number formatting, and date and time formatting. Use it to avoid sending heavy libraries and show dates, numbers and strings in a format that makes sense in the user’s location.

05. CSS Paint API
Read more: Google Developers summary

The CSS Paint API – also known as CSS Custom Paint – enables you to programmatically generate an image whenever a CSS property expects one. Use JavaScript to generate dynamic backgrounds, borders and image masks and apply them in CSS without a heavy performance hit. This API is about to be enabled by default in Chrome Stable.

This article originally appeared in Web Designer magazine. Buy issue 280, or subscribe now.

Read more:

A coder's guide to APIsGet started with the Web Audio API7 hot web trends for 2019

5 Ways to Design for Large Viewports

Original Source: https://www.webdesignerdepot.com/2019/01/5-ways-to-design-for-large-viewports/

Web designers have typically always been big-picture people, in that they like having really big screens in front of them. It’s convenient, and it makes you feel very professional. At this point in my life, I don’t think I could go back to having just one monitor, either. And yet, I find that many websites don’t live up to the potential promised by big darned screens, or even that presented by phones with HD resolutions.

This is because we live in a mobile-first world, with mobile-first people. They go to far off and exotic places like “outside”, so they have to carry their screens around with them. Outside people pretty much pay our bills—whether directly or indirectly—and we have to make websites they can actually use on those small screens.

That is all well and good, and it’s not going to change any time soon. But big screens aren’t going anywhere, either. People still work in offices, at home, and in coffee shops with laptops and desktops. People still have “the family computer” at home. PC gamers exist, and they’re buying some of the biggest screens, right alongside photographers and videographers.

These people are often left with experiences designed for mid-range to small screens. This likely doesn’t break the experience for them, but why shouldn’t they have an experience tailored to their needs? Besides, what is all that extra screen space there for, if not to play with it? Here are a few ways to take advantage of the bigger screens, along with some examples:

1. Literal Big Pictures

One of the most common ways people try to use up the empty space is to put pictures in it. We’ve all seen the ten-trillion websites (I may be exaggerating) that use some stock photo as a background, particularly in the “hero” section on the home page. This is everywhere. You’ve done it, most likely, and God knows I’ve done it.

It is not altogether the worst way to go about it, and it’s not the best. While image compression is getting better and better, those images will still hit you in the bandwidth, caching or no caching. If you want to save you and your CDN some trouble, go with SVG. I know, I keep saying this, but it really works, and it works wonders. See bebold for a picture-perfect (heh) example of how to use simple SVG imagery to fill up some space while keeping the bandwidth and rendering costs light.

2. Scaling the Layout

So we all know how responsive design works, right? Well, it’s gotten a lot easier with CSS Grid. I’ve been experimenting with it for personal projects, and goddamn but it truly changes everything. Those Magazine-type layouts that front-end developers have been trying to make work for decades? They’re easy now. Easy. Go read a tutorial already.

With all that time you have left over, why not see what you can do when you let the central wrapping div go wider than 1,200 pixels? It could be fun. For an absolutely gorgeous (if somewhat bandwidth-heavy) example, see Seedlip.

3. Responsive Type

But hey, sometimes you don’t want to bother so much with pictures. Maybe you just want big darned text. We’ve had various iterations on the responsive layout for years, though. What has been harder is scaling our typography up and down by screen resolution in a way that seems natural and fluid. Sure, you can do it with a few dozen media queries (or like two, if you’re lazy like me), but the CSS calc function has us covered if we want to do it the easy way.

Sure, Chris Coyier has been writing about this since 2012, but the browser support hasn’t always been up to par. I quite like the technique used by Mike Foskett’s Fluid-responsive font-size calculator, which allows you to specify a maximum font-size, and can calculate everything in rems and ems, if that’s the way you want to go.

For an example of the technique in action see any article on CSS-Tricks.

4. Just put More Stuff on the Screen

As an avowed minimalist, I’m not a huge fan of just bombarding the user with information in general. However, there are times when this is exactly what they want and need. The clearest use cases for this approach are in dashboard-style user interfaces, and plain old e-commerce. In either of these cases, if you’re not using the maximum potential space for functionality and/or products, you’re actually slowing the user down when they may not want to be slowed down.

Most dashboard designers are already, well…on board. However, I’m seeing more and more ecommerce site templates trying to cram products into small areas on big screens, and that makes little sense to me.

Example: I dunno… Amazon? I’m not going to link that. They’re going to get our traffic eventually in any case. Actually, the aforementioned Seedlip works very well for this section, too.

Now where I object to this approach is on news sites, and generally they seem to agree with me. Although some are still using up the full screen, they make the content big enough that there’s not too much in the viewport at any one time, encouraging you to scroll down and really pick and choose your articles. Sure, they do it to display more ads, but this might be one of the few times ads have actually helped to improve an experience. Kind of.

5. Video

And lastly, a real no-brainer. I’m not actually sure anyone’s doing this one wrong. Still… if you’re going to use video extensively on your site anyway, and you’re not too fussed about bandwidth, go big. It’s video, that’s what it’s for. If nothing else, at least give people the option to watch your videos in full-screen mode. For examples of this tip in action, see just about any filmmaker’s site. Here’s one: +Ring.

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

Source

p img {display:inline-block; margin-right:10px;}
.alignleft {float:left;}
p.showcase {clear:both;}
body#browserfriendly p, body#podcast p, div#emailbody p{margin:0;}

Finally write your screenplay with this software

Original Source: http://feedproxy.google.com/~r/CreativeBloq/~3/pccTQZV2l6A/finally-write-your-screenplay-with-this-software

Have you been sitting on a million dollar idea for a movie or TV show? WriterDuet Pro will not only help you craft your amazing project, it will ensure that it's in the industry standard format. And a lifetime subscription to this helpful software is currently just $99.99.

WriterDuet is designed by established screenwriters for fellow screenwriters. Because of that, it's intuitive and knows what tools are needed to get your play, TV show or movie down on paper. 

Writing with a colleague? Working with a whole team on a script? The software allows you to work collaboratively in real time, letting you outline ideas on a collaborative corkboard and see changes filtered by who made them.

Unsure exactly how to format your work? WriterDuet has industry standard formatting, so once you're done, everyone who sees your work will take it seriously. And you can easily import or export your projects to Final Draft, Fountain, Word and more writing platforms when needed.

Though a lifetime subscription to WriterDuet Pro typically retails for $239, it's currently available at 58% off for $99.99 here.

Want your products featured in The Creative Bloq Shop? Learn more about how to sell your products online!

Related articles:

5 top tips for creating a productive workspace5 outrageous product placements in movies8 simple productivity tools for designers

Best JavaScript Frameworks, Libraries and Tools to Use in 2019

Original Source: https://www.sitepoint.com/top-javascript-frameworks-libraries-tools-use/

It seems there are more JavaScript frameworks, libraries, and tools than there are developers. As of May 2017, a quick search on GitHub reveals more than 1.1 million JavaScript projects. There are 500 thousand usable packages on npmjs.org with almost 10 billion downloads every month.

This article endeavors to explain the basics and rudimentary differences between the most popular client-side JavaScript frameworks, libraries, and tools. Whether they are “best” for you is another question. Choose something and stick with it for a while. Just be aware your favorite option will be superseded by something “better” no matter what you select!

Please accept the following terms and conditions before reading this article…!

The JavaScript landscape changes on a daily basis. This article will be out of date the moment it’s published!
By “best” I mean “the most popular general-purpose projects”. All are free/open source but the list may not include your favorites.
Discontinued projects such as YUI are not included even though they may still have high use across the web.
Only client-side projects are referenced. Some can work server-side but the list does not include pure server-based frameworks such as Express.js or Hapi.
Information about each project is intentionally brief to provide an overview for further research.
Each project provides a usage popularity indicator but statistics are notoriously difficult to collate and can be misleading.
I’m biased. You’re biased. Everyone else is biased! I haven’t tried every tool here and will declare my favorites but you should make your own assessment based on your requirements.
Neither I nor SitePoint are liable for any disastrous decisions you make!

Tricky Terminology

The terms “framework”, “library” and “tool” can mean different things to different people at different times depending on the context. The general definitions used here:

Libraries

A library is an organized collection of useful functionality. A typical library could include functions to handle strings, dates, HTML DOM elements, events, cookies, animations, network requests, and more. Each function returns values to the calling application which can be implemented however you choose. Think of it like a selection of car components: you’re free to use any to help construct a working vehicle but you must build the engine yourself.

Libraries normally provide a higher level of abstraction which smooths over implementation details and inconsistencies. For example, Ajax normally relies on the XMLHttpRequest API but this requires several lines of code and there are subtle differences across browsers. A library may provide a simpler ajax() function so you’re free to concentrate on higher-level business logic.

A library could cut development time by 20% because you don’t have to worry about the finer details. The downsides:

a bug within a library can be difficult to locate and fix
there’s no guarantee the development team will release a patch quickly
a patch could change the API and incur significant changes to your code.

Frameworks

A framework is an application skeleton. It requires you to approach software design in a specific way and insert your own logic at certain points. Functionality such as events, storage, and data binding are normally provided for you. Using the car analogy, a framework provides a working chassis, body, and engine. You can add, remove or tinker with some components presuming the vehicle remains operational.

A framework normally provides a higher level of abstraction than a library and will help you rapidly build the first 80% of your project. The downsides:

the last 20% can be tough going if your application moves beyond the confines of the framework
framework updates can be difficult – if not impossible
core framework code and concepts rarely age well. Developers will always discover a better way to do the same thing.

Tools

A tool aids development but is not an integral part of your project. Tools include build systems, compilers, transpilers, code minifiers, image compressors, deployment mechanisms and more.

Tools should provide an easier development process. For example, many coders prefer Sass to CSS because it provides code separation, nesting, render-time variables, loops, and functions. Browsers do not understand Sass/SCSS syntax so the code must be compiled to CSS using an appropriate tool before testing and deployment.

Don’t Label Me!

The distinction between libraries, frameworks, and tools is rarely clear. A framework could include a library. A library may implement framework-like methods. Tools could be essential for either. I’ve attempted to label each project but the scope can vary.

If this sounds too complicated, you could consider coding vanilla JavaScript. That’s fine, but you will inevitably write your own library and/or framework code which must be maintained. JavaScript itself is an abstraction on a tower of browser and OS abstractions!

JavaScript Frameworks and Libraries

Projects in order of popularity…

jQuery

jQuery

type
library

website
jquery.com

repository
github.com/jquery/jquery

current version
3.2.1

developer
jQuery team

launch date
August 2006

typical size
30kb min

typical use
general purpose

usage
72.4% of all websites

jQuery remains the most-used JavaScript library ever created and is distributed with WordPress, ASP.NET and several other frameworks. It revolutionized client-side development by introducing CSS selector to DOM node retrieval plus chaining to apply event handlers, animations, and Ajax calls.

jQuery has fallen from favor in recent years but remains a viable option for projects which require a sprinkling of JavaScript functionality.

Pros:

small distribution size
shallow learning curve, considerable online help
concise syntax
easy to extend

Cons:

adds a speed overhead to native APIs
less essential now that browser compatibility has improved
usage has flat-lined
some industry backlash against unnecessary use.

React

React

type
library

website
facebook.github.io/react/

repository
github.com/facebook/react

current version
15.5.4

developer
Facebook and contributors

launch date
March 2013

typical size
21kb min

typical use
single-page applications

usage
low

Perhaps the most-talked about library of the past year, React claims to be a JavaScript library for building user interfaces. It focuses on the “View” part of Model-View-Controller (MVC) development and makes it easy to create UI components which retain state. It was one of the first libraries to implement a virtual DOM; the in-memory structure computes the differences and updates the page efficiently.

React usage appears low in statistics perhaps because it’s used in applications rather than websites. Almost 38% of developers claim to be using the library.

Pros:

small, efficient, fast and flexible
simple component model
good documentation and online resources
server-side rendering is possible
currently popular and experiencing rapid growth

Cons:

new concepts and syntaxes to learn
build tools are essential
can require other libraries or frameworks to provide the model and controller aspects
can be incompatible with code and other libraries which modify the DOM

Learn more about React with our Premium course, React the ES6 Way

The post Best JavaScript Frameworks, Libraries and Tools to Use in 2019 appeared first on SitePoint.