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

Â鶹Çø

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 | Â鶹Çø

Â鶹Çø

Skip to main content

Events Calendar

Apr 25–May 10, 2025

BFA & BA Senior Exhibition

10:00 am–8:00 pm
1795 Knollcrest Circle Southeast, Grand Rapids, MI 49546.
May 01–May 10, 2025

CAA/CALL Travel: The History and Beauty of Scotland (full)

Explore Scotland—magnificent cities, castles, and more
May 01, 2025

International Student Webinar: Immigration

8:00 am–9:00 am
Our international admissions team is excited to host weekly webinars to talk about the steps to complete the enrollment process—with this week's focus on the immigration process! Plus, we'll have time for questions.
May 01, 2025

MIAA Outdoor Track & Field Championships

9:00 am–5:00 pm
Alma, MI
May 01, 2025

Chapel: Senior Songfest

9:50 am–10:10 am
Chapel Sanctuary
May 01, 2025

Sustainability Showcase

4:00 pm–5:30 pm
Chapel Sanctuary
May 01, 2025

Sustainability Showcase

4:00 pm
May 01, 2025

Sustainability Showcase

5:00 pm–7:00 pm
Chapel Multi-Purpose Room (Undercroft)
May 01, 2025

Cultivating Learning Communities of Belonging, Edith VanderBoom

6:15 pm–9:00 pm
Meeter Center Lecture Hall
May 01, 2025

Baseball vs Hope

7:00 pm–10:00 pm
LMCU Ballpark
May 01, 2025

The Rivalry at LMCU Ballpark

7:00 pm–9:30 pm
Let's play ball!