, 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); })(); Events Calendar | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Events Calendar

Aug 25–Nov 07, 2025

Visiting Artist Marissa Voytenko

Center Art Gallery
Free
The Center Art Gallery’s inaugural Visiting Artist is Marissa Voytenko, a Michigan-based artist whose encaustic paintings and sculptural works explore the intersection of the physical and spiritual worlds through striking geometric abstraction.
Sep 17, 2025

Preserve | Roots & Reels Greenhouse Party

7:00 pm–9:00 pm
Lake Drive Greenhouse
Join us in our tradition of a Greenhouse dinner & movie night!
Sep 17, 2025

Young Life New Leader Interest Meeting

7:00 pm–10:00 pm
Meeter Center Lecture Hall
Sep 17, 2025

French Film Festival - Quand vient l'automne / When Fall is Coming

7:00 pm–9:30 pm
Bytwerk Video Theater DeVos Communication Center ÃÛÌÒapp
FREE
Retired grandmother Michelle leads a quiet life in Burgundy until serving poisonous mushrooms to her daughter, Valérie. Valérie recovers but forbids contact with her son Lucas. Michelle enlists Marie Claude’s ex convict son Vincent to help, stirring family secrets, suspicions, redemption, and ambiguous grief in this subtly unsettling drama.