Files
habitica/website/client/src/assets/scss/task.scss
T
2022-08-08 15:50:37 -05:00

399 lines
12 KiB
SCSS

@mixin habit-controls($disabled-color, $active-color) {
&-habit-control-disabled {
.habit-option-button {
border: 2px solid $disabled-color;
}
// TODO refactor to use more css-vars and less duplicate generated css code
&:hover, &:focus, &:active {
.habit-option-button {
border: 2px solid $active-color;
}
.habit-option-icon, .habit-option-label { color: $active-color !important; }
}
}
}
@mixin modal-text-input($color) {
&-text::placeholder { color: $color !important; }
&-input {
border: 0 !important;
&:focus, &:active {
box-shadow: 0 0 0 1px $color !important;
}
}
}
.task {
&-worst { // dark red
&-control {
&-bg {
background: $maroon-100 !important;
.habit-control:not(.task-not-scoreable):hover { background: rgba($black, 0.5) !important; }
.daily-todo-control:not(.task-not-scoreable):hover { background: rgba($white, 0.75) !important; }
}
&-bg-noninteractive { background: $maroon-100 !important; }
&-inner-habit { background: rgba($black, 0.25) !important; }
&-inner-habit-noninteractive { border: 1px solid rgba($red-1, 0.5) !important; }
&-inner-daily-todo { background: rgba($white, 0.5) !important; }
&-checkbox, &-icon { color: $red-1 !important; }
}
&-modal {
&-bg { background: $maroon-100 !important; }
&-headings { color: $white !important; }
&-icon { color: $maroon-100 !important; }
&-text { color: $red-1 !important; }
&-content {
--svg-color: #{$maroon-100};
}
@include modal-text-input($red-1);
&-option-disabled:hover {
.svg-icon { color: $maroon-100 !important; }
.option-item-label { color: $maroon-50 !important; }
}
@include habit-controls($gray-300, $maroon-100);
}
}
&-worse { // light red
&-control {
&-bg {
background: $red-100 !important;
.habit-control:not(.task-not-scoreable):hover { background: rgba($black, 0.5) !important; }
.daily-todo-control:not(.task-not-scoreable):hover { background: rgba($white, 0.75) !important; }
}
&-bg-noninteractive { background: $red-100 !important; }
&-inner-habit { background: rgba($black, 0.25) !important; }
&-inner-habit-noninteractive { border: 1px solid rgba($red-1, 0.5) !important; }
&-inner-daily-todo { background: rgba($white, 0.5) !important; }
&-checkbox, &-icon { color: $red-1 !important; }
}
&-modal {
&-bg { background: $red-100 !important; }
&-headings, &-text { color: $red-1 !important; }
&-icon { color: $red-100 !important; }
&-content {
--svg-color: #{$red-100};
}
@include modal-text-input($red-1);
&-option-disabled:hover {
.svg-icon { color: $red-100 !important; }
.option-item-label { color: $red-10 !important; }
}
@include habit-controls($gray-300, $red-100);
}
}
&-bad { // orange
&-control {
&-bg {
background: $orange-100 !important;
.habit-control:not(.task-not-scoreable):hover { background: rgba($orange-1, 0.5) !important; }
.daily-todo-control:not(.task-not-scoreable):hover { background: rgba($white, 0.75) !important; }
}
&-bg-noninteractive { background: $orange-100 !important; }
&-inner-habit { background: rgba($orange-1, 0.25) !important; }
&-inner-habit-noninteractive { border: 1px solid rgba($orange-1, 0.5) !important; }
&-inner-daily-todo { background: rgba($white, 0.5) !important; }
&-checkbox, &-icon { color: $orange-1 !important; }
}
&-modal {
&-bg { background: $orange-100 !important; }
&-headings, &-text { color: $orange-1 !important; }
&-icon { color: $orange-100 !important; }
&-content {
--svg-color: #{$orange-100};
}
@include modal-text-input($orange-1);
&-option-disabled:hover {
.svg-icon { color: $orange-100 !important; }
.option-item-label { color: $orange-1 !important; }
}
@include habit-controls($gray-300, $orange-100);
}
}
&-neutral { // yellow
&-control {
&-bg {
background: $yellow-100 !important;
.habit-control:not(.task-not-scoreable):hover { background: rgba($yellow-1, 0.5) !important; }
.daily-todo-control:not(.task-not-scoreable):hover { background: rgba($white, 0.75) !important; }
}
&-bg-noninteractive { background: $yellow-100 !important; }
&-inner-habit { background: rgba($yellow-1, 0.25) !important; }
&-inner-habit-noninteractive { border: 1px solid rgba($yellow-1, 0.5) !important; }
&-inner-daily-todo { background: rgba($white, 0.5) !important; }
&-checkbox, &-icon { color: $yellow-1 !important; }
}
&-modal {
&-bg { background: $yellow-100 !important; }
&-headings, &-text { color: $yellow-1 !important; }
&-icon { color: $yellow-100 !important; }
@include modal-text-input($yellow-1);
&-option-disabled:hover {
.svg-icon { color: $yellow-100 !important; }
.option-item-label { color: #bf7d1a !important; }
}
&-content {
--svg-color: #{$yellow-100};
}
@include habit-controls($gray-300, $yellow-100);
}
}
&-good { // green
&-control {
&-bg {
background: $green-100 !important;
.habit-control:not(.task-not-scoreable):hover { background: rgba($black, 0.5) !important; }
.daily-todo-control:not(.task-not-scoreable):hover { background: rgba($white, 0.75) !important; }
}
&-bg-noninteractive { background: $green-100 !important; }
&-inner-habit { background: rgba($black, 0.25) !important; }
&-inner-habit-noninteractive { border: 1px solid rgba($green-1, 0.5) !important; }
&-inner-daily-todo { background: rgba($white, 0.5) !important; }
&-checkbox, &-icon { color: $green-1 !important; }
}
&-modal {
&-bg { background: $green-100 !important; }
&-headings, &-text { color: $green-1 !important; }
&-icon { color: $green-10 !important; }
&-content {
--svg-color: #{$green-100};
}
@include modal-text-input($green-1);
&-option-disabled:hover {
.svg-icon { color: $green-10 !important; }
.option-item-label { color: #1ca372 !important; }
}
@include habit-controls($gray-300, $green-100);
}
}
&-better { // teal
&-control {
&-bg {
background: $teal-100 !important;
.habit-control:not(.task-not-scoreable):hover { background: rgba($black, 0.5) !important; }
.daily-todo-control:not(.task-not-scoreable):hover { background: rgba($white, 0.75) !important; }
}
&-bg-noninteractive { background: $teal-100 !important; }
&-inner-habit { background: rgba($black, 0.25) !important; }
&-inner-habit-noninteractive { border: 1px solid rgba($teal-1, 0.5) !important; }
&-inner-daily-todo { background: rgba($white, 0.5) !important; }
&-checkbox, &-icon { color: $teal-1 !important; }
}
&-modal {
&-bg { background: $teal-100 !important; }
&-headings, &-text { color: $teal-1 !important; }
&-icon { color: $teal-100 !important; }
&-content {
--svg-color: #{$teal-100};
}
@include modal-text-input($teal-1);
&-option-disabled:hover {
.svg-icon { color: $teal-100 !important; }
.option-item-label { color: $teal-10 !important; }
}
@include habit-controls($gray-300, $teal-100);
}
}
&-best { // blue
&-control {
&-bg {
background: $blue-100 !important;
.habit-control:not(.task-not-scoreable):hover { background: rgba($black, 0.5) !important; }
.daily-todo-control:not(.task-not-scoreable):hover { background: rgba($white, 0.75) !important; }
}
&-bg-noninteractive { background: $blue-100 !important; }
&-inner-habit { background: rgba($black, 0.25) !important; }
&-inner-habit-noninteractive { border: 1px solid rgba($blue-1, 0.5) !important; }
&-inner-daily-todo { background: rgba($white, 0.5) !important; }
&-checkbox, &-icon { color: $blue-1 !important; }
}
&-modal {
&-bg { background: $blue-100 !important; }
&-headings, &-text { color: $blue-1 !important; }
&-icon { color: $blue-100 !important; }
&-content {
--svg-color: #{$blue-100};
}
@include modal-text-input($blue-1);
&-option-disabled:hover {
.svg-icon { color: $blue-50 !important; }
.option-item-label { color: $blue-10 !important; }
}
@include habit-controls($gray-300, $blue-100);
}
}
&-purple { // purple, only used in modals
&-control {
&-bg {
background: $purple-task !important;
.habit-control:not(.task-not-scoreable):hover { background: rgba($black, 0.5) !important; }
.daily-todo-control:not(.task-not-scoreable):hover { background: rgba($white, 0.75) !important; }
}
&-inner-habit { background: rgba($black, 0.25) !important; }
&-inner-daily-todo { background: rgba($white, 0.5) !important; }
&-checkbox { color: $purple-task !important; }
}
&-modal {
&-bg { background: $purple-300 !important; }
&-headings { color: $white !important; }
&-icon { color: $purple-300 !important; }
&-text { color: $black !important; }
&-content {
--svg-color: #{$purple-300};
}
@include modal-text-input($black);
&-option-disabled:hover {
.svg-icon { color: $purple-300 !important; }
.option-item-label { color: $purple-200 !important; }
}
@include habit-controls($gray-300, $purple-300);
}
}
&-reward {
&-control {
&-bg {
background: rgba($yellow-100, 0.15) !important;
.small-text { color: $yellow-1 !important; }
&:hover:not(.task-not-scoreable) { background: rgba($yellow-100, 0.25) !important; }
}
&-bg-noninteractive {
background-color: $gray-500 !important;
.small-text { color: $gray-100 !important; }
}
}
}
&-disabled {
&-habit {
&-control {
&-bg { background: $gray-600; }
&-inner {
&:not(:focus) {
border: 1px solid $gray-300 !important;
}
opacity: 0.75;
.negative, .positive {
color: $gray-200;
}
}
}
}
&-daily-todo {
&-control {
&-bg {
background: $gray-200 !important;
.daily-todo-control:not(.task-not-scoreable):hover { background: rgba($white, 0.75) !important; }
}
&-bg-noninteractive {
background: $gray-200 !important;
}
&-inner { background: rgba($white, 0.5) !important; }
&-checkbox { color: $gray-10 !important; }
&-content {
background: $gray-600;
.task-title, .task-notes {
opacity: 0.75;
}
}
}
}
}
}
.task-control {
width: 28px;
height: 28px;
}
.habit-control {
border-radius: 100px;
color: $white;
&-negative {
&-enabled {
padding-top: 12px;
}
&-disabled {
padding-top: 12px;
}
}
&-positive {
&-enabled {
padding-top: 8px;
}
&-disabled {
padding-top: 8px;
}
}
.svg-icon {
width: 10px;
height: 10px;
margin: 0 auto;
}
.lock {
margin-top: 7px;
height: 12px;
width: 10px;
&.disabled {
color: $gray-10;
}
}
}
.daily-todo-control {
&:hover {
.svg-icon.check {
display: block;
}
}
.svg-icon.check {
display: none;
&.display-check-icon {
display: block;
}
}
.svg-icon.lock {
margin: 8px auto;
height: 12px;
width: 10px;
}
}