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