Skip to content
This repository was archived by the owner on Jan 13, 2025. It is now read-only.

Commit 7c68674

Browse files
authored
feat(drawer): Remove obsolete pre-states styles; update demo pages (#1738)
BREAKING CHANGE: the "mdc-...-drawer--selected" classes are replaced by "mdc-list-item--activated", as it pertains to a specific list item and not the entire drawer.
1 parent f82998a commit 7c68674

File tree

7 files changed

+75
-64
lines changed

7 files changed

+75
-64
lines changed

demos/drawer/permanent-drawer-above-toolbar.html

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@
7777
<div class="mdc-permanent-drawer__toolbar-spacer"></div>
7878
<div class="mdc-list-group">
7979
<nav class="mdc-list">
80-
<a class="mdc-list-item mdc-permanent-drawer--selected" href="#">
80+
<a class="mdc-list-item mdc-list-item--activated" href="#">
8181
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">inbox</i>Inbox
8282
</a>
8383
<a class="mdc-list-item" href="#">
@@ -144,6 +144,22 @@ <h1 class="mdc-typography--display1">Permanent Drawer</h1>
144144
document.querySelector('#toggle-tall').addEventListener('click', function() {
145145
extraTall.style.display = extraTall.style.display ? '' : 'none';
146146
});
147+
148+
// Demonstrate application of --activated modifier to drawer menu items
149+
var activatedClass = 'mdc-list-item--activated';
150+
document.querySelector('.mdc-permanent-drawer').addEventListener('click', function(event) {
151+
var el = event.target;
152+
while (!el.classList.contains('mdc-list-item') && el) {
153+
el = el.parentNode;
154+
}
155+
if (el) {
156+
var activatedItem = document.querySelector('.' + activatedClass);
157+
if (activatedItem) {
158+
activatedItem.classList.remove(activatedClass);
159+
}
160+
event.target.classList.add(activatedClass);
161+
}
162+
});
147163
</script>
148164
</body>
149165
</html>

demos/drawer/permanent-drawer-below-toolbar.html

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181
<nav class="mdc-permanent-drawer">
8282
<div class="mdc-list-group">
8383
<nav class="mdc-list">
84-
<a class="mdc-list-item mdc-permanent-drawer--selected" href="#">
84+
<a class="mdc-list-item mdc-list-item--activated" href="#">
8585
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">inbox</i>Inbox
8686
</a>
8787
<a class="mdc-list-item" href="#">
@@ -135,6 +135,22 @@ <h1 class="mdc-typography--display1">Permanent Drawer</h1>
135135
document.querySelector('#toggle-tall').addEventListener('click', function() {
136136
extraTall.style.display = extraTall.style.display ? '' : 'none';
137137
});
138+
139+
// Demonstrate application of --activated modifier to drawer menu items
140+
var activatedClass = 'mdc-list-item--activated';
141+
document.querySelector('.mdc-permanent-drawer').addEventListener('click', function(event) {
142+
var el = event.target;
143+
while (!el.classList.contains('mdc-list-item') && el) {
144+
el = el.parentNode;
145+
}
146+
if (el) {
147+
var activatedItem = document.querySelector('.' + activatedClass);
148+
if (activatedItem) {
149+
activatedItem.classList.remove(activatedClass);
150+
}
151+
event.target.classList.add(activatedClass);
152+
}
153+
});
138154
</script>
139155
</body>
140156
</html>

demos/drawer/persistent-drawer.html

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
<div class="mdc-persistent-drawer__toolbar-spacer"></div>
6262
<div class="mdc-list-group">
6363
<nav class="mdc-list">
64-
<a class="mdc-list-item mdc-persistent-drawer--selected" href="#">
64+
<a class="mdc-list-item mdc-list-item--activated" href="#">
6565
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">inbox</i>Inbox
6666
</a>
6767
<a class="mdc-list-item" href="#">
@@ -123,6 +123,22 @@ <h1 class="mdc-typography--display1">Persistent Drawer</h1>
123123
drawerEl.addEventListener('MDCPersistentDrawer:close', function() {
124124
console.log('Received MDCPersistentDrawer:close');
125125
});
126+
127+
// Demonstrate application of --activated modifier to drawer menu items
128+
var activatedClass = 'mdc-list-item--activated';
129+
document.querySelector('.mdc-persistent-drawer__drawer').addEventListener('click', function(event) {
130+
var el = event.target;
131+
while (!el.classList.contains('mdc-list-item') && el) {
132+
el = el.parentNode;
133+
}
134+
if (el) {
135+
var activatedItem = document.querySelector('.' + activatedClass);
136+
if (activatedItem) {
137+
activatedItem.classList.remove(activatedClass);
138+
}
139+
event.target.classList.add(activatedClass);
140+
}
141+
});
126142
</script>
127143
</div>
128144
</body>

demos/drawer/temporary-drawer.html

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
</header>
6060
<nav class="mdc-temporary-drawer__content mdc-list-group">
6161
<div id="icon-with-text-demo" class="mdc-list">
62-
<a class="mdc-list-item mdc-temporary-drawer--selected" href="#">
62+
<a class="mdc-list-item mdc-list-item--activated" href="#">
6363
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">inbox</i>Inbox
6464
</a>
6565
<a class="mdc-list-item" href="#">
@@ -108,6 +108,22 @@ <h1 class="mdc-typography--display1">Temporary Drawer</h1>
108108
drawerEl.addEventListener('MDCTemporaryDrawer:close', function() {
109109
console.log('Received MDCTemporaryDrawer:close');
110110
});
111+
112+
// Demonstrate application of --activated modifier to drawer menu items
113+
var activatedClass = 'mdc-list-item--activated';
114+
document.querySelector('.mdc-temporary-drawer__drawer').addEventListener('click', function(event) {
115+
var el = event.target;
116+
while (!el.classList.contains('mdc-list-item') && el) {
117+
el = el.parentNode;
118+
}
119+
if (el) {
120+
var activatedItem = document.querySelector('.' + activatedClass);
121+
if (activatedItem) {
122+
activatedItem.classList.remove(activatedClass);
123+
}
124+
event.target.classList.add(activatedClass);
125+
}
126+
});
111127
</script>
112128
</body>
113129
</html>

demos/theme/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
</header>
4545
<nav class="mdc-temporary-drawer__content mdc-list-group">
4646
<div class="mdc-list">
47-
<a class="mdc-list-item mdc-temporary-drawer--selected" href="#">
47+
<a class="mdc-list-item mdc-list-item--activated" href="#">
4848
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">inbox</i>Inbox
4949
</a>
5050
<a class="mdc-list-item" href="#">

packages/mdc-drawer/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ than mobile.
4949
<div class="mdc-permanent-drawer__toolbar-spacer"></div>
5050
<div class="mdc-permanent-drawer__content">
5151
<nav id="icon-with-text-demo" class="mdc-list">
52-
<a class="mdc-list-item mdc-permanent-drawer--selected" href="#">
52+
<a class="mdc-list-item mdc-list-item--activated" href="#">
5353
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">inbox</i>Inbox
5454
</a>
5555
<a class="mdc-list-item" href="#">
@@ -75,7 +75,7 @@ Permanent drawers can also be set below the toolbar:
7575
<div class="content">
7676
<nav class="mdc-permanent-drawer mdc-typography">
7777
<nav id="icon-with-text-demo" class="mdc-list">
78-
<a class="mdc-list-item mdc-permanent-drawer--selected" href="#">
78+
<a class="mdc-list-item mdc-list-item--activated" href="#">
7979
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">inbox</i>Inbox
8080
</a>
8181
<a class="mdc-list-item" href="#">
@@ -112,7 +112,7 @@ Persistent drawers are acceptable for all sizes larger than mobile.
112112
</div>
113113
</header>
114114
<nav id="icon-with-text-demo" class="mdc-persistent-drawer__content mdc-list">
115-
<a class="mdc-list-item mdc-persistent-drawer--selected" href="#">
115+
<a class="mdc-list-item mdc-list-item--activated" href="#">
116116
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">inbox</i>Inbox
117117
</a>
118118
<a class="mdc-list-item" href="#">
@@ -246,7 +246,7 @@ for any display size.
246246
</div>
247247
</header>
248248
<nav id="icon-with-text-demo" class="mdc-temporary-drawer__content mdc-list">
249-
<a class="mdc-list-item mdc-temporary-drawer--selected" href="#">
249+
<a class="mdc-list-item mdc-list-item--activated" href="#">
250250
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">inbox</i>Inbox
251251
</a>
252252
<a class="mdc-list-item" href="#">
@@ -276,7 +276,7 @@ very useful for visual alignment and consistency. Note that you can place conten
276276
<div class="mdc-temporary-drawer__toolbar-spacer"></div>
277277

278278
<nav id="icon-with-text-demo" class="mdc-temporary-drawer__content mdc-list">
279-
<a class="mdc-list-item mdc-temporary-drawer--selected" href="#">
279+
<a class="mdc-list-item mdc-list-item--activated" href="#">
280280
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">inbox</i>Inbox
281281
</a>
282282
<a class="mdc-list-item" href="#">
@@ -303,7 +303,7 @@ for placing the actual content, which will be bottom-aligned.
303303
</header>
304304

305305
<nav id="icon-with-text-demo" class="mdc-temporary-drawer__content mdc-list">
306-
<a class="mdc-list-item mdc-temporary-drawer--selected" href="#">
306+
<a class="mdc-list-item mdc-list-item--activated" href="#">
307307
<i class="material-icons mdc-list-item__graphic" aria-hidden="true">inbox</i>Inbox
308308
</a>
309309
<a class="mdc-list-item" href="#">

packages/mdc-drawer/_mixins.scss

Lines changed: 0 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -71,26 +71,13 @@
7171
}
7272

