[{"data":1,"prerenderedAt":2882},["ShallowReactive",2],{"blog-/blog/modern-css-techniques":3,"related-posts":935},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"tags":11,"image":15,"author":16,"readingTime":17,"body":18,"_type":929,"_id":930,"_source":931,"_file":932,"_stem":933,"_extension":934},"/blog/modern-css-techniques","blog",false,"","Modern CSS Techniques Every Developer Should Know","Explore the latest CSS features and techniques that make building beautiful, responsive layouts easier than ever.","2026-02-15",[12,13,14],"CSS","Design","Web Development","/images/blog/css.jpg","Facet Dev Team",6,{"type":19,"children":20,"toc":921},"root",[21,29,36,41,208,213,219,224,401,407,420,556,562,567,666,672,677,899,905,910,915],{"type":22,"tag":23,"props":24,"children":25},"element","p",{},[26],{"type":27,"value":28},"text","CSS has evolved tremendously over the past few years, introducing powerful features that make complex layouts and designs achievable with minimal code. Let's explore some modern CSS techniques that every developer should have in their toolkit.",{"type":22,"tag":30,"props":31,"children":33},"h2",{"id":32},"container-queries",[34],{"type":27,"value":35},"Container Queries",{"type":22,"tag":23,"props":37,"children":38},{},[39],{"type":27,"value":40},"Container queries represent one of the most significant additions to CSS in recent years. Unlike media queries that respond to viewport size, container queries respond to the size of a parent container.",{"type":22,"tag":42,"props":43,"children":47},"pre",{"className":44,"code":45,"language":46,"meta":7,"style":7},"language-css shiki shiki-themes github-dark",".card-container {\n  container-type: inline-size;\n}\n\n@container (min-width: 400px) {\n  .card {\n    display: grid;\n    grid-template-columns: 1fr 2fr;\n  }\n}\n","css",[48],{"type":22,"tag":49,"props":50,"children":51},"code",{"__ignoreMap":7},[52,70,85,94,104,119,131,155,191,200],{"type":22,"tag":53,"props":54,"children":57},"span",{"class":55,"line":56},"line",1,[58,64],{"type":22,"tag":53,"props":59,"children":61},{"style":60},"--shiki-default:#B392F0",[62],{"type":27,"value":63},".card-container",{"type":22,"tag":53,"props":65,"children":67},{"style":66},"--shiki-default:#E1E4E8",[68],{"type":27,"value":69}," {\n",{"type":22,"tag":53,"props":71,"children":73},{"class":55,"line":72},2,[74,80],{"type":22,"tag":53,"props":75,"children":77},{"style":76},"--shiki-default:#79B8FF",[78],{"type":27,"value":79},"  container-type",{"type":22,"tag":53,"props":81,"children":82},{"style":66},[83],{"type":27,"value":84},": inline-size;\n",{"type":22,"tag":53,"props":86,"children":88},{"class":55,"line":87},3,[89],{"type":22,"tag":53,"props":90,"children":91},{"style":66},[92],{"type":27,"value":93},"}\n",{"type":22,"tag":53,"props":95,"children":97},{"class":55,"line":96},4,[98],{"type":22,"tag":53,"props":99,"children":101},{"emptyLinePlaceholder":100},true,[102],{"type":27,"value":103},"\n",{"type":22,"tag":53,"props":105,"children":107},{"class":55,"line":106},5,[108,114],{"type":22,"tag":53,"props":109,"children":111},{"style":110},"--shiki-default:#F97583",[112],{"type":27,"value":113},"@container",{"type":22,"tag":53,"props":115,"children":116},{"style":66},[117],{"type":27,"value":118}," (min-width: 400px) {\n",{"type":22,"tag":53,"props":120,"children":121},{"class":55,"line":17},[122,127],{"type":22,"tag":53,"props":123,"children":124},{"style":60},[125],{"type":27,"value":126},"  .card",{"type":22,"tag":53,"props":128,"children":129},{"style":66},[130],{"type":27,"value":69},{"type":22,"tag":53,"props":132,"children":134},{"class":55,"line":133},7,[135,140,145,150],{"type":22,"tag":53,"props":136,"children":137},{"style":76},[138],{"type":27,"value":139},"    display",{"type":22,"tag":53,"props":141,"children":142},{"style":66},[143],{"type":27,"value":144},": ",{"type":22,"tag":53,"props":146,"children":147},{"style":76},[148],{"type":27,"value":149},"grid",{"type":22,"tag":53,"props":151,"children":152},{"style":66},[153],{"type":27,"value":154},";\n",{"type":22,"tag":53,"props":156,"children":158},{"class":55,"line":157},8,[159,164,168,173,178,183,187],{"type":22,"tag":53,"props":160,"children":161},{"style":76},[162],{"type":27,"value":163},"    grid-template-columns",{"type":22,"tag":53,"props":165,"children":166},{"style":66},[167],{"type":27,"value":144},{"type":22,"tag":53,"props":169,"children":170},{"style":76},[171],{"type":27,"value":172},"1",{"type":22,"tag":53,"props":174,"children":175},{"style":110},[176],{"type":27,"value":177},"fr",{"type":22,"tag":53,"props":179,"children":180},{"style":76},[181],{"type":27,"value":182}," 2",{"type":22,"tag":53,"props":184,"children":185},{"style":110},[186],{"type":27,"value":177},{"type":22,"tag":53,"props":188,"children":189},{"style":66},[190],{"type":27,"value":154},{"type":22,"tag":53,"props":192,"children":194},{"class":55,"line":193},9,[195],{"type":22,"tag":53,"props":196,"children":197},{"style":66},[198],{"type":27,"value":199},"  }\n",{"type":22,"tag":53,"props":201,"children":203},{"class":55,"line":202},10,[204],{"type":22,"tag":53,"props":205,"children":206},{"style":66},[207],{"type":27,"value":93},{"type":22,"tag":23,"props":209,"children":210},{},[211],{"type":27,"value":212},"This enables truly reusable, responsive components that adapt based on where they're placed, not just the screen size.",{"type":22,"tag":30,"props":214,"children":216},{"id":215},"css-grid-subgrid",[217],{"type":27,"value":218},"CSS Grid Subgrid",{"type":22,"tag":23,"props":220,"children":221},{},[222],{"type":27,"value":223},"Subgrid allows nested grids to participate in the parent grid's track sizing, solving alignment issues that previously required JavaScript or complex workarounds.",{"type":22,"tag":42,"props":225,"children":227},{"className":44,"code":226,"language":46,"meta":7,"style":7},".parent {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n}\n\n.child {\n  display: grid;\n  grid-column: span 3;\n  grid-template-columns: subgrid;\n}\n",[228],{"type":22,"tag":49,"props":229,"children":230},{"__ignoreMap":7},[231,243,263,308,315,322,334,353,374,394],{"type":22,"tag":53,"props":232,"children":233},{"class":55,"line":56},[234,239],{"type":22,"tag":53,"props":235,"children":236},{"style":60},[237],{"type":27,"value":238},".parent",{"type":22,"tag":53,"props":240,"children":241},{"style":66},[242],{"type":27,"value":69},{"type":22,"tag":53,"props":244,"children":245},{"class":55,"line":72},[246,251,255,259],{"type":22,"tag":53,"props":247,"children":248},{"style":76},[249],{"type":27,"value":250},"  display",{"type":22,"tag":53,"props":252,"children":253},{"style":66},[254],{"type":27,"value":144},{"type":22,"tag":53,"props":256,"children":257},{"style":76},[258],{"type":27,"value":149},{"type":22,"tag":53,"props":260,"children":261},{"style":66},[262],{"type":27,"value":154},{"type":22,"tag":53,"props":264,"children":265},{"class":55,"line":87},[266,271,275,280,285,290,295,299,303],{"type":22,"tag":53,"props":267,"children":268},{"style":76},[269],{"type":27,"value":270},"  grid-template-columns",{"type":22,"tag":53,"props":272,"children":273},{"style":66},[274],{"type":27,"value":144},{"type":22,"tag":53,"props":276,"children":277},{"style":76},[278],{"type":27,"value":279},"repeat",{"type":22,"tag":53,"props":281,"children":282},{"style":66},[283],{"type":27,"value":284},"(",{"type":22,"tag":53,"props":286,"children":287},{"style":76},[288],{"type":27,"value":289},"3",{"type":22,"tag":53,"props":291,"children":292},{"style":66},[293],{"type":27,"value":294},", ",{"type":22,"tag":53,"props":296,"children":297},{"style":76},[298],{"type":27,"value":172},{"type":22,"tag":53,"props":300,"children":301},{"style":110},[302],{"type":27,"value":177},{"type":22,"tag":53,"props":304,"children":305},{"style":66},[306],{"type":27,"value":307},");\n",{"type":22,"tag":53,"props":309,"children":310},{"class":55,"line":96},[311],{"type":22,"tag":53,"props":312,"children":313},{"style":66},[314],{"type":27,"value":93},{"type":22,"tag":53,"props":316,"children":317},{"class":55,"line":106},[318],{"type":22,"tag":53,"props":319,"children":320},{"emptyLinePlaceholder":100},[321],{"type":27,"value":103},{"type":22,"tag":53,"props":323,"children":324},{"class":55,"line":17},[325,330],{"type":22,"tag":53,"props":326,"children":327},{"style":60},[328],{"type":27,"value":329},".child",{"type":22,"tag":53,"props":331,"children":332},{"style":66},[333],{"type":27,"value":69},{"type":22,"tag":53,"props":335,"children":336},{"class":55,"line":133},[337,341,345,349],{"type":22,"tag":53,"props":338,"children":339},{"style":76},[340],{"type":27,"value":250},{"type":22,"tag":53,"props":342,"children":343},{"style":66},[344],{"type":27,"value":144},{"type":22,"tag":53,"props":346,"children":347},{"style":76},[348],{"type":27,"value":149},{"type":22,"tag":53,"props":350,"children":351},{"style":66},[352],{"type":27,"value":154},{"type":22,"tag":53,"props":354,"children":355},{"class":55,"line":157},[356,361,366,370],{"type":22,"tag":53,"props":357,"children":358},{"style":76},[359],{"type":27,"value":360},"  grid-column",{"type":22,"tag":53,"props":362,"children":363},{"style":66},[364],{"type":27,"value":365},": span ",{"type":22,"tag":53,"props":367,"children":368},{"style":76},[369],{"type":27,"value":289},{"type":22,"tag":53,"props":371,"children":372},{"style":66},[373],{"type":27,"value":154},{"type":22,"tag":53,"props":375,"children":376},{"class":55,"line":193},[377,381,385,390],{"type":22,"tag":53,"props":378,"children":379},{"style":76},[380],{"type":27,"value":270},{"type":22,"tag":53,"props":382,"children":383},{"style":66},[384],{"type":27,"value":144},{"type":22,"tag":53,"props":386,"children":387},{"style":76},[388],{"type":27,"value":389},"subgrid",{"type":22,"tag":53,"props":391,"children":392},{"style":66},[393],{"type":27,"value":154},{"type":22,"tag":53,"props":395,"children":396},{"class":55,"line":202},[397],{"type":22,"tag":53,"props":398,"children":399},{"style":66},[400],{"type":27,"value":93},{"type":22,"tag":30,"props":402,"children":404},{"id":403},"the-selector",[405],{"type":27,"value":406},"The :has() Selector",{"type":22,"tag":23,"props":408,"children":409},{},[410,412,418],{"type":27,"value":411},"Often called the \"parent selector,\" ",{"type":22,"tag":49,"props":413,"children":415},{"className":414},[],[416],{"type":27,"value":417},":has()",{"type":27,"value":419}," enables styling based on what an element contains:",{"type":22,"tag":42,"props":421,"children":423},{"className":44,"code":422,"language":46,"meta":7,"style":7},"/* Style cards that have images */\n.card:has(img) {\n  padding-top: 0;\n}\n\n/* Style forms with invalid inputs */\nform:has(:invalid) {\n  border-color: red;\n}\n",[424],{"type":22,"tag":49,"props":425,"children":426},{"__ignoreMap":7},[427,436,459,480,487,494,502,528,549],{"type":22,"tag":53,"props":428,"children":429},{"class":55,"line":56},[430],{"type":22,"tag":53,"props":431,"children":433},{"style":432},"--shiki-default:#6A737D",[434],{"type":27,"value":435},"/* Style cards that have images */\n",{"type":22,"tag":53,"props":437,"children":438},{"class":55,"line":72},[439,444,448,454],{"type":22,"tag":53,"props":440,"children":441},{"style":60},[442],{"type":27,"value":443},".card:has",{"type":22,"tag":53,"props":445,"children":446},{"style":66},[447],{"type":27,"value":284},{"type":22,"tag":53,"props":449,"children":451},{"style":450},"--shiki-default:#85E89D",[452],{"type":27,"value":453},"img",{"type":22,"tag":53,"props":455,"children":456},{"style":66},[457],{"type":27,"value":458},") {\n",{"type":22,"tag":53,"props":460,"children":461},{"class":55,"line":87},[462,467,471,476],{"type":22,"tag":53,"props":463,"children":464},{"style":76},[465],{"type":27,"value":466},"  padding-top",{"type":22,"tag":53,"props":468,"children":469},{"style":66},[470],{"type":27,"value":144},{"type":22,"tag":53,"props":472,"children":473},{"style":76},[474],{"type":27,"value":475},"0",{"type":22,"tag":53,"props":477,"children":478},{"style":66},[479],{"type":27,"value":154},{"type":22,"tag":53,"props":481,"children":482},{"class":55,"line":96},[483],{"type":22,"tag":53,"props":484,"children":485},{"style":66},[486],{"type":27,"value":93},{"type":22,"tag":53,"props":488,"children":489},{"class":55,"line":106},[490],{"type":22,"tag":53,"props":491,"children":492},{"emptyLinePlaceholder":100},[493],{"type":27,"value":103},{"type":22,"tag":53,"props":495,"children":496},{"class":55,"line":17},[497],{"type":22,"tag":53,"props":498,"children":499},{"style":432},[500],{"type":27,"value":501},"/* Style forms with invalid inputs */\n",{"type":22,"tag":53,"props":503,"children":504},{"class":55,"line":133},[505,510,515,519,524],{"type":22,"tag":53,"props":506,"children":507},{"style":450},[508],{"type":27,"value":509},"form",{"type":22,"tag":53,"props":511,"children":512},{"style":60},[513],{"type":27,"value":514},":has",{"type":22,"tag":53,"props":516,"children":517},{"style":66},[518],{"type":27,"value":284},{"type":22,"tag":53,"props":520,"children":521},{"style":60},[522],{"type":27,"value":523},":invalid",{"type":22,"tag":53,"props":525,"children":526},{"style":66},[527],{"type":27,"value":458},{"type":22,"tag":53,"props":529,"children":530},{"class":55,"line":157},[531,536,540,545],{"type":22,"tag":53,"props":532,"children":533},{"style":76},[534],{"type":27,"value":535},"  border-color",{"type":22,"tag":53,"props":537,"children":538},{"style":66},[539],{"type":27,"value":144},{"type":22,"tag":53,"props":541,"children":542},{"style":76},[543],{"type":27,"value":544},"red",{"type":22,"tag":53,"props":546,"children":547},{"style":66},[548],{"type":27,"value":154},{"type":22,"tag":53,"props":550,"children":551},{"class":55,"line":193},[552],{"type":22,"tag":53,"props":553,"children":554},{"style":66},[555],{"type":27,"value":93},{"type":22,"tag":30,"props":557,"children":559},{"id":558},"logical-properties",[560],{"type":27,"value":561},"Logical Properties",{"type":22,"tag":23,"props":563,"children":564},{},[565],{"type":27,"value":566},"Logical properties make internationalization easier by using relative directions instead of physical ones:",{"type":22,"tag":42,"props":568,"children":570},{"className":44,"code":569,"language":46,"meta":7,"style":7},".element {\n  /* Instead of margin-left and margin-right */\n  margin-inline: 1rem;\n\n  /* Instead of padding-top and padding-bottom */\n  padding-block: 2rem;\n}\n",[571],{"type":22,"tag":49,"props":572,"children":573},{"__ignoreMap":7},[574,586,594,619,626,634,659],{"type":22,"tag":53,"props":575,"children":576},{"class":55,"line":56},[577,582],{"type":22,"tag":53,"props":578,"children":579},{"style":60},[580],{"type":27,"value":581},".element",{"type":22,"tag":53,"props":583,"children":584},{"style":66},[585],{"type":27,"value":69},{"type":22,"tag":53,"props":587,"children":588},{"class":55,"line":72},[589],{"type":22,"tag":53,"props":590,"children":591},{"style":432},[592],{"type":27,"value":593},"  /* Instead of margin-left and margin-right */\n",{"type":22,"tag":53,"props":595,"children":596},{"class":55,"line":87},[597,602,606,610,615],{"type":22,"tag":53,"props":598,"children":599},{"style":76},[600],{"type":27,"value":601},"  margin-inline",{"type":22,"tag":53,"props":603,"children":604},{"style":66},[605],{"type":27,"value":144},{"type":22,"tag":53,"props":607,"children":608},{"style":76},[609],{"type":27,"value":172},{"type":22,"tag":53,"props":611,"children":612},{"style":110},[613],{"type":27,"value":614},"rem",{"type":22,"tag":53,"props":616,"children":617},{"style":66},[618],{"type":27,"value":154},{"type":22,"tag":53,"props":620,"children":621},{"class":55,"line":96},[622],{"type":22,"tag":53,"props":623,"children":624},{"emptyLinePlaceholder":100},[625],{"type":27,"value":103},{"type":22,"tag":53,"props":627,"children":628},{"class":55,"line":106},[629],{"type":22,"tag":53,"props":630,"children":631},{"style":432},[632],{"type":27,"value":633},"  /* Instead of padding-top and padding-bottom */\n",{"type":22,"tag":53,"props":635,"children":636},{"class":55,"line":17},[637,642,646,651,655],{"type":22,"tag":53,"props":638,"children":639},{"style":76},[640],{"type":27,"value":641},"  padding-block",{"type":22,"tag":53,"props":643,"children":644},{"style":66},[645],{"type":27,"value":144},{"type":22,"tag":53,"props":647,"children":648},{"style":76},[649],{"type":27,"value":650},"2",{"type":22,"tag":53,"props":652,"children":653},{"style":110},[654],{"type":27,"value":614},{"type":22,"tag":53,"props":656,"children":657},{"style":66},[658],{"type":27,"value":154},{"type":22,"tag":53,"props":660,"children":661},{"class":55,"line":133},[662],{"type":22,"tag":53,"props":663,"children":664},{"style":66},[665],{"type":27,"value":93},{"type":22,"tag":30,"props":667,"children":669},{"id":668},"css-nesting",[670],{"type":27,"value":671},"CSS Nesting",{"type":22,"tag":23,"props":673,"children":674},{},[675],{"type":27,"value":676},"Native CSS nesting reduces repetition and improves readability:",{"type":22,"tag":42,"props":678,"children":680},{"className":44,"code":679,"language":46,"meta":7,"style":7},".card {\n  padding: 1rem;\n\n  & h2 {\n    font-size: 1.5rem;\n  }\n\n  &:hover {\n    background: #f5f5f5;\n  }\n\n  @media (min-width: 768px) {\n    padding: 2rem;\n  }\n}\n",[681],{"type":22,"tag":49,"props":682,"children":683},{"__ignoreMap":7},[684,696,720,727,745,770,777,784,801,822,829,837,874,883,891],{"type":22,"tag":53,"props":685,"children":686},{"class":55,"line":56},[687,692],{"type":22,"tag":53,"props":688,"children":689},{"style":60},[690],{"type":27,"value":691},".card",{"type":22,"tag":53,"props":693,"children":694},{"style":66},[695],{"type":27,"value":69},{"type":22,"tag":53,"props":697,"children":698},{"class":55,"line":72},[699,704,708,712,716],{"type":22,"tag":53,"props":700,"children":701},{"style":76},[702],{"type":27,"value":703},"  padding",{"type":22,"tag":53,"props":705,"children":706},{"style":66},[707],{"type":27,"value":144},{"type":22,"tag":53,"props":709,"children":710},{"style":76},[711],{"type":27,"value":172},{"type":22,"tag":53,"props":713,"children":714},{"style":110},[715],{"type":27,"value":614},{"type":22,"tag":53,"props":717,"children":718},{"style":66},[719],{"type":27,"value":154},{"type":22,"tag":53,"props":721,"children":722},{"class":55,"line":87},[723],{"type":22,"tag":53,"props":724,"children":725},{"emptyLinePlaceholder":100},[726],{"type":27,"value":103},{"type":22,"tag":53,"props":728,"children":729},{"class":55,"line":96},[730,735,740],{"type":22,"tag":53,"props":731,"children":732},{"style":66},[733],{"type":27,"value":734},"  & ",{"type":22,"tag":53,"props":736,"children":737},{"style":76},[738],{"type":27,"value":739},"h",{"type":22,"tag":53,"props":741,"children":742},{"style":66},[743],{"type":27,"value":744},"2 {\n",{"type":22,"tag":53,"props":746,"children":747},{"class":55,"line":106},[748,753,757,762,766],{"type":22,"tag":53,"props":749,"children":750},{"style":76},[751],{"type":27,"value":752},"    font-size",{"type":22,"tag":53,"props":754,"children":755},{"style":66},[756],{"type":27,"value":144},{"type":22,"tag":53,"props":758,"children":759},{"style":76},[760],{"type":27,"value":761},"1.5",{"type":22,"tag":53,"props":763,"children":764},{"style":110},[765],{"type":27,"value":614},{"type":22,"tag":53,"props":767,"children":768},{"style":66},[769],{"type":27,"value":154},{"type":22,"tag":53,"props":771,"children":772},{"class":55,"line":17},[773],{"type":22,"tag":53,"props":774,"children":775},{"style":66},[776],{"type":27,"value":199},{"type":22,"tag":53,"props":778,"children":779},{"class":55,"line":133},[780],{"type":22,"tag":53,"props":781,"children":782},{"emptyLinePlaceholder":100},[783],{"type":27,"value":103},{"type":22,"tag":53,"props":785,"children":786},{"class":55,"line":157},[787,792,797],{"type":22,"tag":53,"props":788,"children":789},{"style":66},[790],{"type":27,"value":791},"  &",{"type":22,"tag":53,"props":793,"children":794},{"style":60},[795],{"type":27,"value":796},":hover",{"type":22,"tag":53,"props":798,"children":799},{"style":66},[800],{"type":27,"value":69},{"type":22,"tag":53,"props":802,"children":803},{"class":55,"line":193},[804,809,813,818],{"type":22,"tag":53,"props":805,"children":806},{"style":76},[807],{"type":27,"value":808},"    background",{"type":22,"tag":53,"props":810,"children":811},{"style":66},[812],{"type":27,"value":144},{"type":22,"tag":53,"props":814,"children":815},{"style":76},[816],{"type":27,"value":817},"#f5f5f5",{"type":22,"tag":53,"props":819,"children":820},{"style":66},[821],{"type":27,"value":154},{"type":22,"tag":53,"props":823,"children":824},{"class":55,"line":202},[825],{"type":22,"tag":53,"props":826,"children":827},{"style":66},[828],{"type":27,"value":199},{"type":22,"tag":53,"props":830,"children":832},{"class":55,"line":831},11,[833],{"type":22,"tag":53,"props":834,"children":835},{"emptyLinePlaceholder":100},[836],{"type":27,"value":103},{"type":22,"tag":53,"props":838,"children":840},{"class":55,"line":839},12,[841,846,851,856,860,865,870],{"type":22,"tag":53,"props":842,"children":843},{"style":110},[844],{"type":27,"value":845},"  @media",{"type":22,"tag":53,"props":847,"children":848},{"style":66},[849],{"type":27,"value":850}," (",{"type":22,"tag":53,"props":852,"children":853},{"style":76},[854],{"type":27,"value":855},"min-width",{"type":22,"tag":53,"props":857,"children":858},{"style":66},[859],{"type":27,"value":144},{"type":22,"tag":53,"props":861,"children":862},{"style":76},[863],{"type":27,"value":864},"768",{"type":22,"tag":53,"props":866,"children":867},{"style":110},[868],{"type":27,"value":869},"px",{"type":22,"tag":53,"props":871,"children":872},{"style":66},[873],{"type":27,"value":458},{"type":22,"tag":53,"props":875,"children":877},{"class":55,"line":876},13,[878],{"type":22,"tag":53,"props":879,"children":880},{"style":66},[881],{"type":27,"value":882},"    padding: 2rem;\n",{"type":22,"tag":53,"props":884,"children":886},{"class":55,"line":885},14,[887],{"type":22,"tag":53,"props":888,"children":889},{"style":66},[890],{"type":27,"value":199},{"type":22,"tag":53,"props":892,"children":894},{"class":55,"line":893},15,[895],{"type":22,"tag":53,"props":896,"children":897},{"style":66},[898],{"type":27,"value":93},{"type":22,"tag":30,"props":900,"children":902},{"id":901},"conclusion",[903],{"type":27,"value":904},"Conclusion",{"type":22,"tag":23,"props":906,"children":907},{},[908],{"type":27,"value":909},"These modern CSS features significantly improve developer experience and make building complex, responsive designs more straightforward. As browser support continues to improve, incorporating these techniques into your projects will help you write cleaner, more maintainable stylesheets.",{"type":22,"tag":23,"props":911,"children":912},{},[913],{"type":27,"value":914},"What CSS features are you most excited about? Share your thoughts with us on social media!",{"type":22,"tag":916,"props":917,"children":918},"style",{},[919],{"type":27,"value":920},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":72,"depth":72,"links":922},[923,924,925,926,927,928],{"id":32,"depth":72,"text":35},{"id":215,"depth":72,"text":218},{"id":403,"depth":72,"text":406},{"id":558,"depth":72,"text":561},{"id":668,"depth":72,"text":671},{"id":901,"depth":72,"text":904},"markdown","content:blog:modern-css-techniques.md","content","blog/modern-css-techniques.md","blog/modern-css-techniques","md",[936,1810,2097],{"_path":937,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":938,"description":939,"date":940,"tags":941,"image":943,"author":16,"readingTime":157,"body":944,"_type":929,"_id":1807,"_source":931,"_file":1808,"_stem":1809,"_extension":934},"/blog/how-much-does-a-website-cost-in-2026","How Much Does a Website Cost in 2026?","A clear breakdown of website costs in 2026 - from landing pages to e-commerce and custom apps. Learn what drives pricing and how to budget for your project.","2026-03-15",[14,942],"Pricing","/images/blog/website-cost-2026.jpg",{"type":19,"children":945,"toc":1784},[946,952,958,963,972,997,1001,1007,1026,1034,1077,1082,1085,1091,1103,1111,1144,1161,1178,1181,1187,1198,1206,1239,1255,1263,1286,1289,1295,1305,1313,1346,1369,1377,1400,1403,1409,1419,1435,1443,1471,1494,1497,1503,1508,1515,1520,1526,1531,1537,1542,1548,1553,1559,1564,1570,1575,1578,1584,1589,1652,1655,1661,1666,1672,1715,1725,1728,1734,1739,1745,1763],{"type":22,"tag":947,"props":948,"children":950},"h1",{"id":949},"how-much-does-a-website-cost-in-2026",[951],{"type":27,"value":938},{"type":22,"tag":30,"props":953,"children":955},{"id":954},"introduction-why-website-pricing-varies",[956],{"type":27,"value":957},"Introduction: Why Website Pricing Varies",{"type":22,"tag":23,"props":959,"children":960},{},[961],{"type":27,"value":962},"Website costs vary because no two projects are the same. Scope, design expectations, integrations, and who builds the site all influence the final price. This article explains typical price ranges and what you get at each level so you can plan your budget and talk to agencies with confidence.",{"type":22,"tag":23,"props":964,"children":965},{},[966],{"type":22,"tag":967,"props":968,"children":969},"strong",{},[970],{"type":27,"value":971},"In this article you will learn:",{"type":22,"tag":973,"props":974,"children":975},"ul",{},[976,982,987,992],{"type":22,"tag":977,"props":978,"children":979},"li",{},[980],{"type":27,"value":981},"Why quotes from different agencies can differ widely",{"type":22,"tag":977,"props":983,"children":984},{},[985],{"type":27,"value":986},"Realistic price ranges for common project types",{"type":22,"tag":977,"props":988,"children":989},{},[990],{"type":27,"value":991},"What usually drives costs up or down",{"type":22,"tag":977,"props":993,"children":994},{},[995],{"type":27,"value":996},"How to avoid under-budgeting or overpaying",{"type":22,"tag":998,"props":999,"children":1000},"hr",{},[],{"type":22,"tag":30,"props":1002,"children":1004},{"id":1003},"overview-of-average-website-costs",[1005],{"type":27,"value":1006},"Overview of Average Website Costs",{"type":22,"tag":23,"props":1008,"children":1009},{},[1010,1012,1017,1019,1024],{"type":27,"value":1011},"In 2026, businesses typically spend between ",{"type":22,"tag":967,"props":1013,"children":1014},{},[1015],{"type":27,"value":1016},"$1,500 and $50,000+",{"type":27,"value":1018}," on a website, depending on type and complexity. Most small businesses and startups land in the ",{"type":22,"tag":967,"props":1020,"children":1021},{},[1022],{"type":27,"value":1023},"$2,000–$15,000",{"type":27,"value":1025}," range for a first site or redesign.",{"type":22,"tag":23,"props":1027,"children":1028},{},[1029],{"type":22,"tag":967,"props":1030,"children":1031},{},[1032],{"type":27,"value":1033},"Rough ranges by project type:",{"type":22,"tag":973,"props":1035,"children":1036},{},[1037,1047,1057,1067],{"type":22,"tag":977,"props":1038,"children":1039},{},[1040,1045],{"type":22,"tag":967,"props":1041,"children":1042},{},[1043],{"type":27,"value":1044},"Landing page:",{"type":27,"value":1046}," $1,500 – $5,000",{"type":22,"tag":977,"props":1048,"children":1049},{},[1050,1055],{"type":22,"tag":967,"props":1051,"children":1052},{},[1053],{"type":27,"value":1054},"Business website (5–10 pages):",{"type":27,"value":1056}," $2,500 – $8,000",{"type":22,"tag":977,"props":1058,"children":1059},{},[1060,1065],{"type":22,"tag":967,"props":1061,"children":1062},{},[1063],{"type":27,"value":1064},"E-commerce store:",{"type":27,"value":1066}," $5,000 – $25,000",{"type":22,"tag":977,"props":1068,"children":1069},{},[1070,1075],{"type":22,"tag":967,"props":1071,"children":1072},{},[1073],{"type":27,"value":1074},"Custom web app / SaaS:",{"type":27,"value":1076}," $15,000 – $50,000+",{"type":22,"tag":23,"props":1078,"children":1079},{},[1080],{"type":27,"value":1081},"These are starting points; your project may sit above or below depending on features, design, and content.",{"type":22,"tag":998,"props":1083,"children":1084},{},[],{"type":22,"tag":30,"props":1086,"children":1088},{"id":1087},"landing-page-cost-breakdown",[1089],{"type":27,"value":1090},"Landing Page Cost Breakdown",{"type":22,"tag":23,"props":1092,"children":1093},{},[1094,1096,1101],{"type":27,"value":1095},"A ",{"type":22,"tag":967,"props":1097,"children":1098},{},[1099],{"type":27,"value":1100},"landing page",{"type":27,"value":1102}," is a single-page site focused on one goal - e.g. course sign-ups, lead capture, or a product launch. They are the most affordable option and often the best fit for campaigns or testing an idea.",{"type":22,"tag":23,"props":1104,"children":1105},{},[1106],{"type":22,"tag":967,"props":1107,"children":1108},{},[1109],{"type":27,"value":1110},"What you typically get for $1,500–$3,000:",{"type":22,"tag":973,"props":1112,"children":1113},{},[1114,1119,1124,1129,1134,1139],{"type":22,"tag":977,"props":1115,"children":1116},{},[1117],{"type":27,"value":1118},"Custom responsive design (mobile and desktop)",{"type":22,"tag":977,"props":1120,"children":1121},{},[1122],{"type":27,"value":1123},"One scrollable page with clear sections (hero, benefits, social proof, CTA)",{"type":22,"tag":977,"props":1125,"children":1126},{},[1127],{"type":27,"value":1128},"Contact or sign-up form",{"type":22,"tag":977,"props":1130,"children":1131},{},[1132],{"type":27,"value":1133},"Basic SEO (meta tags, fast loading)",{"type":22,"tag":977,"props":1135,"children":1136},{},[1137],{"type":27,"value":1138},"Performance optimization",{"type":22,"tag":977,"props":1140,"children":1141},{},[1142],{"type":27,"value":1143},"Deployment and basic launch support",{"type":22,"tag":23,"props":1145,"children":1146},{},[1147,1152,1154,1159],{"type":22,"tag":967,"props":1148,"children":1149},{},[1150],{"type":27,"value":1151},"Practical example:",{"type":27,"value":1153}," A coach promoting an online course might pay around ",{"type":22,"tag":967,"props":1155,"children":1156},{},[1157],{"type":27,"value":1158},"$2,000",{"type":27,"value":1160}," for a landing page with a hero, course outline, testimonials, pricing, and a registration form - no blog or multi-page structure.",{"type":22,"tag":23,"props":1162,"children":1163},{},[1164,1169,1171,1176],{"type":22,"tag":967,"props":1165,"children":1166},{},[1167],{"type":27,"value":1168},"When costs go up:",{"type":27,"value":1170}," Video backgrounds, complex animations, custom illustrations, or multiple language versions can push a landing page toward ",{"type":22,"tag":967,"props":1172,"children":1173},{},[1174],{"type":27,"value":1175},"$4,000–$5,000",{"type":27,"value":1177},".",{"type":22,"tag":998,"props":1179,"children":1180},{},[],{"type":22,"tag":30,"props":1182,"children":1184},{"id":1183},"business-website-cost-breakdown",[1185],{"type":27,"value":1186},"Business Website Cost Breakdown",{"type":22,"tag":23,"props":1188,"children":1189},{},[1190,1191,1196],{"type":27,"value":1095},{"type":22,"tag":967,"props":1192,"children":1193},{},[1194],{"type":27,"value":1195},"business website",{"type":27,"value":1197}," usually has several pages (e.g. Home, About, Services, Blog, Contact) and supports your brand and lead generation over time.",{"type":22,"tag":23,"props":1199,"children":1200},{},[1201],{"type":22,"tag":967,"props":1202,"children":1203},{},[1204],{"type":27,"value":1205},"What you typically get for $2,500–$6,000:",{"type":22,"tag":973,"props":1207,"children":1208},{},[1209,1214,1219,1224,1229,1234],{"type":22,"tag":977,"props":1210,"children":1211},{},[1212],{"type":27,"value":1213},"5–10 pages with consistent design",{"type":22,"tag":977,"props":1215,"children":1216},{},[1217],{"type":27,"value":1218},"Responsive layout",{"type":22,"tag":977,"props":1220,"children":1221},{},[1222],{"type":27,"value":1223},"Blog or simple CMS so you can update content",{"type":22,"tag":977,"props":1225,"children":1226},{},[1227],{"type":27,"value":1228},"Contact forms (and optionally other forms)",{"type":22,"tag":977,"props":1230,"children":1231},{},[1232],{"type":27,"value":1233},"SEO optimization (structure, speed, meta)",{"type":22,"tag":977,"props":1235,"children":1236},{},[1237],{"type":27,"value":1238},"Analytics setup",{"type":22,"tag":23,"props":1240,"children":1241},{},[1242,1246,1248,1253],{"type":22,"tag":967,"props":1243,"children":1244},{},[1245],{"type":27,"value":1151},{"type":27,"value":1247}," A local agency with 6 pages (Home, Services, Portfolio, About, Blog, Contact), a simple blog, and a contact form might sit in the ",{"type":22,"tag":967,"props":1249,"children":1250},{},[1251],{"type":27,"value":1252},"$3,500–$5,000",{"type":27,"value":1254}," range.",{"type":22,"tag":23,"props":1256,"children":1257},{},[1258],{"type":22,"tag":967,"props":1259,"children":1260},{},[1261],{"type":27,"value":1262},"Common add-ons that increase cost:",{"type":22,"tag":973,"props":1264,"children":1265},{},[1266,1271,1276,1281],{"type":22,"tag":977,"props":1267,"children":1268},{},[1269],{"type":27,"value":1270},"More pages or custom page templates",{"type":22,"tag":977,"props":1272,"children":1273},{},[1274],{"type":27,"value":1275},"Member or client portal",{"type":22,"tag":977,"props":1277,"children":1278},{},[1279],{"type":27,"value":1280},"Booking or scheduling integration",{"type":22,"tag":977,"props":1282,"children":1283},{},[1284],{"type":27,"value":1285},"Advanced design or motion",{"type":22,"tag":998,"props":1287,"children":1288},{},[],{"type":22,"tag":30,"props":1290,"children":1292},{"id":1291},"e-commerce-website-cost-breakdown",[1293],{"type":27,"value":1294},"E-commerce Website Cost Breakdown",{"type":22,"tag":23,"props":1296,"children":1297},{},[1298,1303],{"type":22,"tag":967,"props":1299,"children":1300},{},[1301],{"type":27,"value":1302},"E-commerce",{"type":27,"value":1304}," sites need product catalog, cart, checkout, and often payment and inventory handling. Pricing depends heavily on number of products, payment methods, and integrations.",{"type":22,"tag":23,"props":1306,"children":1307},{},[1308],{"type":22,"tag":967,"props":1309,"children":1310},{},[1311],{"type":27,"value":1312},"What you typically get for $5,000–$15,000 (starter to mid-range):",{"type":22,"tag":973,"props":1314,"children":1315},{},[1316,1321,1326,1331,1336,1341],{"type":22,"tag":977,"props":1317,"children":1318},{},[1319],{"type":27,"value":1320},"Product catalog with categories and search",{"type":22,"tag":977,"props":1322,"children":1323},{},[1324],{"type":27,"value":1325},"Shopping cart and checkout",{"type":22,"tag":977,"props":1327,"children":1328},{},[1329],{"type":27,"value":1330},"Payment gateway integration (e.g. Stripe, PayPal)",{"type":22,"tag":977,"props":1332,"children":1333},{},[1334],{"type":27,"value":1335},"Order management (orders, status, basic emails)",{"type":22,"tag":977,"props":1337,"children":1338},{},[1339],{"type":27,"value":1340},"SEO for products and categories",{"type":22,"tag":977,"props":1342,"children":1343},{},[1344],{"type":27,"value":1345},"Analytics and conversion tracking",{"type":22,"tag":23,"props":1347,"children":1348},{},[1349,1353,1355,1360,1362,1367],{"type":22,"tag":967,"props":1350,"children":1351},{},[1352],{"type":27,"value":1151},{"type":27,"value":1354}," A store with ",{"type":22,"tag":967,"props":1356,"children":1357},{},[1358],{"type":27,"value":1359},"50–100 products",{"type":27,"value":1361},", one payment provider, and standard checkout might land in the ",{"type":22,"tag":967,"props":1363,"children":1364},{},[1365],{"type":27,"value":1366},"$6,000–$10,000",{"type":27,"value":1368}," range. Larger catalogs, subscriptions, or B2B pricing push the project higher.",{"type":22,"tag":23,"props":1370,"children":1371},{},[1372],{"type":22,"tag":967,"props":1373,"children":1374},{},[1375],{"type":27,"value":1376},"When e-commerce costs rise:",{"type":22,"tag":973,"props":1378,"children":1379},{},[1380,1385,1390,1395],{"type":22,"tag":977,"props":1381,"children":1382},{},[1383],{"type":27,"value":1384},"Multiple payment methods or complex tax rules",{"type":22,"tag":977,"props":1386,"children":1387},{},[1388],{"type":27,"value":1389},"Integrations with ERP, CRM, or shipping",{"type":22,"tag":977,"props":1391,"children":1392},{},[1393],{"type":27,"value":1394},"Custom product configurators or subscriptions",{"type":22,"tag":977,"props":1396,"children":1397},{},[1398],{"type":27,"value":1399},"Multi-currency or multi-language",{"type":22,"tag":998,"props":1401,"children":1402},{},[],{"type":22,"tag":30,"props":1404,"children":1406},{"id":1405},"custom-web-application-saas-cost-overview",[1407],{"type":27,"value":1408},"Custom Web Application / SaaS Cost Overview",{"type":22,"tag":23,"props":1410,"children":1411},{},[1412,1417],{"type":22,"tag":967,"props":1413,"children":1414},{},[1415],{"type":27,"value":1416},"Custom web apps and SaaS",{"type":27,"value":1418}," are built to do something specific - dashboards, internal tools, marketplaces, or software-as-a-service products. They are the most variable in price because they are defined by features and scale, not by a fixed “website” template.",{"type":22,"tag":23,"props":1420,"children":1421},{},[1422,1427,1429,1434],{"type":22,"tag":967,"props":1423,"children":1424},{},[1425],{"type":27,"value":1426},"Typical starting range: $15,000–$30,000",{"type":27,"value":1428}," for an MVP (minimum viable product). More features, users, and integrations can push projects to ",{"type":22,"tag":967,"props":1430,"children":1431},{},[1432],{"type":27,"value":1433},"$50,000+",{"type":27,"value":1177},{"type":22,"tag":23,"props":1436,"children":1437},{},[1438],{"type":22,"tag":967,"props":1439,"children":1440},{},[1441],{"type":27,"value":1442},"What often drives scope:",{"type":22,"tag":973,"props":1444,"children":1445},{},[1446,1451,1456,1461,1466],{"type":22,"tag":977,"props":1447,"children":1448},{},[1449],{"type":27,"value":1450},"User roles, permissions, and authentication",{"type":22,"tag":977,"props":1452,"children":1453},{},[1454],{"type":27,"value":1455},"Dashboards and reporting",{"type":22,"tag":977,"props":1457,"children":1458},{},[1459],{"type":27,"value":1460},"Integrations with other tools (APIs, webhooks)",{"type":22,"tag":977,"props":1462,"children":1463},{},[1464],{"type":27,"value":1465},"Automation, workflows, or “bot” logic",{"type":22,"tag":977,"props":1467,"children":1468},{},[1469],{"type":27,"value":1470},"Scalable architecture (performance, security)",{"type":22,"tag":23,"props":1472,"children":1473},{},[1474,1478,1480,1485,1487,1492],{"type":22,"tag":967,"props":1475,"children":1476},{},[1477],{"type":27,"value":1151},{"type":27,"value":1479}," A simple internal dashboard for a team of 20 - login, a few data views, and export - might start around ",{"type":22,"tag":967,"props":1481,"children":1482},{},[1483],{"type":27,"value":1484},"$18,000",{"type":27,"value":1486},". A customer-facing SaaS with billing, multiple plans, and integrations can easily reach ",{"type":22,"tag":967,"props":1488,"children":1489},{},[1490],{"type":27,"value":1491},"$40,000–$60,000",{"type":27,"value":1493}," for v1.",{"type":22,"tag":998,"props":1495,"children":1496},{},[],{"type":22,"tag":30,"props":1498,"children":1500},{"id":1499},"factors-that-affect-website-pricing",[1501],{"type":27,"value":1502},"Factors That Affect Website Pricing",{"type":22,"tag":23,"props":1504,"children":1505},{},[1506],{"type":27,"value":1507},"Understanding these levers helps you interpret quotes and decide where to invest or simplify.",{"type":22,"tag":1509,"props":1510,"children":1512},"h3",{"id":1511},"scope-and-number-of-pages-or-features",[1513],{"type":27,"value":1514},"Scope and number of pages or features",{"type":22,"tag":23,"props":1516,"children":1517},{},[1518],{"type":27,"value":1519},"More pages, custom layouts, and unique functionality mean more design and development time.",{"type":22,"tag":1509,"props":1521,"children":1523},{"id":1522},"design-expectations",[1524],{"type":27,"value":1525},"Design expectations",{"type":22,"tag":23,"props":1527,"children":1528},{},[1529],{"type":27,"value":1530},"Custom design, illustrations, or motion cost more than templates or minimal customization.",{"type":22,"tag":1509,"props":1532,"children":1534},{"id":1533},"integrations",[1535],{"type":27,"value":1536},"Integrations",{"type":22,"tag":23,"props":1538,"children":1539},{},[1540],{"type":27,"value":1541},"Payment, booking, CRM, email, or inventory systems add development and testing.",{"type":22,"tag":1509,"props":1543,"children":1545},{"id":1544},"content-and-copy",[1546],{"type":27,"value":1547},"Content and copy",{"type":22,"tag":23,"props":1549,"children":1550},{},[1551],{"type":27,"value":1552},"Who provides copy and images (you vs. agency) and how much content you have affects timeline and sometimes cost.",{"type":22,"tag":1509,"props":1554,"children":1556},{"id":1555},"timeline",[1557],{"type":27,"value":1558},"Timeline",{"type":22,"tag":23,"props":1560,"children":1561},{},[1562],{"type":27,"value":1563},"Tight deadlines may require a premium or limit how much can be included in the first phase.",{"type":22,"tag":1509,"props":1565,"children":1567},{"id":1566},"who-builds-it",[1568],{"type":27,"value":1569},"Who builds it",{"type":22,"tag":23,"props":1571,"children":1572},{},[1573],{"type":27,"value":1574},"Freelancers, small agencies, and large studios have different rates; quality and support vary too.",{"type":22,"tag":998,"props":1576,"children":1577},{},[],{"type":22,"tag":30,"props":1579,"children":1581},{"id":1580},"tips-to-reduce-website-development-costs",[1582],{"type":27,"value":1583},"Tips to Reduce Website Development Costs",{"type":22,"tag":23,"props":1585,"children":1586},{},[1587],{"type":27,"value":1588},"You can keep costs under control without sacrificing quality.",{"type":22,"tag":973,"props":1590,"children":1591},{},[1592,1602,1612,1622,1632,1642],{"type":22,"tag":977,"props":1593,"children":1594},{},[1595,1600],{"type":22,"tag":967,"props":1596,"children":1597},{},[1598],{"type":27,"value":1599},"Start with a clear brief:",{"type":27,"value":1601}," Define goals, must-have pages, and key features so the scope doesn’t creep.",{"type":22,"tag":977,"props":1603,"children":1604},{},[1605,1610],{"type":22,"tag":967,"props":1606,"children":1607},{},[1608],{"type":27,"value":1609},"Use a template or design system:",{"type":27,"value":1611}," Agree on a proven layout and style to cut design time.",{"type":22,"tag":977,"props":1613,"children":1614},{},[1615,1620],{"type":22,"tag":967,"props":1616,"children":1617},{},[1618],{"type":27,"value":1619},"Prepare content early:",{"type":27,"value":1621}," Provide copy and images on schedule so the project doesn’t stall.",{"type":22,"tag":977,"props":1623,"children":1624},{},[1625,1630],{"type":22,"tag":967,"props":1626,"children":1627},{},[1628],{"type":27,"value":1629},"Phase the project:",{"type":27,"value":1631}," Launch with core pages and features first; add blog, extra integrations, or advanced features in a later phase.",{"type":22,"tag":977,"props":1633,"children":1634},{},[1635,1640],{"type":22,"tag":967,"props":1636,"children":1637},{},[1638],{"type":27,"value":1639},"Choose the right type of site:",{"type":27,"value":1641}," Don’t pay for e-commerce or a custom app if a landing page or business site meets your needs.",{"type":22,"tag":977,"props":1643,"children":1644},{},[1645,1650],{"type":22,"tag":967,"props":1646,"children":1647},{},[1648],{"type":27,"value":1649},"Maintain it yourself:",{"type":27,"value":1651}," Learn to update content and basic settings so you rely less on ongoing dev work.",{"type":22,"tag":998,"props":1653,"children":1654},{},[],{"type":22,"tag":30,"props":1656,"children":1658},{"id":1657},"when-a-cheap-website-becomes-expensive",[1659],{"type":27,"value":1660},"When a Cheap Website Becomes Expensive",{"type":22,"tag":23,"props":1662,"children":1663},{},[1664],{"type":27,"value":1665},"A very low upfront price can lead to higher total cost if the result is hard to maintain, slow, or insecure.",{"type":22,"tag":1509,"props":1667,"children":1669},{"id":1668},"risks-of-going-too-cheap",[1670],{"type":27,"value":1671},"Risks of going too cheap",{"type":22,"tag":973,"props":1673,"children":1674},{},[1675,1685,1695,1705],{"type":22,"tag":977,"props":1676,"children":1677},{},[1678,1683],{"type":22,"tag":967,"props":1679,"children":1680},{},[1681],{"type":27,"value":1682},"Poor performance:",{"type":27,"value":1684}," Slow sites hurt SEO and conversions; fixing them later costs more.",{"type":22,"tag":977,"props":1686,"children":1687},{},[1688,1693],{"type":22,"tag":967,"props":1689,"children":1690},{},[1691],{"type":27,"value":1692},"No or weak SEO:",{"type":27,"value":1694}," Rebuilding structure and content for search is more expensive than doing it from the start.",{"type":22,"tag":977,"props":1696,"children":1697},{},[1698,1703],{"type":22,"tag":967,"props":1699,"children":1700},{},[1701],{"type":27,"value":1702},"Lock-in or messy code:",{"type":27,"value":1704}," Templates or code that only one person can change can force you to redo the site later.",{"type":22,"tag":977,"props":1706,"children":1707},{},[1708,1713],{"type":22,"tag":967,"props":1709,"children":1710},{},[1711],{"type":27,"value":1712},"Security and updates:",{"type":27,"value":1714}," Outdated stack or no maintenance plan can lead to breaches or compatibility issues.",{"type":22,"tag":23,"props":1716,"children":1717},{},[1718,1723],{"type":22,"tag":967,"props":1719,"children":1720},{},[1721],{"type":27,"value":1722},"Takeaway:",{"type":27,"value":1724}," Aim for a clear scope and a fair price for your project type. The “right” price is one that gets you a solid, maintainable site that supports your goals - not necessarily the lowest quote.",{"type":22,"tag":998,"props":1726,"children":1727},{},[],{"type":22,"tag":30,"props":1729,"children":1731},{"id":1730},"conclusion-and-next-steps",[1732],{"type":27,"value":1733},"Conclusion and Next Steps",{"type":22,"tag":23,"props":1735,"children":1736},{},[1737],{"type":27,"value":1738},"Website cost in 2026 depends on what you need: a landing page, a business site, an online store, or a custom app. Use the ranges in this article as a starting point, then get a few quotes with a clear brief so you can compare scope and value.",{"type":22,"tag":1509,"props":1740,"children":1742},{"id":1741},"next-steps",[1743],{"type":27,"value":1744},"Next steps",{"type":22,"tag":973,"props":1746,"children":1747},{},[1748,1753,1758],{"type":22,"tag":977,"props":1749,"children":1750},{},[1751],{"type":27,"value":1752},"List your goals, must-have pages, and any integrations.",{"type":22,"tag":977,"props":1754,"children":1755},{},[1756],{"type":27,"value":1757},"Request quotes from 2–3 agencies or developers with a short written brief.",{"type":22,"tag":977,"props":1759,"children":1760},{},[1761],{"type":27,"value":1762},"Compare what’s included (pages, design, SEO, support), not only the total price.",{"type":22,"tag":23,"props":1764,"children":1765},{},[1766,1768,1775,1777,1782],{"type":27,"value":1767},"If you’d like a tailored estimate for your project, ",{"type":22,"tag":1769,"props":1770,"children":1772},"a",{"href":1771},"/#contact",[1773],{"type":27,"value":1774},"get in touch",{"type":27,"value":1776}," or ",{"type":22,"tag":1769,"props":1778,"children":1779},{"href":1771},[1780],{"type":27,"value":1781},"request a quote",{"type":27,"value":1783}," with a short description of your goals and we’ll outline options and ballpark costs.",{"title":7,"searchDepth":72,"depth":72,"links":1785},[1786,1787,1788,1789,1790,1791,1792,1800,1801,1804],{"id":954,"depth":72,"text":957},{"id":1003,"depth":72,"text":1006},{"id":1087,"depth":72,"text":1090},{"id":1183,"depth":72,"text":1186},{"id":1291,"depth":72,"text":1294},{"id":1405,"depth":72,"text":1408},{"id":1499,"depth":72,"text":1502,"children":1793},[1794,1795,1796,1797,1798,1799],{"id":1511,"depth":87,"text":1514},{"id":1522,"depth":87,"text":1525},{"id":1533,"depth":87,"text":1536},{"id":1544,"depth":87,"text":1547},{"id":1555,"depth":87,"text":1558},{"id":1566,"depth":87,"text":1569},{"id":1580,"depth":72,"text":1583},{"id":1657,"depth":72,"text":1660,"children":1802},[1803],{"id":1668,"depth":87,"text":1671},{"id":1730,"depth":72,"text":1733,"children":1805},[1806],{"id":1741,"depth":87,"text":1744},"content:blog:how-much-does-a-website-cost-in-2026.md","blog/how-much-does-a-website-cost-in-2026.md","blog/how-much-does-a-website-cost-in-2026",{"_path":1811,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":1812,"description":1813,"date":1814,"tags":1815,"image":1818,"author":16,"readingTime":157,"body":1819,"_type":929,"_id":2094,"_source":931,"_file":2095,"_stem":2096,"_extension":934},"/blog/building-performant-web-applications","Building Performant Web Applications in 2026","Learn the key strategies and techniques for building fast, efficient web applications that provide exceptional user experiences.","2026-03-01",[1816,14,1817],"Performance","Best Practices","/images/blog/performance.jpg",{"type":19,"children":1820,"toc":2083},[1821,1826,1832,1837,1855,1860,1866,1872,1877,1906,1912,1917,1940,1946,1951,1974,1980,1985,2008,2014,2019,2062,2066,2071],{"type":22,"tag":23,"props":1822,"children":1823},{},[1824],{"type":27,"value":1825},"Performance isn't just a nice-to-have feature anymore - it's a critical factor that directly impacts user experience, conversion rates, and search engine rankings. In this comprehensive guide, we'll explore the essential strategies for building lightning-fast web applications.",{"type":22,"tag":30,"props":1827,"children":1829},{"id":1828},"why-performance-matters",[1830],{"type":27,"value":1831},"Why Performance Matters",{"type":22,"tag":23,"props":1833,"children":1834},{},[1835],{"type":27,"value":1836},"Studies consistently show that users expect pages to load in under 3 seconds. Every additional second of load time can result in:",{"type":22,"tag":973,"props":1838,"children":1839},{},[1840,1845,1850],{"type":22,"tag":977,"props":1841,"children":1842},{},[1843],{"type":27,"value":1844},"7% reduction in conversions",{"type":22,"tag":977,"props":1846,"children":1847},{},[1848],{"type":27,"value":1849},"16% decrease in customer satisfaction",{"type":22,"tag":977,"props":1851,"children":1852},{},[1853],{"type":27,"value":1854},"11% fewer page views",{"type":22,"tag":23,"props":1856,"children":1857},{},[1858],{"type":27,"value":1859},"With Core Web Vitals now being a ranking factor for Google, performance optimization is more important than ever.",{"type":22,"tag":30,"props":1861,"children":1863},{"id":1862},"key-performance-strategies",[1864],{"type":27,"value":1865},"Key Performance Strategies",{"type":22,"tag":1509,"props":1867,"children":1869},{"id":1868},"_1-optimize-your-images",[1870],{"type":27,"value":1871},"1. Optimize Your Images",{"type":22,"tag":23,"props":1873,"children":1874},{},[1875],{"type":27,"value":1876},"Images often account for the largest portion of page weight. Here's how to optimize them:",{"type":22,"tag":973,"props":1878,"children":1879},{},[1880,1885,1890,1901],{"type":22,"tag":977,"props":1881,"children":1882},{},[1883],{"type":27,"value":1884},"Use modern formats like WebP or AVIF",{"type":22,"tag":977,"props":1886,"children":1887},{},[1888],{"type":27,"value":1889},"Implement lazy loading for below-the-fold images",{"type":22,"tag":977,"props":1891,"children":1892},{},[1893,1895],{"type":27,"value":1894},"Serve responsive images with ",{"type":22,"tag":49,"props":1896,"children":1898},{"className":1897},[],[1899],{"type":27,"value":1900},"srcset",{"type":22,"tag":977,"props":1902,"children":1903},{},[1904],{"type":27,"value":1905},"Consider using a CDN with automatic image optimization",{"type":22,"tag":1509,"props":1907,"children":1909},{"id":1908},"_2-minimize-javascript-bundle-size",[1910],{"type":27,"value":1911},"2. Minimize JavaScript Bundle Size",{"type":22,"tag":23,"props":1913,"children":1914},{},[1915],{"type":27,"value":1916},"Large JavaScript bundles can significantly slow down page interactivity:",{"type":22,"tag":973,"props":1918,"children":1919},{},[1920,1925,1930,1935],{"type":22,"tag":977,"props":1921,"children":1922},{},[1923],{"type":27,"value":1924},"Use code splitting to load only what's needed",{"type":22,"tag":977,"props":1926,"children":1927},{},[1928],{"type":27,"value":1929},"Tree-shake unused code",{"type":22,"tag":977,"props":1931,"children":1932},{},[1933],{"type":27,"value":1934},"Consider lighter alternatives to heavy libraries",{"type":22,"tag":977,"props":1936,"children":1937},{},[1938],{"type":27,"value":1939},"Defer non-critical scripts",{"type":22,"tag":1509,"props":1941,"children":1943},{"id":1942},"_3-leverage-caching-strategies",[1944],{"type":27,"value":1945},"3. Leverage Caching Strategies",{"type":22,"tag":23,"props":1947,"children":1948},{},[1949],{"type":27,"value":1950},"Effective caching can dramatically improve repeat visit performance:",{"type":22,"tag":973,"props":1952,"children":1953},{},[1954,1959,1964,1969],{"type":22,"tag":977,"props":1955,"children":1956},{},[1957],{"type":27,"value":1958},"Implement service workers for offline support",{"type":22,"tag":977,"props":1960,"children":1961},{},[1962],{"type":27,"value":1963},"Use appropriate cache headers",{"type":22,"tag":977,"props":1965,"children":1966},{},[1967],{"type":27,"value":1968},"Consider stale-while-revalidate patterns",{"type":22,"tag":977,"props":1970,"children":1971},{},[1972],{"type":27,"value":1973},"Cache API responses where appropriate",{"type":22,"tag":1509,"props":1975,"children":1977},{"id":1976},"_4-optimize-critical-rendering-path",[1978],{"type":27,"value":1979},"4. Optimize Critical Rendering Path",{"type":22,"tag":23,"props":1981,"children":1982},{},[1983],{"type":27,"value":1984},"The critical rendering path determines how quickly content appears:",{"type":22,"tag":973,"props":1986,"children":1987},{},[1988,1993,1998,2003],{"type":22,"tag":977,"props":1989,"children":1990},{},[1991],{"type":27,"value":1992},"Inline critical CSS",{"type":22,"tag":977,"props":1994,"children":1995},{},[1996],{"type":27,"value":1997},"Preload important resources",{"type":22,"tag":977,"props":1999,"children":2000},{},[2001],{"type":27,"value":2002},"Minimize render-blocking resources",{"type":22,"tag":977,"props":2004,"children":2005},{},[2006],{"type":27,"value":2007},"Use font-display: swap for custom fonts",{"type":22,"tag":30,"props":2009,"children":2011},{"id":2010},"measuring-performance",[2012],{"type":27,"value":2013},"Measuring Performance",{"type":22,"tag":23,"props":2015,"children":2016},{},[2017],{"type":27,"value":2018},"You can't improve what you don't measure. Use these tools to track your performance:",{"type":22,"tag":973,"props":2020,"children":2021},{},[2022,2032,2042,2052],{"type":22,"tag":977,"props":2023,"children":2024},{},[2025,2030],{"type":22,"tag":967,"props":2026,"children":2027},{},[2028],{"type":27,"value":2029},"Lighthouse",{"type":27,"value":2031},": Comprehensive performance auditing",{"type":22,"tag":977,"props":2033,"children":2034},{},[2035,2040],{"type":22,"tag":967,"props":2036,"children":2037},{},[2038],{"type":27,"value":2039},"Web Vitals",{"type":27,"value":2041},": Real user metrics",{"type":22,"tag":977,"props":2043,"children":2044},{},[2045,2050],{"type":22,"tag":967,"props":2046,"children":2047},{},[2048],{"type":27,"value":2049},"WebPageTest",{"type":27,"value":2051},": Detailed waterfall analysis",{"type":22,"tag":977,"props":2053,"children":2054},{},[2055,2060],{"type":22,"tag":967,"props":2056,"children":2057},{},[2058],{"type":27,"value":2059},"Chrome DevTools",{"type":27,"value":2061},": Performance profiling",{"type":22,"tag":30,"props":2063,"children":2064},{"id":901},[2065],{"type":27,"value":904},{"type":22,"tag":23,"props":2067,"children":2068},{},[2069],{"type":27,"value":2070},"Building performant web applications requires a holistic approach that considers every aspect of your application. By implementing these strategies, you'll create faster, more efficient applications that delight users and perform well in search rankings.",{"type":22,"tag":23,"props":2072,"children":2073},{},[2074,2076,2081],{"type":27,"value":2075},"Ready to optimize your web application? ",{"type":22,"tag":1769,"props":2077,"children":2078},{"href":1771},[2079],{"type":27,"value":2080},"Contact us",{"type":27,"value":2082}," to discuss how we can help improve your site's performance.",{"title":7,"searchDepth":72,"depth":72,"links":2084},[2085,2086,2092,2093],{"id":1828,"depth":72,"text":1831},{"id":1862,"depth":72,"text":1865,"children":2087},[2088,2089,2090,2091],{"id":1868,"depth":87,"text":1871},{"id":1908,"depth":87,"text":1911},{"id":1942,"depth":87,"text":1945},{"id":1976,"depth":87,"text":1979},{"id":2010,"depth":72,"text":2013},{"id":901,"depth":72,"text":904},"content:blog:building-performant-web-applications.md","blog/building-performant-web-applications.md","blog/building-performant-web-applications",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"tags":2098,"image":15,"author":16,"readingTime":17,"body":2099,"_type":929,"_id":930,"_source":931,"_file":932,"_stem":933,"_extension":934},[12,13,14],{"type":19,"children":2100,"toc":2874},[2101,2105,2109,2113,2241,2245,2249,2253,2417,2421,2431,2552,2556,2560,2651,2655,2659,2858,2862,2866,2870],{"type":22,"tag":23,"props":2102,"children":2103},{},[2104],{"type":27,"value":28},{"type":22,"tag":30,"props":2106,"children":2107},{"id":32},[2108],{"type":27,"value":35},{"type":22,"tag":23,"props":2110,"children":2111},{},[2112],{"type":27,"value":40},{"type":22,"tag":42,"props":2114,"children":2115},{"className":44,"code":45,"language":46,"meta":7,"style":7},[2116],{"type":22,"tag":49,"props":2117,"children":2118},{"__ignoreMap":7},[2119,2130,2141,2148,2155,2166,2177,2196,2227,2234],{"type":22,"tag":53,"props":2120,"children":2121},{"class":55,"line":56},[2122,2126],{"type":22,"tag":53,"props":2123,"children":2124},{"style":60},[2125],{"type":27,"value":63},{"type":22,"tag":53,"props":2127,"children":2128},{"style":66},[2129],{"type":27,"value":69},{"type":22,"tag":53,"props":2131,"children":2132},{"class":55,"line":72},[2133,2137],{"type":22,"tag":53,"props":2134,"children":2135},{"style":76},[2136],{"type":27,"value":79},{"type":22,"tag":53,"props":2138,"children":2139},{"style":66},[2140],{"type":27,"value":84},{"type":22,"tag":53,"props":2142,"children":2143},{"class":55,"line":87},[2144],{"type":22,"tag":53,"props":2145,"children":2146},{"style":66},[2147],{"type":27,"value":93},{"type":22,"tag":53,"props":2149,"children":2150},{"class":55,"line":96},[2151],{"type":22,"tag":53,"props":2152,"children":2153},{"emptyLinePlaceholder":100},[2154],{"type":27,"value":103},{"type":22,"tag":53,"props":2156,"children":2157},{"class":55,"line":106},[2158,2162],{"type":22,"tag":53,"props":2159,"children":2160},{"style":110},[2161],{"type":27,"value":113},{"type":22,"tag":53,"props":2163,"children":2164},{"style":66},[2165],{"type":27,"value":118},{"type":22,"tag":53,"props":2167,"children":2168},{"class":55,"line":17},[2169,2173],{"type":22,"tag":53,"props":2170,"children":2171},{"style":60},[2172],{"type":27,"value":126},{"type":22,"tag":53,"props":2174,"children":2175},{"style":66},[2176],{"type":27,"value":69},{"type":22,"tag":53,"props":2178,"children":2179},{"class":55,"line":133},[2180,2184,2188,2192],{"type":22,"tag":53,"props":2181,"children":2182},{"style":76},[2183],{"type":27,"value":139},{"type":22,"tag":53,"props":2185,"children":2186},{"style":66},[2187],{"type":27,"value":144},{"type":22,"tag":53,"props":2189,"children":2190},{"style":76},[2191],{"type":27,"value":149},{"type":22,"tag":53,"props":2193,"children":2194},{"style":66},[2195],{"type":27,"value":154},{"type":22,"tag":53,"props":2197,"children":2198},{"class":55,"line":157},[2199,2203,2207,2211,2215,2219,2223],{"type":22,"tag":53,"props":2200,"children":2201},{"style":76},[2202],{"type":27,"value":163},{"type":22,"tag":53,"props":2204,"children":2205},{"style":66},[2206],{"type":27,"value":144},{"type":22,"tag":53,"props":2208,"children":2209},{"style":76},[2210],{"type":27,"value":172},{"type":22,"tag":53,"props":2212,"children":2213},{"style":110},[2214],{"type":27,"value":177},{"type":22,"tag":53,"props":2216,"children":2217},{"style":76},[2218],{"type":27,"value":182},{"type":22,"tag":53,"props":2220,"children":2221},{"style":110},[2222],{"type":27,"value":177},{"type":22,"tag":53,"props":2224,"children":2225},{"style":66},[2226],{"type":27,"value":154},{"type":22,"tag":53,"props":2228,"children":2229},{"class":55,"line":193},[2230],{"type":22,"tag":53,"props":2231,"children":2232},{"style":66},[2233],{"type":27,"value":199},{"type":22,"tag":53,"props":2235,"children":2236},{"class":55,"line":202},[2237],{"type":22,"tag":53,"props":2238,"children":2239},{"style":66},[2240],{"type":27,"value":93},{"type":22,"tag":23,"props":2242,"children":2243},{},[2244],{"type":27,"value":212},{"type":22,"tag":30,"props":2246,"children":2247},{"id":215},[2248],{"type":27,"value":218},{"type":22,"tag":23,"props":2250,"children":2251},{},[2252],{"type":27,"value":223},{"type":22,"tag":42,"props":2254,"children":2255},{"className":44,"code":226,"language":46,"meta":7,"style":7},[2256],{"type":22,"tag":49,"props":2257,"children":2258},{"__ignoreMap":7},[2259,2270,2289,2328,2335,2342,2353,2372,2391,2410],{"type":22,"tag":53,"props":2260,"children":2261},{"class":55,"line":56},[2262,2266],{"type":22,"tag":53,"props":2263,"children":2264},{"style":60},[2265],{"type":27,"value":238},{"type":22,"tag":53,"props":2267,"children":2268},{"style":66},[2269],{"type":27,"value":69},{"type":22,"tag":53,"props":2271,"children":2272},{"class":55,"line":72},[2273,2277,2281,2285],{"type":22,"tag":53,"props":2274,"children":2275},{"style":76},[2276],{"type":27,"value":250},{"type":22,"tag":53,"props":2278,"children":2279},{"style":66},[2280],{"type":27,"value":144},{"type":22,"tag":53,"props":2282,"children":2283},{"style":76},[2284],{"type":27,"value":149},{"type":22,"tag":53,"props":2286,"children":2287},{"style":66},[2288],{"type":27,"value":154},{"type":22,"tag":53,"props":2290,"children":2291},{"class":55,"line":87},[2292,2296,2300,2304,2308,2312,2316,2320,2324],{"type":22,"tag":53,"props":2293,"children":2294},{"style":76},[2295],{"type":27,"value":270},{"type":22,"tag":53,"props":2297,"children":2298},{"style":66},[2299],{"type":27,"value":144},{"type":22,"tag":53,"props":2301,"children":2302},{"style":76},[2303],{"type":27,"value":279},{"type":22,"tag":53,"props":2305,"children":2306},{"style":66},[2307],{"type":27,"value":284},{"type":22,"tag":53,"props":2309,"children":2310},{"style":76},[2311],{"type":27,"value":289},{"type":22,"tag":53,"props":2313,"children":2314},{"style":66},[2315],{"type":27,"value":294},{"type":22,"tag":53,"props":2317,"children":2318},{"style":76},[2319],{"type":27,"value":172},{"type":22,"tag":53,"props":2321,"children":2322},{"style":110},[2323],{"type":27,"value":177},{"type":22,"tag":53,"props":2325,"children":2326},{"style":66},[2327],{"type":27,"value":307},{"type":22,"tag":53,"props":2329,"children":2330},{"class":55,"line":96},[2331],{"type":22,"tag":53,"props":2332,"children":2333},{"style":66},[2334],{"type":27,"value":93},{"type":22,"tag":53,"props":2336,"children":2337},{"class":55,"line":106},[2338],{"type":22,"tag":53,"props":2339,"children":2340},{"emptyLinePlaceholder":100},[2341],{"type":27,"value":103},{"type":22,"tag":53,"props":2343,"children":2344},{"class":55,"line":17},[2345,2349],{"type":22,"tag":53,"props":2346,"children":2347},{"style":60},[2348],{"type":27,"value":329},{"type":22,"tag":53,"props":2350,"children":2351},{"style":66},[2352],{"type":27,"value":69},{"type":22,"tag":53,"props":2354,"children":2355},{"class":55,"line":133},[2356,2360,2364,2368],{"type":22,"tag":53,"props":2357,"children":2358},{"style":76},[2359],{"type":27,"value":250},{"type":22,"tag":53,"props":2361,"children":2362},{"style":66},[2363],{"type":27,"value":144},{"type":22,"tag":53,"props":2365,"children":2366},{"style":76},[2367],{"type":27,"value":149},{"type":22,"tag":53,"props":2369,"children":2370},{"style":66},[2371],{"type":27,"value":154},{"type":22,"tag":53,"props":2373,"children":2374},{"class":55,"line":157},[2375,2379,2383,2387],{"type":22,"tag":53,"props":2376,"children":2377},{"style":76},[2378],{"type":27,"value":360},{"type":22,"tag":53,"props":2380,"children":2381},{"style":66},[2382],{"type":27,"value":365},{"type":22,"tag":53,"props":2384,"children":2385},{"style":76},[2386],{"type":27,"value":289},{"type":22,"tag":53,"props":2388,"children":2389},{"style":66},[2390],{"type":27,"value":154},{"type":22,"tag":53,"props":2392,"children":2393},{"class":55,"line":193},[2394,2398,2402,2406],{"type":22,"tag":53,"props":2395,"children":2396},{"style":76},[2397],{"type":27,"value":270},{"type":22,"tag":53,"props":2399,"children":2400},{"style":66},[2401],{"type":27,"value":144},{"type":22,"tag":53,"props":2403,"children":2404},{"style":76},[2405],{"type":27,"value":389},{"type":22,"tag":53,"props":2407,"children":2408},{"style":66},[2409],{"type":27,"value":154},{"type":22,"tag":53,"props":2411,"children":2412},{"class":55,"line":202},[2413],{"type":22,"tag":53,"props":2414,"children":2415},{"style":66},[2416],{"type":27,"value":93},{"type":22,"tag":30,"props":2418,"children":2419},{"id":403},[2420],{"type":27,"value":406},{"type":22,"tag":23,"props":2422,"children":2423},{},[2424,2425,2430],{"type":27,"value":411},{"type":22,"tag":49,"props":2426,"children":2428},{"className":2427},[],[2429],{"type":27,"value":417},{"type":27,"value":419},{"type":22,"tag":42,"props":2432,"children":2433},{"className":44,"code":422,"language":46,"meta":7,"style":7},[2434],{"type":22,"tag":49,"props":2435,"children":2436},{"__ignoreMap":7},[2437,2444,2463,2482,2489,2496,2503,2526,2545],{"type":22,"tag":53,"props":2438,"children":2439},{"class":55,"line":56},[2440],{"type":22,"tag":53,"props":2441,"children":2442},{"style":432},[2443],{"type":27,"value":435},{"type":22,"tag":53,"props":2445,"children":2446},{"class":55,"line":72},[2447,2451,2455,2459],{"type":22,"tag":53,"props":2448,"children":2449},{"style":60},[2450],{"type":27,"value":443},{"type":22,"tag":53,"props":2452,"children":2453},{"style":66},[2454],{"type":27,"value":284},{"type":22,"tag":53,"props":2456,"children":2457},{"style":450},[2458],{"type":27,"value":453},{"type":22,"tag":53,"props":2460,"children":2461},{"style":66},[2462],{"type":27,"value":458},{"type":22,"tag":53,"props":2464,"children":2465},{"class":55,"line":87},[2466,2470,2474,2478],{"type":22,"tag":53,"props":2467,"children":2468},{"style":76},[2469],{"type":27,"value":466},{"type":22,"tag":53,"props":2471,"children":2472},{"style":66},[2473],{"type":27,"value":144},{"type":22,"tag":53,"props":2475,"children":2476},{"style":76},[2477],{"type":27,"value":475},{"type":22,"tag":53,"props":2479,"children":2480},{"style":66},[2481],{"type":27,"value":154},{"type":22,"tag":53,"props":2483,"children":2484},{"class":55,"line":96},[2485],{"type":22,"tag":53,"props":2486,"children":2487},{"style":66},[2488],{"type":27,"value":93},{"type":22,"tag":53,"props":2490,"children":2491},{"class":55,"line":106},[2492],{"type":22,"tag":53,"props":2493,"children":2494},{"emptyLinePlaceholder":100},[2495],{"type":27,"value":103},{"type":22,"tag":53,"props":2497,"children":2498},{"class":55,"line":17},[2499],{"type":22,"tag":53,"props":2500,"children":2501},{"style":432},[2502],{"type":27,"value":501},{"type":22,"tag":53,"props":2504,"children":2505},{"class":55,"line":133},[2506,2510,2514,2518,2522],{"type":22,"tag":53,"props":2507,"children":2508},{"style":450},[2509],{"type":27,"value":509},{"type":22,"tag":53,"props":2511,"children":2512},{"style":60},[2513],{"type":27,"value":514},{"type":22,"tag":53,"props":2515,"children":2516},{"style":66},[2517],{"type":27,"value":284},{"type":22,"tag":53,"props":2519,"children":2520},{"style":60},[2521],{"type":27,"value":523},{"type":22,"tag":53,"props":2523,"children":2524},{"style":66},[2525],{"type":27,"value":458},{"type":22,"tag":53,"props":2527,"children":2528},{"class":55,"line":157},[2529,2533,2537,2541],{"type":22,"tag":53,"props":2530,"children":2531},{"style":76},[2532],{"type":27,"value":535},{"type":22,"tag":53,"props":2534,"children":2535},{"style":66},[2536],{"type":27,"value":144},{"type":22,"tag":53,"props":2538,"children":2539},{"style":76},[2540],{"type":27,"value":544},{"type":22,"tag":53,"props":2542,"children":2543},{"style":66},[2544],{"type":27,"value":154},{"type":22,"tag":53,"props":2546,"children":2547},{"class":55,"line":193},[2548],{"type":22,"tag":53,"props":2549,"children":2550},{"style":66},[2551],{"type":27,"value":93},{"type":22,"tag":30,"props":2553,"children":2554},{"id":558},[2555],{"type":27,"value":561},{"type":22,"tag":23,"props":2557,"children":2558},{},[2559],{"type":27,"value":566},{"type":22,"tag":42,"props":2561,"children":2562},{"className":44,"code":569,"language":46,"meta":7,"style":7},[2563],{"type":22,"tag":49,"props":2564,"children":2565},{"__ignoreMap":7},[2566,2577,2584,2607,2614,2621,2644],{"type":22,"tag":53,"props":2567,"children":2568},{"class":55,"line":56},[2569,2573],{"type":22,"tag":53,"props":2570,"children":2571},{"style":60},[2572],{"type":27,"value":581},{"type":22,"tag":53,"props":2574,"children":2575},{"style":66},[2576],{"type":27,"value":69},{"type":22,"tag":53,"props":2578,"children":2579},{"class":55,"line":72},[2580],{"type":22,"tag":53,"props":2581,"children":2582},{"style":432},[2583],{"type":27,"value":593},{"type":22,"tag":53,"props":2585,"children":2586},{"class":55,"line":87},[2587,2591,2595,2599,2603],{"type":22,"tag":53,"props":2588,"children":2589},{"style":76},[2590],{"type":27,"value":601},{"type":22,"tag":53,"props":2592,"children":2593},{"style":66},[2594],{"type":27,"value":144},{"type":22,"tag":53,"props":2596,"children":2597},{"style":76},[2598],{"type":27,"value":172},{"type":22,"tag":53,"props":2600,"children":2601},{"style":110},[2602],{"type":27,"value":614},{"type":22,"tag":53,"props":2604,"children":2605},{"style":66},[2606],{"type":27,"value":154},{"type":22,"tag":53,"props":2608,"children":2609},{"class":55,"line":96},[2610],{"type":22,"tag":53,"props":2611,"children":2612},{"emptyLinePlaceholder":100},[2613],{"type":27,"value":103},{"type":22,"tag":53,"props":2615,"children":2616},{"class":55,"line":106},[2617],{"type":22,"tag":53,"props":2618,"children":2619},{"style":432},[2620],{"type":27,"value":633},{"type":22,"tag":53,"props":2622,"children":2623},{"class":55,"line":17},[2624,2628,2632,2636,2640],{"type":22,"tag":53,"props":2625,"children":2626},{"style":76},[2627],{"type":27,"value":641},{"type":22,"tag":53,"props":2629,"children":2630},{"style":66},[2631],{"type":27,"value":144},{"type":22,"tag":53,"props":2633,"children":2634},{"style":76},[2635],{"type":27,"value":650},{"type":22,"tag":53,"props":2637,"children":2638},{"style":110},[2639],{"type":27,"value":614},{"type":22,"tag":53,"props":2641,"children":2642},{"style":66},[2643],{"type":27,"value":154},{"type":22,"tag":53,"props":2645,"children":2646},{"class":55,"line":133},[2647],{"type":22,"tag":53,"props":2648,"children":2649},{"style":66},[2650],{"type":27,"value":93},{"type":22,"tag":30,"props":2652,"children":2653},{"id":668},[2654],{"type":27,"value":671},{"type":22,"tag":23,"props":2656,"children":2657},{},[2658],{"type":27,"value":676},{"type":22,"tag":42,"props":2660,"children":2661},{"className":44,"code":679,"language":46,"meta":7,"style":7},[2662],{"type":22,"tag":49,"props":2663,"children":2664},{"__ignoreMap":7},[2665,2676,2699,2706,2721,2744,2751,2758,2773,2792,2799,2806,2837,2844,2851],{"type":22,"tag":53,"props":2666,"children":2667},{"class":55,"line":56},[2668,2672],{"type":22,"tag":53,"props":2669,"children":2670},{"style":60},[2671],{"type":27,"value":691},{"type":22,"tag":53,"props":2673,"children":2674},{"style":66},[2675],{"type":27,"value":69},{"type":22,"tag":53,"props":2677,"children":2678},{"class":55,"line":72},[2679,2683,2687,2691,2695],{"type":22,"tag":53,"props":2680,"children":2681},{"style":76},[2682],{"type":27,"value":703},{"type":22,"tag":53,"props":2684,"children":2685},{"style":66},[2686],{"type":27,"value":144},{"type":22,"tag":53,"props":2688,"children":2689},{"style":76},[2690],{"type":27,"value":172},{"type":22,"tag":53,"props":2692,"children":2693},{"style":110},[2694],{"type":27,"value":614},{"type":22,"tag":53,"props":2696,"children":2697},{"style":66},[2698],{"type":27,"value":154},{"type":22,"tag":53,"props":2700,"children":2701},{"class":55,"line":87},[2702],{"type":22,"tag":53,"props":2703,"children":2704},{"emptyLinePlaceholder":100},[2705],{"type":27,"value":103},{"type":22,"tag":53,"props":2707,"children":2708},{"class":55,"line":96},[2709,2713,2717],{"type":22,"tag":53,"props":2710,"children":2711},{"style":66},[2712],{"type":27,"value":734},{"type":22,"tag":53,"props":2714,"children":2715},{"style":76},[2716],{"type":27,"value":739},{"type":22,"tag":53,"props":2718,"children":2719},{"style":66},[2720],{"type":27,"value":744},{"type":22,"tag":53,"props":2722,"children":2723},{"class":55,"line":106},[2724,2728,2732,2736,2740],{"type":22,"tag":53,"props":2725,"children":2726},{"style":76},[2727],{"type":27,"value":752},{"type":22,"tag":53,"props":2729,"children":2730},{"style":66},[2731],{"type":27,"value":144},{"type":22,"tag":53,"props":2733,"children":2734},{"style":76},[2735],{"type":27,"value":761},{"type":22,"tag":53,"props":2737,"children":2738},{"style":110},[2739],{"type":27,"value":614},{"type":22,"tag":53,"props":2741,"children":2742},{"style":66},[2743],{"type":27,"value":154},{"type":22,"tag":53,"props":2745,"children":2746},{"class":55,"line":17},[2747],{"type":22,"tag":53,"props":2748,"children":2749},{"style":66},[2750],{"type":27,"value":199},{"type":22,"tag":53,"props":2752,"children":2753},{"class":55,"line":133},[2754],{"type":22,"tag":53,"props":2755,"children":2756},{"emptyLinePlaceholder":100},[2757],{"type":27,"value":103},{"type":22,"tag":53,"props":2759,"children":2760},{"class":55,"line":157},[2761,2765,2769],{"type":22,"tag":53,"props":2762,"children":2763},{"style":66},[2764],{"type":27,"value":791},{"type":22,"tag":53,"props":2766,"children":2767},{"style":60},[2768],{"type":27,"value":796},{"type":22,"tag":53,"props":2770,"children":2771},{"style":66},[2772],{"type":27,"value":69},{"type":22,"tag":53,"props":2774,"children":2775},{"class":55,"line":193},[2776,2780,2784,2788],{"type":22,"tag":53,"props":2777,"children":2778},{"style":76},[2779],{"type":27,"value":808},{"type":22,"tag":53,"props":2781,"children":2782},{"style":66},[2783],{"type":27,"value":144},{"type":22,"tag":53,"props":2785,"children":2786},{"style":76},[2787],{"type":27,"value":817},{"type":22,"tag":53,"props":2789,"children":2790},{"style":66},[2791],{"type":27,"value":154},{"type":22,"tag":53,"props":2793,"children":2794},{"class":55,"line":202},[2795],{"type":22,"tag":53,"props":2796,"children":2797},{"style":66},[2798],{"type":27,"value":199},{"type":22,"tag":53,"props":2800,"children":2801},{"class":55,"line":831},[2802],{"type":22,"tag":53,"props":2803,"children":2804},{"emptyLinePlaceholder":100},[2805],{"type":27,"value":103},{"type":22,"tag":53,"props":2807,"children":2808},{"class":55,"line":839},[2809,2813,2817,2821,2825,2829,2833],{"type":22,"tag":53,"props":2810,"children":2811},{"style":110},[2812],{"type":27,"value":845},{"type":22,"tag":53,"props":2814,"children":2815},{"style":66},[2816],{"type":27,"value":850},{"type":22,"tag":53,"props":2818,"children":2819},{"style":76},[2820],{"type":27,"value":855},{"type":22,"tag":53,"props":2822,"children":2823},{"style":66},[2824],{"type":27,"value":144},{"type":22,"tag":53,"props":2826,"children":2827},{"style":76},[2828],{"type":27,"value":864},{"type":22,"tag":53,"props":2830,"children":2831},{"style":110},[2832],{"type":27,"value":869},{"type":22,"tag":53,"props":2834,"children":2835},{"style":66},[2836],{"type":27,"value":458},{"type":22,"tag":53,"props":2838,"children":2839},{"class":55,"line":876},[2840],{"type":22,"tag":53,"props":2841,"children":2842},{"style":66},[2843],{"type":27,"value":882},{"type":22,"tag":53,"props":2845,"children":2846},{"class":55,"line":885},[2847],{"type":22,"tag":53,"props":2848,"children":2849},{"style":66},[2850],{"type":27,"value":199},{"type":22,"tag":53,"props":2852,"children":2853},{"class":55,"line":893},[2854],{"type":22,"tag":53,"props":2855,"children":2856},{"style":66},[2857],{"type":27,"value":93},{"type":22,"tag":30,"props":2859,"children":2860},{"id":901},[2861],{"type":27,"value":904},{"type":22,"tag":23,"props":2863,"children":2864},{},[2865],{"type":27,"value":909},{"type":22,"tag":23,"props":2867,"children":2868},{},[2869],{"type":27,"value":914},{"type":22,"tag":916,"props":2871,"children":2872},{},[2873],{"type":27,"value":920},{"title":7,"searchDepth":72,"depth":72,"links":2875},[2876,2877,2878,2879,2880,2881],{"id":32,"depth":72,"text":35},{"id":215,"depth":72,"text":218},{"id":403,"depth":72,"text":406},{"id":558,"depth":72,"text":561},{"id":668,"depth":72,"text":671},{"id":901,"depth":72,"text":904},1777088737683]