Directory

button - Vaadin Add-on Directory

Polymer-based web components for D2L buttons button - Vaadin Add-on Directory
**[ This description is mirrored from README.md at [github.com/BrightspaceUI/button](https://github.com//BrightspaceUI/button/blob/v5.4.2/README.md) on 2019-05-22 ]** # d2l-button [![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/BrightspaceUI/button) [![Bower version][bower-image]][bower-url] [![Build status][ci-image]][ci-url] A series of [Polymer](https://www.polymer-project.org/1.0/)-based web components and [Sass](http://sass-lang.com/) mixins for D2L buttons. ![screenshot of button component](/screenshots/regular-buttons.png?raw=true) ![screenshot of subtle button component](/screenshots/subtle-buttons.png?raw=true) ![screenshot of icon button component](/screenshots/icon-buttons.png?raw=true) For further information on this and other components, refer to [The Brightspace UI Guide](https://github.com/BrightspaceUI/guide/wiki). ## Installation `d2l-button` can be installed from [Bower][bower-url]: ```shell bower install d2l-button ``` ## Usage Include the [webcomponents.js](http://webcomponents.org/polyfills/) "lite" polyfill (for browsers who don't natively support web components), then import `d2l-button.html`: ### Button ```html ``` The `` element can be used just like the native `button` element, but also supports the `primary` attribute for denoting the primary button. Normal button: ![screenshot of normal buttons](/screenshots/button.png?raw=true) Primary button: ![screenshot of primary buttons](/screenshots/button-primary.png?raw=true) ```html Primary Secondary Disabled ``` As an alternative to the web component, a Sass mixin can be used to apply button styles to your button elements: ```sass @import 'bower_components/d2l-button/d2l-button.scss'; .my-button { @include d2l-button(); } ``` The `primary` and `disabled` attributes work the same way as they do with the web component. ### Subtle Button ```html ``` The subtle button shows text with an optional icon, and can be added by using the `` custom element. It should be used for advanced or de-emphasized actions. - It is strongly recommended to use `text` and `icon` as opposed to putting content in the `slot` to ensure that the recommended subtle button style is maintained. Without icon: ![screenshot of subtle buttons without icons](/screenshots/button-subtle.png?raw=true) With icon: ![screenshot of subtle buttons with icons](/screenshots/button-subtle-icons.png?raw=true) With icon on right: ![screenshot of subtle buttons with icon on the right](/screenshots/button-subtle-icons-right.png?raw=true) Alignment (bottom uses h-align="text") ![screenshot of subtle buttons with different alignments](/screenshots/button-subtle-align.png?raw=true) ```html ``` As an alternative to the web component, a Sass mixin can be used to apply button styles to your button elements: ```sass @import 'bower_components/d2l-button/d2l-button.scss'; .my-button { @include d2l-button-subtle(); } ``` Usage is slightly different in that the text and icon attributes are not used, and instead their content is added within the button. For example: ```html ``` ### Icon Button ```html ``` The icon button shows an icon with an aria-label, and can be added by using the `` custom element. It should be used when icons perform a clickable action. ![screenshot of icon buttons](/screenshots/button-icon.png?raw=true) Alignment (bottom uses h-align="text") ![screenshot of icon buttons with different alignments](/screenshots/button-icon-align.png?raw=true) Translucent (for use on rich/busy backgrounds, specify the `translucent` attribute) ![screenshot of icon buttons with different alignments](/screenshots/button-icon-translucent.png?raw=true) ```html ``` As an alternative to the web component, a Sass mixin can be used to apply button styles to your button elements: ```sass @import 'bower_components/d2l-button/d2l-button.scss'; .my-button-icon { @include d2l-button-icon(); } ``` Usage is slightly different in that the text and icon attributes are not used. Instead, the icon is added within the button and the aria-label is added as a button attribute. For example: ```html ``` ### Floating Workflow Buttons Floating workflow buttons behavior can be added by using the `` custom element. When the normal position of the workflow buttons is below the bottom edge of the view-port, they'll dock at the bottom edge. When the normal position becomes visible, they'll undock. ![screenshot of floating buttons](/screenshots/floating-buttons.png?raw=true) ```html ``` Include the `` container at the bottom of the page, and add your workflow `button` elements: ```html Save Cancel ``` ## Developing, Testing and Contributing After cloning the repo, run `npm install` to install dependencies. If you don't have it already, install the [Polymer CLI](https://www.polymer-project.org/2.0/docs/tools/polymer-cli) globally: ```shell npm install -g polymer-cli ``` To start a [local web server](https://www.polymer-project.org/2.0/docs/tools/polymer-cli-commands#serve) that hosts the demo page and tests: ```shell polymer serve ``` To lint ([eslint](http://eslint.org/) and [Polymer lint](https://www.polymer-project.org/2.0/docs/tools/polymer-cli-commands#lint)): ```shell npm run lint ``` To run unit tests locally using [Polymer test](https://www.polymer-project.org/2.0/docs/tools/polymer-cli-commands#tests): ```shell polymer test --skip-plugin sauce ``` To lint AND run local unit tests: ```shell npm test ``` [bower-url]: http://bower.io/search/?q=d2l-button [bower-image]: https://badge.fury.io/bo/d2l-button.svg [ci-url]: https://travis-ci.org/BrightspaceUI/button [ci-image]: https://travis-ci.org/BrightspaceUI/button.svg?branch=master ## Versioning Commits and PR merges to master will automatically do a minor version bump which will: * Update the version in `package.json` * Add a tag matching the new version * Create a github release matching the new version By using either **[increment major]** or **[increment patch]** notation inside your merge message, you can overwrite the default version upgrade of minor to the position of your choice.