[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-config":3,"blog-categories":6,"topic:z-index-and-stacking-contexts":35,"course-tree":156},{"data":4},{"google_site_verification":5,"ga4_measurement_id":5,"site_name":5,"default_og_image":5,"twitter_handle":5},null,{"data":7},[8,14,19,25,30],{"name":9,"slug":10,"description":11,"post_count":12,"subcategories":13},"CSS","css","Learn CSS with practical tutorials and examples covering layouts, Flexbox, Grid, responsive design, typography, positioning, animations, and more.",2,[],{"name":15,"slug":16,"description":17,"post_count":12,"subcategories":18},"HTML","html","Learn HTML with practical tutorials and examples for beginners. Explore HTML tags, elements, attributes, links, images, forms, semantic HTML, and more with clear explanations and real code examples.",[],{"name":20,"slug":21,"description":22,"post_count":23,"subcategories":24},"WPF","wpf","Learn WPF with practical tutorials and examples covering XAML, windows, controls, layouts, data binding, MVVM, commands, styles, templates, debugging, and modern WPF UI development.",1,[],{"name":26,"slug":27,"description":28,"post_count":23,"subcategories":29},"Python","python","Learn Python with practical tutorials covering strings, lists, functions, exceptions, files, packages, virtual environments, modules, classes, and beginner programming concepts.",[],{"name":31,"slug":32,"description":33,"post_count":23,"subcategories":34},"Java","java","Learn Java with practical tutorials and examples for beginners. Explore Java syntax, variables, data types, classes, objects, methods, inheritance, exceptions, collections, and more with clear explanations and real code examples.",[],{"data":36},{"id":37,"title":38,"slug":39,"content":40,"course":41,"subcategory":42,"author":45,"reading_time_minutes":51,"cornerstone":52,"schema_type":53,"faq_json":5,"video_url":5,"canonical_url":54,"meta_title":55,"meta_description":56,"og_image":5,"toc_json":57,"code_examples":111,"quiz":5,"exercises":132,"published_at":5,"updated_at":147,"prev":148,"next":152},118,"Z-index & Stacking Contexts","z-index-and-stacking-contexts","\u003Ch2 id=\"css-z-index-and-stacking-contexts-complete-guide\">CSS Z-index and Stacking Contexts: Complete Guide\u003C\u002Fh2>\u003Cp>\u003Cstrong>Focus keyword: CSS z-index.\u003C\u002Fstrong> Z-index controls which element appears in front when elements overlap. Many developers set z-index: 9999 and still see bugs, because z-index only works inside a \u003Cstrong>stacking context\u003C\u002Fstrong>. In this lesson you will learn how layering really works, what creates a stacking context, how to organise z-index values and how to debug overlapping problems.\u003C\u002Fp>\u003Ch3 id=\"trending-keywords-covered-in-this-lesson\">Trending keywords covered in this lesson\u003C\u002Fh3>\u003Cp>z-index not working, stacking context, isolation isolate, z-index scale with CSS variables, painting order, dropdown behind element, modal overlay, transform creates stacking context, opacity stacking context, will-change, top layer, dialog element, popover attribute, negative z-index, layered design, CSS debugging.\u003C\u002Fp>\u003Ch2 id=\"1-what-z-index-does\">1. What z-index Does\u003C\u002Fh2>\u003Cp>The z axis points from the screen towards the user. A higher z-index value is painted closer to the user. Z-index accepts integers (positive, zero or negative) or \u003Ccode>auto\u003C\u002Fcode>. It works on:\u003C\u002Fp>\u003Cul>\u003Cli>Positioned elements (relative, absolute, fixed, sticky).\u003C\u002Fli>\u003Cli>Flex items and grid items, even when position is static.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>On a normal static block element z-index is ignored. This is the number one reason for z-index not working.\u003C\u002Fp>\u003Ch2 id=\"2-default-painting-order\">2. Default Painting Order\u003C\u002Fh2>\u003Cp>Without z-index, elements are painted in this order inside one stacking context, from back to front:\u003C\u002Fp>\u003Col>\u003Cli>Background and borders of the context root.\u003C\u002Fli>\u003Cli>Negative z-index children.\u003C\u002Fli>\u003Cli>Normal flow block elements.\u003C\u002Fli>\u003Cli>Floated elements.\u003C\u002Fli>\u003Cli>Inline content (text).\u003C\u002Fli>\u003Cli>Positioned elements with z-index auto or 0, in HTML order.\u003C\u002Fli>\u003Cli>Positive z-index children, from low to high.\u003C\u002Fli>\u003C\u002Fol>\u003Cp>When two elements have the same level, the one later in the HTML is on top.\u003C\u002Fp>\u003Ch2 id=\"3-what-is-a-stacking-context\">3. What Is a Stacking Context?\u003C\u002Fh2>\u003Cp>A stacking context is an isolated layer group. Children are sorted only among themselves, and the whole group is then placed as a single unit in its parent context. A child with z-index 9999 inside a context with z-index 1 can never rise above a sibling context with z-index 2.\u003C\u002Fp>\u003Ch3 id=\"common-ways-to-create-a-stacking-context\">Common ways to create a stacking context\u003C\u002Fh3>\u003Cul>\u003Cli>The root element (html).\u003C\u002Fli>\u003Cli>Positioned element (relative, absolute, fixed, sticky) with a z-index other than auto.\u003C\u002Fli>\u003Cli>Fixed or sticky elements (always, in modern browsers).\u003C\u002Fli>\u003Cli>Flex or grid item with a z-index other than auto.\u003C\u002Fli>\u003Cli>\u003Ccode>opacity\u003C\u002Fcode> less than 1.\u003C\u002Fli>\u003Cli>\u003Ccode>transform\u003C\u002Fcode>, \u003Ccode>filter\u003C\u002Fcode>, \u003Ccode>perspective\u003C\u002Fcode>, \u003Ccode>clip-path\u003C\u002Fcode>, \u003Ccode>mask\u003C\u002Fcode>.\u003C\u002Fli>\u003Cli>\u003Ccode>isolation: isolate\u003C\u002Fcode>.\u003C\u002Fli>\u003Cli>\u003Ccode>mix-blend-mode\u003C\u002Fcode> other than normal.\u003C\u002Fli>\u003Cli>\u003Ccode>will-change\u003C\u002Fcode> for a property that would create a context.\u003C\u002Fli>\u003Cli>\u003Ccode>contain: layout\u003C\u002Fcode>, \u003Ccode>paint\u003C\u002Fcode> or \u003Ccode>strict\u003C\u002Fcode>.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2 id=\"4-isolation-isolate\">4. isolation: isolate\u003C\u002Fh2>\u003Cp>\u003Ccode>isolation: isolate\u003C\u002Fcode> creates a stacking context on purpose without any side effects. Put it on a component root so its inner z-index values stay inside the component and never fight with the rest of the page. This is the cleanest fix for layering bugs and a modern best practice for design systems.\u003C\u002Fp>\u003Ch2 id=\"5-organising-z-index-with-a-scale\">5. Organising z-index with a Scale\u003C\u002Fh2>\u003Cp>Avoid random numbers like 999999. Define a small scale with custom properties and use it everywhere:\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ccode>--z-base: 0\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>\u003Ccode>--z-dropdown: 100\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>\u003Ccode>--z-sticky: 200\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>\u003Ccode>--z-overlay: 300\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>\u003Ccode>--z-modal: 400\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>\u003Ccode>--z-toast: 500\u003C\u002Fcode>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Leave gaps so you can insert new layers later.\u003C\u002Fp>\u003Ch2 id=\"6-negative-z-index\">6. Negative z-index\u003C\u002Fh2>\u003Cp>A negative z-index sends an element behind its stacking context's in-flow content, useful for decorative backgrounds. If the parent does not create its own context, the element may go behind the parent's background and disappear. Add \u003Ccode>isolation: isolate\u003C\u002Fcode> to the parent to keep it visible.\u003C\u002Fp>\u003Ch2 id=\"7-the-top-layer-dialog-and-popover\">7. The Top Layer: dialog and popover\u003C\u002Fh2>\u003Cp>Modern HTML offers the \u003Ccode>dialog\u003C\u002Fcode> element (with \u003Ccode>showModal()\u003C\u002Fcode>) and the \u003Ccode>popover\u003C\u002Fcode> attribute. They render in the browser's \u003Cstrong>top layer\u003C\u002Fstrong>, above all other content, regardless of z-index or ancestor stacking contexts. For modals, menus and tooltips, prefer them over manual z-index values.\u003C\u002Fp>\u003Ch2 id=\"8-how-to-debug-a-layering-bug\">8. How to Debug a Layering Bug\u003C\u002Fh2>\u003Col>\u003Cli>Check that the element is positioned or is a flex or grid item.\u003C\u002Fli>\u003Cli>Walk up the ancestors and look for opacity, transform, filter, isolation or a positioned parent with z-index.\u003C\u002Fli>\u003Cli>Compare the z-index of the nearest shared stacking context, not of the two elements.\u003C\u002Fli>\u003Cli>Use browser DevTools: the Layers panel or the 3D view, and inspect computed styles.\u003C\u002Fli>\u003Cli>Fix by moving the element in the DOM, removing the accidental context, or adding isolation on the correct parent.\u003C\u002Fli>\u003C\u002Fol>\u003Ch2 id=\"9-common-mistakes\">9. Common Mistakes\u003C\u002Fh2>\u003Cul>\u003Cli>Adding z-index to a static element.\u003C\u002Fli>\u003Cli>Increasing the number endlessly instead of finding the stacking context.\u003C\u002Fli>\u003Cli>Using transform on a parent and breaking a fixed or absolute dropdown inside it.\u003C\u002Fli>\u003Cli>Setting opacity on a wrapper and accidentally creating a context.\u003C\u002Fli>\u003Cli>Not keeping a shared z-index scale in the project.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2 id=\"key-takeaways\">Key Takeaways\u003C\u002Fh2>\u003Cp>Z-index is only compared within the same stacking context. Know what creates a context, use isolation: isolate on components, keep a z-index scale, and use dialog and popover for top-layer UI.\u003C\u002Fp>\u003Cdiv class=\"try-it-yourself language-html\">\u003Cpre>\u003Ccode>&lt;style&gt;\n  body { font: 16px system-ui, sans-serif; padding: 24px; }\n  .stage { position: relative; height: 200px; }\n  .card { position: absolute; width: 140px; height: 100px; color: #fff; padding: 8px; }\n  .a { background: #e76f51; top: 0; left: 0; z-index: 1; }\n  .b { background: #2a9d8f; top: 30px; left: 60px; z-index: 3; }\n  .c { background: #264653; top: 60px; left: 120px; z-index: 2; }\n&lt;\u002Fstyle&gt;\n&lt;div class='stage'&gt;\n  &lt;div class='card a'&gt;A z-index 1&lt;\u002Fdiv&gt;\n  &lt;div class='card b'&gt;B z-index 3&lt;\u002Fdiv&gt;\n  &lt;div class='card c'&gt;C z-index 2&lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\u003Cdiv class=\"try-it-yourself language-html\">\u003Cpre>\u003Ccode>&lt;style&gt;\n  body { font: 16px system-ui, sans-serif; padding: 24px; }\n  .wrap { display: flex; gap: 16px; }\n  .ctx { position: relative; width: 200px; height: 120px; padding: 8px; color: #fff; }\n  .ctx1 { background: #264653; z-index: 1; }\n  .ctx2 { background: #e9c46a; color: #000; z-index: 2; margin-left: -80px; }\n  .inner { position: absolute; bottom: 8px; right: 8px; width: 140px; height: 50px; background: #e63946; z-index: 9999; }\n&lt;\u002Fstyle&gt;\n&lt;div class='wrap'&gt;\n  &lt;div class='ctx ctx1'&gt;Context 1 (z 1)&lt;div class='inner'&gt;z-index 9999&lt;\u002Fdiv&gt;&lt;\u002Fdiv&gt;\n  &lt;div class='ctx ctx2'&gt;Context 2 (z 2)&lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\n&lt;p&gt;The red box has z-index 9999 but stays behind Context 2, because it is trapped in Context 1.&lt;\u002Fp&gt;\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\u003Cdiv class=\"try-it-yourself language-html\">\u003Cpre>\u003Ccode>&lt;style&gt;\n  body { font: 16px system-ui, sans-serif; padding: 24px; }\n  .panel { position: relative; padding: 20px; background: #f1f1f1; border-radius: 12px; }\n  .panel.isolated { isolation: isolate; }\n  .panel::before { content: ''; position: absolute; inset: 10px; background: #8ecae6; z-index: -1; border-radius: 10px; }\n  .row { display: flex; gap: 24px; }\n  .row &gt; div { flex: 1; }\n&lt;\u002Fstyle&gt;\n&lt;div class='row'&gt;\n  &lt;div&gt;&lt;p&gt;Without isolation (background may hide)&lt;\u002Fp&gt;&lt;div class='panel'&gt;Panel content&lt;\u002Fdiv&gt;&lt;\u002Fdiv&gt;\n  &lt;div&gt;&lt;p&gt;With isolation: isolate&lt;\u002Fp&gt;&lt;div class='panel isolated'&gt;Panel content&lt;\u002Fdiv&gt;&lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\u003Cdiv class=\"try-it-yourself language-html\">\u003Cpre>\u003Ccode>&lt;style&gt;\n  :root {\n    --z-base: 0;\n    --z-dropdown: 100;\n    --z-sticky: 200;\n    --z-overlay: 300;\n    --z-modal: 400;\n    --z-toast: 500;\n  }\n  body { font: 16px system-ui, sans-serif; margin: 0; min-height: 260px; position: relative; }\n  .nav { position: sticky; top: 0; z-index: var(--z-sticky); background: #264653; color: #fff; padding: 12px; }\n  .menu { position: absolute; top: 44px; left: 12px; z-index: var(--z-dropdown); background: #fff; color: #000; border: 1px solid #ccc; padding: 8px 16px; }\n  .overlay { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: var(--z-overlay); }\n  .modal { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: #fff; padding: 24px; z-index: var(--z-modal); border-radius: 12px; }\n&lt;\u002Fstyle&gt;\n&lt;div class='nav'&gt;Navigation&lt;div class='menu'&gt;Dropdown item&lt;\u002Fdiv&gt;&lt;\u002Fdiv&gt;\n&lt;div class='overlay'&gt;&lt;\u002Fdiv&gt;\n&lt;div class='modal'&gt;Modal above overlay, overlay above nav&lt;\u002Fdiv&gt;\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\u003Cdiv class=\"try-it-yourself language-html\">\u003Cpre>\u003Ccode>&lt;style&gt;\n  body { font: 16px system-ui, sans-serif; padding: 24px; }\n  dialog { border: 0; border-radius: 12px; padding: 24px; box-shadow: 0 10px 40px rgba(0,0,0,.3); }\n  dialog::backdrop { background: rgba(0, 0, 0, .5); }\n&lt;\u002Fstyle&gt;\n&lt;button id='open'&gt;Open modal (top layer)&lt;\u002Fbutton&gt;\n&lt;dialog id='dlg'&gt;\n  &lt;h3&gt;Native dialog&lt;\u002Fh3&gt;\n  &lt;p&gt;No z-index needed. It is rendered in the top layer.&lt;\u002Fp&gt;\n  &lt;button id='close'&gt;Close&lt;\u002Fbutton&gt;\n&lt;\u002Fdialog&gt;\n&lt;script&gt;\n  var dlg = document.getElementById('dlg');\n  document.getElementById('open').addEventListener('click', function () { dlg.showModal(); });\n  document.getElementById('close').addEventListener('click', function () { dlg.close(); });\n&lt;\u002Fscript&gt;\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\u003Cdiv class=\"try-it-yourself language-javascript\">\u003Cpre>\u003Ccode>const creators = [\n  'position + z-index (not auto)',\n  'opacity &lt; 1',\n  'transform',\n  'filter',\n  'isolation: isolate',\n  'will-change: transform',\n  'flex or grid item with z-index'\n];\n\ncreators.forEach(function (item, index) {\n  console.log((index + 1) + '. Creates a stacking context: ' + item);\n});\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>",{"name":9,"slug":10},{"name":43,"slug":44},"Display, Position & Layout Basics","display-position-layout-basics",{"slug":46,"display_name":47,"job_title":5,"short_bio":5,"expertise_tags":48,"headshot":5,"long_bio":5,"credentials":5,"twitter_url":5,"linkedin_url":5,"github_url":5,"personal_website_url":5,"other_sameas_urls":5,"topics":49,"posts":50},"badar-khalil","Badar Khalil",[],[],[],6,false,"Article","https:\u002F\u002Fwpfsharp.com\u002Ftopics\u002Fz-index-and-stacking-contexts","CSS Z-index & Stacking Contexts: Fix Overlap Problems","Learn CSS z-index and stacking contexts: what creates them, painting order, isolation, z-index scales, modals, dropdowns and how to debug layering bugs.",[58,67,71,75,83,87,91,95,99,103,107],{"id":59,"text":60,"level":12,"children":61},"css-z-index-and-stacking-contexts-complete-guide","CSS Z-index and Stacking Contexts: Complete Guide",[62],{"id":63,"text":64,"level":65,"children":66},"trending-keywords-covered-in-this-lesson","Trending keywords covered in this lesson",3,[],{"id":68,"text":69,"level":12,"children":70},"1-what-z-index-does","1. What z-index Does",[],{"id":72,"text":73,"level":12,"children":74},"2-default-painting-order","2. Default Painting Order",[],{"id":76,"text":77,"level":12,"children":78},"3-what-is-a-stacking-context","3. What Is a Stacking Context?",[79],{"id":80,"text":81,"level":65,"children":82},"common-ways-to-create-a-stacking-context","Common ways to create a stacking context",[],{"id":84,"text":85,"level":12,"children":86},"4-isolation-isolate","4. isolation: isolate",[],{"id":88,"text":89,"level":12,"children":90},"5-organising-z-index-with-a-scale","5. Organising z-index with a Scale",[],{"id":92,"text":93,"level":12,"children":94},"6-negative-z-index","6. Negative z-index",[],{"id":96,"text":97,"level":12,"children":98},"7-the-top-layer-dialog-and-popover","7. The Top Layer: dialog and popover",[],{"id":100,"text":101,"level":12,"children":102},"8-how-to-debug-a-layering-bug","8. How to Debug a Layering Bug",[],{"id":104,"text":105,"level":12,"children":106},"9-common-mistakes","9. Common Mistakes",[],{"id":108,"text":109,"level":12,"children":110},"key-takeaways","Key Takeaways",[],[112,116,119,122,125,128],{"id":113,"language":16,"code":114,"is_editable":115},413,"\u003Cstyle>\n  body { font: 16px system-ui, sans-serif; padding: 24px; }\n  .stage { position: relative; height: 200px; }\n  .card { position: absolute; width: 140px; height: 100px; color: #fff; padding: 8px; }\n  .a { background: #e76f51; top: 0; left: 0; z-index: 1; }\n  .b { background: #2a9d8f; top: 30px; left: 60px; z-index: 3; }\n  .c { background: #264653; top: 60px; left: 120px; z-index: 2; }\n\u003C\u002Fstyle>\n\u003Cdiv class='stage'>\n  \u003Cdiv class='card a'>A z-index 1\u003C\u002Fdiv>\n  \u003Cdiv class='card b'>B z-index 3\u003C\u002Fdiv>\n  \u003Cdiv class='card c'>C z-index 2\u003C\u002Fdiv>\n\u003C\u002Fdiv>",true,{"id":117,"language":16,"code":118,"is_editable":115},414,"\u003Cstyle>\n  body { font: 16px system-ui, sans-serif; padding: 24px; }\n  .wrap { display: flex; gap: 16px; }\n  .ctx { position: relative; width: 200px; height: 120px; padding: 8px; color: #fff; }\n  .ctx1 { background: #264653; z-index: 1; }\n  .ctx2 { background: #e9c46a; color: #000; z-index: 2; margin-left: -80px; }\n  .inner { position: absolute; bottom: 8px; right: 8px; width: 140px; height: 50px; background: #e63946; z-index: 9999; }\n\u003C\u002Fstyle>\n\u003Cdiv class='wrap'>\n  \u003Cdiv class='ctx ctx1'>Context 1 (z 1)\u003Cdiv class='inner'>z-index 9999\u003C\u002Fdiv>\u003C\u002Fdiv>\n  \u003Cdiv class='ctx ctx2'>Context 2 (z 2)\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003Cp>The red box has z-index 9999 but stays behind Context 2, because it is trapped in Context 1.\u003C\u002Fp>",{"id":120,"language":16,"code":121,"is_editable":115},415,"\u003Cstyle>\n  body { font: 16px system-ui, sans-serif; padding: 24px; }\n  .panel { position: relative; padding: 20px; background: #f1f1f1; border-radius: 12px; }\n  .panel.isolated { isolation: isolate; }\n  .panel::before { content: ''; position: absolute; inset: 10px; background: #8ecae6; z-index: -1; border-radius: 10px; }\n  .row { display: flex; gap: 24px; }\n  .row > div { flex: 1; }\n\u003C\u002Fstyle>\n\u003Cdiv class='row'>\n  \u003Cdiv>\u003Cp>Without isolation (background may hide)\u003C\u002Fp>\u003Cdiv class='panel'>Panel content\u003C\u002Fdiv>\u003C\u002Fdiv>\n  \u003Cdiv>\u003Cp>With isolation: isolate\u003C\u002Fp>\u003Cdiv class='panel isolated'>Panel content\u003C\u002Fdiv>\u003C\u002Fdiv>\n\u003C\u002Fdiv>",{"id":123,"language":16,"code":124,"is_editable":115},416,"\u003Cstyle>\n  :root {\n    --z-base: 0;\n    --z-dropdown: 100;\n    --z-sticky: 200;\n    --z-overlay: 300;\n    --z-modal: 400;\n    --z-toast: 500;\n  }\n  body { font: 16px system-ui, sans-serif; margin: 0; min-height: 260px; position: relative; }\n  .nav { position: sticky; top: 0; z-index: var(--z-sticky); background: #264653; color: #fff; padding: 12px; }\n  .menu { position: absolute; top: 44px; left: 12px; z-index: var(--z-dropdown); background: #fff; color: #000; border: 1px solid #ccc; padding: 8px 16px; }\n  .overlay { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: var(--z-overlay); }\n  .modal { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: #fff; padding: 24px; z-index: var(--z-modal); border-radius: 12px; }\n\u003C\u002Fstyle>\n\u003Cdiv class='nav'>Navigation\u003Cdiv class='menu'>Dropdown item\u003C\u002Fdiv>\u003C\u002Fdiv>\n\u003Cdiv class='overlay'>\u003C\u002Fdiv>\n\u003Cdiv class='modal'>Modal above overlay, overlay above nav\u003C\u002Fdiv>",{"id":126,"language":16,"code":127,"is_editable":115},417,"\u003Cstyle>\n  body { font: 16px system-ui, sans-serif; padding: 24px; }\n  dialog { border: 0; border-radius: 12px; padding: 24px; box-shadow: 0 10px 40px rgba(0,0,0,.3); }\n  dialog::backdrop { background: rgba(0, 0, 0, .5); }\n\u003C\u002Fstyle>\n\u003Cbutton id='open'>Open modal (top layer)\u003C\u002Fbutton>\n\u003Cdialog id='dlg'>\n  \u003Ch3>Native dialog\u003C\u002Fh3>\n  \u003Cp>No z-index needed. It is rendered in the top layer.\u003C\u002Fp>\n  \u003Cbutton id='close'>Close\u003C\u002Fbutton>\n\u003C\u002Fdialog>\n\u003Cscript>\n  var dlg = document.getElementById('dlg');\n  document.getElementById('open').addEventListener('click', function () { dlg.showModal(); });\n  document.getElementById('close').addEventListener('click', function () { dlg.close(); });\n\u003C\u002Fscript>",{"id":129,"language":130,"code":131,"is_editable":115},418,"javascript","const creators = [\n  'position + z-index (not auto)',\n  'opacity \u003C 1',\n  'transform',\n  'filter',\n  'isolation: isolate',\n  'will-change: transform',\n  'flex or grid item with z-index'\n];\n\ncreators.forEach(function (item, index) {\n  console.log((index + 1) + '. Creates a stacking context: ' + item);\n});",[133,140],{"id":134,"title":135,"slug":136,"prompt":137,"starter_code":138,"expected_output":139,"language":16,"order_index":23},159,"Fix the Hidden Dropdown","fix-hidden-dropdown","The dropdown appears behind the next card even though it has z-index 50. Find the stacking context problem and fix it so the dropdown shows above the second card.","\u003Cstyle>\n  .card { position: relative; padding: 20px; background: #eee; margin-bottom: 10px; }\n  .card.one { opacity: .99; }\n  .card.two { z-index: 1; background: #ccc; }\n  .drop { position: absolute; top: 60px; left: 10px; width: 160px; padding: 10px; background: gold; z-index: 50; }\n\u003C\u002Fstyle>\n\u003Cdiv class='card one'>Card 1\u003Cdiv class='drop'>Dropdown\u003C\u002Fdiv>\u003C\u002Fdiv>\n\u003Cdiv class='card two'>Card 2\u003C\u002Fdiv>","Dropdown is visible above Card 2 after giving Card 1 a higher z-index or removing the accidental stacking context",{"id":141,"title":142,"slug":143,"prompt":144,"starter_code":145,"expected_output":146,"language":16,"order_index":12},160,"Build a Z-index Scale","build-z-index-scale","Create custom properties for dropdown, sticky, overlay and modal layers and use them on four elements so that modal is above overlay, overlay is above sticky and sticky is above dropdown.","\u003Cstyle>\n  :root { \u002F* define your scale here *\u002F }\n  .dropdown { }\n  .sticky { }\n  .overlay { }\n  .modal { }\n\u003C\u002Fstyle>","Variables like --z-dropdown, --z-sticky, --z-overlay, --z-modal with increasing values and used through var()","2026-09-30T18:00:08+00:00",{"id":149,"slug":150,"title":151},117,"position-relative-absolute-fixed-sticky","Position (relative, absolute, fixed, sticky)",{"id":153,"slug":154,"title":155},119,"float-and-clear","Float & Clear (Legacy, and Why to Avoid It)",{"data":157},[158,478],{"id":23,"name":15,"slug":159,"icon":5,"icon_url":5,"short_description":160,"meta_title":161,"meta_description":162,"og_image":163,"locale":164,"subcategories":165},"html-tutorial","Welcome to our HTML Tutorial for Beginners, a complete guide designed to help you learn HTML from the ground up.\n\nHTML, which stands for HyperText Markup Language, is the standard language used to structure content on the web. Whether you want to become a web developer, build your own website, or continue learning CSS and JavaScript, understanding HTML is an essential first step.\n\nThis HTML course takes you through the fundamentals step by step, using simple explanations and practical examples. ","HTML Tutorial for Beginners - Learn HTML Step by Step","Learn HTML from scratch with our beginner-friendly HTML tutorial. Understand HTML tags, elements, forms, tables, links, images, semantic HTML and more with practical examples.","https:\u002F\u002Fwpfsharp.com\u002Fstorage\u002Fcourses\u002Fog\u002F01M2GK0XN45C0B937NF9XFAD4S.webp","en",[166,190,226,250,326,360,374,402,426,442],{"id":23,"name":167,"slug":168,"order_index":23,"topics":169},"HTML Fundamentals & Setup","html-fundamentals-setup",[170,173,176,179,183,187],{"id":12,"title":171,"slug":172,"order_index":23,"cornerstone":52,"reading_time_minutes":12},"HTML Editors & Environment Setup","html-editors-and-environment-setup",{"id":23,"title":174,"slug":175,"order_index":23,"cornerstone":52,"reading_time_minutes":23},"HTML Introduction & History","html-introduction-and-history",{"id":65,"title":177,"slug":178,"order_index":65,"cornerstone":52,"reading_time_minutes":12},"HTML Basic Syntax & Document Structure","html-basic-syntax-document-structure",{"id":180,"title":181,"slug":182,"order_index":180,"cornerstone":52,"reading_time_minutes":12},4,"HTML Elements & Tags Explained","html-elements-tags-explained",{"id":184,"title":185,"slug":186,"order_index":184,"cornerstone":52,"reading_time_minutes":12},5,"HTML Attributes (Global & Standard)","html-attributes-global-standard",{"id":51,"title":188,"slug":189,"order_index":51,"cornerstone":52,"reading_time_minutes":12},"Understanding the DOCTYPE & HTML5 Boilerplate","understanding-doctype-html5-boilerplate",{"id":12,"name":191,"slug":192,"order_index":12,"topics":193},"Text & Content Basics","text-content-basics",[194,198,202,206,210,214,218,222],{"id":195,"title":196,"slug":197,"order_index":195,"cornerstone":52,"reading_time_minutes":12},7,"HTML Headings (H1–H6) & SEO Best Practices","html-headings-h1-h6-seo-best-practices",{"id":199,"title":200,"slug":201,"order_index":199,"cornerstone":52,"reading_time_minutes":12},8,"HTML Paragraphs & Line Breaks","html-paragraphs-line-breaks",{"id":203,"title":204,"slug":205,"order_index":203,"cornerstone":52,"reading_time_minutes":23},9,"HTML Text Formatting (Bold, Italic, Mark, etc.)","html-text-formatting-bold-italic-mark",{"id":207,"title":208,"slug":209,"order_index":207,"cornerstone":52,"reading_time_minutes":12},10,"HTML Styles (Inline CSS Basics)","html-styles-inline-css-basics",{"id":211,"title":212,"slug":213,"order_index":211,"cornerstone":52,"reading_time_minutes":12},11,"HTML Quotations & Citations (blockquote, q, cite)","html-quotations-citations-blockquote-q-cite",{"id":215,"title":216,"slug":217,"order_index":215,"cornerstone":52,"reading_time_minutes":12},12,"HTML Comments (Best Practices)","html-comments-best-practices",{"id":219,"title":220,"slug":221,"order_index":219,"cornerstone":52,"reading_time_minutes":12},13,"HTML Colors (Names, HEX, RGB, HSL)","html-colors-names-hex-rgb-hsl",{"id":223,"title":224,"slug":225,"order_index":223,"cornerstone":52,"reading_time_minutes":12},14,"HTML & CSS Integration (Inline, Internal, External)","html-css-integration-inline-internal-external",{"id":65,"name":227,"slug":228,"order_index":65,"topics":229},"Links, Media & Navigation","links-media-navigation",[230,234,238,242,246],{"id":231,"title":232,"slug":233,"order_index":231,"cornerstone":52,"reading_time_minutes":12},15,"HTML Links (Anchor Tags & Hyperlinks)","html-links-anchor-tags-hyperlinks",{"id":235,"title":236,"slug":237,"order_index":235,"cornerstone":52,"reading_time_minutes":12},16,"HTML Images (Alt Text, Lazy Loading, Formats)","html-images-alt-text-lazy-loading-formats",{"id":239,"title":240,"slug":241,"order_index":239,"cornerstone":52,"reading_time_minutes":23},17,"HTML Favicon Setup","html-favicon-setup",{"id":243,"title":244,"slug":245,"order_index":243,"cornerstone":52,"reading_time_minutes":12},18,"HTML Page Title & Meta Tags (SEO Essentials)","html-page-title-meta-tags-seo-essentials",{"id":247,"title":248,"slug":249,"order_index":247,"cornerstone":52,"reading_time_minutes":12},19,"HTML File Paths (Absolute vs Relative)","html-file-paths-absolute-vs-relative",{"id":180,"name":251,"slug":252,"order_index":180,"topics":253},"Structuring Content","structuring-content",[254,259,264,269,274,278,282,286,290,294,298,302,306,310,314,318,322],{"id":255,"title":256,"slug":257,"order_index":258,"cornerstone":52,"reading_time_minutes":12},24,"HTML Tables Explained: Rows, Columns & Merging Cells","html-tables-rows-columns-merging-cells",20,{"id":260,"title":261,"slug":262,"order_index":263,"cornerstone":52,"reading_time_minutes":12},25,"HTML Lists: Ordered, Unordered & Description Lists","html-lists-ordered-unordered-description",21,{"id":265,"title":266,"slug":267,"order_index":268,"cornerstone":52,"reading_time_minutes":12},26,"HTML Block vs Inline Elements Explained","html-block-vs-inline-elements",22,{"id":270,"title":271,"slug":272,"order_index":273,"cornerstone":52,"reading_time_minutes":23},27,"HTML Div & Span: Generic Containers Explained","html-div-and-span-containers",23,{"id":275,"title":276,"slug":277,"order_index":255,"cornerstone":52,"reading_time_minutes":12},28,"HTML Classes vs ID: Selectors Explained","html-classes-vs-id-selectors-explained",{"id":279,"title":280,"slug":281,"order_index":260,"cornerstone":52,"reading_time_minutes":23},29,"HTML Iframes: Embedding External Content","html-iframes-embedding-content",{"id":283,"title":284,"slug":285,"order_index":265,"cornerstone":52,"reading_time_minutes":12},30,"HTML Head Element Deep Dive","html-head-element-deep-dive",{"id":287,"title":288,"slug":289,"order_index":270,"cornerstone":52,"reading_time_minutes":12},31,"HTML Layout Techniques: Header, Nav & Footer","html-layout-techniques-header-nav-footer",{"id":291,"title":292,"slug":293,"order_index":275,"cornerstone":52,"reading_time_minutes":12},32,"Responsive HTML Design: Mobile-First Approach","responsive-html-design-mobile-first-approach",{"id":295,"title":296,"slug":297,"order_index":279,"cornerstone":52,"reading_time_minutes":65},74,"HTML Semantic Elements (article, section, aside, nav)","html-semantic-elements-article-section-aside-nav",{"id":299,"title":300,"slug":301,"order_index":283,"cornerstone":52,"reading_time_minutes":12},75,"HTML Style Guide & Coding Conventions","html-style-guide-coding-conventions",{"id":303,"title":304,"slug":305,"order_index":287,"cornerstone":52,"reading_time_minutes":12},76,"HTML Entities & Special Characters","html-entities-special-characters",{"id":307,"title":308,"slug":309,"order_index":291,"cornerstone":52,"reading_time_minutes":23},77,"HTML Symbols","html-symbols",{"id":311,"title":312,"slug":313,"order_index":311,"cornerstone":52,"reading_time_minutes":23},33,"HTML Emojis 😀: How to Use Them in Web Pages","html-emojis-trending-guide",{"id":315,"title":316,"slug":317,"order_index":315,"cornerstone":52,"reading_time_minutes":12},34,"HTML Character Sets: UTF-8 & Encoding Explained","html-character-sets-utf-8-encoding",{"id":319,"title":320,"slug":321,"order_index":319,"cornerstone":52,"reading_time_minutes":23},35,"HTML URL Encoding Explained","html-url-encoding-explained",{"id":323,"title":324,"slug":325,"order_index":323,"cornerstone":52,"reading_time_minutes":23},36,"HTML vs XHTML: Key Differences","html-vs-xhtml-key-differences",{"id":195,"name":327,"slug":328,"order_index":184,"topics":329},"Forms & User Input","forms-user-input",[330,335,340,345,350,355],{"id":331,"title":332,"slug":333,"order_index":334,"cornerstone":52,"reading_time_minutes":12},49,"HTML Forms Introduction","html-forms-introduction",37,{"id":336,"title":337,"slug":338,"order_index":339,"cornerstone":52,"reading_time_minutes":23},50,"HTML Form Attributes (action, method, etc.)","html-form-attributes-action-method",38,{"id":341,"title":342,"slug":343,"order_index":344,"cornerstone":52,"reading_time_minutes":23},51,"HTML Form Elements (input, select, textarea, button)","html-form-elements-input-select-textarea-button",39,{"id":346,"title":347,"slug":348,"order_index":349,"cornerstone":52,"reading_time_minutes":12},52,"HTML Input Types (Modern Types: email, date, color, range)","html-input-types-modern-email-date-color-range",40,{"id":351,"title":352,"slug":353,"order_index":354,"cornerstone":52,"reading_time_minutes":12},53,"HTML Input Attributes (required, placeholder, pattern)","html-input-attributes-required-placeholder-pattern",41,{"id":356,"title":357,"slug":358,"order_index":359,"cornerstone":52,"reading_time_minutes":12},54,"HTML Form Validation (Client-Side)","html-form-validation-client-side",42,{"id":199,"name":361,"slug":362,"order_index":51,"topics":363},"Graphics & Visuals","graphics-visuals",[364,369],{"id":365,"title":366,"slug":367,"order_index":368,"cornerstone":52,"reading_time_minutes":65},55,"HTML Canvas (2D Drawing API) 🔥","html-canvas-2d-drawing-api",43,{"id":370,"title":371,"slug":372,"order_index":373,"cornerstone":52,"reading_time_minutes":65},56,"HTML SVG (Scalable Vector Graphics)","html-svg-scalable-vector-graphics",44,{"id":203,"name":375,"slug":376,"order_index":195,"topics":377},"Multimedia","multimedia",[378,383,388,393,398],{"id":379,"title":380,"slug":381,"order_index":382,"cornerstone":52,"reading_time_minutes":12},57,"HTML Media Overview","html-media-overview",45,{"id":384,"title":385,"slug":386,"order_index":387,"cornerstone":52,"reading_time_minutes":12},58,"HTML Video Embedding (Native Player)","html-video-embedding-native-player",46,{"id":389,"title":390,"slug":391,"order_index":392,"cornerstone":52,"reading_time_minutes":12},59,"HTML Audio Embedding","html-audio-embedding",47,{"id":394,"title":395,"slug":396,"order_index":397,"cornerstone":52,"reading_time_minutes":12},60,"HTML Plug-ins (Object & Embed Tags)","html-plugins-object-embed-tags",48,{"id":399,"title":400,"slug":401,"order_index":331,"cornerstone":52,"reading_time_minutes":12},61,"Embedding YouTube Videos in HTML","embedding-youtube-videos-in-html",{"id":207,"name":403,"slug":404,"order_index":199,"topics":405},"HTML5 Web APIs (Advanced\u002FTrending)","html5-web-apis-advancedtrending",[406,410,414,418,422],{"id":407,"title":408,"slug":409,"order_index":336,"cornerstone":52,"reading_time_minutes":12},62,"HTML Geolocation API","html-geolocation-api",{"id":411,"title":412,"slug":413,"order_index":341,"cornerstone":52,"reading_time_minutes":12},63,"HTML Drag & Drop API","html-drag-and-drop-api",{"id":415,"title":416,"slug":417,"order_index":346,"cornerstone":52,"reading_time_minutes":12},64,"HTML Web Storage (localStorage & sessionStorage)","html-web-storage-localstorage-sessionstorage",{"id":419,"title":420,"slug":421,"order_index":351,"cornerstone":52,"reading_time_minutes":12},65,"HTML Web Workers (Background Processing)","html-web-workers-background-processing",{"id":423,"title":424,"slug":425,"order_index":356,"cornerstone":52,"reading_time_minutes":12},66,"HTML Server-Sent Events (SSE)","html-server-sent-events-sse",{"id":211,"name":427,"slug":428,"order_index":203,"topics":429},"Accessibility & Best Practices (High-Demand  Skill) �","accessibility-best-practices-high-demand-skill",[430,434,438],{"id":431,"title":432,"slug":433,"order_index":365,"cornerstone":52,"reading_time_minutes":12},67,"HTML Accessibility (ARIA, Screen Readers)","html-accessibility-aria-screen-readers",{"id":435,"title":436,"slug":437,"order_index":370,"cornerstone":52,"reading_time_minutes":12},68,"Writing Semantic & SEO-Friendly HTML","writing-semantic-and-seo-friendly-html",{"id":439,"title":440,"slug":441,"order_index":379,"cornerstone":52,"reading_time_minutes":12},69,"HTML Performance Optimization Basics","html-performance-optimization-basics",{"id":215,"name":443,"slug":444,"order_index":207,"topics":445},"Reference & Practice","reference-practice",[446,450,454,458,462,466,470,474],{"id":447,"title":448,"slug":449,"order_index":23,"cornerstone":52,"reading_time_minutes":12},70,"HTML Tag List (Full Reference)","html-tag-list-full-reference",{"id":451,"title":452,"slug":453,"order_index":12,"cornerstone":52,"reading_time_minutes":12},71,"HTML Global Attributes Reference","html-global-attributes-reference",{"id":455,"title":456,"slug":457,"order_index":65,"cornerstone":52,"reading_time_minutes":12},72,"HTML Events Reference","html-events-reference",{"id":459,"title":460,"slug":461,"order_index":180,"cornerstone":52,"reading_time_minutes":12},73,"HTML Browser Support & Compatibility","html-browser-support-compatibility",{"id":463,"title":464,"slug":465,"order_index":184,"cornerstone":52,"reading_time_minutes":12},78,"HTML Doctypes Reference","html-doctypes-reference",{"id":467,"title":468,"slug":469,"order_index":51,"cornerstone":52,"reading_time_minutes":12},79,"HTTP Methods & Messages (Basics for Forms\u002FAPIs)","http-methods-messages-basics",{"id":471,"title":472,"slug":473,"order_index":195,"cornerstone":52,"reading_time_minutes":65},80,"HTML Interview Preparation (Top Q&A)","html-interview-preparation-top-qa",{"id":475,"title":476,"slug":477,"order_index":199,"cornerstone":52,"reading_time_minutes":23},81,"HTML Quiz & Practice Exercises","html-quiz-practice-exercises",{"id":12,"name":9,"slug":10,"icon":5,"icon_url":5,"short_description":479,"meta_title":480,"meta_description":481,"og_image":5,"locale":164,"subcategories":482},"Master CSS from basics to advanced. Learn styling, layouts, Flexbox, Grid, and responsive design with practical examples.","CSS Course - Learn CSS from Scratch to Advanced","Learn CSS (Cascading Style Sheets) step by step. Master selectors, layouts, Flexbox, Grid, animations, and responsive web design with hands-on examples.",[483,512,536,572,604,636,668,689,717,745],{"id":273,"name":484,"slug":485,"order_index":486,"topics":487},"UI Components","ui-components",0,[488,492,496,500,504,508],{"id":489,"title":490,"slug":491,"order_index":399,"cornerstone":52,"reading_time_minutes":51},148,"CSS Buttons: Variants, States, Sizes and Accessible Button Design","css-buttons",{"id":493,"title":494,"slug":495,"order_index":407,"cornerstone":52,"reading_time_minutes":51},149,"CSS Card Component: Layouts with Flexbox, Grid, Container Queries and Subgrid","css-cards",{"id":497,"title":498,"slug":499,"order_index":411,"cornerstone":52,"reading_time_minutes":195},150,"CSS Navbar and Dropdown Menus: Responsive, Sticky and Accessible Navigation","css-navbar-dropdowns",{"id":501,"title":502,"slug":503,"order_index":415,"cornerstone":52,"reading_time_minutes":51},151,"HTML and CSS Forms and Inputs: Styled, Accessible and Validated Form Controls","css-forms-inputs",{"id":505,"title":506,"slug":507,"order_index":419,"cornerstone":52,"reading_time_minutes":51},152,"CSS Tooltips and Popovers: Popover API, Anchor Positioning and Accessible Overlays","css-tooltips-popovers",{"id":509,"title":510,"slug":511,"order_index":423,"cornerstone":52,"reading_time_minutes":51},153,"Pagination and Breadcrumbs: Accessible Navigation Patterns with HTML, CSS and Schema","pagination-breadcrumbs",{"id":219,"name":513,"slug":514,"order_index":486,"topics":515},"CSS Fundamentals & Setup","css-fundamentals-setup",[516,520,524,528,532],{"id":517,"title":518,"slug":519,"order_index":23,"cornerstone":52,"reading_time_minutes":180},82,"CSS Introduction & History: What Is CSS and Why It Matters","css-introduction-and-history",{"id":521,"title":522,"slug":523,"order_index":12,"cornerstone":52,"reading_time_minutes":180},83,"CSS Syntax & How Browsers Apply Styles","css-syntax-how-browsers-apply-styles",{"id":525,"title":526,"slug":527,"order_index":65,"cornerstone":52,"reading_time_minutes":65},84,"Setting Up Your CSS Workspace: Linking Files & Live Server","setting-up-css-workspace-linking-files-live-server",{"id":529,"title":530,"slug":531,"order_index":180,"cornerstone":52,"reading_time_minutes":65},85,"CSS Comments & Code Formatting Best Practices","css-comments-and-code-formatting",{"id":533,"title":534,"slug":535,"order_index":184,"cornerstone":52,"reading_time_minutes":184},86,"Browser DevTools for CSS: Inspect, Debug & Edit Styles Live","browser-devtools-for-css",{"id":223,"name":537,"slug":538,"order_index":486,"topics":539},"Selectors & the Cascade","selectors-the-cascade",[540,544,548,552,556,560,564,568],{"id":541,"title":542,"slug":543,"order_index":51,"cornerstone":52,"reading_time_minutes":180},87,"CSS Basic Selectors: Type, Class, ID, Universal & Grouping","css-basic-selectors",{"id":545,"title":546,"slug":547,"order_index":195,"cornerstone":52,"reading_time_minutes":180},88,"CSS Combinators: Descendant, Child, Adjacent & General Sibling","css-combinators",{"id":549,"title":550,"slug":551,"order_index":199,"cornerstone":52,"reading_time_minutes":180},89,"CSS Attribute Selectors: [attr], ^=, $=, *= and More","css-attribute-selectors",{"id":553,"title":554,"slug":555,"order_index":203,"cornerstone":52,"reading_time_minutes":51},90,"CSS Pseudo-classes: :hover, :focus, :nth-child & Modern Selectors","css-pseudo-classes",{"id":557,"title":558,"slug":559,"order_index":207,"cornerstone":52,"reading_time_minutes":184},91,"CSS Pseudo-elements (::before, ::after)","css-pseudo-elements-before-after",{"id":561,"title":562,"slug":563,"order_index":211,"cornerstone":52,"reading_time_minutes":184},92,"Modern CSS Selectors: :is(), :where(), :has()","modern-css-selectors-is-where-has",{"id":565,"title":566,"slug":567,"order_index":215,"cornerstone":52,"reading_time_minutes":180},93,"CSS Specificity Explained","css-specificity-explained",{"id":569,"title":570,"slug":571,"order_index":219,"cornerstone":52,"reading_time_minutes":184},94,"Cascade, Inheritance & !important","css-cascade-inheritance-important",{"id":231,"name":573,"slug":574,"order_index":486,"topics":575},"Colors, Backgrounds & Effects","colors-backgrounds-effects",[576,580,584,588,592,596,600],{"id":577,"title":578,"slug":579,"order_index":223,"cornerstone":52,"reading_time_minutes":184},95,"CSS Colors (HEX, RGB, HSL, OKLCH)","css-colors-hex-rgb-hsl-oklch",{"id":581,"title":582,"slug":583,"order_index":231,"cornerstone":52,"reading_time_minutes":180},96,"CSS Backgrounds","css-backgrounds",{"id":585,"title":586,"slug":587,"order_index":235,"cornerstone":52,"reading_time_minutes":184},97,"CSS Gradients (Linear, Radial, Conic)","css-gradients-linear-radial-conic",{"id":589,"title":590,"slug":591,"order_index":239,"cornerstone":52,"reading_time_minutes":184},98,"CSS Borders, Outlines & Rounded Corners","css-borders-outlines-rounded-corners",{"id":593,"title":594,"slug":595,"order_index":243,"cornerstone":52,"reading_time_minutes":51},99,"CSS Box Shadow & Text Shadow","css-box-shadow-text-shadow",{"id":597,"title":598,"slug":599,"order_index":247,"cornerstone":52,"reading_time_minutes":184},100,"CSS Opacity & Blend Modes","css-opacity-blend-modes",{"id":601,"title":602,"slug":603,"order_index":258,"cornerstone":52,"reading_time_minutes":51},101,"CSS Filters & backdrop-filter (Glassmorphism)","css-filters-backdrop-filter-glassmorphism",{"id":235,"name":605,"slug":606,"order_index":486,"topics":607},"Box Model & Spacing","box-model-spacing",[608,612,616,620,624,628,632],{"id":609,"title":610,"slug":611,"order_index":263,"cornerstone":52,"reading_time_minutes":195},102,"The CSS Box Model: Content, Padding, Border and Margin","css-box-model",{"id":613,"title":614,"slug":615,"order_index":268,"cornerstone":52,"reading_time_minutes":195},103,"CSS Margin and Margin Collapse","css-margin-and-margin-collapse",{"id":617,"title":618,"slug":619,"order_index":273,"cornerstone":52,"reading_time_minutes":51},104,"CSS Padding: Shorthand, Percentages and Best Practices","css-padding",{"id":621,"title":622,"slug":623,"order_index":255,"cornerstone":52,"reading_time_minutes":203},105,"CSS Width, Height, Min-Width, Max-Width, Min-Height & Max-Height","css-width-height-min-max",{"id":625,"title":626,"slug":627,"order_index":260,"cornerstone":52,"reading_time_minutes":184},106,"CSS box-sizing: content-box vs border-box","css-box-sizing",{"id":629,"title":630,"slug":631,"order_index":265,"cornerstone":52,"reading_time_minutes":195},107,"CSS Overflow: hidden, scroll, auto, clip and Text Truncation","css-overflow",{"id":633,"title":634,"slug":635,"order_index":270,"cornerstone":52,"reading_time_minutes":195},108,"CSS Units: px, rem, em, %, vw, vh and dvh","css-units",{"id":239,"name":637,"slug":638,"order_index":486,"topics":639},"Typography & Text","typography-text",[640,644,648,652,656,660,664],{"id":641,"title":642,"slug":643,"order_index":275,"cornerstone":52,"reading_time_minutes":195},109,"CSS Text Properties: Alignment, Spacing, Decoration and Wrapping","css-text-properties",{"id":645,"title":646,"slug":647,"order_index":279,"cornerstone":52,"reading_time_minutes":195},110,"CSS Fonts and font-family: Font Stacks, Weights and System Fonts","css-fonts-font-family",{"id":649,"title":650,"slug":651,"order_index":283,"cornerstone":52,"reading_time_minutes":195},111,"Web Fonts: Google Fonts, @font-face and Variable Fonts","web-fonts",{"id":653,"title":654,"slug":655,"order_index":287,"cornerstone":52,"reading_time_minutes":195},112,"CSS Text Effects: text-wrap balance, line-clamp, Ellipsis and More","css-text-effects",{"id":657,"title":658,"slug":659,"order_index":291,"cornerstone":52,"reading_time_minutes":199},113,"Styling Links","styling-links-css",{"id":661,"title":662,"slug":663,"order_index":311,"cornerstone":52,"reading_time_minutes":195},114,"Styling Lists & Tables","styling-lists-and-tables-css",{"id":665,"title":666,"slug":667,"order_index":315,"cornerstone":52,"reading_time_minutes":207},115,"Icons (SVG & Icon Fonts)","icons-svg-and-icon-fonts",{"id":243,"name":43,"slug":44,"order_index":486,"topics":669},[670,674,675,676,677,681,685],{"id":671,"title":672,"slug":673,"order_index":319,"cornerstone":52,"reading_time_minutes":195},116,"Display & Inline-block","display-and-inline-block",{"id":149,"title":151,"slug":150,"order_index":323,"cornerstone":52,"reading_time_minutes":51},{"id":37,"title":38,"slug":39,"order_index":334,"cornerstone":52,"reading_time_minutes":51},{"id":153,"title":155,"slug":154,"order_index":339,"cornerstone":52,"reading_time_minutes":184},{"id":678,"title":679,"slug":680,"order_index":344,"cornerstone":52,"reading_time_minutes":51},120,"Centering Techniques","centering-techniques",{"id":682,"title":683,"slug":684,"order_index":349,"cornerstone":52,"reading_time_minutes":195},121,"aspect-ratio & object-fit","aspect-ratio-and-object-fit",{"id":686,"title":687,"slug":688,"order_index":354,"cornerstone":52,"reading_time_minutes":199},122,"Website Layout Basics","website-layout-basics",{"id":258,"name":690,"slug":691,"order_index":486,"topics":692},"The Modern CSS Toolkit","the-modern-css-toolkit",[693,697,701,705,709,713],{"id":694,"title":695,"slug":696,"order_index":359,"cornerstone":52,"reading_time_minutes":199},129,"CSS Variables (Custom Properties)","css-variables-custom-properties",{"id":698,"title":699,"slug":700,"order_index":368,"cornerstone":52,"reading_time_minutes":199},130,"Math Functions (calc, min, max, clamp)","math-functions-calc-min-max-clamp",{"id":702,"title":703,"slug":704,"order_index":373,"cornerstone":52,"reading_time_minutes":195},131,"Native CSS Nesting","native-css-nesting",{"id":706,"title":707,"slug":708,"order_index":382,"cornerstone":52,"reading_time_minutes":195},132,"Cascade Layers (@layer)","cascade-layers-at-layer",{"id":710,"title":711,"slug":712,"order_index":387,"cornerstone":52,"reading_time_minutes":203},133,"Dark Mode (prefers-color-scheme, light-dark())","dark-mode-prefers-color-scheme-light-dark",{"id":714,"title":715,"slug":716,"order_index":392,"cornerstone":52,"reading_time_minutes":199},134,"CSS Reset & Normalize","css-reset-and-normalize",{"id":263,"name":718,"slug":719,"order_index":486,"topics":720},"Responsive Design","responsive-design",[721,725,729,733,737,741],{"id":722,"title":723,"slug":724,"order_index":397,"cornerstone":52,"reading_time_minutes":203},135,"Mobile-First & the Viewport","mobile-first-and-the-viewport",{"id":726,"title":727,"slug":728,"order_index":331,"cornerstone":52,"reading_time_minutes":199},136,"Media Queries","media-queries",{"id":730,"title":731,"slug":732,"order_index":336,"cornerstone":52,"reading_time_minutes":199},137,"Responsive Images & Video","responsive-images-and-video",{"id":734,"title":735,"slug":736,"order_index":341,"cornerstone":52,"reading_time_minutes":203},138,"Fluid Typography with clamp()","fluid-typography-with-clamp",{"id":738,"title":739,"slug":740,"order_index":346,"cornerstone":52,"reading_time_minutes":203},139,"Container Queries","container-queries",{"id":742,"title":743,"slug":744,"order_index":351,"cornerstone":52,"reading_time_minutes":215},140,"Responsive Navigation Pattern","responsive-navigation-pattern",{"id":268,"name":746,"slug":747,"order_index":486,"topics":748},"Transitions & Animation","transitions-animation",[749,753,757,761,765,769,773],{"id":750,"title":751,"slug":752,"order_index":356,"cornerstone":52,"reading_time_minutes":184},141,"CSS Transitions: Smooth State Changes with transition, @starting-style and allow-discrete","css-transitions",{"id":754,"title":755,"slug":756,"order_index":365,"cornerstone":52,"reading_time_minutes":180},142,"CSS 2D Transforms: translate, rotate, scale, skew and transform-origin","css-2d-transforms",{"id":758,"title":759,"slug":760,"order_index":370,"cornerstone":52,"reading_time_minutes":184},143,"CSS 3D Transforms: perspective, preserve-3d, rotateX\u002FY and backface-visibility","css-3d-transforms",{"id":762,"title":763,"slug":764,"order_index":379,"cornerstone":52,"reading_time_minutes":184},144,"CSS Keyframe Animations: @keyframes, animation shorthand, fill-mode and @property","css-keyframe-animations",{"id":766,"title":767,"slug":768,"order_index":384,"cornerstone":52,"reading_time_minutes":184},145,"CSS Scroll-Driven Animations: animation-timeline, scroll() and view()","css-scroll-driven-animations",{"id":770,"title":771,"slug":772,"order_index":389,"cornerstone":52,"reading_time_minutes":184},146,"CSS View Transitions API: Progressive Enhancement for Page and State Animations","css-view-transitions",{"id":774,"title":775,"slug":776,"order_index":394,"cornerstone":52,"reading_time_minutes":51},147,"Motion Accessibility and Performance: prefers-reduced-motion, will-change and Smooth 60fps Animations","motion-accessibility-prefers-reduced-motion-performance"]