, 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); })(); Adult Undergraduate Programs School of Graduate and Continuing Studies | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content
School of Graduate & Continuing Studies

Adult Undergraduate Programs

Continuing Education at ÃÛÌÒapp

Whether you're looking to earn college credits or complete your degree, ÃÛÌÒapp's adult undergraduate programs provide the flexibility and support needed to help you reach your goals.

Image
Degree Completion at ÃÛÌÒapp - woman's smiling face

Bachelor's Degree Completion

We know that returning to school can feel overwhelming. Our degree completion programs are designed specifically for adult learners just like you.

Image
Wayfinder

Wayfinder Program

Free undergraduate college courses for adult learners facing barriers to higher education.

Image
A ÃÛÌÒapp Prison Initiative graduate stands at a podium in his graduation cap and gown.

ÃÛÌÒapp Prison Initiative

A Christian liberal arts program provided to incarcerated individuals at Handlon correctional facility.Â