, 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); })(); Community Engaged Learning | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Community Engaged Learning

ÃÛÌÒapp students carry bags of yard waste cleaning up around Grand Rapids for Streetfest.

Service-Learning Center

Equipping students, faculty, and staff to learn reflectively, serve lovingly, and engage wholeheartedly with our neighbors in the pursuit of justice, vibrancy, and shalom in Grand Rapids and the world. 

49507 Initiative

Establishing vibrant educational programs with a specific focus on meeting the educational needs of adult residents in southeast Grand Rapids.

Wayfinder Program

Offering free college courses in art history, philosophy, literature, U.S. history, and critical thinking and writing for adults. 

Plaster Creek Stewards

Restoring the health and beauty of the Plaster Creek watershed through research, education, and on-the-ground restoration.

Community Nursing

Partnering ÃÛÌÒapp nursing students with four urban, culturally-diverse neighborhoods in Grand Rapids through hands-on clinical experience