Creating Custom WordPress Gutenberg Blocks Without JavaScript

Original Source: http://feedproxy.google.com/~r/1stwebdesigner/~3/bAoQRfYq_f0/

When the Gutenberg block editor was released as part of WordPress 5.0, it launched a new era of content creation. No longer would seemingly-simple tasks like creating multi-column layouts or adding embedded media require a page builder plugin or custom code.

Gutenberg breaks content down into “blocks”, or little sections that can be rearranged with ease. By default, WordPress comes with a nice selection of blocks. But it also allows developers to build their own custom blocks as well.

Custom Gutenberg blocks can be a game-changer for theme developers. Rather than relying on workarounds or rigid page templates, a custom block can place specialized content anywhere within a page. Elements such as testimonials, accordion menus and pricing tables are just a few examples of what can be achieved.

As great as custom Gutenberg blocks sound, there was some initial concern about the barrier to entry. Building blocks natively requires knowledge of React, which could leave out a lot of developers.

Thankfully, the WordPress developer community has stepped up with tools that get around the React/JavaScript requirement. They allow you to create your own custom blocks in a visual manner and implement them into your existing WordPress theme.

Today, we’ll introduce you to a few of these tools and show you how easy it is to get started.

UNLIMITED DOWNLOADS: 500,000+ WordPress & Design Assets

Sign up for Envato Elements and get unlimited downloads starting at only $16.50 per month!

DOWNLOAD NOW

Custom Gutenberg Blocks: Tools

A number of tools have hit the market that allow web designers to create custom Gutenberg blocks without JavaScript. Mind you, they still require at least some knowledge of code (HTML, CSS and PHP) – or at least how a WordPress theme works. That’s because each option requires you to create a PHP file of block code and optionally add some styling to match your website.

That said, each of the WordPress plugins below leverages custom fields in order to create content. Custom fields existed well before Gutenberg came along. In fact, it’s long been common practice to utilize them as a way to get around the limitations of the old Classic Editor.

The nice thing about this sort of configuration is that custom fields offer flexibility in the types of content you can create. Mix that in with the portability of a Gutenberg block and you have a powerful new tool.

Advanced Custom Fields PRO

Advanced Custom Fields has been around for years. It started out as a handy UI for building complex custom field sets and now boasts over 1 million active users of its free version.

The commercially-available PRO version of the plugin (pricing starts at $49 per year) has evolved to allow for custom Gutenberg block creation. The ACF Blocks feature lets developers create a field set and assign it to a custom block.

More than the other plugins in this category, you’ll need to know PHP to get the most out of ACF Pro. However, existing users of the plugin will find the process for block creation very familiar.

Advanced Custom Fields PRO

Lazy Blocks – Gutenberg Blocks Constructor

Lazy Blocks is a free WordPress plugin that offers a visual way to create custom blocks. Like ACF, the plugin includes a number of custom field types (referred to as “controls”) for your block. Text, image, file, Classic Editor, color picker and repeater fields are just some of what’s available. There’s also an API for creating your own custom controls.

Other handy features include the ability to restrict your blocks to specific posts types, import/export via JSON and custom templates.

Lazy Blocks

Block Lab

With Block Lab, custom block creation is a 3-step process. First is adding a block within the admin – which is similar to adding any other page or post. Next, add in the desired mix of custom fields (text, image, radio buttons/checkboxes, URLs, etc.) and configure settings like a custom icon. Third, create a block template for your theme and style it to your liking. From there, your custom block is ready for use.

The plugin is well-documented and even offers tutorials for creating specific block types.

Block Lab

A Simple Custom Block Using Block Lab

For simplicity’s sake, we’ll take a test drive using Block Lab. However, don’t let that stop you from trying out the other options as they have plenty to offer.

Now, on to our example. We’ll assume you have a WordPress website with the Block Lab plugin installed and activated.

In our project, we’ll create a simple notification block that we can use to display important information to visitors. It won’t be much, just a colored background and some text. But it will hopefully provide a glimpse into what’s possible with a custom Gutenberg block.

1. Navigate to Block Lab > Add New to create our new block.

2. We’ll start by adding a title (Notification Bar) and three fields:

Background Color – A Color field that will let us choose the background for our notification bar. We’ll assign it to display in the Inspector area of the block editor, which is in the right sidebar.
Text Color – Another Color field, this time for our text. This one will also display in the Inspector.
Message – A Text field that will display our custom message. This field will be housed in the main Editor area of Gutenberg.

