Nihilist Pocket Monsters
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    @polymer/app-layoutpublic

    App Layout Build Status Published on webcomponents.org

    A collection of elements, along with guidelines and templates that can be used to structure your app’s layout.

    <app-header reveals>
      <app-toolbar>
        <paper-icon-button icon="menu" onclick="drawer.toggle()"></paper-icon-button>
        <div main-title>My app</div>
        <paper-icon-button icon="delete"></paper-icon-button>
        <paper-icon-button icon="search"></paper-icon-button>
        <paper-icon-button icon="close"></paper-icon-button>
        <paper-progress value="10" indeterminate bottom-item></paper-progress>
      </app-toolbar>
    </app-header>
    <app-drawer id="drawer" swipe-open></app-drawer>
    <sample-content size="10"></sample-content>

    Install

    $ bower install PolymerElements/app-layout --save

    Import

    <link rel="import" href="/bower_components/app-layout/app-layout.html">

    What is inside

    Elements

    • app-box - A container element that can have scroll effects - visual effects based on scroll position.

    • app-drawer - A navigation drawer that can slide in from the left or right.

    • app-drawer-layout - A wrapper element that positions an app-drawer and other content.

    • app-grid - A helper class useful for creating responsive, fluid grid layouts using custom properties.

    • app-header - A container element for app-toolbars at the top of the screen that can have scroll effects - visual effects based on scroll position.

    • app-header-layout - A wrapper element that positions an app-header and other content.

    • app-toolbar - A horizontal toolbar containing items that can be used for label, navigation, search and actions.

    Templates

    The templates are a means to define, illustrate and share best practices in App Layout. Pick a template and customize it:

    Patterns

    Sample code for various UI patterns:

    • Transform navigation: As more screen space is available, side navigation can transform into tabs. (Demo - Source)

    • Expand Card: Content cards may expand to take up more horizontal space. (Demo - Source)

    • Material Design Responsive Toolbar: Toolbar changes its height and padding to adapt mobile screen size. (Demo - Source)

    Users

    Here are some web apps built with App Layout:

    Tools and References

    Changes in App Layout 2.0

    • Distribution is now done with slots, so things have changed because of that,

      ##### app-drawer-layout 1.x

      <app-drawer-layout>
        <app-drawer>...</app-drawer>
        <div>content</div>
      </app-drawer-layout>
      

      2.0

      <app-drawer-layout>
        <app-drawer slot="drawer">...</app-drawer>
        <div>content</div>
      </app-drawer-layout>
      

      ##### app-header-layout 1.x

      <app-header-layout>
        <app-header>...</app-header>
        <div>content</div>
      </app-header-layout>
      

      2.0

      <app-header-layout>
        <app-header slot="header">...</app-header>
        <div>content</div>
      </app-header-layout>
      

      ##### app-box 1.x

      <app-box effects="...">
        <img background ...>
      </app-box>
      

      2.0

      <app-box effects="...">
        <img slot="background" ...>
      </app-box>
      
    • In app-drawer-layout, the drawer-toggle element needs to be manually hidden when app-drawer-layout is not in narrow layout. To add this, add the following CSS rule where app-drawer-layout is used:

      app-drawer-layout:not([narrow]) [drawer-toggle] {
        display: none;
      }
    • In app-drawer-layout, if you specify a value for --app-drawer-width, that value must be accessible by both app-drawer and app-drawer-layout. This can be done by defining the value on the :host that contains (or html if outside a shadow root):

      :host {
        --app-drawer-width: 300px;
      }
    • app-scrollpos-control has been removed from App Layout in favor of using multiple scrolling regions to preserve the scroll position. In terms of UX, document.rootScroller is a new web platform API that will allow non-document scroll to hide the address bar on mobile.

    Keywords

    none

    install

    npm i @polymer/app-layout

    Downloadsweekly downloads

    3,198

    version

    3.0.0-pre.19

    license

    BSD-3-Clause

    repository

    githubgithub

    last publish

    collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar