Every single template is going to get loaded with the following variables:
A api:craft\web\twig\variables\CraftVariable object, which provides access points to various helper functions and objects for templates.
A reference to the main api:craft\web\Application instance (the thing you get when you type Craft::$app in PHP code) is also available to templates via craft.app.
::: warning
Accessing things via craft.app is considered advanced. There are more security implications than other Twig-specific variables and functions, and your templates will be more susceptible to breaking changes during major Craft version bumps.
:::
{% set field = craft.app.fields.getFieldByHandle('body') %}The requested site, represented by a api:craft\models\Site object.
{{ currentSite.name }}You can access all of the sites in the same group as the current site via currentSite.group.sites:
<nav>
<ul>
{% for site in currentSite.group.sites %}
<li><a href="{{ alias(site.baseUrl) }}">{{ site.name }}</a></li>
{% endfor %}
</ul>
</nav>The currently-logged-in user, represented by a api:craft\elements\User object, or null if no one is logged in.
{% if currentUser %}
Welcome, {{ currentUser.friendlyName }}!
{% endif %}Whether the config:devMode config setting is currently enabled.
{% if devMode %}
Craft is running in dev mode.
{% endif %}The URL to your site’s login page, based on the config:loginPath config setting.
{% if not currentUser %}
<a href="{{ loginUrl }}">Login</a>
{% endif %}The URL Craft uses to log users out, based on the config:logoutPath config setting. Note that Craft will automatically redirect users to your homepage after going here; there’s no such thing as a “logout page”.
{% if currentUser %}
<a href="{{ logoutUrl }}">Logout</a>
{% endif %}A DateTime object set to the current date and time.
Today is {{ now|date('M j, Y') }}.Twig-facing copy of the craft\web\View::POS_BEGIN constant.
Twig-facing copy of the craft\web\View::POS_END constant.
Twig-facing copy of the craft\web\View::POS_HEAD constant.
Twig-facing copy of the craft\web\View::POS_LOAD constant.
Twig-facing copy of the craft\web\View::POS_READY constant.
The name of your site, as defined in Settings → Sites.
<h1>{{ siteName }}</h1>The URL of your site
<link rel="home" href="{{ siteUrl }}">Twig-facing copy of the SORT_ASC PHP constant.
Twig-facing copy of the SORT_DESC PHP constant.
Twig-facing copy of the SORT_FLAG_CASE PHP constant.
Twig-facing copy of the SORT_LOCALE_STRING PHP constant.
Twig-facing copy of the SORT_NATURAL PHP constant.
Twig-facing copy of the SORT_NUMERIC PHP constant.
Twig-facing copy of the SORT_REGULAR PHP constant.
Twig-facing copy of the SORT_STRING PHP constant.
The System Name, as defined in Settings → General.
A reference to the api:craft\web\View instance that is driving the template.
Each of your site’s global sets will be available to your template as global variables, named after their handle.
They will be represented as api:craft\elements\GlobalSet objects.
<p>{{ companyInfo.companyName }} was established in {{ companyInfo.yearEstablished }}.</p>