diff --git a/copyparty/web/browser.css b/copyparty/web/browser.css
index 08a77b6d..a710516c 100644
--- a/copyparty/web/browser.css
+++ b/copyparty/web/browser.css
@@ -4603,9 +4603,9 @@ html.e #detree {
.popup {
visibility: hidden;
width: fit-content;
- background-color: var(--bg-u5);
+ background: var(--bg-u2);
border: 1px solid var(--bg-u3);
- box-shadow: 0 0 2px var(--txt-sh);
+ box-shadow: 0 .5em 1em var(--txt-sh);
text-align: center;
border-radius: .3em;
padding: .5em;
diff --git a/copyparty/web/splash.css b/copyparty/web/splash.css
index b877d950..c2003a80 100644
--- a/copyparty/web/splash.css
+++ b/copyparty/web/splash.css
@@ -5,61 +5,145 @@ html {
font-family: var(--font-main), sans-serif;
touch-action: manipulation;
}
+
+#homebtn {
+ font-size: x-large;
+ top: 1em;
+ left: 1em;
+ margin: 0 0 .3em 0;
+ padding: .4em .5em;
+ border-radius: .3em;
+ background: var(--bg-u2);
+ border-left: var(--bg-u5) solid 1px;
+ border-top: var(--bg-u5) solid 1px;
+ border-right: var(--bg-u5) solid 1px;
+ position: fixed;
+ z-index: 10;
+ box-shadow: 0 0 1em color-mix(var(--bg-max) 60%, transparent 40%);
+}
+#homebtn:hover, #homebtn:focus-visible {
+ background: var(--bg-u5);
+}
+
+#outer {
+ inset: 0;
+ position: absolute;
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ width: 100%;
+}
+#middle {
+ display: flex;
+ flex-direction: column;
+ margin: auto;
+ justify-content: center;
+}
#wrap {
+ position: relative;
max-width: 40em;
- margin: 2em auto;
- padding: 2em 1em 3em 1em;
+ margin: 1.5em 2em;
+ margin-bottom: 3em;
+ padding: 1.5em;
+ padding-bottom: 0em;
line-height: 1.3em;
+ background: var(--bg-u2);
+ border-radius: .5em;
+ border: var(--bg-u5) solid 1px;
+ box-shadow: 0 0 2em color-mix(var(--bg-max) 60%, transparent 40%);
}
#wrap.w {
max-width: 96%;
}
h1 {
- border-bottom: 1px solid #ccc;
- margin: 1em 0 .4em 0;
+ margin: 1.5em 0 .4em 0;
padding: 0;
line-height: 1em;
font-size: x-large;
font-weight: normal;
}
+#top_L {
+ display: flex;
+}
+#l {
+ margin-top: 0;
+ text-align: center;
+}
+#login {
+ border: var(--bg-u5) solid 1px;
+ border-radius: .3em;
+ padding: 1em;
+ margin: 2em auto 0 auto;
+ max-width: 25em;
+}
li {
margin: 1em 0;
}
+p {
+ margin: 0 .2em;
+}
#lo,
a {
- color: #047;
- background: #fff;
+ color: #fff;
+ background: rgba(5, 92, 184, 0.69);
text-decoration: none;
white-space: nowrap;
- border-bottom: 1px solid #8ab;
+ border-bottom: 2px solid rgb(3, 50, 112);
border-radius: .2em;
padding: .2em .6em;
margin: 0 .3em;
}
+#lo:hover, #lo:focus-visible,
+a:hover, a:focus-visible {
+ background: rgb(10, 134, 206);
+}
td a {
margin: 0;
}
#wb,
#w {
color: #fff;
- background: rgb(54, 153, 0);
- border-color: rgb(106, 239, 34);
+ background: rgba(50, 158, 4, 0.69);
+ border-color: rgb(20, 90, 3);
+}
+#wb:hover, #wb:focus-visible,
+#w:hover, #w:focus-visible {
+ background: rgb(93, 180, 12);
}
.af,
.logout {
float: right;
margin: -.2em 0 0 .8em;
}
+
+#a {
+ background: transparent;
+ border: var(--bg-u5) solid 1px;
+ font-weight: bold;
+ padding: .2em .5em;
+}
+#a:hover, #a:focus-visible {
+ background: var(--bg-u5);
+}
+html.y #a {
+ color: #222;
+}
#lo,
.logout,
a.r {
- color: #c04;
- border-color: #c7a;
+ background: rgba(230, 3, 3, 0.61);
+ border-color: rgb(178, 5, 66);
}
-a.g {
- color: #0a0;
- border-color: #3a0;
- box-shadow: 0 .3em 1em #4c0;
+#lo:hover, #lo:focus-visible,
+.logout:hover, .logout:focus-visible,
+a.r:hover, a.r:focus-visible {
+ background: rgb(209, 4, 4);
+}
+#a.g {
+ background: rgb(254, 207, 20);
+ border-color: rgb(224, 177, 7);
+ box-shadow: 0 .3em 1em rgba(240, 149, 3, 0.584);
+ color: #000;
}
#repl,
#pb a {
@@ -70,14 +154,14 @@ a.g {
}
#repl {
position: fixed;
- bottom: .25em;
- left: .2em;
+ bottom: .5em;
+ left: .5em;
}
#pb {
opacity: .5;
position: fixed;
- bottom: .25em;
- right: .3em;
+ bottom: .5em;
+ right: .5em;
}
#pb span {
opacity: .6;
@@ -126,7 +210,7 @@ table {
.agr a,
.agr form {
margin: 0 .5em 0 0;
- line-height: 4em;
+ line-height: 2.5em;
}
.agr form,
.agr input {
@@ -200,48 +284,39 @@ html.z {
html.z h1 {
border-color: #777;
}
-html.z #lo,
-html.z a {
- color: #fff;
- background: #057;
- border-color: #37a;
-}
-html.z .logout,
-html.z #lo,
-html.z a.r {
- background: rgb(163, 0, 3);
- border-color: rgb(214, 27, 27);
-}
-html.z a.g {
- background: #470;
- border-color: #af4;
- box-shadow: 0 .3em 1em #7d0;
-}
form {
line-height: 2.5em;
+ display: flex;
+ flex-direction: column;
+ margin: auto;
+}
+#lp {
+ margin: 1em 0;
+ background: none;
+ padding: .5em;
+}
+#lp::placeholder {
+ font-size: medium;
}
#x,
input {
- color: #a50;
- background: #fff;
- border: 1px solid #a50;
- border-radius: .3em;
- padding: .25em .6em;
- margin: 0 .3em 0 0;
- font-size: 1em;
-}
-input::placeholder {
- font-size: 1.2em;
- font-style: italic;
- letter-spacing: .04em;
- opacity: 0.64;
- color: #930;
-}
-#x,
-html.z input {
color: #fff;
background: rgb(39, 130, 204);
border-color: rgb(72, 182, 255);
+ border-radius: .3em;
+ padding: .4em .6em;
+ margin: 0;
+ font-size: 1em;
+}
+#x:hover, #x:focus-visible,
+input:hover, input:focus-visible {
+ background: linear-gradient(-10deg, rgb(10, 77, 145), rgb(39, 130, 204));
+}
+input::placeholder {
+ font-size: 1.2em;
+ letter-spacing: .04em;
+ opacity: 0.64;
+ color: #000;
}
html.z input::placeholder {
color: #fff;
@@ -259,11 +334,12 @@ html.bz .vols img {
filter: sepia(0.8) hue-rotate(180deg);
}
-#homebtn {
- font-size: x-large;
- top: 1em;
- left: 1em;
- border-radius: .3em;
- background: var(--bg-u5);
- position: fixed;
+@media (max-width: 55em){
+ #homebtn {
+ position: initial;
+ display: inline-block;
+ }
+ #login {
+ margin-top: .7em;
+ }
}
diff --git a/copyparty/web/splash.html b/copyparty/web/splash.html
index b00fad06..d28843ce 100644
--- a/copyparty/web/splash.html
+++ b/copyparty/web/splash.html
@@ -12,194 +12,200 @@
{{ html_head }}
-🏠
-
-
- {%- if not in_shr %}
-
auto-refresh
-
connect
+
+
+
+
🏠
- {%- if this.uname == '*' %}
-
howdy stranger (you're not logged in)
- {%- else %}
- {%- if this.args.idp_logout %}
-
logout
- {%- else %}
-
logout
- {%- endif %}
-
welcome back, {{ this.uname|e }}
- {%- endif %}
- {%- endif %}
+ {%- if not in_shr %}
+
↻
+
Connect
- {%- if msg %}
-
- {{ msg }}
-
- {%- endif %}
-
- {%- if ups %}
-
incoming files:
-
- | % | speed | eta | idle | dir | file |
-
- {%- for u in ups %}
- | {{ u[0] }} | {{ u[1] }} | {{ u[2] }} | {{ u[3] }} | {{ u[5]|e }} | {{ u[6]|e }} |
- {%- endfor %}
-
-
- {%- endif %}
-
- {%- if dls %}
-
active downloads:
-
- | % | sent | speed | eta | idle | | dir | file |
-
- {%- for u in dls %}
- | {{ u[0] }} | {{ u[1] }} | {{ u[2] }} | {{ u[3] }} | {{ u[4] }} | {{ u[5] }} | {{ u[7]|e }} | {{ u[8] }} |
- {%- endfor %}
-
-
- {%- endif %}
-
- {%- if avol %}
-
admin panel:
-
-
- | scanning | {{ scanning }} |
- | hash-q | {{ hashq }} |
- | tag-q | {{ tagq }} |
- | mtp-q | {{ mtpq }} |
- | db-act | {{ dbwt }} |
-
- |
-
- | vol | action | status |
-
- {%- for mp in avol %}
- {%- if mp in vstate and vstate[mp] %}
- | {{ mp }} | rescan | {{ vstate[mp] }} |
+ {%- if this.uname == '*' %}
+ howdy stranger (you're not logged in)
+ {%- else %}
+ {%- if this.args.idp_logout %}
+ Logout
+ {%- else %}
+ Logout
+ {%- endif %}
+ welcome back, {{ this.uname|e }}
{%- endif %}
+ {%- endif %}
+
+
+ {%- if in_shr %}
+ Unlock this share
+
+ {%- else %}
+ {%- if this.uname == '*' %}
+ Login for more
+ {%- else %}
+ Change account
+ {%- endif %}
+
+ {%- if this.args.idp_login %}
+
+ {%- endif %}
+ {%- if this.args.ao_have_pw %}
+
+ {%- endif %}
+
+ {%- endif %}
+
+
+ {%- if msg %}
+
+ {{ msg }}
+
+ {%- endif %}
+
+ {%- if ups %}
+ Incoming files
+
+ | % | Speed | Eta | Idle | Dir | File |
+
+ {%- for u in ups %}
+ | {{ u[0] }} | {{ u[1] }} | {{ u[2] }} | {{ u[3] }} | {{ u[5]|e }} | {{ u[6]|e }} |
+ {%- endfor %}
+
+
+ {%- endif %}
+
+ {%- if dls %}
+ Active downloads
+
+ | % | Sent | Speed | Eta | Idle | | Dir | File |
+
+ {%- for u in dls %}
+ | {{ u[0] }} | {{ u[1] }} | {{ u[2] }} | {{ u[3] }} | {{ u[4] }} | {{ u[5] }} | {{ u[7]|e }} | {{ u[8] }} |
+ {%- endfor %}
+
+
+ {%- endif %}
+
+ {%- if avol %}
+ Admin panel
+
+
+ | scanning | {{ scanning }} |
+ | hash-q | {{ hashq }} |
+ | tag-q | {{ tagq }} |
+ | mtp-q | {{ mtpq }} |
+ | db-act | {{ dbwt }} |
+
+ |
+
+ | vol | action | status |
+
+ {%- for mp in avol %}
+ {%- if mp in vstate and vstate[mp] %}
+ | {{ mp }} | rescan | {{ vstate[mp] }} |
+ {%- endif %}
+ {%- endfor %}
+
+
+ |
+
+ {%- endif %}
+
+ {%- if rvol %}
+ You can browse
+
+ {%- for mp in rvol %}
+ - {{ mp }}
{%- endfor %}
-
-
- |
-
- {%- endif %}
-
- {%- if rvol %}
-
you can browse:
-
- {%- for mp in rvol %}
- - {{ mp }}
- {%- endfor %}
-
- {%- endif %}
-
- {%- if wvol %}
-
you can upload to:
-
- {%- for mp in wvol %}
- - {{ mp }}
- {%- endfor %}
-
- {%- endif %}
-
- {%- if in_shr %}
-
unlock this share:
-
- {%- else %}
- {%- if this.uname == '*' %}
-
login for more:
- {%- else %}
-
change account:
- {%- endif %}
-
- {%- if this.args.idp_login %}
-
- {%- endif %}
- {%- if this.args.ao_have_pw %}
-
- {%- endif %}
+
+
Other stuff
+
+
+ {%- if k304 or k304vis %}
+ {%- if k304 %}
+ - disable k304 (currently enabled)
+ {%- else %}
+
- enable k304 (currently disabled)
+ {%- endif %}
+
enabling k304 will disconnect your client on every HTTP 304, which can prevent some buggy proxies from getting stuck (suddenly not loading pages), but it will also make things slower in general
+ {%- endif %}
+
+ {%- if no304 or no304vis %}
+ {%- if no304 %}
+ - disable no304 (currently enabled)
+ {%- else %}
+
- enable no304 (currently disabled)
+ {%- endif %}
+
enabling no304 will disable all caching; try this if k304 wasn't enough. This will waste a huge amount of network traffic!
+ {%- endif %}
+
+
+
- {%- endif %}
-
-
other stuff:
-
-
- {%- if k304 or k304vis %}
- {%- if k304 %}
- - disable k304 (currently enabled)
- {%- else %}
-
- enable k304 (currently disabled)
- {%- endif %}
-
enabling k304 will disconnect your client on every HTTP 304, which can prevent some buggy proxies from getting stuck (suddenly not loading pages), but it will also make things slower in general
- {%- endif %}
-
- {%- if no304 or no304vis %}
- {%- if no304 %}
- - disable no304 (currently enabled)
- {%- else %}
-
- enable no304 (currently disabled)
- {%- endif %}
-
enabling no304 will disable all caching; try this if k304 wasn't enough. This will waste a huge amount of network traffic!
- {%- endif %}
-
-
π
{%- if not this.args.nb %}
diff --git a/copyparty/web/svcs.html b/copyparty/web/svcs.html
index b11bf9ac..ba242776 100644
--- a/copyparty/web/svcs.html
+++ b/copyparty/web/svcs.html
@@ -13,9 +13,9 @@
{{ html_head }}
-
⬅️
-
+
⬅️
+
browse files // control panel
diff --git a/copyparty/web/ui.css b/copyparty/web/ui.css
index 770b1a73..ac5db5d6 100644
--- a/copyparty/web/ui.css
+++ b/copyparty/web/ui.css
@@ -1,4 +1,6 @@
:root {
+ color-scheme: dark;
+
--font-main: sans-serif;
--font-serif: serif;
--font-mono: 'scp';
@@ -7,12 +9,16 @@
--fg-max: #fff;
--bg-u2: #2b2b2b;
--bg-u5: #444;
+ --bg-max: #080808;
}
html.y {
+ color-scheme: light;
+
--fg: #222;
--fg-max: #000;
--bg-u2: #f7f7f7;
--bg-u5: #ccc;
+ --bg-max: #fff;
}
html.bz {
--bg-u2: #202231;