// 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 background-color: white // 2. Columns & Tasks // =================== // 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