, 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); })(); English: Writing Concentration | »Æ´óÏɸßÊÖÂÛ̳

»Æ´óÏɸßÊÖÂÛ̳

Skip to main content

English: Writing Concentration

Undergraduate Program On Campus

What You'll Learn

Let’s be clear: you can study writing and get a job when you graduate. Calvin grads do it all the time. How will Calvin help you do it, too? By assessing your passions, giving you the best possible training, and lining you up with an internship that will give you a solid foothold in the field.

At Calvin, you can construct a writing major around your goals and get connected to career-building experiences. You can pursue any kind of writing you’re passionate about, from science fiction to international journalism. Our faculty have the experience, drive, and reputation to get you connected to where you need to go. And working in fields from political speech writing to graphic novels, Calvin grads are living proof of the success of this program.

What Makes This Program Great

  • Brilliant faculty: Our faculty are respected writers who are active in their fields. They know how to publish and work in today’s market because they do it. You’ll learn from faculty who write popular young adult series, award-winning poetry, and more.
  • Be relevant: You’ll graduate with real-world experience that will make your résumé sing. Every writing major completes an internship. Get plugged in to one of Grand Rapids’ many publishing houses, local businesses, libraries, publications, or nonprofits.
  • Meet your favorite authors: Every other year Calvin gathers a global reading and writing community on campus for the Festival of Faith & Writing. Calvin students get a front row seat to conversations with authors like Fleming Rutledge, Jemar Tisby, Jen Hatmaker, Kwame Alexander, Jonathan Merritt, and more.
  • Loading...
  • Loading...

Faculty

Jennifer L. Holberg

Professor of English, Chair of the English Department, Co-director of the Calvin Center for Faith & Writing