The Stunning Architecture of Shilda winery

Post pobrano z: The Stunning Architecture of Shilda winery

One of the most common complains you will hear about modern architecture is that it does not integrate with nature. This project, designed by X-architecture for Shilda winery in Kahketi, Georgia (the country, not the state).

At the core of the vineyard, the building forms a stream of curved beams that host several activities: wine tasting, wine storing, and wine knowledge sharing.

JAMstack CMSs Have Finally Grown Up!

Post pobrano z: JAMstack CMSs Have Finally Grown Up!

This article is based on Brian’s presentation at Connect.Tech 2019. Slides with speaker notes from that presentation are available to download.

In my experience, developers generally find the benefits of the JAMstack easy to comprehend. Sites are faster because the resources are static and served from a CDN. Sites are more secure because there is no framework, application server or database to compromise. Development and deployment can be optimized because all of the pieces that make up the stack are unbundled. And so on.

What can be more difficult for developers to comprehend are the trade-offs that this can often require for the folks who create and edit content. Traditional, monolithic content management systems have often been ridiculed by developers (yes, even WordPress) who became frustrated trying to bend the tool to their will in order to meet project requirements. But, until recently, the JAMstack largely just passed that burden onto the non-technical content creators and editors.

By developers, for developers

Static site generators (i.e. tools like Jekyll, Hugo and Gatsby) grew enormously in popularity in large part because developers adopted them for projects. They became common solutions for things like blogs, documentation or simple static pages. By and large, these were sites created by developers, maintained by developers and with the content primarily written and edited by developers.

When I first wrote about these tools in a report for O’Reilly in 2015, this is what I said:

Just in case this isn’t already clear, I want to emphasize that static site generators are built for developers. This starts with the development of the site all the way through to adding content. It’s unlikely that non-developers will feel comfortable writing in Markdown with YAML or JSON front matter, which is the metadata contained at the beginning of most static site engine content or files. Nor would non- technical users likely feel comfortable editing YAML or JSON data files.

—Me (Static Site Generators report for O’Reilly 2015)

When, two years later, I wrote a book for O’Reilly on the topic (with my friend Raymond Camden), not too much had changed. There were some tools at the very early stages, including Jekyll Admin and Netlify CMS, but they had not matured to a point that they could realistically compete with the sort of WYSIWYG tooling that content editors were used to in tools like WordPress.

The WordPress editor showing a field for the post title and a text area for the post content.
The WordPress editing experience

By contrast, the editing experience of static CMSs still required an understanding of Markdown and other markup (YAML, Liquid, etc.).

An editing screen in Netlify showing post fields on the left and a preview of the post on the right.
The Netlify CMS editing experience in 2017

Suffice it to say, whatever the technical merits of the architecture at the time, from a content editing standpoint, this was not a toolset that was ready for mainstream adoption.

The awkward teenage years

Over the ensuing two years, a combination of a couple of trends started to make the JAMstack a viable solution for mainstream content sites with non-technical editors. The first was that the static CMS matured into what we now generally refer to as git-based CMS solutions. The second was the rise of the headless, API-first CMS as a solution adopted by enterprises.

Let’s take a look at the first trend… well… first. Netlify CMS, an open-source project from Netlify, is an example of a git-based CMS. A git-based CMS doesn’t store your content, as a traditional CMS would, but it has tools that understand how to edit things like Markdown, YAML, JSON and other formats that make up a JAMstack site. This gives the content editors tools they feel comfortable with, but, behind the scenes, their content changes are simply committed back into the repository, forcing a rebuild of the site. While Netlify CMS is installed on the site itself, other popular git-based CMS options are web-based, including Forestry and DatoCMS.

An editing screen in Netlify from 2017 showing post fields on the left and a preview of the post on the right.
The current editing experience in Netlify CMS

The headless, API-first CMS functions much more like the editing experience in a traditional CMS. It not only offers tools for creating and editing content, but it stores that content. However, it makes that content available to the front end – any front-end – via an API. While not limited to JAMstack in any way, an API-first CMS works well with it because the creation and management of the content is separate from the display of that content on the front end. In addition, many API-first CMSs offer pre-built integrations with some of the most widely used static site generators. Popular API-first options include Contentful and Sanity.

The Contentful admin, showing post fields on the left and post settings on the right.
Contentful

HeadlessCMS.org is a site maintained by Netlify that has a comprehensive list of all the available tools, both git-based and API-first. For a good look at the differences, pros and cons between choosing a git-based versus an API-first CMS, check out this post by Bejamas.

