Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(icon-button): Add new package #2748

Merged
merged 32 commits into from
May 25, 2018
Merged
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
c90a152
WIP: New component
williamernest Apr 27, 2018
2014853
WIP: New Component
williamernest Apr 27, 2018
c219043
WIP: Revert changes to package-lock.json
williamernest Apr 27, 2018
bd863c2
WIP:Temp
williamernest Apr 30, 2018
a3f2411
WIP: Adding button--icon to button package
williamernest May 1, 2018
2379283
WIP: Move icon button to it's own package
williamernest May 16, 2018
ff6d902
WIP: remove package-lock
williamernest May 16, 2018
7b6ce1e
Merge branch 'master' into feat/icon-button/add-new-package
williamernest May 16, 2018
3c65ab7
feat(icon-toggle): Update tests, and various uses of icon toggle
williamernest May 16, 2018
da51dd9
feat(icon-button): Update for comments
williamernest May 16, 2018
02192df
feat(icon-button): Update for comments. Replace theme uses. Add demo
williamernest May 16, 2018
21e3b83
feat(icon-button): Update for comments
williamernest May 16, 2018
a3254d3
feat(icon-button): Update for comments
williamernest May 17, 2018
a27180a
feat(icon-button): Revert theme style changes
williamernest May 17, 2018
b9d1890
feat(icon-button): Update for comments
williamernest May 17, 2018
d16bd67
feat(icon-button): Update tests
williamernest May 17, 2018
b2f11f0
WIP Add common.js to avoid # jumping to top
May 17, 2018
23cccd7
feat(icon-button): Change icon button to display inline block
williamernest May 18, 2018
8c99a1a
feat(icon-button): Update for comments
williamernest May 18, 2018
27c8ae9
WIP: Update for comments
williamernest May 18, 2018
c7436f5
Merge branch 'master' into feat/icon-button/add-new-package
williamernest May 18, 2018
1a12ff3
feat(icon-button): Update for commentS
williamernest May 21, 2018
9fae22c
Update
williamernest May 21, 2018
ac281de
feat(icon-button): Remove trailing whitespace
williamernest May 22, 2018
d005b41
feat(icon-button): Update
williamernest May 23, 2018
0c1a72a
feat(icon-button): Update for comments
williamernest May 23, 2018
28307a6
feat(icon-button): Update
williamernest May 23, 2018
945d7a6
feat(icon-button): Update
williamernest May 24, 2018
e09096e
WIP Update a couple more icon-toggle references in docs
May 24, 2018
8721628
Merge branch 'master' into feat/icon-button/add-new-package
kfranqueiro May 24, 2018
49b3be3
Merge branch 'master' into feat/icon-button/add-new-package
williamernest May 24, 2018
2a95b2c
Merge branch 'master' into feat/icon-button/add-new-package
williamernest May 25, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 29 additions & 35 deletions demos/card.html
Original file line number Diff line number Diff line change
Expand Up @@ -58,26 +58,22 @@ <h3 class="demo-card__subtitle mdc-typography--subtitle2">by Kurt Wagner</h3>
<button class="mdc-button mdc-card__action mdc-card__action--button">Bookmark</button>
</div>
<div class="mdc-card__action-icons">
<i class="mdc-icon-toggle material-icons mdc-card__action mdc-card__action--icon"
tabindex="0"
role="button"
<button class="mdc-icon-button material-icons mdc-card__action mdc-card__action--icon"
aria-pressed="false"
aria-label="Add to favorites"
title="Add to favorites"
data-toggle-on='{"content": "favorite", "label": "Remove from favorites"}'
data-toggle-off='{"content": "favorite_border", "label": "Add to favorites"}'>
favorite_border
</i>
<i class="material-icons mdc-card__action mdc-card__action--icon mdc-ripple-surface"
tabindex="0"
role="button"
data-toggle-on-content="favorite"
data-toggle-on-label="Remove from favorites"
data-toggle-off-content="favorite_border"
data-toggle-off-label="Add to favorites">
favorite_border
</button>
<button class="mdc-icon-button material-icons mdc-card__action mdc-card__action--icon"
data-mdc-ripple-is-unbounded
title="Share">share</i>
<i class="material-icons mdc-card__action mdc-card__action--icon mdc-ripple-surface"
tabindex="0"
role="button"
title="Share">share</button>
<button class="mdc-icon-button material-icons mdc-card__action mdc-card__action--icon"
data-mdc-ripple-is-unbounded
title="More options">more_vert</i>
title="More options">more_vert</button>
</div>
</div>
</div>
Expand Down Expand Up @@ -152,31 +148,29 @@ <h2 class="demo-card-article__title mdc-typography--headline5">Asia's clean ener
</div>
</a>
<div class="mdc-card__actions mdc-card__action-icons">
<i class="mdc-icon-toggle material-icons mdc-card__action mdc-card__action--icon"
tabindex="0"
role="button"
<button class="mdc-icon-button material-icons mdc-card__action mdc-card__action--icon"
aria-pressed="false"
aria-label="Add to favorites"
title="Add to favorites"
data-toggle-on='{"content": "favorite", "label": "Remove from favorites"}'
data-toggle-off='{"content": "favorite_border", "label": "Add to favorites"}'>
data-toggle-on-content="favorite"
data-toggle-on-label="Remove from favorites"
data-toggle-off-content="favorite_border"
data-toggle-off-label="Add to favorites">
favorite_border
</i>
<i class="mdc-icon-toggle material-icons mdc-card__action mdc-card__action--icon"
tabindex="0"
role="button"
</button>
<button class="mdc-icon-button material-icons mdc-card__action mdc-card__action--icon"
aria-pressed="false"
aria-label="Add bookmark"
title="Add bookmark"
data-toggle-on='{"content": "bookmark", "label": "Remove bookmark"}'
data-toggle-off='{"content": "bookmark_border", "label": "Add bookmark"}'>
data-toggle-on-content="bookmark"
data-toggle-on-label="Remove bookmark"
data-toggle-off-content="bookmark_border"
data-toggle-off-label="Add bookmark">
bookmark_border
</i>
<i class="material-icons mdc-card__action mdc-card__action--icon mdc-ripple-surface"
tabindex="0"
role="button"
</button>
<button class="mdc-icon-button material-icons mdc-card__action mdc-card__action--icon"
data-mdc-ripple-is-unbounded
title="Share">share</i>
title="Share">share</button>
</div>
</div>

