UNPKG

@kano/web-components

Version:

Shared web-components for the Kano ecosystem.

139 lines (133 loc) 5.53 kB
<!doctype html> <html> <head> <meta charset="utf-8"> <script src="../../../../@webcomponents/webcomponentsjs/webcomponents-bundle.js"></script> <script type="text/javascript"> window.Polymer = { dom: 'shadow' }; </script> <script type="module" src="../../../../@polymer/iron-flex-layout/iron-flex-layout.js"></script> <script type="module" src="../../../../@polymer/iron-demo-helpers/demo-snippet.js"></script> <script type="module" src="../../../../@polymer/iron-demo-helpers/demo-pages-shared-styles.js"></script> <script type="module" src="../../../../@polymer/paper-button/paper-button.js"></script> <script type="module" src="../../kano-style/typography.js"></script> <script type="module" src="../../kano-style/color.js"></script> <script type="module" src="../kano-drop-down.js"></script> <!-- FIXME(polymer-modulizer): These imperative modules that innerHTML your HTML are a hacky way to be sure that any mixins in included style modules are ready before any elements that reference them are instantiated, otherwise the CSS @apply mixin polyfill won't be able to expand the underlying CSS custom properties. See: https://github.com/Polymer/polymer-modulizer/issues/154 --> <script type="module"> const $_documentContainer = document.createElement('template'); $_documentContainer.innerHTML = `<custom-style> <style is="custom-style" include="demo-pages-shared-styles"> demo-snippet { --demo-snippet-demo: { position: relative; background: #E0E0E0; }; } paper-button { display: block; } kano-drop-down { z-index: 1; position: absolute; } kano-drop-down.four { --kano-drop-down-background-color: var(--color-rhubarb); --kano-drop-down-caret-padding: 4px; } kano-drop-down.seven { --kano-drop-down-caret-padding: 7px; } ul { list-style: none; margin: 0; padding: 20px; } </style> </custom-style>`; document.body.appendChild($_documentContainer.content); </script> </head> <body> <script type="module"> const $_documentContainer = document.createElement('template'); $_documentContainer.innerHTML = `<div class="vertical-section-container centered"> <h3>Aligned left</h3> <demo-snippet class="centered"> <template> <paper-button name="1">Toggle</paper-button> <kano-drop-down id="1"> <ul> <li>One</li> <li>Two</li> <li>Three</li> </ul> </kano-drop-down> </template> </demo-snippet> <h3>Aligned right</h3> <demo-snippet class="centered"> <template> <paper-button name="2">Toggle</paper-button> <kano-drop-down id="2" caret-align="right"> <ul> <li>One</li> <li>Two</li> <li>Three</li> </ul> </kano-drop-down> </template> </demo-snippet> <h3>Left caret padding of 4px</h3> <demo-snippet class="centered"> <template> <paper-button name="3">Toggle</paper-button> <kano-drop-down id="3" class="four"> <ul> <li>One</li> <li>Two</li> <li>Three</li> </ul> </kano-drop-down> </template> </demo-snippet> <h3>Right caret padding of 7px</h3> <demo-snippet class="centered"> <template> <paper-button name="4">Toggle</paper-button> <kano-drop-down id="4" caret-align="right" class="seven"> <img src="http://www.top13.net/wp-content/uploads/2015/10/perfectly-timed-funny-cat-pictures-5.jpg"> </kano-drop-down> </template> </demo-snippet> </div>`; document.body.appendChild($_documentContainer.content); </script> <script type="module"> import '@polymer/iron-flex-layout/iron-flex-layout.js'; import '@polymer/iron-demo-helpers/demo-snippet.js'; import '@polymer/iron-demo-helpers/demo-pages-shared-styles.js'; import '@polymer/paper-button/paper-button.js'; import '../../kano-style/typography.js'; import '../../kano-style/color.js'; import '../kano-drop-down.js'; var buttons = document.getElementsByTagName('paper-button'); for (let i = 0; i < buttons.length; i++) { buttons[i].addEventListener('tap', () => { ((button) => { document.getElementById(button.getAttribute('name')).toggle(); })(buttons[i]) }) } </script> </body> </html>