habitica/website/public/css/tasks.styl

632 lines
14 KiB
Stylus
Raw Normal View History

// 1. Set up color classes
// ========================
2014-04-03 08:19:54 +00:00
// Color variables are defined in "./global-colors.styl"
// array of keywords and their associated color vars
$stages = (worst $worst) (worse $worse) (bad $bad) (neutral $neutral) (good $good) (better $better) (best $best)
// for each color stage, generate a named class w/ the appropriate color
for $stage in $stages
.task-column:not(.rewards)
.color-{$stage[0]}:not(.completed)
2013-03-25 14:05:44 +00:00
background-color: $stage[1]
border: 1px solid shade($stage[1],10%)
.priority-multiplier, .task-attributes, .repeat-days
li
hrpg-button-color-mixin($stage[1])
button
&.active
box-shadow: inset 0 0 0 1px darken($stage[1],40%) !important
background-color: darken($stage[1],5%) !important
&:focus
border: 1px solid darken($stage[1],30%)
outline: 0
.plusminus
.task-checker
label:after
border: 1px solid darken($stage[1], 30%) !important
input[type=checkbox]:checked + label:after
//border: 1px solid darken($stage[1], 50%) !important
box-shadow: inset 0 0 0 1px darken($stage[1],40%) !important
background-color: darken($stage[1],5%) !important
.save-close, .task-checklist-edit li
hrpg-button-color-mixin(darken($stage[1],5%))
button
&:focus
border: 1px solid darken($stage[1],30%)
outline: 0
.task-actions
background-color: darken($stage[1], 30%)
.action-yesno label,
.task-action-btn,
.task-actions a
background-color: darken($stage[1], 30%)
&:hover, &:focus
background-color: darken($stage[1], 40%)
.task-actions a:nth-of-type(2)
border-top: 1px solid darken($stage[1],50%) // If there are two habit buttons (+ -), add a border to separate them
.task-options
background-color: $stage[1]
.option-group:not(.task-checklist)
border-bottom: 1px solid darken($stage[1], 15%)
.option-content
border-color: darken($stage[1], 16.18%) !important
&:hover
border-color: darken($stage[1], 32.8%) !important
&:focus
border-color: darken($stage[1], 61.8%) !important
outline: none;
// completed has to be outside the loop to override the color class
.completed
color: darken($completed,30%)
background-color: $completed
border: 1px solid shade($completed,10%)
.priority-multiplier, .task-attributes, .repeat-days
li
hrpg-button-color-mixin($completed)
button
&.active
box-shadow: inset 0 0 0 1px darken($completed,40%) !important
background-color: darken($completed,5%) !important
&:focus
border: 1px solid darken($completed,30%)
outline: 0
.plusminus
.task-checker
label:after
border: 1px solid darken($completed, 30%) !important
input[type=checkbox]:checked + label:after
box-shadow: inset 0 0 0 1px darken($completed,40%) !important
background-color: darken($completed,5%) !important
.save-close, .task-checklist-edit li
hrpg-button-color-mixin(darken($completed,5%))
button
&:focus
border: 1px solid darken($completed,30%)
outline: 0
.action-yesno label,
.task-action-btn
background-color: darken($completed, 30%)
&:hover, &:focus
background-color: darken($completed, 40%)
.task-options
background-color: $completed
.option-group:not(.task-checklist)
border-bottom: 1px solid darken($completed, 15%)
.option-content
border-color: darken($completed, 16.18%) !important
&:hover
border-color: darken($completed, 32.8%) !important
&:focus
border-color: darken($completed, 61.8%) !important
outline: 0;
.reward, .reward-item
2013-02-08 18:29:09 +00:00
background-color: white
border: 1px solid $completed !important
2013-02-08 18:29:09 +00:00
// 2. Columns & Tasks
// ===================
2013-03-05 00:42:48 +00:00
.tasks-lists
.row
margin-left: -5px
margin-right: -5px
.col-md-3
padding-left: 10px // Override Bootstrap 15px padding
padding-right: 10px // Override Bootstrap 15px padding
margin-bottom: 15px
// main columns
// ------------
.task-column
padding: 1.5em
background: $color-tasks
border: 1px solid darken($color-tasks,16.18%)
font-family: 'Lato', sans-serif
h2
color: darken($color-tasks,61.8%)
.task-column_title
margin: 0 0 0.5em
padding: 0
2014-02-10 18:04:57 +00:00
font-weight: 300
2014-02-04 21:21:12 +00:00
// 50% width columns with scrollbars for tablets
@media (min-width: 768px) and (max-width: 970px)
.task-column
max-height: 18.6em
overflow-y: scroll
// "Add new task" form
// -----------------
.task-add
2015-02-17 14:37:26 +00:00
position: relative
margin-top: 1.5em
@extend $hrpg-button-with-input
hrpg-button-color-mixin($color-options-submenu)
input, button
height: 2.618em
2015-02-17 14:37:26 +00:00
input, textarea
width: 80%
2015-02-17 14:37:26 +00:00
textarea
float: none
resize: vertical
border-radius: 4px 0 0 4px
+ button
position: absolute
top: 0
bottom: 0
right: 0
height: 100%
button
width: 20%
span
font-size: 0.8em
2015-02-17 03:21:49 +00:00
.help-block a
border: 0
float: right
font-size: 0.85em
// an individual task entry
// ------------------------
.task
list-style: none
clear: both
2013-03-25 14:05:44 +00:00
padding: 0
min-height: 3em
margin-bottom: 0.75em
// box-shadow: inset 0 0 1px rgba(0,0,0,0.5)
2013-03-25 14:05:44 +00:00
position: relative
&:hover
cursor: move
:last-child
margin-bottom: 0
label
font-weight: 400
input[type="text"], input[type="number"], textarea.option-content
border: 1px solid #aaa
border-radius: 0.382em
padding-left: 0.618em
background-color: #fff !important
-webkit-appearance: none
-moz-appearance: none
appearance: none
box-shadow: none //remove red glow in Firefox
// task content
.task-text
2013-03-25 14:05:44 +00:00
display: block
padding: 0.75em 0 0.75em 3.75em
2013-03-21 02:32:01 +00:00
line-height: 1.4
word-wrap: break-word
markdown > ul > li // Otherwise, + gets turned into a bullet and gets masked by buttons
margin-left:20px
span.emoji
width:1.5em
height:1.5em
background-size:1.5em
vertical-align: middle
// when a task is being dragged
2014-02-06 17:35:12 +00:00
.task.ui-sortable-helper
box-shadow: 0 0 3px rgba(0,0,0,0.15), 0 0 5px rgba(0,0,0,0.1)
transform: scale(1.05)
outline: 1px solid rgba(0,0,0,0.2)
// primary task commands
// ----------------------
.task-controls
2013-03-21 02:32:01 +00:00
display: inline-block
float: left
margin-left: -0.5em
margin-right: 0.5em
2013-03-25 14:05:44 +00:00
.task-controls.task-primary
position: absolute
top: 0
bottom: 0
left: 0
float: none
margin: 0
// plus/minus commands
.task-action-btn
display: inline-block
width: 2.12765em
height: 2.12765em
padding: 0
font-size: 1.41em
line-height: 2.12765
text-align: center
color: #222
vertical-align: top
border-right: 1px solid rgba(0,0,0,0.25)
&:last-child
border: 0
&:hover, &:focus
color: #222
text-decoration: none
// checkbox
.task-checker input[type=checkbox]
margin: 0
padding: 0
visibility: hidden
.task-checker label
display: inline-block
width: 3em
2013-03-25 14:05:44 +00:00
height: 100%
margin: 0
vertical-align: top
cursor: pointer
// plus/minus checkbox
.plusminus
text-align: center
.task-checker
font-size: 1.5em // 1.41em
@extend $hrpg-button
margin-bottom: 0.5em
&:first-of-type
margin-right: 0.5em
label:after
width: 2em
line-height: 1.5
label[for$="plus"]:after
content: ''
label[for$="minus"]:after
content: ''
// yes/no checkbox
.action-yesno
position: relative
// uncompleted icon
label:after, label:before
2013-03-15 16:21:27 +00:00
content: ''
display: block
height: 1.714285714em
width: 1.714285714em
font-size: 1.75em
line-height: 1.714285714em
text-align: center
color: black
opacity: 0.2
2013-03-15 16:21:27 +00:00
label:after
2013-05-07 07:43:39 +00:00
height 10px
width 10px
margin 15px auto
border 1px solid #222
label:before
position: absolute
left: 0
// hint at completed icon
2013-03-15 16:21:27 +00:00
label:hover:before,
label:focus:before
content: ''
label:hover:after,
label:focus:after
content: "\E013"
font-family: "Glyphicons Halflings"
border: none
margin: 0
line-height: 1.714285714em
height: 1.714285714em
width: 1.714285714em
text-align: center
opacity: 0.5 !important
label:active:after
opacity: 0.75 !important
// completed icon
input[type=checkbox]:checked + label:after
content: "\E013"
font-family: "Glyphicons Halflings"
border: none
margin: 0
line-height: 1.714285714em
height: 1.714285714em
width: 1.714285714em
text-align: center
opacity: 0.75
// secondary task commands
// -----------------------
.task-meta-controls
float: right
margin: 0.75em 0.5em 0 0.5em
2013-03-25 14:05:44 +00:00
height: 1em
opacity: 0.25
a
text-decoration: none
// improve alignment of task icons
.glyphicon-signal
margin-left: 0.25em
.glyphicon-remove, .glyphicon-ok, a.badge
margin-right: 0.25em
.glyphicon-tags
margin-left: 0.1em
margin-right: 0.4em
a.badge
2014-02-11 17:37:20 +00:00
position: relative; top:-2px
.task:hover .task-meta-controls
opacity: 1
2013-03-21 18:49:07 +00:00
.popover
line-height: 1.5
// prevent box-shadow from being clipped/overlapped
margin-bottom: 10px
margin-right: 5px
// task editing
// ------------
2013-03-25 14:05:44 +00:00
form
margin-bottom: 0 // stupid bootstrap override
[class$="-options"]
2013-03-25 14:05:44 +00:00
padding: 1em 1em 0
color: #333
2013-03-25 14:05:44 +00:00
position: relative
2013-05-07 07:43:39 +00:00
//background-color:
.option-group
//border-bottom: 1px solid rgba(0,0,0,0.1)
padding: 0 0 1em
margin-bottom: 1em
.option-title
font-size: 1em
margin: 0 0 0.5em
line-height: 2.5
border: 0
padding: 0
//color: #333
//font-style: italic
font-weight: bold
text-align: center
&.mega
cursor: pointer
//font-style: normal
&:after
font-family: "Glyphicons Halflings"
font-size: 0.75em
content: "\E114"
padding-left: 0.75em
//&:not(.mega):after
//content: ':'
.option-content
height: 2.5em
width: 100%
margin: 0 0 1em
padding: 0 0 0 0.5em
2013-03-18 18:02:30 +00:00
textarea.option-content
height: 5em
padding-top: 0.25em
resize: none
margin-bottom: 0
.option-short
2013-03-18 18:02:30 +00:00
.option-content
width: 4em
2013-03-18 18:02:30 +00:00
display: inline-block
.input-suffix
vertical-align: 20%
padding-left: 0.25em
2013-03-18 18:02:30 +00:00
.option-medium
.option-content
width: 6em
display: inline-block
.input-suffix
vertical-align: 20%
padding-left: 0.25em
// button-group
.task-controls.tile-group
display: block
text-align: center
margin: 0
2014-02-09 15:16:43 +00:00
&.task-attributes
text-align: left
.task-action-btn.tile
border: 0
font-size: 1.15em
font-weight: 300
outline: 1px solid rgba(0,0,0,0.2)
outline-offset: -1px
2014-02-11 17:37:20 +00:00
margin: 0 0 0 3px
font-family: 'Lato', sans-serif
text-align: inherit
opacity: 0.5
width: auto
padding: 0 0.5em
&.active
opacity: 1
.tile.solid
opacity: 1
2013-03-06 06:15:45 +00:00
.tile.spacious
margin: 0.75em 0
2013-03-25 14:05:44 +00:00
font-size: 1.25em
2013-03-06 06:15:45 +00:00
opacity: 1
.tile.bright
background-color: lighten($best, 20%)
&:hover, &:focus
background-color: lighten($best, 40%)
.tile.flush
margin-left: 0
border: 1px solid rgba(0,0,0,0.2)
outline: 0
line-height: 2em
&:first-child
border-right: 0
2014-02-11 17:37:20 +00:00
.task-options
.task-action-btn.tile
margin: 3px
form
padding-bottom: 1em
.priority-multiplier, .task-attributes, .repeat-days
text-align: center
li
@extend $hrpg-button
margin-bottom: 1em
margin-right: 0.75em
display: inline-block
&:last-of-type
margin-right: 0
.repeat-days
li
button
min-width: 2.5em
.save-close
text-align: center
@extend $hrpg-button
// Habits task button styles (+ -)
.habits
.task-actions
width: 3em
height: 100%
a
display: block
width: 100%
height: 100%
position: relative
font-size: 0.8em
span
position: absolute
margin: auto
display: block
height: 1em
width: 1em
top: 0
left: 0
bottom: 0
right: 0
&:hover, &:focus
color: #222
text-decoration: none
.habit-wide
// When there are two buttons...
min-height: 4.5em
.task-actions
a
height: 50%
.habit-narrow
// When there are no buttons...
.task-actions
display: none
.task-text
padding-left: 1em
// todos ui
// --------
2013-12-30 04:10:27 +00:00
// Checklists
// --------
.task-checklist-edit
> ul
text-align: center
li
@extend $hrpg-button
button
span
margin-right: 0.5em
> form
li
@extend $hrpg-button-with-input
@extend $clearfix
input
width: 70%
/* Add interaction cues on hover and focus */
&:hover,&:focus
background-color: #FFD
transition: background-color 0.5s
.checklist-icon
opacity:0.25
text-align: center
line-height: 1.5
float: left
padding: 0.25em 0.5em
li
margin-bottom: 1em
&:hover .checklist-icon
opacity:1
// Task filters
// --------
.task-filter
margin: 1.5em 0 1em 0
hrpg-button-bar-mixin($color-tasks)
@extend $hrpg-button-bar
width: 100%
li
@extend $hrpg-button-master
hrpg-button-color-mixin($color-tasks)
width: 33.333%
text-align: center
&:nth-child(3n + 1):nth-last-child(2),
&:nth-child(3n + 1):nth-last-child(2) + li
width: 50%;
a
width: 100%
height: 100%
.rewards
.task
min-height: 3.07em // Temp fix for slight misalignment of btn-buy
.task-filter
li:nth-child(3n + 1):nth-last-child(2)
width: 33.333%
li:nth-child(3n + 1):nth-last-child(2) + li
width: 66.666%
.btn-buy
word-wrap: break-word
padding-left: 0.2em
text-align: left
border:none
span
position: relative
left: -2px
&:only-child
position: static
padding-left: 0.75em
&.highValue // If reward value exceeds three digits, drop the number below the coin icon
padding: 0.3em
text-align: center
span
display: block
margin: auto
.shop_gold + .reward-cost
line-height: 1
top: -0.1em