A custom field in Block Lab.

Note the field names assigned to each block, as we’ll need those in just a bit.

We should also mention that the plugin allows us to choose a custom icon and categorize our block. This will help us find it when we want to add it to a page.

3. With our fields and settings in place, it’s time to click the Publish button to save our block. Doing so will trigger a notification message, telling us where to place our custom block template within our theme:

/wp-content/themes/YOURTHEME/blocks/block-notification-bar.php

A notification in Block Lab.

4. Next, we’ll need to create a block template. So, fire up the code editor of your choice and create a new file called block-notification-bar.php and save it into a new /blocks/ folder within your theme.

Block templates have to be written from scratch. But don’t worry, it’s not too difficult! Block Lab has documented how to do this, with plenty of examples.

In our case, we have just two block types: Color (background-color; text-color) and Text (message). Using the documentation as our guide, we’ll add this code to our custom block template:

Make sure to save the file and upload to your web server when done.

5. Our custom block has now been created! That’s really all there is to it. Now, we can add it to a page.

The Notification Bar block within Gutenberg.

Editing the Notification Bar block.

6. On the front end, we have a basic notification bar that’s sure to grab the user’s attention.

The Notification Bar block on the front end of a website.

Going Further

Even in this very simple use case, there is a real value in the notification bar we’ve created. It can be placed on any page or post within our website and can be customized each time.

If we wanted to expand upon what we’ve built, there are plenty of options. Adding things like icons, buttons and the ability to link to another page or post come to mind. These things are all possible within Block Lab, as well as the other plugins mentioned above. And, the use of CSS can greatly enhance the look as well.

Now that you’ve had a taste of the custom block creation process, it’s time to experiment! Install one of the plugins above and see how you can enhance your WordPress website.


Why Freelancers Are Saving The Internet

Original Source: https://www.hongkiat.com/blog/freelancers-saving-the-internet/

The freelancer is the job archetype for the new millennium. Much like artists were to the Renaissance and engineers to the mechanical revolution, the tech (and more recently, the mobile) revolution…

Visit hongkiat.com for full content.

This Week In Web Design – May 15, 2020

Original Source: http://feedproxy.google.com/~r/1stwebdesigner/~3/euds8IwgtPo/

It’s the middle of May, and it’s Friday, which on 1stWebDesigner.com means it’s time for “This Week In Web Design”, our roundup of web design and development articles that were published in the past week. This week’s articles include some UX tips, several timely remote working articles, a couple React tutorials, CSS tips and tricks, and more. So buckle up and dive in to this week’s articles!

All The Best Procreate Brushes
Unlimited Downloads: Hundreds of Procreate Brushes For Your Designs

Envato Elements - Procreate Brushes
DOWNLOAD NOW

 

3 Tips to Master a Minimalist Web Design

Choosing a minimalistic approach for your company’s web design? Feature only the most essential elements by focusing on these three areas.

20 Unmissable Websites, May 2020

Some exciting portfolio sites, a strong selection of health and beauty sites, and some fabulous new takes on technology.

Resources to help remote designers

Adapting to a new world of working remotely or from home.

Tips for Being Productive While Working from Home

In today’s post we’ll share some tips to help you get the most out of that new home office.

Setting TypeScript For Modern React Projects Using Webpack And Babel

Learn how to efficiently set up TypeScript in a React Project as we build a Money Heist Episode Picker App.

Modern CSS Solutions for Old CSS Problems

A series by Stephanie Eckles.

Turning a Fixed-Size Object into a Responsive Element

Modifying a CSS library from fixed to responsive elements.

Fresh Resources for Web Designers and Developers (May 2020)

In this list, you will find references for code samples and recipes, one-liner codes, and articles that will teach you new tricks to improve your coding skills.

Run More Effective Remote Usability Tests with These 5 Tips

Remote usability tests require more preparation and planning, especially in setting up the tools you use.

Branding Is Storytelling

Your story creates your bond with customers and clients.

CSS3 and jQuery Loading Animations, Examples and Plugins
12 Amazing Bootstrap Forms

Latest Collection of free Bootstrap Forms Code Examples.

How to Prototype a Web App with Django and Vue.js

Prototype a custom web application that’s responsive (mobile-ready), reactive (light-speed fast), with a full-featured admin interface to manage the content.

