, 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

Aug 25–Nov 07, 2025

Visiting Artist Marissa Voytenko

8:00 pm–5:00 pm
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 27, 2025

Calvin Classic 5k and Youth Fun Run

8:30 am–10:00 am
Calvin Campus Roadways
Sep 27, 2025

Dice Museum Open Hours

9:00 am–12:00 pm
Bruce Dice Mineralogical Museum
Sep 27, 2025

Climbing Wall Open Hours

9:00 am–12:00 pm
Spoelhof Fieldhouse Complex
Sep 27, 2025

Preserve | 40th Anniversary Celebration

10:00 am–2:00 pm
Bunker Interpretive Center
We're honoring decades of conservation, education, and community.
Sep 27, 2025

Ecosystem Preserve Open House Celebration

10:00 am–2:00 pm
Ecosystem Preserve & Native Gardens
Sep 27, 2025

Women's Soccer vs Ohio Northern

12:00 pm–2:30 pm
Zuidema Soccer Field
Sep 27, 2025

Calvin Music Festival

2:00 pm–3:15 pm
Covenant Fine Arts Center Auditorium
Tickets will go on sale soon.
Sep 27, 2025

Men's Soccer vs DePauw

2:30 pm–4:30 pm
Zuidema Soccer Field
Sep 27, 2025

Football vs. Kalamazoo (Homecoming—SOLD OUT)

7:00 pm–10:30 pm
Calvin Soccer Stadium
The Homecoming football game is sold out!