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

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

Skip to main content

Contact Us

Location

Ìý

The Meeter Center is located on the fourth floor of the Hekman Library (HL 415). Take the elevator to the fourth floor, exit to the right, and turn right around the corner.

Ìý

Address

H. Henry Meeter Center for Calvin Studies

°ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ
Hekman Library 1855 Knollcrest Circle |
Grand Rapids, MI 49546-4402
USA

Primary contact

Sam Ha

Sam Ha

Theological Librarian/Curator of Meeter CenterÌý
Full profile

Karin Maag

Karin Maag

Director of H. Henry Meeter Center for Calvin StudiesÌý
ProfessorÌý
Full profile

Ìý

Business Hours

Academic Year (September-May)

Monday-Friday: 8:00 a.m. – 5:00 p.m. (closed noon to 1:00 p.m.)
Ìý

Summer (June-August)

Monday-Friday: 8:00 a.m. – 4:30 p.m. (closed noon to 12:30 p.m.)
Ìý

Social

  • Ìý
  • Ìý