7373
@mixin mdc-drawer-list_() {
74-
.mdc-list-group,
75-
.mdc-list {
76-
padding-right: 0;
77-
padding-left: 0;
78-
}
79-
8074
.mdc-list-item {
8175
@include mdc-typography(body2);
8276

8377
position: relative;
84-
padding: 0 16px;
8578
outline: none;
8679
color: inherit;
8780
text-decoration: none;
88-
89-
// Remove the 16px left offset since we already expand the padding of the list item to take up
90-
// the width of the drawer.
91-
&.mdc-ripple-upgraded {
92-
left: 0;
93-
}
9481
}
9582

9683
.mdc-list-item__graphic {
@@ -100,46 +87,6 @@
10087
color: rgba(255, 255, 255, .54);
10188
}
10289
}
103-
104-
// stylelint-disable selector-no-qualifying-type
105-
&--selected.mdc-list-item,
106-
&--selected.mdc-list-item .mdc-list-item__graphic {
107-
@include mdc-theme-prop(color, primary);
108-
}
109-
// stylelint-enable selector-no-qualifying-type
110-
111-
/* TODO(sgomes): Revisit when we have interactive lists. */
112-
.mdc-list-item::before {
113-
position: absolute;
114-
top: 0;
115-
left: 0;
116-
width: 100%;
117-
height: 100%;
118-
transition: mdc-animation-exit-temporary(opacity, 120ms);
119-
border-radius: inherit;
120-
background: currentColor;
121-
opacity: 0;
122-
content: "";
123-
}
124-
125-
.mdc-list-item:focus::before {
126-
transition: mdc-animation-enter(opacity, 180ms);
127-
opacity: .12;
128-
}
129-
130-
.mdc-list-item:active::before {
131-
/*
132-
Slightly darker value for visual distinction.
133-
This allows a full base that has distinct modes.
134-
Progressive enhancement with ripples will provide complete button spec alignment.
135-
*/
136-
transition: mdc-animation-enter(opacity, 180ms);
137-
opacity: .18;
138-
}
139-
140-
.mdc-list-item:active:focus::before {
141-
transition-timing-function: $mdc-animation-standard-curve-timing-function;
142-
}
14390
}
14491

14592
@mixin mdc-drawer-base_() {

0 commit comments

Comments
 (0)