habitica-self-host/styles/app/tasks.styl

220 lines
4.4 KiB
Stylus
Raw Normal View History

// 1. Set up color classes
// ========================
// color variables
$worst = rgb(230, 184, 175)
$worse = rgb(244, 204, 204)
$bad = rgb(252, 229, 205)
$neutral = rgb(255, 242, 204)
$good = rgb(217, 234, 211)
$better = rgb(208, 224, 227)
$best = rgb(201, 218, 248)
$completed = rgb(217, 217, 217)
// 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
.color-{$stage[0]}
background-color: $stage[1]
.task-checker label,
.action-plus,
.action-minus
background-color: darken($stage[1], 30%)
// completed has to be outside the loop to override the color class
.completed
background-color: $completed
color: #999
.task-checker label
background-color: darken($completed, 30%)
.reward
2013-02-08 18:29:09 +00:00
background-color: white
2013-02-08 18:29:09 +00:00
// 2. Columns & Tasks
// ===================
2013-03-05 00:42:48 +00:00
// main columns
// ------------
.task-column
padding: 1.5em
background: #f5f5f5
border: 1px solid #ccc
font-family: 'Lato', sans-serif
.task-column_title
margin: 0 0 0.5em
padding: 0
hr
border: 0
border-bottom: 1px solid #ddd
// add new task form
// -----------------
.addtask-form
margin-bottom: 0.75em
outline: 1px solid rgba(0,0,0,0.15)
outline-offset: -1px
// the input field
.addtask-field
display: inline-block
width: 80% // fallback for Safari 5.1
width: calc(unquote('100% - 3em'))
input
font-family: 'Lato', sans-serif
border: 0
outline: 0
border-radius: 0
box-shadow: none
background-color: white
height: 2.5em
padding: 0 0 0 0.5em
width: 100%
&:focus
box-shadow: inset 0 0 3px darken($best, 20%)
// the button
.addtask-btn
display: inline-block
// important for overriding bootstrap, remove later
width: 1.51515em !important
height: 1.51515em
padding: 0
font-size: 1.65em
line-height: 1.55
outline: 0
border: 0
background-color: darken($best, 20%)
opacity: 0.75
&:hover,
&:focus
opacity: 1
background-color: darken($best, 20%)
&:active
background-color: darken($best, 30%)
opacity: 1
// an individual task entry
// ------------------------
.task
list-style: none
clear: both
padding: 0 0.5em 0 0.5em
min-height: 2.5em
line-height: 2.5
margin-bottom: 0.75em
outline: 1px solid rgba(0,0,0,0.1)
outline-offset: -1px
&:hover
cursor: move
&:last-child
margin-bottom: 0
// task content
.task-text
display: inline
// primary task commands
// ----------------------
.task-controls
display: inline
margin-left: -0.5em
margin-right: 0.5em
// plus/minus commands
.task-action-btn
display: inline-block
width: 1.773em
height: 1.773em
padding: 0
font-size: 1.41em
line-height: 1.773
text-align: center
color: black
vertical-align: top
border-right: 1px solid rgba(0,0,0,0.25)
&:last-child
border: 0
&:hover, &:focus
text-decoration: none
// checkbox
.task-checker input[type=checkbox]
margin: 0
padding: 0
visibility: hidden
.task-checker label
display: inline-block
width: 2.5em
height: 2.5em
margin: 0
vertical-align: top
cursor: pointer
// uncompleted icon
&:after
content: ''
display: block
font-size: 3em
line-height: 0.76
text-align: center
color: black
opacity: 0.2
// hint at completed icon
&:hover:after,
&:focus:after
content: '¬'
font-size: 3em
line-height: 1.1
text-align: left
transform: rotate(135deg)
opacity: 0.5 !important
&:active:after
opacity: 0.75 !important
// completed icon
.task-checker input[type=checkbox]:checked + label:after
content: '¬'
transform: rotate(135deg)
line-height: 1.1
text-align: left
opacity: 0.75
// secondary task commands
// -----------------------
.task-meta-controls
float: right
margin-left: 0.25em
opacity: 0.25
a > i
margin-left: 0.125em
.task-notes
margin-left: 0.125em
.task:hover .task-meta-controls
opacity: 1
// .context-enabled
// .display-context-dependant,
// .task-list li
// display: none
// &.context-completed
// .show-for-completed, .completed
// display: block
// &.context-uncompleted
// .show-for-uncompleted, .uncompleted
// display: block