{"route":"/en-US-v0.14.1/reference/layout/align/","title":"Align","description":"Documentation for the `align` function.","part":null,"outline":[{"id":"summary","name":"Summary","children":[]},{"id":"example","name":"Example","children":[]},{"id":"combining-alignments","name":"Combining alignments","children":[]},{"id":"nested-alignment","name":"Nested alignment","children":[]},{"id":"alignment-within-the-same-line","name":"Alignment within the same line","children":[]},{"id":"parameters","name":"Parameters","children":[{"id":"parameters-alignment","name":"alignment","children":[]},{"id":"parameters-body","name":"body","children":[]}]}],"body":{"kind":"func","content":{"path":[],"name":"align","title":"Align","keywords":[],"oneliner":"Aligns content horizontally and vertically.","element":true,"contextual":false,"deprecationMessage":null,"deprecationUntil":null,"details":[{"kind":"html","content":"<p>Aligns content horizontally and vertically.</p>\n<h2 id=\"example\">Example</h2>\n<p>Let's start with centering our content horizontally:</p>\n<div class=\"previewed-code\"><pre><code><span class=\"typ-key\">#</span><span class=\"typ-key\">set</span> <span class=\"typ-func\">page</span><span class=\"typ-punct\">(</span>height<span class=\"typ-punct\">:</span> <span class=\"typ-num\">120pt</span><span class=\"typ-punct\">)</span>\n<span class=\"typ-key\">#</span><span class=\"typ-key\">set</span> <span class=\"typ-func\">align</span><span class=\"typ-punct\">(</span>center<span class=\"typ-punct\">)</span>\n\nCentered text, a sight to see <span class=\"typ-escape\">\\</span>\nIn perfect balance, visually <span class=\"typ-escape\">\\</span>\nNot left nor right, it stands alone <span class=\"typ-escape\">\\</span>\nA work of art, a visual throne\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.14.1/assets/91c3481be6d803c4fd0540e78c25091a.png\" alt=\"Preview\"></div></div>\n<p>To center something vertically, use <em>horizon</em> alignment:</p>\n<div class=\"previewed-code\"><pre><code><span class=\"typ-key\">#</span><span class=\"typ-key\">set</span> <span class=\"typ-func\">page</span><span class=\"typ-punct\">(</span>height<span class=\"typ-punct\">:</span> <span class=\"typ-num\">120pt</span><span class=\"typ-punct\">)</span>\n<span class=\"typ-key\">#</span><span class=\"typ-key\">set</span> <span class=\"typ-func\">align</span><span class=\"typ-punct\">(</span>horizon<span class=\"typ-punct\">)</span>\n\nVertically centered, <span class=\"typ-escape\">\\</span>\nthe stage had entered, <span class=\"typ-escape\">\\</span>\na new paragraph.\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.14.1/assets/cbd38ef8c4834081d6b063dcffaa4d9c.png\" alt=\"Preview\"></div></div>\n<h2 id=\"combining-alignments\">Combining alignments</h2>\n<p>You can combine two alignments with the <code>+</code> operator. Let's also only apply\nthis to one piece of content by using the function form instead of a set\nrule:</p>\n<div class=\"previewed-code\"><pre><code><span class=\"typ-key\">#</span><span class=\"typ-key\">set</span> <span class=\"typ-func\">page</span><span class=\"typ-punct\">(</span>height<span class=\"typ-punct\">:</span> <span class=\"typ-num\">120pt</span><span class=\"typ-punct\">)</span>\nThough left in the beginning <span class=\"typ-escape\">...</span>\n\n<span class=\"typ-func\">#</span><span class=\"typ-func\">align</span><span class=\"typ-punct\">(</span>right <span class=\"typ-op\">+</span> bottom<span class=\"typ-punct\">)</span><span class=\"typ-punct\">[</span>\n  <span class=\"typ-escape\">...</span> they were right in the end, <span class=\"typ-escape\">\\</span>\n  and with addition had gotten, <span class=\"typ-escape\">\\</span>\n  the paragraph to the bottom!\n<span class=\"typ-punct\">]</span>\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.14.1/assets/8176aa00c602f0b89c8ff5022b425216.png\" alt=\"Preview\"></div></div>\n<h2 id=\"nested-alignment\">Nested alignment</h2>\n<p>You can use varying alignments for layout containers and the elements within\nthem. This way, you can create intricate layouts:</p>\n<div class=\"previewed-code\"><pre><code><span class=\"typ-func\">#</span><span class=\"typ-func\">align</span><span class=\"typ-punct\">(</span>center<span class=\"typ-punct\">,</span> <span class=\"typ-func\">block</span><span class=\"typ-punct\">[</span>\n  <span class=\"typ-key\">#</span><span class=\"typ-key\">set</span> <span class=\"typ-func\">align</span><span class=\"typ-punct\">(</span>left<span class=\"typ-punct\">)</span>\n  Though centered together <span class=\"typ-escape\">\\</span>\n  alone <span class=\"typ-escape\">\\</span>\n  we <span class=\"typ-escape\">\\</span>\n  are <span class=\"typ-escape\">\\</span>\n  left.\n<span class=\"typ-punct\">]</span><span class=\"typ-punct\">)</span>\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.14.1/assets/7a63e59616d8948c21cd27d07c47cbd.png\" alt=\"Preview\"></div></div>\n<h2 id=\"alignment-within-the-same-line\">Alignment within the same line</h2>\n<p>The <code>align</code> function performs block-level alignment and thus always\ninterrupts the current paragraph. To have different alignment for parts\nof the same line, you should use <a href=\"/en-US-v0.14.1/reference/layout/h/\">fractional spacing</a> instead:</p>\n<div class=\"previewed-code\"><pre><code>Start <span class=\"typ-func\">#</span><span class=\"typ-func\">h</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">1fr</span><span class=\"typ-punct\">)</span> End\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.14.1/assets/8e569fc1b13666e212c093d0351cc0de.png\" alt=\"Preview\"></div></div>"}],"self":false,"params":[{"name":"alignment","details":[{"kind":"html","content":"<p>The <a href=\"/en-US-v0.14.1/reference/layout/alignment/\" title=\"alignment\">alignment</a> along both axes.</p>"},{"kind":"example","content":{"body":"<div class=\"previewed-code\"><pre><code><span class=\"typ-key\">#</span><span class=\"typ-key\">set</span> <span class=\"typ-func\">page</span><span class=\"typ-punct\">(</span>height<span class=\"typ-punct\">:</span> <span class=\"typ-num\">6cm</span><span class=\"typ-punct\">)</span>\n<span class=\"typ-key\">#</span><span class=\"typ-key\">set</span> <span class=\"typ-func\">text</span><span class=\"typ-punct\">(</span>lang<span class=\"typ-punct\">:</span> <span class=\"typ-str\">&quot;ar&quot;</span><span class=\"typ-punct\">)</span>\n\nمثال\n<span class=\"typ-func\">#</span><span class=\"typ-func\">align</span><span class=\"typ-punct\">(</span>\n  end <span class=\"typ-op\">+</span> horizon<span class=\"typ-punct\">,</span>\n  <span class=\"typ-func\">rect</span><span class=\"typ-punct\">(</span>inset<span class=\"typ-punct\">:</span> <span class=\"typ-num\">12pt</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">[</span>ركن<span class=\"typ-punct\">]</span>\n<span class=\"typ-punct\">)</span>\n</code></pre><div class=\"preview\"><img src=\"/en-US-v0.14.1/assets/df5efabe6e8813f04d7d9ad5a5cf7fc4.png\" alt=\"Preview\"></div></div>","title":null}}],"types":["alignment"],"strings":[],"default":"<code>start <span class=\"typ-op\">+</span> top</code>","positional":true,"named":false,"required":false,"variadic":false,"settable":true},{"name":"body","details":[{"kind":"html","content":"<p>The content to align.</p>"}],"types":["content"],"strings":[],"default":null,"positional":true,"named":false,"required":true,"variadic":false,"settable":false}],"returns":["content"],"scope":[]}}}