How to Run a Web Design Business in the COVID-19 Pandemic

Here’s how we’ve managed to stay competitive and ensure business continuity during a global pandemic.

How to Create a Resume CV Website Template in Adobe XD

Learn how to create a resume web page design using a resume website template and how to easily animate parts of its elements.

Are you getting honest feedback for your Design?

Is there a trusted tool or method available to verify the feedback that you have received?

8 ways your design system can fail (and how to avoid them)

Even with the best-laid plans, sometimes changes in company direction or product features mean that your design system fails.

Angular vs. React: Which Is a Better Choice in 2020?

To build an app, developers use various frameworks. Two deserve a special consideration, effectively narrowing the choice to the alternative between Angular or React.

16 Pitch Deck Templates You Need to See

Check out our collection of functional and attractive pitch deck templates for use in your business projects.

How To Convince Others Not To Use Dark Patterns

Arguing that dark patterns are unethical is not enough on its own.

How To Say No to Clients and Create Clear Boundaries

Everything that I’m about to tell you about saying no to clients and creating boundaries, I learnt the hard way.

5 Tips for Working with Clients When You’re at Home

There needs to be a clear separation between work and home when working with remote clients.

How to Use Emotional Imagery to Boost Landing Page Conversions

Investigate the all-too-human reasons why emotional images and videos can be so effective in boosting conversions and how to do it right.

10 Challenges UX Designers Face & How To Overcome Them

Dive into several challenges that a UX designer will likely face during their career, and ways to overcome each one.

How to Make a Simple CMS With Cloudflare, GitHub Actions and Metalsmith

Let’s build ourselves a CMS. But rather than build out a UI, we’re going to get that UI for free in the form of GitHub itself!

101 Cognitive Biases & Principles That Affect Your UX

To improve your user experience, you need to understand the biases & heuristics affecting 4 decision-cycle steps.

How to Choose Hardware for Your Design Business

The tools we use can go a long way towards determining whether we produce a quality end product.

UI Interactions & Animations Roundup #6

A hand-picked collection of superb UI inspiration from the past weeks.

Human-Centered Design in Real Time

Co-designing emergency response solutions with COVID-19 frontline workers.

Using UX testing to dramatically improve your A/B testing results

We are used to thinking of A/B split testing as a way to improve UX and increase conversions. But it’s actually a two-way road.

How to Format a UX Case Study

Hopefully, you’ll be inspired to start your own case study by the end of the article or add a couple of things you missed in your next one.


6+ Best Websites for Free Fonts in 2020

Original Source: https://www.sitepoint.com/free-fonts/?utm_source=rss

6+ Best Websites for Free Fonts in 2020

I firmly believe that, in order to strike the optimal balance between minimalism and visual appeal, a user interface should display no more than what’s absolutely necessary while making those necessary elements look visually appealing.

Keep it simple, but make the simple look amazing.

But, what does simple look like exactly?

Well, strip away all of the over-the-top marketing gimmicks, redundant features, and cluttering visuals, and most of what’s left is the UI copy and text content. As boring as this sounds, let’s be honest: this is the most important aspect of any app or website. Information and the ability to navigate it is the entire reason users are using our app or website.

So with the right typeface coupled with the right font styles (see “Font vs typeface: the ultimate guide”), we can create designs that are quite simple and yet visually appealing at the same time. This emphasizes the most important aspects of the design while using fewer resources and also inducing the least amount of unwanted cognitive load.

Typography can be very powerful.

But what are the best free font websites?

Where not to look for free fonts

Dribbble, Behance, Gumroad, and so on are home to a ton of hidden gems, but this involves sieving through a lot of digital resources, some of which are incomplete side ventures and “lite” versions. That being said, make sure that you bookmark awesome resources if you do happen to come across any. Even Instagram might surprise you, and Twitter shouldn’t be overlooked either.

That aside, let’s take a look as the best free font websites.

1. Google Fonts

Number one on this “best free fonts” list is obviously Google Fonts, which goes above and beyond what most free font websites offer. First of all, Google Fonts offers a fast and convenient CDN (content delivery network), making it super easy to embed webfonts into websites without having to actually host them.

Google fonts can be subsetted by script and weight, and we can also control how they’re loaded on the Web by setting the font-display CSS property from the embed code’s query string, which improves website loading times. (The CSS-Tricks article on “Google Fonts and font-display” explains how.)

Mind you, self-hosting fonts is better for privacy (because it’s cookieless) and speed (because it offers developers more control). Either way, Google Fonts has a humungous repertoire.

A screenshot of some Google fonts

2. Creative Market

I know what you’re thinking: “Creative Market isn’t free, Daniel!”

Ahhh, but what about the Free Goods section? What’s interesting about Free Goods is that these are actually premium fonts that are temporarily free. While the section isn’t that huge, and isn’t guaranteed to include fonts specifically, each and every week it’s refreshed with six new design assets (plus three more if you sign up and another three if you spend X amount on assets).

I’ve been checking the Free Goods section on Creative Market every week for years, and I’ve built up a large repository of high-quality fonts that cost literally nothing. Font Bundles runs a similar deal.

The Free Goods section of the Creative Market website

Continue reading
6+ Best Websites for Free Fonts in 2020
on SitePoint.

Tips To Improve Your E-Commerce Website Design

Original Source: http://feedproxy.google.com/~r/Designrfix/~3/h63YsixEjlA/tips-to-improve-your-e-commerce-website-design

Is your e-commerce web design no more interesting? Is it not earning revenues as earlier?  What does it indicate?  The time has come to improve your e-commerce website design. You need to consider what to include in your e-commerce website design so that your business stands out from the crowd.  It is a big concern […]

The post Tips To Improve Your E-Commerce Website Design appeared first on designrfix.com.

How to Prototype a Web App with Django and Vue.js

Original Source: https://www.sitepoint.com/web-app-prototype-django-vue/?utm_source=rss

Prototyping a Web App with Django and Vue.js

Wouldn’t it be cool if you could prototype a custom web application that’s responsive (mobile-ready), reactive (light-speed fast), with a full-featured admin interface to manage the content — all in no time? Actually, using Django and Vue.js, you can! ?

0. Introduction: Full Stack Development 101

I’ll cover how to prototype a custom web app, and to keep it as short and sweet as possible, the context information here will be rather brief. However, I will provide — hopefully — enough resources so that you know where to go should you need more information.

To this end I’ll fully mash up data management, presentation, and routing between Django and Vue.js — so get ready!

About Django

You may know of Django, the Python-based web framework for perfectionists with deadlines that’s ridiculously fast, reassuringly secure, and exceedingly scalable. But if you don’t know much about it, this article will serve as an extremely fast hands-on introduction.

About Vue.js

Same deal with Vue.js, the progressive JavaScript framework that’s approachable, versatile, and performant. If you aren’t familiar with it, here you’ll get a quick-and-dirty introduction.

I’ll also cover two official Vue.js libraries:

Vue Router for route/view mapping
Vuex for state management

Python + JavaScript = WIN!

For this article, we’ll set a publishing project with a basic database schema to save authors and articles, and a minimal user interface (UI) to interact with them.

Hopefully, this will serve as a toy program to understand how to integrate Django using Python code on the back end with a JavaScript framework on the front end, that you can adapt later to your own needs.

1. Setting Up a Django Project

Very quickly, we’ll set up a project from scratch. If you already know how to handle Django projects, you can skip this section. We’ll assume you already have Python installed.

For a more in-depth guide, see How to install Django on the Django documentation site.

Python Virtual Environment

Let’s open a console and create a virtual environment (see Virtual Environments and Packages for more info):

$ virtualenv myenvironment

Using base prefix ‘c:\users\luzdealba\appdata\local\programs\python\python37’
New python executable in C:UsersluzdealbaDevelopmentmyenvironmentScriptspython.exe
Installing setuptools, pip, wheel …
done

Don’t mind the paths, as these will change from system to system.

Let’s access and activate the virtual environment.

On Windows:

$ cd myenvironment
$ Scriptsactivate

On macOS and Linux:

$ cd myenvironment
$ source bin/activate

Django Package

Let’s install Django:

(myenvironment) $ pip install django

Collecting django
Downloading Django-3.0.3-py3-none-any.whl (7.5 MB)
Collecting sqlparse>=0.2.2
Downloading sqlparse-0.3.1-py2.py3-none-any.whl (40 kB)
Collecting pytz
Using cached pytz-2019.3-py2.py3-none-any.whl (509 kB)
Collecting asgiref~=3.2
Downloading asgiref-3.2.3-py2.py3-none-any.whl (18 kB)
Installing collected packages: sqlparse, pytz, asgiref, django
Successfully installed asgiref-3.2.3 django-3.0.3 pytz-2019.3 sqlparse-0.3.1

