, 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); })(); Neighborhood Living Residence Life | ƴɸ̳

ƴɸ̳

Skip to main content

Neighborhood Living

Student Life are committed to cultivating “co-curricular learning experiences that disciple, develop and equip students to thrive as Christ’s agents of renewal in the world.” Whether on campus or off, we want you to thrive in your living and learning environments so that you will be blessed and that others around you, your housemates and neighbors, will also be blessed.

Please review our Off-campus Living Policy

What are my options?

Calvin students who have completed their sophomore year may choose to live off campus, with the understanding that they are to be positive members in their neighborhoods. All Calvin students, including off-campus students, are expected to abide by the Student Conduct Code and may be subject to university action in addition to any civil, legal or contractual action.

Calvin properties

Calvin provides four different intentional housing options for upperclass students.

Privately owned options

Grand Rapids and the surrounding communities offer a magnitude of rental, leasing and buying options for those students interested in living independently.

Housing search resources

Please note:
  • In the City of Grand Rapids, not more than four unrelated persons eighteen years of age or older may live in a single dwelling unit.
  • Calvin does not inspect or endorse any off campus properties except those listed as part of the Project Neighborhood program.