Both git-based and API-first headless CMS options began to give non-technical content editors the tools they needed on the backend to create content. The awkwardness of these „teenage years” comes from the fact that the tooling is still disconnected from the frontend. This makes it difficult to see how changes you’ve made in the backend will impact the frontend until those changes are actually committed to the repo or pushed live via the API. Add in the time cost of a rebuild and you have a less than ideal editing experience where mistakes can more easily make it to the live site.

A Look at the future

So what does the future look like when the JAMstack CMS is finally grown up? Well, we got a good look at this year’s JAMstack_conf_sf. Coincidentally, there were two presentations demonstrating new tools that are bringing the content editing experience to the frontend, letting content editors see what they are changing, how their changes will look and how they will impact the layout of the site.

The first presentation was by Scott Gallant of Forestry. In it, he introduced an new open source projects from Forestry called TinaCMS that brings a WYSIWYG style content editing experience to the frontend of sites that use a git-based CMS and Gatsby or Next.js (both React-based tools).

Animated flow for editing a page on the front end with Tina CMS.
TinaCMS

The second presentation was by Ohad Eder-Pressman of Stackbit (full disclosure: I work as a Developer Advocate for Stackbit) that introduced an upcoming set of tools called Stackbit Live. Stackbit Live is designed to be CMS and static site generator agnostic, while still allowing on-page editing and previewing of a JAMstack site.

Animation of editing a page on the front end with Stackbit Love
Stackbit Live

What both these tools demonstrated is that we’re at a point where a „JAMStack + headless” architecture is a real alternative to a traditional CMS. I believe we’ve reached the tipping point whereby we’re no longer trading a great developer experience for an uncomfortable editing experience for content authors. By 2020, JAMstack CMS will officially be all grown up. 👩🏽‍🎓

The post JAMstack CMSs Have Finally Grown Up! appeared first on CSS-Tricks.

The Amazingly Useful Tools from Yoksel

Post pobrano z: The Amazingly Useful Tools from Yoksel

I find myself web searching for some tool by Yoksel at least every month. I figured I’d list out some of my favorites here in case you aren’t aware of them.

The post The Amazingly Useful Tools from Yoksel appeared first on CSS-Tricks.

How We Perform Frontend Testing on StackPath’s Customer Portal

Post pobrano z: How We Perform Frontend Testing on StackPath’s Customer Portal

Nice post from Thomas Ladd about how their front-end team does testing. The list feels like a nice place to be:

  1. TypeScript – A language, but you’re essentially getting various testing for free (passing the right arguments and types of variables)
  2. Jest – Unit tests. JavaScript functions are doing the right stuff. Works with React.
  3. Cypress – Integration tests. Page loads, do stuff with page, expected things happen in DOM. Thomas says their end-to-end tests (e.g. hitting services) are also done in Cypress with zero mocking of data.

I would think this is reflective of a modern setup making its way across lots of front-end teams. If there is anything to add to it, I’d think visual regression testing (e.g. with a tool like Percy) would be the thing to add.

As an alternative to Cypress, jest-puppeteer is also worth mentioning because (1) Jest is already in use here and (2) Puppeteer is perhaps a more direct way of controlling the browser — no middleman language or Electron or anything.

Thomas even writes that there’s a downside here: too-many-tools:

Not only do we have to know how to write tests in these different tools; we also have to make decisions all the time about which tool to use. Should I write an E2E test covering this functionality or is just writing an integration test fine? Do I need unit tests covering some of these finer-grain details as well?

There is undoubtedly a mental load here that isn’t present if you only have one choice. In general, we start with integration tests as the default and then add on an E2E test if we feel the functionality is particularly critical and backend-dependent.

I’m not sure we’ll ever get to a point where we only have to write one kind of test, but having unit and integration tests share some common language is nice. I’m also theoretically opposite in my conclusion: integration/E2E tests are a better default, since they are closer to reality and prove that a ton is going right in just testing one thing. They should be the default. However, they are also slower and flakier, so sad trombone.

Direct Link to ArticlePermalink

The post How We Perform Frontend Testing on StackPath’s Customer Portal appeared first on CSS-Tricks.

How to Create a Kaleidoscope Effect in Adobe Photoshop

Post pobrano z: How to Create a Kaleidoscope Effect in Adobe Photoshop

Final product image
What You’ll Be Creating

