, 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); })(); Gainey Athletic Facility | °ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ

°ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ

Skip to main content

Gainey Athletic Facility

Starting May 8, the East Paris entrance will be closed due to construction.

Home to the Knight’s track and field, softball, and cross country teams.

The 36-acre Gainey Athletic Facility includes a cross-country course, twelve tennis courts, three softball fields, two baseball fields, two soccer fields, a concession stand, and courtyard. These facilities serve students from Grand Rapids Christian Schools (GRCHS) and °ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ.

 

2023–2024 Construction at Calvin

Last updated September 1, 2023

Starting May 8, the Gainey Athletic Facility's East Paris entrance will be closed due to construction of the new °ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ Track & Field facility. The baseball, softball and tennis facilities will remain open for GRCHS practices and events. The East Paris entrance is scheduled to reopen Spring 2024. For details and progress visit: calvin.edu/construction

Detour: Enter the Gainey Athletic Facility on the west side using the access road by °ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ’s Prince Conference Center (1800 E. Beltline).

Parking opportunities at Gainey proper may be reduced due to the construction project in which case patrons may use the Prince Conference Center parking.

NOTE: °ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ is a busy campus with many walkers and bikers; please drive carefully and follow the posted speed limit. Remember to be good neighbors and only park in designated areas. No parking on the grass.

 

Location

1661 East Paris Ave SE
49546

42.931267, -85.57241