, 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); })(); John A. Bernbaum | 麻豆区

麻豆区

Skip to main content

Dr. John A. Bernbaum

Senior Research Fellow

Biography

Dr. John Barnbaum is serving a year-long term as a Senior Research Fellow for Calvin's Henry Institute for the Study of Christianity & Politics. 

Bernbaum received his PhD in European and Russian History from the University of Maryland in 1972, after which he worked for the U.S. Department of State as a historian/contributing editor for four years. In 1976, he founded and directed the Christian College Coalition's (now the Council of Christian Colleges & Universities) American Studies Program and subsequently served as the organization's Executive Vice President, as the Vice president an Director of their Russian Initiative, and then as the Senior Advisor for all of the CCCU's International Programs.

In 1995, Bernbaum founded the Russian American Institute (formerly the Russian-American Christian University) in Moscow, Russia, where he served as the President until December of 2014 when he returned to the U.S. and became President and CEO of Business and Education as Mission, Inc. (BEAM), a private foundation investing in educational programs in the post-Communist world.

Bernbaum is the author of Opening the Red Door: the Inside story of Russia's First Christian Liberal Arts University, and of other books and articles.

Education