As we continue with our series on effects inspired by music videos, one of the effects I’ve always been fascinated with was the kaleidoscope mirror effect. The best examples of this effect can be seen in the visually rich Pillow Talk video by Zayn. Check it out at 1:20, 1:55, 2:26, and 3:12.

The challenge is to find a way to create the effect easily and not by manually placing dozens of copies. 

Fortunately, Photoshop has a couple of useful features to make this task significantly easier. First is the frequently overlooked Scripted Fill, which makes short work of creating kaleidoscope patterns and has enough options to keep you busy experimenting for hours! Paired with that is the Transform Again feature, which is a fun way to create repetitive objects similar to the way the old Spirograph used to work. 

If you’re looking for a Photoshop action to create a mirror effect, check out our roundup of the best reflection and mirror effects available on Envato Market and Envato Elements.

Follow along with our tutorial over on our Envato Tuts+ YouTube channel:

1. Create the Pattern

The scripted fill is extremely useful for this type of effect, but it has to use a predefined pattern to work. Patterns that are not square tend to work best, so we will start out by extracting a musical artist from the background and creating a pattern to use.

Step 1

This technique will work with almost any image, but for this project let’s work with a musician image to best imitate the source effect from the video. Specifically, we’ll use this image of a sensual girl next to a rocky wall from Envato Market.

sensual girl on the rocks image
Credit: Envato Market

Step 2

Grab the Quick Selection Tool (W) and paint along the model to create a selection that completely surrounds her. If the tool grabs a background area, hold down the Alt key and paint along that background to deselect it.

create a selection around the subject

Step 3

Press the Refine Edge button to launch the dialogue box. Adjust the Radius to 2 px and check the Smart Radius option. Then use the Refine Radius Tool to brush along the edges of the model’s hair to create a better selection for those long locks. Then press the OK button to return to the main Photoshop interface.

using the select and mask option to refine the image selection

Step 4

Use the selection as a layer mask by going to Layer > Layer Mask > Reveal Selection.

use the selection as a mask

Step 5

Click on the layer thumbnail to make sure the focus is on the layer and not the layer mask. Then go to Edit > Define Pattern. Give the pattern a name of girl.

define a pattern

2. Scripted Fill Fun

With our custom pattern defined and ready to go, it’s time to use the Scripted Fill to create the kaleidoscope pattern. There are several options to experiment with; the ones listed here are just a suggestion to get you started. Feel free to craft your own patterned effect.

Step 1

