// capa - styling // ==================== // Table of Contents // * +Variables - Capa // * +Extends - Capa // * +Mixins - Status Icon - Capa // * +Resets - Deprecate Please // * +Problem - Base // * +Problem - Choice Group // * +Problem - Misc, Unclassified Mess // * +Problem - Text Input, Numerical Input // * +Problem - Option Input (Dropdown) // * +Problem - CodeMirror // * +Problem - Misc, Unclassified Mess Part 2 // * +Problem - Rubric // * +Problem - Annotation // * +Problem - Choice Text Group // * +Problem - Image Input Overrides // * +Problem - Annotation Problem Overrides @import 'vendor/bi-app/bi-app-ltr'; @import 'bourbon/bourbon'; @import 'lms/theme/variables'; @import 'bootstrap/scss/variables'; @import 'lms/theme/variables-v1'; // +Variables - Capa // ==================== $annotation-yellow: rgba(255, 255, 10, 0.3); $color-copy-tip: rgb(100, 100, 100); // FontAwesome Icon code // ==================== $checkmark-icon: '\f00c'; // .fa-check $cross-icon: '\f00d'; // .fa-close $asterisk-icon: '\f069'; // .fa-asterisk @import '../../../../../static/sass/edx-pattern-library-shims/base/variables'; // +Extends - Capa // ==================== // Duplicated from _mixins.scss due to xmodule compilation, inheritance issues %use-font-awesome { font-family: FontAwesome; -webkit-font-smoothing: antialiased; display: inline-block; speak: none; } // +Mixins - Status Icon - Capa // ==================== @mixin status-icon($color: $gray, $fontAwesomeIcon: "\f00d") { .status-icon { &::after { @extend %use-font-awesome; color: $color; font-size: 1.2em; content: $fontAwesomeIcon; } } } // +Resets - Deprecate Please // ==================== h2 { margin-top: 0; margin-bottom: ($baseline*0.75); &.problem-header { display: inline-block; section.staff { margin-top: ($baseline*1.5); font-size: 80%; } } @media print { display: block; width: auto; border-right: 0; } } .explanation-title { font-weight: bold; } %feedback-hint { margin-top: ($baseline / 4); .icon { @include margin-right($baseline / 4); } } .feedback-hint-incorrect { @extend %feedback-hint; .icon { color: $incorrect; } } .feedback-hint-partially-correct, .feedback-hint-correct { @extend %feedback-hint; .icon { color: $correct; } } .feedback-hint-text { color: $color-copy-tip; } .problem-hint { margin-bottom: 20px; width: 100%; } .hint-label { display: inline-block; padding-right: 0.5em; } .hint-text { display: inline-block; } .feedback-hint-multi .hint-text { display: block; } iframe[seamless] { overflow: hidden; padding: 0; border: 0 none transparent; background-color: transparent; } .inline-error { color: darken($error-color, 11%); } div.problem-progress { display: inline-block; color: $gray-d1; font-size: em(14); } // +Problem - Base // ==================== div.problem { padding-top: $baseline; @media print { display: block; padding: 0; width: auto; canvas, img { page-break-inside: avoid; } } input.math { direction: ltr; // Equations are always English } .inline { display: inline; + p { margin-top: $baseline; } } .question-description { color: $gray-d1; font-size: $small-font-size; } form > label, .problem-group-label { display: block; margin-bottom: $baseline; font: inherit; color: inherit; -webkit-font-smoothing: initial; } .problem-group-label + .question-description { margin-top: -$baseline; } } // CAPA gap spacing between problem parts // can not use the & + & since .problem is nested deeply in .xmodule_display.xmodule_CapaModule .wrapper-problem-response + .wrapper-problem-response, .wrapper-problem-response + p { margin-top: ($baseline * 1.5); } // Choice Group - silent class %choicegroup-base { @include clearfix(); min-width: 100px; width: auto !important; width: 100px; label { box-sizing: border-box; display: inline-block; clear: both; margin-bottom: ($baseline/2); border: 2px solid $gray-l4; border-radius: 3px; padding: ($baseline/2); width: 100%; &::after { @include margin-left($baseline*0.75); } } .indicator-container { min-height: 1px; width: 25px; display: inline-block; } fieldset { box-sizing: border-box; } input[type="radio"], input[type="checkbox"] { @include margin($baseline/4); @include margin-right($baseline/2); } input { &:focus, &:hover { & + label { border: 2px solid $blue; } } &, &:focus, &:hover { & + label.choicegroup_correct { @include status-icon($correct, $checkmark-icon); border: 2px solid $correct; } & + label.choicegroup_partially-correct { @include status-icon($partially-correct, $asterisk-icon); border: 2px solid $partially-correct; } & + label.choicegroup_incorrect { @include status-icon($incorrect, $cross-icon); border: 2px solid $incorrect; } & + label.choicegroup_submitted { border: 2px solid $submitted; } } } } // +Problem - Choice Group // ==================== div.problem { .choicegroup { @extend %choicegroup-base; .field { position: relative; } label { @include padding($baseline/2); @include padding-left($baseline*2.3); position: relative; font-size: $base-font-size; line-height: normal; cursor: pointer; } input[type="radio"], input[type="checkbox"] { @include left(em(9)); position: absolute; top: 0.35em; width: $baseline*1.1; height: $baseline*1.1; z-index: 1; } legend { margin-bottom: $baseline; max-width: 100%; white-space: normal; } legend + .question-description { margin-top: -$baseline; max-width: 100%; white-space: normal; } } } // +Problem - Status Indicators // ==================== // Summary status indicators shown after the input area div.problem { .indicator-container { @include margin-left($baseline*0.75); .status { width: $baseline; // CASE: correct answer &.correct { @include status-icon($correct, $checkmark-icon); } // CASE: partially correct answer &.partially-correct { @include status-icon($partially-correct, $asterisk-icon); } // CASE: incorrect answer &.incorrect { @include status-icon($incorrect, $cross-icon); } &.submitted, &.unsubmitted, &.unanswered { .status-icon { content: ''; } } } } } // +Problem - Misc, Unclassified Mess // ==================== div.problem { ol.enumerate { li { &::before { display: block; visibility: hidden; height: 0; content: " "; } } } .solution-span { > span { margin: $baseline 0; display: block; position: relative; &:empty { display: none; } } } .targeted-feedback-span { > span { display: block; position: relative; &:empty { display: none; } } } // known classes using this div: .indicator-container, moved to section above div { // TO-DO: Styling used by advanced capa problem types. Should be synced up to use .status class p { &.answer { margin-top: -2px; } span.clarification i { font-style: normal; &:hover { color: $blue; } } } &.correct, &.ui-icon-check { input { border-color: $correct; } } &.partially-correct, &.ui-icon-check { input { border-color: $partially-correct; } } &.processing { input { border-color: #aaa; } } &.ui-icon-close { input { border-color: $incorrect; } } &.incorrect, &.incomplete { input { border-color: $incorrect; } } &.submitted, &.ui-icon-check { input { border-color: $submitted; } } p.answer { display: inline-block; margin-top: ($baseline / 2); margin-bottom: 0; &::before { @extend %t-strong; display: inline; content: "Answer: "; } &:empty { &::before { display: none; } } } div.equation { clear: both; margin-top: 3px; .MathJax_Display { width: auto; } img.loading { @include padding-left($baseline/2); display: inline-block; } span { margin-bottom: 0; display: inline-block; &.MathJax_CHTML, &.MathJax, &.MathJax_SVG { padding: 6px; min-width: 30px; border: 1px solid #e3e3e3; border-radius: 4px; background: #f1f1f1; } } } // Hides equation previews in symbolic response problems when printing [id^='display'].equation { @media print { display: none; } } //TO-DO: review and deprecate all these styles within span {} span { &.ui-icon-bullet { display: inline-block; position: relative; top: 4px; width: 14px; height: 14px; background: url('#{$static-path}/images/unanswered-icon.png') center center no-repeat; } &.processing, &.ui-icon-processing { display: inline-block; position: relative; top: 6px; width: 25px; height: 20px; background: url('#{$static-path}/images/spinner.gif') center center no-repeat; } &.ui-icon-check { display: inline-block; position: relative; top: 3px; width: 25px; height: 20px; background: url('#{$static-path}/images/correct-icon.png') center center no-repeat; } &.incomplete, &.ui-icon-close { display: inline-block; position: relative; top: 3px; width: 20px; height: 20px; background: url('#{$static-path}/images/incorrect-icon.png') center center no-repeat; } } .reload { @include float(right); margin: ($baseline/2); } .grader-status { @include clearfix(); margin: $baseline/2 0; padding: $baseline/2; border-radius: 5px; background: $gray-l6; span { display: block; float: left; overflow: hidden; margin: -7px 7px 0 0; text-indent: -9999px; } .grading { margin: 0px 7px 0 0; padding-left: 25px; background: url('#{$static-path}/images/info-icon.png') left center no-repeat; text-indent: 0px; } p { float: left; margin-bottom: 0; text-transform: capitalize; line-height: 20px; } &.file { margin-top: $baseline; padding: $baseline 0 0 0; border: 0; border-top: 1px solid #eee; background: $white; p.debug { display: none; } input { float: left; } } } .evaluation { p { margin-bottom: ($baseline/5); } } .feedback-on-feedback { margin-right: $baseline; height: 100px; } .evaluation-response { header { text-align: right; a { font-size: .85em; } } } .evaluation-scoring { .scoring-list { margin-left: 3px; list-style-type: none; li { display:inline; margin-left: 50px; &:first-child { margin-left: 0; } label { font-size: .9em; } } } } .submit-message-container { margin: $baseline 0px ; } } div.inline { > span { display: inline; } } ul { margin-bottom: lh(); margin-left: .75em; margin-left: .75rem; list-style: disc outside none; } ol { margin-bottom: lh(); margin-left: .75em; margin-left: .75rem; list-style: decimal outside none; } dl { line-height: 1.4em; } dl dt { @extend %t-strong; } dl dd { margin-bottom: 0; } dd { margin-left: .5em; margin-left: .5rem; } li { margin-bottom: lh(0.5); line-height: 1.4em; &:last-child { margin-bottom: 0; } } p { margin-bottom: lh(); } table { margin: lh() 0; border-collapse: collapse; table-layout: auto; td, th { &.cont-justified-left { text-align: left !important; // nasty, but needed to override the bad specificity of the xmodule css selectors } &.cont-justified-right { text-align: right !important; // nasty, but needed to override the bad specificity of the xmodule css selectors } &.cont-justified-center { text-align: center !important; // nasty, but needed to override the bad specificity of the xmodule css selectorsstyles } } th { @extend %t-strong; text-align: left; } td { text-align: left; } caption, th, td { padding: .25em .75em .25em 0; padding: .25rem .75rem .25rem 0; } caption { margin-bottom: .75em; margin-bottom: .75rem; padding: .75em 0; padding: .75rem 0; background: #f1f1f1; } tr, td, th { vertical-align: middle; } } code { margin: 0 2px; padding: 0px 5px; border: 1px solid #eaeaea; border-radius: 3px; background-color: $gray-l6; white-space: nowrap; font-size: .9em; } pre { overflow: auto; padding: 6px $baseline/2; border: 1px solid $gray-l3; border-radius: 3px; background-color: $gray-l6; font-size: .9em; line-height: 1.4; > code { margin: 0; padding: 0; border: none; background: transparent; white-space: pre; } } } // +Problem - Text Input, Numerical Input // ==================== .problem { .capa_inputtype.textline, .inputtype.formulaequationinput { input { box-sizing: border-box; border: 2px solid $gray-l4; border-radius: 3px; min-width: 160px; height: 46px; } .status { display: inline-block; margin-top: ($baseline/2); background: none; } // CASE: incorrect answer > .incorrect { input { border: 2px solid $incorrect; } .status { @include status-icon($incorrect, $cross-icon); } } // CASE: partially correct answer > .partially-correct { input { border: 2px solid $partially-correct; } .status { @include status-icon($partially-correct, $asterisk-icon); } } // CASE: correct answer > .correct { input { border: 2px solid $correct; } .status { @include status-icon($correct, $checkmark-icon); } } // CASE: submitted, correctness withheld > .submitted { input { border: 2px solid $submitted; } .status { content: ''; } } // CASE: unanswered and unsubmitted > .unanswered, > .unsubmitted { input { border: 2px solid $gray-l4; } .status { .status-icon { &::after { content: ''; display: inline-block; } } } } } .inputtype.formulaequationinput { > div { input { direction: ltr; @include text-align(left); } } } .trailing_text { @include margin-right($baseline/2); display: inline-block; } } // +Problem - Option Input (Dropdown) // ==================== .problem { .inputtype.option-input { margin: 0 0 0 0 !important; .indicator-container { display: inline-block; .status.correct::after, .status.partially-correct::after, .status.incorrect::after, .status.submitted::after, .status.unanswered::after { @include margin-left(0); } } } } // +Problem - CodeMirror // ==================== div.problem { .CodeMirror { border: 1px solid black; font-size: 14px; line-height: 18px; resize: none; .cm-tab { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=); background-position: right; background-repeat: no-repeat; } pre { overflow: hidden; margin: 0; padding: 0; border-width: 0; border-radius: 0; background: transparent; white-space: pre; word-wrap: normal; font-size: inherit; font-family: inherit; resize: none; &.CodeMirror-cursor { @extend %ui-depth1; position: absolute; visibility: hidden; width: 0; border-right: none; border-left: 1px solid $black; } } } .CodeMirror-focused pre.CodeMirror-cursor { visibility: visible; } .CodeMirror-code pre { width: -webkit-fit-content; width: -moz-fit-content; width: fit-content; } .CodeMirror-scroll { margin-right: 0px; } } .capa-message { display: inline-block; color: $gray-d1; -webkit-font-smoothing: antialiased; } // +Problem - Actions // ==================== div.problem .action { min-height: $baseline; width: 100%; display: flex; display: -ms-flexbox; -ms-flex-align: start; flex-direction: row; align-items: center; flex-wrap: wrap; .problem-action-buttons-wrapper { display: inline-flex; justify-content: flex-end; width: 100%; padding-bottom: $baseline; } .problem-action-button-wrapper { @include border-right(1px solid $gray-300); @include padding(0, 13px); // to create a 26px gap, which is an a11y recommendation display: inline-block; &:last-child { border: none; padding-right: 0; } } .problem-action-btn { border: none; max-width: 110px; &:hover, &:focus, &:active { color: $primary !important; } .icon { margin-bottom: $baseline / 10; display: block; } @media print { display: none; } } .submit-attempt-container { padding-bottom: $baseline; flex-grow: 1; display: flex; align-items: center; @media (max-width: $bp-screen-lg) { max-width: 100%; padding-bottom: $baseline; } .submit { @include margin-right($baseline / 2); @include float(left); white-space: nowrap; } .submit-cta-description { color: $primary; font-size: small; padding-right: $baseline / 2; } .submit-cta-link-button { color: $primary; padding-right: $baseline / 4; } } .submission-feedback { @include margin-right($baseline / 2); margin-top: $baseline / 2; display: inline-block; color: $gray-d1; font-size: $medium-font-size; -webkit-font-smoothing: antialiased; vertical-align: middle; &.cta-enabled { margin-top: 0; } } } // +Problem - Misc, Unclassified Mess Part 2 // ==================== div.problem { hr { float: none; clear: both; margin: 0 0 .75rem; width: 100%; height: 1px; border: none; background: #ddd; color: #ddd; } .hidden { display: none; visibility: hidden; } #{$all-text-inputs} { display: inline; width: auto; } // this supports a deprecated element and should be removed once the center tag is removed center { display: block; margin: lh() 0; padding: lh(); border: 1px solid $gray-l3; } .message { font-size: inherit; } .detailed-solution > p { margin: 0; &:first-child { @extend %t-strong; margin-bottom: 0; } } .detailed-targeted-feedback, .detailed-targeted-feedback-partially-correct, .detailed-targeted-feedback-correct { > p { margin: 0; font-weight: normal; &:first-child { @extend %t-strong; } } } div.capa_alert { margin-top: $baseline; padding: 8px 12px; border: 1px solid $warning-color; border-radius: 3px; background: $warning-color-accent; font-size: 0.9em; } .notification { @include float(left); margin-top: $baseline / 2; padding: ($baseline / 2.5) ($baseline / 2) ($baseline / 5) ($baseline / 2); line-height: $base-line-height; &.success { @include notification-by-type($success); } &.error { @include notification-by-type($danger); } &.warning { @include notification-by-type($warning); } &.general { @include notification-by-type($general-color-accent); } &.problem-hint { border: 1px solid $uxpl-gray-background; border-radius: 6px; .icon { @include margin-right(3 * $baseline / 4); color: $uxpl-gray-dark; } li { color: $uxpl-gray-base; strong { color: $uxpl-gray-dark; } } } .icon { @include float(left); position: relative; top: $baseline / 5; } .notification-message { display: inline-block; width: flex-grid(7,10); // Make notification tall enough that when the "Review" button is displayed, // the notification does not grow in height. margin-bottom: 8px; ol { list-style: none outside none; padding: 0; margin: 0; li:not(:last-child) { margin-bottom: $baseline / 4; } } } .notification-btn-wrapper { @include float(right); } } .notification-btn { @include float(right); padding: ($baseline / 10) ($baseline / 4); min-width: ($baseline * 3); display: block; clear: both; &:first-child { margin-bottom: $baseline / 4; } } // override default button hover button { &:hover { background-image: none; box-shadow: none; } &:focus { box-shadow: none; } &.btn-default { background-color: transparent; } &.btn-brand { &:hover { background-color: $btn-brand-focus-background; } } } .review-btn { color: $blue; // notification type has other colors &.sr { color: $blue; } } div.capa_reset { padding: 25px; border: 1px solid $error-color; background-color: lighten($error-color, 25%); border-radius: 3px; font-size: 1em; margin-top: $baseline/2; margin-bottom: $baseline/2; } .capa_reset>h2 { color: #a00; } .capa_reset li { font-size: 0.9em; } .hints { border: 1px solid $gray-l3; h3 { @extend %t-strong; padding: 9px; border-bottom: 1px solid #e3e3e3; background: #eee; text-shadow: 0 1px 0 $white; font-size: em(16); } div { border-bottom: 1px solid #ddd; &:last-child { border-bottom: none; } p { margin-bottom: 0; } header { a { display: block; padding: 9px; background: $gray-l6; box-shadow: inset 0 0 0 1px $white; } } > section { padding: 9px; } } } .test { padding-top: 18px; header { margin-bottom: 12px; h3 { @extend %t-strong; color: #aaa; font-style: normal; font-size: 0.9em; } } > section { position: relative; margin-bottom: ($baseline/2); padding: 9px 9px $baseline; border: 1px solid #ddd; border-radius: 3px; background: $white; box-shadow: inset 0 0 0 1px #eee; p:last-of-type { margin-bottom: 0; } .shortform { margin-bottom: .6em; } a.full { @include position(absolute, 0 0 1px 0); box-sizing: border-box; display: block; padding: ($baseline/5); background: $gray-l4; text-align: right; font-size: 1em; &.full-top { @include position(absolute, 1px 0 auto 0); } &.full-bottom { @include position(absolute, auto 0 1px 0); } } } } .external-grader-message { section { padding-top: ($baseline*1.5); padding-left: $baseline; background-color: #fafafa; color: #2c2c2c; font-size: 1em; font-family: monospace; header { font-size: 1.4em; } .shortform { @extend %t-strong; } .longform { margin: 0; padding: 0; .result-errors { margin: ($baseline/4); padding: ($baseline/2) ($baseline/2) ($baseline/2) ($baseline*2); background: url('#{$static-path}/images/incorrect-icon.png') center left no-repeat; li { color: #b00; } } .result-output { margin: $baseline/4; padding: $baseline 0 ($baseline*0.75) 50px; border-top: 1px solid #ddd; border-left: $baseline solid #fafafa; h4 { font-size: 1em; font-family: monospace; } dl { margin: 0; } dt { margin-top: $baseline; } dd { margin-left: 24pt; } } .result-correct { background: url('#{$static-path}/images/correct-icon.png') left 20px no-repeat; .result-actual-output { color: #090; } } .result-partially-correct { background: url('#{$static-path}/images/partially-correct-icon.png') left 20px no-repeat; .result-actual-output { color: #090; } } .result-incorrect { background: url('#{$static-path}/images/incorrect-icon.png') left 20px no-repeat; .result-actual-output { color: #b00; } } .markup-text{ margin: ($baseline/4); padding: $baseline 0 15px 50px; border-top: 1px solid #ddd; border-left: 20px solid #fafafa; bs { color: #b00; } bg { color: #bda046; } } } } } } // +Problem - Rubric // ==================== div.problem { .rubric { tr { margin: ($baseline/2) 0; height: 100%; } td { margin: ($baseline/2) 0; padding: $baseline 0; height: 100%; } th { margin: ($baseline/4); padding: ($baseline/4); } label, .view-only { position: relative; display: inline-block; margin: 3px; padding: ($baseline*0.75); min-width: 50px; min-height: 50px; width: 150px; height: 100%; background-color: $gray-l3; font-size: .9em; } .grade { position: absolute; right: 0; bottom: 0; margin: ($baseline/2); } .selected-grade { background: #666; color: white; } input[type=radio]:checked + label { background: #666; color: white; } input[class='score-selection'] { display: none; } } } // +Problem - Annotation // ==================== div.problem { .annotation-input { margin: 0 0 1em 0; border: 1px solid $gray-l3; border-radius: 1em; .annotation-header { @extend %t-strong; padding: .5em 1em; border-bottom: 1px solid $gray-l3; } .annotation-body { padding: .5em 1em; } a.annotation-return { float: right; font: inherit; font-weight: normal; } a.annotation-return::after { content: " \2191" } .block, ul.tags { margin: .5em 0; padding: 0; } .block-highlight { padding: .5em; border: 1px solid darken($annotation-yellow, 10%); background-color: $annotation-yellow; color: #333; font-style: normal; } .block-comment { font-style: italic; } ul.tags { display: block; margin-left: 1em; list-style-type: none; li { position: relative; display: block; margin: 1em 0 0 0; .tag { @extend %ui-fake-link; display: inline-block; margin-left: ($baseline*2); border: 1px solid rgb(102,102,102); &.selected { background-color: $annotation-yellow; } } .tag-status { position: absolute; left: 0; } .tag-status, .tag { padding: .25em .5em; } } } textarea.comment { $num-lines-to-show: 5; $line-height: 1.4em; $padding: .2em; padding: $padding (2 * $padding); width: 100%; height: ($num-lines-to-show * $line-height) + (2*$padding) - (($line-height - 1)/2); line-height: $line-height; } .answer-annotation { display: block; margin: 0; } /* for debugging the input value field. enable the debug flag on the inputtype */ .debug-value { margin: 1em 0; padding: 1em; border: 1px solid $black; background-color: #999; color: $white; input[type="text"] { width: 100%; } pre { background-color: $gray-l3; color: $black; } &::before { @extend %t-strong; display: block; content: "debug input value"; font-size: 1.5em; } } } } // +Problem - Choice Text Group // ==================== div.problem { .choicetextgroup { @extend %choicegroup-base; input[type="text"]{ margin-bottom: 0.5em; } label.choicetextgroup_correct, section.choicetextgroup_correct { @extend label.choicegroup_correct; input[type="text"] { border-color: $correct; } } label.choicetextgroup_partially-correct, section.choicetextgroup_partially-correct { @extend label.choicegroup_partially-correct; input[type="text"] { border-color: $partially-correct; } } label.choicetextgroup_incorrect, section.choicetextgroup_incorrect { @extend label.choicegroup_incorrect; } label.choicetextgroup_submitted, section.choicetextgroup_submitted { @extend label.choicegroup_submitted; } label.choicetextgroup_show_correct, section.choicetextgroup_show_correct { &::after { @include margin-left($baseline*0.75); content: url('#{$static-path}/images/correct-icon.png'); } } span.mock_label { cursor : default; } } } // +Problem - Image Input Overrides // ==================== // NOTE: temporary override until image inputs use same base html structure as other common capa input types. div.problem .imageinput.capa_inputtype { .status { display: inline-block; position: relative; top: 3px; width: 25px; height: 20px; &.unsubmitted, &.unanswered { .status-icon { content: ''; } .status-message { display: none; } } } .correct { @include status-icon($correct, $checkmark-icon); } .incorrect { @include status-icon($incorrect, $cross-icon); } .partially-correct { @include status-icon($partially-correct, $asterisk-icon); } .submitted { content: ''; } } // +Problem - Annotation Problem Overrides // ==================== // NOTE: temporary override until annotation problem inputs use same base html structure as other common capa input types. div.problem .annotation-input { .tag-status { display: inline-block; position: relative; top: 3px; width: 25px; height: 20px; &.unsubmitted, &.unanswered { .status-icon { content: ''; } .status-message { display: none; } } } .correct { @include status-icon($correct, $checkmark-icon); } .incorrect { @include status-icon($incorrect, $cross-icon); } .partially-correct { @include status-icon($partially-correct, $asterisk-icon); } .submitted { content: ''; } } // Loading Spinner // ==================== .problems-wrapper .loading-spinner { text-align: center; color: $gray-d1; }