{"id":13433036,"url":"https://github.com/PolymerElements/app-layout","last_synced_at":"2025-03-17T10:33:08.226Z","repository":{"id":36027359,"uuid":"40323291","full_name":"PolymerElements/app-layout","owner":"PolymerElements","description":"App layout elements","archived":false,"fork":false,"pushed_at":"2023-10-19T16:24:37.000Z","size":49427,"stargazers_count":600,"open_issues_count":40,"forks_count":309,"subscribers_count":55,"default_branch":"master","last_synced_at":"2025-03-11T20:43:34.491Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://webcomponents.org/element/PolymerElements/app-layout","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PolymerElements.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-08-06T19:34:10.000Z","updated_at":"2025-02-24T21:15:51.000Z","dependencies_parsed_at":"2024-06-18T12:15:47.081Z","dependency_job_id":"5d8b15be-5666-4da1-8741-7b1ae0a16aae","html_url":"https://github.com/PolymerElements/app-layout","commit_stats":{"total_commits":662,"total_committers":40,"mean_commits":16.55,"dds":0.7009063444108761,"last_synced_commit":"5882cd26f0e614a120e055bce089e7eabbaf2584"},"previous_names":[],"tags_count":47,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolymerElements%2Fapp-layout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolymerElements%2Fapp-layout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolymerElements%2Fapp-layout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolymerElements%2Fapp-layout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PolymerElements","download_url":"https://codeload.github.com/PolymerElements/app-layout/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244016918,"owners_count":20384235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T02:01:20.110Z","updated_at":"2025-03-17T10:33:07.724Z","avatar_url":"https://github.com/PolymerElements.png","language":"HTML","funding_links":[],"categories":["HTML"],"sub_categories":[],"readme":"[![Published on NPM](https://img.shields.io/npm/v/@polymer/app-layout.svg)](https://www.npmjs.com/package/@polymer/app-layout)\n[![Build status](https://travis-ci.org/PolymerElements/app-layout.svg?branch=master)](https://travis-ci.org/PolymerElements/app-layout)\n[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://webcomponents.org/element/@polymer/app-layout)\n\n## App Layout\n\n\u003c!---\n```\n\u003ccustom-element-demo height=\"368\"\u003e\n  \u003ctemplate\u003e\n    \u003cscript src=\"https://unpkg.com/@webcomponents/webcomponentsjs@^2.0.0/webcomponents-loader.js\"\u003e\u003c/script\u003e\n    \u003cscript type=\"module\"\u003e\n      import '@polymer/app-layout/app-drawer/app-drawer.js';\n      import '@polymer/app-layout/app-header/app-header.js';\n      import '@polymer/app-layout/app-toolbar/app-toolbar.js';\n      import '@polymer/app-layout/demo/sample-content.js';\n      import '@polymer/iron-flex-layout/iron-flex-layout.js';\n      import '@polymer/iron-icons/iron-icons.js';\n      import '@polymer/paper-icon-button/paper-icon-button.js';\n      import '@polymer/paper-progress/paper-progress.js';\n    \u003c/script\u003e\n    \u003ccustom-style\u003e\n      \u003cstyle is=\"custom-style\"\u003e\n        html, body {\n          margin: 0;\n          font-family: 'Roboto', 'Noto', sans-serif;\n          -webkit-font-smoothing: antialiased;\n          background: #f1f1f1;\n          max-height: 368px;\n        }\n        app-toolbar {\n          background-color: #4285f4;\n          color: #fff;\n        }\n\n        paper-icon-button {\n          --paper-icon-button-ink-color: white;\n        }\n\n        paper-icon-button + [main-title] {\n          margin-left: 24px;\n        }\n        paper-progress {\n          display: block;\n          width: 100%;\n          --paper-progress-active-color: rgba(255, 255, 255, 0.5);\n          --paper-progress-container-color: transparent;\n        }\n        app-header {\n          @apply --layout-fixed-top;\n          color: #fff;\n          --app-header-background-rear-layer: {\n            background-color: #ef6c00;\n          };\n        }\n        app-drawer {\n          --app-drawer-scrim-background: rgba(0, 0, 100, 0.8);\n          --app-drawer-content-container: {\n            background-color: #B0BEC5;\n          }\n        }\n        sample-content {\n          padding-top: 64px;\n        }\n      \u003c/style\u003e\n    \u003c/custom-style\u003e\n    \u003cnext-code-block\u003e\u003c/next-code-block\u003e\n  \u003c/template\u003e\n\u003c/custom-element-demo\u003e\n```\n--\u003e\n\nA collection of elements, along with guidelines and templates that can be used to structure your app’s layout.\n\n## What is inside\n\n### Elements\n\n- [app-box](https://github.com/PolymerElements/app-layout/tree/master/app-box) - A container element that can have scroll effects - visual effects based on scroll position.\n\n- [app-drawer](https://github.com/PolymerElements/app-layout/tree/master/app-drawer) - A navigation drawer that can slide in from the left or right.\n\n- [app-drawer-layout](https://github.com/PolymerElements/app-layout/tree/master/app-drawer-layout) - A wrapper element that positions an app-drawer and other content.\n\n- [app-grid](https://github.com/PolymerElements/app-layout/tree/master/app-grid) - A helper class useful for creating responsive, fluid grid layouts using custom properties.\n\n- [app-header](https://github.com/PolymerElements/app-layout/tree/master/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.\n\n- [app-header-layout](https://github.com/PolymerElements/app-layout/tree/master/app-header-layout) - A wrapper element that positions an app-header and other content.\n\n- [app-toolbar](https://github.com/PolymerElements/app-layout/tree/master/app-toolbar) - A horizontal toolbar containing items that can be used for label, navigation, search and actions.\n\n### Templates\n\nThe templates are a means to define, illustrate and share best practices in App Layout. Pick a template and customize it:\n\n- **Getting started**\n([Demo](https://polymerelements.github.io/app-layout/templates/getting-started) - [Source](/templates/getting-started))\n\n- **Landing page**\n([Demo](https://polymerelements.github.io/app-layout/templates/landing-page) - [Source](/templates/landing-page))\n\n- **Publishing: Zuperkülblog**\n([Demo](https://polymerelements.github.io/app-layout/templates/publishing) - [Source](/templates/publishing))\n\n- **Shop: Shrine**\n([Demo](https://polymerelements.github.io/app-layout/templates/shrine) - [Source](/templates/shrine))\n\n- **Blog: Pesto**\n([Demo](https://polymerelements.github.io/app-layout/templates/pesto) - [Source](/templates/pesto))\n\n- **Scroll effects: Test drive**\n([Demo](https://polymerelements.github.io/app-layout/templates/test-drive) - [Source](/templates/test-drive))\n\n### Patterns\n\nSample code for various UI patterns:\n\n- **Transform navigation:**\nAs more screen space is available, side navigation can transform into tabs.\n([Demo](https://www.webcomponents.org/element/PolymerElements/app-layout/demo/patterns/transform-navigation/index.html) - [Source](/patterns/transform-navigation/x-app.html))\n\n- **Expand Card:**\nContent cards may expand to take up more horizontal space.\n([Demo](https://www.webcomponents.org/element/PolymerElements/app-layout/demo/patterns/expand-card/index.html) - [Source](/patterns/expand-card/index.html))\n\n- **Material Design Responsive Toolbar:**\nToolbar changes its height and padding to adapt mobile screen size.\n([Demo](https://www.webcomponents.org/element/PolymerElements/app-layout/demo/patterns/md-responsive-toolbar/index.html) - [Source](/patterns/md-responsive-toolbar/index.html))\n\n## Users\n\nHere are some web apps built with App Layout:\n\n- [Youtube Web](https://www.youtube.com/new)\n- [Google I/O 2016](https://events.google.com/io2016/)\n- [Polymer project site](https://www.polymer-project.org/summit)\n- [Polymer summit](https://www.polymer-project.org/summit)\n- [Shop](https://shop.polymer-project.org)\n- [News](https://news.polymer-project.org)\n- [webcomponents.org](https://www.webcomponents.org/)\n- [Chrome Status](https://www.chromestatus.com/)\n- [Project Fi](https://fi.google.com/about/)\n- [NASA Open Source Software](https://code.nasa.gov/)\n\nSee: [Documentation](https://www.webcomponents.org/element/@polymer/app-layout),\n  [Demo](https://www.webcomponents.org/element/@polymer/app-layout/demo/demo/index.html).\n\n## Usage\n\n### Installation\n```\nnpm install --save @polymer/app-layout\n```\n\n### In an html file\n```html\n\u003chtml\u003e\n  \u003chead\u003e\n    \u003cscript type=\"module\"\u003e\n      import '@polymer/app-layout/app-layout.js';\n    \u003c/script\u003e\n  \u003c/head\u003e\n  \u003cbody\u003e\n    \u003capp-header reveals\u003e\n      \u003capp-toolbar\u003e\n        \u003cdiv main-title\u003eMy app\u003c/div\u003e\n      \u003c/app-toolbar\u003e\n    \u003c/app-header\u003e\n    \u003capp-drawer id=\"drawer\" swipe-open\u003e\u003c/app-drawer\u003e\n  \u003c/body\u003e\n\u003c/html\u003e\n```\n### In a Polymer 3 element\n```js\nimport {PolymerElement, html} from '@polymer/polymer';\nimport '@polymer/app-layout/app-layout.js';\n\nclass SampleElement extends PolymerElement {\n  static get template() {\n    return html`\n      \u003capp-header reveals\u003e\n        \u003capp-toolbar\u003e\n          \u003cdiv main-title\u003eMy app\u003c/div\u003e\n        \u003c/app-toolbar\u003e\n      \u003c/app-header\u003e\n      \u003capp-drawer id=\"drawer\" swipe-open\u003e\u003c/app-drawer\u003e\n    `;\n  }\n}\ncustomElements.define('sample-element', SampleElement);\n```\n\n## Contributing\nIf you want to send a PR to this element, here are\nthe instructions for running the tests and demo locally:\n\n### Installation\n```sh\ngit clone https://github.com/PolymerElements/app-layout\ncd app-layout\nnpm install\nnpm install -g polymer-cli\n```\n\n### Running the demo locally\n```sh\npolymer serve --npm\nopen http://127.0.0.1:\u003cport\u003e/demo/\n```\n\n### Running the tests\n```sh\npolymer test --npm\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPolymerElements%2Fapp-layout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPolymerElements%2Fapp-layout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPolymerElements%2Fapp-layout/lists"}