One more time, don’t mind about program versions and file sizes as these will vary.

The Project

Let’s start a project called myproject:

(myenvironment) $ django-admin startproject myproject

Let’s access the project:

(myenvironment) $ cd myproject

The App

Start an app called myapp:

(myenvironment) $ django-admin startapp myapp

And add myapp.apps.MyappConfig to the INSTALLED_APPS constant list in myproject/settings.py to enable the app.

2. Setting Up the Database with Django

Here we’ll define the back-end database with Django, which we’ll later integrate with a front-end storage with Vuex.

Django Models

Models are Django’s way to implement an object-relational database management system (ORDBMS). In other words, plain text files where you can define database tables and fields, and from where these will propagate to the application layer and the DB engine.

Let’s code the following models for our app in myapp/models.py:

from django.db import models

class Article(models.Model):
“””Table schema to store articles.”””
name = models.CharField(max_length=64)
author = models.ForeignKey(‘myapp.Author’, on_delete=models.CASCADE)
content = models.TextField()
slug = models.CharField(default=”, max_length=64)

def __str__(self):
return ‘%s’ % self.name

class Author(models.Model):
“””Table schema to store auhtors.”””
name = models.CharField(max_length=64)
slug = models.CharField(default=”, max_length=64)

def __str__(self):
return ‘%s’ % self.name

Notice that we implemented a URL slug for both articles and authors.

For more information, see Model API reference on the Django documentation site.

Django Admin

Before we can manage these models through the admin site, we’ll first need to register them so that Django makes them available to us.

Let’s simply edit myapp/admin.py so that it looks like this:

from django.contrib import admin

from .models import Article
from .models import Author

# register models to use in admin site
admin.site.register(Article)
admin.site.register(Author)

Read more about the Django admin site on the Django documentation site.

Django Migrations

From the Django’s Migrations documentation:

Migrations are Django’s way of propagating changes you make to your models (adding a field, deleting a model, etc.) into your database schema.

In short: migrations do everything; no SQL commands required.

First, let’s create the migration files:

(myenvironment) $ python manage.py makemigrations

Migrations for ‘myapp’:
myappmigrations001_initial.py
– Create model Author
– Create model Article

Now let’s use that information to update the database:

(myenvironment) $ python manage.py migrate

Operations to perform:
Apply all migrations: admin, auth, contenttypes, myapp, sessions
Running migrations:
Applying contenttypes.0001_initial… OK
Applying auth.0001_initial… OK
Applying admin.0001_initial… OK
Applying admin.0002_logentry_remove_auto_add… OK
Applying admin.0003_logentry_add_action_flag_choices… OK
Applying contenttypes.0002_remove_content_type_name… OK
Applying auth.0002_alter_permission_name_max_length… OK
Applying auth.0003_alter_user_email_max_length… OK
Applying auth.0004_alter_user_username_opts… OK
Applying auth.0005_alter_user_last_login_null… OK
Applying auth.0006_require_contenttypes_0002… OK
Applying auth.0007_alter_validators_add_error_messages… OK
Applying auth.0008_alter_user_username_max_length… OK
Applying auth.0009_alter_user_last_name_max_length… OK
Applying auth.0010_alter_group_name_max_length… OK
Applying auth.0011_update_proxy_permissions… OK
Applying myapp.0001_initial… OK
Applying sessions.0001_initial… OK

Don’t mind the long list. That’s because that was our first migration, so not only our Author and Article tables were created, but also all of Django’s default schemas.

For more info, see Migration operations in the Django documentation site.

3. A Basic Interface with Vue Components in a Django Template

Here’s one of the most interesting parts of the mashup, as we’ll mix closely related tools from different technologies.

Django View

Django goes by the model–view–controller (MVC) software design pattern, which divides the related program logic into three interconnected elements.

We’ll code the following view in myapp/views.py:

Continue reading
How to Prototype a Web App with Django and Vue.js
on SitePoint.

Building and Hiring an Awesome Team

Original Source: https://www.hongkiat.com/blog/hiring-awesome-team/

At some point in your design career, you’ll likely be placed in charge of other people. These might include writers, marketers, programmers, engineers, and other corporate employees. This can…

Visit hongkiat.com for full content.

Apple sale: 13-inch MacBook Pro gets HUGE $300 price cut

