{"id":37867,"date":"2026-01-17T14:00:42","date_gmt":"2026-01-17T11:00:42","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/"},"modified":"2026-01-17T14:00:42","modified_gmt":"2026-01-17T11:00:42","slug":"tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/","title":{"rendered":"Tailwind CSS ile Modern ve Eri\u015filebilir A\u00e7\u0131l\u0131r Men\u00fc Olu\u015fturma Rehberi"},"content":{"rendered":"<h2>Tailwind CSS ile Modern ve Eri\u015filebilir A\u00e7\u0131l\u0131r Men\u00fc Olu\u015fturma Rehberi<\/h2>\n<p>A\u00e7\u0131l\u0131r men\u00fcler (dropdown men\u00fcler), web sitelerinde gezinmeyi kolayla\u015ft\u0131ran ve kullan\u0131c\u0131 aray\u00fcz\u00fcnde d\u00fczen sa\u011flayan temel bile\u015fenlerden biridir. Bu makalede, modern ve h\u0131zl\u0131 bir \u015fekilde aray\u00fcz geli\u015ftirmeyi sa\u011flayan Tailwind CSS kullanarak, tamamen i\u015flevsel, stil sahibi ve eri\u015filebilir bir a\u00e7\u0131l\u0131r men\u00fcn\u00fcn nas\u0131l olu\u015fturulaca\u011f\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz. Tailwind CSS&#8217;in sundu\u011fu esneklik ve utility-first yakla\u015f\u0131m\u0131 sayesinde, \u00f6zel CSS yazmaya gerek kalmadan, sadece HTML s\u0131n\u0131flar\u0131 ile g\u00fc\u00e7l\u00fc bir men\u00fc yap\u0131s\u0131 kuraca\u011f\u0131z.<\/p>\n<h3>Tailwind CSS Kurulumu ve Proje Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Bir Tailwind CSS projesi ba\u015flatmak, a\u00e7\u0131l\u0131r men\u00fc olu\u015fturma s\u00fcrecinin ilk ve en \u00f6nemli ad\u0131m\u0131d\u0131r. Bu b\u00f6l\u00fcmde, projenize Tailwind CSS&#8217;i nas\u0131l entegre edece\u011finizi ve temel yap\u0131land\u0131rmalar\u0131 nas\u0131l yapaca\u011f\u0131n\u0131z\u0131 \u00f6\u011freneceksiniz.<\/p>\n<h4>NPM ile Tailwind CSS Entegrasyonu<\/h4>\n<p>Yeni bir projeye Tailwind CSS eklemek i\u00e7in \u00f6ncelikle bir Node.js ortam\u0131na ihtiyac\u0131n\u0131z var. Proje klas\u00f6r\u00fcn\u00fczde terminali a\u00e7arak a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">\nnpm init -y\nnpm install -D tailwindcss postcss autoprefixer\nnpx tailwindcss init -p\n<\/pre>\n<p><\/code><\/p>\n<ul>\n<li><code>npm init -y<\/code>: Yeni bir <code>package.json<\/code> dosyas\u0131 olu\u015fturur.<\/li>\n<li><code>npm install -D tailwindcss postcss autoprefixer<\/code>: Tailwind CSS, PostCSS ve Autoprefixer ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 geli\u015ftirme ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 olarak y\u00fckler.<\/li>\n<li><code>npx tailwindcss init -p<\/code>: Bir <code>tailwind.config.js<\/code> dosyas\u0131 ve bir <code>postcss.config.js<\/code> dosyas\u0131 olu\u015fturur. <code>-p<\/code> bayra\u011f\u0131 PostCSS yap\u0131land\u0131rmas\u0131n\u0131 da ekler.<\/li>\n<\/ul>\n<h4><code>tailwind.config.js<\/code> Dosyas\u0131 Ayarlar\u0131<\/h4>\n<p><code>tailwind.config.js<\/code> dosyas\u0131, Tailwind CSS'in projenizde hangi dosyalardaki s\u0131n\u0131flar\u0131 tarayaca\u011f\u0131n\u0131 ve CSS \u00e7\u0131kt\u0131s\u0131n\u0131 buna g\u00f6re olu\u015fturaca\u011f\u0131n\u0131 belirler. Bu, gereksiz CSS'in \u00f6nlenmesi i\u00e7in kritik bir ad\u0131md\u0131r. <code>content<\/code> (eski ad\u0131yla <code>purge<\/code>) dizisini projenizin HTML veya JavaScript dosyalar\u0131n\u0131 i\u00e7erecek \u015fekilde g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-javascript\">\n\/\/ tailwind.config.js\nmodule.exports = {\n  content: [\n    \".\/index.html\",\n    \".\/src\/**\/*.{vue,js,ts,jsx,tsx}\",\n  ],\n  theme: {\n    extend: {},\n  },\n  plugins: [],\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki \u00f6rnekte, Tailwind CSS'in <code>index.html<\/code> ve <code>src<\/code> klas\u00f6r\u00fc alt\u0131ndaki t\u00fcm <code>.vue<\/code>, <code>.js<\/code>, <code>.ts<\/code>, <code>.jsx<\/code>, <code>.tsx<\/code> dosyalar\u0131n\u0131 tarayaca\u011f\u0131 belirtilmi\u015ftir. Kendi proje yap\u0131n\u0131za g\u00f6re bu yolu ayarlaman\u0131z gerekmektedir.<\/p>\n<h4>CSS Dosyan\u0131za Tailwind Direktiflerini Ekleme<\/h4>\n<p>Tailwind'in temel stillerini projenize dahil etmek i\u00e7in ana CSS dosyan\u0131z\u0131 (genellikle <code>src\/input.css<\/code> veya <code>src\/style.css<\/code> gibi) olu\u015fturun ve i\u00e7ine a\u015fa\u011f\u0131daki direktifleri ekleyin:<\/p>\n<pre><code class=\"language-css\">\n\/* src\/input.css *\/\n@tailwind base;\n@tailwind components;\n@tailwind utilities;\n<\/pre>\n<p><\/code><\/p>\n<p>Bu direktifler, Tailwind'in temel stillerini, bile\u015fen stillerini ve yard\u0131mc\u0131 s\u0131n\u0131flar\u0131n\u0131 projenize dahil eder. Son olarak, bu dosyay\u0131 derlemek ve kullan\u0131labilir bir CSS \u00e7\u0131kt\u0131s\u0131 elde etmek i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">\nnpx tailwindcss -i .\/src\/input.css -o .\/dist\/output.css --watch\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, <code>src\/input.css<\/code> dosyas\u0131n\u0131 okur, Tailwind s\u0131n\u0131flar\u0131n\u0131 i\u015fler ve derlenmi\u015f CSS'i <code>dist\/output.css<\/code> dosyas\u0131na yazar. <code>--watch<\/code> bayra\u011f\u0131 sayesinde, dosyalardaki de\u011fi\u015fiklikleri otomatik olarak izler ve yeniden derler.<\/p>\n<h3>Temel Dropdown Men\u00fc HTML Yap\u0131s\u0131<\/h3>\n<p>Bir a\u00e7\u0131l\u0131r men\u00fc, genellikle bir tetikleyici (buton veya ba\u011flant\u0131) ve bu tetikleyiciye t\u0131kland\u0131\u011f\u0131nda g\u00f6r\u00fcn\u00fcr hale gelen bir men\u00fc i\u00e7eri\u011finden olu\u015fur. Do\u011fru HTML yap\u0131s\u0131, hem i\u015flevsellik hem de eri\u015filebilirlik a\u00e7\u0131s\u0131ndan hayati \u00f6neme sahiptir.<\/p>\n<h4>Men\u00fc Kapsay\u0131c\u0131s\u0131n\u0131 Olu\u015fturma<\/h4>\n<p>A\u00e7\u0131l\u0131r men\u00fcn\u00fcn t\u00fcm bile\u015fenlerini kapsayacak bir ana <code>div<\/code> etiketi ile ba\u015flayaca\u011f\u0131z. Bu kapsay\u0131c\u0131, men\u00fcn\u00fcn konumland\u0131r\u0131lmas\u0131 ve g\u00f6r\u00fcn\u00fcrl\u00fc\u011f\u00fcn\u00fcn y\u00f6netilmesi i\u00e7in temel bir referans noktas\u0131 olacakt\u0131r.<\/p>\n<pre><code class=\"language-html\">\n<div class=\"relative inline-block text-left\">\n  <!-- Buraya buton ve men\u00fc i\u00e7eri\u011fi gelecek -->\n<\/div>\n<\/pre>\n<p><\/code><\/p>\n<p><code>relative<\/code> s\u0131n\u0131f\u0131, i\u00e7indeki men\u00fc i\u00e7eri\u011finin (<code>absolute<\/code> konumland\u0131r\u0131lacak olan) bu kapsay\u0131c\u0131ya g\u00f6re konumland\u0131r\u0131lmas\u0131n\u0131 sa\u011flar. <code>inline-block<\/code> ve <code>text-left<\/code> ise men\u00fcn\u00fcn sayfa d\u00fczenindeki davran\u0131\u015f\u0131n\u0131 belirler.<\/p>\n<h4>Buton ve Men\u00fc \u00d6\u011felerini Tan\u0131mlama<\/h4>\n<p>Men\u00fcy\u00fc tetikleyecek bir <code><button><\/code> etiketi ve a\u00e7\u0131ld\u0131\u011f\u0131nda g\u00f6r\u00fcnecek men\u00fc \u00f6\u011felerini i\u00e7eren bir <code><\/p>\n<div><\/code> veya <code><\/p>\n<ul><\/code> etiketi kullanaca\u011f\u0131z. Men\u00fc \u00f6\u011feleri genellikle ba\u011flant\u0131lardan olu\u015fur.<\/p>\n<pre><code class=\"language-html\">\n<div class=\"relative inline-block text-left\">\n  <div>\n    <button type=\"button\" class=\"inline-flex justify-center w-full rounded-md border border-gray-300 shadow-sm px-4 py-2 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\" id=\"menu-button\" aria-expanded=\"true\" aria-haspopup=\"true\">\n      Se\u00e7enekler\n      <!-- A\u015fa\u011f\u0131 ok ikonu -->\n      <svg class=\"-mr-1 ml-2 h-5 w-5\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n        <path fill-rule=\"evenodd\" d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\" clip-rule=\"evenodd\" \/>\n      <\/svg>\n    <\/button>\n  <\/div>\n\n  <!-- A\u00e7\u0131l\u0131r men\u00fc i\u00e7eri\u011fi, ba\u015flang\u0131\u00e7ta gizli -->\n  <div class=\"origin-top-right absolute right-0 mt-2 w-56 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none hidden\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\n    <div class=\"py-1\" role=\"none\">\n      <a href=\"#\" class=\"text-gray-700 block px-4 py-2 text-sm\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">Hesap Ayarlar\u0131<\/a>\n      <a href=\"#\" class=\"text-gray-700 block px-4 py-2 text-sm\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-1\">Destek<\/a>\n      <a href=\"#\" class=\"text-gray-700 block px-4 py-2 text-sm\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-2\">Lisans<\/a>\n      <form method=\"POST\" action=\"#\" role=\"none\">\n        <button type=\"submit\" class=\"text-gray-700 block w-full text-left px-4 py-2 text-sm\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-3\">\u00c7\u0131k\u0131\u015f Yap<\/button>\n      <\/form>\n    <\/div>\n  <\/div>\n<\/div>\n<\/pre>\n<p><\/code><\/p>\n<p>Bu yap\u0131, bir buton ve ba\u015flang\u0131\u00e7ta <code>hidden<\/code> s\u0131n\u0131f\u0131yla gizlenmi\u015f bir men\u00fc i\u00e7eri\u011fi i\u00e7erir. Men\u00fc i\u00e7eri\u011fi <code>role=\"menu\"<\/code> ve <code>aria-labelledby<\/code> gibi eri\u015filebilirlik nitelikleri ile zenginle\u015ftirilmi\u015ftir.<\/p>\n<h4>\u00d6rnek HTML \u015eablonu<\/h4>\n<p>Yukar\u0131daki iki b\u00f6l\u00fcm\u00fc birle\u015ftirerek tam bir HTML \u015fablonu elde edebiliriz. Bu \u015fablon, bir a\u00e7\u0131l\u0131r men\u00fcn\u00fcn temel iskeletini olu\u015fturur ve Tailwind CSS s\u0131n\u0131flar\u0131yla stilize edilmeye haz\u0131rd\u0131r.<\/p>\n<pre><code class=\"language-html\">\n<!DOCTYPE html>\n<html lang=\"tr\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Tailwind CSS Dropdown<\/title>\n    <link href=\".\/dist\/output.css\" rel=\"stylesheet\">\n<\/head>\n<body class=\"p-8\">\n    <div class=\"relative inline-block text-left\">\n        <div>\n            <button type=\"button\" class=\"inline-flex justify-center w-full rounded-md border border-gray-300 shadow-sm px-4 py-2 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\" id=\"menu-button\" aria-expanded=\"true\" aria-haspopup=\"true\">\n                Se\u00e7enekler\n                <svg class=\"-mr-1 ml-2 h-5 w-5\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n                    <path fill-rule=\"evenodd\" d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\" clip-rule=\"evenodd\" \/>\n                <\/svg>\n            <\/button>\n        <\/div>\n\n        <div class=\"origin-top-right absolute right-0 mt-2 w-56 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none hidden\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\n            <div class=\"py-1\" role=\"none\">\n                <a href=\"#\" class=\"text-gray-700 block px-4 py-2 text-sm\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">Hesap Ayarlar\u0131<\/a>\n                <a href=\"#\" class=\"text-gray-700 block px-4 py-2 text-sm\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-1\">Destek<\/a>\n                <a href=\"#\" class=\"text-gray-700 block px-4 py-2 text-sm\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-2\">Lisans<\/a>\n                <form method=\"POST\" action=\"#\" role=\"none\">\n                    <button type=\"submit\" class=\"text-gray-700 block w-full text-left px-4 py-2 text-sm\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-3\">\u00c7\u0131k\u0131\u015f Yap<\/button>\n                <\/form>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/body>\n<\/html>\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u015fablonu bir <code>.html<\/code> dosyas\u0131na kaydederek ve Tailwind CSS derleyicisini \u00e7al\u0131\u015ft\u0131rarak men\u00fcn\u00fcz\u00fcn stilize edilmi\u015f halini g\u00f6rebilirsiniz.<\/p>\n<h3>Tailwind CSS S\u0131n\u0131flar\u0131 ile G\u00f6rsel Tasar\u0131m<\/h3>\n<p>Tailwind CSS'in g\u00fcc\u00fc, \u00f6nceden tan\u0131mlanm\u0131\u015f yard\u0131mc\u0131 s\u0131n\u0131flar arac\u0131l\u0131\u011f\u0131yla bile\u015fenleri h\u0131zl\u0131ca stilize etme yetene\u011finden gelir. Bu b\u00f6l\u00fcmde, a\u00e7\u0131l\u0131r men\u00fcm\u00fcz\u00fcn butonunu, men\u00fc kutusunu ve men\u00fc \u00f6\u011felerini nas\u0131l g\u00f6rselle\u015ftirece\u011fimizi inceleyece\u011fiz.<\/p>\n<h4>Buton Stilini Belirleme<\/h4>\n<p>A\u00e7\u0131l\u0131r men\u00fcy\u00fc tetikleyen butonun stilini belirlemek i\u00e7in \u00e7e\u015fitli Tailwind s\u0131n\u0131flar\u0131n\u0131 kullanabiliriz. Butonun modern ve kullan\u0131c\u0131 dostu g\u00f6r\u00fcnmesini sa\u011flamak i\u00e7in a\u015fa\u011f\u0131daki s\u0131n\u0131flar\u0131 uygulayabiliriz:<\/p>\n<pre><code class=\"language-html\">\n<button type=\"button\" class=\"inline-flex justify-center w-full rounded-md border border-gray-300 shadow-sm px-4 py-2 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\" id=\"menu-button\" aria-expanded=\"true\" aria-haspopup=\"true\">\n  Se\u00e7enekler\n  <svg class=\"-mr-1 ml-2 h-5 w-5\" ...><\/svg>\n<\/button>\n<\/pre>\n<p><\/code><\/p>\n<ul>\n<li><code>inline-flex justify-center<\/code>: Buton i\u00e7eri\u011fini yatayda ortalar.<\/li>\n<li><code>w-full<\/code>: Butonun kapsay\u0131c\u0131s\u0131n\u0131n t\u00fcm geni\u015fli\u011fini kaplamas\u0131n\u0131 sa\u011flar.<\/li>\n<li><code>rounded-md border border-gray-300 shadow-sm<\/code>: Kenar yuvarlakl\u0131\u011f\u0131, kenarl\u0131k ve hafif bir g\u00f6lge ekler.<\/li>\n<li><code>px-4 py-2<\/code>: Yatay ve dikey dolgu ekler.<\/li>\n<li><code>bg-white text-sm font-medium text-gray-700<\/code>: Arka plan rengini, metin boyutunu, a\u011f\u0131rl\u0131\u011f\u0131n\u0131 ve rengini belirler.<\/li>\n<li><code>hover:bg-gray-50<\/code>: Fare \u00fczerine gelindi\u011finde arka plan rengini de\u011fi\u015ftirir.<\/li>\n<li><code>focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500<\/code>: Odakland\u0131\u011f\u0131nda ana hat stilini kald\u0131r\u0131r ve odak halkas\u0131 ekler.<\/li>\n<\/ul>\n<h4>A\u00e7\u0131l\u0131r Men\u00fc Kutusunun Tasar\u0131m\u0131<\/h4>\n<p>Men\u00fc i\u00e7eri\u011fini bar\u0131nd\u0131ran <code>div<\/code> etiketi, butonun alt\u0131nda ve genellikle sa\u011fa hizal\u0131 olarak g\u00f6r\u00fcnmelidir. Ayr\u0131ca bir arka plan rengi, g\u00f6lge ve kenarl\u0131k da i\u00e7ermelidir.<\/p>\n<pre><code class=\"language-html\">\n<div class=\"origin-top-right absolute right-0 mt-2 w-56 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none hidden\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\n  <!-- Men\u00fc \u00f6\u011feleri buraya gelecek -->\n<\/div>\n<\/pre>\n<p><\/code><\/p>\n<ul>\n<li><code>origin-top-right<\/code>: D\u00f6n\u00fc\u015f\u00fcm\u00fcn ba\u015flang\u0131\u00e7 noktas\u0131n\u0131 sa\u011f \u00fcst k\u00f6\u015fe olarak ayarlar, animasyonlar i\u00e7in faydal\u0131d\u0131r.<\/li>\n<li><code>absolute right-0 mt-2<\/code>: Men\u00fcy\u00fc butona g\u00f6re konumland\u0131r\u0131r (sa\u011fda ve 2 birim a\u015fa\u011f\u0131da).<\/li>\n<li><code>w-56<\/code>: Men\u00fcn\u00fcn geni\u015fli\u011fini ayarlar.<\/li>\n<li><code>rounded-md shadow-lg bg-white<\/code>: Kenar yuvarlakl\u0131\u011f\u0131, b\u00fcy\u00fck bir g\u00f6lge ve beyaz arka plan rengi ekler.<\/li>\n<li><code>ring-1 ring-black ring-opacity-5<\/code>: Hafif bir d\u0131\u015f kenarl\u0131k (halka) ekler.<\/li>\n<li><code>focus:outline-none<\/code>: Odakland\u0131\u011f\u0131nda varsay\u0131lan ana hat stilini kald\u0131r\u0131r.<\/li>\n<li><code>hidden<\/code>: Ba\u015flang\u0131\u00e7ta men\u00fcy\u00fc gizler. JavaScript ile bu s\u0131n\u0131f kald\u0131r\u0131l\u0131p eklenecektir.<\/li>\n<\/ul>\n<h4>Men\u00fc \u00d6\u011felerinin Stilize Edilmesi<\/h4>\n<p>Men\u00fc i\u00e7indeki her bir ba\u011flant\u0131 (<code><a><\/code> veya <code><button><\/code>) i\u00e7in de stiller tan\u0131mlamam\u0131z gerekir. Bu stiller, \u00f6\u011felerin okunabilirli\u011fini ve etkile\u015fimini art\u0131racakt\u0131r.<\/p>\n<pre><code class=\"language-html\">\n<a href=\"#\" class=\"text-gray-700 block px-4 py-2 text-sm hover:bg-gray-100\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">Hesap Ayarlar\u0131<\/a>\n<\/pre>\n<p><\/code><\/p>\n<ul>\n<li><code>text-gray-700<\/code>: Metin rengini belirler.<\/li>\n<li><code>block<\/code>: Ba\u011flant\u0131n\u0131n t\u00fcm geni\u015fli\u011fi kaplamas\u0131n\u0131 ve blok \u00f6\u011fe gibi davranmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><code>px-4 py-2<\/code>: Yatay ve dikey dolgu ekler.<\/li>\n<li><code>text-sm<\/code>: Metin boyutunu k\u00fc\u00e7\u00fck yapar.<\/li>\n<li><code>hover:bg-gray-100<\/code>: Fare \u00fczerine gelindi\u011finde arka plan rengini hafif\u00e7e de\u011fi\u015ftirir, etkile\u015fimi g\u00f6sterir.<\/li>\n<\/ul>\n<p>Bu s\u0131n\u0131flar sayesinde, herhangi bir \u00f6zel CSS yazmadan, estetik ve i\u015flevsel bir a\u00e7\u0131l\u0131r men\u00fc g\u00f6r\u00fcn\u00fcm\u00fc elde etmi\u015f oluruz.<\/p>\n<h3>JavaScript ile Dinamik Etkile\u015fim Ekleme<\/h3>\n<p>HTML ve Tailwind CSS ile men\u00fcm\u00fcz\u00fcn g\u00f6rsel yap\u0131s\u0131n\u0131 olu\u015fturduk. Ancak men\u00fcn\u00fcn a\u00e7\u0131l\u0131p kapanmas\u0131 gibi dinamik davran\u0131\u015flar\u0131 sa\u011flamak i\u00e7in JavaScript'e ihtiyac\u0131m\u0131z var. Vanilla JavaScript kullanarak bu etkile\u015fimleri ekleyece\u011fiz.<\/p>\n<h4>Men\u00fcy\u00fc A\u00e7ma\/Kapatma Mant\u0131\u011f\u0131<\/h4>\n<p>Men\u00fcy\u00fc a\u00e7mak veya kapatmak i\u00e7in, men\u00fc i\u00e7eri\u011fini gizleyen <code>hidden<\/code> s\u0131n\u0131f\u0131n\u0131 ekleyip \u00e7\u0131karmam\u0131z yeterlidir. Bir olay dinleyicisi (event listener) ile buton t\u0131klamalar\u0131n\u0131 yakalayaca\u011f\u0131z.<\/p>\n<pre><code class=\"language-javascript\">\n\/\/ script.js\ndocument.addEventListener('DOMContentLoaded', () => {\n    const menuButton = document.getElementById('menu-button');\n    const dropdownMenu = document.querySelector('[role=\"menu\"]');\n\n    menuButton.addEventListener('click', () => {\n        const isExpanded = menuButton.getAttribute('aria-expanded') === 'true';\n        menuButton.setAttribute('aria-expanded', String(!isExpanded));\n        dropdownMenu.classList.toggle('hidden');\n    });\n});\n<\/pre>\n<p><\/code><\/p>\n<p>Bu kod par\u00e7as\u0131:<\/p>\n<ul>\n<li><code>DOMContentLoaded<\/code>: Sayfa tamamen y\u00fcklendi\u011finde kodun \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><code>menuButton<\/code> ve <code>dropdownMenu<\/code>: \u0130lgili HTML \u00f6\u011felerini se\u00e7er.<\/li>\n<li><code>menuButton.addEventListener('click', ...)<\/code>: Butona t\u0131kland\u0131\u011f\u0131nda \u00e7al\u0131\u015facak bir fonksiyon tan\u0131mlar.<\/li>\n<li><code>aria-expanded<\/code> niteli\u011fini g\u00fcnceller: Bu, ekran okuyucular i\u00e7in men\u00fcn\u00fcn a\u00e7\u0131k veya kapal\u0131 oldu\u011funu belirtir.<\/li>\n<li><code>dropdownMenu.classList.toggle('hidden')<\/code>: Men\u00fcde <code>hidden<\/code> s\u0131n\u0131f\u0131n\u0131 varsa kald\u0131r\u0131r, yoksa ekler.<\/li>\n<\/ul>\n<p>Bu JavaScript dosyas\u0131n\u0131 HTML dosyan\u0131z\u0131n en alt\u0131na, kapan\u0131\u015f <code><\/body><\/code> etiketinden hemen \u00f6nce eklemeyi unutmay\u0131n: <code><script src=\".\/script.js\"><\/script><\/code>.<\/p>\n<h4>D\u0131\u015far\u0131 T\u0131klama ile Kapatma<\/h4>\n<p>Kullan\u0131c\u0131 deneyimi a\u00e7\u0131s\u0131ndan, men\u00fc a\u00e7\u0131kken men\u00fcn\u00fcn d\u0131\u015f\u0131na t\u0131kland\u0131\u011f\u0131nda men\u00fcn\u00fcn otomatik olarak kapanmas\u0131 beklenir. Bunu sa\u011flamak i\u00e7in <code>document<\/code> \u00fczerine bir olay dinleyicisi ekleyebiliriz.<\/p>\n<pre><code class=\"language-javascript\">\n\/\/ script.js (\u00f6nceki kodun devam\u0131)\ndocument.addEventListener('DOMContentLoaded', () => {\n    const menuButton = document.getElementById('menu-button');\n    const dropdownMenu = document.querySelector('[role=\"menu\"]');\n\n    const toggleMenu = () => {\n        const isExpanded = menuButton.getAttribute('aria-expanded') === 'true';\n        menuButton.setAttribute('aria-expanded', String(!isExpanded));\n        dropdownMenu.classList.toggle('hidden');\n    };\n\n    menuButton.addEventListener('click', toggleMenu);\n\n    document.addEventListener('click', (event) => {\n        if (!dropdownMenu.contains(event.target) && !menuButton.contains(event.target) && !dropdownMenu.classList.contains('hidden')) {\n            toggleMenu(); \/\/ Men\u00fc a\u00e7\u0131ksa kapat\n        }\n    });\n});\n<\/pre>\n<p><\/code><\/p>\n<p>Bu eklenen kod, belgedeki herhangi bir t\u0131klamay\u0131 dinler. E\u011fer t\u0131klanan hedef men\u00fc veya men\u00fc butonu de\u011filse ve men\u00fc a\u00e7\u0131ksa, men\u00fcy\u00fc kapat\u0131r.<\/p>\n<h4>Klavye Navigasyonu Ekleme<\/h4>\n<p>Eri\u015filebilirlik i\u00e7in klavye ile men\u00fcde gezinmek ve men\u00fcy\u00fc kapatmak \u00f6nemlidir. \u00d6zellikle <code>Escape<\/code> tu\u015fu ile men\u00fcy\u00fc kapatma ve <code>Tab<\/code>, <code>ArrowUp<\/code>, <code>ArrowDown<\/code> tu\u015flar\u0131 ile men\u00fc \u00f6\u011feleri aras\u0131nda gezinme \u00f6zellikleri eklemeliyiz.<\/p>\n<pre><code class=\"language-javascript\">\n\/\/ script.js (\u00f6nceki kodun devam\u0131)\ndocument.addEventListener('DOMContentLoaded', () => {\n    const menuButton = document.getElementById('menu-button');\n    const dropdownMenu = document.querySelector('[role=\"menu\"]');\n    const menuItems = Array.from(dropdownMenu.querySelectorAll('[role=\"menuitem\"]'));\n\n    const toggleMenu = (open = null) => {\n        const isCurrentlyOpen = !dropdownMenu.classList.contains('hidden');\n        const shouldOpen = open === null ? !isCurrentlyOpen : open;\n\n        if (shouldOpen) {\n            dropdownMenu.classList.remove('hidden');\n            menuButton.setAttribute('aria-expanded', 'true');\n            \/\/ Men\u00fc a\u00e7\u0131ld\u0131\u011f\u0131nda ilk \u00f6\u011feye odaklan\n            menuItems[0]?.focus();\n        } else {\n            dropdownMenu.classList.add('hidden');\n            menuButton.setAttribute('aria-expanded', 'false');\n            \/\/ Men\u00fc kapand\u0131\u011f\u0131nda butona odaklan\n            menuButton.focus();\n        }\n    };\n\n    menuButton.addEventListener('click', () => toggleMenu());\n\n    document.addEventListener('click', (event) => {\n        if (!dropdownMenu.contains(event.target) && !menuButton.contains(event.target) && !dropdownMenu.classList.contains('hidden')) {\n            toggleMenu(false);\n        }\n    });\n\n    document.addEventListener('keydown', (event) => {\n        if (event.key === 'Escape' && !dropdownMenu.classList.contains('hidden')) {\n            toggleMenu(false);\n        }\n\n        if (event.key === 'Tab' && !dropdownMenu.classList.contains('hidden')) {\n            \/\/ Tab ile men\u00fcden \u00e7\u0131k\u0131ld\u0131\u011f\u0131nda men\u00fcy\u00fc kapat\n            const focusedElement = document.activeElement;\n            const lastMenuItem = menuItems[menuItems.length - 1];\n            if (event.shiftKey && focusedElement === menuItems[0]) {\n                toggleMenu(false);\n                event.preventDefault(); \/\/ Varsay\u0131lan Tab davran\u0131\u015f\u0131n\u0131 engelle\n            } else if (!event.shiftKey && focusedElement === lastMenuItem) {\n                toggleMenu(false);\n                event.preventDefault(); \/\/ Varsay\u0131lan Tab davran\u0131\u015f\u0131n\u0131 engelle\n            }\n        }\n\n        if (['ArrowUp', 'ArrowDown'].includes(event.key) && !dropdownMenu.classList.contains('hidden')) {\n            event.preventDefault(); \/\/ Sayfa kayd\u0131rmay\u0131 engelle\n            const focusedElement = document.activeElement;\n            const currentIndex = menuItems.indexOf(focusedElement);\n            let nextIndex = -1;\n\n            if (event.key === 'ArrowDown') {\n                nextIndex = currentIndex === menuItems.length - 1 ? 0 : currentIndex + 1;\n            } else if (event.key === 'ArrowUp') {\n                nextIndex = currentIndex === 0 ? menuItems.length - 1 : currentIndex - 1;\n            }\n\n            if (nextIndex !== -1) {\n                menuItems[nextIndex].focus();\n            }\n        }\n    });\n});\n<\/pre>\n<p><\/code><\/p>\n<p>Bu geli\u015fmi\u015f JavaScript kodu, men\u00fcn\u00fcn a\u00e7\u0131l\u0131\u015f\u0131nda ilk \u00f6\u011feye odaklanmay\u0131, <code>Escape<\/code> tu\u015fuyla kapatmay\u0131 ve <code>ArrowUp<\/code>\/<code>ArrowDown<\/code> tu\u015flar\u0131yla men\u00fc \u00f6\u011feleri aras\u0131nda d\u00f6ng\u00fcsel olarak gezinmeyi sa\u011flar. <code>Tab<\/code> tu\u015fu ile men\u00fcden \u00e7\u0131k\u0131ld\u0131\u011f\u0131nda men\u00fcn\u00fcn kapanmas\u0131n\u0131 da y\u00f6netir.<\/p>\n<h3>Eri\u015filebilirlik ve Kullan\u0131c\u0131 Deneyimi \u0130yile\u015ftirmeleri<\/h3>\n<p>Bir a\u00e7\u0131l\u0131r men\u00fcn\u00fcn sadece g\u00f6rsel olarak iyi g\u00f6r\u00fcnmesi yeterli de\u011fildir; herkes taraf\u0131ndan eri\u015filebilir olmas\u0131 ve iyi bir kullan\u0131c\u0131 deneyimi sunmas\u0131 da kritik \u00f6neme sahiptir. Bu b\u00f6l\u00fcmde, men\u00fcm\u00fcz\u00fc daha eri\u015filebilir hale getirmek i\u00e7in kullanabilece\u011fimiz y\u00f6ntemleri inceleyece\u011fiz.<\/p>\n<h4>ARIA Niteliklerinin Kullan\u0131m\u0131<\/h4>\n<p>ARIA (Accessible Rich Internet Applications) nitelikleri, ekran okuyucular gibi yard\u0131mc\u0131 teknolojilere web i\u00e7eri\u011finin rol\u00fc, durumu ve \u00f6zellikleri hakk\u0131nda bilgi sa\u011flamak i\u00e7in kullan\u0131l\u0131r. A\u00e7\u0131l\u0131r men\u00fcler i\u00e7in baz\u0131 \u00f6nemli ARIA nit<\/p>\n","protected":false},"excerpt":{"rendered":"Bir Tailwind CSS projesi ba\u015flatmak, a\u00e7\u0131l\u0131r men\u00fc olu\u015fturma s\u00fcrecinin ilk ve en \u00f6nemli ad\u0131m\u0131d\u0131r. Bu b\u00f6l\u00fcmde, projenize Tailwind CSS&#8217;i nas\u0131l enteg&#8230;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[126],"tags":[],"class_list":{"0":"post-37867","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-css3-html5","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Tailwind CSS ile Modern ve Eri\u015filebilir A\u00e7\u0131l\u0131r Men\u00fc Olu\u015fturma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tailwind CSS ile Modern ve Eri\u015filebilir A\u00e7\u0131l\u0131r Men\u00fc Olu\u015fturma Rehberi\" \/>\n<meta property=\"og:description\" content=\"Bir Tailwind CSS projesi ba\u015flatmak, a\u00e7\u0131l\u0131r men\u00fc olu\u015fturma s\u00fcrecinin ilk ve en \u00f6nemli ad\u0131m\u0131d\u0131r. Bu b\u00f6l\u00fcmde, projenize Tailwind CSS&#039;i nas\u0131l enteg...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-17T11:00:42+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Tailwind CSS ile Modern ve Eri\u015filebilir A\u00e7\u0131l\u0131r Men\u00fc Olu\u015fturma Rehberi\",\"datePublished\":\"2026-01-17T11:00:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/\"},\"wordCount\":1551,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"CSS3 - HTML5\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/\",\"name\":\"Tailwind CSS ile Modern ve Eri\u015filebilir A\u00e7\u0131l\u0131r Men\u00fc Olu\u015fturma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-17T11:00:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tailwind CSS ile Modern ve Eri\u015filebilir A\u00e7\u0131l\u0131r Men\u00fc Olu\u015fturma Rehberi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Tailwind CSS ile Modern ve Eri\u015filebilir A\u00e7\u0131l\u0131r Men\u00fc Olu\u015fturma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","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:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Tailwind CSS ile Modern ve Eri\u015filebilir A\u00e7\u0131l\u0131r Men\u00fc Olu\u015fturma Rehberi","og_description":"Bir Tailwind CSS projesi ba\u015flatmak, a\u00e7\u0131l\u0131r men\u00fc olu\u015fturma s\u00fcrecinin ilk ve en \u00f6nemli ad\u0131m\u0131d\u0131r. Bu b\u00f6l\u00fcmde, projenize Tailwind CSS'i nas\u0131l enteg...","og_url":"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-17T11:00:42+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"10 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Tailwind CSS ile Modern ve Eri\u015filebilir A\u00e7\u0131l\u0131r Men\u00fc Olu\u015fturma Rehberi","datePublished":"2026-01-17T11:00:42+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/"},"wordCount":1551,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["CSS3 - HTML5"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/","name":"Tailwind CSS ile Modern ve Eri\u015filebilir A\u00e7\u0131l\u0131r Men\u00fc Olu\u015fturma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-17T11:00:42+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/tailwind-css-ile-modern-ve-erisilebilir-acilir-menu-olusturma-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Tailwind CSS ile Modern ve Eri\u015filebilir A\u00e7\u0131l\u0131r Men\u00fc Olu\u015fturma Rehberi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37867","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=37867"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37867\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}