diff --git a/src/components/SubTask/SubTaskComp.vue b/src/components/SubTask/SubTaskComp.vue
new file mode 100644
index 0000000..0d25653
--- /dev/null
+++ b/src/components/SubTask/SubTaskComp.vue
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/SubTask/SubTaskList.vue b/src/components/SubTask/SubTaskList.vue
new file mode 100644
index 0000000..a4911b3
--- /dev/null
+++ b/src/components/SubTask/SubTaskList.vue
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Task/TaskComp.vue b/src/components/Task/TaskComp.vue
index fd7c6ae..84db6b1 100644
--- a/src/components/Task/TaskComp.vue
+++ b/src/components/Task/TaskComp.vue
@@ -28,6 +28,14 @@
{{ description }}
+
+
@@ -340,6 +349,49 @@ export default Vue.extend({
}
}
+ .subtasksButton {
+ display: flex;
+ align-items: center;
+
+ opacity: 0;
+ @media (pointer: none), (pointer: coarse) {
+ opacity: 0.5;
+ }
+ transition: opacity 0.2s;
+
+ background-color: transparent;
+ padding: 1px;
+ border: 0;
+ cursor: pointer;
+
+ .dropdownIcon {
+ * {
+ transition: stroke 0.2s;
+ }
+ &:hover * {
+ .light-mode & {
+ stroke: $independence-gray0;
+ }
+ .dark-mode & {
+ stroke: $dark-primary;
+ }
+ }
+ }
+
+ &.openedSubtasksButton {
+ .dropdownIcon {
+ transform: rotate(180deg);
+ }
+ }
+ &.closedSubtasksButton {
+ .dropdownIcon {
+ transform: rotate(0deg);
+ }
+ }
+ }
+ &:hover .subtasksButton {
+ opacity: 1;
+ }
}
}
}
diff --git a/src/components/icon/Dropdown.vue b/src/components/icon/Dropdown.vue
new file mode 100644
index 0000000..e66d2b6
--- /dev/null
+++ b/src/components/icon/Dropdown.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
diff --git a/src/static/icons/source_icons_down-round-arrow.svg b/src/static/icons/source_icons_down-round-arrow.svg
new file mode 100644
index 0000000..4a67454
--- /dev/null
+++ b/src/static/icons/source_icons_down-round-arrow.svg
@@ -0,0 +1,4 @@
+