Departmental Standards
Company-Wide
eCornell Styleguide & Branding
Cornell University Branding
Writing and Editing Style Guide
Faculty and Expert Naming Conventions in Courses
Cornell School and Unit Names
Tips for Campus Engagements
LSG
Legal Policies
CSG
Photography Style Guide
eCornell Mini Visual Style Guide
The Pocket Guide to Multimedia Design Thinking (*as It Pertains to Your Job Here)
Creative Services (CSG) Handbook
Administrative
LSG Meeting Recordings and Notes
Sending Faculty Sign-Off Forms in Adobe Sign
Weekly Faculty Status Emails
Animation/Motion Design
Instructional Design
Grading
D&D Newsletter
LSG Newsletter (LSGN) - February 2024
LSG Newsletter (LSGN) - March 2022 Edition
LSG Newsletter (LSGN) - December 2023
LSG Newsletter (LSGN) - October 2021 Edition
LSG Newsletter (LSGN) - June 2022 Edition
D&D Newsletter November 2024
LSG Newsletter (LSGN) - August 2022 Edition
LSG Newsletter (LSGN) - June 2023
LSGN Newsletter April 2023
LSG Newsletter (LSGN) - February 2022 Edition
LSG Newsletter (LSGN) - October 2022 Edition
LSGN Newsletter February 2023
LSGN Newsletter March 2023
D&D Newsletter September 2024
LSG Newsletter (LSGN) - August 2023
LSG Newsletter (LSGN) - March 2024
LSG Newsletter (LSGN) - April 2022 Edition
D&D Newsletter - August 2024
LSGN Newsletter January 2023
LSG Newsletter (LSGN) - October 2023 article
LSGN Newsletter (LSGN) - April 2024
LSG Newsletter (LSGN) - November 2021 Edition
LSG Newsletter (LSGN) - January 2022 Edition
LSGN Newsletter December 2022
LSG Newsletter (LSGN) - July 2022 Edition
LSG Newsletter (LSGN) - September 2022 Edition
Course Development
Image Uploads for Inline Projects
Revising a Course/ Creating a Redux Version/ Course Updates
Creating a Perma Link With Perma.cc
Course Content Deletion Utility — Removing All Course Content
Teleprompter Slide Template
Course Names
Requesting High Resolution Video Uploads
Technical Talking Points Template
Online Resources in Credit-Bearing Courses
Hiring Actors for an eCornell Project
PRJ Conversion Process Directions
Marketing
Operations
Tech
Pedagogical Guidelines for Implementing AI-Based Interactives: AER
Platform Training
Administrative Systems
ADP
Google Drive
Downloadables Process
Embed a Document from Google Drive
Adding Google Links to Canvas
File Naming and Storage Convention Standards
Google Drive for Desktop Instructions
Storing Documents in Multiple Locations
Wrike
Wrike System Fundamentals
Field Population
1.0 to 2.0 Wrike Project Conversion
Blocking Time Off in Work Schedule (Wrike)
Wrike Custom Field Glossary
Wrike "Custom Item Type" Definitions
How to Create a Private Dashboard in Wrike
Using Timesheets in Wrike
Importing Tasks into a Wrike Project
Wrike Project Delay Causes Definitions
Setting OOO Coverage for Roles in Wrike
How to Change a Project's Item Type in Wrike
Using Search in Wrike
How to Create a Custom Report in Wrike
@ Mentioning Roles in Wrike
Automate Rules
Using Filters in Wrike
Managing Exec Ed Programs in Wrike
External Collaborators
Wrike for External Collaborators: Getting Started
Wrike for External Collaborators: Views
Wrike for External Collaborators: Tasks in Detail
Wrike Updates
New Experience Update in Wrike
Wrike Course Development Template 2.0 - What's New
Wrike - Course Development Template 3.0 Release Notes
Wrike Process Training
Course Development & Delivery Platforms
Canvas
Development
Adding Custom Links to Course Navigation
Adding Comments to PDFs from Canvas Page Links
Setting Module Prerequisites and Requirements in Canvas
Canvas Page Functionality
Create a New Course Shell
Using LaTeX in Canvas
Search in Canvas Using API Utilities - Tutorial
Reverting a Page to a Previous Version
Student Groups
Create Different Canvas Pages
Importing Specific Parts of a Canvas Course
Canvas HTML Allowlist/Whitelist
Understanding Canvas Customizations/Stylesheets
Operations
Discussion Page Standards
How to import a CU course containing NEW quizzes
Canvas LMS: NEW Quiz compatibility
Faculty Journal
Course Content Style Guide
Click-To-Reveal Accordions in Canvas
Course Maintenance Issue Resolution Process
Meet the Experts
Codio
Codio Operations
Managing Manually Graded “Reflect and Submit” Codio Exercises
Codio Structure and Grading for Facilitators
Premade Codio Docs for Ops & Facilitators
Codio Remote Feedback Tools for Facilitators
Developers
Development Processes
Creating a New Codio Course
Creating a New Codio Unit
Integrating a Codio Course into Canvas
Embedding a Codio Unit into Canvas
Setting Up the Class Fork
R Studio - Exclusion List for R Code
Mocha/Selenium Autograding
Starter Packs in Codio
Configuring Partial Point Autograders in Codio
Launch a Jupyter Notebook from VM
Program-Specific Developer Notes
Codio Functionality
Jupyter Notebooks
Jupyter Notebooks - nbgrader tweaks
Jupyter Notebooks Style Guide
Adding Extensions to Jupyter Notebooks
Setting up R with Jupyter Notebooks
Change Jupyter Notebook Auto Save Interval
How to Change CSS in Jupyter Notebook
RStudio in Codio
How To Centralize the .codio-menu File to One Location
Codio Fundamentals for LSG
Using the JupyterLab Starter Pack
Using Code Formatters
Using the RStudio Starter Pack
Conda Environments in Codio
Updating Codio Change Log
Migrating to Updated Codio Courses
Qualtrics
Ally
Ally Institutional Report Training
Ally Features Overview Training
Using the Ally Report in a Course
Ally Vendor Documentation/Training Links
Adobe
Other Integrations
H5P
Modifying Subtitles in H5P Interactive Videos
Embedding H5P Content Into Canvas
Troubleshooting H5P Elements in Canvas
Inserting Kaltura Videos into H5P Interactive Videos
Adding Subtitles to H5P Interactive Videos
S3
BugHerd
Instructional Technologies & Tools Inventory
Canvas API Utilities
Getting started with the MOP Bot
eCornell Platform Architecture
HR & Training Systems
Product Development Processes
Accessibility
What Is Accessibility?
What Is Accessibility?
Accessibility Resources
Accessibility Considerations
Accessibility Support and Assistive Technology
Structural Accessibility
Accessibility Design and Development Best Practices
Accessible Images Using Alt Text and Long Descriptions
Accessible Excel Files
Accessibility and Semantic Headings
Accessible Hyperlinks
Accessible Tables
Creating Accessible Microsoft Files
Mathpix: Accessible STEM
Design and Development General Approach to Accessibility
Integrating Content Authored by a Third Party
Planning for Accessible Tools
Accessibility Considerations for Third Party Tools
Studio Accessibility
Designing for Accessible Canvas Courses
Accessibility: Ongoing Innovations
Course Development
Planning
Development
0. Design
1. Codio Units
1. Non-Video Assets
3. Glossary
4. Canvas Text
4. Tools
4. Tools - Wrike Task Definitions
3. Review And Revise Styled Assets
ID/A to Creative Team Handoff Steps
General Overview of Downloadables Process
Course Project: Draft and Final
Excel Tools: Draft and Final
eCornell LSG HTML Basics
1. Non-Video Assets - Wrike Task Definitions
2. Video
Multifeed Video
2. Video (Standard) - Wrike Task Definitions
Studio Tips
Tips for Remote Video Recording Sessions
Who to Tag for Video Tasks
3. Animation
3. Animation - Wrike Task Definitions
2. Artboard Collab Doc Prep
6b. Motion Design Review and Revise
Who to Tag for Animations Tasks
3. Artboard Collab Process Walkthrough
DRAFT - FrameIO Process Walkthrough
Motion Contractor Guide for IDAs / IDDs
Requesting / Using Stock Imagery (Getty Images and Shutterstock)
3. Ask the Experts
5. On-Demand Conversion
1. Write Content for On-Demand
On-Demand: Conversion Notes
On-Demand: Writing Quiz Questions
On-Demand: Writing Blended Learning Guides (DRAFT)
On-Demand: Lesson Description and Objectives (DRAFT)
2. Build On-Demand Lesson
On-Demand: Create a Blended Learning Guide (BLG)
On-Demand: Create Lesson Shells in Canvas
On-Demand: Populate Homepage Content
On-Demand: Add Quiz Assessment Content
On-Demand: Reformat Wrap-Up
On-Demand: Prepare Lesson for QA
On-Demand: Request Banner Image
5. On-Demand Conversion - Wrike Task Definitions
5. Review
5. Review - Wrike Task Definitions
1. Prep Course for Reviews
2. Conduct Student Experience Review
3. Implement Creative Director Edits
3. Implement IDD Edits
3. Implement Student Experience Review Edits
4. CSG - Revise Tools Export 1
5. Conduct Faculty Review
6. Implement Faculty Edits
7. Conduct Technical Review of Course (STEM-only)
2. Conduct IDD or Sr ID Review
6. Alpha
6. Alpha - Wrike Task Definitions
Alpha Review Process
Prepare a course for Alpha review
Schedule & Conduct Alpha Triage Meeting
7. QA
7. QA - Wrike Task Definitions
1. Complete Dev to QA Checklist
2. Copy Edit Captions
2. Copy Edit Course & Files
4. Conduct Content QA of Course
4. Final Creative Review and Export
Adding Chat With Tech Support to Course Navigation
5. Implement QA Edits
Working With Video Captions That Contain Special Characters
Copy Edit Captions in SubPLY
Creating a Course Style and Settings Guide
QA and Deployment of Courses With Doc-based Projects in 2025
Copy Editing Content in Frame.io
Copy Edit Captions in 3Play
Tag a Video for Transcription by 3Play
Course QA Checklists
8. Deployment
8. Deployment - Wrike Task Definitions
1. Finalize Master Version of Course
2. Create & Add Course Transcript (CT) to Course
Replace a Master -M With a Redux Version of the Course
3. Create -T (Training Course) and Associate With Master Blueprint
Canvas Blueprint Course Functionality
Project Management in Wrike
Managing Project Reporting in Wrike
Managing Task Needs/Schedule in Wrike
Adding Tasks
Comments and Communication
Statuses
Updating Task Start and Due Dates
Predecessors
Durations
Rollups
Calculating Project Schedule by Deadline in Wrike
Creating Course Project Plans in Wrike
Setting Custom Capacity for Resources
Customizing Effort in a New Project Plan
Marking Projects Complete in Wrike
How to Set Up Workload Charts to Track Effort in Wrike
For-Credit Considerations
1-Sheet Population
Post-Development
Program Facilitation & Operational Guidelines
Data Science
Facilitator Resources
Canvas Navigation
Adding Events to the Course Calendar
Navigating Canvas and the Dashboard
How Do I View Previous Courses I Have Taken or Facilitated?
Why Am I Receiving Duplicate Canvas Emails?
How Do I Edit My Canvas Profile?
Send Students a Direct Message on Canvas
How Do I Send Students Nudges from the Gradebook?
How Can I Update My Canvas Notification Preferences?
Ursus Navigation
How Do I Access My Offer in Ursus?
How Do I Edit My Ursus Profile?
How Do I Request Time Off (Blackout Dates)?
How Can I Request to Learn More Courses?
Course Set-Up
Course Set Up: Getting Ready for Live Sessions
Recording and Posting a Welcome Video
Course Set Up: When can I begin to edit my course?
When Should I Schedule My Live Sessions For?
Changing Live Session Date and Time After Created with Facil Tool
Help! I Need to Reschedule a Live Session
Course Set Up: Live Session Information page
Zoom Features: Preparing for Live Sessions
Course Set Up: Reviewing Due dates
Course Set Up: Reviewing Announcements
What Do I Need to Do to Make Sure My Course is Set Up Correctly?
How Do I Customize My Course Sections?
Set up Live Sessions with the Facil Tool
Course Announcements and Messages Templates
Combining Live Sessions with Facil Tool
Zoom and other Technical Support
How Do I Set Up My Zoom Account?
Support Resources for Facilitators
How to Upload Videos to Zoom On-Demand
Student Survey FAQs
How Do I Save and Refer Back to Zoom Recordings?
How Do I Find My Personal ID Meeting link in Zoom?
Benefits as an eCornell Employee
Do I Have Access to Microsoft Office as a Cornell Employee?
Taking Courses as a Student
Professional Development Benefit
Student Success
Help! My Students Can't View a Video Within My Course
Extensions and Retakes
Policies and Navigation Resources for Students
Students enrolled through special groups: Corporate and VA
Unique Circumstances for Student Extensions and Retakes
Understanding and Addressing Instances of Plagiarism
Support Resources for Students
Understanding and Addressing Use of AI
Help! My Student is Having a Hard Time Uploading a Video
Unique Student Situations
I Have a Student Requesting Accommodations- How Should I Proceed?
New Facilitator Onboarding and Quick References
Facilitator Onboarding at eCornell
Why Do I Have Multiple eCornell email and Canvas Accounts?
Quick reference: Systems and Accounts we use at eCornell
Quick reference guide: Key eCornell Personnel
How do I log Onto Canvas and Access FACT101?
How Do I Add eCornell to My Email Signature?
Getting the Most Out of Learning Assignments
What to Expect During Live Shadowing Experience
Setting up Email Forwarding
Facilitator Expectations and Grading Help
(NEW Format) How do I grade Course Projects?
Navigating the Gradebook and Accessing the Speedgrader
Quick Reference: Sort assignments in the Speedgrader
How do I Grade Quizzes?
(Old format) How Do I Grade Course Projects and Add Annotations?
Rubrics for Effective Facilitation
Is There an Answer Key for my Course?
How to Monitor and Promote Student Progress
How Do I Grade Discussions?
Adding an Attempt to a Course Project
How Quickly Do I Need to Provide Grading to Students?
Payroll and the Monthly Scheduling Process
Codio References
Manually Graded “Reflect and Submit” Codio Exercises
Codio Quick Resources
Codio Reference: Embedded quiz questions (H5P)
Codio Reference: Checking for Completion Status
Codio Reference: Manually Graded Exercises
Codio Remote Feedback Tools
Codio Reference: Ungraded exercises
Codio Reference: Autograded Exercises
Archived
Table of Contents
- All Categories
- Platform Training
- Course Development & Delivery Platforms
- Canvas
- Development
- Understanding Canvas Customizations/Stylesheets
Understanding Canvas Customizations/Stylesheets
Updated by Casey Shew
Overview
As you are probably aware of, eCornell uses Instructure’s Canvas for our learning management system. One of the features of Canvas that is very advantageous for our use case is the mechanism they provide to upload custom JavaScript and CSS files at the account or subaccount level to enable the customization of the look/feel and functionality in the account. This mechanism is called the Theme Editor. There is a Theme Editor attached to every Canvas account and subaccount, and each has its own area to define custom colors and icons, as well as upload a CSS and JavaScript file for more specific and advanced customizations.
This theme editor provides the mechanism by which different Canvas instances or accounts are made to look and behave differently than others, and why certain page components may work when housed in one Canvas account (or subaccount) but not another. This discrepancy is generally due to the presence, or lack, of certain CSS or JavaScript files uploaded to that account’s theme editor. It should be noted that the theme editor customizations of accounts and subaccounts in Canvas cascade, such that subaccounts inherit all of the code configured in their parent account/s, and additional code can be added to the subaccounts on top of the inherited code from the parent account/s.
How eCornell Leverages the Theme Editor
At eCornell, we use the Theme Editor’s CSS/JS customization mechanism for a wide range of different utilities. The following are examples of the types of things we use it for, but it’s not limited to just these!
- Specifying custom fonts, colors, and base CSS styles for our instance
- Manipulating the broader Canvas user interface to better suit our brand and student experience goals
- Defining custom layouts that use CSS/JS not supported by the Canvas RCE (i.e. On-Demand homepage, Video Playlists/ATEs, etc…)
- Creating custom branding for specific unit- or partner-oriented subaccounts
- Centralizing video embed code for central management/updates and more responsive design (specifically Kaltura videos)
- Loading non-LTI tools and frameworks to include in Canvas (i.e. Pendo, jQuery, etc..)
- Creating and embedding custom widgets and webapps for specific course needs (i.e. Click to Reveal widgets, Comp Cost Calculator, Spidergraph, etc…)
Yes, all of this is accomplished with just a few CSS and JavaScript files! (albeit very long ones)
There are of course some downsides to using this mechanism so heavily. One of the biggest is that with our content having more custom code dependencies, it’s less easily portable to other systems. Another is that with more customization, the probability increases that new releases from Instructure will conflict with something in our code base and cause an issue. This is to say that while this powerful ability Canvas gives us is fantastic and readily utilized, there should be some caution to adding more and more customization.
Customizations on lms.ecornell.com vs. canvas.cornell.edu
As you are probably aware, lms.ecornell.com is the instance of Canvas on which we deliver our certificate programs, and was our first instance of Canvas. As such, this is where our CSS/JS customizations originated, and our course content naturally became reliant on those customizations to function properly - from custom page layouts and widgets, all the way down to the video players. canvas.cornell.edu was set up many years after lms.ecornell.com, as the university decided to migrate to Canvas from Blackboard to deliver their for-credit courses.
Many quickly realized when using canvas.cornell.edu, either when importing content developed on lms.ecornell.com or when developing new content, that many of the core components of our courses were not functioning properly on this new instance. Of course, this was due to the Theme Editor not having our CSS/JS files uploaded to it at the root account level. To address this issue, CTI determined it best to set up subaccounts specifically for courses that use eCornell content with its associated layouts, widgets, and styles. The top-level account on canvas.cornell.edu does not have our Theme Editor files present, as it was determined that base styles in our files were not desired globally for all of canvas.cornell.edu, as well as to avoid any potential conflicts with subaccount customizations from other units. Additionally, it was determined that even for the eCornell subaccounts, we would not add the customized surrounding navigation that we use on lms.ecornell.com. The concern was that it could be disorienting or confusing if a student was taking some courses inside an eCornell subaccount and some not, and the surrounding navigation changed when switching between these courses.
All of that being said, this means that while any new course added on lms.ecornell.com automatically will get all of our primary customizations applied to it (because the top-level account on that instance has our Theme Editor files uploaded to it), the same is not true for canvas.cornell.edu. This is because our Theme Editor files are only uploaded to the eCornell-specific subaccounts and not the top-level account. This can result in things like videos not loading properly and page layouts looking broken. To fix these issues, the course in question simply needs to be associated with one of our subaccounts, and then those Theme Editor files will be applied to it resulting in all of our customizations working. A course can only be associated with one subaccount at a time, so it’s generally a good idea to confirm that removing the current subaccount association and changing it to one of ours is not a problem. In rare cases, a course’s administrative staff may have specific needs to keeping the course in a different subaccount than ours, this is rare but these situations require creative problem solving to meet all of the needs.
Customization Scenarios - How to Handle
The following is a list of common scenarios that relate to Canvas customizations and how you should handle them. If your scenario is not reflected in this list, when in doubt, contact Casey Shew and Jason Carroll!
Scenario: A course on canvas.cornell.edu that uses eCornell content is not working properly (videos won’t load, etc…) what do I do?
How to Handle: Shoot an email to Casey Shew (casey.shew@cornell.edu) and Jason Carroll (jasoncarroll@cornell.edu) with a link to the course, or specific course code and term, and an indication of what the course will be used for, as well as a description of the specific issue.
Scenario: I need a new page layout or widget that I cannot make with Canvas’s supported HTML/CSS, and also cannot be accomplished with existing third party tools/solutions (i.e. H5P)
How to Handle: First assess if this will only be used once in one course, or it is intended to be reused repeatedly. If the former, consider writing all of the code in an HTML/CSS/JS file locally, uploading to S3, and then iframing onto your Canvas page. If the latter, or the former and iframing is not appropriate/effective, submit an RTB ticket on Jira and Danny Freire will be assigned in an upcoming sprint to add code to our theme editor files to support this.
Scenario: I’m working with a new partner that requires custom branding that we don’t currently have for their courses
How to Handle: In this scenario, a new subaccount will likely need to be created to apply the custom branding to. Begin with sending an email to Casey Shew (casey.shew@cornell.edu) explaining the requirements from the partner. Depending on the scope and complexity, you may be directed to submit an RTB ticket on Jira, but individual guidance will be provided based on the situation.
Scenario: I’m encountering a bug/issue with our customizations that cannot be resolved by editing the HTML
How to Handle: Submit an RTB ticket on Jira and Danny Freire will be assigned in an upcoming sprint to address the issue.