, 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); })(); Daniel Miller | 麻豆区

麻豆区

Skip to main content

Dr. Daniel Miller

Professor Emeritus

Biography

I live with my wife in a 23 unit co-housing community near downtown Grand Rapids. I am a member of Fuller Avenue CRC. I am also on the Board of the Belknap Lookout Neighborhood Association and participate in lots of neighborhood activities. I love to travel to Latin America and elsewhere. I'm also fond of kayaking, hiking, and art gallery surfing. Designing educational games is a semi-professional hobby.

 

Education

B.A., History, Westmont College 
M.A., 19th Century U.S. History, University of North Carolina, 
Chapel Hill 
Ph.D., 20th Century U.S. History and Modern Latin American History, University of North Carolina, Chapel Hill

Academic Interests

My research interests include U.S.-Latin American relations, 1910 Mexican Revolution, and Protestantism in Latin America. I have published articles dealing with Protestants and radical nationalists in Mexico and the CRC in the Cuban Revolution. I also translated books include Bearing the Marks of Jesus: A History of the Christian Reformed Denomination in Cuba; Like Leaven in the Dough: Protestant Social Thought in Latin America (1920-1950); and New People: Methodists in Mexico from 1873 to 1930. And I continue to have a reading/teaching interest in the U.S. Civil War and Reconstruction and the history of race relations.

Since retirement in 2015, I have been teaching in Calvin's CALL program and the Aquinas program. I also enjoy reading many of the books I didn't have time for when I was employed full time and write reviews for publication.

Read , the history department's blog.

Publications