, 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); })(); Confronting Flint's Underground Disaster | ϲʿ¼

ϲʿ¼

Skip to main content

Publications

Confronting Flint's Underground Disaster

Thu, Mar 24, 2016
Kevin den Dulk

Confronting Flint's Underground Disaster | Christianity Today

“For Christians, access to water ought not be about the arbitrariness of birth and geography or the vagaries of power,” writes the Michigan-based professor for the Center for Public Justice. “It is a matter of justice, and our response is grounded in God’s call to seek shalom, in this case by addressing the access problems and inevitable conflicts that arise when a good is both basic and unevenly distributed.”

On this week’s “Quick to Listen,” den Dulk joins Morgan and Katelyn to discuss the Flint water crisis through the lens of public justice.

  • With the Flint crisis in mind, what do bodies “owe” us citizens?
  • Is water a human right?
  • What does a public theology of water look like?

We discuss these questions and give John Locke and Thomas Hobbes a shoutout on the latest episode, which you can listen to here.

.