{"id":74172,"date":"2025-10-07T21:00:45","date_gmt":"2025-10-07T13:00:45","guid":{"rendered":"https:\/\/www.hongkiat.com\/blog\/?p=74172"},"modified":"2025-10-01T16:03:14","modified_gmt":"2025-10-01T08:03:14","slug":"react-aria-tailwindcss-styling","status":"publish","type":"post","link":"https:\/\/www.hongkiat.com\/blog\/react-aria-tailwindcss-styling\/","title":{"rendered":"How to Style React Aria Components with TailwindCSS"},"content":{"rendered":"<p><a href=\"https:\/\/react-spectrum.adobe.com\/react-aria\/components.html\" target=\"_blank\" rel=\"noopener noreferrer\">React Aria Components<\/a> (RAC) is a library from Adobe that gives you fully accessible, production-ready React components\u2014but without any default styling. This makes RAC perfect for pairing with a styling framework like TailwindCSS, since you can design everything exactly the way you want without fighting against preset styles.<\/p>\n<figure>\n        <img decoding=\"async\" src=\"https:\/\/assets.hongkiat.com\/uploads\/react-aria-tailwindcss-styling\/react-aria-tailwind.jpg\" alt=\"React Aria TailwindCSS styling guide\">\n    <\/figure>\n<p>I\u2019ve been using RAC in various projects, and one thing that I like about RAC is how it handles the component states. Instead of just using CSS pseudo-classes like <code>:hover<\/code> or <code>:active<\/code> which don\u2019t always behave consistently on touch devices or with keyboards, it uses <code>data-<\/code> attributes like <code>data-hovered<\/code>, <code>data-pressed<\/code>, and <code>data-selected<\/code>.<\/p>\n<h2>Using with TailwindCSS<\/h2>\n<p>TailwindCSS is one of my favourite ways to style components. While React Aria Components work just well with TailwindCSS, there\u2019s a catch when it comes to styling component states. Because RAC uses data attributes, you can\u2019t just use Tailwind\u2019s usual <code>hover:<\/code> or <code>focus:<\/code> variants. Instead, you need to write out the full attribute using Tailwind\u2019s arbitrary variant syntax, for example:<\/p>\n<pre>\r\n&lt;Button className=\"data-[focused-visible]:bg-blue-400 data-[disabled]:bg-gray-100\" \/&gt;\r\n<\/pre>\n<p>This works fine but it can be redundant. The class names can quickly get long and messy, which makes our code harder to read and scan. We also lose out on Tailwind\u2019s handy editor autocompletion, so typos become more likely.<\/p>\n<p>This is exactly the problem that the <a href=\"https:\/\/www.npmjs.com\/package\/tailwindcss-react-aria-components\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">tailwindcss-react-aria-components<\/a> plugin is built to solve. Let\u2019s see how it works.<\/p>\n<h2>Installation<\/h2>\n<p>Installing the plugin is simple. We can add it with NPM with this command below:<\/p>\n<pre>\r\nnpm install tailwindcss-react-aria-components\r\n<\/pre>\n<p>Configuring the plugin will depend on the Tailwind version you\u2019re using on the project.<\/p>\n<p><strong>On Tailwind v3<\/strong>, add it to your <code>tailwind.config.js<\/code>:<\/p>\n<pre>\r\n\/** @type {import('tailwindcss').Config} *\/\r\nmodule.exports = {\r\n  \/\/...\r\n  plugins: [\r\n    require('tailwindcss-react-aria-components')\r\n  ],\r\n}\r\n<\/pre>\n<p><strong>On Tailwind v4<\/strong>, use the new <code>@plugin<\/code> directive in your main CSS file:<\/p>\n<pre>\r\n@import \"tailwindcss\";\r\n@plugin \"tailwindcss-react-aria-components\";\r\n<\/pre>\n<p>Once installed, styling the component is more simplified. Verbose data attributes like <code>data-[pressed]:<\/code> turn into clean variants such as <code>pressed:<\/code>, and <code>data-[selected]:<\/code> becomes <code>selected:<\/code>. Even non-boolean states are shorter, for example <code>data-orientation=\"vertical\"<\/code> now becomes <code>orientation-vertical:<\/code>.<\/p>\n<p>Here\u2019s a quick comparison of the two approaches for some of the states in RAC:<\/p>\n<table>\n<thead>\n<tr>\n<th> RAC State <\/th>\n<th> Tailwind Attribute Selector <\/th>\n<th> Simplified Class Selector <\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\n                    <code>isHovered<\/code>\n                <\/td>\n<td>\n                    <code>data-[hovered]<\/code>\n                <\/td>\n<td>\n                    <code>hovered:<\/code>\n                <\/td>\n<\/tr>\n<tr>\n<td>\n                    <code>isPressed<\/code>\n                <\/td>\n<td>\n                    <code>data-[pressed]<\/code>\n                <\/td>\n<td>\n                    <code>pressed:<\/code>\n                <\/td>\n<\/tr>\n<tr>\n<td>\n                    <code>isSelected<\/code>\n                <\/td>\n<td>\n                    <code>data-[selected]<\/code>\n                <\/td>\n<td>\n                    <code>selected:<\/code>\n                <\/td>\n<\/tr>\n<tr>\n<td>\n                    <code>isDisabled<\/code>\n                <\/td>\n<td>\n                    <code>data-[disabled]<\/code>\n                <\/td>\n<td>\n                    <code>disabled:<\/code>\n                <\/td>\n<\/tr>\n<tr>\n<td>\n                    <code>isFocusVisible<\/code>\n                <\/td>\n<td>\n                    <code>data-[focus-visible]<\/code>\n                <\/td>\n<td>\n                    <code>focus-visible:<\/code>\n                <\/td>\n<\/tr>\n<tr>\n<td>\n                    <code>isPending<\/code>\n                <\/td>\n<td>\n                    <code>data-[pending]<\/code>\n                <\/td>\n<td>\n                    <code>pending:<\/code>\n                <\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Prefixing<\/h2>\n<p>By default, the plugin\u2019s modifiers are unprefixed, so you can use variants like <code>disabled:<\/code> right away, for example:<\/p>\n<pre>\r\nimport { Button } from 'react-aria-components';\r\n\r\nfunction App() {\r\n    return (\r\n        &lt;Button className=\"disabled:opacity-50\" isDisabled&gt;\r\n            Submit\r\n        &lt;\/Button&gt;\r\n    );\r\n}\r\n<\/pre>\n<p>But if you prefer a clearer naming convention, you can set a prefix in the config. This can be especially handy in larger projects where you want to avoid clashes with other plugins or custom utilities. <\/p>\n<p>Again, the setup will depend on the Tailwind version you\u2019re using.<\/p>\n<p><strong>On Tailwind v3<\/strong>, you can add the prefix option when requiring the plugin in <code>tailwind.config.js<\/code>:<\/p>\n<pre>\r\n\/\/ tailwind.config.js\r\n\/** @type {import('tailwindcss').Config} *\/\r\nmodule.exports = {\r\n  \/\/...\r\n  plugins: [\r\n    require('tailwindcss-react-aria-components')({ prefix: 'rac' })\r\n  ],\r\n}\r\n<\/pre>\n<p><strong>On Tailwind v4<\/strong>, you can pass the prefix option in the <code>@plugin<\/code> directive in your main CSS file, like below:<\/p>\n<pre>\r\n@import \"tailwindcss\";\r\n@plugin \"tailwindcss-react-aria-components\" { prefix: hk };\r\n<\/pre>\n<p>Now, all the variants will be prefixed with <code>rac-<\/code>, so <code>disabled:<\/code> becomes <code>rac-disabled:<\/code>, and <code>selected:<\/code> becomes <code>rac-selected:<\/code>.<\/p>\n<p>Here\u2019s the same example as before, but with the prefix applied:<\/p>\n<pre>\r\nimport { Button } from 'react-aria-components';\r\n\r\nfunction App() {\r\n    return (\r\n        &lt;Button className=\"hk-disabled:opacity-50\" isDisabled&gt;\r\n            Submit\r\n        &lt;\/Button&gt;\r\n    );\r\n}\r\n<\/pre>\n<p>Here is a quick demo of the plugin in action.<\/p>\n<p>    <iframe loading=\"lazy\" src=\"https:\/\/stackblitz.com\/edit\/vitejs-vite-t19j3qdy?ctl=1&embed=1&file=src%2FApp.jsx\" height=\"500\" width=\"100%\" style=\"border: 1px solid #ccc;\"><\/iframe><\/p>\n<h2>Wrapping Up<\/h2>\n<p>Styling React Aria Components with TailwindCSS doesn\u2019t have to be complicated. With the <a href=\"https:\/\/www.npmjs.com\/package\/tailwindcss-react-aria-components\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">tailwindcss-react-aria-components<\/a> plugin, you can skip the verbose syntax and work with clean, intuitive variants that feel just like native Tailwind utilities. This makes it much easier to keep your code readable, your workflow smooth, and your components accessible by default.<\/p>\n<p>In this article, we focused on styling. But that\u2019s just the beginning. In the next one, we\u2019ll take things a step further and explore how to animate React Aria Components with TailwindCSS, adding smooth motion to make your UI feel even more polished and engaging.<\/p>\n<p>Stay tuned!<\/p>","protected":false},"excerpt":{"rendered":"<p>React Aria Components (RAC) is a library from Adobe that gives you fully accessible, production-ready React components\u2014but without any default styling. This makes RAC perfect for pairing with a styling framework like TailwindCSS, since you can design everything exactly the way you want without fighting against preset styles. I\u2019ve been using RAC in various projects,&hellip;<\/p>\n","protected":false},"author":113,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3392],"tags":[],"topic":[],"class_list":["entry-content","is-maxi"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.8 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Style React Aria Components with TailwindCSS - Hongkiat<\/title>\n<meta name=\"description\" content=\"React Aria Components (RAC) is a library from Adobe that gives you fully accessible, production-ready React components\u2014but without any default styling.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hongkiat.com\/blog\/react-aria-tailwindcss-styling\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Style React Aria Components with TailwindCSS\" \/>\n<meta property=\"og:description\" content=\"React Aria Components (RAC) is a library from Adobe that gives you fully accessible, production-ready React components\u2014but without any default styling.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hongkiat.com\/blog\/react-aria-tailwindcss-styling\/\" \/>\n<meta property=\"og:site_name\" content=\"Hongkiat\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/hongkiatcom\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-07T13:00:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/assets.hongkiat.com\/uploads\/react-aria-tailwindcss-styling\/react-aria-tailwind.jpg\" \/>\n<meta name=\"author\" content=\"Thoriq Firdaus\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@tfirdaus\" \/>\n<meta name=\"twitter:site\" content=\"@hongkiat\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Thoriq Firdaus\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/react-aria-tailwindcss-styling\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/react-aria-tailwindcss-styling\\\/\"},\"author\":{\"name\":\"Thoriq Firdaus\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/person\\\/e7948c7a175d211496331e4b6ce55807\"},\"headline\":\"How to Style React Aria Components with TailwindCSS\",\"datePublished\":\"2025-10-07T13:00:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/react-aria-tailwindcss-styling\\\/\"},\"wordCount\":556,\"publisher\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/react-aria-tailwindcss-styling\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/react-aria-tailwindcss-styling\\\/react-aria-tailwind.jpg\",\"articleSection\":[\"Coding\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/react-aria-tailwindcss-styling\\\/\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/react-aria-tailwindcss-styling\\\/\",\"name\":\"How to Style React Aria Components with TailwindCSS - Hongkiat\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/react-aria-tailwindcss-styling\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/react-aria-tailwindcss-styling\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/react-aria-tailwindcss-styling\\\/react-aria-tailwind.jpg\",\"datePublished\":\"2025-10-07T13:00:45+00:00\",\"description\":\"React Aria Components (RAC) is a library from Adobe that gives you fully accessible, production-ready React components\u2014but without any default styling.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/react-aria-tailwindcss-styling\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/react-aria-tailwindcss-styling\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/react-aria-tailwindcss-styling\\\/#primaryimage\",\"url\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/react-aria-tailwindcss-styling\\\/react-aria-tailwind.jpg\",\"contentUrl\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/react-aria-tailwindcss-styling\\\/react-aria-tailwind.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/react-aria-tailwindcss-styling\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Style React Aria Components with TailwindCSS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/\",\"name\":\"Hongkiat\",\"description\":\"Tech and Design Tips\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#organization\",\"name\":\"Hongkiat.com\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wp-content\\\/uploads\\\/hkdc-logo-rect-yoast.jpg\",\"contentUrl\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wp-content\\\/uploads\\\/hkdc-logo-rect-yoast.jpg\",\"width\":1200,\"height\":799,\"caption\":\"Hongkiat.com\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/hongkiatcom\",\"https:\\\/\\\/x.com\\\/hongkiat\",\"https:\\\/\\\/www.pinterest.com\\\/hongkiat\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/person\\\/e7948c7a175d211496331e4b6ce55807\",\"name\":\"Thoriq Firdaus\",\"description\":\"Thoriq is a writer for Hongkiat.com with a passion for web design and development. He is the author of Responsive Web Design by Examples, where he covered his best approaches in developing responsive websites quickly with a framework.\",\"sameAs\":[\"https:\\\/\\\/thoriq.com\",\"https:\\\/\\\/x.com\\\/tfirdaus\"],\"jobTitle\":\"Web Developer\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/author\\\/thoriq\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Style React Aria Components with TailwindCSS - Hongkiat","description":"React Aria Components (RAC) is a library from Adobe that gives you fully accessible, production-ready React components\u2014but without any default styling.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hongkiat.com\/blog\/react-aria-tailwindcss-styling\/","og_locale":"en_US","og_type":"article","og_title":"How to Style React Aria Components with TailwindCSS","og_description":"React Aria Components (RAC) is a library from Adobe that gives you fully accessible, production-ready React components\u2014but without any default styling.","og_url":"https:\/\/www.hongkiat.com\/blog\/react-aria-tailwindcss-styling\/","og_site_name":"Hongkiat","article_publisher":"https:\/\/www.facebook.com\/hongkiatcom","article_published_time":"2025-10-07T13:00:45+00:00","og_image":[{"url":"https:\/\/assets.hongkiat.com\/uploads\/react-aria-tailwindcss-styling\/react-aria-tailwind.jpg","type":"","width":"","height":""}],"author":"Thoriq Firdaus","twitter_card":"summary_large_image","twitter_creator":"@tfirdaus","twitter_site":"@hongkiat","twitter_misc":{"Written by":"Thoriq Firdaus","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hongkiat.com\/blog\/react-aria-tailwindcss-styling\/#article","isPartOf":{"@id":"https:\/\/www.hongkiat.com\/blog\/react-aria-tailwindcss-styling\/"},"author":{"name":"Thoriq Firdaus","@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/person\/e7948c7a175d211496331e4b6ce55807"},"headline":"How to Style React Aria Components with TailwindCSS","datePublished":"2025-10-07T13:00:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hongkiat.com\/blog\/react-aria-tailwindcss-styling\/"},"wordCount":556,"publisher":{"@id":"https:\/\/www.hongkiat.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.hongkiat.com\/blog\/react-aria-tailwindcss-styling\/#primaryimage"},"thumbnailUrl":"https:\/\/assets.hongkiat.com\/uploads\/react-aria-tailwindcss-styling\/react-aria-tailwind.jpg","articleSection":["Coding"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.hongkiat.com\/blog\/react-aria-tailwindcss-styling\/","url":"https:\/\/www.hongkiat.com\/blog\/react-aria-tailwindcss-styling\/","name":"How to Style React Aria Components with TailwindCSS - Hongkiat","isPartOf":{"@id":"https:\/\/www.hongkiat.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hongkiat.com\/blog\/react-aria-tailwindcss-styling\/#primaryimage"},"image":{"@id":"https:\/\/www.hongkiat.com\/blog\/react-aria-tailwindcss-styling\/#primaryimage"},"thumbnailUrl":"https:\/\/assets.hongkiat.com\/uploads\/react-aria-tailwindcss-styling\/react-aria-tailwind.jpg","datePublished":"2025-10-07T13:00:45+00:00","description":"React Aria Components (RAC) is a library from Adobe that gives you fully accessible, production-ready React components\u2014but without any default styling.","breadcrumb":{"@id":"https:\/\/www.hongkiat.com\/blog\/react-aria-tailwindcss-styling\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hongkiat.com\/blog\/react-aria-tailwindcss-styling\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hongkiat.com\/blog\/react-aria-tailwindcss-styling\/#primaryimage","url":"https:\/\/assets.hongkiat.com\/uploads\/react-aria-tailwindcss-styling\/react-aria-tailwind.jpg","contentUrl":"https:\/\/assets.hongkiat.com\/uploads\/react-aria-tailwindcss-styling\/react-aria-tailwind.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hongkiat.com\/blog\/react-aria-tailwindcss-styling\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hongkiat.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Style React Aria Components with TailwindCSS"}]},{"@type":"WebSite","@id":"https:\/\/www.hongkiat.com\/blog\/#website","url":"https:\/\/www.hongkiat.com\/blog\/","name":"Hongkiat","description":"Tech and Design Tips","publisher":{"@id":"https:\/\/www.hongkiat.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hongkiat.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.hongkiat.com\/blog\/#organization","name":"Hongkiat.com","url":"https:\/\/www.hongkiat.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hongkiat.com\/blog\/wp-content\/uploads\/hkdc-logo-rect-yoast.jpg","contentUrl":"https:\/\/www.hongkiat.com\/blog\/wp-content\/uploads\/hkdc-logo-rect-yoast.jpg","width":1200,"height":799,"caption":"Hongkiat.com"},"image":{"@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/hongkiatcom","https:\/\/x.com\/hongkiat","https:\/\/www.pinterest.com\/hongkiat\/"]},{"@type":"Person","@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/person\/e7948c7a175d211496331e4b6ce55807","name":"Thoriq Firdaus","description":"Thoriq is a writer for Hongkiat.com with a passion for web design and development. He is the author of Responsive Web Design by Examples, where he covered his best approaches in developing responsive websites quickly with a framework.","sameAs":["https:\/\/thoriq.com","https:\/\/x.com\/tfirdaus"],"jobTitle":"Web Developer","url":"https:\/\/www.hongkiat.com\/blog\/author\/thoriq\/"}]}},"jetpack_featured_media_url":"https:\/\/","jetpack_shortlink":"https:\/\/wp.me\/p4uxU-jik","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts\/74172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/users\/113"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/comments?post=74172"}],"version-history":[{"count":1,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts\/74172\/revisions"}],"predecessor-version":[{"id":74173,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts\/74172\/revisions\/74173"}],"wp:attachment":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/media?parent=74172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/categories?post=74172"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/tags?post=74172"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/topic?post=74172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}