Expand Down Expand Up @@ -245,15 +239,15 @@ <h2 class="demo-card-article__title mdc-typography--headline5">Asia's clean ener
mdc.ripple.MDCRipple.attachTo(surface);
});

[].forEach.call(document.querySelectorAll('.mdc-icon-toggle'), function(iconToggle) {
mdc.iconToggle.MDCIconToggle.attachTo(iconToggle);
[].forEach.call(document.querySelectorAll('.mdc-icon-button[data-toggle-on-content]'), function(iconButtonToggle) {
mdc.iconButton.MDCIconButtonToggle.attachTo(iconButtonToggle);
});

document.addEventListener('MDCIconToggle:change', function(evt) {
document.addEventListener('MDCIconButtonToggle:change', function(evt) {
evt.target.setAttribute('title', evt.target.getAttribute('aria-label'));
});

[].forEach.call(document.querySelectorAll('.mdc-ripple-surface'), function(surface) {
[].forEach.call(document.querySelectorAll('.mdc-ripple-surface, [data-mdc-ripple-is-unbounded]'), function(surface) {
mdc.ripple.MDCRipple.attachTo(surface);
});

Expand Down
2 changes: 1 addition & 1 deletion demos/card.scss
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
@import "../packages/mdc-card/mdc-card";
@import "../packages/mdc-checkbox/mdc-checkbox";
@import "../packages/mdc-form-field/mdc-form-field";
@import "../packages/mdc-icon-toggle/mdc-icon-toggle";
@import "../packages/mdc-icon-button/mdc-icon-button";
@import "../packages/mdc-list/mdc-list";
@import "../packages/mdc-ripple/mdc-ripple";

Expand Down
280 changes: 280 additions & 0 deletions demos/icon-button.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,280 @@
<!DOCTYPE html>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I appreciate that this file was added (especially in this case where it's effectively replacing an existing component), but is it feasible to fast-follow this PR with screenshot testing page(s)?

<!--
Copyright 2018 Google Inc. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License
-->
<html>
<head>
<meta charset="utf-8">
<title>Icon Button - Material Components Demo</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/png" href="/images/logo_components_color_2x_web_48dp.png">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto+Mono">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.css">
<link rel="stylesheet" href="/assets/icon-button.css">
<script src="/ready.js"></script>
</head>
<body class="mdc-typography">
<header class="mdc-toolbar mdc-toolbar--fixed">
<div class="mdc-toolbar__row">
<section class="mdc-toolbar__section mdc-toolbar__section--align-start">
<a href="/" class="catalog-back mdc-toolbar__menu-icon"><i class="material-icons">&#xE5C4;</i></a>
<span class="mdc-toolbar__title catalog-title">Icon Buttons</span>
</section>
</div>
</header>
<main>
<div class="mdc-toolbar-fixed-adjust"></div>
<section class="hero">
<div class="demo-wrapper">
<button class="mdc-icon-button material-icons"
aria-label="Add to favorites"
aria-pressed="false"
data-demo-toggle
data-toggle-on-content="favorite"
data-toggle-on-label="Remove From Favorites"
data-toggle-off-content="favorite_border"
data-toggle-off-label="Add to Favorites">
<!-- Prevent FOUC by putting the initial content in -->
favorite_border
</button>
</div>
</section>

<section class="example">
<div>
<div>
<h1 class="mdc-typography--headline5">Buttons</h1>
</div>
<div class="toggle-examples-container">
<div class="toggle-example">
<h2 class="mdc-typography--headline6">Material Icons</h2>
<div class="demo-wrapper">
<button class="mdc-icon-button material-icons"
role="button"
aria-label="Add to favorites"
aria-pressed="false">
favorite
</button>
<button class="mdc-icon-button material-icons"
aria-label="Airplane Mode active"
aria-pressed="false">
airplanemode_active
</button>
<a href="#"
class="mdc-icon-button material-icons"
aria-label="Transit directions"
aria-pressed="false">
directions_transit
</a>
</div>
</div>

<div class="toggle-example">
<h2 class="mdc-typography--headline6">SVG Icon</h2>
<div class="demo-wrapper">
<button class="mdc-icon-button"
aria-label="Add to favorites"
aria-pressed="false">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path fill="none" d="M0 0h24v24H0z"/>
<path d="M23 12c0-6.07-4.93-11-11-11S1 5.93 1 12s4.93 11 11 11 11-4.93 11-11zM5 17.64C3.75 16.1 3 14.14 3 12c0-2.13.76-4.08 2-5.63v11.27zM17.64 5H6.36C7.9 3.75 9.86 3 12 3s4.1.75 5.64 2zM12 14.53L8.24 7h7.53L12 14.53zM17 9v8h-4l4-8zm-6 8H7V9l4 8zm6.64 2c-1.55 1.25-3.51 2-5.64 2s-4.1-.75-5.64-2h11.28zM21 12c0 2.14-.75 4.1-2 5.64V6.37c1.24 1.55 2 3.5 2 5.63z"/>
</svg>
</button>
</div>
</div>

<div class="toggle-example">
<h2 class="mdc-typography--headline6">Disabled Buttons</h2>
<div class="demo-wrapper">
<button class="mdc-icon-button material-icons"
aria-label="Airplane Mode active"
aria-pressed="false"
disabled>
airplanemode_active
</button>
<button class="mdc-icon-button"
aria-label="Add to favorites"
aria-pressed="false"
disabled>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path fill="none" d="M0 0h24v24H0z"/>
<path d="M23 12c0-6.07-4.93-11-11-11S1 5.93 1 12s4.93 11 11 11 11-4.93 11-11zM5 17.64C3.75 16.1 3 14.14 3 12c0-2.13.76-4.08 2-5.63v11.27zM17.64 5H6.36C7.9 3.75 9.86 3 12 3s4.1.75 5.64 2zM12 14.53L8.24 7h7.53L12 14.53zM17 9v8h-4l4-8zm-6 8H7V9l4 8zm6.64 2c-1.55 1.25-3.51 2-5.64 2s-4.1-.75-5.64-2h11.28zM21 12c0 2.14-.75 4.1-2 5.64V6.37c1.24 1.55 2 3.5 2 5.63z"/>
</svg>
</button>
</div>
</div>

<div class="toggle-example">
<h2 class="mdc-typography--headline6">Larger Buttons</h2>
<div class="demo-wrapper">
<button class="mdc-icon-button material-icons demo-icon-button-large"
aria-label="Airplane Mode active"
aria-pressed="false">
airplanemode_active
</button>
<button class="mdc-icon-button demo-icon-button-large"
aria-label="Add to favorites"
aria-pressed="false">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path fill="none" d="M0 0h24v24H0z"/>
<path d="M23 12c0-6.07-4.93-11-11-11S1 5.93 1 12s4.93 11 11 11 11-4.93 11-11zM5 17.64C3.75 16.1 3 14.14 3 12c0-2.13.76-4.08 2-5.63v11.27zM17.64 5H6.36C7.9 3.75 9.86 3 12 3s4.1.75 5.64 2zM12 14.53L8.24 7h7.53L12 14.53zM17 9v8h-4l4-8zm-6 8H7V9l4 8zm6.64 2c-1.55 1.25-3.51 2-5.64 2s-4.1-.75-5.64-2h11.28zM21 12c0 2.14-.75 4.1-2 5.64V6.37c1.24 1.55 2 3.5 2 5.63z"/>
</svg>
</button>
</div>
</div>
</div>
</div>
</section>

<section class="example">
<div>
<div>
<h1 class="mdc-typography--headline5">Button Toggles</h1>
</div>
<div class="toggle-examples-container">
<div class="toggle-example">
<h2 class="mdc-typography--headline6">Using Material Icons</h2>
<div class="demo-wrapper">
<button
id="add-to-favorites"
class="mdc-icon-button material-icons"
aria-label="Add to favorites"
aria-pressed="false"
data-demo-toggle
data-toggle-on-content="favorite"
data-toggle-on-label="Remove From Favorites"
data-toggle-off-content="favorite_border"
data-toggle-off-label="Add to Favorites">
<!-- Prevent FOUC by putting the initial content in -->
favorite_border
</button>
</div>
<p>Favorited? <span id="favorited-status">no</span></p>
</div>

<div class="toggle-example">
<h2 class="mdc-typography--headline6">Using Font Awesome</h2>
<div class="demo-wrapper">
<button class="mdc-icon-button mdc-icon-button--on"
aria-label="Unstar this item"
aria-pressed="true" data-demo-toggle
data-icon-inner-selector=".fa"
data-toggle-on-class="fa-star"
data-toggle-on-label="Unstar this item"
data-toggle-off-class="fa-star-o"
data-toggle-off-label="Star this item">
<i class="fa fa-star" aria-hidden="true"></i>
</button>
</div>
</div>

<div class="toggle-example">
<h2 class="mdc-typography--headline6">Disabled Icons</h2>
<div class="demo-wrapper">
<button class="mdc-icon-button material-icons"
aria-label="Add to favorites"
aria-pressed="false"
data-demo-toggle
disabled
data-toggle-on-content="favorite"
data-toggle-on-label="Remove From Favorites"
data-toggle-off-content="favorite_border"
data-toggle-off-label="Add to Favorites">
favorite_border
</button>
</div>
</div>
</div>

<div class="toggle-example">
<h2 class="mdc-typography--headline6">Additional Color Combinations</h2>
<div id="demo-color-combos">
<div id="light-on-bg" class="demo-color-combo">
<div>
<button class="mdc-icon-button material-icons mdc-theme--on-primary"
aria-label="Add to favorites"
aria-pressed="false"
data-demo-toggle
data-toggle-on-content="favorite"
data-toggle-on-label="Remove From Favorites"
data-toggle-off-content="favorite_border"
data-toggle-off-label="Add to Favorites">
favorite_border
</button>
</div>
<div class="mdc-theme--on-primary">Light icon on background</div>
</div>
<div id="dark-on-bg" class="demo-color-combo">
<div class="mdc-theme--primary">
<button class="mdc-icon-button material-icons"
aria-label="Add to favorites"
aria-pressed="false"
data-demo-toggle
data-toggle-on-content="favorite"
data-toggle-on-label="Remove From Favorites"
data-toggle-off-content="favorite_border"
data-toggle-off-label="Add to Favorites">
favorite_border
</button>
</div>
<div>Dark icon on background</div>
</div>
<div id="custom-color-combo" class="demo-color-combo">
<div>
<button class="mdc-icon-button material-icons"
aria-label="Add to favorites"
aria-pressed="false"
data-demo-toggle
data-toggle-on-content="favorite"
data-toggle-on-label="Remove From Favorites"
data-toggle-off-content="favorite_border"
data-toggle-off-label="Add to Favorites">
favorite_border
</button>
</div>
<div>Custom color</div>
</div>
</div>
</div>
</div>
</section>
</main>

<script src="/assets/material-components-web.js" async></script>
<script src="/assets/common.js" async></script>
<script>
demoReady(function() {
var nodes = document.querySelectorAll('[data-demo-toggle]');
for (var i = 0, node; node = nodes[i]; i++) {
mdc.iconButton.MDCIconButtonToggle.attachTo(node);
}

var buttons = document.querySelectorAll('.mdc-icon-button:not([data-demo-toggle])');
for (var x = 0, button; button = buttons[x]; x++) {
mdc.ripple.MDCRipple.attachTo(button, {isUnbounded: true});
}

var addToFavorites = document.getElementById('add-to-favorites');
var favoritedStatus = document.getElementById('favorited-status');
addToFavorites.addEventListener('MDCIconButtonToggle:change', function(evt) {
var newStatus = evt.detail.isOn ? 'yes' : 'no';
favoritedStatus.textContent = newStatus;
});
});
</script>
</body>
</html>
Loading