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

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

Skip to main content

Dr. Kevin R. den Dulk

Associate Provost

Biography

Professor den Dulk has trouble narrowing his focus, and so he’s written on a wide range of ideas and movements, from the great challenges of religious pluralism in western democracies to the nitty-gritty politics of water managers in local politics. True to form, he is currently working on several very different projects, including a three-year grant-funded exploration of the tension between populism and internationalism within evangelicalism, a spatial analysis of state-level resources available to men and women when upon re-entry from prison, and an exploration of the politics of water among agricultural interests in the western United States. He is active in various community-based activities, especially civic education in local schools. He serves on the board of the Michigan Center for Civic Education and the Association for Public Justice.

 

Hobbies

Gardening, travel, fly fishing, hiking, working on his money pit

Education

A native Californian, Kevin den Dulk earned his bachelor of arts degree in philosophy at Calvin College in 1992.  After a brief stint in a corporate law firm, he completed his M.A. in political science at the University of Georgia (1995) and his Ph.D. at the University of Wisconsin at Madison (2001).  In 2001, he took a position in the Department of Political Science at Grand Valley State University, and later added a joint appointment as Honors Faculty-in-Residence.  He returned to Calvin as the Spoelhof Teacher-Scholar-in-Residence during the 2011-2012 academic year.  From 2012-2019, he served as the Executive Director of the  and held the Paul B. Henry Chair in Political Science.  In 2020, he began his current role at °ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ, serving as Associate Provost.

Academic Interests

Religion and politics cross-nationally; religious freedom; American politics and policy; public law and courts; political theory

Publications

Research and Scholarship

The Politics of Clean Water