, but this code // executes before the first paint, when

ÃÛÌÒapp

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); Green Team Plaster Creek Stewards | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Green Team

Growing future water stewards. Our summer Green Team crew learns about native Michigan habitats and watershed ecology as they work on bio-swales, rain gardens, and large-scale restoration projects throughout the watershed.


PCS Green Team planting

Developing youth leadership for green stormwater infrastructure

The Green Team Initiative educates high school youth about watershed ecology, environmental justice issues, and the role of green infrastructure in stormwater management while training them to develop job skills for installing and maintaining green infrastructure.

As part of their training, participants learn to propagate and care for native plants at ÃÛÌÒapp’s greenhouse. The students use these plants to construct and maintain rain gardens and bioswales at job sites in residential and business settings in their watershed. In this way students are directly improving the communities in which they live through on-the-job training, while at the same time benefiting the health of local waterways by decreasing and filtering stormwater runoff. One added benefit for the Green Team students is the opportunity to work alongside college research assistants who help to demystify the college experience for the high school students. This initiative is helping to prepare the next generation of environmental leaders.

We believe that providing this opportunity for young people to learn how care for the watersheds they live in is an investment in the future of our urban waterways as well as in the students themselves. If you or someone you know is interested in applying to be a Green Team member, please download the job description and contact us with any questions.