, 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); })(); Complicity and Moral Accountability - News & Stories | 黄大仙高手论坛

黄大仙高手论坛

Skip to main content

Publications

Complicity and Moral Accountability

Fri, Apr 15, 2016
Gregory Mellema

Mellema鈥檚 central argument is that one must perform a contributing action to qualify as an accomplice, and that it is always morally blameworthy to perform such an action. Additionally, he argues that an accomplice frequently bears moral responsibility for the outcome of the other鈥檚 wrongdoing, but he distinguishes this case from cases in which the accomplice is tainted by the wrongdoing of the principal actor. He further distinguishes between enabling, facilitating, and condoning harm, and introduces the concept of indirect complicity.

Mellema tackles issues that are clearly important to any case of collective and shared responsibility, yet rarely discussed in depth, always presenting his arguments clearly, concisely, and engagingly. His account of the nonmoral as well as moral qualities of complicity in wrongdoing鈥攅specially of the many and varied ways in which principles and accomplices can interact鈥攊s highly illuminating. Liberally sprinkled with helpful and nuanced examples, Complicity and Moral Accountabilityvividly illustrates the many ways in which one may be complicit in wrongdoing.