// 1. Set up color classes // ======================== // 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 .color-{$stage[0]} background-color: $stage[1] .action-yesno label, .task-action-btn background-color: darken($stage[1], 30%) &:hover, &:focus background-color: darken($stage[1], 40%) .task-options background-color: $stage[1] // completed has to be outside the loop to override the color class .completed background-color: $completed color: #999 .glyphicon color: #333 .task-checker label background-color: darken($completed, 30%) .task-action-btn background-color: darken($completed, 30%) .reward background-color: white // 2. Columns & Tasks // =================== .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 font-weight: 300 // 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 margin-top: 1.618em @extend $hrpg-button-with-input hrpg-button-color-mixin($color-options-submenu) input, button height: 2.618em input width: 80% button width: 20% span font-size: 0.8em // an individual task entry // ------------------------ .task list-style: none clear: both padding: 0 min-height: 3em margin-bottom: 0.75em box-shadow: inset 0 0 1px rgba(0,0,0,0.5) position: relative &:hover cursor: move :last-child margin-bottom: 0 label font-weight: 400 // task content .task-text display: block padding: 0.75em 0 0.75em 3.5em line-height: 1.4 word-wrap: break-word span.emoji width:1.5em height:1.5em background-size:1.5em .habit-wide .task-text padding-left: 7em // when a task is being dragged .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 display: inline-block float: left margin-left: -0.5em margin-right: 0.5em .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 height: 100% margin: 0 vertical-align: top cursor: pointer // plus/minus checkbox .action-plusminus label margin-right: 1.5em label:after font-size: 1.41em width: 2.12765em height: 2.12765em line-height: 2.12765 text-align: center display: inline-block vertical-align top opacity: 0.3 background-color: #ddd outline: 1px solid rgba(0,0,0,0.5) color: #222 label[for$="plus"]:after content: '+' label[for$="minus"]:after content: '−' &.select-toggle input[type=checkbox]:checked + label:after opacity: 1 // yes/no checkbox .action-yesno position: relative // uncompleted icon label:after, label:before 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 label:after height 10px width 10px margin 15px auto border 1px solid #222 label:before position: absolute left: 0 // hint at completed icon 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 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 position: relative; top:-2px .task:hover .task-meta-controls opacity: 1 .popover line-height: 1.5 // prevent box-shadow from being clipped/overlapped margin-bottom: 10px margin-right: 5px // task editing // ------------ form margin-bottom: 0 // stupid bootstrap override [class$="-options"] padding: 1em 1em 0 color: #333 position: relative //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: 1.5 border: 0 padding: 0 color: #333 font-style: italic &:not(.mega):after content: ':' &.mega cursor: pointer font-style: normal font-weight: bold text-decoration: underline .option-content height: 2.5em width: 100% margin: 0 0 1em padding: 0 0 0 0.5em outline: 0 border: 1px solid rgba(0,0,0,0.2) box-shadow: none border-radius: 0 font-family: 'Lato', sans-serif //bootstrap override textarea.option-content height: 5em padding-top: 0.25em resize: none margin-bottom: 0 .option-short .option-content width: 4em display: inline-block .input-suffix vertical-align: 20% padding-left: 0.25em .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 &.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 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 .tile.spacious margin: 0.75em 0 font-size: 1.25em 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 .task-options .task-action-btn.tile margin: 3px // todos ui // -------- // Checklists // -------- .checklist-form /* Make an input blend into its parent */ input.inline-edit reset-box-model() reset-font() line-height: inherit text-align: inherit background-color:inherit box-shadow: none width: 80% /* Add interaction cues on hover and focus */ input.inline-edit:hover,input.inline-edit:focus background-color: #FFD transition: background-color 0.5s .checklist-icons opacity:0 width: 5% li min-height: 20px padding-left: 10px margin-bottom: 5px [type="checkbox"] margin: 0px 10px 3px 0px width: 4% li:hover .checklist-icons opacity:1 // Task filters // -------- .task-filter margin: 1.618em 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-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 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 .repeat-days a border-radius: 0.382em