Files
edx-platform/cms/static/sass/elements/_forms.scss
Sarah Fischmann 78ef8db40a Fixing color contrast issues in Studio
AC-727
began changing colors in course content, files and uploads, and when creating a course

finished fixing contrast issues on files and uploads page

fixed advanced settings and issue with hovering in files and uploads

fixed color issues in studio home page and when hovering

fixed contrast in updates, pages, textbooks, and group configurations

fixed issues when configuring a section of a course in course outline

fixed hovering colors to make contrast more visible

fixed colors on the green button

AC-727
2017-06-29 10:02:49 -04:00

497 lines
8.6 KiB
SCSS

// studio - elements - forms
// ====================
// Table of Contents
// * +Forms - General
// * +Field - Is Editable
// * +Field - With Error
// * +Forms - Additional UI
// * +Form - Create New
// * +Form - Inline Name Edit
// * +Form - Create New Wrapper
// * +Form - Grandfathered
// +Forms - General
// ====================
// element-specific utilities
// --------------------
// UI: checkbox/radio inputs
%input-tickable {
~ label {
color: $color-copy-base;
}
// STATE: checked/selected
&:checked ~ label {
@extend %t-strong;
color: $ui-action-primary-color-focus;
}
}
input[type="text"],
input[type="email"],
input[type="password"],
textarea.text {
@include box-sizing(border-box);
@include linear-gradient($gray-l5, $white);
@extend %t-copy-sub2;
@extend %t-demi-strong;
padding: 6px 8px 8px;
border: 1px solid $gray-l2;
border-radius: 2px;
background-color: $gray-l5;
box-shadow: inset 0 1px 2px $shadow-l1;
font-family: 'Open Sans', sans-serif;
color: $color-copy-emphasized;
outline: 0;
&::-webkit-input-placeholder,
&:-moz-placeholder,
&:-ms-input-placeholder {
color: $gray-l2;
}
&:focus {
@include linear-gradient($paleYellow, tint($paleYellow, 90%));
outline: 0;
}
}
// +Fields - Not Editable
// ====================
.field.is-not-editable {
& label.is-focused {
color: $gray-d2;
}
label, input, textarea {
pointer-events: none;
}
}
// +Fields - With Error
// ====================
.field.error {
input, textarea {
border-color: $red;
}
}
// +Forms - Additional UI
// ====================
form {
// CASE: cosmetic checkbox input
.checkbox-cosmetic {
.input-checkbox-checked, .input-checkbox-unchecked, .label {
display: inline-block;
vertical-align: middle;
}
.input-checkbox-checked, .input-checkbox-unchecked {
width: ($baseline*0.75);
}
.input-checkbox {
@extend %cont-text-sr;
// CASE: unchecked
~ label .input-checkbox-checked {
display: none;
}
~ label .input-checkbox-unchecked {
display: inline-block;
}
// CASE: checked
&:checked {
~ label .input-checkbox-checked {
display: inline-block;
}
~ label .input-checkbox-unchecked {
display: none;
}
}
}
}
// CASE: checkbox input
.field-checkbox .input-checkbox {
@extend %input-tickable;
}
// CASE: radio input
.field-radio .input-radio {
@extend %input-tickable;
}
// CASE: file input
input[type="file"] {
@extend %t-copy-sub1;
}
.note {
@include box-sizing(border-box);
.title {
}
.copy {
}
// note with actions
&.has-actions {
@include clearfix();
.title {
}
.copy {
}
.list-actions {
}
}
}
.note-promotion {
}
}
// +Form - Create New
// ====================
// form styling for creating a new content item (course, user, textbook)
// TODO: refactor this into a placeholder to extend.
.form-create {
@extend %ui-window;
.title {
@extend %t-title4;
@extend %t-strong;
padding: $baseline ($baseline*1.5) 0 ($baseline*1.5);
}
fieldset {
padding: $baseline ($baseline*1.5);
}
.list-input {
@extend %cont-no-list;
.field {
margin: 0 0 ($baseline*0.75) 0;
&:last-child {
margin-bottom: 0;
}
&.required {
label {
@extend %t-strong;
}
label:after {
margin-left: ($baseline/4);
content: "*";
}
}
label, input, textarea {
display: block;
}
label {
@extend %t-copy-sub1;
@include transition(color $tmg-f3 ease-in-out 0s);
margin: 0 0 ($baseline/4) 0;
&.is-focused {
color: $blue;
}
}
input, textarea {
@extend %t-copy-base;
@include transition(all $tmg-f2 ease-in-out 0s);
height: 100%;
width: 100%;
padding: ($baseline/2);
&.long {
width: 100%;
}
&.short {
width: 25%;
}
/*@include placeholder {
color: $gray-l3;
}*/
&:focus {
+ .tip {
color: $gray-d1;
}
}
}
textarea.long {
height: ($baseline*5);
}
input[type="checkbox"] {
display: inline-block;
margin-right: ($baseline/4);
width: auto;
height: auto;
& + label {
display: inline-block;
}
}
.tip {
@extend %t-copy-sub2;
@include transition(color 0.15s ease-in-out);
display: block;
margin-top: ($baseline/4);
color: $gray-d1;
}
.tip-note {
display: block;
margin-top: ($baseline/4);
}
.tip-error {
display: none;
float: none;
}
&.error {
label {
color: $red;
}
.is-showing {
@extend %anim-fadeIn;
}
.is-hiding {
@extend %anim-fadeOut;
}
.tip-error {
display: block;
color: $red;
}
input {
border-color: $red;
}
}
}
.field-inline {
input, textarea, select {
width: 62%;
display: inline-block;
}
.tip-stacked {
display: inline-block;
float: right;
width: 35%;
margin-top: 0;
}
&.error {
.tip-error {
}
}
}
.field-group {
@include clearfix();
margin: 0 0 ($baseline/2) 0;
.field {
display: block;
width: 47%;
border-bottom: none;
margin: 0 ($baseline*0.75) 0 0;
padding: ($baseline/4) 0 0 0;
float: left;
position: relative;
&:nth-child(odd) {
float: left;
}
&:nth-child(even) {
float: right;
margin-right: 0;
}
input, textarea {
width: 100%;
}
}
}
}
.actions {
box-shadow: inset 0 1px 2px $shadow;
margin-top: ($baseline*0.75);
border-top: 1px solid $gray-l1;
padding: ($baseline*0.75) ($baseline*1.5);
background: $gray-l6;
.action {
@include transition(all $tmg-f2 linear 0s);
@extend %t-strong;
display: inline-block;
padding: ($baseline/5) $baseline;
text-transform: uppercase;
}
.action-primary {
@include blue-button;
@extend %t-action2;
}
.action-secondary {
@include grey-button;
@extend %t-action2;
}
}
}
// +Form - Inline Name Edit
// ====================
// form - inline xblock name edit on unit, container, outline
// TODO: abstract this out into a Sass placeholder
.incontext-editor.is-editable {
.incontext-editor-value,
.incontext-editor-action-wrapper {
@extend %cont-truncated;
display: inline-block;
vertical-align: middle;
max-width: 80%;
}
.incontext-editor-open-action {
@extend %ui-btn-non-blue;
@extend %t-copy-base;
padding-top: ($baseline/10);
.icon.icon {
vertical-align: baseline;
}
}
.incontext-editor-form {
display: none;
}
&.is-editing {
.incontext-editor-value,
.incontext-editor-action-wrapper {
display: none;
}
.incontext-editor-form {
display: inline-block;
}
}
}
// +Form - Create New Wrapper
// ====================
.wrapper-create-element {
height: auto;
opacity: 1.0;
pointer-events: auto;
overflow: hidden;
display: none;
&.animate {
@include transition(opacity $tmg-f1 ease-in-out 0s, height $tmg-f1 ease-in-out 0s);
}
&.is-shown {
display: block;
}
}
// +Form - Grandfathered
// ====================
input.search {
padding: 6px 15px 8px 30px;
@include box-sizing(border-box);
border: 1px solid $darkGrey;
border-radius: 20px;
background: url('#{$static-path}/images/search-icon.png') no-repeat 8px 7px #edf1f5;
font-family: 'Open Sans', sans-serif;
color: $baseFontColor;
outline: 0;
&::-webkit-input-placeholder {
color: #979faf;
}
}
label {
@extend %t-copy-sub2;
}
code {
padding: 0 4px;
border-radius: 3px;
background: #eee;
font-family: Monaco, monospace;
}
.CodeMirror {
@extend %t-copy-sub1;
background: $white;
font-family: $f-monospace;
}
.text-editor {
width: 100%;
min-height: 80px;
padding: 10px;
@include box-sizing(border-box);
border: 1px solid $mediumGrey;
@include linear-gradient(top, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.3));
background-color: #edf1f5;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset;
font-family: Monaco, monospace;
}