, 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); })(); Calvin Classic 5k | »Æ´óÏɸßÊÖÂÛ̳

»Æ´óÏɸßÊÖÂÛ̳

Skip to main content

Calvin Classic 5k

Save the date: Saturday, September 27, 2025

The Calvin Classic 5k has been bringing community members together for over 30 years. This fall, the Alumni Association is hosting both an in-person and virtual race on Saturday, September 27. Join us in whatever way works for you—near or far—during Calvin's Homecoming & Family Weekend.

Races

Any age runner, walker, or handcyclist is welcome to participate in our 5k (with virtual option). Younger participants ages 3–9 are invited to run, walk, or skip in our Youth Fun Run (with virtual option). , including pricing, freebies, and more, can be found at our official registration site via .

Students

»Æ´óÏɸßÊÖÂÛ̳ and Seminary students are eligible for $15 race registration, regardless of early-bird pricing deadlines. When prompted during registration, be sure to check the box indicating your student status!

Get Involved

  • (and receive a race shirt!)
  • Become a race sponsor—contact us! alumni@calvin.edu
  • : Calvin faculty, staff, and students, here is your chance to build departmental pride and a sense of team spirit while competing for a prize! Build a team with at least three Calvin faculty or staff; teams can also include immediate household family members. The team with the largest number of participants will be rewarded with a treat from the Alumni Association.
  • : Register for the Calvin Classic 5K with a team of four or more coworkers to promote fitness and community at your workplace. The winning team (determined by cross country scoring) receives $250. All other Calvin Classic 5K rules and benefits apply.

More

  • Read about the history of the race, including past winners
  • Apple gift card drawing: To be entered to win one of four $250 Apple gift cards, either express interest in our event on Facebook or register for the 5k or Fun Run by 11:59 p.m. on Saturday, September 14.
  • Questions? alumni@calvin.edu | (616) 526-6142

Map


Ìý