, 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); })(); The Future of Hope (2004) - News & Stories | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Publications

The Future of Hope (2004)

Thu, Apr 01, 2004
William Katerberg,Miroslav Volf

The Future of Hope offers a powerful critique of today's stifling cultural climate and shows why the vision of hope central to Christian faith must be a basic component of any flourishing society. The first section of the book sets the context with telling cultural criticism of modernity. The second section focuses on affinities between premodern Christian visions of hope and twentieth-century thought. The final section of the book examines the relationship between postmodern thought, Christian tradition, and biblical hope, addressing how Christians in a postmodern world can best articulate their faith.

Written by truly profound thinkers, these chapters are diverse in their content, methodologies, and temperament, yet they are united by a deep engagement with both the Christian tradition and the larger cultural and intellectual climate in which we live and work. The Future of Hope can thus be read not just as an attempt at retrieval of hope for today but as itself one small act of hope in an age when people too seldom take time to think critically and hopefully.

Contributors:

David Billings
Robert Paul Doede
Kevin L. Hughes
Paul Edward Hughes
Daniel Johnson
William Katerberg
John Milbank
Jurgen Moltmann
James K. A. Smith
Miroslav Volf
Nicholas Wolterstorff


Authors: