From 8f50f11f0e82c692247b767848edfe97e8123ca5 Mon Sep 17 00:00:00 2001 From: Chris Joel Date: Thu, 16 Jul 2015 10:58:48 -0700 Subject: [PATCH] Implement paper-menu-button for Polymer 1.0. - A `.dropdown-trigger` can be declared, which will open and close the menu. - A `.dropdown-content` can be declared which will be the content of the menu. - The `paper-menu-button` will auto-close when its content fires an `iron-select` event. - Animations use `neon-animations` and have been matched to the Material Design spec for menus. --- .gitignore | 1 + README.md | 2 +- bower.json | 50 +++-- demo/index.html | 308 ++++++++++++++---------------- index.html | 12 +- metadata.html | 21 -- paper-menu-button-animations.html | 109 +++++++++++ paper-menu-button.css | 101 ---------- paper-menu-button.html | 269 ++++++++++++++++++++++---- test/index.html | 25 +++ test/paper-menu-button.html | 96 ++++++++++ 11 files changed, 648 insertions(+), 346 deletions(-) create mode 100644 .gitignore delete mode 100644 metadata.html create mode 100644 paper-menu-button-animations.html delete mode 100644 paper-menu-button.css create mode 100644 test/index.html create mode 100644 test/paper-menu-button.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8d4ae25 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +bower_components diff --git a/README.md b/README.md index f2d11ea..dba0ff1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ paper-menu-button ================= -See the [component page](https://www.polymer-project.org/0.5/docs/elements/paper-menu-button.html) for more information. +An element that allows composing a trigger and content as a dropdown menu. diff --git a/bower.json b/bower.json index ba29591..d3cb912 100644 --- a/bower.json +++ b/bower.json @@ -1,16 +1,44 @@ { "name": "paper-menu-button", + "version": "1.0.0", + "description": "", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "web-component", + "polymer" + ], + "main": "paper-menu-button.html", "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-menu-button" + }, + "license": "MIT", + "homepage": "https://github.com/PolymerElements/paper-menu-button", "dependencies": { - "polymer": "Polymer/polymer#master", - "core-a11y-keys": "Polymer/core-a11y-keys#master", - "core-collapse": "Polymer/core-collapse#master", - "core-dropdown": "Polymer/core-dropdown#master", - "core-icons": "Polymer/core-icons#master", - "core-menu": "Polymer/core-menu#master", - "paper-button": "Polymer/paper-button#master", - "paper-dropdown": "Polymer/paper-dropdown#master", - "paper-icon-button": "Polymer/paper-icon-button#master", - "paper-item": "Polymer/paper-item#master" + "polymer": "polymer/polymer#^1.0.0", + "neon-animation": "polymerelements/neon-animation#^1.0.0", + "paper-material": "polymerelements/paper-material#^1.0.0", + "paper-styles": "polymerelements/paper-styles#^1.0.0", + "iron-dropdown": "polymerelements/iron-dropdown#^1.0.0", + "iron-a11y-keys-behavior": "polymerelements/iron-a11y-keys-behavior#^1.0.0", + "iron-behaviors": "polymerelements/iron-behaviors#^1.0.0" + }, + "devDependencies": { + "iron-component-page": "polymerelements/iron-component-page#^1.0.0", + "test-fixture": "polymerelements/test-fixture#^1.0.0", + "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", + "web-component-tester": "*", + "paper-menu": "polymerelements/paper-menu#^1.0.0", + "paper-icon-button": "polymerelements/paper-icon-button#^1.0.0", + "iron-icons": "polymerelements/iron-icons#^1.0.0", + "paper-button": "polymerelements/paper-button#^1.0.0", + "paper-item": "polymerelements/paper-item#^1.0.0", + "iron-image": "polymerelements/iron-image#^1.0.0", + "iron-icon": "polymerelements/iron-icon#^1.0.0" } -} \ No newline at end of file +} diff --git a/demo/index.html b/demo/index.html index 061fc14..5a7127e 100644 --- a/demo/index.html +++ b/demo/index.html @@ -1,6 +1,7 @@ - - - - diff --git a/paper-menu-button-animations.html b/paper-menu-button-animations.html new file mode 100644 index 0000000..b1339f2 --- /dev/null +++ b/paper-menu-button-animations.html @@ -0,0 +1,109 @@ + + + + + + + + diff --git a/paper-menu-button.css b/paper-menu-button.css deleted file mode 100644 index a8eb599..0000000 --- a/paper-menu-button.css +++ /dev/null @@ -1,101 +0,0 @@ -/* -Copyright 2013 The Polymer Authors. All rights reserved. -Use of this source code is governed by a BSD-style -license that can be found in the LICENSE file. -*/ - -:host { - display: inline-block; - padding: 8px; - position: relative; - background-image: none; - outline: none; - user-select: none; - -webkit-user-select: none; - cursor: pointer; -} - -:host([disabled]) { - cursor: auto; -} - -core-icon { - position: relative; -} - -core-icon::shadow svg { - transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); - -webkit-transition: -webkit-transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); - transform-origin: 50% 50%; - -webkit-transform-origin: 50% 50%; -} - -:host(:hover) core-icon::shadow svg { - transform: scale(1.2); - -webkit-transform: scale(1.2); -} - -:host([disabled]:hover) core-icon::shadow svg { - transform: none; - -webkit-transform: none; -} - -:host([disabled]) core-icon::shadow path { - fill: #c9c9c9; -} - -#dropdown { - background-color: transparent; - margin: 12px; - color: #000; - overflow: visible; -} - -#menu { - padding-top: 8px; - padding-bottom: 8px; - margin: 0; -} - -.paper-menu-button-overlay-ink { - position: absolute; - top: 0; - left: 0; - width: 40px; - height: 40px; - border-radius: 20px; - opacity: 0; - transform: scale(0); - -webkit-transform: scale(0); -} - -:host([halign="right"]) .paper-menu-button-overlay-ink { - left: auto; - right: 0; -} - -:host([valign="bottom"]) .paper-menu-button-overlay-ink { - top: auto; - bottom: 0; -} - -.paper-menu-button-overlay-bg { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - border-radius: 3px; - opacity: 0; - z-index: -1; -} - -:host([noTransition]) .paper-menu-button-overlay-bg { - opacity: 1; -} - -.paper-menu-button-menu-container { - overflow: auto; - max-height: 100%; - max-width: 100%; -} \ No newline at end of file diff --git a/paper-menu-button.html b/paper-menu-button.html index 18a24df..6bd2089 100644 --- a/paper-menu-button.html +++ b/paper-menu-button.html @@ -1,80 +1,267 @@ + + + + + + + + + + + - - - - - - + @apply(--paper-menu-button-dropdown); + } + + + - + diff --git a/test/index.html b/test/index.html new file mode 100644 index 0000000..2339910 --- /dev/null +++ b/test/index.html @@ -0,0 +1,25 @@ + + + + + + + paper-menu-button tests + + + + + + diff --git a/test/paper-menu-button.html b/test/paper-menu-button.html new file mode 100644 index 0000000..72a5358 --- /dev/null +++ b/test/paper-menu-button.html @@ -0,0 +1,96 @@ + + + + + + paper-menu-button basic tests + + + + + + + + + + + + + + + + + + + +