[{"data":1,"prerenderedAt":2006},["ShallowReactive",2],{"navigation_docs":3,"-rendering-html-output":191,"-rendering-html-output-surround":2001},[4,31,67,103,129,155,175],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":30},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,15,20,25],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-play",{"title":26,"path":27,"stem":28,"icon":29},"Agent Skill","\u002Fgetting-started\u002Fagent-skill","1.getting-started\u002F4.agent-skill","i-lucide-sparkles",false,{"title":32,"icon":33,"path":34,"stem":35,"children":36,"page":30},"Authoring","i-lucide-pen-line","\u002Fauthoring","2.authoring",[37,42,47,52,57,62],{"title":38,"path":39,"stem":40,"icon":41},"Comark syntax","\u002Fauthoring\u002Fcomark-syntax","2.authoring\u002F1.comark-syntax","i-lucide-file-code",{"title":43,"path":44,"stem":45,"icon":46},"Frontmatter","\u002Fauthoring\u002Ffrontmatter","2.authoring\u002F2.frontmatter","i-lucide-heading",{"title":48,"path":49,"stem":50,"icon":51},"Modules","\u002Fauthoring\u002Fmodules","2.authoring\u002F3.modules","i-lucide-blocks",{"title":53,"path":54,"stem":55,"icon":56},"Merge tags and bindings","\u002Fauthoring\u002Fmerge-tags-and-bindings","2.authoring\u002F4.merge-tags-and-bindings","i-lucide-braces",{"title":58,"path":59,"stem":60,"icon":61},"Actions and spans","\u002Fauthoring\u002Factions-and-spans","2.authoring\u002F5.actions-and-spans","i-lucide-mouse-pointer-click",{"title":63,"path":64,"stem":65,"icon":66},"Compile errors","\u002Fauthoring\u002Fcompile-errors","2.authoring\u002F6.compile-errors","i-lucide-circle-alert",{"title":68,"icon":69,"path":70,"stem":71,"children":72,"page":30},"Rendering","i-lucide-layout-template","\u002Frendering","3.rendering",[73,78,83,88,93,98],{"title":74,"path":75,"stem":76,"icon":77},"Families and streams","\u002Frendering\u002Ffamilies-and-streams","3.rendering\u002F1.families-and-streams","i-lucide-users",{"title":79,"path":80,"stem":81,"icon":82},"Themes","\u002Frendering\u002Fthemes","3.rendering\u002F2.themes","i-lucide-palette",{"title":84,"path":85,"stem":86,"icon":87},"Config and the renderer","\u002Frendering\u002Fconfig-and-renderer","3.rendering\u002F3.config-and-renderer","i-lucide-settings",{"title":89,"path":90,"stem":91,"icon":92},"Layout and spacing","\u002Frendering\u002Flayout-and-spacing","3.rendering\u002F4.layout-and-spacing","i-lucide-ruler",{"title":94,"path":95,"stem":96,"icon":97},"HTML output","\u002Frendering\u002Fhtml-output","3.rendering\u002F5.html-output","i-lucide-code-xml",{"title":99,"path":100,"stem":101,"icon":102},"Plain text","\u002Frendering\u002Fplain-text","3.rendering\u002F6.plain-text","i-lucide-file-text",{"title":104,"icon":105,"path":106,"stem":107,"children":108,"page":30},"Sending","i-lucide-send","\u002Fsending","4.sending",[109,114,119,124],{"title":110,"path":111,"stem":112,"icon":113},"Message and MIME","\u002Fsending\u002Fmessage-and-mime","4.sending\u002F1.message-and-mime","i-lucide-mail",{"title":115,"path":116,"stem":117,"icon":118},"Router and streams","\u002Fsending\u002Frouter-and-streams","4.sending\u002F2.router-and-streams","i-lucide-route",{"title":120,"path":121,"stem":122,"icon":123},"SMTP","\u002Fsending\u002Fsmtp","4.sending\u002F3.smtp","i-lucide-server",{"title":125,"path":126,"stem":127,"icon":128},"Maps","\u002Fsending\u002Fmaps","4.sending\u002F4.maps","i-lucide-map",{"title":130,"icon":131,"path":132,"stem":133,"children":134,"page":30},"Tooling","i-lucide-wrench","\u002Ftooling","5.tooling",[135,140,145,150],{"title":136,"path":137,"stem":138,"icon":139},"The lttr CLI","\u002Ftooling\u002Fcli","5.tooling\u002F1.cli","i-lucide-terminal",{"title":141,"path":142,"stem":143,"icon":144},"Live preview","\u002Ftooling\u002Flive-preview","5.tooling\u002F2.live-preview","i-lucide-eye",{"title":146,"path":147,"stem":148,"icon":149},"Screenshots","\u002Ftooling\u002Fscreenshots","5.tooling\u002F3.screenshots","i-lucide-camera",{"title":151,"path":152,"stem":153,"icon":154},"Goldens and testing","\u002Ftooling\u002Fgoldens-and-testing","5.tooling\u002F4.goldens-and-testing","i-lucide-flask-conical",{"title":156,"icon":157,"path":158,"stem":159,"children":160,"page":30},"Guides","i-lucide-book-open","\u002Fguides","6.guides",[161,166,170],{"title":162,"path":163,"stem":164,"icon":165},"The Quiet example","\u002Fguides\u002Fthe-quiet-example","6.guides\u002F1.the-quiet-example","i-lucide-mail-open",{"title":167,"path":168,"stem":169,"icon":82},"Your own family and theme","\u002Fguides\u002Fyour-own-family-and-theme","6.guides\u002F2.your-own-family-and-theme",{"title":171,"path":172,"stem":173,"icon":174},"Releasing","\u002Fguides\u002Freleasing","6.guides\u002F3.releasing","i-lucide-tag",{"title":176,"icon":177,"path":178,"stem":179,"children":180,"page":30},"Reference","i-lucide-library","\u002Freference","7.reference",[181,186],{"title":182,"path":183,"stem":184,"icon":185},"API reference","\u002Freference\u002Fapi-reference","7.reference\u002F1.api-reference","i-lucide-list-tree",{"title":187,"path":188,"stem":189,"icon":190},"Gallery","\u002Freference\u002Fgallery","7.reference\u002F2.gallery","i-lucide-images",{"id":192,"title":94,"body":193,"description":1994,"extension":1995,"links":1996,"meta":1997,"navigation":1998,"path":95,"seo":1999,"stem":96,"__hash__":2000},"docs\u002F3.rendering\u002F5.html-output.md",{"type":194,"value":195,"toc":1982},"minimark",[196,205,216,221,224,318,870,874,877,935,939,944,1044,1081,1085,1095,1186,1453,1457,1464,1621,1624,1628,1688,1692,1703,1760,1843,1865,1869,1881,1885,1892,1962,1967,1971,1974,1979],[197,198,199,200,204],"p",{},"The HTML part is built by ",[201,202,203],"code",{},"github.com\u002Fsulv-io\u002Flttr\u002Frender\u002Fhtml"," from the laid-out document. It is table-based markup of the kind every mail client renders, including the Word engine inside desktop Outlook. You do not write any of it: templates describe content, and the renderer owns every tag, style and size.",[197,206,207,208,211,212,215],{},"The partials are ",[201,209,210],{},"html\u002Ftemplate"," files embedded in the package and parsed once into an immutable set. Everything that reaches them is decided first: sizes from constants, colours from the validated theme, URLs from ",[201,213,214],{},"CheckURL",".",[217,218,220],"h2",{"id":219},"read-the-document-skeleton","Read the document skeleton",[197,222,223],{},"Every email has the same outer structure, in this order:",[225,226,227,233,251,297,302,309,315],"ol",{},[228,229,230,215],"li",{},[201,231,232],{},"\u003C!DOCTYPE html>",[228,234,235,238,239,242,243,246,247,250],{},[201,236,237],{},"\u003Chtml lang=\"en\">"," with the ",[201,240,241],{},"xmlns",", ",[201,244,245],{},"xmlns:v"," and ",[201,248,249],{},"xmlns:o"," namespaces Outlook needs for VML.",[228,252,253,254,242,257,242,260,242,263,266,267,246,270,273,274,277,278,281,282,285,286,242,289,292,293,296],{},"The head: ",[201,255,256],{},"charset",[201,258,259],{},"viewport",[201,261,262],{},"x-apple-disable-message-reformatting",[201,264,265],{},"format-detection"," (telephone, date, address, email and url all off), ",[201,268,269],{},"color-scheme",[201,271,272],{},"supported-color-schemes"," set to ",[201,275,276],{},"light dark","; a ",[201,279,280],{},"\u003Ctitle>"," holding the subject; the Outlook ",[201,283,284],{},"OfficeDocumentSettings"," block (",[201,287,288],{},"AllowPNG",[201,290,291],{},"PixelsPerInch"," 96); and one ",[201,294,295],{},"\u003Cstyle>"," element.",[228,298,299,215],{},[201,300,301],{},"\u003Cbody id=\"body\" class=\"dk-canvas\">",[228,303,304,305,308],{},"The hidden preheader: the preheader text followed by 60 repeats of ",[201,306,307],{},"&#847;&zwnj;&nbsp;",", so the inbox preview does not run on into the email's first words.",[228,310,311,312,215],{},"An outer full-width table on the canvas colour, an Outlook-only 600px wrapper table, and the inner table capped at ",[201,313,314],{},"max-width:600px",[228,316,317],{},"The header rows, one row per section, and the footer row.",[319,320,326],"pre",{"className":321,"code":322,"filename":323,"language":324,"meta":325,"style":325},"language-html shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cbody id=\"body\" class=\"dk-canvas\" style=\"margin:0;padding:0;width:100%;background-color:#FFFFFF\">\n\u003Cdiv style=\"display:none;max-height:0;overflow:hidden;mso-hide:all;font-size:1px;line-height:1px;color:#FFFFFF;opacity:0\">EC$15 flat delivery, plus 15% off with HERITAGE15.&#847;&zwnj;&nbsp;…\u003C\u002Fdiv>\n\u003Ctable role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" bgcolor=\"#FFFFFF\" class=\"dk-canvas\">\u003Ctr>\u003Ctd align=\"center\">\n\u003C!--[if mso]>\u003Ctable role=\"presentation\" width=\"600\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\u003Ctr>\u003Ctd>\u003C![endif]-->\n\u003Ctable role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" class=\"dk-canvas\" style=\"width:100%;max-width:600px;margin:0 auto;background-color:#FFFFFF\">\n\u003Ctr>\u003Ctd align=\"center\" style=\"padding:36px 0 0 0\">\u003Cimg class=\"logo-lt\" src=\"https:\u002F\u002Fcaribhubs.com\u002Fassets\u002Femail\u002Flogo.png\" alt=\"CaribHubs\" width=\"36\" height=\"36\" style=\"…\">\u003C!--[if !mso]>\u003C!-->\u003Cdiv class=\"logo-dk\" style=\"display:none;max-height:0;overflow:hidden\">\u003Cimg src=\"https:\u002F\u002Fcaribhubs.com\u002Fassets\u002Femail\u002Flogo-dark.png\" alt=\"CaribHubs\" width=\"36\" height=\"36\" style=\"…\">\u003C\u002Fdiv>\u003C!--\u003C![endif]-->\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd class=\"px\" style=\"padding:40px 56px 36px 56px;text-align:center\">…\u003C\u002Ftd>\u003C\u002Ftr>\n…\n","05-campaign.heritage_week.html","html","",[201,327,328,383,416,523,530,608,817,864],{"__ignoreMap":325},[329,330,333,337,341,345,348,351,354,356,359,361,363,366,368,371,373,375,378,380],"span",{"class":331,"line":332},"line",1,[329,334,336],{"class":335},"sMK4o","\u003C",[329,338,340],{"class":339},"swJcz","body",[329,342,344],{"class":343},"spNyl"," id",[329,346,347],{"class":335},"=",[329,349,350],{"class":335},"\"",[329,352,340],{"class":353},"sfazB",[329,355,350],{"class":335},[329,357,358],{"class":343}," class",[329,360,347],{"class":335},[329,362,350],{"class":335},[329,364,365],{"class":353},"dk-canvas",[329,367,350],{"class":335},[329,369,370],{"class":343}," style",[329,372,347],{"class":335},[329,374,350],{"class":335},[329,376,377],{"class":353},"margin:0;padding:0;width:100%;background-color:#FFFFFF",[329,379,350],{"class":335},[329,381,382],{"class":335},">\n",[329,384,386,388,391,393,395,397,400,402,405,409,412,414],{"class":331,"line":385},2,[329,387,336],{"class":335},[329,389,390],{"class":339},"div",[329,392,370],{"class":343},[329,394,347],{"class":335},[329,396,350],{"class":335},[329,398,399],{"class":353},"display:none;max-height:0;overflow:hidden;mso-hide:all;font-size:1px;line-height:1px;color:#FFFFFF;opacity:0",[329,401,350],{"class":335},[329,403,404],{"class":335},">",[329,406,408],{"class":407},"sTEyZ","EC$15 flat delivery, plus 15% off with HERITAGE15.&#847;&zwnj;&nbsp;…",[329,410,411],{"class":335},"\u003C\u002F",[329,413,390],{"class":339},[329,415,382],{"class":335},[329,417,419,421,424,427,429,431,434,436,439,441,443,446,448,451,453,455,458,460,463,465,467,469,471,474,476,478,480,483,485,488,490,492,494,496,498,500,503,506,508,511,514,516,519,521],{"class":331,"line":418},3,[329,420,336],{"class":335},[329,422,423],{"class":339},"table",[329,425,426],{"class":343}," role",[329,428,347],{"class":335},[329,430,350],{"class":335},[329,432,433],{"class":353},"presentation",[329,435,350],{"class":335},[329,437,438],{"class":343}," width",[329,440,347],{"class":335},[329,442,350],{"class":335},[329,444,445],{"class":353},"100%",[329,447,350],{"class":335},[329,449,450],{"class":343}," cellpadding",[329,452,347],{"class":335},[329,454,350],{"class":335},[329,456,457],{"class":353},"0",[329,459,350],{"class":335},[329,461,462],{"class":343}," cellspacing",[329,464,347],{"class":335},[329,466,350],{"class":335},[329,468,457],{"class":353},[329,470,350],{"class":335},[329,472,473],{"class":335}," border=",[329,475,350],{"class":335},[329,477,457],{"class":353},[329,479,350],{"class":335},[329,481,482],{"class":335}," bgcolor=",[329,484,350],{"class":335},[329,486,487],{"class":353},"#FFFFFF",[329,489,350],{"class":335},[329,491,358],{"class":343},[329,493,347],{"class":335},[329,495,350],{"class":335},[329,497,365],{"class":353},[329,499,350],{"class":335},[329,501,502],{"class":335},">\u003C",[329,504,505],{"class":339},"tr",[329,507,502],{"class":335},[329,509,510],{"class":339},"td",[329,512,513],{"class":335}," align=",[329,515,350],{"class":335},[329,517,518],{"class":353},"center",[329,520,350],{"class":335},[329,522,382],{"class":335},[329,524,526],{"class":331,"line":525},4,[329,527,529],{"class":528},"sHwdD","\u003C!--[if mso]>\u003Ctable role=\"presentation\" width=\"600\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\u003Ctr>\u003Ctd>\u003C![endif]-->\n",[329,531,533,535,537,539,541,543,545,547,549,551,553,555,557,559,561,563,565,567,569,571,573,575,577,579,581,583,585,587,589,591,593,595,597,599,601,604,606],{"class":331,"line":532},5,[329,534,336],{"class":335},[329,536,423],{"class":339},[329,538,426],{"class":343},[329,540,347],{"class":335},[329,542,350],{"class":335},[329,544,433],{"class":353},[329,546,350],{"class":335},[329,548,438],{"class":343},[329,550,347],{"class":335},[329,552,350],{"class":335},[329,554,445],{"class":353},[329,556,350],{"class":335},[329,558,450],{"class":343},[329,560,347],{"class":335},[329,562,350],{"class":335},[329,564,457],{"class":353},[329,566,350],{"class":335},[329,568,462],{"class":343},[329,570,347],{"class":335},[329,572,350],{"class":335},[329,574,457],{"class":353},[329,576,350],{"class":335},[329,578,473],{"class":335},[329,580,350],{"class":335},[329,582,457],{"class":353},[329,584,350],{"class":335},[329,586,358],{"class":343},[329,588,347],{"class":335},[329,590,350],{"class":335},[329,592,365],{"class":353},[329,594,350],{"class":335},[329,596,370],{"class":343},[329,598,347],{"class":335},[329,600,350],{"class":335},[329,602,603],{"class":353},"width:100%;max-width:600px;margin:0 auto;background-color:#FFFFFF",[329,605,350],{"class":335},[329,607,382],{"class":335},[329,609,611,613,615,617,619,621,623,625,627,629,631,633,636,638,640,643,645,647,649,652,654,657,659,661,664,666,669,671,673,676,678,680,682,684,687,689,692,694,696,698,700,702,704,706,709,711,713,716,718,720,722,724,726,729,731,733,735,737,740,742,744,746,748,750,752,755,757,759,761,763,765,767,769,771,773,775,777,779,781,783,785,787,789,791,793,795,797,800,802,804,807,809,811,813,815],{"class":331,"line":610},6,[329,612,336],{"class":335},[329,614,505],{"class":339},[329,616,502],{"class":335},[329,618,510],{"class":339},[329,620,513],{"class":335},[329,622,350],{"class":335},[329,624,518],{"class":353},[329,626,350],{"class":335},[329,628,370],{"class":343},[329,630,347],{"class":335},[329,632,350],{"class":335},[329,634,635],{"class":353},"padding:36px 0 0 0",[329,637,350],{"class":335},[329,639,502],{"class":335},[329,641,642],{"class":339},"img",[329,644,358],{"class":343},[329,646,347],{"class":335},[329,648,350],{"class":335},[329,650,651],{"class":353},"logo-lt",[329,653,350],{"class":335},[329,655,656],{"class":343}," src",[329,658,347],{"class":335},[329,660,350],{"class":335},[329,662,663],{"class":353},"https:\u002F\u002Fcaribhubs.com\u002Fassets\u002Femail\u002Flogo.png",[329,665,350],{"class":335},[329,667,668],{"class":343}," alt",[329,670,347],{"class":335},[329,672,350],{"class":335},[329,674,675],{"class":353},"CaribHubs",[329,677,350],{"class":335},[329,679,438],{"class":343},[329,681,347],{"class":335},[329,683,350],{"class":335},[329,685,686],{"class":353},"36",[329,688,350],{"class":335},[329,690,691],{"class":343}," height",[329,693,347],{"class":335},[329,695,350],{"class":335},[329,697,686],{"class":353},[329,699,350],{"class":335},[329,701,370],{"class":343},[329,703,347],{"class":335},[329,705,350],{"class":335},[329,707,708],{"class":353},"…",[329,710,350],{"class":335},[329,712,404],{"class":335},[329,714,715],{"class":528},"\u003C!--[if !mso]>\u003C!-->",[329,717,336],{"class":335},[329,719,390],{"class":339},[329,721,358],{"class":343},[329,723,347],{"class":335},[329,725,350],{"class":335},[329,727,728],{"class":353},"logo-dk",[329,730,350],{"class":335},[329,732,370],{"class":343},[329,734,347],{"class":335},[329,736,350],{"class":335},[329,738,739],{"class":353},"display:none;max-height:0;overflow:hidden",[329,741,350],{"class":335},[329,743,502],{"class":335},[329,745,642],{"class":339},[329,747,656],{"class":343},[329,749,347],{"class":335},[329,751,350],{"class":335},[329,753,754],{"class":353},"https:\u002F\u002Fcaribhubs.com\u002Fassets\u002Femail\u002Flogo-dark.png",[329,756,350],{"class":335},[329,758,668],{"class":343},[329,760,347],{"class":335},[329,762,350],{"class":335},[329,764,675],{"class":353},[329,766,350],{"class":335},[329,768,438],{"class":343},[329,770,347],{"class":335},[329,772,350],{"class":335},[329,774,686],{"class":353},[329,776,350],{"class":335},[329,778,691],{"class":343},[329,780,347],{"class":335},[329,782,350],{"class":335},[329,784,686],{"class":353},[329,786,350],{"class":335},[329,788,370],{"class":343},[329,790,347],{"class":335},[329,792,350],{"class":335},[329,794,708],{"class":353},[329,796,350],{"class":335},[329,798,799],{"class":335},">\u003C\u002F",[329,801,390],{"class":339},[329,803,404],{"class":335},[329,805,806],{"class":528},"\u003C!--\u003C![endif]-->",[329,808,411],{"class":335},[329,810,510],{"class":339},[329,812,799],{"class":335},[329,814,505],{"class":339},[329,816,382],{"class":335},[329,818,820,822,824,826,828,830,832,834,837,839,841,843,845,848,850,852,854,856,858,860,862],{"class":331,"line":819},7,[329,821,336],{"class":335},[329,823,505],{"class":339},[329,825,502],{"class":335},[329,827,510],{"class":339},[329,829,358],{"class":343},[329,831,347],{"class":335},[329,833,350],{"class":335},[329,835,836],{"class":353},"px",[329,838,350],{"class":335},[329,840,370],{"class":343},[329,842,347],{"class":335},[329,844,350],{"class":335},[329,846,847],{"class":353},"padding:40px 56px 36px 56px;text-align:center",[329,849,350],{"class":335},[329,851,404],{"class":335},[329,853,708],{"class":407},[329,855,411],{"class":335},[329,857,510],{"class":339},[329,859,799],{"class":335},[329,861,505],{"class":339},[329,863,382],{"class":335},[329,865,867],{"class":331,"line":866},8,[329,868,869],{"class":407},"…\n",[217,871,873],{"id":872},"build-with-presentation-tables","Build with presentation tables",[197,875,876],{},"Layout is tables and nothing else:",[878,879,880,891,911,922,929],"ul",{},[228,881,882,883,886,887,890],{},"Every ",[201,884,885],{},"\u003Ctable>"," carries ",[201,888,889],{},"role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"",", so screen readers do not announce layout tables as data.",[228,892,893,894,896,897,242,900,242,903,906,907,910],{},"There are no ",[201,895,390],{},"-based layouts, and no ",[201,898,899],{},"flex",[201,901,902],{},"grid",[201,904,905],{},"var("," or ",[201,908,909],{},"@import"," anywhere.",[228,912,913,914,917,918,921],{},"Every section is a row: ",[201,915,916],{},"\u003Ctr>\u003Ctd class=\"px\" style=\"padding:{top}px 56px {bottom}px 56px;text-align:…\">",", with the top and bottom from ",[919,920,89],"a",{"href":90},". Bands (images and maps) are rows with no padding.",[228,923,924,925,928],{},"Inline styles come from a typed style builder that accepts only token sizes, theme colours and fixed keywords, and reach the templates as ",[201,926,927],{},"template.CSS",". Data from your templates never flows into CSS or attribute names.",[228,930,931,932,215],{},"Paragraphs in hero modules (statement, figure, offer) and pull quotes are capped at 440px and centred, and wrapped in a 440px Outlook-only table because Outlook ignores ",[201,933,934],{},"max-width",[217,936,938],{"id":937},"serve-outlook","Serve Outlook",[197,940,941,943],{},[201,942,210],{}," strips HTML comments, including the conditional comments Outlook depends on. They reach the output only through a few trusted helpers, built from constants and escaped values:",[423,945,946,961],{},[947,948,949],"thead",{},[505,950,951,955,958],{},[952,953,954],"th",{},"Helper",[952,956,957],{},"Emits",[952,959,960],{},"Used for",[962,963,964,984,1009,1028],"tbody",{},[505,965,966,975,981],{},[510,967,968,971,972],{},[201,969,970],{},"msoOpen N"," \u002F ",[201,973,974],{},"msoClose",[510,976,977,980],{},[201,978,979],{},"\u003C!--[if mso]>\u003Ctable … width=\"N\" align=\"center\" …>\u003Ctr>\u003Ctd>\u003C![endif]-->"," and its close",[510,982,983],{},"The 600px frame",[505,985,986,994,1003],{},[510,987,988,971,991],{},[201,989,990],{},"msoIf",[201,992,993],{},"msoEnd",[510,995,996,999,1000],{},[201,997,998],{},"\u003C!--[if mso]>"," … ",[201,1001,1002],{},"\u003C![endif]-->",[510,1004,1005,1006,1008],{},"The ",[201,1007,284],{}," block, 440px paragraph tables, the VML button",[505,1010,1011,1019,1025],{},[510,1012,1013,971,1016],{},[201,1014,1015],{},"notMsoOpen",[201,1017,1018],{},"notMsoClose",[510,1020,1021,999,1023],{},[201,1022,715],{},[201,1024,806],{},[510,1026,1027],{},"Markup Outlook must not see: the dark logo, the HTML button link",[505,1029,1030,1035,1041],{},[510,1031,1032],{},[201,1033,1034],{},"vmlPill",[510,1036,1037,1038],{},"A ",[201,1039,1040],{},"v:roundrect",[510,1042,1043],{},"The button as Outlook draws it",[197,1045,1046,1047,1050,1051,1054,1055,1058,1059,1062,1063,1066,1067,1070,1071,1074,1075,246,1078,215],{},"The button is written twice. Outlook gets a VML rounded rectangle, 48px tall with ",[201,1048,1049],{},"arcsize=\"50%\"",", filled with ",[201,1052,1053],{},"Light.Action",", its label in ",[201,1056,1057],{},"Light.PillText"," set in ",[201,1060,1061],{},"Arial,sans-serif",". Its width is estimated at 9px per character plus 48px of padding, capped at 488px so a long label cannot widen the email. Every other client gets an ",[201,1064,1065],{},"\u003Ca>"," inside a ",[201,1068,1069],{},"bgcolor"," cell with ",[201,1072,1073],{},"border-radius:999px",", hidden from Outlook by ",[201,1076,1077],{},"\u003C!--[if !mso]>",[201,1079,1080],{},"mso-hide:all",[217,1082,1084],{"id":1083},"support-dark-mode","Support dark mode",[197,1086,1087,1088,1091,1092,1094],{},"The email declares ",[201,1089,1090],{},"color-scheme: light dark"," and carries a dark palette in its head ",[201,1093,295],{},". The light palette is inline; the dark one only takes over in clients that support it:",[878,1096,1097,1138,1160,1180],{},[228,1098,1099,1106,1107,1110,1111,1114,1115,242,1117,242,1120,242,1123,242,1126,1129,1130,1133,1134,1137],{},[1100,1101,1102,1103],"strong",{},"Clients that support ",[201,1104,1105],{},"prefers-color-scheme",", Apple Mail and iOS Mail among them, apply the ",[201,1108,1109],{},"@media (prefers-color-scheme:dark)"," block. Elements carry ",[201,1112,1113],{},"dk-*"," classes (",[201,1116,365],{},[201,1118,1119],{},"dk-ink",[201,1121,1122],{},"dk-body",[201,1124,1125],{},"dk-act",[201,1127,1128],{},"dk-pill",", …), and each class maps to a dark palette colour with ",[201,1131,1132],{},"!important",". See ",[919,1135,79],{"href":1136},"\u002Frendering\u002Fthemes#set-the-dark-palette"," for the whole list.",[228,1139,1140,1143,1144,1147,1148,1151,1152,1155,1156,1159],{},[1100,1141,1142],{},"Outlook.com"," rewrites colours itself and marks what it changed with ",[201,1145,1146],{},"data-ogsc"," (text) and ",[201,1149,1150],{},"data-ogsb"," (backgrounds). The same rules are repeated as ",[201,1153,1154],{},"[data-ogsc] .dk-ink{…}"," for text and border colours and ",[201,1157,1158],{},"[data-ogsb] .dk-canvas{…}"," for backgrounds, so its result uses your dark palette rather than its own guesses.",[228,1161,1162,1165,1166,1169,1170,1173,1174,1176,1177,1179],{},[1100,1163,1164],{},"The logo"," swaps: ",[201,1167,1168],{},".logo-lt"," is hidden and ",[201,1171,1172],{},".logo-dk",", which is collapsed with ",[201,1175,739],{}," in light mode, is shown. The dark logo sits inside ",[201,1178,1077],{},", so Outlook never shows both.",[228,1181,1182,1185],{},[1100,1183,1184],{},"Clients that read neither"," keep the light palette, unless they recolour the email themselves.",[319,1187,1191],{"className":1188,"code":1189,"filename":323,"language":1190,"meta":325,"style":325},"language-css shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","@media (prefers-color-scheme:dark){\n.dk-canvas{background-color:#121615!important}\n.dk-foot{background-color:#1A1F1D!important}\n.dk-ink{color:#F2F2F0!important}\n.dk-body{color:#A8ADAB!important}\n.dk-act{color:#8BC9C3!important}\n…\n.logo-lt{display:none!important}\n.logo-dk{display:block!important;max-height:none!important;overflow:visible!important}\n}\n[data-ogsc] .dk-ink{color:#F2F2F0!important}\n…\n[data-ogsb] .dk-canvas{background-color:#121615!important}\n…\n","css",[201,1192,1193,1213,1239,1259,1279,1298,1317,1321,1341,1385,1390,1418,1423,1448],{"__ignoreMap":325},[329,1194,1195,1199,1202,1204,1207,1210],{"class":331,"line":332},[329,1196,1198],{"class":1197},"s7zQu","@media",[329,1200,1201],{"class":335}," (",[329,1203,1105],{"class":407},[329,1205,1206],{"class":335},":",[329,1208,1209],{"class":407},"dark",[329,1211,1212],{"class":335},"){\n",[329,1214,1215,1217,1220,1223,1227,1230,1233,1236],{"class":331,"line":385},[329,1216,215],{"class":335},[329,1218,365],{"class":1219},"sBMFI",[329,1221,1222],{"class":335},"{",[329,1224,1226],{"class":1225},"sqsOY","background-color",[329,1228,1229],{"class":335},":#",[329,1231,1232],{"class":407},"121615",[329,1234,1132],{"class":1235},"sbssI",[329,1237,1238],{"class":335},"}\n",[329,1240,1241,1243,1246,1248,1250,1252,1255,1257],{"class":331,"line":418},[329,1242,215],{"class":335},[329,1244,1245],{"class":1219},"dk-foot",[329,1247,1222],{"class":335},[329,1249,1226],{"class":1225},[329,1251,1229],{"class":335},[329,1253,1254],{"class":407},"1A1F1D",[329,1256,1132],{"class":1235},[329,1258,1238],{"class":335},[329,1260,1261,1263,1265,1267,1270,1272,1275,1277],{"class":331,"line":525},[329,1262,215],{"class":335},[329,1264,1119],{"class":1219},[329,1266,1222],{"class":335},[329,1268,1269],{"class":1225},"color",[329,1271,1229],{"class":335},[329,1273,1274],{"class":407},"F2F2F0",[329,1276,1132],{"class":1235},[329,1278,1238],{"class":335},[329,1280,1281,1283,1285,1287,1289,1291,1294,1296],{"class":331,"line":532},[329,1282,215],{"class":335},[329,1284,1122],{"class":1219},[329,1286,1222],{"class":335},[329,1288,1269],{"class":1225},[329,1290,1229],{"class":335},[329,1292,1293],{"class":407},"A8ADAB",[329,1295,1132],{"class":1235},[329,1297,1238],{"class":335},[329,1299,1300,1302,1304,1306,1308,1310,1313,1315],{"class":331,"line":610},[329,1301,215],{"class":335},[329,1303,1125],{"class":1219},[329,1305,1222],{"class":335},[329,1307,1269],{"class":1225},[329,1309,1229],{"class":335},[329,1311,1312],{"class":407},"8BC9C3",[329,1314,1132],{"class":1235},[329,1316,1238],{"class":335},[329,1318,1319],{"class":331,"line":819},[329,1320,869],{"class":407},[329,1322,1323,1325,1327,1329,1332,1334,1337,1339],{"class":331,"line":866},[329,1324,215],{"class":335},[329,1326,651],{"class":1219},[329,1328,1222],{"class":335},[329,1330,1331],{"class":1225},"display",[329,1333,1206],{"class":335},[329,1335,1336],{"class":407},"none",[329,1338,1132],{"class":1235},[329,1340,1238],{"class":335},[329,1342,1344,1346,1348,1350,1352,1354,1357,1359,1362,1365,1367,1369,1371,1373,1376,1378,1381,1383],{"class":331,"line":1343},9,[329,1345,215],{"class":335},[329,1347,728],{"class":1219},[329,1349,1222],{"class":335},[329,1351,1331],{"class":1225},[329,1353,1206],{"class":335},[329,1355,1356],{"class":407},"block",[329,1358,1132],{"class":1235},[329,1360,1361],{"class":335},";",[329,1363,1364],{"class":1225},"max-height",[329,1366,1206],{"class":335},[329,1368,1336],{"class":407},[329,1370,1132],{"class":1235},[329,1372,1361],{"class":335},[329,1374,1375],{"class":1225},"overflow",[329,1377,1206],{"class":335},[329,1379,1380],{"class":407},"visible",[329,1382,1132],{"class":1235},[329,1384,1238],{"class":335},[329,1386,1388],{"class":331,"line":1387},10,[329,1389,1238],{"class":335},[329,1391,1393,1396,1398,1401,1404,1406,1408,1410,1412,1414,1416],{"class":331,"line":1392},11,[329,1394,1395],{"class":335},"[",[329,1397,1146],{"class":343},[329,1399,1400],{"class":335},"]",[329,1402,1403],{"class":335}," .",[329,1405,1119],{"class":1219},[329,1407,1222],{"class":335},[329,1409,1269],{"class":1225},[329,1411,1229],{"class":335},[329,1413,1274],{"class":407},[329,1415,1132],{"class":1235},[329,1417,1238],{"class":335},[329,1419,1421],{"class":331,"line":1420},12,[329,1422,869],{"class":407},[329,1424,1426,1428,1430,1432,1434,1436,1438,1440,1442,1444,1446],{"class":331,"line":1425},13,[329,1427,1395],{"class":335},[329,1429,1150],{"class":343},[329,1431,1400],{"class":335},[329,1433,1403],{"class":335},[329,1435,365],{"class":1219},[329,1437,1222],{"class":335},[329,1439,1226],{"class":1225},[329,1441,1229],{"class":335},[329,1443,1232],{"class":407},[329,1445,1132],{"class":1235},[329,1447,1238],{"class":335},[329,1449,1451],{"class":331,"line":1450},14,[329,1452,869],{"class":407},[217,1454,1456],{"id":1455},"adapt-to-phones","Adapt to phones",[197,1458,1459,1460,1463],{},"Below 480px, the rules in ",[201,1461,1462],{},"@media only screen and (max-width:480px)"," take over:",[423,1465,1466,1476],{},[947,1467,1468],{},[505,1469,1470,1473],{},[952,1471,1472],{},"Class",[952,1474,1475],{},"On a phone",[962,1477,1478,1491,1504,1514,1524,1546,1559,1575,1585,1601,1611],{},[505,1479,1480,1488],{},[510,1481,1482,242,1485],{},[201,1483,1484],{},".px",[201,1486,1487],{},".hr-px",[510,1489,1490],{},"Side padding 24px instead of 56px",[505,1492,1493,1501],{},[510,1494,1495,242,1498],{},[201,1496,1497],{},".h-1",[201,1499,1500],{},".h-xl",[510,1502,1503],{},"Headings 30\u002F34",[505,1505,1506,1511],{},[510,1507,1508],{},[201,1509,1510],{},".fig",[510,1512,1513],{},"The figure amount 46\u002F46",[505,1515,1516,1521],{},[510,1517,1518],{},[201,1519,1520],{},".otp",[510,1522,1523],{},"The code module 34\u002F34, letter spacing 7px",[505,1525,1526,1543],{},[510,1527,1528,242,1531,242,1534,242,1537,242,1540],{},[201,1529,1530],{},".cta",[201,1532,1533],{},".cta-cell",[201,1535,1536],{},".cta-gap",[201,1538,1539],{},".pill-t",[201,1541,1542],{},".pill-a",[510,1544,1545],{},"An action row stacks: cells become full-width blocks, the gap is hidden, the button fills the width with 16px\u002F24px padding",[505,1547,1548,1556],{},[510,1549,1550,242,1553],{},[201,1551,1552],{},".col",[201,1554,1555],{},".col-2",[510,1557,1558],{},"Meta columns stack, the second 20px below the first",[505,1560,1561,1572],{},[510,1562,1563,242,1566,242,1569],{},[201,1564,1565],{},".g2",[201,1567,1568],{},".g2-2",[201,1570,1571],{},".g2-x",[510,1573,1574],{},"Story and product tiles stack with a hairline between them; the filler cell after an odd last tile is hidden",[505,1576,1577,1582],{},[510,1578,1579],{},[201,1580,1581],{},".tile-img",[510,1583,1584],{},"Tile images stay 160px tall (D32)",[505,1586,1587,1595],{},[510,1588,1589,242,1592],{},[201,1590,1591],{},".hero",[201,1593,1594],{},".hero-td",[510,1596,1597,1598],{},"Image and map bands 240px tall, cropped with ",[201,1599,1600],{},"object-fit:cover",[505,1602,1603,1608],{},[510,1604,1605],{},[201,1606,1607],{},".step-l",[510,1609,1610],{},"Progress labels 11px",[505,1612,1613,1618],{},[510,1614,1615],{},[201,1616,1617],{},".fnav a",[510,1619,1620],{},"The F1 nav links wrap with 10px between rows",[197,1622,1623],{},"Clients that ignore media queries show the 600px layout.",[217,1625,1627],{"id":1626},"give-every-image-alt-text","Give every image alt text",[878,1629,1630,1659,1675],{},[228,1631,1632,1635,1636,1639,1640,273,1643,242,1646,246,1649,273,1652,1655,1656,215],{},[1100,1633,1634],{},"Logos"," are ",[201,1637,1638],{},"\u003Cimg>"," with ",[201,1641,1642],{},"alt",[201,1644,1645],{},"Theme.Brand.Name",[201,1647,1648],{},"width",[201,1650,1651],{},"height",[201,1653,1654],{},"Brand.LogoSize",", and ",[201,1657,1658],{},"border:0",[228,1660,1661,1664,1665,1667,1668,1670,1671,1674],{},[1100,1662,1663],{},"Image and map bands"," are a ",[201,1666,510],{}," with the tone ground as ",[201,1669,1069],{}," and a fixed height, holding ",[201,1672,1673],{},"\u003Cimg class=\"hero\" width=\"600\" style=\"width:100%;height:…;object-fit:cover;display:block;border:0\">",". Without a source the band is the coloured ground alone, which makes a clean placeholder.",[228,1676,1677,1680,1681,1684,1685,1687],{},[1100,1678,1679],{},"A source without alt text"," is a render error: ",[201,1682,1683],{},"image: alt is empty for src",". The same holds for maps, story and product tiles and receipt thumbnails. Story and product tiles take ",[201,1686,1642],{}," and default it to the title or name (D11).",[217,1689,1691],{"id":1690},"check-every-url","Check every URL",[197,1693,1694,1695,1698,1699,1702],{},"Every URL in the HTML goes through ",[201,1696,1697],{},"html.CheckURL"," before a template sees it: links in prose, buttons and ",[201,1700,1701],{},":link"," actions, logos, images, tiles, thumbnails and the F1 nav.",[319,1704,1709],{"className":1705,"code":1706,"filename":1707,"language":1708,"meta":325,"style":325},"language-go shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","func CheckURL(raw string, allowRelative bool) (template.URL, error)\n","render\u002Fhtml\u002Furls.go","go",[201,1710,1711],{"__ignoreMap":325},[329,1712,1713,1716,1720,1723,1727,1730,1733,1736,1739,1742,1744,1747,1749,1752,1754,1757],{"class":331,"line":332},[329,1714,1715],{"class":335},"func",[329,1717,1719],{"class":1718},"s2Zo4"," CheckURL",[329,1721,1722],{"class":335},"(",[329,1724,1726],{"class":1725},"sHdIc","raw",[329,1728,1729],{"class":343}," string",[329,1731,1732],{"class":335},",",[329,1734,1735],{"class":1725}," allowRelative",[329,1737,1738],{"class":343}," bool",[329,1740,1741],{"class":335},")",[329,1743,1201],{"class":335},[329,1745,1746],{"class":1219},"template",[329,1748,215],{"class":335},[329,1750,1751],{"class":1219},"URL",[329,1753,1732],{"class":335},[329,1755,1756],{"class":343}," error",[329,1758,1759],{"class":335},")\n",[423,1761,1762,1772],{},[947,1763,1764],{},[505,1765,1766,1769],{},[952,1767,1768],{},"Input",[952,1770,1771],{},"Result",[962,1773,1774,1788,1801,1813,1823,1833],{},[505,1775,1776,1785],{},[510,1777,1778,242,1781,1784],{},[201,1779,1780],{},"https:\u002F\u002F…",[201,1782,1783],{},"http:\u002F\u002F…"," with a host",[510,1786,1787],{},"Allowed",[505,1789,1790,1799],{},[510,1791,1792,242,1795,1798],{},[201,1793,1794],{},"mailto:…",[201,1796,1797],{},"tel:…"," with an address",[510,1800,1787],{},[505,1802,1803,1806],{},[510,1804,1805],{},"A relative URL",[510,1807,1808,1809,1812],{},"Allowed only with ",[201,1810,1811],{},"Config.AllowRelativeURLs"," (previews)",[505,1814,1815,1818],{},[510,1816,1817],{},"Empty",[510,1819,1820],{},[201,1821,1822],{},"url \"\": empty",[505,1824,1825,1828],{},[510,1826,1827],{},"Whitespace or a control character anywhere",[510,1829,1830],{},[201,1831,1832],{},"url \"…\": contains whitespace or control character",[505,1834,1835,1838],{},[510,1836,1837],{},"Any other scheme",[510,1839,1840],{},[201,1841,1842],{},"url \"javascript:alert(1)\": scheme \"javascript\" not allowed",[197,1844,1845,1846,1849,1850,1853,1854,1857,1858,1860,1861,1864],{},"A failed check is a render error. The renderer never substitutes ",[201,1847,1848],{},"#"," for a bad URL. A passing URL is returned unchanged as ",[201,1851,1852],{},"template.URL",", so ",[201,1855,1856],{},"tel:"," links are not rewritten by ",[201,1859,210],{},". Merge values inside a URL are escaped before the check (D34, see ",[919,1862,84],{"href":1863},"\u002Frendering\u002Fconfig-and-renderer#render-a-message",").",[217,1866,1868],{"id":1867},"stay-under-100-kb","Stay under 100 KB",[197,1870,1871,1872,1875,1876,1880],{},"Gmail clips HTML over 102 KB. ",[201,1873,1874],{},"Render"," warns over 90 KB and fails at 100 KB (see ",[919,1877,1879],{"href":1878},"\u002Frendering\u002Fconfig-and-renderer#stay-under-the-size-limit","the size limit","). The Quiet examples weigh 9 to 16 KB.",[217,1882,1884],{"id":1883},"lint-the-structure","Lint the structure",[197,1886,1887,1888,1891],{},"The repository's tests run every rendered example through a structural lint, ",[201,1889,1890],{},"internal\u002Fhtmlcheck"," (an internal package, not importable). It reports:",[878,1893,1894,1908,1921,1929,1941,1950,1956,1959],{},[228,1895,1896,1897,242,1899,242,1901,906,1904,1907],{},"any ",[201,1898,905],{},[201,1900,909],{},[201,1902,1903],{},"\u003Cscript",[201,1905,1906],{},"{{"," in the document;",[228,1909,1910,906,1912,1066,1914,1917,1918,1920],{},[201,1911,899],{},[201,1913,902],{},[201,1915,1916],{},"style"," attribute or ",[201,1919,295],{}," element;",[228,1922,1923,1924,1926,1927,1361],{},"a ",[201,1925,885],{}," without ",[201,1928,889],{},[228,1930,1931,1932,1926,1934,242,1936,906,1938,1940],{},"an ",[201,1933,1638],{},[201,1935,1642],{},[201,1937,1648],{},[201,1939,1658],{}," in its style;",[228,1942,1923,1943,1946,1947,1361],{},[201,1944,1945],{},"\u003Cdiv>"," styled ",[201,1948,1949],{},"display:flex",[228,1951,1952,1953,1361],{},"a missing ",[201,1954,1955],{},"\u003Cmeta name=\"color-scheme\" content=\"light dark\">",[228,1957,1958],{},"a document of 100 KB or more;",[228,1960,1961],{},"unbalanced Outlook conditional comments.",[197,1963,1964,1965,215],{},"Markup inside Outlook-only comments is linted too. See ",[919,1966,151],{"href":152},[217,1968,1970],{"id":1969},"see-it-in-light-dark-and-on-a-phone","See it in light, dark and on a phone",[197,1972,1973],{},"This is the Quiet campaign email at 600px and 375px. Switch the preview to dark to see the dark palette and the logo swap:",[1975,1976],"email-preview",{"name":1977,"width":1978},"05-campaign.heritage_week","both",[1916,1980,1981],{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sqsOY, html code.shiki .sqsOY{--shiki-light:#8796B0;--shiki-default:#B2CCD6;--shiki-dark:#B2CCD6}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":325,"searchDepth":385,"depth":385,"links":1983},[1984,1985,1986,1987,1988,1989,1990,1991,1992,1993],{"id":219,"depth":385,"text":220},{"id":872,"depth":385,"text":873},{"id":937,"depth":385,"text":938},{"id":1083,"depth":385,"text":1084},{"id":1455,"depth":385,"text":1456},{"id":1626,"depth":385,"text":1627},{"id":1690,"depth":385,"text":1691},{"id":1867,"depth":385,"text":1868},{"id":1883,"depth":385,"text":1884},{"id":1969,"depth":385,"text":1970},"What the HTML part looks like, and how it holds up in Outlook, dark mode and on phones.","md",null,{},{"icon":97},{"title":94,"description":1994},"1HJspVRrVbiiPm8HWeFTiN6oSMDIxTS6qBrtuoEzbL0",[2002,2004],{"title":89,"path":90,"stem":91,"description":2003,"icon":92,"children":-1},"How lttr decides the space above and below every module, from class defaults, pair rules and position rules.",{"title":99,"path":100,"stem":101,"description":2005,"icon":102,"children":-1},"How lttr writes the plain-text part from the same compiled template, and the rules every text part follows.",1790309825445]