, 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); })(); Virtues and Their Vices - News & Stories | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Publications

Virtues and Their Vices

Sun, Apr 27, 2014
{}

Each of the essays, written exclusively for this volume, not only locates discussion of that virtue in its historical context, but also advances the discussion and debate concerning the understanding and role of the virtues. Each of the first four sections focuses on a particular, historically important class of virtues: the cardinal virtues, the capital vices (or 'seven deadly sins') and the corrective virtues, intellectual virtues, and the theological virtues. The final section discusses the role virtue theory and the virtues themselves play in a number of disciplines, ranging from theology and political theory to neurobiology and feminism. The treatment of the virtues in this present volume is sensitive to the historical heritage of the virtues, including their theological heritage, without paying undue attention to the historical and theological issues.ÌýVirtues and Their VicesÌýengages contemporary philosophical scholarship as well as relevant scholarship from related disciplines throughout. It is a unique and compelling addition to the philosophical treatment of the virtues as well as their import in a wide spectrum of disciplines.