Original Source: http://feedproxy.google.com/~r/CreativeBloq/~3/_uUVs4PgW3c/apple-sale-may-2020

What with Apple's new 13-inch MacBook Pro 2020 released earlier this month, we're now seeing some great deals on last year's version of the awesome laptop. The best deal right now is from B&H Photo, where it has the 256GB 13-inch MacBook Pro reduced to $1,199 – an impressive $300 off.

A slightly lower priced deal is on 2019's 128GB model of the 13-inch MacBook Pro on sale for $1,149. That's an impressive $150 saving, and currently the lowest price around. 

The MacBook Pro is one of the most powerful laptops, something that makes it a favourite for creatives. It's 13.3-inch Retina display allows you to see and show off design work in all its glory, and the 8th Gen Intel Core processor can handle even the most complex of creative tasks. 

Over at B&H Photo there are also some great discounts on iPads. The best deal sees a late 2018 11-inch iPad Pro on sale for just $799 (a $150 saving). These deals are only on until stocks lasts, so don't delay. Also, if you love a good deal, be sure to bookmark our Amazon Prime Day 2020 hub, where we hope to see even more great Apple offers. 

Browse MacBooks and iPads at Apple.com
MacBook deals:
iPad deal:

Outside the US? Here are the best offers on these and similar devices in your area:


Passive Income Methods for Designers

Original Source: http://feedproxy.google.com/~r/Designrfix/~3/vcznuGc6ZAg/passive-income-methods-for-designers

Image source: Pixabay.com If you are a designer who is looking to increase his or her revenue, finding extra work or creating a project of your own should not be that big of a problem. It all comes down to your experience and willingness to learn new things, but you already have a big advantage […]

The post Passive Income Methods for Designers appeared first on designrfix.com.

Folding iPhone concept is jaw-droppingly good

Original Source: http://feedproxy.google.com/~r/CreativeBloq/~3/nAqhbJibgSE/foldable-iphone-flip

An avalanche of iPhone 12 leaks has got everyone talking this week, and the specs for the new models are pretty exciting, to say the least. But one noticeable omission from Apple's proposed plans is the intention to follow in the footsteps of its rivals and release a foldable phone. 

YouTube account iOS beta news wondered what that might look like, and created a sleek concept video to give us an idea of a foldable iPhone 12 design. Enter, the iPhone Flip. The concept applies the leaked iPhone 12 design specs (including that super-charged new camera that will definitely make this phone one of the best camera phones) to the real-life Samsung Galaxy Z flip or the rebooted Motorola Razr. Check out the video below.

iOS beta news' video shows the handset closing into a tidy little square, with the hinge sitting on the horizontal, just like the Samsung Galaxy Z. But unlike the Z, there is no crease present on the screen. We're not quite sure how that would work, to be honest, but we're happy to glide over it in much the same way the video glides over showing us the screen in a half-folded state.

A new camera is on the back of the handset, with a pin-hole mounted lens rather than the usual notch, and below it (or on the front when the phone is folded) is a secondary screen – for notifications, the time and so forth. This means you wouldn't have to flip open your iPhone to find out if you had a new message, for example.

iPhone Flip and Samsung Z

The concept iPhone Flip (left) next to the Samsung Galaxy Z (right)

Samsung, Motorola and Nokia are a few of the brands that have already brought the flip phone out of the vault. In fact, YouTube user SkullCandy091 points out that Apple is often somewhat late to the party with certain new features, and "it'll take three years before they catch up and make a folding phone. The same thing happened with Face ID and swipe keyboard."

But are foldable smartphones here to stay? Some commenters on the video seem to think they're a novelty that don't stand up to current user needs, which may be why Apple hasn't leapt at the idea. It is true that they aren't all that convenient – now that we perform most of our daily tasks on our phones, do we really want to be opening and closing them all the time? 

And, although the best flip phones certainly have their uses, and do have good capability – especially as a second phone – they come with some inherent design flaws (namely, fragile hinges) that mean the handsets can't yet house all the high-tech features users want from their phones nowadays. Perhaps Apple is waiting for the technology to create something as truly special as this concept model, or maybe it predicts the new rise of the flip phone will swiftly, well, flip away.

Read more:

Is this skateboard with Apple's Mac Pro wheels as ridiculous as it sounds?The best Apple Watch apps in 2020The 14 best iPad apps for designers