How to Build Security for Your SaaS User Communications

Modern SaaS application providers handle sensitive user information every day, from customer names and email addresses to application code and third-party API secrets. It is thus more important than ever for web applications to adhere to the highest security standards, not only to maintain their business reputation and avoid financial losses but also to protect their users.

Customer communications is one of the components of SaaS security that is often overlooked. In this article, we cover why you should look closely at how secure your customer communications are and implement strict security measures for emails, push notifications, and other communications you send to your users. We also offer some recommendations to get you started on this security journey.

Exploring Deferred and Promise in JQuery

The jQuery Deferred object was introduced as a part of the 1.5 release of the framework. The Deferred object in jQuery is based upon the concept of Promises. To understand all about Deferred objects, it would be wise to try to understand what a Promise is all about.

Many times in our daily lives, we cannot rely on the outcomes of certain actions. However, we may still need to make decisions about the future depending on an anticipated outcome. All we know for sure is that we are going to get an outcome. Let’s just say that we wrap the term “outcome” in a fancy-looking gift wrapper and call it a “Promise.”

Conversios.io Review

In the analytical business world, we all operate nowadays there’s never been a greater emphasis on data gathering and processing, especially for webshops. You’ll want to get data from the moment a visitor and potential...

The post Conversios.io Review appeared first on 85ideas.com.

4 Careers for People with Coding Backgrounds

This article was written exclusively for Dev Interrupted by Lewis Dowling

Learning to code doesn’t mean you have to become a programmer. Coding is one of those professions with a lot of transferable skills: logic, clear thinking, problem solving, and attention to detail, to name just a few. So learning a programming language can open up a whole range of opportunities, even if you decide to veer away from becoming a developer.

Getting Started Building on the NEAR Network with Infura

Web3 and smart contracts are growing in popularity. In fact, a recent analysis of public code repositories has shown that over 18,000 developers are regularly contributing to open source crypto and Web3 projects on a monthly basis. Some of the keys to this growth are blockchains like NEAR and developer platforms like Infura.

This article will look at the NEAR blockchain, its benefits, and how to build on NEAR using Infura. Then we’ll use the NEAR Rust SDK to mint in three steps and then interact using Infura. You’ll need a NEAR account, an Infura account, and some Rust skills and tools to get up and running quickly.

Biometric Authentication: Best Practices

Today, the usage of biometric authentication in a corporate environment is discussed quite often. However, at the same time, it is still can be considered new since it is just starting to really gain momentum. As a result, those organizations that are going to explore and use such an authentication system face many incomprehensible nuances, to which various myths are added.

First, let us define the terms and also discuss the advantages and disadvantages of biometric authentication in a corporate environment. 

How To Check for JSON Insecure Deserialization (JID) Attacks With Java

A consistent inclusion in the OWASP top 10, insecure deserialization is a subtle but dangerous application security threat.  This aptly named attack exploits data serialization, the "bread and butter" data transformation process that takes place when an object is passed from one web application to another.  Under normal circumstances, when a new object is sent to an application, the object is first converted (serialized) into either a structured or binary format before passing through a network as a sequential stream of bytes.  On the application’s end, the serialized file is turned back into an object (deserialized) before being interpreted by the application. Most commonly, that data is serialized using CSV, XML, or JSON format.  No matter which format is used, properly securing this deserialization process is a critical piece of the design "puzzle" for any individual developer or business to solve. 

The purpose of this article is to highlight the dangers of insecure deserialization attacks and demonstrate a cloud-based security API solution that can be deployed to help mitigate this threat specifically for JSON deserialization.  This demonstration includes step-by-step instructions to structure your API call with Java using code examples provided further down the page.

Microsoft Outlines New ML.NET Text Classification API

InfoWorld’s Paul Krill is reporting that Microsoft has released a preview version of the company’s new ML.NET Text Classification API, a product that will simplify the process of training new text classification models. This new API leverages Microsofts open-source machine learning library which shares the same name. 

Krill outlined this new APIs value in stating that:

Single Element Loaders: The Dots

We’re looking at loaders in this series. More than that, we’re breaking down some common loader patterns and how to re-create them with nothing more than a single div. So far, we’ve picked apart the classic spinning loader. Now, let’s look at another one you’re likely well aware of: the dots.

Dot loaders are all over the place. They’re neat because they usually consist of three dots that sort of look like a text ellipsis (…) that dances around.

