summaryrefslogtreecommitdiff
path: root/assets/css/src
diff options
context:
space:
mode:
authorFrédéric Guillot <fred@kanboard.net>2019-07-25 11:16:21 -0700
committerFrédéric Guillot <fred@kanboard.net>2019-07-25 11:16:21 -0700
commit9ae185c18eb06e3ce7e2daea0c61e6f6478bdca9 (patch)
treeace22189e031f7f78639f743a872d86c3a65eda0 /assets/css/src
parent2bf0f99b519aec5b2068a689a8051d88154e3850 (diff)
Remove dependency on Sass
- Convert *.sass files to vanilla CSS - Start using CSS variables - Add PHP minifier
Diffstat (limited to 'assets/css/src')
-rw-r--r--assets/css/src/accordion.css10
-rw-r--r--assets/css/src/activity_stream.css48
-rw-r--r--assets/css/src/alert.css67
-rw-r--r--assets/css/src/avatar.css40
-rw-r--r--assets/css/src/base.css65
-rw-r--r--assets/css/src/board.css143
-rw-r--r--assets/css/src/bulk_change.css13
-rw-r--r--assets/css/src/button.css63
-rw-r--r--assets/css/src/color_picker.css21
-rw-r--r--assets/css/src/comment.css65
-rw-r--r--assets/css/src/dashboard.css15
-rw-r--r--assets/css/src/dropdown.css99
-rw-r--r--assets/css/src/file_upload.css39
-rw-r--r--assets/css/src/filter_box.css13
-rw-r--r--assets/css/src/form.css269
-rw-r--r--assets/css/src/header.css68
-rw-r--r--assets/css/src/icon.css21
-rw-r--r--assets/css/src/input_addon.css52
-rw-r--r--assets/css/src/links.css21
-rw-r--r--assets/css/src/list_items.css14
-rw-r--r--assets/css/src/logo.css19
-rw-r--r--assets/css/src/markdown.css48
-rw-r--r--assets/css/src/modal.css38
-rw-r--r--assets/css/src/page_header.css70
-rw-r--r--assets/css/src/pagination.css18
-rw-r--r--assets/css/src/panel.css16
-rw-r--r--assets/css/src/print.css22
-rw-r--r--assets/css/src/project.css90
-rw-r--r--assets/css/src/select_dropdown.css68
-rw-r--r--assets/css/src/sidebar.css99
-rw-r--r--assets/css/src/slideshow.css57
-rw-r--r--assets/css/src/subtasks.css29
-rw-r--r--assets/css/src/suggest_menu.css34
-rw-r--r--assets/css/src/table.css466
-rw-r--r--assets/css/src/table_drag_and_drop.css32
-rw-r--r--assets/css/src/table_list.css174
-rw-r--r--assets/css/src/task_board.css68
-rw-r--r--assets/css/src/task_category.css18
-rw-r--r--assets/css/src/task_date.css14
-rw-r--r--assets/css/src/task_form.css69
-rw-r--r--assets/css/src/task_icons.css127
-rw-r--r--assets/css/src/task_links.css12
-rw-r--r--assets/css/src/task_list.css28
-rw-r--r--assets/css/src/task_summary.css51
-rw-r--r--assets/css/src/task_tags.css8
-rw-r--r--assets/css/src/text_editor.css29
-rw-r--r--assets/css/src/thumbnails.css59
-rw-r--r--assets/css/src/titles.css20
-rw-r--r--assets/css/src/tooltip.css25
-rw-r--r--assets/css/src/user_mention.css9
-rw-r--r--assets/css/src/variables.css69
-rw-r--r--assets/css/src/views.css69
52 files changed, 3101 insertions, 0 deletions
diff --git a/assets/css/src/accordion.css b/assets/css/src/accordion.css
new file mode 100644
index 00000000..3736159b
--- /dev/null
+++ b/assets/css/src/accordion.css
@@ -0,0 +1,10 @@
+.accordion-title {
+ font-size: 1.2em;
+ cursor: pointer;
+ margin-top: 10px
+}
+
+.accordion-content {
+ margin-top: 15px;
+ margin-bottom: 25px
+}
diff --git a/assets/css/src/activity_stream.css b/assets/css/src/activity_stream.css
new file mode 100644
index 00000000..54175cdf
--- /dev/null
+++ b/assets/css/src/activity_stream.css
@@ -0,0 +1,48 @@
+.activity-event {
+ margin-bottom: 15px;
+ padding: 10px
+}
+
+.activity-event:nth-child(even) {
+ background: var(--activity-event-background-color);
+}
+
+.activity-event:hover {
+ background: var(--activity-event-hover-color);
+}
+
+.activity-date {
+ margin-left: 10px;
+ font-weight: normal;
+ color: var(--color-light);
+}
+
+.activity-content {
+ margin-left: 55px
+}
+
+.activity-title {
+ font-weight: bold;
+ color: var(--activity-title-color);
+ border-bottom: 1px dotted var(--activity-title-border-color);
+}
+
+.activity-description {
+ color: var(--color-medium);
+ margin-top: 10px
+}
+
+@media (max-width: 480px) {
+ .activity-description {
+ overflow: auto
+ }
+}
+
+.activity-description li {
+ list-style-type: circle
+}
+
+.activity-description ul {
+ margin-top: 10px;
+ margin-left: 20px
+}
diff --git a/assets/css/src/alert.css b/assets/css/src/alert.css
new file mode 100644
index 00000000..16b60880
--- /dev/null
+++ b/assets/css/src/alert.css
@@ -0,0 +1,67 @@
+.alert {
+ padding: 8px 35px 8px 14px;
+ margin-top: 5px;
+ margin-bottom: 5px;
+ color: var(--alert-color-default);
+ background-color: var(--alert-background-color-default);
+ border: 1px solid var(--alert-border-color-default);
+ border-radius: 4px
+}
+
+.alert-success {
+ color: var(--alert-color-success);
+ background-color: var(--alert-background-color-success);
+ border-color: var(--alert-border-color-success);
+}
+
+.alert-error {
+ color: var(--alert-color-error);
+ background-color: var(--alert-background-color-error);
+ border-color: var(--alert-border-color-error);
+}
+
+.alert-info {
+ color: var(--alert-color-info);
+ background-color: var(--alert-background-color-info);
+ border-color: var(--alert-border-color-info);
+}
+
+.alert-normal {
+ color: var(--alert-color-normal);
+ background-color: var(--alert-background-color-normal);
+ border-color: var(--alert-border-color-normal);
+}
+
+.alert ul {
+ margin-top: 10px;
+ margin-bottom: 10px
+}
+
+.alert li {
+ margin-left: 25px
+}
+
+.alert-fade-out {
+ text-align: center;
+ position: fixed;
+ bottom: 0;
+ left: 20%;
+ width: 60%;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ margin-bottom: 0;
+ border-width: 1px 0 0;
+ border-radius: 4px 4px 0 0;
+ z-index: 9999;
+ opacity: 1;
+ animation: fadeout 5s linear forwards
+}
+
+@keyframes fadeout {
+ 0% {
+ opacity: 1
+ }
+ 100% {
+ opacity: 0
+ }
+} \ No newline at end of file
diff --git a/assets/css/src/avatar.css b/assets/css/src/avatar.css
new file mode 100644
index 00000000..1d8bc6a1
--- /dev/null
+++ b/assets/css/src/avatar.css
@@ -0,0 +1,40 @@
+.avatar img {
+ vertical-align: bottom
+}
+
+.avatar-left {
+ float: left;
+ margin-right: 10px
+}
+
+.avatar-inline {
+ display: inline-block;
+ margin-right: 3px
+}
+
+.avatar-48 img,
+.avatar-48 div {
+ border-radius: 30px
+}
+
+.avatar-48 .avatar-letter {
+ line-height: 48px;
+ width: 48px;
+ font-size: 25px
+}
+
+.avatar-20 img,
+.avatar-20 div {
+ border-radius: 10px
+}
+
+.avatar-20 .avatar-letter {
+ line-height: 20px;
+ width: 20px;
+ font-size: 11px
+}
+
+.avatar-letter {
+ color: var(--avatar-color-letter);
+ text-align: center
+}
diff --git a/assets/css/src/base.css b/assets/css/src/base.css
new file mode 100644
index 00000000..c139a06e
--- /dev/null
+++ b/assets/css/src/base.css
@@ -0,0 +1,65 @@
+h1,
+li,
+ul,
+ol,
+table,
+tr,
+td,
+th,
+p,
+blockquote,
+body {
+ margin: 0;
+ padding: 0;
+}
+
+body {
+ font-size: 100%;
+ padding-bottom: 10px;
+ color: var(--color-primary);
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ text-rendering: optimizeLegibility
+}
+
+small {
+ font-size: 0.8em
+}
+
+hr {
+ border: 0;
+ height: 0;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ border-bottom: 1px solid rgba(255, 255, 255, 0.3)
+}
+
+.page {
+ margin-left: 10px;
+ margin-right: 10px
+}
+
+.margin-top {
+ margin-top: 20px
+}
+
+.margin-bottom {
+ margin-bottom: 20px
+}
+
+.pull-right {
+ text-align: right
+}
+
+ul.no-bullet li {
+ list-style-type: none;
+ margin-left: 0
+}
+
+#app-loading-icon {
+ position: fixed;
+ right: 3px;
+ bottom: 3px
+}
+
+.assign-me {
+ vertical-align: bottom
+}
diff --git a/assets/css/src/board.css b/assets/css/src/board.css
new file mode 100644
index 00000000..0cf91cab
--- /dev/null
+++ b/assets/css/src/board.css
@@ -0,0 +1,143 @@
+.public-board {
+ margin-top: 5px
+}
+
+.public-task {
+ max-width: 800px;
+ margin: 5px auto 0
+}
+
+#board-container {
+ overflow-x: auto
+}
+
+#board {
+ table-layout: fixed;
+ margin-bottom: 0
+}
+
+#board th.board-column-header {
+ width: 240px
+}
+
+#board td {
+ vertical-align: top
+}
+
+.board-container-compact {
+ overflow-x: initial
+}
+
+@media all and (-ms-high-contrast: active),
+(-ms-high-contrast: none) {
+ .board-container-compact #board {
+ table-layout: auto
+ }
+}
+
+#board th.board-column-header.board-column-compact {
+ width: initial
+}
+
+.board-column-collapsed {
+ display: none
+}
+
+td.board-column-task-collapsed {
+ font-weight: bold;
+ background-color: #fbfbfb
+}
+
+#board th.board-column-header-collapsed {
+ width: 28px;
+ min-width: 28px;
+ text-align: center;
+ overflow: hidden
+}
+
+.board-rotation-wrapper {
+ position: relative;
+ padding: 8px 4px;
+ min-height: 150px;
+ overflow: hidden
+}
+
+.board-rotation {
+ white-space: nowrap;
+ -webkit-backface-visibility: hidden;
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+ -webkit-transform-origin: 0 100%;
+ -moz-transform-origin: 0 100%;
+ -ms-transform-origin: 0 100%;
+ transform-origin: 0 100%
+}
+
+.board-column-title .dropdown-menu {
+ text-decoration: none
+}
+
+.board-add-icon {
+ float: left;
+ padding: 0 5px
+}
+
+.board-add-icon i {
+ text-decoration: none;
+ color: var(--link-color-primary);
+ font-size: 1.4em
+}
+
+.board-add-icon i:focus,
+.board-add-icon i:hover {
+ text-decoration: none;
+ color: red
+}
+
+.board-column-header-task-count {
+ color: var(--color-light);
+ font-weight: normal
+}
+
+a.board-swimlane-toggle {
+ text-decoration: none
+}
+
+a.board-swimlane-toggle:hover,
+a.board-swimlane-toggle:focus {
+ color: #000;
+ text-decoration: none;
+ border: none
+}
+
+.board-task-list {
+ min-height: 60px
+}
+
+.board-task-list .task-board:last-child {
+ margin-bottom: 0
+}
+
+.board-task-list-limit {
+ background-color: var(--board-task-limit-color);
+}
+
+.draggable-item {
+ cursor: pointer;
+ user-select: none;
+ -webkit-user-select: none;
+ -moz-user-select: none
+}
+
+.draggable-placeholder {
+ border: 2px dashed #000;
+ background: #fafafa;
+ height: 70px;
+ margin-bottom: 10px
+}
+
+div.draggable-item-selected {
+ border: 1px solid #000
+}
diff --git a/assets/css/src/bulk_change.css b/assets/css/src/bulk_change.css
new file mode 100644
index 00000000..8786c235
--- /dev/null
+++ b/assets/css/src/bulk_change.css
@@ -0,0 +1,13 @@
+.bulk-change-checkbox {
+ float: left
+}
+
+.bulk-change-inputs {
+ float: left;
+ padding-left: 10px
+}
+
+.bulk-change-inputs label {
+ margin-top: 0;
+ margin-bottom: 3px
+}
diff --git a/assets/css/src/button.css b/assets/css/src/button.css
new file mode 100644
index 00000000..1f31c797
--- /dev/null
+++ b/assets/css/src/button.css
@@ -0,0 +1,63 @@
+a.btn {
+ text-decoration: none;
+}
+
+.btn {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ font-size: 1.2em;
+ font-weight: normal;
+ cursor: pointer;
+ display: inline-block;
+ border-radius: 2px;
+ padding: 3px 10px;
+ margin: 0;
+ border: 1px solid var(--button-default-border-color);
+ background: var(--button-default-background-color);
+ color: var(--button-default-color);
+}
+
+.btn:hover,
+.btn:focus {
+ border-color: var(--button-default-border-color-focus);
+ background: var(--button-default-background-color-focus);
+ color: var(--button-default-color-focus);
+}
+
+.btn-red {
+ border-color: var(--button-danger-border-color);
+ background: var(--button-danger-background-color);
+ color: var(--button-danger-color);
+}
+
+.btn-red:hover,
+.btn-red:focus {
+ border-color: var(--button-danger-border-color-focus);
+ background: var(--button-danger-background-color-focus);
+ color: var(--button-danger-color-focus);
+}
+
+.btn-blue {
+ border-color: var(--button-primary-border-color);
+ background: var(--button-primary-background-color);
+ color: var(--button-primary-color);
+}
+
+.btn-blue:hover,
+.btn-blue:focus {
+ border-color: var(--button-primary-border-color-focus);
+ background: var(--button-primary-background-color-focus);
+ color: var(--button-primary-color-focus);
+}
+
+.btn:disabled {
+ color: var(--button-disabled-color);
+ border-color: var(--button-disabled-border-color);
+ background: var(--button-disabled-background-color);
+}
+
+.buttons-header {
+ font-size: 0.8em;
+ margin-top: 5px;
+ margin-bottom: 15px
+}
diff --git a/assets/css/src/color_picker.css b/assets/css/src/color_picker.css
new file mode 100644
index 00000000..10bb827a
--- /dev/null
+++ b/assets/css/src/color_picker.css
@@ -0,0 +1,21 @@
+.color-picker {
+ width: 180px
+}
+
+.color-picker-option {
+ height: 25px
+}
+
+.color-picker-square {
+ display: inline-block;
+ width: 18px;
+ height: 18px;
+ margin-right: 5px;
+ border: 1px solid #000
+}
+
+.color-picker-label {
+ display: inline-block;
+ vertical-align: bottom;
+ padding-bottom: 3px
+}
diff --git a/assets/css/src/comment.css b/assets/css/src/comment.css
new file mode 100644
index 00000000..252ede21
--- /dev/null
+++ b/assets/css/src/comment.css
@@ -0,0 +1,65 @@
+.comment-sorting {
+ text-align: right
+}
+
+.comment-sorting a {
+ color: var(--color-medium);
+ font-weight: normal;
+ text-decoration: none
+}
+
+.comment-sorting a:hover {
+ color: var(--color-light);
+}
+
+.comment {
+ padding: 5px;
+ margin-bottom: 15px
+}
+
+.comment-title {
+ border-bottom: 1px dotted #eee;
+ margin-left: 55px
+}
+
+.comment-date {
+ color: var(--color-light);
+ font-weight: 200
+}
+
+.comment-actions {
+ text-align: right
+}
+
+.comment-content {
+ margin-left: 55px
+}
+
+.comments .text-editor textarea {
+ height: 90px
+}
+
+.comments .text-editor .text-editor-preview-area {
+ height: 90px
+}
+
+.comments .comment-highlighted {
+ background-color: #fff8dc;
+ border: 2px solid #ffeb8e
+}
+
+.comments .comment-highlighted:hover {
+ background-color: #fff8dc
+}
+
+.comments .comment:hover {
+ background: #fff8dc
+}
+
+.comments .comment:nth-child(even):not(.comment-highlighted) {
+ background: #fbfbfb
+}
+
+.comments .comment:nth-child(even):not(.comment-highlighted):hover {
+ background: #fff8dc
+}
diff --git a/assets/css/src/dashboard.css b/assets/css/src/dashboard.css
new file mode 100644
index 00000000..179aa40d
--- /dev/null
+++ b/assets/css/src/dashboard.css
@@ -0,0 +1,15 @@
+.dashboard-project-stats small {
+ margin-right: 10px;
+ color: var(--color-light);
+}
+
+.dashboard-table-link {
+ font-weight: bold;
+ color: #000;
+ text-decoration: none
+}
+
+.dashboard-table-link:focus,
+.dashboard-table-link:hover {
+ color: var(--color-light);
+}
diff --git a/assets/css/src/dropdown.css b/assets/css/src/dropdown.css
new file mode 100644
index 00000000..b869abf0
--- /dev/null
+++ b/assets/css/src/dropdown.css
@@ -0,0 +1,99 @@
+h2 .dropdown ul {
+ display: none
+}
+
+.dropdown {
+ display: inline;
+ position: relative
+}
+
+.dropdown ul {
+ display: none
+}
+
+.dropdown-smaller {
+ font-size: 0.85em
+}
+
+ul.dropdown-submenu-open {
+ display: block;
+ position: absolute;
+ z-index: 1000;
+ min-width: 285px;
+ list-style: none;
+ margin: 3px 0 0 1px;
+ padding: 6px 0;
+ background-color: #fff;
+ border: 1px solid #b2b2b2;
+ border-radius: 3px;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15)
+}
+
+.dropdown-submenu-open li {
+ display: block;
+ margin: 0;
+ padding: 8px 10px;
+ font-size: 0.9em;
+ border-bottom: 1px solid #f8f8f8;
+ cursor: pointer
+}
+
+.dropdown-submenu-open li.no-hover {
+ cursor: default
+}
+
+.dropdown-submenu-open li:last-child {
+ border: none
+}
+
+.dropdown-submenu-open li:not(.no-hover):hover {
+ background: #4078C0;
+ color: #fff
+}
+
+.dropdown-submenu-open li:hover a {
+ color: #fff
+}
+
+.dropdown-submenu-open a {
+ text-decoration: none;
+ color: #333
+}
+
+.dropdown-submenu-open a:focus {
+ text-decoration: underline
+}
+
+.dropdown-menu-link-text,
+.dropdown-menu-link-icon {
+ color: #333;
+ text-decoration: none
+}
+
+.dropdown-menu-link-text:hover {
+ text-decoration: underline
+}
+
+td a.dropdown-menu strong {
+ color: #333
+}
+
+td a.dropdown-menu strong i {
+ color: #333
+}
+
+td a.dropdown-menu i {
+ color: #dedede
+}
+
+td a.dropdown-menu:hover strong {
+ color: #555
+}
+
+td a.dropdown-menu:hover strong i {
+ color: #555
+}
+
+td a.dropdown-menu:hover i {
+ color: #333
+}
diff --git a/assets/css/src/file_upload.css b/assets/css/src/file_upload.css
new file mode 100644
index 00000000..44582355
--- /dev/null
+++ b/assets/css/src/file_upload.css
@@ -0,0 +1,39 @@
+#file-dropzone,
+#screenshot-zone {
+ position: relative;
+ border: 2px dashed #ccc;
+ width: 99%;
+ height: 250px;
+ overflow: auto
+}
+
+#file-dropzone-inner,
+#screenshot-inner {
+ position: absolute;
+ left: 0;
+ bottom: 48%;
+ width: 100%;
+ text-align: center;
+ color: #aaa
+}
+
+#screenshot-zone.screenshot-pasted {
+ border: 2px solid #333
+}
+
+#file-list {
+ margin: 20px
+}
+
+#file-list li {
+ list-style-type: none;
+ padding-top: 8px;
+ padding-bottom: 8px;
+ border-bottom: 1px dotted #ddd;
+ width: 95%
+}
+
+#file-list li .file-error {
+ font-weight: bold;
+ color: #b94a48
+}
diff --git a/assets/css/src/filter_box.css b/assets/css/src/filter_box.css
new file mode 100644
index 00000000..4a822972
--- /dev/null
+++ b/assets/css/src/filter_box.css
@@ -0,0 +1,13 @@
+.filter-box {
+ max-width: 1024px
+}
+
+.action-menu {
+ color: var(--color-primary);
+ text-decoration: none
+}
+
+.action-menu:hover,
+.action-menu:focus {
+ text-decoration: underline
+}
diff --git a/assets/css/src/form.css b/assets/css/src/form.css
new file mode 100644
index 00000000..1942e499
--- /dev/null
+++ b/assets/css/src/form.css
@@ -0,0 +1,269 @@
+fieldset {
+ border: 1px solid #ddd;
+ margin-top: 10px
+}
+
+legend {
+ font-weight: 500;
+ font-size: 1.2em
+}
+
+label {
+ cursor: pointer;
+ display: block;
+ margin-top: 10px;
+ font-weight: 400
+}
+
+input[type="number"],
+input[type="date"],
+input[type="email"],
+input[type="password"],
+input[type="text"]:not(.input-addon-field) {
+ color: var(--color-light);
+ border: 1px solid #ccc;
+ width: 300px;
+ max-width: 95%;
+ font-size: 1em;
+ height: 25px;
+ padding-bottom: 0;
+ padding-left: 4px;
+ font-family: sans-serif;
+ -webkit-appearance: none;
+ -moz-appearance: none
+}
+
+input[type="number"]::-webkit-input-placeholder,
+input[type="date"]::-webkit-input-placeholder,
+input[type="email"]::-webkit-input-placeholder,
+input[type="password"]::-webkit-input-placeholder,
+input[type="text"]:not(.input-addon-field)::-webkit-input-placeholder {
+ color: #dedede
+}
+
+input[type="number"]::-moz-placeholder,
+input[type="date"]::-moz-placeholder,
+input[type="email"]::-moz-placeholder,
+input[type="password"]::-moz-placeholder,
+input[type="text"]:not(.input-addon-field)::-moz-placeholder {
+ color: #dedede
+}
+
+input[type="number"]:-ms-input-placeholder,
+input[type="date"]:-ms-input-placeholder,
+input[type="email"]:-ms-input-placeholder,
+input[type="password"]:-ms-input-placeholder,
+input[type="text"]:not(.input-addon-field):-ms-input-placeholder {
+ color: #dedede
+}
+
+input[type="number"]:focus,
+input[type="date"]:focus,
+input[type="email"]:focus,
+input[type="password"]:focus,
+input[type="text"]:focus {
+ color: #000;
+ border-color: rgba(82, 168, 236, 0.8);
+ outline: 0;
+ box-shadow: 0 0 8px rgba(82, 168, 236, 0.6)
+}
+
+input[type="number"] {
+ width: 70px
+}
+
+input[type="text"]:not(.input-addon-field).form-numeric {
+ width: 70px
+}
+
+input[type="text"]:not(.input-addon-field).form-datetime,
+input[type="text"]:not(.input-addon-field).form-date {
+ width: 150px
+}
+
+input[type="text"]:not(.input-addon-field).form-input-large {
+ width: 400px
+}
+
+input[type="text"]:not(.input-addon-field).form-input-small {
+ width: 150px
+}
+
+textarea:focus {
+ color: #000;
+ border-color: rgba(82, 168, 236, 0.8);
+ outline: 0;
+ box-shadow: 0 0 8px rgba(82, 168, 236, 0.6)
+}
+
+textarea {
+ padding: 4px;
+ border: 1px solid #ccc;
+ width: 400px;
+ max-width: 99%;
+ height: 200px;
+ font-family: sans-serif;
+ font-size: 1em
+}
+
+textarea::-webkit-input-placeholder {
+ color: #dedede
+}
+
+textarea::-moz-placeholder {
+ color: #dedede
+}
+
+textarea:-ms-input-placeholder {
+ color: #dedede
+}
+
+select {
+ font-size: 1.0em;
+ max-width: 95%
+}
+
+select:focus {
+ outline: 0
+}
+
+select[multiple] {
+ width: 300px
+}
+
+.tag-autocomplete {
+ width: 400px
+}
+
+span.select2-container {
+ margin-top: 2px
+}
+
+.form-actions {
+ padding-top: 20px;
+ clear: both
+}
+
+.form-required {
+ color: red;
+ padding-left: 5px;
+ font-weight: bold
+}
+
+@media (max-width: 480px) {
+ .form-required {
+ display: none
+ }
+}
+
+input[type="text"].form-max-width {
+ width: 100%
+}
+
+input.form-error,
+textarea.form-error {
+ border: 2px solid #b94a48
+}
+
+input.form-error:focus,
+textarea.form-error:focus {
+ box-shadow: none;
+ border: 2px solid #b94a48
+}
+
+.form-errors {
+ color: #b94a48;
+ list-style-type: none
+}
+
+ul.form-errors li {
+ margin-left: 0
+}
+
+.form-help {
+ font-size: 0.8em;
+ color: brown;
+ margin-bottom: 15px
+}
+
+.form-inline {
+ padding: 0;
+ margin: 0;
+ border: none
+}
+
+.form-inline label {
+ display: inline;
+ padding-right: 3px
+}
+
+.form-inline input,
+.form-inline select {
+ margin: 0 15px 0 0
+}
+
+.form-inline .form-required {
+ display: none
+}
+
+.form-inline .form-actions {
+ display: inline-block
+}
+
+.form-inline .js-submit-buttons-rendered {
+ display: inline-block
+}
+
+.form-inline-group {
+ display: inline
+}
+
+.form-columns {
+ display: -webkit-flex;
+ display: flex;
+ -webkit-flex-direction: row;
+ flex-direction: row;
+ -webkit-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-justify-content: flex-start;
+ justify-content: flex-start
+}
+
+.form-columns .form-column {
+ margin-right: 25px;
+ flex-grow: 1
+}
+
+.form-columns fieldset {
+ margin-top: 0
+}
+
+.form-login {
+ max-width: 350px;
+ margin: 5% auto 0
+}
+
+@media (max-width: 480px) {
+ .form-login {
+ margin-left: 5px
+ }
+}
+
+.form-login li {
+ margin-left: 25px;
+ line-height: 25px
+}
+
+.form-login h2 {
+ margin-bottom: 30px;
+ font-weight: bold
+}
+
+.reset-password {
+ margin-top: 20px;
+ margin-bottom: 20px
+}
+
+.reset-password a {
+ color: var(--color-light);
+}
diff --git a/assets/css/src/header.css b/assets/css/src/header.css
new file mode 100644
index 00000000..98b696b2
--- /dev/null
+++ b/assets/css/src/header.css
@@ -0,0 +1,68 @@
+header {
+ display: flex;
+ flex-wrap: wrap;
+ padding: 5px 10px;
+ margin-bottom: 5px;
+ border-bottom: 1px solid #dedede;
+ background-color: #fbfbfb
+}
+
+header .title-container {
+ flex: 1;
+ min-width: 300px
+}
+
+@media (max-width: 480px) {
+ header .title-container {
+ order: 3
+ }
+}
+
+header .board-selector-container {
+ min-width: 320px;
+ display: flex;
+ align-items: center
+}
+
+@media (max-width: 480px) {
+ header .board-selector-container {
+ order: 2;
+ min-width: 300px
+ }
+ header .board-selector-container input[type=text] {
+ max-width: 280px
+ }
+}
+
+header .menus-container {
+ min-width: 120px;
+ display: flex;
+ align-items: center;
+ justify-content: flex-end
+}
+
+@media (max-width: 480px) {
+ header .menus-container {
+ order: 1;
+ margin-bottom: 5px;
+ margin-left: auto
+ }
+}
+
+header h1 {
+ font-size: 1.5em
+}
+
+header h1 .tooltip {
+ opacity: 0.3;
+ font-size: 0.7em
+}
+
+a i.web-notification-icon {
+ color: var(--link-color-primary);
+}
+
+a i.web-notification-icon:focus,
+a i.web-notification-icon:hover {
+ color: #000
+}
diff --git a/assets/css/src/icon.css b/assets/css/src/icon.css
new file mode 100644
index 00000000..7aa51469
--- /dev/null
+++ b/assets/css/src/icon.css
@@ -0,0 +1,21 @@
+.icon-success {
+ color: #468847
+}
+
+.icon-error {
+ color: #b94a48
+}
+
+.icon-fade-out {
+ opacity: 1;
+ animation: icon-fadeout 5s linear forwards
+}
+
+@keyframes icon-fadeout {
+ 0% {
+ opacity: 1
+ }
+ 100% {
+ opacity: 0
+ }
+}
diff --git a/assets/css/src/input_addon.css b/assets/css/src/input_addon.css
new file mode 100644
index 00000000..bf06d6ab
--- /dev/null
+++ b/assets/css/src/input_addon.css
@@ -0,0 +1,52 @@
+.input-addon {
+ display: flex
+}
+
+.input-addon-field {
+ flex: 1;
+ font-size: 1em;
+ color: var(--color-light);
+ margin: 0;
+ -webkit-appearance: none;
+ -moz-appearance: none
+}
+
+.input-addon-field:first-child {
+ border-radius: 5px 0 0 5px
+}
+
+.input-addon-field:last-child {
+ border-radius: 0 5px 5px 0
+}
+
+.input-addon-item {
+ background-color: rgba(147, 128, 108, 0.1);
+ color: #666;
+ font: inherit;
+ font-weight: normal
+}
+
+.input-addon-item:first-child {
+ border-radius: 5px 0 0 5px
+}
+
+.input-addon-item:last-child {
+ border-radius: 0 5px 5px 0
+}
+
+@media (max-width: 480px) {
+ .input-addon-item .dropdown .fa-caret-down {
+ display: none
+ }
+}
+
+.input-addon-field,
+.input-addon-item {
+ border: 1px solid rgba(147, 128, 108, 0.25);
+ padding: 4px 0.75em
+}
+
+.input-addon-field:not(:first-child),
+.input-addon-item:not(:first-child) {
+ border-left: 0
+}
diff --git a/assets/css/src/links.css b/assets/css/src/links.css
new file mode 100644
index 00000000..4c3bf784
--- /dev/null
+++ b/assets/css/src/links.css
@@ -0,0 +1,21 @@
+a {
+ color: var(--link-color-primary);
+ border: none;
+}
+
+a:focus {
+ color: var(--link-color-focus);
+ outline: 0;
+ text-decoration: none;
+}
+
+a:hover {
+ color: var(--link-color-hover);
+ text-decoration: none;
+}
+
+a .fa {
+ color: var(--color-primary);
+ padding-right: 3px;
+ text-decoration: none;
+}
diff --git a/assets/css/src/list_items.css b/assets/css/src/list_items.css
new file mode 100644
index 00000000..b8297a81
--- /dev/null
+++ b/assets/css/src/list_items.css
@@ -0,0 +1,14 @@
+.list-item-links,
+.list-item-actions {
+ display: inline-block;
+ float: left;
+ margin-left: 10px
+}
+
+.list-item-links a {
+ margin: 0
+}
+
+.list-item-action-hidden {
+ display: none
+}
diff --git a/assets/css/src/logo.css b/assets/css/src/logo.css
new file mode 100644
index 00000000..5e882fc4
--- /dev/null
+++ b/assets/css/src/logo.css
@@ -0,0 +1,19 @@
+.logo a {
+ opacity: 0.5;
+ color: #d40000;
+ text-decoration: none
+}
+
+.logo span {
+ color: var(--color-primary);
+}
+
+.logo a:hover {
+ opacity: 0.8;
+ color: var(--color-primary);
+}
+
+.logo a:focus span,
+.logo a:hover span {
+ color: #d40000
+}
diff --git a/assets/css/src/markdown.css b/assets/css/src/markdown.css
new file mode 100644
index 00000000..b6965b58
--- /dev/null
+++ b/assets/css/src/markdown.css
@@ -0,0 +1,48 @@
+.markdown {
+ line-height: 1.4em
+}
+
+.markdown h1 {
+ margin-top: 5px;
+ margin-bottom: 10px;
+ font-weight: bold
+}
+
+.markdown h2 {
+ font-weight: bold
+}
+
+.markdown p {
+ margin-bottom: 10px
+}
+
+.markdown ol,
+.markdown ul {
+ margin-left: 25px;
+ margin-top: 10px;
+ margin-bottom: 10px
+}
+
+.markdown pre {
+ background: #fbfbfb;
+ padding: 10px;
+ border-radius: 5px;
+ border: 1px solid #ddd;
+ overflow: auto;
+ overflow-wrap: initial;
+ color: var(--color-medium);
+}
+
+.markdown blockquote {
+ font-style: italic;
+ border-left: 3px solid #ddd;
+ padding-left: 10px;
+ margin-bottom: 10px;
+ margin-left: 20px
+}
+
+.markdown img {
+ display: block;
+ max-width: 80%;
+ margin-top: 10px
+}
diff --git a/assets/css/src/modal.css b/assets/css/src/modal.css
new file mode 100644
index 00000000..6f455f8d
--- /dev/null
+++ b/assets/css/src/modal.css
@@ -0,0 +1,38 @@
+#modal-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: rgba(0, 0, 0, 0.9);
+ overflow: auto;
+ z-index: 100
+}
+
+#modal-box {
+ position: fixed;
+ max-height: calc(100% - 30px);
+ top: 2%;
+ left: 50%;
+ transform: translateX(-50%);
+ background: #fff;
+ overflow: auto;
+ border-radius: 5px
+}
+
+#modal-content {
+ padding: 0 5px 5px
+}
+
+#modal-header {
+ text-align: right;
+ padding-right: 5px
+}
+
+#modal-close-button {
+ color: var(--color-primary);
+}
+
+#modal-close-button:hover {
+ color: var(--color-error);
+}
diff --git a/assets/css/src/page_header.css b/assets/css/src/page_header.css
new file mode 100644
index 00000000..b42dada9
--- /dev/null
+++ b/assets/css/src/page_header.css
@@ -0,0 +1,70 @@
+
+
+.page-header {
+ margin-bottom: 20px
+}
+
+.page-header .dropdown {
+ padding-right: 10px
+}
+
+.page-header h2 {
+ margin: 0;
+ padding: 0;
+ font-weight: bold;
+ border-bottom: 1px dotted #ccc
+}
+
+.page-header h2 a {
+ color: var(--color-primary);
+ text-decoration: none
+}
+
+.page-header h2 a:focus,
+.page-header h2 a:hover {
+ color: var(--color-light);
+}
+
+.page-header ul {
+ text-align: left;
+ margin-top: 5px;
+ display: inline-block
+}
+
+.page-header li {
+ display: inline;
+ padding-right: 15px
+}
+
+@media (max-width: 480px) {
+ .page-header li {
+ display: block;
+ line-height: 1.5em
+ }
+}
+
+.page-header li.active a {
+ color: var(--color-primary);
+ text-decoration: none;
+ font-weight: bold
+}
+
+.page-header li.active a:hover,
+.page-header li.active a:focus {
+ text-decoration: underline
+}
+
+.menu-inline {
+ margin-bottom: 5px
+}
+
+.menu-inline li {
+ display: inline;
+ padding-right: 15px
+}
+
+.menu-inline li .active a {
+ font-weight: bold;
+ color: #000;
+ text-decoration: none
+}
diff --git a/assets/css/src/pagination.css b/assets/css/src/pagination.css
new file mode 100644
index 00000000..5c4e7795
--- /dev/null
+++ b/assets/css/src/pagination.css
@@ -0,0 +1,18 @@
+.pagination {
+ text-align: center;
+ font-size: 0.9em
+}
+
+.pagination-showing {
+ margin-right: 5px;
+ padding-right: 5px;
+ border-right: 1px solid #999
+}
+
+.pagination-next {
+ margin-left: 5px
+}
+
+.pagination-previous {
+ margin-right: 5px
+}
diff --git a/assets/css/src/panel.css b/assets/css/src/panel.css
new file mode 100644
index 00000000..87d72ac3
--- /dev/null
+++ b/assets/css/src/panel.css
@@ -0,0 +1,16 @@
+.panel {
+ border-radius: 4px;
+ padding: 8px 35px 8px 10px;
+ margin-top: 10px;
+ margin-bottom: 15px;
+ border: 1px solid #ddd;
+ color: var(--color-primary);
+ background-color: #fcfcfc;
+ overflow: auto
+}
+
+.panel li {
+ list-style-type: square;
+ margin-left: 20px;
+ line-height: 1.35em
+}
diff --git a/assets/css/src/print.css b/assets/css/src/print.css
new file mode 100644
index 00000000..9a137842
--- /dev/null
+++ b/assets/css/src/print.css
@@ -0,0 +1,22 @@
+@page {
+ orientation: landscape;
+ -webkit-transform: rotate(-90deg);
+ -moz-transform: rotate(-90deg);
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
+}
+
+#board-container {
+ overflow-x: initial !important
+}
+
+.board-task-list {
+ min-height: 0 !important
+}
+
+.task-board {
+ page-break-inside: avoid
+}
+
+.menu-inline, .project-header, .page-header, .menus-container, .sidebar, .alert, .alert-info, .dropdown > ul {
+ display: none
+}
diff --git a/assets/css/src/project.css b/assets/css/src/project.css
new file mode 100644
index 00000000..3ffdc629
--- /dev/null
+++ b/assets/css/src/project.css
@@ -0,0 +1,90 @@
+.js-project-creation-options {
+ max-width: 500px;
+ border-left: 3px dotted #efefef;
+ margin-top: 20px;
+ padding-left: 15px;
+ padding-bottom: 5px;
+ padding-top: 5px
+}
+
+.project-overview-columns {
+ display: -webkit-flex;
+ display: flex;
+ -webkit-flex-direction: row;
+ flex-direction: row;
+ -webkit-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-align-items: center;
+ align-items: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+ margin-bottom: 20px;
+ font-size: 1.4em
+}
+
+@media (max-width: 480px) {
+ .project-overview-columns {
+ display: block
+ }
+}
+
+.project-overview-column {
+ text-align: center;
+ margin-right: 3%;
+ margin-top: 5px;
+ padding: 3px 15px 3px 15px;
+ border: 1px dashed #ddd
+}
+
+@media (max-width: 480px) {
+ .project-overview-column {
+ text-align: left
+ }
+}
+
+.project-overview-column small {
+ color: var(--color-light);
+}
+
+.project-overview-column strong {
+ color: var(--color-medium);
+ display: block
+}
+
+@media (max-width: 480px) {
+ .project-overview-column strong {
+ display: inline
+ }
+}
+
+.project-header {
+ margin-bottom: 8px
+}
+
+.project-header .dropdown-component {
+ margin-top: 4px;
+ margin-right: 5px;
+ float: left
+}
+
+@media (max-width: 768px) {
+ .project-header .dropdown-component {
+ float: none
+ }
+}
+
+.project-header .views-switcher-component {
+ margin-top: 4px;
+ float: left
+}
+
+@media (max-width: 768px) {
+ .project-header .views-switcher-component {
+ float: none;
+ margin-bottom: 10px
+ }
+}
+
+.project-header .filter-box-component form {
+ margin: 0
+}
diff --git a/assets/css/src/select_dropdown.css b/assets/css/src/select_dropdown.css
new file mode 100644
index 00000000..51c7d081
--- /dev/null
+++ b/assets/css/src/select_dropdown.css
@@ -0,0 +1,68 @@
+#select-dropdown-menu {
+ position: absolute;
+ display: block;
+ z-index: 1000;
+ min-width: 160px;
+ padding: 5px 0;
+ background: #fff;
+ list-style: none;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ overflow: scroll
+}
+
+.select-dropdown-menu-item {
+ white-space: nowrap;
+ overflow: hidden;
+ padding: 3px 10px;
+ color: var(--color-medium);
+ cursor: pointer;
+ border-bottom: 1px solid #f8f8f8;
+ line-height: 1.5em;
+ font-weight: 400
+}
+
+.select-dropdown-menu-item.active {
+ color: #fff;
+ background: #428bca
+}
+
+.select-dropdown-menu-item:last-child {
+ border: none
+}
+
+.select-dropdown-input-container {
+ position: relative;
+ border: 1px solid #ccc;
+ border-radius: 5px;
+ background-color: #fff;
+ width: 300px
+}
+
+.select-dropdown-input-container input.select-dropdown-input {
+ margin: 0 0 0 5px;
+ border: none;
+ height: 23px;
+ width: 270px
+}
+
+.select-dropdown-input-container input.select-dropdown-input:focus {
+ border: none;
+ box-shadow: none
+}
+
+.select-dropdown-input-container .select-dropdown-chevron {
+ color: var(--color-medium);
+ position: absolute;
+ top: 4px;
+ right: 5px;
+ cursor: pointer
+}
+
+.select-dropdown-input-container .select-loading-icon {
+ color: var(--color-medium);
+ position: absolute;
+ top: 4px;
+ right: 5px
+}
diff --git a/assets/css/src/sidebar.css b/assets/css/src/sidebar.css
new file mode 100644
index 00000000..467e48b1
--- /dev/null
+++ b/assets/css/src/sidebar.css
@@ -0,0 +1,99 @@
+.sidebar-container {
+ height: 100%;
+ display: flex;
+ flex-flow: row
+}
+
+@media (max-width: 768px) {
+ .sidebar-container {
+ flex-flow: wrap
+ }
+}
+
+.sidebar-content {
+ padding-left: 10px;
+ flex: 1 100%;
+ max-width: 85%;
+ overflow-wrap: break-word
+}
+
+@media (max-width: 768px) {
+ .sidebar-content {
+ padding-left: 0;
+ order: 1;
+ max-width: 100%
+ }
+}
+
+@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: landscape) and (-webkit-min-device-pixel-ratio: 1) {
+ .sidebar-content {
+ max-width: 75%
+ }
+}
+
+.sidebar {
+ max-width: 25%;
+ min-width: 230px
+}
+
+@media (max-width: 768px) {
+ .sidebar {
+ flex: 1 auto;
+ order: 2
+ }
+}
+
+.sidebar h2 {
+ margin-top: 0
+}
+
+.sidebar>ul a {
+ text-decoration: none;
+ color: var(--color-light);
+ font-weight: 300
+}
+
+.sidebar>ul a:hover {
+ color: var(--color-primary);
+}
+
+.sidebar>ul li {
+ list-style-type: none;
+ line-height: 35px;
+ border-bottom: 1px dotted #efefef;
+ padding-left: 13px
+}
+
+.sidebar>ul li:hover {
+ border-left: 5px solid #555;
+ padding-left: 8px
+}
+
+.sidebar>ul li.active {
+ border-left: 5px solid #333;
+ padding-left: 8px
+}
+
+.sidebar>ul li.active a {
+ color: var(--color-primary);
+ font-weight: bold
+}
+
+.sidebar-icons>ul li {
+ padding-left: 0
+}
+
+.sidebar-icons>ul li:hover,
+.sidebar-icons>ul li.active {
+ padding-left: 0;
+ border-left: none
+}
+
+.sidebar>ul li.active a:focus,
+.sidebar>ul li.active a:hover {
+ color: var(--color-medium);
+}
+
+.sidebar>ul li:last-child {
+ margin-bottom: 15px
+}
diff --git a/assets/css/src/slideshow.css b/assets/css/src/slideshow.css
new file mode 100644
index 00000000..1fd06a23
--- /dev/null
+++ b/assets/css/src/slideshow.css
@@ -0,0 +1,57 @@
+.image-slideshow-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: rgba(0, 0, 0, 0.95);
+ overflow: auto;
+ z-index: 100
+}
+
+.image-slideshow-overlay img {
+ display: block;
+ margin: auto
+}
+
+.image-slideshow-overlay figcaption {
+ color: #fff;
+ opacity: 0.7;
+ position: absolute;
+ bottom: 5px;
+ right: 15px
+}
+
+.slideshow-icon {
+ color: #fff;
+ position: absolute;
+ font-size: 2.5em;
+ opacity: 0.6
+}
+
+.slideshow-icon:hover {
+ opacity: 0.9;
+ cursor: pointer
+}
+
+.slideshow-previous-icon {
+ left: 10px;
+ top: 45%
+}
+
+.slideshow-next-icon {
+ right: 10px;
+ top: 45%
+}
+
+.slideshow-close-icon {
+ right: 10px;
+ top: 10px;
+ font-size: 1.4em
+}
+
+.slideshow-download-icon {
+ left: 10px;
+ bottom: 10px;
+ font-size: 1.3em
+}
diff --git a/assets/css/src/subtasks.css b/assets/css/src/subtasks.css
new file mode 100644
index 00000000..ab36bf6f
--- /dev/null
+++ b/assets/css/src/subtasks.css
@@ -0,0 +1,29 @@
+.subtask-cell {
+ padding: 4px 10px;
+ border-top: 1px dotted #dedede;
+ border-left: 1px dotted #dedede;
+ display: table-cell;
+ vertical-align: middle
+}
+
+.subtask-cell a {
+ color: var(--color-primary);
+ text-decoration: none
+}
+
+.subtask-cell a:hover,
+.subtask-cell a:focus {
+ color: var(--link-color-primary);
+}
+
+.subtask-cell:first-child {
+ border-left: none
+}
+
+@media (max-width: 768px) {
+ .subtask-cell {
+ width: 90%;
+ display: block;
+ border-left: none
+ }
+}
diff --git a/assets/css/src/suggest_menu.css b/assets/css/src/suggest_menu.css
new file mode 100644
index 00000000..083890c8
--- /dev/null
+++ b/assets/css/src/suggest_menu.css
@@ -0,0 +1,34 @@
+#suggest-menu {
+ position: absolute;
+ display: block;
+ z-index: 1000;
+ min-width: 160px;
+ padding: 5px 0;
+ background: #fff;
+ list-style: none;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175)
+}
+
+.suggest-menu-item {
+ white-space: nowrap;
+ padding: 3px 10px;
+ color: var(--color-primary);
+ font-weight: bold;
+ cursor: pointer
+}
+
+.suggest-menu-item.active {
+ color: #fff;
+ background: #428bca
+}
+
+.suggest-menu-item.active small {
+ color: #fff
+}
+
+.suggest-menu-item small {
+ color: var(--color-light);
+ font-weight: normal
+} \ No newline at end of file
diff --git a/assets/css/src/table.css b/assets/css/src/table.css
new file mode 100644
index 00000000..0f446fb6
--- /dev/null
+++ b/assets/css/src/table.css
@@ -0,0 +1,466 @@
+table {
+ width: 100%;
+ border-collapse: collapse;
+ border-spacing: 0;
+ margin-bottom: 20px
+}
+
+table.table-fixed {
+ table-layout: fixed;
+ white-space: nowrap
+}
+
+table.table-fixed th {
+ overflow: hidden
+}
+
+table.table-fixed td {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis
+}
+
+table.table-small {
+ font-size: 0.8em
+}
+
+table.table-striped tr:nth-child(odd) {
+ background: #fefefe
+}
+
+@media (max-width: 768px) {
+ table.table-scrolling {
+ overflow-x: auto;
+ display: inline-block;
+ vertical-align: top;
+ max-width: 100%;
+ white-space: nowrap
+ }
+}
+
+table th {
+ text-align: left;
+ padding: 0.5em 3px;
+ border: 1px solid #eee;
+ background: #fbfbfb
+}
+
+table th a {
+ text-decoration: none;
+ color: var(--color-primary);
+}
+
+table th a:focus,
+table th a:hover {
+ text-decoration: underline
+}
+
+table td {
+ border: 1px solid #eee;
+ padding: 0.5em 3px;
+ vertical-align: top
+}
+
+table td li {
+ margin-left: 20px
+}
+
+.column-1 {
+ width: 1%
+}
+
+.column-2 {
+ width: 2%
+}
+
+.column-3 {
+ width: 3%
+}
+
+.column-4 {
+ width: 4%
+}
+
+.column-5 {
+ width: 5%
+}
+
+.column-6 {
+ width: 6%
+}
+
+.column-7 {
+ width: 7%
+}
+
+.column-8 {
+ width: 8%
+}
+
+.column-9 {
+ width: 9%
+}
+
+.column-10 {
+ width: 10%
+}
+
+.column-11 {
+ width: 11%
+}
+
+.column-12 {
+ width: 12%
+}
+
+.column-13 {
+ width: 13%
+}
+
+.column-14 {
+ width: 14%
+}
+
+.column-15 {
+ width: 15%
+}
+
+.column-16 {
+ width: 16%
+}
+
+.column-17 {
+ width: 17%
+}
+
+.column-18 {
+ width: 18%
+}
+
+.column-19 {
+ width: 19%
+}
+
+.column-20 {
+ width: 20%
+}
+
+.column-21 {
+ width: 21%
+}
+
+.column-22 {
+ width: 22%
+}
+
+.column-23 {
+ width: 23%
+}
+
+.column-24 {
+ width: 24%
+}
+
+.column-25 {
+ width: 25%
+}
+
+.column-26 {
+ width: 26%
+}
+
+.column-27 {
+ width: 27%
+}
+
+.column-28 {
+ width: 28%
+}
+
+.column-29 {
+ width: 29%
+}
+
+.column-30 {
+ width: 30%
+}
+
+.column-31 {
+ width: 31%
+}
+
+.column-32 {
+ width: 32%
+}
+
+.column-33 {
+ width: 33%
+}
+
+.column-34 {
+ width: 34%
+}
+
+.column-35 {
+ width: 35%
+}
+
+.column-36 {
+ width: 36%
+}
+
+.column-37 {
+ width: 37%
+}
+
+.column-38 {
+ width: 38%
+}
+
+.column-39 {
+ width: 39%
+}
+
+.column-40 {
+ width: 40%
+}
+
+.column-41 {
+ width: 41%
+}
+
+.column-42 {
+ width: 42%
+}
+
+.column-43 {
+ width: 43%
+}
+
+.column-44 {
+ width: 44%
+}
+
+.column-45 {
+ width: 45%
+}
+
+.column-46 {
+ width: 46%
+}
+
+.column-47 {
+ width: 47%
+}
+
+.column-48 {
+ width: 48%
+}
+
+.column-49 {
+ width: 49%
+}
+
+.column-50 {
+ width: 50%
+}
+
+.column-51 {
+ width: 51%
+}
+
+.column-52 {
+ width: 52%
+}
+
+.column-53 {
+ width: 53%
+}
+
+.column-54 {
+ width: 54%
+}
+
+.column-55 {
+ width: 55%
+}
+
+.column-56 {
+ width: 56%
+}
+
+.column-57 {
+ width: 57%
+}
+
+.column-58 {
+ width: 58%
+}
+
+.column-59 {
+ width: 59%
+}
+
+.column-60 {
+ width: 60%
+}
+
+.column-61 {
+ width: 61%
+}
+
+.column-62 {
+ width: 62%
+}
+
+.column-63 {
+ width: 63%
+}
+
+.column-64 {
+ width: 64%
+}
+
+.column-65 {
+ width: 65%
+}
+
+.column-66 {
+ width: 66%
+}
+
+.column-67 {
+ width: 67%
+}
+
+.column-68 {
+ width: 68%
+}
+
+.column-69 {
+ width: 69%
+}
+
+.column-70 {
+ width: 70%
+}
+
+.column-71 {
+ width: 71%
+}
+
+.column-72 {
+ width: 72%
+}
+
+.column-73 {
+ width: 73%
+}
+
+.column-74 {
+ width: 74%
+}
+
+.column-75 {
+ width: 75%
+}
+
+.column-76 {
+ width: 76%
+}
+
+.column-77 {
+ width: 77%
+}
+
+.column-78 {
+ width: 78%
+}
+
+.column-79 {
+ width: 79%
+}
+
+.column-80 {
+ width: 80%
+}
+
+.column-81 {
+ width: 81%
+}
+
+.column-82 {
+ width: 82%
+}
+
+.column-83 {
+ width: 83%
+}
+
+.column-84 {
+ width: 84%
+}
+
+.column-85 {
+ width: 85%
+}
+
+.column-86 {
+ width: 86%
+}
+
+.column-87 {
+ width: 87%
+}
+
+.column-88 {
+ width: 88%
+}
+
+.column-89 {
+ width: 89%
+}
+
+.column-90 {
+ width: 90%
+}
+
+.column-91 {
+ width: 91%
+}
+
+.column-92 {
+ width: 92%
+}
+
+.column-93 {
+ width: 93%
+}
+
+.column-94 {
+ width: 94%
+}
+
+.column-95 {
+ width: 95%
+}
+
+.column-96 {
+ width: 96%
+}
+
+.column-97 {
+ width: 97%
+}
+
+.column-98 {
+ width: 98%
+}
+
+.column-99 {
+ width: 99%
+}
+
+.column-100 {
+ width: 100%
+}
diff --git a/assets/css/src/table_drag_and_drop.css b/assets/css/src/table_drag_and_drop.css
new file mode 100644
index 00000000..aaee9fc7
--- /dev/null
+++ b/assets/css/src/table_drag_and_drop.css
@@ -0,0 +1,32 @@
+.draggable-row-handle {
+ cursor: move;
+ color: #dedede
+}
+
+.draggable-row-handle:hover {
+ color: var(--color-primary);
+}
+
+tr.draggable-item-selected {
+ background: #fff;
+ border: 2px solid #666;
+ box-shadow: 4px 2px 10px -4px rgba(0, 0, 0, 0.55)
+}
+
+tr.draggable-item-selected td {
+ border-top: none;
+ border-bottom: none
+}
+
+tr.draggable-item-selected td:first-child {
+ border-left: none
+}
+
+tr.draggable-item-selected td:last-child {
+ border-right: none
+}
+
+.table-stripped tr.draggable-item-hover,
+.table-stripped tr.draggable-item-hover {
+ background: #FEFFF2
+}
diff --git a/assets/css/src/table_list.css b/assets/css/src/table_list.css
new file mode 100644
index 00000000..ce6b0e64
--- /dev/null
+++ b/assets/css/src/table_list.css
@@ -0,0 +1,174 @@
+.table-list {
+ font-size: 0.85em;
+ margin-bottom: 20px
+}
+
+.table-list-header {
+ background: #fbfbfb;
+ border: 1px solid #e5e5e5;
+ border-radius: 5px 5px 0 0;
+ line-height: 28px;
+ padding-left: 3px;
+ padding-right: 3px
+}
+
+.table-list-header a {
+ color: #333;
+ font-weight: 500;
+ text-decoration: none;
+ margin-right: 10px
+}
+
+.table-list-header a:hover,
+.table-list-header a:focus {
+ color: #767676
+}
+
+.table-list-header .table-list-header-count {
+ color: #767676;
+ display: inline-block;
+ float: left;
+}
+
+.table-list-header .table-list-header-menu {
+ text-align: right
+}
+
+.table-list-row {
+ padding-left: 3px;
+ padding-right: 3px;
+ border-bottom: 1px solid #e5e5e5;
+ border-right: 1px solid #e5e5e5
+}
+
+.table-list-row.table-border-left {
+ border-left: 1px solid #e5e5e5
+}
+
+.table-list-row:nth-child(odd) {
+ background: #fefefe
+}
+
+.table-list-row:last-child {
+ border-radius: 0 0 5px 5px
+}
+
+.table-list-row:hover {
+ background: #fff8dc;
+ border-bottom: 1px solid #ffeb8e;
+ border-right: 1px solid #ffeb8e
+}
+
+.table-list-row .table-list-title {
+ font-weight: 500;
+ line-height: 23px
+}
+
+.table-list-row .table-list-title.status-closed {
+ text-decoration: line-through;
+ margin-right: 10px
+}
+
+.table-list-row .table-list-title.status-closed a {
+ font-style: italic
+}
+
+.table-list-row .table-list-title a {
+ color: #333;
+ text-decoration: none
+}
+
+.table-list-row .table-list-title a:hover,
+.table-list-row .table-list-title a:focus {
+ text-decoration: underline
+}
+
+.table-list-row .table-list-details {
+ color: #999;
+ font-weight: 300;
+ line-height: 20px
+}
+
+.table-list-row .table-list-details span {
+ margin-left: 5px
+}
+
+.table-list-row .table-list-details span:first-child {
+ margin-left: 0
+}
+
+.table-list-row .table-list-details li {
+ display: inline;
+ list-style-type: none
+}
+
+.table-list-row .table-list-details li:after {
+ content: ', '
+}
+
+.table-list-row .table-list-details li:last-child:after {
+ content: ''
+}
+
+.table-list-row .table-list-details strong {
+ font-weight: 400;
+ color: #555
+}
+
+.table-list-row .table-list-details-with-icons {
+ float: left
+}
+
+@media (max-width: 768px) {
+ .table-list-row .table-list-details-with-icons {
+ float: none
+ }
+}
+
+.table-list-row .table-list-icons {
+ font-size: 0.8em;
+ text-align: right;
+ line-height: 30px
+}
+
+@media (max-width: 768px) {
+ .table-list-row .table-list-icons {
+ text-align: left;
+ line-height: 20px
+ }
+}
+
+.table-list-row .table-list-icons span {
+ margin-left: 5px
+}
+
+.table-list-row .table-list-icons a {
+ text-decoration: none
+}
+
+.table-list-row .table-list-icons a:hover {
+ color: #333
+}
+
+.table-list-row .table-list-icons a:hover i {
+ color: #333
+}
+
+.table-list-category {
+ font-size: 0.9em;
+ font-weight: 500;
+ color: #000;
+ padding: 1px 2px 1px 2px;
+ border-radius: 3px;
+ background: #fcfcfc;
+ border: 1px solid #ccc
+}
+
+.table-list-category a {
+ text-decoration: none;
+ color: #000
+}
+
+.table-list-category a:hover {
+ color: #36c
+}
diff --git a/assets/css/src/task_board.css b/assets/css/src/task_board.css
new file mode 100644
index 00000000..85bf38e2
--- /dev/null
+++ b/assets/css/src/task_board.css
@@ -0,0 +1,68 @@
+.task-board-sort-handle {
+ float: left;
+ padding-right: 5px
+}
+
+.task-board {
+ position: relative;
+ margin-bottom: 4px;
+ border: 1px solid #000;
+ padding: 2px;
+ word-wrap: break-word;
+ font-size: 0.9em;
+ border-radius: 6px
+}
+
+div.task-board-recent {
+ border-width: 2px
+}
+
+div.task-board-status-closed {
+ user-select: none;
+ border: 1px dotted #555
+}
+
+.task-board a {
+ color: #000;
+ text-decoration: none
+}
+
+.task-board-collapsed {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis
+}
+
+.task-board-title {
+ margin-top: 5px;
+ margin-bottom: 8px
+}
+
+.task-board-title a:hover {
+ text-decoration: underline
+}
+
+.task-board-saving-state {
+ opacity: 0.3
+}
+
+.task-board-saving-icon {
+ position: absolute;
+ margin: auto;
+ width: 100%;
+ text-align: center;
+ color: #000
+}
+
+.task-board-avatars {
+ text-align: right;
+ float: right
+}
+
+.task-board-change-assignee {
+ cursor: pointer
+}
+
+.task-board-change-assignee:hover {
+ opacity: 0.6
+}
diff --git a/assets/css/src/task_category.css b/assets/css/src/task_category.css
new file mode 100644
index 00000000..caf0e85d
--- /dev/null
+++ b/assets/css/src/task_category.css
@@ -0,0 +1,18 @@
+.task-board-category-container {
+ text-align: right;
+ margin-top: 8px;
+ margin-bottom: 8px
+}
+
+.task-board-category {
+ border: 1px solid #555;
+ font-size: 0.9em;
+ font-weight: 500;
+ color: #000;
+ padding: 1px 3px 1px 2px;
+ border-radius: 3px
+}
+
+.task-board-category a:hover {
+ text-decoration: underline
+}
diff --git a/assets/css/src/task_date.css b/assets/css/src/task_date.css
new file mode 100644
index 00000000..a97cab28
--- /dev/null
+++ b/assets/css/src/task_date.css
@@ -0,0 +1,14 @@
+.task-date {
+ font-weight: 500;
+ color: #000
+}
+
+span.task-date-today {
+ opacity: 1.0;
+ color: var(--link-color-primary);
+}
+
+span.task-date-overdue {
+ opacity: 1.0;
+ color: #b94a48
+}
diff --git a/assets/css/src/task_form.css b/assets/css/src/task_form.css
new file mode 100644
index 00000000..d7d84d0b
--- /dev/null
+++ b/assets/css/src/task_form.css
@@ -0,0 +1,69 @@
+.task-form-container {
+ box-sizing: border-box;
+ display: flex;
+ flex-wrap: wrap
+}
+
+.task-form-container>* {
+ box-sizing: border-box
+}
+
+.task-form-container>* {
+ width: 1%
+}
+
+.task-form-main-column {
+ width: 60%
+}
+
+@media (max-width: 1000px) {
+ .task-form-main-column {
+ width: 100%
+ }
+}
+
+.task-form-main-column input[type="text"] {
+ width: 700px;
+ max-width: 99%
+}
+
+.task-form-secondary-column {
+ max-width: 250px;
+ min-width: 200px;
+ max-height: 600px;
+ padding-left: 10px;
+ overflow: auto;
+ width: 20%
+}
+
+@media (max-width: 1000px) {
+ .task-form-secondary-column {
+ width: 100%;
+ max-width: 99%;
+ max-height: none
+ }
+}
+
+@media (max-width: 768px) {
+ .task-form-secondary-column {
+ padding-left: 0
+ }
+}
+
+.task-form-secondary-column label:first-child {
+ margin-top: 0
+}
+
+@media (max-width: 1000px) {
+ .task-form-secondary-column label:first-child {
+ margin-top: 10px
+ }
+}
+
+.task-form-bottom {
+ width: 100%
+}
+
+.task-form-bottom label {
+ display: inline-block
+}
diff --git a/assets/css/src/task_icons.css b/assets/css/src/task_icons.css
new file mode 100644
index 00000000..a22417c2
--- /dev/null
+++ b/assets/css/src/task_icons.css
@@ -0,0 +1,127 @@
+.task-list-avatars {
+ display: inline-block;
+ float: left
+}
+
+@media (max-width: 768px) {
+ .task-list-avatars {
+ float: none;
+ display: block
+ }
+}
+
+.task-list-avatars .task-avatar-assignee {
+ font-weight: 300;
+ color: #999
+}
+
+.task-list-avatars:hover .task-avatar-assignee {
+ font-weight: 400;
+ color: #000
+}
+
+.task-board-icons,
+.task-list-icons {
+ font-size: 0.8em;
+ text-align: right
+}
+
+.task-board-icons a,
+.task-board-icons span.tooltip,
+.task-list-icons a,
+.task-list-icons span.tooltip {
+ text-decoration: none
+}
+
+.task-board-icons a:hover,
+.task-board-icons span.tooltip:hover,
+.task-list-icons a:hover,
+.task-list-icons span.tooltip:hover {
+ color: var(--color-primary);
+}
+
+.task-board-icons a:hover i,
+.task-board-icons span.tooltip:hover i,
+.task-list-icons a:hover i,
+.task-list-icons span.tooltip:hover i {
+ color: var(--color-primary);
+}
+
+.task-board-icons .task-score,
+.task-list-icons .task-score {
+ font-weight: bold
+}
+
+.task-board-icons .flag-milestone,
+.task-list-icons .flag-milestone {
+ color: green
+}
+
+.task-board-icons {
+ margin-top: 7px
+}
+
+.task-board-icons a {
+ opacity: 0.5
+}
+
+.task-board-icons span {
+ opacity: 0.5;
+ margin-left: 4px
+}
+
+.task-board-icons a:hover,
+.task-board-icons span.tooltip:hover {
+ opacity: 1.0;
+ font-weight: bold
+}
+
+.task-board-icons .task-board-icons-row {
+ line-height: 22px
+}
+
+.task-list-icons {
+ line-height: 22px
+}
+
+.task-list-icons a,
+.task-list-icons span,
+.task-list-icons i {
+ color: #999;
+ opacity: 1.0
+}
+
+.task-list-icons span {
+ margin-left: 5px
+}
+
+@media (max-width: 768px) {
+ .task-list-icons {
+ text-align: left
+ }
+}
+
+.task-icon-age {
+ display: inline-block
+}
+
+span.task-icon-age-total {
+ border: 1px solid #e5e5e5;
+ padding: 1px 3px 1px 3px;
+ border-top-left-radius: 3px;
+ border-bottom-left-radius: 3px
+}
+
+span.task-icon-age-column {
+ border: 1px solid #e5e5e5;
+ border-left: none;
+ margin-left: -5px;
+ padding: 1px 3px 1px 3px;
+ border-top-right-radius: 3px;
+ border-bottom-right-radius: 3px
+}
+
+.task-board span.task-icon-age-total,
+.task-board span.task-icon-age-column {
+ border-color: #666
+}
diff --git a/assets/css/src/task_links.css b/assets/css/src/task_links.css
new file mode 100644
index 00000000..eb7dba52
--- /dev/null
+++ b/assets/css/src/task_links.css
@@ -0,0 +1,12 @@
+.task-links-table td {
+ vertical-align: middle
+}
+
+.task-links-task-count {
+ color: var(--color-light);
+ font-weight: normal
+}
+
+.task-link-closed {
+ text-decoration: line-through
+} \ No newline at end of file
diff --git a/assets/css/src/task_list.css b/assets/css/src/task_list.css
new file mode 100644
index 00000000..7da439a6
--- /dev/null
+++ b/assets/css/src/task_list.css
@@ -0,0 +1,28 @@
+
+.task-list-subtasks {
+ display: table;
+ width: 100%
+}
+
+@media (max-width: 768px) {
+ .task-list-subtasks {
+ display: block
+ }
+}
+
+.task-list-subtask {
+ display: table-row
+}
+
+@media (max-width: 768px) {
+ .task-list-subtask {
+ display: block
+ }
+}
+
+@media (max-width: 768px) {
+ .subtask-assignee,
+ .subtask-time-tracking-cell {
+ display: none
+ }
+}
diff --git a/assets/css/src/task_summary.css b/assets/css/src/task_summary.css
new file mode 100644
index 00000000..f6cbea26
--- /dev/null
+++ b/assets/css/src/task_summary.css
@@ -0,0 +1,51 @@
+.task-summary-container .task-tags {
+ margin-top: 10px
+}
+
+#task-summary {
+ margin-bottom: 15px
+}
+
+#task-summary h2 {
+ color: var(--color-medium);
+ font-size: 1.6em;
+ margin-top: 0;
+ padding-top: 0
+}
+
+.task-summary-container {
+ border: 2px solid #000;
+ border-radius: 8px;
+ padding: 10px
+}
+
+.task-summary-columns {
+ display: flex;
+ flex-flow: row;
+ justify-content: space-between
+}
+
+@media (max-width: 768px) {
+ .task-summary-columns {
+ flex-flow: column
+ }
+}
+
+.task-summary-column {
+ color: var(--color-primary);
+}
+
+.task-summary-column span {
+ color: var(--color-medium);
+}
+
+.task-summary-column li {
+ line-height: 23px
+}
+
+#external-task-view {
+ padding: 10px;
+ margin-top: 10px;
+ margin-bottom: 10px;
+ border: 1px dotted #ccc
+}
diff --git a/assets/css/src/task_tags.css b/assets/css/src/task_tags.css
new file mode 100644
index 00000000..5af22109
--- /dev/null
+++ b/assets/css/src/task_tags.css
@@ -0,0 +1,8 @@
+.task-tags li {
+ display: inline-block;
+ margin: 3px 3px 0 0;
+ padding: 1px 3px 1px 3px;
+ color: var(--color-primary);
+ border: 1px solid #333;
+ border-radius: 4px
+}
diff --git a/assets/css/src/text_editor.css b/assets/css/src/text_editor.css
new file mode 100644
index 00000000..fd2c816b
--- /dev/null
+++ b/assets/css/src/text_editor.css
@@ -0,0 +1,29 @@
+.text-editor {
+ margin-top: 10px
+}
+
+.text-editor a {
+ font-size: 1em;
+ color: var(--color-light);
+ text-decoration: none;
+ margin-right: 10px
+}
+
+.text-editor a:hover {
+ color: var(--link-color-primary);
+}
+
+.text-editor .text-editor-preview-area {
+ border: 1px solid #dedede;
+ width: 700px;
+ max-width: 99%;
+ height: 250px;
+ overflow: auto;
+ padding: 2px
+}
+
+.text-editor textarea {
+ width: 700px;
+ max-width: 98%;
+ height: 250px
+}
diff --git a/assets/css/src/thumbnails.css b/assets/css/src/thumbnails.css
new file mode 100644
index 00000000..38b75dec
--- /dev/null
+++ b/assets/css/src/thumbnails.css
@@ -0,0 +1,59 @@
+.file-thumbnails {
+ display: -webkit-flex;
+ display: flex;
+ -webkit-flex-direction: row;
+ flex-direction: row;
+ -webkit-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-justify-content: flex-start;
+ justify-content: flex-start
+}
+
+.file-thumbnail {
+ width: 250px;
+ border: 1px solid #efefef;
+ border-radius: 5px;
+ margin-bottom: 20px;
+ box-shadow: 4px 2px 10px -6px rgba(0, 0, 0, 0.55);
+ margin-right: 15px
+}
+
+.file-thumbnail img {
+ cursor: pointer;
+ border-top-left-radius: 5px;
+ border-top-right-radius: 5px
+}
+
+.file-thumbnail img:hover {
+ opacity: 0.5
+}
+
+.file-thumbnail-content {
+ padding-left: 8px;
+ padding-right: 8px
+}
+
+.file-thumbnail-title {
+ font-weight: 700;
+ font-size: 0.9em;
+ color: var(--color-medium);
+ overflow: hidden;
+ text-overflow: ellipsis
+}
+
+.file-thumbnail-description {
+ font-size: 0.8em;
+ color: var(--color-light);
+ margin-top: 8px;
+ margin-bottom: 5px
+}
+
+.file-viewer {
+ position: relative
+}
+
+.file-viewer img {
+ max-width: 95%;
+ max-height: 85%;
+ margin-top: 10px
+}
diff --git a/assets/css/src/titles.css b/assets/css/src/titles.css
new file mode 100644
index 00000000..55b91875
--- /dev/null
+++ b/assets/css/src/titles.css
@@ -0,0 +1,20 @@
+h1,
+h2,
+h3 {
+ font-weight: normal;
+ color: var(--color-primary);
+}
+
+h1 {
+ font-size: 1.5em
+}
+
+h2 {
+ font-size: 1.4em;
+ margin-bottom: 10px
+}
+
+h3 {
+ margin-top: 10px;
+ font-size: 1.2em
+}
diff --git a/assets/css/src/tooltip.css b/assets/css/src/tooltip.css
new file mode 100644
index 00000000..769f1120
--- /dev/null
+++ b/assets/css/src/tooltip.css
@@ -0,0 +1,25 @@
+.tooltip i.fa {
+ cursor: pointer
+}
+
+.tooltip .fa-info-circle {
+ color: var(--color-light);
+}
+
+#tooltip-container {
+ padding: 5px;
+ background: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ box-shadow: 0 6px 12px #aaa;
+ position: absolute;
+ min-width: 350px
+}
+
+#tooltip-container .markdown p {
+ margin-bottom: 0
+}
+
+#tooltip-container .tooltip-large {
+ width: 600px
+}
diff --git a/assets/css/src/user_mention.css b/assets/css/src/user_mention.css
new file mode 100644
index 00000000..557ce5a0
--- /dev/null
+++ b/assets/css/src/user_mention.css
@@ -0,0 +1,9 @@
+.user-mention-link {
+ font-weight: bold;
+ color: var(--user-mention-color);
+ text-decoration: none
+}
+
+.user-mention-link:hover {
+ color: var(--color-medium);
+}
diff --git a/assets/css/src/variables.css b/assets/css/src/variables.css
new file mode 100644
index 00000000..80964589
--- /dev/null
+++ b/assets/css/src/variables.css
@@ -0,0 +1,69 @@
+:root {
+ --color-primary: #333;
+ --color-light: #999;
+ --color-lighter: #dedede;
+ --color-dark: #000;
+ --color-medium: #555;
+ --color-error: #b94a48;
+
+ --link-color-primary: #3366CC;
+ --link-color-focus: #DF5353;
+ --link-color-hover: #333;
+
+ --alert-color-default: #c09853;
+ --alert-color-success: #468847;
+ --alert-color-error: #b94a48;
+ --alert-color-info: #3a87ad;
+ --alert-color-normal: #333;
+
+ --alert-background-color-default: #fcf8e3;
+ --alert-background-color-success: #dff0d8;
+ --alert-background-color-error: #f2dede;
+ --alert-background-color-info: #d9edf7;
+ --alert-background-color-normal: #f0f0f0;
+
+ --alert-border-color-default: #fbeed5;
+ --alert-border-color-success: #d6e9c6;
+ --alert-border-color-error: #eed3d7;
+ --alert-border-color-info: #bce8f1;
+ --alert-border-color-normal: #ddd;
+
+ --button-default-color: #333;
+ --button-default-background-color: #f5f5f5;
+ --button-default-border-color: #ddd;
+
+ --button-default-color-focus: #000;
+ --button-default-background-color-focus: #fafafa;
+ --button-default-border-color-focus: #bbb;
+
+ --button-primary-color: #fff;
+ --button-primary-background-color: #4d90fe;
+ --button-primary-border-color: #3079ed;
+
+ --button-primary-color-focus: #fff;
+ --button-primary-background-color-focus: #357ae8;
+ --button-primary-border-color-focus: #3079ed;
+
+ --button-danger-color: #fff;
+ --button-danger-background-color: #d14836;
+ --button-danger-border-color: #b0281a;
+
+ --button-danger-color-focus: #fff;
+ --button-danger-background-color-focus: #c53727;
+ --button-danger-border-color-focus: #b0281a;
+
+ --button-disabled-color: #ccc;
+ --button-disabled-background-color: #f7f7f7;
+ --button-disabled-border-color: #ccc;
+
+ --avatar-color-letter: #fff;
+
+ --activity-title-color: #000;
+ --activity-title-border-color: #efefef;
+ --activity-event-background-color: #fafafa;
+ --activity-event-hover-color: #fff8dc;
+
+ --user-mention-color: #000;
+
+ --board-task-limit-color: #DF5353;
+}
diff --git a/assets/css/src/views.css b/assets/css/src/views.css
new file mode 100644
index 00000000..b8bb1e69
--- /dev/null
+++ b/assets/css/src/views.css
@@ -0,0 +1,69 @@
+.views {
+ margin-right: 10px;
+ margin-top: 1px;
+ font-size: 0.9em
+}
+
+@media (max-width: 560px) {
+ .views {
+ width: 100%
+ }
+}
+
+@media (max-width: 768px) {
+ .views {
+ margin-top: 10px;
+ font-size: 1em
+ }
+}
+
+@media (max-width: 480px) {
+ .views {
+ margin-top: 5px
+ }
+}
+
+.views li {
+ white-space: nowrap;
+ background: #fafafa;
+ border: 1px solid #ddd;
+ border-right: none;
+ padding: 4px 8px;
+ display: inline
+}
+
+@media (max-width: 560px) {
+ .views li {
+ display: block;
+ margin-top: 5px;
+ border-radius: 5px;
+ border: 1px solid #ddd
+ }
+}
+
+.views li.active a {
+ font-weight: bold;
+ color: #000;
+ text-decoration: none
+}
+
+.views li:first-child {
+ border-top-left-radius: 5px;
+ border-bottom-left-radius: 5px
+}
+
+.views li:last-child {
+ border-right: 1px solid #ddd;
+ border-top-right-radius: 5px;
+ border-bottom-right-radius: 5px
+}
+
+.views a {
+ color: var(--color-medium);
+ text-decoration: none
+}
+
+.views a:hover {
+ color: var(--color-primary);
+ text-decoration: underline
+}