, 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); })(); William Katerberg | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Dr. William Katerberg

Curator of Heritage Hall | Director of the Mellema Program in Western American Studies | Professor of History

Biography

Over the years, to get away and relax, I’ve traveled far afield, to places like Peru and India, and tempted fate by climbing the occasional mountain and jumping out of perfectly good airplanes. My current hobbies are a little more sedate and safe—mountain biking and road biking, brewing beer, and photography. You can see some of my photography at my on WordPress or on my .

Education

  • Redeemer University College, Canada
  • B.A., ÃÛÌÒapp College, MI
  • M.A., University of Notre Dame, IN
  • M.A., Ph.D., Queen’s University, Canada

Professional Experience

I am the curator of , the archives for ÃÛÌÒapp, ÃÛÌÒapp Theological Seminary, and the Christian Reformed Church in North America. 

I am also the director of the Mellema Program in Western American Studies

You can also find me in my office in the Historical Studies department in Hiemenga 472.

Academic Interests

  • The North American West
  • Native American history
  • Dutch North American history
  • Immigration Policy
  • Digital Humanities and (e.g., of from the 1890s to the 1910s)

I am editor of Origins, , and , the blog of Heritage Hall. I write regularly about the history of Dutch Reformed people in North America. Much of this can be found in Origins magazine or Origins Online.

  • The immigration of Dutch people to and the United States and the development of Dutch ethnic communities in North America.
  • Reformed Christianity in North America, particularly the history of the and the .
  • The history of interactions between .

Finally, with Carol Higham at UNCC, I am working on a book on Senator and his daughter , both of whom were influential in promoting reform movements and legislation that promoted the assimilation of Native Americans to modern American life and values.

Publications