Documentation
Page content layout
Summary
Content Layout system for the content area within the Page component. It divides up the content area into combinations like navigation+content, content+sidebar, etc. Note this component can only be used once per document, within the #content element; and it cannot be nested. If you need generic layouts further down the DOM, use group+item.
Status
API status: | general |
---|---|
Included in AUI core? | Yes. You do not need to explicitly require the web resource key. |
Web resource key: | com.atlassian.auiplugin:aui-page-layout |
Experimental since: | 5.0 |
General API status: | 5.1 |
Code
HTML
The core layout requires the page panel, a page panel inner and at least one panel - usually a content panel. The extra elements are used across layout variations so do not omit them.
For a simple content area with no divisions:
<div class="aui-page-panel">
<div class="aui-page-panel-inner">
<section class="aui-page-panel-content">
<h2>Page content heading</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</section>
</div>
</div>
Navigation (aui-page-panel-nav
), sidebar (aui-page-panel-sidebar
) and generic items (aui-page-panel-item
) can be added as siblings of content (aui-page-panel-content
). By default the items are rendered as columns.
A three-column layout:
<section id="content" role="main">
<div class="aui-page-panel">
<div class="aui-page-panel-inner">
<div class="aui-page-panel-nav">
<!-- content such as a vertical nav -->
</div>
<section class="aui-page-panel-content">
<!-- main area for content -->
</section>
<aside class="aui-page-panel-sidebar">
<!-- tangental content here -->
</aside>
</div>
</div>
</section>
The generic item is relatively unstyled - it allows custom extensions to content layouts where required:
<div class="aui-page-panel">
<div class="aui-page-panel-inner">
<section class="aui-page-panel-item someclass">
<!-- content -->
</section>
<section class="aui-page-panel-item someotherclass">
<!-- content -->
</section>
</div>
</div>
Soy
Called with JavaScript:
atlassian.page.pagePanel({
tagName : 'section',
content :
atlassian.page.pagePanelNav({
tagName : 'section',
content : '...'
}) +
atlassian.page.pagePanelContent({
tagName : 'aside',
content : '...'
}) +
atlassian.page.pagePanelSidebar({
tagName : 'nav',
content : '...'
})
})
Server-side Soy:
{call aui.page.pagePanel}
{param content}
{call aui.page.pagePanelNav}
{param content}
<p>content</p>
{/param}
{/call}
{call aui.page.pagePanelContent}
{param content}
<p>content</p>
{/param}
{/call}
{call aui.page.pagePanelSidebar}
{param content}
<p>content</p>
{/param}
{/call}
{/param}
{/call}