Create a new document with File > New. Set the Width and Height both to 2500 px. Set the Background Contents to Other and specify the color to be black (#000000).

setting up a new document

Step 2

Create a new layer with Layer > New > Layer (Shift-Control-N) and name the new layer Scripted Fill.

creating a new layer

Step 3

Go to Edit > Fill and change the Contents to Pattern and set the Custom Pattern to the Guitarist pattern you created earlier. Then check the Script option box and select Symmetry Fill.

edit fill settings

In the Symmetry Fill dialogue box, choose the following settings:

  • Symmetry type: 32 wallpaperP6 symmetry
  • Pattern Scale: 0.75
  • Pattern translation along width: 25% of width
  • Pattern translation along height: –40% of height
symmetry fill settings

Step 4

Add a Hue/Saturation adjustment layer and choose the following settings:

  • Hue: 0
  • Saturation: -57
  • Lightness: -62
adding a hue saturation adjustment layer

Step 5

Use the Ellipse Tool (U) set to Path and draw out a circle (800 x 800 px) centered in the middle of the canvas. Holding down the Shift key while drawing the circle keeps the shape as a perfect circle.

draw a circular path

Step 6

Add a new layer named girl circle and go to Edit > Fill again. Change the scripted fill to Place Along Path. Then, in the Place Along Path dialogue box, apply the following settings:

  • Pattern Scale to 0.45
  • Spacing to -720 pixels
  • Check the Adjust spacing to fit option
  • Distance from path to 360 pixels
  • Scale progression to 100%
  • Color and Brightness randomness both to 0
place along path settings

At this point, the image should look similar to this:

image with pattern along path added

3. Transform Shortcuts

To create the „blossom” effect, we will use a fun feature called Transform Again. This feature feels more like a happy accident than an intended feature. Regardless of why it’s in the program, it is certainly useful for quickly creating math-based patterns! 

Step 1

Hold down the Alt key and go to Edit > Transform (Control-T). This will generate a copy of the girl circle layer. In the Options Bar, set the Width and Height scale to be 80% and the rotation to be 20 degrees.

transform a copy of the girl circle

Step 2

Hold down the Alt-Shift-Control keys and press the T key. This is the Transform Again command that can be found in the Edit > Transform menu. It makes another copy of the layer and applies the previous transformation. Continue pressing the same key combination until there are three copies of the girl circle layer.

adding more copies of the girl circle

Step 3

Add a new layer named gradient at the top of the layer stack. Make sure the foreground color is set to black and grab the Gradient Tool (G). Use the Foreground to Transparent preset and Radial gradient shape. Then draw out a gradient starting at the center of the canvas.

adding a gradient

4. Finish With Some Line Art

The final stage is using the same techniques from before but on some simple lines and shapes to bring the entire effect together into something special.

Step 1

Use the Polygon Tool (U) and set the Sides to 5, Fill to null, Stroke Color to white, and stroke to 4 px. Then draw out a five-sided polygon at the center of the canvas.

create a five sided polygon

Step 2

Go to Layer > Rasterize Shape to turn the vector shape into pixels. Then hold down the Alt key while clicking on the visibility toggle icon (that’s the eyeball) for the Polygon layer. That will make this the only visible layer. Go to Edit > Define Pattern and name this pattern polygon.

turning the polygon into a pattern

Step 3

Alt-click on the visibility toggle icon for the polygon layer again to reveal all the other layers again. Add a new layer over the Hue/Saturation 1 layer and call it background lines.

adding a new layer

Step 4

Use Edit > Fill again and set the Custom Pattern to the polygon pattern you just created. Also set the Script to Symmetry Fill.

In the Symmetry Fill dialogue box, make the following settings:

  • Symmetry Type: 33 wallpaperP6M symmetry
  • Pattern Scale: 0.4
  • Pattern translation along width: 50% of width
  • Pattern translation along height: 50% of height
  • Color randomness: 0
  • Brightness randomness: 0
symmetry fill settings

Then reduce the layer’s Opacity to 25%.

lower the layer opacity

Step 5

Hide the Polygon layer and grab the Polygon Tool (U) again. Set the Sides to 3 and the Stroke to 4 px. Then draw out a triangle in the center of the canvas.

adding the triangle

Step 6

Hold the Alt key while going to Edit > Free Transform. This will create a new copy of the triangle layer to transform. Rotate the copy by around 20 degrees.

rotating a copy of the triangle

Step 7

Use the Transform Again key combination (Alt-Shift-Control-T) about 18 times to create a Spirograph type of effect at the center of the image.

adding the remaining triangles

Step 8

Select all of the triangle layers in the Layers panel by Shift-clicking the first one and the last one. Then group them all together with Layer > Group Layers (Control-G) and name the group Triangles.

grouping the triangle layers

Step 9

Go to Layer > Layer Mask > Hide All to add a layer mask to the group. Then set the foreground color to white and grab the Gradient Tool (G). Use the Foreground to Transparent preset and the Radial gradient shape. Draw out the gradient at the center of the canvas on the group’s mask to fade the triangle artwork into the human circle.

masking the triangles and then revealing them

Step 10

Use the Crop Tool (C) to crop the image just below the center to complete the effect.

You Are Done!

How did your fun kaleidoscope effect turn out? Share it with us in the comments below. Want to try your hand at some other effects inspired by music videos? Then check out some of the other entries in our Music Video Inspired Effects series.

finished project preview

Discover Beautiful Photoshop Effects

Whether you’re into manipulating photos or searching for that special text effect, I’ve taken the time to put together this short list of assets that will bring your Photoshop game to the next level.

Zombie Photoshop Action

Whether it’s Halloween or not, this professional Photoshop action can help you create some amazing-looking zombie effects in seconds, which you can use to turn yourself or your friends into some really spooky-looking creatures.

zombie photoshop action
Zombie Photoshop Action by Envato Elements

Dispersion Photoshop Action

Looking for a Photoshop action to add a dispersion effect to your photos? Well, look no further since this action will blow your mind by helping you create amazing-looking images in a matter of seconds.

dispersion photoshop action
Dispersion Photoshop Action by Envato Elements

Double Light Photoshop Action

Bring your Photoshop game to the next level by using this amazing double light action, which will add a range of emotions to any photo you use it on.

double light photoshop action
Double Light Photoshop Action by Envato Elements

Expand Your Creativity!

Learn more about creating mirror and reflection effects, here on Envato Tuts+:

Agregator najlepszych postów o designie, webdesignie, cssie i Internecie