Article series

  • Single Element Loaders: The Spinner
  • Single Element Loaders: The Dots — you are here
  • Single Element Loaders: The Bars — coming June 24
  • Single Element Loaders: Going 3D — coming July 1

Our goal here is to make this same thing out of a single div element. In other words, there is no one div per dot or individual animations for each dot.

That example of a loader up above is made with a single div element, a few CSS declarations, and no pseudo-elements. I am combining two techniques using CSS background and mask. And when we’re done, we’ll see how animating a background gradient helps create the illusion of each dot changing colors as they move up and down in succession.

The background animation

Let’s start with the background animation:

.loader {
  width: 180px; /* this controls the size */
  aspect-ratio: 8/5; /* maintain the scale */
  background: 
    conic-gradient(red   50%, blue   0) no-repeat, /* top colors */
    conic-gradient(green 50%, purple 0) no-repeat; /* bottom colors */
  background-size: 200% 50%; 
  animation: back 4s infinite linear; /* applies the animation */
}

/* define the animation */
@keyframes back {
  0%,                       /* X   Y , X     Y */
  100% { background-position: 0%   0%, 0%   100%; }
  25%  { background-position: 100% 0%, 0%   100%; }
  50%  { background-position: 100% 0%, 100% 100%; }
  75%  { background-position: 0%   0%, 100% 100%; }
}

I hope this looks pretty straightforward. What we’ve got is a 180px-wide .loader element that shows two conic gradients sporting hard color stops between two colors each — the first gradient is red and blue along the top half of the .loader, and the second gradient is green and purple along the bottom half.

The way the loader’s background is sized (200% wide), we only see one of those colors in each half at a time. Then we have this little animation that pushes the position of those background gradients left, right, and back again forever and ever.

When dealing with background properties — especially background-position — I always refer to my Stack Overflow answer where I am giving a detailed explanation on how all this works. If you are uncomfortable with CSS background trickery, I highly recommend reading that answer to help with what comes next.

In the animation, notice that the first layer is Y=0% (placed at the top) while X is changes from 0% to 100%. For the second layer, we have the same for X but Y=100% (placed at the bottom).

Why using a conic-gradient() instead of linear-gradient()?

Good question! Intuitively, we should use a linear gradient to create a two-color gradients like this:

linear-gradient(90deg, red 50%, blue 0)

But we can also reach for the same using a conic-gradient() — and with less of code. We reduce the code and also learn a new trick in the process!

Sliding the colors left and right is a nice way to make it look like we’re changing colors, but it might be better if we instantly change colors instead — that way, there’s no chance of a loader dot flashing two colors at the same time. To do this, let’s change the animation‘s timing function from linear to steps(1)

The loader dots

If you followed along with the first article in this series, I bet you know what comes next: CSS masks! What makes masks so great is that they let us sort of “cut out” parts of a background in the shape of another element. So, in this case, we want to make a few dots, show the background gradients through the dots, and cut out any parts of the background that are not part of a dot.

We are going to use radial-gradient() for this:

