Das Theme-Layout bildet den Rahmen der Templates eines Themes. Alle Templates werden innerhalb des Theme-Layouts gerendert, wobei das Theme-Layout selbst auch ein Template darstellt. So eignet sich das Theme-Layout besonders dafür, übergreifende Punkte, wie z.B. den Kopfbereich, Navigation und Fußbereich des Themes darzustellen. Diese bleiben für gewöhnlich über alle Templates hinweg identisch.
Die Stelle an der das eigentliche Template im Theme-Layout eingefügt wird, kann frei bestimmt werden. Hierzu muss an der gewünschten Stelle nur die Variable <liquid>content_for_layout</liquid> ausgegeben werden, z.B. wie folgt:
<code-block>
<html>
<head></head>
<body>
{{ content_for_layout }}
</body>
</html>
</code-block>
Das Standard Theme-Layout stellt das theme.liquid dar. Alternative Theme-Layouts können analog zum theme.liquid im layout-Verzeichnis hinterlegt werden. Um für ein bestimmtes Template ein abweichendes Theme-Layout zu verwenden, müssen innerhalb des Templates zwei Variablen definiert werden. Zum einen muss die Variable <liquid>use_alternative_layout</liquid> auf <liquid>true</liquid> gesetzt werden. Zum anderen muss über die Variable <liquid>layout</liquid> angegeben werden, welches Theme-Layout verwendet werden soll. Dies kann z.B. wie folgt aussehen:
<code-block>
{% assign use_alternative_layout=true %}
{% assign layout='layout/print.liquid' %}
</code-block>