, 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

Mar 02–Apr 18, 2026

The Art of Scott Erickson

Center Art Gallery
Free
In partnership with the Festival of Faith and Writing, the Center Art Gallery brings you select works of Scott Erickson.
Apr 07–Apr 18, 2026

CAA/CALL Travel: Red Rocks and Canyons in the American Southwest

Around the World with Calvin: 150th Anniversary Tour
Apr 16–Apr 18, 2026

Festival of Faith & Writing

Âé¶¹Çø
Join us for the Festival of Faith & Writing, April 16-18, 2026.
Apr 18–Apr 28, 2026

CAA/CALL Travel: Peru and the Wonders of the Andes (Full)

Around the World with Calvin: 150th Anniversary Tour
Apr 18, 2026

Softball vs Olivet

1:00 pm–3:00 pm
Gainey Calvin Softball Field
Apr 18, 2026

Preserve | Art Workshop

1:00 pm–3:00 pm
Bunker Interpretive Center
Join Us for Creative Exploration!
Apr 18, 2026

The Lion King with Broadway Grand Rapids

2:00 pm–4:45 pm
$50 balcony; $95 mezzanine
Feel the love with Disney's The Lion King!
Apr 18, 2026

Softball vs Olivet

3:00 pm–5:00 pm
Gainey Calvin Softball Field