.loader {
  width: 180px;
  aspect-ratio: 8/5;
  mask:
    radial-gradient(#000 68%, #0000 71%) no-repeat,
    radial-gradient(#000 68%, #0000 71%) no-repeat,
    radial-gradient(#000 68%, #0000 71%) no-repeat;
  mask-size: 25% 40%; /* the size of our dots */
}

There’s some duplicated code in there, so let’s make a CSS variable to slim things down:

.loader {
  width: 180px;
  aspect-ratio: 8/5;
  --_g: radial-gradient(#000 68%, #0000 71%) no-repeat;
  mask: var(--_g),var(--_g),var(--_g);
  mask-size: 25% 40%;
}

Cool cool. But now we need a new animation that helps move the dots up and down between the animated gradients.

.loader {
  /* same as before */
  animation: load 2s infinite;
}

@keyframes load {      /* X  Y,     X   Y,    X   Y */
  0%     { mask-position: 0% 0%  , 50% 0%  , 100% 0%; } /* all of them at the top */
  16.67% { mask-position: 0% 100%, 50% 0%  , 100% 0%; }
  33.33% { mask-position: 0% 100%, 50% 100%, 100% 0%; }
  50%    { mask-position: 0% 100%, 50% 100%, 100% 100%; } /* all of them at the bottom */
  66.67% { mask-position: 0% 0%  , 50% 100%, 100% 100%; }
  83.33% { mask-position: 0% 0%  , 50% 0%  , 100% 100%; }
  100%   { mask-position: 0% 0%  , 50% 0%  , 100% 0%; } /* all of them at the top */
}

Yes, that’s a total of three radial gradients in there, all with the same configuration and the same size — the animation will update the position of each one. Note that the X coordinate of each dot is fixed. The mask-position is defined such that the first dot is at the left (0%), the second one at the center (50%), and the third one at the right (100%). We only update the Y coordinate from 0% to 100% to make the dots dance.

Dot loader dots with labels showing their changing positions.

Here’s what we get:

Now, combine this with our gradient animation and magic starts to happen:

Dot loader variations

The CSS variable we made in the last example makes it all that much easier to swap in new colors and create more variations of the same loader. For example, different colors and sizes:

What about another movement for our dots?

Here, all I did was update the animation to consider different positions, and we get another loader with the same code structure!

The animation technique I used for the mask layers can also be used with background layers to create a lot of different loaders with a single color. I wrote a detailed article about this. You will see that from the same code structure we can create different variations by simply changing a few values. I am sharing a few examples at the end of the article.

Why not a loader with one dot?

This one should be fairly easy to grok as I am using the same technique but with a more simple logic:

Here is another example of loader where I am also animating radial-gradient combined with CSS filters and mix-blend-mode to create a blobby effect:

If you check the code, you will see that all I am really doing there is animating the background-position, exactly like we did with the previous loader, but adding a dash of background-size to make it look like the blob gets bigger as it absorbs dots.

If you want to understand the magic behind that blob effect, you can refer to these interactive slides (Chrome only) by Ana Tudor because she covers the topic so well!

Here is another dot loader idea, this time using a different technique:

This one is only 10 CSS declarations and a keyframe. The main element and its two pseudo-elements have the same background configuration with one radial gradient. Each one creates one dot, for a total of three. The animation moves the gradient from top to bottom by using different delays for each dot..

Oh, and take note how this demo uses CSS Grid. This allows us to leverage the grid’s default stretch alignment so that both pseudo-elements cover the whole area of their parent. No need for sizing! Push the around a little with translate() and we’re all set.

More examples!

Just to drive the point home, I want to leave you with a bunch of additional examples that are really variations of what we’ve looked at. As you view the demos, you’ll see that the approaches we’ve covered here are super flexible and open up tons of design possibilities.

Next up…

OK, so we covered dot loaders in this article and spinners in the last one. In the next article of this four-part series, we’ll turn our attention to another common type of loader: the bars. We’ll take a lot of what we learned so far and see how we can extend them to create yet another single element loader with as little code and as much flexibility as possible.

Article series

  • Single Element Loaders: The Spinner
  • Single Element Loaders: The Dots — you are here
  • Single Element Loaders: The Bars — coming June 24
  • Single Element Loaders: Going 3D — coming July 1

Single Element Loaders: The Dots originally published on CSS-Tricks. You should get the newsletter.

7 Best Call Center Software For 2022 (Expert Pick)

Are you looking for call center software for your business?

Many customers like to reach out to businesses by phone to get information or help. Having a call center service for your business can streamline your customer support and provide a better user experience.

In this article, we’ll share the top call center software so that you can select the best option for your business.

Best call center software expert pick

How to Find the Best Call Center Software

Offering customer support through phone calls is a great way of helping your users. However, it can be hard for small businesses that are quickly growing to handle a large volume of phone calls.

With the help of a call center software, you can respond to multiple phone calls at once, answer customers questions more quickly, help your sales team reach a larger audience, improve the overall support process, and increase customer satisfaction.

There are a few features you should look for when selecting a call center software for your business, such as:

  • Interactive Voice Responses (IRV) – You should choose a software solution that offers automated responses through IRVs, greets a customer when they call, and helps to direct them to the right department.
  • Cloud Contact Center – A cloud-based call center allows your remote team to attend to customers from anywhere in the world without having to be on-premises.
  • Multichannel Support – Also called omnichannel routing, this lets your support staff respond to customers from social, live chat, email, phone calls, and other channels, all using the same software.
  • Call Routing & Voicemail Option – You should look for software that allows voicemail and call routing features, so customers can share their queries even when the call center agents aren’t available.
  • CRM Integrations – By integrating customer relationship management (CRM) software, you can make the best use of your customer information and get a complete picture of how often they call, their support tickets, and more. Some tools also offer CTI (computer telephony integration) to identify customers through phone numbers.
  • Reporting and Analytics Tools – Your call center software should provide additional reporting and analytics tools to see how well your customer support is performing.
  • Call Recording – You can perform quality management checks and training by listening to recent call recordings.

That said, let’s take a look at some of the best call center software you can choose for your business.

1. Nextiva

Nextiva

Nextiva is the best virtual business phone number service in the market. It’s the perfect solution for remote teams, since Nextiva is completely cloud-based.

Your support agents can simply log in to the Nextiva desktop or mobile app to handle all incoming calls. Plus, it includes complete help desk software as well. It lets you talk with customers across multiple communication channels, be it phone, voice, SMS, live chat, video, or social media.

With the Nextiva contact center solution, you also get screen popups that can be tailored according to your brand. There’s also a speech-enabled IVR feature that helps customers when they contact you.

You can take IVR a step further and automate routine tasks. This way, you can reduce the cost of hiring more agents and efficiently handle high call volumes. It also allows support agents to focus on attending important calls while IVR solves repetitive problems.

Besides that, Nextiva offers affordable cell phone plans and more features like a toll-free number, voicemail to email option, call recording, HD video conferencing, auto-attendant, and more.

You can also easily integrate it with different CRMs and communication tools like Salesforce, Oracle Sales Cloud, Microsoft, and more. It even offers APIs and SDKs for specific uses and allows you to set up workflow automation.

Note: At WPBeginner, we use Nextiva for all our business phone needs because the software offers robust features and affordable pricing plans. As a small business, it helps our team attend to incoming customer calls from anywhere in the world without having to share their personal cell phone numbers.

Besides that, Nextiva also allows us to send text messages and connect with customers through its video conferencing features.

Expert Review: In our experience, Nextiva helps provide exceptional customer experience and offers a complete cloud-based business phone service, which makes it the best call center software.

2. RingCentral

RingCentral

RingCentral is a popular business VoIP service provider and lets you set up a cloud call center solution for your business. You can quickly provide customer support from anywhere in the world and at any time.

It offers an omnichannel solution where you can define rules to route calls based on capacity, availability, and more. This way, you can speed up your customer support and easily have customer interactions on multiple channels at once.

With RingCentral, you can also boost your support agent’s productivity. The software offers gamification options that can be used to provide incentives to agents. Besides that, it’s a complete workforce management software that makes it super easy to handle your team’s schedule and plan inbound calls based on traffic volumes.

Another advantage of using RingCentral is that it provides detailed analytics about your customer support performance. You can monitor key performance indicators (KPIs) in real-time, track agent performance, set up call monitoring, self-service resources, and more.

Plus, there are data visualization and root cause analysis tools that help you build custom stats dashboards for reporting. Other than that, you get an automated IVR system, seamless integrations, a predictive dialer, and more with RingCentral.

Expert Review: RingCentral offers tailored solutions based on your audience or industry. Whether you’re in the financial, healthcare, education, government, or have an eCommerce store, RingCentral is a great call center software to have.

3. Ooma

Ooma

Ooma is an all-in-one virtual phone solution for businesses of all sizes. Whether you have a startup, small business, or running an enterprise, Ooma offers lots of features to keep your remote teams and customers connected.

Ooma makes it very easy for you to set up a cloud call center and provide exceptional customer support. It provides intelligent call routing functionality and lowers long call queues by helping customers find the right agent without going through repetitive or redundant steps.

You can also create customized call flows for your support team. The service offers a drag and drop call flow designer that helps you build a call sequence in a few minutes.

Other than that, Ooma also offers features like multi-level IVR and automatic call distribution based on caller data, business hours, and agent skills. You can even match callers to the right agent with intelligent reconnect, where the customer is automatically connected with the person they were speaking to before the call dropped.

Ooma also lets you monitor your customer support performance. However, it doesn’t match the 45 different reporting features and reports that Nextiva has to offer for measuring your VoIP call center efficiency.

Expert Review: Ooma is a great solution for small to medium-sized businesses looking to add a call center solution.

4. FreshDesk

FreshDesk

FreshDesk is a famous software that offers a complete contact center solution for businesses. Over 50,000 companies use FreshDesk to provide customer support.

FreshDesk Contact Center software, previously known as Freshcaller, is easy to use and helps you set up the software in just a few clicks. It also offers many features like setting up automated voice responses using artificial intelligence.

With FreshDesk, there’s an option to create a global contact center. You can use bring your own phone (BYOC) or purchase phone numbers from over 90 countries. Plus, it offers affordable pricing plans that you can scale as your business grows.

Other than that, it’s a complete omnichannel solution for your customer support. You can convert a call to a ticket and offer support to users from multiple channels in a single place while lowering wait time.

More features offered by FreshDesk include call recordings, call transcripts, call lifecycle information, voice bots, speech-enabled IVR, reporting tools to monitor agent performance and improve customer support, and more.

Expert Review: FreshDesk is a beginner-friendly call center solution. However, if you’re looking for more powerful features, then we recommend checking out Nextiva.

5. LiveAgent

LiveAgent

LiveAgent is the next call center software on our list, and it offers a lot of features like other services we’ve covered. However, what makes this service different is that you get a 14-day free trial to try the software before committing to a premium plan.

With LiveAgent, you get a cloud-based call center solution. The VoIP phone system helps your support agents to connect with customers from anywhere.

Plus, you get features like IVR, call back requests, call transfers, unlimited call recording, smart call routing, video conference calling functionality, in-app push notifications, chatbot, and automatic call distribution (ACD).

The software also integrates with popular CRMs like Salesforce and HubSpot. It also works seamlessly with email marketing tools like AWeber and Mailchimp. You can even integrate it with your WordPress website and add a live chat button.

Expert Review: If you’re looking for affordable pricing plans along with a free trial to test the software, then LiveAgent is the perfect tool for you.

6. 8×8

8x8

8×8 is a cloud communication platform that offers a secure call center solution. The service is loaded with features and offers 99.99% uptime across UCaaS and CCaaS.

What this means is that the service is reliable and guarantees faster performance without any delays or downtime. Besides, it has 35 data centers located globally to provide great quality of service.

It has a simple user interface and offers a detailed knowledge base, expert connect, and a complete communication hub to help you get started.

8×8 call center also provides features to handle inbound and outbound calls. For instance, you get easy call routing, call recording, speed and text analytics, omnichannel support, IVR, agent workspace management, click to call option, and more. However, you’ll find more features in other software we’ve covered, like Nextiva and RingCentral.

The service also easily integrates with CRMs such as Salesforce, Microsoft Dynamics 365, Azure, and Zendesk. You can also improve your customer support through contact center analytics and even conduct surveys to get customer feedback.

8×8 call center pricing plans are on the expensive side, as they start from $85 per user per month. If you want a more affordable solution, then you’ll get more value for money using Nextiva.

Expert Review: 8×8 is a powerful virtual phone platform that offers a robust call center solution. It is great for SaaS enterprises and large organizations.

7. CloudTalk

CloudTalk

CloudTalk is the last call center solution on our list. It’s a popular virtual call center platform and powers over 2,500 call centers, including companies like DHL, Mercedes Benz, Fujitsu, and GoStudent.

The service offers 140 national phone numbers that you can use for your business or select a toll-free number. CloudTalk has also partnered with multiple telcos across the globe to provide a strong network and ensure crystal clear calls and reliable performance.

Other features offered by CloudTalk include call queuing, call recording, voicemail, adding extensions, fax to email, business hours, conference calls, call masking, 3-way calling, smart outbound auto dialer, and more.

You also get intelligent routing features like a complete call flow designer to create automated workflows, IVR, ACD, skill-based call routing, set a preferred agent for clients, call forwarding, VIP queues, auto-answer functionality, and more.

Expert Review: CloudTalk is a dedicated call center software. You can use it to provide inbound support, outbound sales, and easily collaborate with remote teams.

Which is the Best Call Center Software?

If you’re looking for a complete cloud-based call center, then we highly recommend Nextiva. The software ticks all the boxes for what you should look for in a call center solution.

It offers powerful features that go beyond simply creating a call center. Nextiva is a complete virtual phone solution for businesses that want to take their customer support to the next level.

You get IVR, call recording, video conferencing, mobile and desktop apps, detailed reports and metrics to track performance, and so much more with Nextiva. Plus, it easily integrates different CRMs and marketing tools.

We hope this article helped you find the best call center software. You may also want to see our guide on how to choose the best blogging platform and the best WordPress plugins.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

The post 7 Best Call Center Software For 2022 (Expert Pick) first appeared on WPBeginner.

How To Easily Build And Support Tables In Figma

The table is one of the most painful components designers have to deal with in their daily design lives. The table element is often a complex combination of text components, lines, rectangles, icons, and more. It soon may become a nightmare to work with, especially if you also want to support different screen resolutions, change the order of columns, and use real-life content.

In my projects, approximately half of the user interface designs I am working on are tables. This is why in this article, I’d like to share my approach to managing tables in Figma in an easier, more streamlined way.

I’m not a fan of long reads with too many unnecessary details, so I’ll “jump” into the subject right away. My guide consists of several parts; thus, you can stop reading at any point when you understand that what you have learned so far covers your needs at the moment, and you can go back/or jump forward to any section when you want to refresh your memory or learn about the more complex workflows. Let’s go!

Table of Contents

Note: This article is aimed at people with some experience using Figma Design. If you are an absolute beginner in the Figma field, I would suggest first checking some basic Figma tutorials. To make things easier for you, near the end of the article (check Figma Design File section), I have provided my Figma Design which you can use for deconstruction and learning purposes.

Cells And Table Structure

I often use the Ant Design System in my projects. Let’s take their table components as an example.

To start, we need to make only two simple components in Figma:

  • a head cell,
  • a row cell.

Use Left and Center in Constraints to align the text.

Aside on keyboard shortcuts:

Ctrl/Cmd — Win/Mac
Alt/Option — Win/Mac
Shift — Win and Mac

Figma is a tool that works on both Windows and Mac. For example, the following keyboard shortcut combo Ctrl/Cmd + D means, “Press Ctrl + D on Windows, or press Cmd + D on Mac.”

Then we need to copy the components for our future table:

  • hold Alt/Option + Shift + left mouse button for copying
  • and Ctrl/Cmd + D to repeat the last action in Figma.

How to create the table lines? Start here:

  • press and hold Alt/Option + Shift + mouse left for copying,
  • and Ctrl/Cmd+ D to repeat the last action in Figma.

How did I do it? Here are the steps:

  1. group the table row elements into a single frame;
  2. set corners’ radius to 15 px;
  3. set outline stroke to 1 px, #49E36B;
  4. set frame fill color to #278EEE.

To help you better imagine how it works, here is a quick illustration that I made:

The frame is for coloring the table lines between the rows and the table stroke (the outside table border). And you will need to add “crop frame content” and “corner radius” to shape the table.

If you add “Auto layout,” it would work like this:

As a result, you would get this behavior. Hold Shift and double-click to highlight it, then resize the column.

For fixed-size cells, we apply Fixed horizontally:

For the responsive cells, we need to set Fill horizontally:

Then we turn this table into a Frame, and every row inside the Frame should have horizontal Constraints set as Left and right:

Voilà, we’re fully responsive now!

The kit structure:

  • icons we use in the table,
  • basic header states,
  • basic cell states.

Icons

Using any icon library, you can have a few hundred icons. As a result, this can push you to inconsistency (using different icons for the same goals, for example), especially if you have more than one designer on your team. Table icons as a separate library will help you manage and support consistency on big projects.

Combinations

There are a few main combinations we have:

  • just text in a cell,
  • just an icon or a set of icons in a cell,
  • a variety of text, icons, and other objects (checkbox, toggle, action, select, and so on) in a different order within a cell.

Avoid hidden layers! You will know that you used them while building a design system, and you will certainly forget about them later. In addition, people who will use your design system may not know about these hidden layers at all.

You will have an idea of how to create them based on the illustration above (Building a basic table kit), but I’ll specify a few more complex components for beginner designers.

And we use Auto layout with the following parameters in the second component example:

So, remember the table that we built using only two components? It’s time to update it!

Also, you can use “Figma Properties” to make it compact. All the instructions you can find in the following tutorial video created by the Figma team during Figma Config 2022: “Jumping into component properties.”

It’s only one example of how I structured the basic table kit in this article. You can use a similar workflow or create your own. In my projects, kits are much more complex, so I’ll leave this choice to you.

Figma Design File

I have prepared a Figma Design file that may help you go through some of the steps of my tutorial. If you have questions or need help, do post your questions in the comments section at the end of the article.

Conclusion

The way I am working with tables in Figma is not as black and white. The approach mainly depends on the product you’re designing and, of course, there are a few possible ways you could achieve the same goals.

Here are a few general recommendations I can make from my own practice:

  • Keeping the line components on the design system side provides a chance to update tables for the whole project from one place. But every time you want to make an update, you will need to publish changes on the design system-level.
  • If you keep tasks in different documents, don’t forget to disconnect that file from the design system. This would help avoid uncontrolled updates that you will miss.
  • At first, using resizable components seems too tempting… until you need to begin supporting different styles in every size. If you have tables with varying line heights, it’s better to create individual components for each one of them.
  • There is an approach that consists of using as few components as possible. But most of the time, you don’t look at your components — instead, you use “variants” to switch between them. So, it’s better to have enough separate components and, as a result, “variants” than to use hidden layers, the “Auto layout” option, and components inside other components that would be hard to manage later on.
  • Check that all table cells support at least two lines of text. You can use 16 px line spacing to make it happen.
  • I recommend using the minimum width for parent components (minimum width for each column). But these default minimum sizes have to be discussed with the front-end developers as they may sometimes have their own limitations. Therefore you need to ensure that everything in the design can be implemented in the later development stages.
  • Create a color palette in your Design System for the tables, so you would be able to control all the colors from one place. Of course, you can use shared colors from the palette, but once you need to change text color in the tables, background, or something else, you will get into trouble.
  • Create different text styles for the tables. For example, we use smaller line spacing in tables than in news feeds or articles. Having separate text settings would help you avoid future conflicts.

Thank you for following me along! As I already said, tables are a complex component, and I can talk about this topic for days. But maybe better to stop here and give you a chance to try this approach for yourself. Then, if you have questions, I’d be happy to reply and help! Or I could write another article: “Working With Tables in Figma: The Pro Level.” ;-)

Further Reading

I have collected a few links to resources (tutorials, plugins, discussions, etc.) related to working with tables in Figma:

  • Creating Tables In Figma,” Sasha Belichenko
    A guide about one possible way of working with tables in Figma: how to create a table using components and Atomic Design methodology, and then how to integrate the table into your design system.
  • Create a Figma Prototype with Data from Google Sheets,” Bryan Elkus
    The article covers in detail a plugin for Figma called Google Sheets Sync. It allows a user to pull in content directly from Google Sheets which is super-useful if you want to use this to populate your designs with more realistic data.
  • Creating Tables in Figma with Auto Layout”, Gavin McFarland
    In this tutorial, Gavin explains how to modify tables in Figma which are completely fluid (with the Auto Layout feature). You can inspect the components in Figma Design to see how they were created.

Tweets

I spend my whole Figma life designing tables. I imagine other designers too. @figma can you please give us more features, like draggable horizontal rows AND vertical columns? Moving data around should be super easy, like Google Sheets.

— Joshua Sortino (@sortino) April 11, 2022

I have a love/hate relationship with tables, so here's how I set up my design system to make things easier. Rows vs. columns, cell variants, and a "module" component with a variable toolbar and variable pagination.https://t.co/0MbCROJAmp pic.twitter.com/xztjdwoVeL

— Jon Moore (@TheJMoore) April 12, 2022

We hear tables in @figma are hard, and we agree.

Here's how we leveraged our internal design tools to create a more seamless workflow for designers across the @DesigningUber team ➡️ pic.twitter.com/R8PwiYdebK

— Vincent van der Meulen (@vincentmvdm) April 11, 2022

A short Twitter thread on this topic, also mentioning the Configurator plugin that Vincent’s team made.

I found a pretty reliable way to create flexible, responsive custom tables in Figma. I’ll do a video walkthrough at some point, but if you want to play… https://t.co/cibZI3Uk4g

— Buzz Usborne (@buzzusborne) April 6, 2022

Did I make a full video about building tables in Figma? Yes. Do I regret going down this rabbit hole? Also yes. 📺🕳️ https://t.co/JCyLxEBktG

— Buzz Usborne (@buzzusborne) April 13, 2022

Tips time!

Using component props, we can create "infinite tables"

So we can toggle on however many columns / rows we need in designs

This prevents us maintaining large variant sets for every permutation of table 🍽

Community file to play with: https://t.co/WqNM5SMjSE pic.twitter.com/yhefqrNImC

— luis. (@disco_lu) May 30, 2022

Note: This technique is interesting if you have just a few tables in the product design. Otherwise it would be a problem to scale the system.

As you can see, dealing with tables is a “hot topic” 🔥 in the Figma design community! I hope that you could find something useful here, too.