, 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); })(); John Inazu - A Conversation on Learning to Disagree | app

app

Skip to main content

Events Calendar

John Inazu - A Conversation on Learning to Disagree

S M T W T F S
29
 
30
 
31
 
1
 
2
 
3
 
4
 
5
 
6
 
7
 
8
 
9
 
10
 
11
 
12
 
13
 
14
 
15
 
16
 
17
 
18
 
19
 
20
 
21
 
22
 
23
 
24
 
25
 
26
 
27
 
28
 
29
 
30
 
31
 
1
 

John Inazu - A Conversation on Learning to Disagree

  • Wed, Jan 22, 2025
  • 12:30 pm–1:30 pm
Image
John, a Japanese American, with dark hair smiles for a professional headshot, wearing a light blue button up shirt.
Through conversation, John Inazu will teach us how to disagree better while shedding light on how we often view our adversaries not only as wrong but increasingly as evil, resist notions of forgiveness, and distrust institutions that try to mediate our disagreements. These are all themes of his latest book, “Learning to Disagree: The Surprising Path to Navigating Differences with Empathy and Respect.”

John Inazu dedicates much of his scholarship to the First Amendment freedoms of speech, assembly, and religion, and related questions of legal and political theory. He integrates his faith and knowledge and shares his passion with others as founder of both The Carver Project and the Legal Vocation Fellowship, a Senior Fellow at Interfaith America and the Trinity Forum, and the Sally D. Danforth Distinguished Professor of Law & Religion at Washington University (St. Louis, Missouri). 

Follow John on , , and , or learn more about him at   

With appreciation for today's underwriter:

The Paul Henry Institute for the Study of Christianity and Politics