-
- arrow_back
+
+ close
search
-
+
-
-
+
-
-
-
Search Context: {{ getContext(this.$route.path) }}
-
- {{ text }}
-
-
-
{{ $t("search.types") }}
-
-
-
{{ v.icon }}
-
{{ v.label }}
-
-
-
-
-
+
+ Search Context: {{ getContext(this.$route.path) }}
+
-
+
folder
volume_up
@@ -44,12 +47,83 @@
+
+ {{ text }}
+
+
+
{{ $t("search.types") }}
+
+
+
{{ v.icon }}
+
{{ v.label }}
+
+
+
+
+
+
+
+
+
+
+ Search Context: {{ getContext(this.$route.path) }}
+
+
+
+
+ folder
+ volume_up
+ photo
+ movie
+ archive
+ insert_drive_file
+
+ {{ basePath(s.path) }}{{ baseName(s.path) }}
+
+
+
+
+
+ {{ text }}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/components/Sidebar.vue b/frontend/src/components/Sidebar.vue
index 4f76c9f4..7af376d9 100644
--- a/frontend/src/components/Sidebar.vue
+++ b/frontend/src/components/Sidebar.vue
@@ -1,34 +1,6 @@
-
@@ -103,6 +104,16 @@ export default {
return (matched && this.show) || null;
},
+ showOverlay: function () {
+ return (
+ this.show !== null && this.show !== "more"
+ );
+ },
+ },
+ methods: {
+ resetPrompts() {
+ this.$store.commit("closeHovers");
+ },
},
};
-
+
\ No newline at end of file
diff --git a/frontend/src/css/_share.css b/frontend/src/css/_share.css
index eb8aacb7..38d70552 100644
--- a/frontend/src/css/_share.css
+++ b/frontend/src/css/_share.css
@@ -5,7 +5,7 @@
align-items: flex-start;
}
-@media (max-width: 736px) {
+@media (max-width: 800px) {
.share {
display: block;
}
diff --git a/frontend/src/css/base.css b/frontend/src/css/base.css
index 720316b5..e26d98f1 100644
--- a/frontend/src/css/base.css
+++ b/frontend/src/css/base.css
@@ -1,3 +1,4 @@
+/* Basic Styles */
body {
font-family: "Roboto", sans-serif;
padding-top: 4em;
@@ -11,12 +12,6 @@ body.rtl {
* {
box-sizing: border-box;
-}
-
-*,
-*:hover,
-*:active,
-*:focus {
outline: 0;
}
@@ -28,45 +23,70 @@ img {
max-width: 100%;
}
-audio,
-video {
+audio, video {
width: 100%;
}
-.mobile-only {
+.hidden {
display: none !important;
}
+.break-word {
+ word-break: break-all;
+}
+
+/* Container */
.container {
width: 95%;
max-width: 960px;
margin: 1em auto 0;
}
+/* Icons */
i.spin {
animation: 1s spin linear infinite;
}
+/* App Styles */
#app {
transition: 0.2s ease padding;
}
-
+over
#app.multiple {
padding-bottom: 4em;
}
+/* Navigation Styles */
nav {
width: 16em;
position: fixed;
top: 4em;
- left: 0;
+ left: -17em;
+ z-index: 99999;
+ background: #fff;
+ height: 100%;
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
+ transition: .1s ease left;
}
body.rtl nav {
+ left: unset;
+ right: -17em;
+}
+
+nav.active {
+ left: 0;
+}
+
+body.rtl nav.active {
left: unset;
right: 0;
}
+nav > div {
+ border-top: 1px solid rgba(0, 0, 0, 0.05);
+}
+
nav .action {
width: 100%;
display: block;
@@ -77,41 +97,17 @@ nav .action {
overflow: hidden;
text-overflow: ellipsis;
}
-nav {
- z-index: 99999;
- background: #fff;
- height: 100%;
- width: 16em;
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
- transition: .1s ease left;
- left: -17em;
-}
-body.rtl nav {
- left: unset;
- right: -17em;
-}
-nav.active {
- left: 0;
-}
-
-body.rtl nav.active {
- left: unset;
- right: 0;
-}
body.rtl .action {
direction: rtl;
text-align: right;
}
-nav > div {
- border-top: 1px solid rgba(0, 0, 0, 0.05);
-}
-
nav .action > * {
vertical-align: middle;
}
+/* Main Content */
main {
margin: 1em;
}
@@ -119,15 +115,12 @@ main {
.breadcrumbs {
height: 3em;
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
-}
-
-.breadcrumbs span,
-.breadcrumbs {
display: flex;
align-items: center;
color: #6f6f6f;
}
+.breadcrumbs span,
.breadcrumbs a {
color: inherit;
transition: 0.1s ease-in;
@@ -146,12 +139,14 @@ body.rtl .breadcrumbs a {
padding: 0.2em;
}
+/* Files */
.files {
position: absolute;
bottom: 30px;
width: 100%;
}
+/* Progress Bar */
.progress {
position: fixed;
top: 0;
@@ -168,33 +163,76 @@ body.rtl .breadcrumbs a {
transition: 0.2s ease width;
}
-.break-word {
- word-break: break-all;
+/* Animations */
+@keyframes flyInFromTop {
+ 0% {
+ transform: translateY(100%);
+ opacity: 0;
+ }
+ 100% {
+ transform: translateY(0);
+ opacity: 1;
+ }
}
+#search.active #result-desktop ul li a {
+ display: flex;
+ align-items: center;
+ padding: .3em 0;
+ margin-right: .3em;
+}
+
+#result-desktop {
+ animation: flyInFromTop 0.5s forwards;
+}
+
+/* File Selection */
#file-selection {
position: fixed;
bottom: 1em;
left: 50%;
transform: translateX(-50%);
- display: flex;
+ display: -ms-flexbox;
+ -ms-flex-align: center;
align-items: center;
background: #fff;
+ -webkit-box-shadow: rgba(0, 0, 0, 0.06) 0px 1px 3px, rgba(0, 0, 0, 0.12) 0px 1px 2px;
box-shadow: rgba(0, 0, 0, 0.06) 0px 1px 3px, rgba(0, 0, 0, 0.12) 0px 1px 2px;
width: 95%;
max-width: 25em;
z-index: 1;
}
+
+button {
+ flex: 1;
+ height: 3em;
+ padding: 8px 16px;
+ border: none;
+ background-color: #f5f5f5;
+ transition: background-color 0.3s;
+
+ /* Add borders */
+ border-right: 1px solid #ccc;
+}
+
+@media (min-width: 800px) {
+ #file-selection {
+ bottom: 4em;
+ }
+}
+
#file-selection .action {
border-radius: 50%;
width: auto;
}
+
#file-selection > span {
display: inline-block;
margin-left: 1em;
color: #6f6f6f;
margin-right: auto;
}
+
#file-selection .action span {
display: none;
}
diff --git a/frontend/src/css/dashboard.css b/frontend/src/css/dashboard.css
index 9d3ebcce..24bca5bc 100644
--- a/frontend/src/css/dashboard.css
+++ b/frontend/src/css/dashboard.css
@@ -295,6 +295,17 @@ body.rtl .card .card-title>*:first-child {
opacity: 0;
}
+.overlay {
+ background-color: rgba(0, 0, 0, 0.5);
+ position: fixed;
+ top: 4em;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ z-index: 9999;
+ animation: .3s show ease-in;
+}
+
.card#share .action.copy-clipboard.active::after {
opacity: 1;
}
@@ -311,10 +322,6 @@ body.rtl .card .card-title>*:first-child {
flex: 1;
}
-/* * * * * * * * * * * * * * * *
- * PROMPT - MOVE *
- * * * * * * * * * * * * * * * */
-
.file-list {
max-height: 50vh;
overflow: auto;
diff --git a/frontend/src/css/header.css b/frontend/src/css/header.css
index 751134c0..7cbe6cc4 100644
--- a/frontend/src/css/header.css
+++ b/frontend/src/css/header.css
@@ -1,26 +1,29 @@
+/* Header */
header {
z-index: 1000;
- border-bottom: 1px solid rgba(0, 0, 0, 0.075);
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
position: fixed;
- justify-content: space-between;
+ z-index: 10000;
top: 0;
left: 0;
- height: 4em;
width: 100%;
- padding: 0;
+ height: 4em;
display: flex;
- padding: 0.5em;
align-items: center;
+ justify-content: space-between;
background-color: white;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.075);
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
+ padding: 0.5em;
}
+
@supports (backdrop-filter: none) {
header {
background-color: transparent;
backdrop-filter: blur(16px) invert(0.1);
}
}
-header > * {
+
+header>* {
flex: 0 0 auto;
}
@@ -56,27 +59,14 @@ header>div div {
position: relative;
}
-#more {
- display: none;
-}
-
+/* Search */
#search {
position: absolute;
height: 3em;
width: 50%;
max-width: 50em;
left: 50%;
- transform: translate(-50%,0%);
-}
-
-#search.active {
- position: fixed;
- top: 0;
- right: 0;
- width: 100%;
- max-width: 100%;
- height: 100%;
- z-index: 9999;
+ transform: translate(-50%, 0%);
}
#search #input {
@@ -90,23 +80,6 @@ header>div div {
z-index: 2;
}
-#search.active #input {
- border-bottom: 3px solid rgba(0, 0, 0, 0.075);
- box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
- backdrop-filter: blur(6px);
- height: 4em;
-}
-
-#search.active>div {
- border-radius: 0 !important;
-}
-
-#search #input>.action,
-#search #input>i {
- margin-right: 0.3em;
- user-select: none;
-}
-
#search input {
width: 100%;
border: 0;
@@ -114,24 +87,44 @@ header>div div {
padding: 0;
}
+#result-list p {
+ margin: 1em;
+}
#result-list {
width: 60em;
max-width: 100%;
- padding-top: 3em;
overflow-x: hidden;
overflow-y: auto;
+ border-color: gray;
+}
+
+@media (min-width: 800px) {
+ #result-list {
+ padding-top: 0;
+ border-radius: .5em;
+ border-width: 2px;
+ border-style: solid;
+ background-color: white;
+ margin-top: 1em;
+ max-height: 80vh;
+ left: 50%;
+ max-width: 90vw;
+ transform: translateX(-50%);
+ box-shadow: 0px 2em 50px 10px rgba(0, 0, 0, 0.3)
+ }
}
.text-container {
- white-space: nowrap; /* Prevents the text from wrapping */
- overflow: hidden; /* Hides the content that exceeds the div size */
- text-overflow: ellipsis; /* Adds "..." when the text overflows */
- width: 100%; /* Ensures the content takes the full width available */
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ width: 100%;
text-align: left;
direction: rtl;
}
#search #result {
+ padding-top: 1em;
overflow: hidden;
background: white;
display: flex;
@@ -139,19 +132,12 @@ header>div div {
flex-direction: column;
align-items: center;
text-align: left;
- padding: 0;
color: rgba(0, 0, 0, 0.6);
height: 0;
transition: .2s ease height, .2s ease padding;
z-index: 1;
}
-@media screen and (min-width: 800px) {
- #search #result {
- background: linear-gradient(to right, white 15%,lightgray 25%,lightgray 75%,white 85%);
- }
-}
-
body.rtl #search #result {
direction: ltr;
}
@@ -165,16 +151,12 @@ body.rtl #search #result {
text-align: right;
}
-/*** RTL - Keep search result LTR because it has paths (in english) ***/
+/* Search Results */
body.rtl #search #result ul>* {
direction: ltr;
text-align: left;
}
-#search.active #result {
- height: 100vh
-}
-
#search ul {
margin-top: 1em;
padding: 0;
@@ -197,38 +179,28 @@ body.rtl #search #result ul>* {
display: block;
}
+/* Icon Colors */
.folder-icons {
color: var(--icon-blue);
}
+
.video-icons {
color: lightskyblue;
}
+
.image-icons {
color: lightcoral;
}
+
.archive-icons {
color: tan;
}
+
.audio-icons {
color: plum;
}
-#search.active #result>p>i {
- text-align: center;
- margin: 0 auto;
- display: table;
-}
-
-#search.active #result ul li a {
- display: flex;
- align-items: center;
- padding: .3em 0;
-}
-
-#search.active #result ul li a i {
- margin-right: .3em;
-}
-
+/* Search Input Placeholder */
#search::-webkit-input-placeholder {
color: rgba(255, 255, 255, .5);
}
@@ -247,11 +219,12 @@ body.rtl #search #result ul>* {
color: rgba(255, 255, 255, .5);
}
+/* Search Boxes */
#search .boxes {
border: 1px solid rgba(0, 0, 0, 0.075);
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
background: #fff;
- margin: 1em 0;
+ margin: 1em;
}
#search .boxes h3 {
@@ -269,9 +242,11 @@ body.rtl #search .boxes h3 {
#search .boxes>div {
display: flex;
flex-wrap: wrap;
+ margin: 1em;
+ margin-right: auto;
+ margin-left: auto;
+ max-width: 40em;
justify-content: space-between;
- margin-right: -1em;
- margin-bottom: -1em;
}
#search .boxes>div>div {
diff --git a/frontend/src/css/mobile.css b/frontend/src/css/mobile.css
index c98ff871..6ca36a63 100644
--- a/frontend/src/css/mobile.css
+++ b/frontend/src/css/mobile.css
@@ -1,20 +1,24 @@
@media (max-width: 1024px) {
+
/* Mobile Only fix div hidden by bottom navigation bar of mobile browser when using height: 100vh */
#previewer .preview {
height: calc(100% - 4em) !important;
}
}
-@media (max-width: 736px) {
+@media (max-width: 800px) {
body {
padding-bottom: 5em;
}
+
#listing.list .item .size {
display: none;
}
+
#listing.list .item .name {
width: 60%;
}
+
#more {
display: inherit
}
@@ -28,6 +32,7 @@
header img {
display: none;
}
+
#listing {
margin-bottom: 5em;
}
@@ -43,19 +48,76 @@
body.rtl #nav .wrapper {
margin-right: unset;
}
+
body.rtl .dashboard .row {
margin-right: unset;
}
+
#search.active {
display: block;
}
+
+ #search.active {
+ position: fixed;
+ top: 0;
+ right: 0;
+ width: 100%;
+ max-width: 100%;
+ height: 100%;
+ z-index: 9999;
+ }
+
+ #search.active #input {
+ border-bottom: 3px solid rgba(0, 0, 0, 0.075);
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
+ backdrop-filter: blur(6px);
+ height: 4em;
+ }
+
+ #search.active>div {
+ border-radius: 0 !important;
+ }
+
+ #search.active #result {
+ height: 100vh
+ }
+
+ #search.active #result>p>i {
+ text-align: center;
+ margin: 0 auto;
+ display: table;
+ }
+
+ #search.active #result ul li a {
+ display: flex;
+ align-items: center;
+ padding: .3em 0;
+ margin-right: .3em;
+ }
+
+ #search #input>.action,
+ #search #input>i {
+ margin-right: 0.3em;
+ user-select: none;
+ }
+
+ #result-list {
+ padding-top: 3em;
+ }
+
}
+
@media (max-width: 450px) {
#listing.list .item .modified {
display: none;
}
+
#listing.list .item .name {
width: 100%;
}
+}
+/* Mobile Specific Styles */
+.mobile-only {
+ display: none !important;
}
\ No newline at end of file
diff --git a/frontend/src/css/styles.css b/frontend/src/css/styles.css
index 4496d3ab..e28003bc 100644
--- a/frontend/src/css/styles.css
+++ b/frontend/src/css/styles.css
@@ -158,7 +158,7 @@ main .spinner .bounce2 {
color: #fff;
}
-@media (min-width: 738px) {
+@media (min-width: 800px) {
#previewer header #dropdown .action i {
color: #fff;
}
diff --git a/frontend/src/views/files/Listing.vue b/frontend/src/views/files/Listing.vue
index c98fffe9..ac2184aa 100644
--- a/frontend/src/views/files/Listing.vue
+++ b/frontend/src/views/files/Listing.vue
@@ -3,52 +3,56 @@
-
+
{{ selectedCount }} selected
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -83,12 +87,7 @@
multiple
/>
-