[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-config":3,"topic:css-flexbox-gap":6,"blog-categories":140,"course-tree":164},{"data":4},{"google_site_verification":5,"ga4_measurement_id":5,"site_name":5,"default_og_image":5,"twitter_handle":5},null,{"data":7},{"id":8,"title":9,"slug":10,"content":11,"course":12,"subcategory":15,"author":18,"reading_time_minutes":24,"cornerstone":25,"schema_type":26,"faq_json":5,"video_url":5,"canonical_url":27,"meta_title":28,"meta_description":29,"og_image":5,"toc_json":30,"code_examples":101,"quiz":5,"exercises":122,"published_at":5,"updated_at":131,"prev":132,"next":136},175,"CSS gap, row-gap & column-gap in Flexbox: Modern Spacing","css-flexbox-gap","\u003Ch2 id=\"what-is-the-css-gap-property\">What Is the CSS gap Property?\u003C\u002Fh2>\u003Cp>The \u003Cstrong>gap\u003C\u002Fstrong> property sets the space between flex items inside a flex container. It replaces the old habit of adding margins to every item and then removing the last one. Gap only adds space \u003Cem>between\u003C\u002Fem> items, never on the outer edges, so your spacing stays clean and predictable. It is the modern, recommended way to space flexbox layouts and also works in CSS Grid and multi-column layouts.\u003C\u002Fp>\u003Ch3 id=\"syntax\">Syntax\u003C\u002Fh3>\u003Cpre>\u003Ccode>.container {\n  display: flex;\n  gap: 20px;            \u002F* row and column gap *\u002F\n  gap: 20px 40px;       \u002F* row-gap column-gap *\u002F\n  row-gap: 20px;        \u002F* space between lines *\u002F\n  column-gap: 40px;     \u002F* space between items on a line *\u002F\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>The default value is \u003Ccode>normal\u003C\u002Fcode>, which is 0 in flexbox.\u003C\u002Fp>\u003Ch2 id=\"gap-row-gap-and-column-gap\">gap, row-gap and column-gap\u003C\u002Fh2>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Property\u003C\u002Fth>\u003Cth>What it controls\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>gap\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Shorthand for row-gap and column-gap\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>row-gap\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Space between flex lines (vertical space in a row layout)\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>column-gap\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Space between items on the same line (horizontal space in a row layout)\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Cp>The shorthand order is \u003Cstrong>row-gap first, then column-gap\u003C\u002Fstrong>. If you pass only one value, it is used for both. Note that row-gap and column-gap always refer to the physical layout of rows and columns, not the main axis. In a column direction, column-gap is the space between separate columns (lines), and row-gap is the space between items inside a column.\u003C\u002Fp>\u003Ch2 id=\"allowed-values\">Allowed Values\u003C\u002Fh2>\u003Cul>\u003Cli>Length units: \u003Ccode>10px\u003C\u002Fcode>, \u003Ccode>1rem\u003C\u002Fcode>, \u003Ccode>2em\u003C\u002Fcode>, \u003Ccode>2vw\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>Percentages: \u003Ccode>5%\u003C\u002Fcode> (relative to the container size where it resolves)\u003C\u002Fli>\u003Cli>Functions: \u003Ccode>calc(1rem + 2px)\u003C\u002Fcode>, \u003Ccode>clamp(8px, 2vw, 24px)\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>CSS variables: \u003Ccode>var(--space-md)\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>Keyword: \u003Ccode>normal\u003C\u002Fcode>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Negative values are not allowed.\u003C\u002Fp>\u003Ch2 id=\"gap-vs-margin\">gap vs margin\u003C\u002Fh2>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Feature\u003C\u002Fth>\u003Cth>gap\u003C\u002Fth>\u003Cth>margin\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>Space on outer edges\u003C\u002Ftd>\u003Ctd>None\u003C\u002Ftd>\u003Ctd>Yes, unless removed\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Set on\u003C\u002Ftd>\u003Ctd>The container (once)\u003C\u002Ftd>\u003Ctd>Every item\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Works with wrapping\u003C\u002Ftd>\u003Ctd>Yes, row-gap and column-gap handled\u003C\u002Ftd>\u003Ctd>Needs negative margin tricks\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Works with reordering\u003C\u002Ftd>\u003Ctd>Yes\u003C\u002Ftd>\u003Ctd>:last-child rules break\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>RTL support\u003C\u002Ftd>\u003Ctd>Automatic\u003C\u002Ftd>\u003Ctd>Needs logical margins\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Ch2 id=\"gap-with-flex-wrap\">gap with flex-wrap\u003C\u002Fh2>\u003Cp>The gap property is perfect together with flex-wrap, because it handles spacing both horizontally and vertically when items wrap onto new lines.\u003C\u002Fp>\u003Cpre>\u003Ccode>.cards {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 16px 24px; \u002F* 16px between rows, 24px between columns *\u002F\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2 id=\"gap-and-justify-content\">gap and justify-content\u003C\u002Fh2>\u003Cp>Gap is the \u003Cstrong>minimum\u003C\u002Fstrong> space between items. When you use justify-content: space-between, space-around or space-evenly, the free space is added on top of the gap. If the container is too small to fit items plus gaps, items will wrap (with flex-wrap) or shrink.\u003C\u002Fp>\u003Ch2 id=\"responsive-spacing-with-clamp\">Responsive Spacing with clamp()\u003C\u002Fh2>\u003Cpre>\u003Ccode>.container {\n  display: flex;\n  flex-wrap: wrap;\n  gap: clamp(8px, 2vw, 32px);\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>With clamp(), the gap grows smoothly with the viewport width, but never goes below 8px or above 32px. This is a very popular modern CSS technique for fluid spacing without media queries.\u003C\u002Fp>\u003Ch2 id=\"design-tokens-with-css-variables\">Design Tokens with CSS Variables\u003C\u002Fh2>\u003Cpre>\u003Ccode>:root {\n  --space-sm: 8px;\n  --space-md: 16px;\n  --space-lg: 32px;\n}\n\n.toolbar { display: flex; gap: var(--space-sm); }\n.cards   { display: flex; flex-wrap: wrap; gap: var(--space-md); }\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2 id=\"browser-support\">Browser Support\u003C\u002Fh2>\u003Cp>Flexbox gap is supported in all modern browsers, including Chrome, Edge, Firefox and Safari (Safari from version 14.1). Support in very old browsers is missing, so if you must support legacy browsers, use a margin fallback with @supports.\u003C\u002Fp>\u003Ch2 id=\"common-mistakes\">Common Mistakes\u003C\u002Fh2>\u003Cul>\u003Cli>\u003Cstrong>Expecting gap to add outer padding.\u003C\u002Fstrong> It only adds space between items. Use padding for the container edges.\u003C\u002Fli>\u003Cli>\u003Cstrong>Mixing gap and margins.\u003C\u002Fstrong> The spaces add up and cause uneven spacing.\u003C\u002Fli>\u003Cli>\u003Cstrong>Writing the shorthand in the wrong order.\u003C\u002Fstrong> It is row first, then column.\u003C\u002Fli>\u003Cli>\u003Cstrong>Using negative gap values.\u003C\u002Fstrong> They are invalid.\u003C\u002Fli>\u003Cli>\u003Cstrong>Setting gap on the items.\u003C\u002Fstrong> It belongs on the container.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2 id=\"best-practices\">Best Practices\u003C\u002Fh2>\u003Cul>\u003Cli>Use gap instead of margins for spacing between flex items.\u003C\u002Fli>\u003Cli>Use CSS variables for a consistent spacing scale.\u003C\u002Fli>\u003Cli>Use clamp() for fluid spacing.\u003C\u002Fli>\u003Cli>Use padding on the container for outer spacing.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2 id=\"faq\">FAQ\u003C\u002Fh2>\u003Ch3 id=\"does-gap-work-in-flexbox\">Does gap work in flexbox?\u003C\u002Fh3>\u003Cp>Yes, in all modern browsers.\u003C\u002Fp>\u003Ch3 id=\"what-is-the-difference-between-gap-and-margin\">What is the difference between gap and margin?\u003C\u002Fh3>\u003Cp>Gap adds space only between items and is set once on the container. Margin is set on each item and also adds space outside the first and last item.\u003C\u002Fp>\u003Ch3 id=\"can-i-use-different-gaps-for-rows-and-columns\">Can I use different gaps for rows and columns?\u003C\u002Fh3>\u003Cp>Yes. Use gap: 16px 32px or set row-gap and column-gap separately.\u003C\u002Fp>\u003Ch2 id=\"key-takeaways\">Key Takeaways\u003C\u002Fh2>\u003Cul>\u003Cli>gap adds space between flex items only.\u003C\u002Fli>\u003Cli>Shorthand order: row-gap then column-gap.\u003C\u002Fli>\u003Cli>Works great with flex-wrap, CSS variables and clamp().\u003C\u002Fli>\u003Cli>It is the modern replacement for item margins.\u003C\u002Fli>\u003C\u002Ful>\u003Cdiv class=\"try-it-yourself language-html\">\u003Cpre>\u003Ccode>&lt;style&gt;\n.container{display:flex;gap:20px;padding:10px;background:#ecf0f1;border-radius:8px;}\n.item{background:#3498db;color:#fff;padding:16px 22px;border-radius:6px;font-family:sans-serif;font-weight:bold;}\n&lt;\u002Fstyle&gt;\n&lt;div class='container'&gt;\n&lt;div class='item'&gt;1&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;2&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;3&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.container{display:flex;flex-wrap:wrap;gap:10px 40px;width:300px;padding:10px;background:#ecf0f1;border-radius:8px;}\n.item{background:#27ae60;color:#fff;padding:14px 18px;border-radius:6px;font-family:sans-serif;font-weight:bold;}\n&lt;\u002Fstyle&gt;\n&lt;p style='font-family:sans-serif'&gt;gap: 10px 40px (row-gap column-gap)&lt;\u002Fp&gt;\n&lt;div class='container'&gt;\n&lt;div class='item'&gt;1&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;2&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;3&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;4&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;5&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;6&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.container{display:flex;flex-wrap:wrap;row-gap:30px;column-gap:8px;width:300px;padding:10px;background:#ecf0f1;border-radius:8px;}\n.item{background:#e67e22;color:#fff;padding:14px 18px;border-radius:6px;font-family:sans-serif;font-weight:bold;}\n&lt;\u002Fstyle&gt;\n&lt;p style='font-family:sans-serif'&gt;row-gap: 30px, column-gap: 8px&lt;\u002Fp&gt;\n&lt;div class='container'&gt;\n&lt;div class='item'&gt;1&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;2&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;3&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;4&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;5&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;6&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.container{display:flex;flex-wrap:wrap;gap:clamp(8px,3vw,32px);padding:10px;background:#ecf0f1;border-radius:8px;}\n.item{background:#8e44ad;color:#fff;padding:16px 22px;border-radius:6px;font-family:sans-serif;font-weight:bold;}\n&lt;\u002Fstyle&gt;\n&lt;p style='font-family:sans-serif'&gt;Resize the preview to see fluid spacing with clamp()&lt;\u002Fp&gt;\n&lt;div class='container'&gt;\n&lt;div class='item'&gt;1&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;2&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;3&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;4&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{--space-sm:8px;--space-md:16px;--space-lg:32px;}\n.toolbar{display:flex;gap:var(--space-sm);margin-bottom:16px;}\n.cards{display:flex;flex-wrap:wrap;gap:var(--space-md);}\n.btn{background:#2c3e50;color:#fff;padding:8px 14px;border-radius:6px;font-family:sans-serif;border:none;}\n.card{flex:1 1 120px;background:#16a085;color:#fff;padding:24px;border-radius:8px;font-family:sans-serif;text-align:center;}\n&lt;\u002Fstyle&gt;\n&lt;div class='toolbar'&gt;\n&lt;button class='btn'&gt;Save&lt;\u002Fbutton&gt;\n&lt;button class='btn'&gt;Edit&lt;\u002Fbutton&gt;\n&lt;button class='btn'&gt;Delete&lt;\u002Fbutton&gt;\n&lt;\u002Fdiv&gt;\n&lt;div class='cards'&gt;\n&lt;div class='card'&gt;Card 1&lt;\u002Fdiv&gt;\n&lt;div class='card'&gt;Card 2&lt;\u002Fdiv&gt;\n&lt;div class='card'&gt;Card 3&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.box{display:flex;flex-wrap:wrap;width:300px;padding:10px;background:#ecf0f1;border-radius:8px;}\n.item{background:#c0392b;color:#fff;padding:12px 18px;border-radius:6px;font-family:sans-serif;font-weight:bold;}\n&lt;\u002Fstyle&gt;\n&lt;label style='font-family:sans-serif'&gt;gap: &lt;input type='range' min='0' max='60' value='10' oninput='document.getElementById(`g`).style.gap=this.value+`px`'&gt;&lt;\u002Flabel&gt;\n&lt;div class='box' id='g' style='gap:10px'&gt;\n&lt;div class='item'&gt;1&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;2&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;3&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;4&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;5&lt;\u002Fdiv&gt;\n&lt;div class='item'&gt;6&lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>",{"name":13,"slug":14},"CSS","css",{"name":16,"slug":17},"Container Properties","container-properties",{"slug":19,"display_name":20,"job_title":5,"short_bio":5,"expertise_tags":21,"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":22,"posts":23},"badar-khalil","Badar Khalil",[],[],[],4,false,"Article","https:\u002F\u002Fwpfsharp.com\u002Ftopics\u002Fcss-flexbox-gap","CSS gap, row-gap & column-gap in Flexbox Explained","Learn the CSS gap property for flexbox: gap, row-gap and column-gap with live examples, responsive spacing, browser support and margin comparison.",[31,41,45,49,53,57,61,65,69,73,77,81,97],{"id":32,"text":33,"level":34,"children":35},"what-is-the-css-gap-property","What Is the CSS gap Property?",2,[36],{"id":37,"text":38,"level":39,"children":40},"syntax","Syntax",3,[],{"id":42,"text":43,"level":34,"children":44},"gap-row-gap-and-column-gap","gap, row-gap and column-gap",[],{"id":46,"text":47,"level":34,"children":48},"allowed-values","Allowed Values",[],{"id":50,"text":51,"level":34,"children":52},"gap-vs-margin","gap vs margin",[],{"id":54,"text":55,"level":34,"children":56},"gap-with-flex-wrap","gap with flex-wrap",[],{"id":58,"text":59,"level":34,"children":60},"gap-and-justify-content","gap and justify-content",[],{"id":62,"text":63,"level":34,"children":64},"responsive-spacing-with-clamp","Responsive Spacing with clamp()",[],{"id":66,"text":67,"level":34,"children":68},"design-tokens-with-css-variables","Design Tokens with CSS Variables",[],{"id":70,"text":71,"level":34,"children":72},"browser-support","Browser Support",[],{"id":74,"text":75,"level":34,"children":76},"common-mistakes","Common Mistakes",[],{"id":78,"text":79,"level":34,"children":80},"best-practices","Best Practices",[],{"id":82,"text":83,"level":34,"children":84},"faq","FAQ",[85,89,93],{"id":86,"text":87,"level":39,"children":88},"does-gap-work-in-flexbox","Does gap work in flexbox?",[],{"id":90,"text":91,"level":39,"children":92},"what-is-the-difference-between-gap-and-margin","What is the difference between gap and margin?",[],{"id":94,"text":95,"level":39,"children":96},"can-i-use-different-gaps-for-rows-and-columns","Can I use different gaps for rows and columns?",[],{"id":98,"text":99,"level":34,"children":100},"key-takeaways","Key Takeaways",[],[102,107,110,113,116,119],{"id":103,"language":104,"code":105,"is_editable":106},716,"html","\u003Cstyle>\n.container{display:flex;gap:20px;padding:10px;background:#ecf0f1;border-radius:8px;}\n.item{background:#3498db;color:#fff;padding:16px 22px;border-radius:6px;font-family:sans-serif;font-weight:bold;}\n\u003C\u002Fstyle>\n\u003Cdiv class='container'>\n\u003Cdiv class='item'>1\u003C\u002Fdiv>\n\u003Cdiv class='item'>2\u003C\u002Fdiv>\n\u003Cdiv class='item'>3\u003C\u002Fdiv>\n\u003C\u002Fdiv>",true,{"id":108,"language":104,"code":109,"is_editable":106},717,"\u003Cstyle>\n.container{display:flex;flex-wrap:wrap;gap:10px 40px;width:300px;padding:10px;background:#ecf0f1;border-radius:8px;}\n.item{background:#27ae60;color:#fff;padding:14px 18px;border-radius:6px;font-family:sans-serif;font-weight:bold;}\n\u003C\u002Fstyle>\n\u003Cp style='font-family:sans-serif'>gap: 10px 40px (row-gap column-gap)\u003C\u002Fp>\n\u003Cdiv class='container'>\n\u003Cdiv class='item'>1\u003C\u002Fdiv>\n\u003Cdiv class='item'>2\u003C\u002Fdiv>\n\u003Cdiv class='item'>3\u003C\u002Fdiv>\n\u003Cdiv class='item'>4\u003C\u002Fdiv>\n\u003Cdiv class='item'>5\u003C\u002Fdiv>\n\u003Cdiv class='item'>6\u003C\u002Fdiv>\n\u003C\u002Fdiv>",{"id":111,"language":104,"code":112,"is_editable":106},718,"\u003Cstyle>\n.container{display:flex;flex-wrap:wrap;row-gap:30px;column-gap:8px;width:300px;padding:10px;background:#ecf0f1;border-radius:8px;}\n.item{background:#e67e22;color:#fff;padding:14px 18px;border-radius:6px;font-family:sans-serif;font-weight:bold;}\n\u003C\u002Fstyle>\n\u003Cp style='font-family:sans-serif'>row-gap: 30px, column-gap: 8px\u003C\u002Fp>\n\u003Cdiv class='container'>\n\u003Cdiv class='item'>1\u003C\u002Fdiv>\n\u003Cdiv class='item'>2\u003C\u002Fdiv>\n\u003Cdiv class='item'>3\u003C\u002Fdiv>\n\u003Cdiv class='item'>4\u003C\u002Fdiv>\n\u003Cdiv class='item'>5\u003C\u002Fdiv>\n\u003Cdiv class='item'>6\u003C\u002Fdiv>\n\u003C\u002Fdiv>",{"id":114,"language":104,"code":115,"is_editable":106},719,"\u003Cstyle>\n.container{display:flex;flex-wrap:wrap;gap:clamp(8px,3vw,32px);padding:10px;background:#ecf0f1;border-radius:8px;}\n.item{background:#8e44ad;color:#fff;padding:16px 22px;border-radius:6px;font-family:sans-serif;font-weight:bold;}\n\u003C\u002Fstyle>\n\u003Cp style='font-family:sans-serif'>Resize the preview to see fluid spacing with clamp()\u003C\u002Fp>\n\u003Cdiv class='container'>\n\u003Cdiv class='item'>1\u003C\u002Fdiv>\n\u003Cdiv class='item'>2\u003C\u002Fdiv>\n\u003Cdiv class='item'>3\u003C\u002Fdiv>\n\u003Cdiv class='item'>4\u003C\u002Fdiv>\n\u003C\u002Fdiv>",{"id":117,"language":104,"code":118,"is_editable":106},720,"\u003Cstyle>\n:root{--space-sm:8px;--space-md:16px;--space-lg:32px;}\n.toolbar{display:flex;gap:var(--space-sm);margin-bottom:16px;}\n.cards{display:flex;flex-wrap:wrap;gap:var(--space-md);}\n.btn{background:#2c3e50;color:#fff;padding:8px 14px;border-radius:6px;font-family:sans-serif;border:none;}\n.card{flex:1 1 120px;background:#16a085;color:#fff;padding:24px;border-radius:8px;font-family:sans-serif;text-align:center;}\n\u003C\u002Fstyle>\n\u003Cdiv class='toolbar'>\n\u003Cbutton class='btn'>Save\u003C\u002Fbutton>\n\u003Cbutton class='btn'>Edit\u003C\u002Fbutton>\n\u003Cbutton class='btn'>Delete\u003C\u002Fbutton>\n\u003C\u002Fdiv>\n\u003Cdiv class='cards'>\n\u003Cdiv class='card'>Card 1\u003C\u002Fdiv>\n\u003Cdiv class='card'>Card 2\u003C\u002Fdiv>\n\u003Cdiv class='card'>Card 3\u003C\u002Fdiv>\n\u003C\u002Fdiv>",{"id":120,"language":104,"code":121,"is_editable":106},721,"\u003Cstyle>\n.box{display:flex;flex-wrap:wrap;width:300px;padding:10px;background:#ecf0f1;border-radius:8px;}\n.item{background:#c0392b;color:#fff;padding:12px 18px;border-radius:6px;font-family:sans-serif;font-weight:bold;}\n\u003C\u002Fstyle>\n\u003Clabel style='font-family:sans-serif'>gap: \u003Cinput type='range' min='0' max='60' value='10' oninput='document.getElementById(`g`).style.gap=this.value+`px`'>\u003C\u002Flabel>\n\u003Cdiv class='box' id='g' style='gap:10px'>\n\u003Cdiv class='item'>1\u003C\u002Fdiv>\n\u003Cdiv class='item'>2\u003C\u002Fdiv>\n\u003Cdiv class='item'>3\u003C\u002Fdiv>\n\u003Cdiv class='item'>4\u003C\u002Fdiv>\n\u003Cdiv class='item'>5\u003C\u002Fdiv>\n\u003Cdiv class='item'>6\u003C\u002Fdiv>\n\u003C\u002Fdiv>",[123],{"id":124,"title":125,"slug":126,"prompt":127,"starter_code":128,"expected_output":129,"language":104,"order_index":130},242,"Replace Margins with gap","flexbox-gap-replace-margins","The button group below uses margin-right on each button, which leaves extra space after the last one. Remove the margins and use the gap property on the container instead. Then make the six cards wrap with 16px between rows and 24px between columns.","\u003Cstyle>\n.buttons{display:flex;}\n.buttons button{margin-right:12px;padding:8px 14px;border:none;border-radius:6px;background:#2980b9;color:#fff;}\n\u002F* TODO: remove the margin and use gap on .buttons *\u002F\n\n.cards{\n  display:flex;flex-wrap:wrap;width:320px;margin-top:20px;\n  \u002F* TODO: row gap 16px, column gap 24px using the gap shorthand *\u002F\n}\n.card{width:80px;height:50px;background:#27ae60;border-radius:6px;}\n\u003C\u002Fstyle>\n\u003Cdiv class='buttons'>\n\u003Cbutton>One\u003C\u002Fbutton>\n\u003Cbutton>Two\u003C\u002Fbutton>\n\u003Cbutton>Three\u003C\u002Fbutton>\n\u003C\u002Fdiv>\n\u003Cdiv class='cards'>\n\u003Cdiv class='card'>\u003C\u002Fdiv>\u003Cdiv class='card'>\u003C\u002Fdiv>\u003Cdiv class='card'>\u003C\u002Fdiv>\n\u003Cdiv class='card'>\u003C\u002Fdiv>\u003Cdiv class='card'>\u003C\u002Fdiv>\u003Cdiv class='card'>\u003C\u002Fdiv>\n\u003C\u002Fdiv>","Buttons have 12px between them and no extra space after the last button. Cards wrap with 16px vertical and 24px horizontal spacing.",1,"2026-10-01T16:32:07+00:00",{"id":133,"slug":134,"title":135},180,"css-align-content-6815Ey","CSS align-content: Align Multiple Flex Lines Explained",{"id":137,"slug":138,"title":139},181,"css-gap","CSS gap, row-gap and column-gap in Flexbox and Grid",{"data":141},[142,145,149,154,159],{"name":13,"slug":14,"description":143,"post_count":34,"subcategories":144},"Learn CSS with practical tutorials and examples covering layouts, Flexbox, Grid, responsive design, typography, positioning, animations, and more.",[],{"name":146,"slug":104,"description":147,"post_count":34,"subcategories":148},"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":150,"slug":151,"description":152,"post_count":130,"subcategories":153},"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.",[],{"name":155,"slug":156,"description":157,"post_count":130,"subcategories":158},"Python","python","Learn Python with practical tutorials covering strings, lists, functions, exceptions, files, packages, virtual environments, modules, classes, and beginner programming concepts.",[],{"name":160,"slug":161,"description":162,"post_count":130,"subcategories":163},"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":165},[166,486],{"id":130,"name":146,"slug":167,"icon":5,"icon_url":5,"short_description":168,"meta_title":169,"meta_description":170,"og_image":171,"locale":172,"subcategories":173},"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",[174,198,234,258,334,368,382,410,434,450],{"id":130,"name":175,"slug":176,"order_index":130,"topics":177},"HTML Fundamentals & Setup","html-fundamentals-setup",[178,181,184,187,190,194],{"id":130,"title":179,"slug":180,"order_index":130,"cornerstone":25,"reading_time_minutes":130},"HTML Introduction & History","html-introduction-and-history",{"id":34,"title":182,"slug":183,"order_index":130,"cornerstone":25,"reading_time_minutes":34},"HTML Editors & Environment Setup","html-editors-and-environment-setup",{"id":39,"title":185,"slug":186,"order_index":39,"cornerstone":25,"reading_time_minutes":34},"HTML Basic Syntax & Document Structure","html-basic-syntax-document-structure",{"id":24,"title":188,"slug":189,"order_index":24,"cornerstone":25,"reading_time_minutes":34},"HTML Elements & Tags Explained","html-elements-tags-explained",{"id":191,"title":192,"slug":193,"order_index":191,"cornerstone":25,"reading_time_minutes":34},5,"HTML Attributes (Global & Standard)","html-attributes-global-standard",{"id":195,"title":196,"slug":197,"order_index":195,"cornerstone":25,"reading_time_minutes":34},6,"Understanding the DOCTYPE & HTML5 Boilerplate","understanding-doctype-html5-boilerplate",{"id":34,"name":199,"slug":200,"order_index":34,"topics":201},"Text & Content Basics","text-content-basics",[202,206,210,214,218,222,226,230],{"id":203,"title":204,"slug":205,"order_index":203,"cornerstone":25,"reading_time_minutes":34},7,"HTML Headings (H1–H6) & SEO Best Practices","html-headings-h1-h6-seo-best-practices",{"id":207,"title":208,"slug":209,"order_index":207,"cornerstone":25,"reading_time_minutes":34},8,"HTML Paragraphs & Line Breaks","html-paragraphs-line-breaks",{"id":211,"title":212,"slug":213,"order_index":211,"cornerstone":25,"reading_time_minutes":130},9,"HTML Text Formatting (Bold, Italic, Mark, etc.)","html-text-formatting-bold-italic-mark",{"id":215,"title":216,"slug":217,"order_index":215,"cornerstone":25,"reading_time_minutes":34},10,"HTML Styles (Inline CSS Basics)","html-styles-inline-css-basics",{"id":219,"title":220,"slug":221,"order_index":219,"cornerstone":25,"reading_time_minutes":34},11,"HTML Quotations & Citations (blockquote, q, cite)","html-quotations-citations-blockquote-q-cite",{"id":223,"title":224,"slug":225,"order_index":223,"cornerstone":25,"reading_time_minutes":34},12,"HTML Comments (Best Practices)","html-comments-best-practices",{"id":227,"title":228,"slug":229,"order_index":227,"cornerstone":25,"reading_time_minutes":34},13,"HTML Colors (Names, HEX, RGB, HSL)","html-colors-names-hex-rgb-hsl",{"id":231,"title":232,"slug":233,"order_index":231,"cornerstone":25,"reading_time_minutes":34},14,"HTML & CSS Integration (Inline, Internal, External)","html-css-integration-inline-internal-external",{"id":39,"name":235,"slug":236,"order_index":39,"topics":237},"Links, Media & Navigation","links-media-navigation",[238,242,246,250,254],{"id":239,"title":240,"slug":241,"order_index":239,"cornerstone":25,"reading_time_minutes":34},15,"HTML Links (Anchor Tags & Hyperlinks)","html-links-anchor-tags-hyperlinks",{"id":243,"title":244,"slug":245,"order_index":243,"cornerstone":25,"reading_time_minutes":34},16,"HTML Images (Alt Text, Lazy Loading, Formats)","html-images-alt-text-lazy-loading-formats",{"id":247,"title":248,"slug":249,"order_index":247,"cornerstone":25,"reading_time_minutes":130},17,"HTML Favicon Setup","html-favicon-setup",{"id":251,"title":252,"slug":253,"order_index":251,"cornerstone":25,"reading_time_minutes":34},18,"HTML Page Title & Meta Tags (SEO Essentials)","html-page-title-meta-tags-seo-essentials",{"id":255,"title":256,"slug":257,"order_index":255,"cornerstone":25,"reading_time_minutes":34},19,"HTML File Paths (Absolute vs Relative)","html-file-paths-absolute-vs-relative",{"id":24,"name":259,"slug":260,"order_index":24,"topics":261},"Structuring Content","structuring-content",[262,267,272,277,282,286,290,294,298,302,306,310,314,318,322,326,330],{"id":263,"title":264,"slug":265,"order_index":266,"cornerstone":25,"reading_time_minutes":34},24,"HTML Tables Explained: Rows, Columns & Merging Cells","html-tables-rows-columns-merging-cells",20,{"id":268,"title":269,"slug":270,"order_index":271,"cornerstone":25,"reading_time_minutes":34},25,"HTML Lists: Ordered, Unordered & Description Lists","html-lists-ordered-unordered-description",21,{"id":273,"title":274,"slug":275,"order_index":276,"cornerstone":25,"reading_time_minutes":34},26,"HTML Block vs Inline Elements Explained","html-block-vs-inline-elements",22,{"id":278,"title":279,"slug":280,"order_index":281,"cornerstone":25,"reading_time_minutes":130},27,"HTML Div & Span: Generic Containers Explained","html-div-and-span-containers",23,{"id":283,"title":284,"slug":285,"order_index":263,"cornerstone":25,"reading_time_minutes":34},28,"HTML Classes vs ID: Selectors Explained","html-classes-vs-id-selectors-explained",{"id":287,"title":288,"slug":289,"order_index":268,"cornerstone":25,"reading_time_minutes":130},29,"HTML Iframes: Embedding External Content","html-iframes-embedding-content",{"id":291,"title":292,"slug":293,"order_index":273,"cornerstone":25,"reading_time_minutes":34},30,"HTML Head Element Deep Dive","html-head-element-deep-dive",{"id":295,"title":296,"slug":297,"order_index":278,"cornerstone":25,"reading_time_minutes":34},31,"HTML Layout Techniques: Header, Nav & Footer","html-layout-techniques-header-nav-footer",{"id":299,"title":300,"slug":301,"order_index":283,"cornerstone":25,"reading_time_minutes":34},32,"Responsive HTML Design: Mobile-First Approach","responsive-html-design-mobile-first-approach",{"id":303,"title":304,"slug":305,"order_index":287,"cornerstone":25,"reading_time_minutes":39},74,"HTML Semantic Elements (article, section, aside, nav)","html-semantic-elements-article-section-aside-nav",{"id":307,"title":308,"slug":309,"order_index":291,"cornerstone":25,"reading_time_minutes":34},75,"HTML Style Guide & Coding Conventions","html-style-guide-coding-conventions",{"id":311,"title":312,"slug":313,"order_index":295,"cornerstone":25,"reading_time_minutes":34},76,"HTML Entities & Special Characters","html-entities-special-characters",{"id":315,"title":316,"slug":317,"order_index":299,"cornerstone":25,"reading_time_minutes":130},77,"HTML Symbols","html-symbols",{"id":319,"title":320,"slug":321,"order_index":319,"cornerstone":25,"reading_time_minutes":130},33,"HTML Emojis 😀: How to Use Them in Web Pages","html-emojis-trending-guide",{"id":323,"title":324,"slug":325,"order_index":323,"cornerstone":25,"reading_time_minutes":34},34,"HTML Character Sets: UTF-8 & Encoding Explained","html-character-sets-utf-8-encoding",{"id":327,"title":328,"slug":329,"order_index":327,"cornerstone":25,"reading_time_minutes":130},35,"HTML URL Encoding Explained","html-url-encoding-explained",{"id":331,"title":332,"slug":333,"order_index":331,"cornerstone":25,"reading_time_minutes":130},36,"HTML vs XHTML: Key Differences","html-vs-xhtml-key-differences",{"id":203,"name":335,"slug":336,"order_index":191,"topics":337},"Forms & User Input","forms-user-input",[338,343,348,353,358,363],{"id":339,"title":340,"slug":341,"order_index":342,"cornerstone":25,"reading_time_minutes":34},49,"HTML Forms Introduction","html-forms-introduction",37,{"id":344,"title":345,"slug":346,"order_index":347,"cornerstone":25,"reading_time_minutes":130},50,"HTML Form Attributes (action, method, etc.)","html-form-attributes-action-method",38,{"id":349,"title":350,"slug":351,"order_index":352,"cornerstone":25,"reading_time_minutes":130},51,"HTML Form Elements (input, select, textarea, button)","html-form-elements-input-select-textarea-button",39,{"id":354,"title":355,"slug":356,"order_index":357,"cornerstone":25,"reading_time_minutes":34},52,"HTML Input Types (Modern Types: email, date, color, range)","html-input-types-modern-email-date-color-range",40,{"id":359,"title":360,"slug":361,"order_index":362,"cornerstone":25,"reading_time_minutes":34},53,"HTML Input Attributes (required, placeholder, pattern)","html-input-attributes-required-placeholder-pattern",41,{"id":364,"title":365,"slug":366,"order_index":367,"cornerstone":25,"reading_time_minutes":34},54,"HTML Form Validation (Client-Side)","html-form-validation-client-side",42,{"id":207,"name":369,"slug":370,"order_index":195,"topics":371},"Graphics & Visuals","graphics-visuals",[372,377],{"id":373,"title":374,"slug":375,"order_index":376,"cornerstone":25,"reading_time_minutes":39},55,"HTML Canvas (2D Drawing API) 🔥","html-canvas-2d-drawing-api",43,{"id":378,"title":379,"slug":380,"order_index":381,"cornerstone":25,"reading_time_minutes":39},56,"HTML SVG (Scalable Vector Graphics)","html-svg-scalable-vector-graphics",44,{"id":211,"name":383,"slug":384,"order_index":203,"topics":385},"Multimedia","multimedia",[386,391,396,401,406],{"id":387,"title":388,"slug":389,"order_index":390,"cornerstone":25,"reading_time_minutes":34},57,"HTML Media Overview","html-media-overview",45,{"id":392,"title":393,"slug":394,"order_index":395,"cornerstone":25,"reading_time_minutes":34},58,"HTML Video Embedding (Native Player)","html-video-embedding-native-player",46,{"id":397,"title":398,"slug":399,"order_index":400,"cornerstone":25,"reading_time_minutes":34},59,"HTML Audio Embedding","html-audio-embedding",47,{"id":402,"title":403,"slug":404,"order_index":405,"cornerstone":25,"reading_time_minutes":34},60,"HTML Plug-ins (Object & Embed Tags)","html-plugins-object-embed-tags",48,{"id":407,"title":408,"slug":409,"order_index":339,"cornerstone":25,"reading_time_minutes":34},61,"Embedding YouTube Videos in HTML","embedding-youtube-videos-in-html",{"id":215,"name":411,"slug":412,"order_index":207,"topics":413},"HTML5 Web APIs (Advanced\u002FTrending)","html5-web-apis-advancedtrending",[414,418,422,426,430],{"id":415,"title":416,"slug":417,"order_index":344,"cornerstone":25,"reading_time_minutes":34},62,"HTML Geolocation API","html-geolocation-api",{"id":419,"title":420,"slug":421,"order_index":349,"cornerstone":25,"reading_time_minutes":34},63,"HTML Drag & Drop API","html-drag-and-drop-api",{"id":423,"title":424,"slug":425,"order_index":354,"cornerstone":25,"reading_time_minutes":34},64,"HTML Web Storage (localStorage & sessionStorage)","html-web-storage-localstorage-sessionstorage",{"id":427,"title":428,"slug":429,"order_index":359,"cornerstone":25,"reading_time_minutes":34},65,"HTML Web Workers (Background Processing)","html-web-workers-background-processing",{"id":431,"title":432,"slug":433,"order_index":364,"cornerstone":25,"reading_time_minutes":34},66,"HTML Server-Sent Events (SSE)","html-server-sent-events-sse",{"id":219,"name":435,"slug":436,"order_index":211,"topics":437},"Accessibility & Best Practices (High-Demand  Skill) �","accessibility-best-practices-high-demand-skill",[438,442,446],{"id":439,"title":440,"slug":441,"order_index":373,"cornerstone":25,"reading_time_minutes":34},67,"HTML Accessibility (ARIA, Screen Readers)","html-accessibility-aria-screen-readers",{"id":443,"title":444,"slug":445,"order_index":378,"cornerstone":25,"reading_time_minutes":34},68,"Writing Semantic & SEO-Friendly HTML","writing-semantic-and-seo-friendly-html",{"id":447,"title":448,"slug":449,"order_index":387,"cornerstone":25,"reading_time_minutes":34},69,"HTML Performance Optimization Basics","html-performance-optimization-basics",{"id":223,"name":451,"slug":452,"order_index":215,"topics":453},"Reference & Practice","reference-practice",[454,458,462,466,470,474,478,482],{"id":455,"title":456,"slug":457,"order_index":130,"cornerstone":25,"reading_time_minutes":34},70,"HTML Tag List (Full Reference)","html-tag-list-full-reference",{"id":459,"title":460,"slug":461,"order_index":34,"cornerstone":25,"reading_time_minutes":34},71,"HTML Global Attributes Reference","html-global-attributes-reference",{"id":463,"title":464,"slug":465,"order_index":39,"cornerstone":25,"reading_time_minutes":34},72,"HTML Events Reference","html-events-reference",{"id":467,"title":468,"slug":469,"order_index":24,"cornerstone":25,"reading_time_minutes":34},73,"HTML Browser Support & Compatibility","html-browser-support-compatibility",{"id":471,"title":472,"slug":473,"order_index":191,"cornerstone":25,"reading_time_minutes":34},78,"HTML Doctypes Reference","html-doctypes-reference",{"id":475,"title":476,"slug":477,"order_index":195,"cornerstone":25,"reading_time_minutes":34},79,"HTTP Methods & Messages (Basics for Forms\u002FAPIs)","http-methods-messages-basics",{"id":479,"title":480,"slug":481,"order_index":203,"cornerstone":25,"reading_time_minutes":39},80,"HTML Interview Preparation (Top Q&A)","html-interview-preparation-top-qa",{"id":483,"title":484,"slug":485,"order_index":207,"cornerstone":25,"reading_time_minutes":130},81,"HTML Quiz & Practice Exercises","html-quiz-practice-exercises",{"id":34,"name":13,"slug":14,"icon":5,"icon_url":5,"short_description":487,"meta_title":488,"meta_description":489,"og_image":5,"locale":172,"subcategories":490},"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.",[491,516,538,559,579,615,647,679,711,743,771,799,831,859],{"id":227,"name":492,"slug":493,"order_index":494,"topics":495},"CSS Fundamentals & Setup","css-fundamentals-setup",0,[496,500,504,508,512],{"id":497,"title":498,"slug":499,"order_index":130,"cornerstone":25,"reading_time_minutes":24},82,"CSS Introduction & History: What Is CSS and Why It Matters","css-introduction-and-history",{"id":501,"title":502,"slug":503,"order_index":34,"cornerstone":25,"reading_time_minutes":24},83,"CSS Syntax & How Browsers Apply Styles","css-syntax-how-browsers-apply-styles",{"id":505,"title":506,"slug":507,"order_index":39,"cornerstone":25,"reading_time_minutes":39},84,"Setting Up Your CSS Workspace: Linking Files & Live Server","setting-up-css-workspace-linking-files-live-server",{"id":509,"title":510,"slug":511,"order_index":24,"cornerstone":25,"reading_time_minutes":39},85,"CSS Comments & Code Formatting Best Practices","css-comments-and-code-formatting",{"id":513,"title":514,"slug":515,"order_index":191,"cornerstone":25,"reading_time_minutes":191},86,"Browser DevTools for CSS: Inspect, Debug & Edit Styles Live","browser-devtools-for-css",{"id":278,"name":517,"slug":518,"order_index":494,"topics":519},"Item Properties","item-properties",[520,524,528,532,536,537],{"id":521,"title":522,"slug":523,"order_index":191,"cornerstone":25,"reading_time_minutes":24},176,"CSS flex-direction: Row, Column, Reverse Explained with Examples","css-flex-direction-qYSHRj",{"id":525,"title":526,"slug":527,"order_index":195,"cornerstone":25,"reading_time_minutes":24},177,"CSS flex-wrap and flex-flow: Complete Guide with Examples","css-flex-wrap-and-flex-flow-iZaSUa",{"id":529,"title":530,"slug":531,"order_index":203,"cornerstone":25,"reading_time_minutes":24},178,"CSS justify-content: Align Flex Items on the Main Axis","css-justify-content-VlB71x",{"id":533,"title":534,"slug":535,"order_index":207,"cornerstone":25,"reading_time_minutes":24},179,"CSS align-items: Align Flex Items on the Cross Axis","css-align-items-H3MFZg",{"id":133,"title":135,"slug":134,"order_index":211,"cornerstone":25,"reading_time_minutes":39},{"id":137,"title":139,"slug":138,"order_index":215,"cornerstone":25,"reading_time_minutes":39},{"id":273,"name":16,"slug":17,"order_index":494,"topics":539},[540,544,548,551,554,558],{"id":541,"title":542,"slug":543,"order_index":191,"cornerstone":25,"reading_time_minutes":24},170,"CSS flex-direction: row, row-reverse, column & column-reverse Explained","css-flex-direction",{"id":545,"title":546,"slug":547,"order_index":195,"cornerstone":25,"reading_time_minutes":24},171,"CSS flex-wrap & flex-flow: Wrap Flex Items the Right Way","css-flex-wrap-and-flex-flow",{"id":549,"title":530,"slug":550,"order_index":203,"cornerstone":25,"reading_time_minutes":24},172,"css-justify-content",{"id":552,"title":534,"slug":553,"order_index":207,"cornerstone":25,"reading_time_minutes":39},173,"css-align-items",{"id":555,"title":556,"slug":557,"order_index":211,"cornerstone":25,"reading_time_minutes":39},174,"CSS align-content: Space and Align Multiple Flex Lines","css-align-content",{"id":8,"title":9,"slug":10,"order_index":215,"cornerstone":25,"reading_time_minutes":24},{"id":268,"name":560,"slug":561,"order_index":494,"topics":562},"Flexbox Foundations","flexbox-foundations",[563,567,571,575],{"id":564,"title":565,"slug":566,"order_index":130,"cornerstone":25,"reading_time_minutes":207},166,"Why Layout Evolved: Tables, Floats, Flexbox and Grid","why-layout-evolved-tables-floats-flexbox-grid",{"id":568,"title":569,"slug":570,"order_index":34,"cornerstone":25,"reading_time_minutes":195},167,"Flexbox Introduction and Mental Model","flexbox-introduction-and-mental-model",{"id":572,"title":573,"slug":574,"order_index":39,"cornerstone":25,"reading_time_minutes":195},168,"Flex Container and Flex Items","flex-container-and-flex-items",{"id":576,"title":577,"slug":578,"order_index":24,"cornerstone":25,"reading_time_minutes":203},169,"Main Axis vs Cross Axis and the DevTools Flex Inspector","main-axis-vs-cross-axis-devtools-flex-inspector",{"id":231,"name":580,"slug":581,"order_index":130,"topics":582},"Selectors & the Cascade","selectors-the-cascade",[583,587,591,595,599,603,607,611],{"id":584,"title":585,"slug":586,"order_index":195,"cornerstone":25,"reading_time_minutes":24},87,"CSS Basic Selectors: Type, Class, ID, Universal & Grouping","css-basic-selectors",{"id":588,"title":589,"slug":590,"order_index":203,"cornerstone":25,"reading_time_minutes":24},88,"CSS Combinators: Descendant, Child, Adjacent & General Sibling","css-combinators",{"id":592,"title":593,"slug":594,"order_index":207,"cornerstone":25,"reading_time_minutes":24},89,"CSS Attribute Selectors: [attr], ^=, $=, *= and More","css-attribute-selectors",{"id":596,"title":597,"slug":598,"order_index":211,"cornerstone":25,"reading_time_minutes":195},90,"CSS Pseudo-classes: :hover, :focus, :nth-child & Modern Selectors","css-pseudo-classes",{"id":600,"title":601,"slug":602,"order_index":215,"cornerstone":25,"reading_time_minutes":191},91,"CSS Pseudo-elements (::before, ::after)","css-pseudo-elements-before-after",{"id":604,"title":605,"slug":606,"order_index":219,"cornerstone":25,"reading_time_minutes":191},92,"Modern CSS Selectors: :is(), :where(), :has()","modern-css-selectors-is-where-has",{"id":608,"title":609,"slug":610,"order_index":223,"cornerstone":25,"reading_time_minutes":24},93,"CSS Specificity Explained","css-specificity-explained",{"id":612,"title":613,"slug":614,"order_index":227,"cornerstone":25,"reading_time_minutes":191},94,"Cascade, Inheritance & !important","css-cascade-inheritance-important",{"id":239,"name":616,"slug":617,"order_index":34,"topics":618},"Colors, Backgrounds & Effects","colors-backgrounds-effects",[619,623,627,631,635,639,643],{"id":620,"title":621,"slug":622,"order_index":231,"cornerstone":25,"reading_time_minutes":191},95,"CSS Colors (HEX, RGB, HSL, OKLCH)","css-colors-hex-rgb-hsl-oklch",{"id":624,"title":625,"slug":626,"order_index":239,"cornerstone":25,"reading_time_minutes":24},96,"CSS Backgrounds","css-backgrounds",{"id":628,"title":629,"slug":630,"order_index":243,"cornerstone":25,"reading_time_minutes":191},97,"CSS Gradients (Linear, Radial, Conic)","css-gradients-linear-radial-conic",{"id":632,"title":633,"slug":634,"order_index":247,"cornerstone":25,"reading_time_minutes":191},98,"CSS Borders, Outlines & Rounded Corners","css-borders-outlines-rounded-corners",{"id":636,"title":637,"slug":638,"order_index":251,"cornerstone":25,"reading_time_minutes":195},99,"CSS Box Shadow & Text Shadow","css-box-shadow-text-shadow",{"id":640,"title":641,"slug":642,"order_index":255,"cornerstone":25,"reading_time_minutes":191},100,"CSS Opacity & Blend Modes","css-opacity-blend-modes",{"id":644,"title":645,"slug":646,"order_index":266,"cornerstone":25,"reading_time_minutes":195},101,"CSS Filters & backdrop-filter (Glassmorphism)","css-filters-backdrop-filter-glassmorphism",{"id":243,"name":648,"slug":649,"order_index":39,"topics":650},"Box Model & Spacing","box-model-spacing",[651,655,659,663,667,671,675],{"id":652,"title":653,"slug":654,"order_index":271,"cornerstone":25,"reading_time_minutes":203},102,"The CSS Box Model: Content, Padding, Border and Margin","css-box-model",{"id":656,"title":657,"slug":658,"order_index":276,"cornerstone":25,"reading_time_minutes":203},103,"CSS Margin and Margin Collapse","css-margin-and-margin-collapse",{"id":660,"title":661,"slug":662,"order_index":281,"cornerstone":25,"reading_time_minutes":195},104,"CSS Padding: Shorthand, Percentages and Best Practices","css-padding",{"id":664,"title":665,"slug":666,"order_index":263,"cornerstone":25,"reading_time_minutes":211},105,"CSS Width, Height, Min-Width, Max-Width, Min-Height & Max-Height","css-width-height-min-max",{"id":668,"title":669,"slug":670,"order_index":268,"cornerstone":25,"reading_time_minutes":191},106,"CSS box-sizing: content-box vs border-box","css-box-sizing",{"id":672,"title":673,"slug":674,"order_index":273,"cornerstone":25,"reading_time_minutes":203},107,"CSS Overflow: hidden, scroll, auto, clip and Text Truncation","css-overflow",{"id":676,"title":677,"slug":678,"order_index":278,"cornerstone":25,"reading_time_minutes":203},108,"CSS Units: px, rem, em, %, vw, vh and dvh","css-units",{"id":247,"name":680,"slug":681,"order_index":24,"topics":682},"Typography & Text","typography-text",[683,687,691,695,699,703,707],{"id":684,"title":685,"slug":686,"order_index":283,"cornerstone":25,"reading_time_minutes":203},109,"CSS Text Properties: Alignment, Spacing, Decoration and Wrapping","css-text-properties",{"id":688,"title":689,"slug":690,"order_index":287,"cornerstone":25,"reading_time_minutes":203},110,"CSS Fonts and font-family: Font Stacks, Weights and System Fonts","css-fonts-font-family",{"id":692,"title":693,"slug":694,"order_index":291,"cornerstone":25,"reading_time_minutes":203},111,"Web Fonts: Google Fonts, @font-face and Variable Fonts","web-fonts",{"id":696,"title":697,"slug":698,"order_index":295,"cornerstone":25,"reading_time_minutes":203},112,"CSS Text Effects: text-wrap balance, line-clamp, Ellipsis and More","css-text-effects",{"id":700,"title":701,"slug":702,"order_index":299,"cornerstone":25,"reading_time_minutes":207},113,"Styling Links","styling-links-css",{"id":704,"title":705,"slug":706,"order_index":319,"cornerstone":25,"reading_time_minutes":203},114,"Styling Lists & Tables","styling-lists-and-tables-css",{"id":708,"title":709,"slug":710,"order_index":323,"cornerstone":25,"reading_time_minutes":215},115,"Icons (SVG & Icon Fonts)","icons-svg-and-icon-fonts",{"id":251,"name":712,"slug":713,"order_index":191,"topics":714},"Display, Position & Layout Basics","display-position-layout-basics",[715,719,723,727,731,735,739],{"id":716,"title":717,"slug":718,"order_index":327,"cornerstone":25,"reading_time_minutes":203},116,"Display & Inline-block","display-and-inline-block",{"id":720,"title":721,"slug":722,"order_index":331,"cornerstone":25,"reading_time_minutes":195},117,"Position (relative, absolute, fixed, sticky)","position-relative-absolute-fixed-sticky",{"id":724,"title":725,"slug":726,"order_index":342,"cornerstone":25,"reading_time_minutes":195},118,"Z-index & Stacking Contexts","z-index-and-stacking-contexts",{"id":728,"title":729,"slug":730,"order_index":347,"cornerstone":25,"reading_time_minutes":191},119,"Float & Clear (Legacy, and Why to Avoid It)","float-and-clear",{"id":732,"title":733,"slug":734,"order_index":352,"cornerstone":25,"reading_time_minutes":195},120,"Centering Techniques","centering-techniques",{"id":736,"title":737,"slug":738,"order_index":357,"cornerstone":25,"reading_time_minutes":203},121,"aspect-ratio & object-fit","aspect-ratio-and-object-fit",{"id":740,"title":741,"slug":742,"order_index":362,"cornerstone":25,"reading_time_minutes":207},122,"Website Layout Basics","website-layout-basics",{"id":266,"name":744,"slug":745,"order_index":195,"topics":746},"The Modern CSS Toolkit","the-modern-css-toolkit",[747,751,755,759,763,767],{"id":748,"title":749,"slug":750,"order_index":367,"cornerstone":25,"reading_time_minutes":207},129,"CSS Variables (Custom Properties)","css-variables-custom-properties",{"id":752,"title":753,"slug":754,"order_index":376,"cornerstone":25,"reading_time_minutes":207},130,"Math Functions (calc, min, max, clamp)","math-functions-calc-min-max-clamp",{"id":756,"title":757,"slug":758,"order_index":381,"cornerstone":25,"reading_time_minutes":203},131,"Native CSS Nesting","native-css-nesting",{"id":760,"title":761,"slug":762,"order_index":390,"cornerstone":25,"reading_time_minutes":203},132,"Cascade Layers (@layer)","cascade-layers-at-layer",{"id":764,"title":765,"slug":766,"order_index":395,"cornerstone":25,"reading_time_minutes":211},133,"Dark Mode (prefers-color-scheme, light-dark())","dark-mode-prefers-color-scheme-light-dark",{"id":768,"title":769,"slug":770,"order_index":400,"cornerstone":25,"reading_time_minutes":207},134,"CSS Reset & Normalize","css-reset-and-normalize",{"id":271,"name":772,"slug":773,"order_index":203,"topics":774},"Responsive Design","responsive-design",[775,779,783,787,791,795],{"id":776,"title":777,"slug":778,"order_index":405,"cornerstone":25,"reading_time_minutes":211},135,"Mobile-First & the Viewport","mobile-first-and-the-viewport",{"id":780,"title":781,"slug":782,"order_index":339,"cornerstone":25,"reading_time_minutes":207},136,"Media Queries","media-queries",{"id":784,"title":785,"slug":786,"order_index":344,"cornerstone":25,"reading_time_minutes":207},137,"Responsive Images & Video","responsive-images-and-video",{"id":788,"title":789,"slug":790,"order_index":349,"cornerstone":25,"reading_time_minutes":211},138,"Fluid Typography with clamp()","fluid-typography-with-clamp",{"id":792,"title":793,"slug":794,"order_index":354,"cornerstone":25,"reading_time_minutes":211},139,"Container Queries","container-queries",{"id":796,"title":797,"slug":798,"order_index":359,"cornerstone":25,"reading_time_minutes":223},140,"Responsive Navigation Pattern","responsive-navigation-pattern",{"id":276,"name":800,"slug":801,"order_index":207,"topics":802},"Transitions & Animation","transitions-animation",[803,807,811,815,819,823,827],{"id":804,"title":805,"slug":806,"order_index":364,"cornerstone":25,"reading_time_minutes":191},141,"CSS Transitions: Smooth State Changes with transition, @starting-style and allow-discrete","css-transitions",{"id":808,"title":809,"slug":810,"order_index":373,"cornerstone":25,"reading_time_minutes":24},142,"CSS 2D Transforms: translate, rotate, scale, skew and transform-origin","css-2d-transforms",{"id":812,"title":813,"slug":814,"order_index":378,"cornerstone":25,"reading_time_minutes":191},143,"CSS 3D Transforms: perspective, preserve-3d, rotateX\u002FY and backface-visibility","css-3d-transforms",{"id":816,"title":817,"slug":818,"order_index":387,"cornerstone":25,"reading_time_minutes":191},144,"CSS Keyframe Animations: @keyframes, animation shorthand, fill-mode and @property","css-keyframe-animations",{"id":820,"title":821,"slug":822,"order_index":392,"cornerstone":25,"reading_time_minutes":191},145,"CSS Scroll-Driven Animations: animation-timeline, scroll() and view()","css-scroll-driven-animations",{"id":824,"title":825,"slug":826,"order_index":397,"cornerstone":25,"reading_time_minutes":191},146,"CSS View Transitions API: Progressive Enhancement for Page and State Animations","css-view-transitions",{"id":828,"title":829,"slug":830,"order_index":402,"cornerstone":25,"reading_time_minutes":195},147,"Motion Accessibility and Performance: prefers-reduced-motion, will-change and Smooth 60fps Animations","motion-accessibility-prefers-reduced-motion-performance",{"id":281,"name":832,"slug":833,"order_index":211,"topics":834},"UI Components","ui-components",[835,839,843,847,851,855],{"id":836,"title":837,"slug":838,"order_index":407,"cornerstone":25,"reading_time_minutes":195},148,"CSS Buttons: Variants, States, Sizes and Accessible Button Design","css-buttons",{"id":840,"title":841,"slug":842,"order_index":415,"cornerstone":25,"reading_time_minutes":195},149,"CSS Card Component: Layouts with Flexbox, Grid, Container Queries and Subgrid","css-cards",{"id":844,"title":845,"slug":846,"order_index":419,"cornerstone":25,"reading_time_minutes":203},150,"CSS Navbar and Dropdown Menus: Responsive, Sticky and Accessible Navigation","css-navbar-dropdowns",{"id":848,"title":849,"slug":850,"order_index":423,"cornerstone":25,"reading_time_minutes":195},151,"HTML and CSS Forms and Inputs: Styled, Accessible and Validated Form Controls","css-forms-inputs",{"id":852,"title":853,"slug":854,"order_index":427,"cornerstone":25,"reading_time_minutes":195},152,"CSS Tooltips and Popovers: Popover API, Anchor Positioning and Accessible Overlays","css-tooltips-popovers",{"id":856,"title":857,"slug":858,"order_index":431,"cornerstone":25,"reading_time_minutes":195},153,"Pagination and Breadcrumbs: Accessible Navigation Patterns with HTML, CSS and Schema","pagination-breadcrumbs",{"id":263,"name":860,"slug":861,"order_index":215,"topics":862},"Pro Practices & Wrap-up","pro-practices-wrap-up",[863,867,871,875,879,883],{"id":864,"title":865,"slug":866,"order_index":439,"cornerstone":25,"reading_time_minutes":34},160,"CSS Architecture & BEM","css-architecture-bem-ZRlwjD",{"id":868,"title":869,"slug":870,"order_index":443,"cornerstone":25,"reading_time_minutes":34},161,"CSS Performance","css-performance-TAnsqs",{"id":872,"title":873,"slug":874,"order_index":447,"cornerstone":25,"reading_time_minutes":34},162,"CSS Accessibility (focus, contrast)","css-accessibility-focus-contrast-pgFUSF",{"id":876,"title":877,"slug":878,"order_index":455,"cornerstone":25,"reading_time_minutes":34},163,"Debugging Common CSS Bugs","debugging-common-css-bugs-iHzOV3",{"id":880,"title":881,"slug":882,"order_index":459,"cornerstone":25,"reading_time_minutes":34},164,"Sass vs Native CSS","sass-vs-native-css-lV2nqW",{"id":884,"title":885,"slug":886,"order_index":463,"cornerstone":25,"reading_time_minutes":34},165,"CSS Interview Q&A & Cheat Sheet","css-interview-qa-cheat-sheet-JslzGp"]