Layout files are main files of a theme. They are responsible for generating theme's HTML code and linking theme assets.
Basically, these files are PHP files containing HTML tags and PHP code to embed ImpressPages functionality.
Main theme's layout file should be named as main.php and homepage layout file as home.php. Such consistent naming makes switching between themes easier.
Any PHP file, added to theme's root directory, will appear in admin panel as a layout file. If you want to hide some of the files from admin panel, prefix their names with underscore character (e.g., name it _header.php) or put in a subdirectory.
To learn how to create layout files, check out Quick Start theme's layout, which is provided in Themes/QuickStart/main.php file.
Add required CSS using ipAddCss() function. It adds CSS to the CSS stack. Then print all CSS files and other head items using ipHead() function. ipHead() function is required as it prints not only theme's CSS, but also CSS requested by plugins.
ipHead() and ipJs() functions are mandatory in any layout for widgets to work!
To make customization of error404 page easier, ImpressPages reserve 404.php layout. If you add such file to your theme, it will be used as the default layout to display "Page Not Found" message.