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

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

Skip to main content

Lodging & Dining

Find dining, lodging, and more on campus and nearby

Calvin’s location (map) on the East Beltline and Burton St. SE, Grand Rapids, provides close access to hotels, restaurants, shopping, and entertainment. Below are some of our recommendations.

Campus Amenities

With an on-campus hotel and eight dining venues, you can have all of your needs met on Calvin’s campus.

Stay at the Grand Rapids’ area’s #1 hotel, according to Trip Advisor—on Calvin’s campus!

Ìý

Prince Conference Center is open to the public. We offer our guests:

  • 66 beautifully appointed guest rooms with amenities
  • 3 accessible king suites with amenities
  • 13 conference rooms
  • Free, high-speed wireless Internet access (WIFI)
  • Many more accommodations

Please call (616) 526-7200, 1-866-526-7200, or visit us at calvin.edu/prince to make your reservation.

Calvin offers eight cafes and dining halls, including Knollcrest Dining Hall, Commons Dining Hall, Uppercrust (made-to-order sandwiches), Johnny’s (grill), Peet's Coffee, three Knight Fuel locations, and De Vos Grab-N-Go. Learn more.

Visitors to campus may park in one of the lots specified in the visitor parking map. You may request a visitor parking pass before your arrival. If you will be visiting Calvin frequently, please contact the campus safety office to acquire a long-term visitor parking permit.

Ìý

Nearby shopping and entertainment

Find great shopping and entertainment options near Calvin’s campus.

Just south of Calvin’s campus you’ll find Woodland Mall and Centerpointe malls and many other retail complexes.

Just south of campus, find , where you can watch the latest movies for a reasonable price. A few miles north of campus is , a dine-in theater where you can watch the latest popular movie releases.

Don’t miss downtown Grand Rapids’ new , featuring many locally-produced foods and drinks.

Ìý