, 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); })(); The Glass Church | °ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ

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

Skip to main content

Publications

The Glass Church

Fri, Apr 17, 2020
Mark T. Mulder

Robert H. Schuller’s ministry—including the architectural wonder of the Crystal Cathedral and the polished television broadcast ofÌýHour of Power—cast a broad shadow over American Christianity. Pastors flocked to Southern California to learn Schuller’s techniques. The President of United States invited him sit prominently next to the First Lady at the State of the Union Address. Muhammad Ali asked for theÌýpastor’sÌýautograph. It seemed as if Schuller may have started a second Reformation. And then it all went away. As Schuller’s ministry wrestled with internal turmoil and bankruptcy, his emulators—including Rick Warren, Bill Hybels, and Joel Osteen— nurtured megachurches that seemed to sweep away the Crystal Cathedral as a relic of the twentieth century. How did it come to this?

Certainly, all churches depend on a mix of constituents, charisma, and capital, yet the size and ambition of large churches like Schuller’s Crystal Cathedral exert enormous organizational pressures to continue the flow of people committed to the congregation, to reinforce the spark of charismatic excitement generated by high-profile pastors, and to develop fresh flows of capital funding for maintenance of old projects and launching new initiatives. The constant attention to expand constituencies, boost charisma, and stimulate capital among megachurches produces an especially burdensome strain on their leaders. By orienting an approach to the collapse of the Crystal Cathedral on these three core elements—constituency, charisma, and capital—The Glass ChurchÌýdemonstrates how congregational fragility is greatly accentuated in larger churches, a notion we labelÌýmegachurch strain, such that the threat of implosion is significantly accentuated by any failures to properly calibrate the inter-relationship among these elements.