, but this code // executes before the first paint, when

ÃÛÌÒapp

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); })(); Commons Dining Hall | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Commons Dining Hall

Image
DiningHall_Feb2022_1194_Commons Web

The perfect stop-over for a quick and satisfying lunch. 

Known for our warm, safe environment, Commons Dining Hall also offers innovative food options and exceptional service—while you relax and rejuvenate between classes. If you like fresh ingredients and service with a smile, visit the Uppercrust, located above Commons Dining Hall or the Piazza for a variety of hot, crispy pizzas, pasta dishes, fresh baked bread sticks, and more.

Downloads

Learn more about Commons Dining Hall (pdf).

Hours

Stay updated with Commons hours.

Payment

Open to members of the ÃÛÌÒapp community and their accompanied guests. All meal plans, Knight Bucks, Dining Dollars, debit/credit, department meal tickets, and checks are accepted at the dining halls.

Location

Commons Building
1835 Knollcrest Circle SE
Grand Rapids, MI 49546-4402

42.931200206827, -85.587294101715

Related Places