fix(static): move static files to new place for embeding
This commit is contained in:
parent
6c171eed39
commit
8162fc15f3
17 changed files with 40 additions and 328 deletions
38
static/fs.go
Normal file
38
static/fs.go
Normal file
|
@ -0,0 +1,38 @@
|
|||
package static
|
||||
|
||||
import (
|
||||
"embed"
|
||||
"io/fs"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
//go:embed public/*
|
||||
var embedFS embed.FS
|
||||
|
||||
type EmbedStaticFS struct {
|
||||
http.FileSystem
|
||||
}
|
||||
|
||||
func NewEmbedStaticFS() (*EmbedStaticFS, error) {
|
||||
// the public folder will temporarily be copied to here in building
|
||||
publicFS, err := fs.Sub(embedFS, "public")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
httpFS := http.FS(publicFS)
|
||||
|
||||
return &EmbedStaticFS{
|
||||
FileSystem: httpFS,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (efs *EmbedStaticFS) Exists(prefix string, path string) bool {
|
||||
// prefix should already be considered by http.FileSystem
|
||||
_, err := efs.Open(path)
|
||||
if err != nil {
|
||||
// TODO: need more checking
|
||||
// if errors.Is(err, fs.ErrNotExist) {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
208
static/public/css/colors.css
Normal file
208
static/public/css/colors.css
Normal file
|
@ -0,0 +1,208 @@
|
|||
@charset "utf-8";
|
||||
|
||||
.blue0-font {
|
||||
color: #3498db;
|
||||
}
|
||||
|
||||
.blue1-font {
|
||||
color: #2980b9;
|
||||
}
|
||||
|
||||
.cyan0-font {
|
||||
color: #1abc9c;
|
||||
}
|
||||
|
||||
.cyan1-font {
|
||||
color: #16a085;
|
||||
}
|
||||
|
||||
.purple0-font {
|
||||
color: #9b59b6;
|
||||
}
|
||||
|
||||
.purple1-font {
|
||||
color: #8e44ad;
|
||||
}
|
||||
|
||||
.red0-font {
|
||||
color: #e74c3c;
|
||||
}
|
||||
|
||||
.red1-font {
|
||||
color: #c0392b;
|
||||
}
|
||||
|
||||
.yellow0-font {
|
||||
color: #f1c40f;
|
||||
}
|
||||
|
||||
.yellow1-font {
|
||||
color: #f39c12;
|
||||
}
|
||||
|
||||
.yellow2-font {
|
||||
color: #e67e22;
|
||||
}
|
||||
|
||||
.yellow3-font {
|
||||
color: #d35400;
|
||||
}
|
||||
|
||||
.green0-font {
|
||||
color: #2ecc71;
|
||||
}
|
||||
|
||||
.green1-font {
|
||||
color: #27ae60;
|
||||
}
|
||||
|
||||
.green2-font {
|
||||
color: #15cd3d;
|
||||
}
|
||||
|
||||
.white-font {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.white0-font {
|
||||
color: #ecf0f1;
|
||||
}
|
||||
|
||||
.white1-font {
|
||||
color: #bdc3c7;
|
||||
}
|
||||
|
||||
.grey0-font {
|
||||
color: #95a5a6;
|
||||
}
|
||||
|
||||
.grey1-font {
|
||||
color: #7f8c8d;
|
||||
}
|
||||
|
||||
.grey2-font {
|
||||
color: #ecf0f6;
|
||||
}
|
||||
|
||||
.grey3-font {
|
||||
color: #697384;
|
||||
}
|
||||
|
||||
.black-font {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.black0-font {
|
||||
color: #34495e;
|
||||
}
|
||||
|
||||
.black1-font {
|
||||
color: #2c3e50;
|
||||
}
|
||||
|
||||
.blue0-bg {
|
||||
background-color: #3498db;
|
||||
}
|
||||
|
||||
.blue1-bg {
|
||||
background-color: #2980b9;
|
||||
}
|
||||
|
||||
.blue2-bg {
|
||||
background-color: #2f45c5;
|
||||
}
|
||||
|
||||
.cyan0-bg {
|
||||
background-color: #1abc9c;
|
||||
}
|
||||
|
||||
.cyan1-bg {
|
||||
background-color: #16a085;
|
||||
}
|
||||
|
||||
.purple0-bg {
|
||||
background-color: #9b59b6;
|
||||
}
|
||||
|
||||
.purple1-bg {
|
||||
background-color: #8e44ad;
|
||||
}
|
||||
|
||||
.red0-bg {
|
||||
background-color: #e74c3c;
|
||||
}
|
||||
|
||||
.red1-bg {
|
||||
background-color: #c0392b;
|
||||
}
|
||||
|
||||
.yellow0-bg {
|
||||
background-color: #f1c40f;
|
||||
}
|
||||
|
||||
.yellow1-bg {
|
||||
background-color: #f39c12;
|
||||
}
|
||||
|
||||
.yellow2-bg {
|
||||
background-color: #e67e22;
|
||||
}
|
||||
|
||||
.yellow3-bg {
|
||||
background-color: #15cd3d;
|
||||
}
|
||||
|
||||
.yellow3-bg {
|
||||
background-color: #d35400;
|
||||
}
|
||||
|
||||
.green0-bg {
|
||||
background-color: #2ecc71;
|
||||
}
|
||||
|
||||
.green1-bg {
|
||||
background-color: #27ae60;
|
||||
}
|
||||
|
||||
.green2-bg {
|
||||
background-color: #15cd3d;
|
||||
}
|
||||
|
||||
.white-bg {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.white0-bg {
|
||||
background-color: #ecf0f1;
|
||||
}
|
||||
|
||||
.white1-bg {
|
||||
background-color: #bdc3c7;
|
||||
}
|
||||
|
||||
.grey0-bg {
|
||||
background-color: #95a5a6;
|
||||
}
|
||||
|
||||
.grey1-bg {
|
||||
background-color: #7f8c8d;
|
||||
}
|
||||
.grey2-bg {
|
||||
background-color: #ecf0f6;
|
||||
}
|
||||
|
||||
.grey3-bg {
|
||||
background-color: #697384;
|
||||
}
|
||||
|
||||
.black-bg {
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
.black0-bg {
|
||||
background-color: #34495e;
|
||||
}
|
||||
|
||||
.black1-bg {
|
||||
background-color: #2c3e50;
|
||||
}
|
383
static/public/css/dark.css
Normal file
383
static/public/css/dark.css
Normal file
|
@ -0,0 +1,383 @@
|
|||
@charset "utf-8";
|
||||
|
||||
/* ids */
|
||||
|
||||
#root-frame {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.theme-dark #breadcrumb {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.theme-dark #breadcrumb .location-item {
|
||||
margin: 0 0.5rem 0 0;
|
||||
display: inline-block;
|
||||
line-height: 3rem;
|
||||
}
|
||||
|
||||
.theme-dark #breadcrumb .item {
|
||||
margin: 0 0.5rem 0 0;
|
||||
max-width: 6rem;
|
||||
display: inline-block;
|
||||
line-height: 3rem;
|
||||
}
|
||||
|
||||
.theme-dark #breadcrumb .content {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow-wrap: break-word;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.theme-dark #space-used {
|
||||
text-align: right;
|
||||
line-height: 3rem;
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
|
||||
.theme-dark #sharing-list .desc {
|
||||
/* background-color: #ecf0f1; */
|
||||
font-size: 1.2rem;
|
||||
margin: 1rem 0;
|
||||
/* color: #697384; */
|
||||
padding: 1rem;
|
||||
border: dashed 1px #95a5a6;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.theme-dark #bg {
|
||||
background: url("/img/px_by_Gre3g.webp") repeat fixed center;
|
||||
background-color: rgb(22 22 24);
|
||||
color: #ccc;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
overflow: scroll;
|
||||
}
|
||||
|
||||
.theme-dark #top-bar {
|
||||
padding: 1rem 2rem 1rem 2rem;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
backdrop-filter: blur(9.5px);
|
||||
-webkit-backdrop-filter: blur(9.5px);
|
||||
}
|
||||
|
||||
.theme-dark #top-menu {
|
||||
background: rgba(36, 36, 36, 0.9);
|
||||
box-shadow: 0 5px 30px 0 rgba(31, 38, 135, 0.1);
|
||||
backdrop-filter: blur(9.5px);
|
||||
color: #16a085;
|
||||
padding: 0.5rem 1rem;
|
||||
-webkit-backdrop-filter: blur(9.5px);
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.theme-dark #top-menu button {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.theme-dark .qrcode {
|
||||
padding: 1rem;
|
||||
background-color: #ecf0f1;
|
||||
display: inline-block;
|
||||
background: rgba(255, 255, 255, 0.8);
|
||||
box-shadow: 0 5px 30px 0 rgb(31 38 135 / 10%);
|
||||
backdrop-filter: blur(9.5px);
|
||||
}
|
||||
|
||||
.theme-dark .qrcode-container {
|
||||
height: 3rem;
|
||||
}
|
||||
|
||||
.theme-dark .qrcode-icon {
|
||||
height: 3rem;
|
||||
}
|
||||
|
||||
.theme-dark .qrcode-child-container {
|
||||
position: relative;
|
||||
z-index: 50;
|
||||
}
|
||||
|
||||
.theme-dark .qrcode-child {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.theme-dark .container-center {
|
||||
margin: 2rem auto auto auto;
|
||||
width: 96%;
|
||||
max-width: 100rem;
|
||||
z-index: 9;
|
||||
}
|
||||
|
||||
.theme-dark .layer {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
background-color: rgba(40, 40, 40, 0.7);
|
||||
backdrop-filter: blur(10px);
|
||||
-webkit-backdrop-filter: blur(10px);
|
||||
overflow: scroll;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.theme-dark #login-layer {
|
||||
z-index: 200;
|
||||
}
|
||||
|
||||
.theme-dark #loading-layer {
|
||||
z-index: 201;
|
||||
}
|
||||
|
||||
.theme-dark #loading-container {
|
||||
background-color: rgba(255, 255, 255, 1);
|
||||
border-radius: 3rem;
|
||||
padding: 0.5rem;
|
||||
position: fixed;
|
||||
right: 2rem;
|
||||
bottom: 2rem;
|
||||
z-index: 201;
|
||||
height: 5rem;
|
||||
width: 5rem;
|
||||
}
|
||||
|
||||
.theme-dark #settings-layer {
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.theme-dark #footer {
|
||||
font-size: 1.2rem;
|
||||
text-align: center;
|
||||
margin: 4rem auto;
|
||||
}
|
||||
|
||||
.theme-dark input {
|
||||
font-size: 1.2rem;
|
||||
color: #999;
|
||||
background-color: #404040;
|
||||
border: solid 1px #95a5a6;
|
||||
}
|
||||
|
||||
.container-padding {
|
||||
padding: 1.5rem;
|
||||
}
|
||||
|
||||
.theme-dark #panes #title {
|
||||
text-transform: capitalize;
|
||||
}
|
||||
|
||||
.theme-dark #pane-login {
|
||||
max-width: 48rem;
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
.theme-dark #pane-login #title {
|
||||
font-size: 2rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.theme-dark #pane-login .login-container {
|
||||
margin: 2rem;
|
||||
}
|
||||
|
||||
.theme-dark #pane-login .input-wrap {
|
||||
width: 100%;
|
||||
background-color: #eaebf6;
|
||||
margin: 2rem 0 0 0;
|
||||
border-radius: 0.6rem;
|
||||
line-height: 4rem;
|
||||
}
|
||||
|
||||
.theme-dark #pane-login #captcha-input {
|
||||
width: calc(100% - 1rem);
|
||||
}
|
||||
|
||||
.theme-dark #pane-login #captcha {
|
||||
width: calc(100% - 1rem);
|
||||
background-color: #eaebf6;
|
||||
border: solid 1px #eaebf6;
|
||||
margin: 2rem 0 0 0;
|
||||
border-radius: 0.6rem;
|
||||
height: 3.8rem;
|
||||
}
|
||||
|
||||
.theme-dark #pane-login input,
|
||||
.theme-dark #pane-login input:hover,
|
||||
.theme-dark #pane-login input:focus,
|
||||
.theme-dark #pane-login input:active {
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
border: none;
|
||||
margin: 0 1rem;
|
||||
background-color: transparent;
|
||||
outline: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.theme-dark #btn-login {
|
||||
background-color: #1abc9c;
|
||||
color: #fff;
|
||||
width: 100%;
|
||||
margin-top: 2rem;
|
||||
height: 4rem;
|
||||
}
|
||||
|
||||
.theme-dark #layers {
|
||||
height: 0;
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
.theme-dark #root-container {
|
||||
max-width: 100rem;
|
||||
width: 96%;
|
||||
text-align: left;
|
||||
margin: 3rem auto 8rem auto;
|
||||
}
|
||||
|
||||
.theme-dark .tabs button {
|
||||
padding: 0.5rem 1rem;
|
||||
}
|
||||
|
||||
/* +composition */
|
||||
|
||||
.theme-dark .container {
|
||||
width: 100%;
|
||||
background-color: #242424;
|
||||
border-radius: 0.8rem;
|
||||
box-shadow: 0 5px 30px 0 rgb(31 38 135 / 10%);
|
||||
margin: auto auto 2rem auto;
|
||||
}
|
||||
|
||||
.theme-dark .info {
|
||||
border: dashed 1px #95a5a6;
|
||||
font-size: 1.4rem;
|
||||
padding: 1rem;
|
||||
margin: 1rem 0 0 0;
|
||||
background-color: black;
|
||||
white-space: nowrap;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.theme-dark .badge {
|
||||
border: none;
|
||||
border-radius: 0.5rem;
|
||||
font-weight: bold;
|
||||
font-size: 1.2rem;
|
||||
padding: 1rem 1rem;
|
||||
line-height: 1.2rem;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.theme-dark .progress-grey {
|
||||
background-color: #ecf0f6;
|
||||
width: 100%;
|
||||
height: 0.3rem;
|
||||
}
|
||||
|
||||
.theme-dark .progress-green {
|
||||
background-color: #1abc9c;
|
||||
height: 100%;
|
||||
transition: width 300ms;
|
||||
}
|
||||
|
||||
.theme-dark .col-l {
|
||||
float: left;
|
||||
width: 70%;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.theme-dark .col-r {
|
||||
float: right;
|
||||
width: 30%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.theme-dark .error-inline {
|
||||
font-size: 1.4rem;
|
||||
padding: 1rem;
|
||||
color: #f1c40f;
|
||||
margin: 1rem 0 0 0;
|
||||
background-color: #2c3e50;
|
||||
white-space: nowrap;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.theme-dark .label {
|
||||
font-size: 1.2rem;
|
||||
line-height: 1.8rem;
|
||||
color: #7f8c8d;
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
|
||||
.theme-dark .error {
|
||||
font-size: 1.4rem;
|
||||
padding: 1rem;
|
||||
color: #f1c40f;
|
||||
margin: 1rem 0 0 0;
|
||||
background-color: #404040;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.theme-dark .hr {
|
||||
height: 1px;
|
||||
margin: 1rem 0;
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
/* +colors */
|
||||
|
||||
.theme-dark .major-font {
|
||||
color: #ccc;
|
||||
}
|
||||
.theme-dark .minor-font {
|
||||
color: white;
|
||||
}
|
||||
.theme-dark .normal-font {
|
||||
color: #999;
|
||||
}
|
||||
.theme-dark .focus-font {
|
||||
color: #16a085;
|
||||
}
|
||||
.theme-dark .error-font {
|
||||
color: #f1c40f;
|
||||
}
|
||||
.theme-dark .major-bg {
|
||||
background-color: #404040;
|
||||
}
|
||||
.theme-dark .normal-bg {
|
||||
background-color: #242424;
|
||||
}
|
||||
.theme-dark .focus-bg {
|
||||
background-color: #16a085;
|
||||
}
|
||||
.theme-dark .minor-bg {
|
||||
background-color: #333;
|
||||
}
|
||||
.theme-dark ::placeholder {
|
||||
color: #95a5a6;
|
||||
}
|
||||
.theme-dark a {
|
||||
color: #16a085;
|
||||
}
|
||||
.theme-dark a:hover {
|
||||
color: cc#2ecc71;
|
||||
}
|
||||
.theme-dark input:focus {
|
||||
opacity: 0.8;
|
||||
box-shadow: 0 0.1rem 1rem rgba(22, 160, 133, 0.1);
|
||||
}
|
||||
.theme-dark .button-default {
|
||||
color: #999;
|
||||
background-color: #404040;
|
||||
}
|
407
static/public/css/default.css
Normal file
407
static/public/css/default.css
Normal file
|
@ -0,0 +1,407 @@
|
|||
@charset "utf-8";
|
||||
|
||||
/* +space */
|
||||
|
||||
/* TODO: generate these */
|
||||
|
||||
.padding-xs {
|
||||
padding: 0.25rem;
|
||||
}
|
||||
|
||||
.padding-s {
|
||||
padding: 0.5rem;
|
||||
}
|
||||
|
||||
.padding-m {
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
.padding-l {
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
.padding-xl {
|
||||
padding: 4rem;
|
||||
}
|
||||
|
||||
.padding-l-xs {
|
||||
padding-left: 0.25rem;
|
||||
}
|
||||
|
||||
.padding-l-s {
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
|
||||
.padding-l-m {
|
||||
padding-left: 1rem;
|
||||
}
|
||||
|
||||
.padding-l-l {
|
||||
padding-left: 2rem;
|
||||
}
|
||||
|
||||
.padding-l-xl {
|
||||
padding-left: 4rem;
|
||||
}
|
||||
|
||||
.padding-r-xs {
|
||||
padding-right: 0.25rem;
|
||||
}
|
||||
|
||||
.padding-r-s {
|
||||
padding-right: 0.5rem;
|
||||
}
|
||||
|
||||
.padding-r-m {
|
||||
padding-right: 1rem;
|
||||
}
|
||||
|
||||
.padding-r-l {
|
||||
padding-right: 2rem;
|
||||
}
|
||||
|
||||
.padding-r-xl {
|
||||
padding-right: 4rem;
|
||||
}
|
||||
|
||||
.padding-t-xs {
|
||||
padding-top: 0.25rem;
|
||||
}
|
||||
|
||||
.padding-t-s {
|
||||
padding-top: 0.5rem;
|
||||
}
|
||||
|
||||
.padding-t-m {
|
||||
padding-top: 1rem;
|
||||
}
|
||||
|
||||
.padding-t-l {
|
||||
padding-top: 2rem;
|
||||
}
|
||||
|
||||
.padding-t-xl {
|
||||
padding-top: 4rem;
|
||||
}
|
||||
|
||||
.padding-b-xs {
|
||||
padding-bottom: 0.25rem;
|
||||
}
|
||||
|
||||
.padding-b-s {
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.padding-b-m {
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
.padding-b-l {
|
||||
padding-bottom: 2rem;
|
||||
}
|
||||
|
||||
.padding-b-xl {
|
||||
padding-bottom: 4rem;
|
||||
}
|
||||
|
||||
.margin-xs {
|
||||
margin: 0.25rem;
|
||||
}
|
||||
|
||||
.margin-s {
|
||||
margin: 0.5rem;
|
||||
}
|
||||
|
||||
.margin-m {
|
||||
margin: 1rem;
|
||||
}
|
||||
|
||||
.margin-l {
|
||||
margin: 2rem;
|
||||
}
|
||||
|
||||
.margin-xl {
|
||||
margin: 4rem;
|
||||
}
|
||||
|
||||
.margin-l-xs {
|
||||
margin-left: 0.25rem;
|
||||
}
|
||||
|
||||
.margin-l-s {
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
|
||||
.margin-l-m {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
.margin-l-l {
|
||||
margin-left: 2rem;
|
||||
}
|
||||
|
||||
.margin-l-xl {
|
||||
margin-left: 4rem;
|
||||
}
|
||||
|
||||
.margin-r-xs {
|
||||
margin-right: 0.25rem;
|
||||
}
|
||||
|
||||
.margin-r-s {
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
|
||||
.margin-r-m {
|
||||
margin-right: 1rem;
|
||||
}
|
||||
|
||||
.margin-r-l {
|
||||
margin-right: 2rem;
|
||||
}
|
||||
|
||||
.margin-r-xl {
|
||||
margin-right: 4rem;
|
||||
}
|
||||
|
||||
.margin-t-xs {
|
||||
margin-top: 0.25rem;
|
||||
}
|
||||
|
||||
.margin-t-s {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
.margin-t-m {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.margin-t-l {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
.margin-t-xl {
|
||||
margin-top: 4rem;
|
||||
}
|
||||
|
||||
.margin-b-xs {
|
||||
margin-bottom: 0.25rem;
|
||||
}
|
||||
|
||||
.margin-b-s {
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.margin-b-m {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.margin-b-l {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.margin-b-xl {
|
||||
margin-bottom: 4rem;
|
||||
}
|
||||
|
||||
/* +font */
|
||||
.font-xs {
|
||||
font-size: 1.2rem;
|
||||
line-height: 3.2rem;
|
||||
}
|
||||
|
||||
.font-s {
|
||||
font-size: 1.4rem;
|
||||
line-height: 3.2rem;
|
||||
}
|
||||
|
||||
.font-m {
|
||||
font-size: 1.6rem;
|
||||
line-height: 3.2rem;
|
||||
}
|
||||
|
||||
.font-l {
|
||||
font-size: 1.8rem;
|
||||
line-height: 3.2rem;
|
||||
}
|
||||
|
||||
.font-xl {
|
||||
font-size: 2rem;
|
||||
line-height: 3.2rem;
|
||||
}
|
||||
|
||||
.title-l {
|
||||
font-size: 1.8rem;
|
||||
font-weight: bold;
|
||||
line-height: 3.2rem;
|
||||
overflow: hidden;
|
||||
overflow-wrap: break-word;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.title-l-wrap {
|
||||
font-size: 1.8rem;
|
||||
font-weight: bold;
|
||||
line-height: 3.2rem;
|
||||
overflow: hidden;
|
||||
overflow-wrap: break-word;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.desc-l {
|
||||
font-size: 1.2rem;
|
||||
line-height: 3.2rem;
|
||||
overflow: hidden;
|
||||
overflow-wrap: break-word;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.title-m {
|
||||
font-size: 1.4rem;
|
||||
line-height: 3.2rem;
|
||||
overflow: hidden;
|
||||
overflow-wrap: break-word;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.title-m-wrap {
|
||||
font-size: 1.4rem;
|
||||
line-height: 3.2rem;
|
||||
overflow: hidden;
|
||||
overflow-wrap: break-word;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.desc-m {
|
||||
font-size: 1.2rem;
|
||||
line-height: 3.2rem;
|
||||
overflow: hidden;
|
||||
overflow-wrap: break-word;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* +utils */
|
||||
|
||||
.inline-block {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.clickable {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.fix {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.float-l {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.txt-align-l {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.txt-align-r {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.work-break-all {
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.icon-s {
|
||||
height: 2rem;
|
||||
padding: 0.6rem 0;
|
||||
}
|
||||
|
||||
.icon-m {
|
||||
height: 2.4rem;
|
||||
padding: 0.4rem 0;
|
||||
}
|
||||
|
||||
.icon-l {
|
||||
height: 3.2rem;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.no-height {
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* +animations */
|
||||
|
||||
.anm-rotate-s {
|
||||
animation: trm-rotate-s 1s infinite linear;
|
||||
}
|
||||
|
||||
.anm-rotate-m {
|
||||
animation: trm-rotate-m 1s infinite linear;
|
||||
}
|
||||
|
||||
.anm-rotate-f {
|
||||
animation: trm-rotate-f 1s infinite linear;
|
||||
}
|
||||
|
||||
@keyframes trm-rotate-f {
|
||||
20% {
|
||||
transform: rotate(72deg);
|
||||
}
|
||||
40% {
|
||||
transform: rotate(144deg);
|
||||
}
|
||||
60% {
|
||||
transform: rotate(216deg);
|
||||
}
|
||||
80% {
|
||||
transform: rotate(288deg);
|
||||
}
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes trm-rotate-m {
|
||||
20% {
|
||||
transform: rotate(36deg);
|
||||
}
|
||||
40% {
|
||||
transform: rotate(72deg);
|
||||
}
|
||||
60% {
|
||||
transform: rotate(144deg);
|
||||
}
|
||||
80% {
|
||||
transform: rotate(288deg);
|
||||
}
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes trm-rotate-s {
|
||||
20% {
|
||||
transform: rotate(18deg);
|
||||
}
|
||||
40% {
|
||||
transform: rotate(36deg);
|
||||
}
|
||||
60% {
|
||||
transform: rotate(72deg);
|
||||
}
|
||||
80% {
|
||||
transform: rotate(144deg);
|
||||
}
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
97
static/public/css/reset.css
Normal file
97
static/public/css/reset.css
Normal file
|
@ -0,0 +1,97 @@
|
|||
@charset "utf-8";
|
||||
|
||||
html,
|
||||
body,
|
||||
p,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
margin: 0;
|
||||
outline: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
html {
|
||||
background-color: #ecf0f1;
|
||||
font-family: "Helvetica Neue", "Helvetica", "PingFang SC", "Microsoft YaHei",
|
||||
"Arial", sans-serif;
|
||||
font-size: 62.5%;
|
||||
}
|
||||
*:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
a,
|
||||
a:link,
|
||||
a:visited,
|
||||
a:hover,
|
||||
a:active,
|
||||
button,
|
||||
img {
|
||||
-webkit-touch-callout: none; /* iOS Safari */
|
||||
-webkit-user-select: none; /* Safari */
|
||||
-khtml-user-select: none; /* Konqueror HTML */
|
||||
-moz-user-select: none; /* Firefox */
|
||||
-ms-user-select: none; /* Internet Explorer/Edge */
|
||||
user-select: none; /* Non-prefixed version, currently supported by Chrome and Opera */
|
||||
}
|
||||
a {
|
||||
opacity: 100%;
|
||||
text-decoration: none;
|
||||
transition: color 300ms;
|
||||
}
|
||||
a::selection {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
span,
|
||||
div,
|
||||
svg {
|
||||
transition: color 300ms, background-color 300ms;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
input {
|
||||
font-size: 1.2rem;
|
||||
line-height: 1.4rem;
|
||||
height: 1.4rem;
|
||||
padding: 0.8rem 1rem;
|
||||
border: solid 1px #95a5a6;
|
||||
border-radius: 0.5rem;
|
||||
transition: opacity 300ms, box-shadow 300ms;
|
||||
}
|
||||
|
||||
input:focus {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
button {
|
||||
cursor: pointer;
|
||||
|
||||
font-size: 1.2rem;
|
||||
line-height: 1.2rem;
|
||||
padding: 1rem 1rem;
|
||||
font-weight: bold;
|
||||
border: none;
|
||||
border-radius: 0.5rem;
|
||||
outline: none;
|
||||
|
||||
transition: opacity 300ms;
|
||||
}
|
||||
button:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
button:active {
|
||||
opacity: 1;
|
||||
}
|
383
static/public/css/white.css
Normal file
383
static/public/css/white.css
Normal file
|
@ -0,0 +1,383 @@
|
|||
@charset "utf-8";
|
||||
|
||||
/* ids */
|
||||
|
||||
#root-frame {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.theme-default #breadcrumb {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.theme-default #breadcrumb .location-item {
|
||||
margin: 0 0.5rem 0 0;
|
||||
display: inline-block;
|
||||
line-height: 3rem;
|
||||
}
|
||||
|
||||
.theme-default #breadcrumb .item {
|
||||
margin: 0 0.5rem 0 0;
|
||||
max-width: 6rem;
|
||||
display: inline-block;
|
||||
line-height: 3rem;
|
||||
}
|
||||
|
||||
.theme-default #breadcrumb .content {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow-wrap: break-word;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.theme-default #space-used {
|
||||
text-align: right;
|
||||
line-height: 3rem;
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
|
||||
.theme-default #sharing-list .desc {
|
||||
background-color: #ecf0f1;
|
||||
font-size: 1.2rem;
|
||||
margin: 1rem 0;
|
||||
color: #697384;
|
||||
padding: 1rem;
|
||||
border: dashed 1px #95a5a6;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.theme-default #bg {
|
||||
background: url("/img/textured_paper.png") repeat fixed center;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
overflow: scroll;
|
||||
}
|
||||
|
||||
.theme-default #top-bar {
|
||||
padding: 1rem 2rem 1rem 2rem;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
backdrop-filter: blur(9.5px);
|
||||
-webkit-backdrop-filter: blur(9.5px);
|
||||
}
|
||||
|
||||
.theme-default #top-menu {
|
||||
background: rgba(255, 255, 255, 0.7);
|
||||
box-shadow: 0 5px 30px 0 rgba(31, 38, 135, 0.1);
|
||||
backdrop-filter: blur(9.5px);
|
||||
color: #16a085;
|
||||
padding: 0.5rem 1rem;
|
||||
-webkit-backdrop-filter: blur(9.5px);
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.theme-default #top-menu button {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.theme-default .qrcode {
|
||||
padding: 1rem;
|
||||
background-color: #ecf0f1;
|
||||
display: inline-block;
|
||||
background: rgba(255, 255, 255, 0.8);
|
||||
box-shadow: 0 5px 30px 0 rgb(31 38 135 / 10%);
|
||||
backdrop-filter: blur(9.5px);
|
||||
}
|
||||
|
||||
.theme-default .qrcode-container {
|
||||
height: 3rem;
|
||||
}
|
||||
|
||||
.theme-default .qrcode-icon {
|
||||
height: 3rem;
|
||||
}
|
||||
|
||||
.theme-default .qrcode-child-container {
|
||||
position: relative;
|
||||
z-index: 50;
|
||||
}
|
||||
|
||||
.theme-default .qrcode-child {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.theme-default .container-center {
|
||||
margin: 2rem auto auto auto;
|
||||
width: 96%;
|
||||
max-width: 100rem;
|
||||
z-index: 9;
|
||||
}
|
||||
|
||||
.theme-default .layer {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
background-color: rgba(200, 200, 200, 0.5);
|
||||
backdrop-filter: blur(5px);
|
||||
-webkit-backdrop-filter: blur(9.5px);
|
||||
overflow: scroll;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.theme-default #login-layer {
|
||||
z-index: 200;
|
||||
}
|
||||
|
||||
.theme-default #loading-layer {
|
||||
z-index: 201;
|
||||
}
|
||||
|
||||
.theme-default #loading-container {
|
||||
background-color: rgba(255, 255, 255, 1);
|
||||
border-radius: 3rem;
|
||||
padding: 0.5rem;
|
||||
position: fixed;
|
||||
right: 2rem;
|
||||
bottom: 2rem;
|
||||
z-index: 201;
|
||||
height: 5rem;
|
||||
width: 5rem;
|
||||
}
|
||||
|
||||
.theme-default #settings-layer {
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.theme-default #footer {
|
||||
font-size: 1.2rem;
|
||||
text-align: center;
|
||||
margin: 4rem auto;
|
||||
}
|
||||
|
||||
.theme-default input {
|
||||
font-size: 1.2rem;
|
||||
color: #34495e;
|
||||
background-color: #ecf0f6;
|
||||
border: solid 1px #95a5a6;
|
||||
}
|
||||
|
||||
.container-padding {
|
||||
padding: 1.5rem;
|
||||
}
|
||||
|
||||
.theme-default #panes #title {
|
||||
text-transform: capitalize;
|
||||
}
|
||||
|
||||
.theme-default #pane-login {
|
||||
max-width: 48rem;
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
.theme-default #pane-login #title {
|
||||
font-size: 2rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.theme-default #pane-login .login-container {
|
||||
margin: 2rem;
|
||||
}
|
||||
|
||||
.theme-default #pane-login .input-wrap {
|
||||
width: 100%;
|
||||
background-color: #eaebf6;
|
||||
margin: 2rem 0 0 0;
|
||||
border-radius: 0.6rem;
|
||||
line-height: 4rem;
|
||||
}
|
||||
|
||||
.theme-default #pane-login #captcha-input {
|
||||
width: calc(100% - 1rem);
|
||||
}
|
||||
|
||||
.theme-default #pane-login #captcha {
|
||||
width: calc(100% - 1rem);
|
||||
background-color: #eaebf6;
|
||||
border: solid 1px #eaebf6;
|
||||
margin: 2rem 0 0 0;
|
||||
border-radius: 0.6rem;
|
||||
height: 3.8rem;
|
||||
}
|
||||
|
||||
.theme-default #pane-login input,
|
||||
.theme-default #pane-login input:hover,
|
||||
.theme-default #pane-login input:focus,
|
||||
.theme-default #pane-login input:active {
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
border: none;
|
||||
margin: 0 1rem;
|
||||
background-color: transparent;
|
||||
outline: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.theme-default #btn-login {
|
||||
background-color: #1abc9c;
|
||||
color: #fff;
|
||||
width: 100%;
|
||||
margin-top: 2rem;
|
||||
height: 4rem;
|
||||
}
|
||||
|
||||
.theme-default #layers {
|
||||
height: 0;
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
.theme-default #root-container {
|
||||
max-width: 100rem;
|
||||
width: 96%;
|
||||
text-align: left;
|
||||
margin: 3rem auto 8rem auto;
|
||||
}
|
||||
|
||||
.theme-default .tabs button {
|
||||
padding: 0.5rem 1rem;
|
||||
}
|
||||
|
||||
/* +composition */
|
||||
|
||||
.theme-default .container {
|
||||
width: 100%;
|
||||
color: #34495e;
|
||||
background-color: white;
|
||||
border-radius: 0.8rem;
|
||||
box-shadow: 0 5px 30px 0 rgb(31 38 135 / 10%);
|
||||
margin: auto auto 2rem auto;
|
||||
}
|
||||
|
||||
.theme-default .info {
|
||||
border: dashed 1px #95a5a6;
|
||||
font-size: 1.4rem;
|
||||
padding: 1rem;
|
||||
color: #697384;
|
||||
margin: 1rem 0 0 0;
|
||||
white-space: nowrap;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.theme-default .badge {
|
||||
border: none;
|
||||
border-radius: 0.5rem;
|
||||
font-weight: bold;
|
||||
font-size: 1.2rem;
|
||||
padding: 1rem 1rem;
|
||||
line-height: 1.2rem;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.theme-default .progress-grey {
|
||||
background-color: #ecf0f6;
|
||||
width: 100%;
|
||||
height: 0.3rem;
|
||||
}
|
||||
|
||||
.theme-default .progress-green {
|
||||
background-color: #1abc9c;
|
||||
height: 100%;
|
||||
transition: width 300ms;
|
||||
}
|
||||
|
||||
.theme-default .col-l {
|
||||
float: left;
|
||||
width: 70%;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.theme-default .col-r {
|
||||
float: right;
|
||||
width: 30%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.theme-default .error-inline {
|
||||
font-size: 1.4rem;
|
||||
padding: 1rem;
|
||||
color: #f1c40f;
|
||||
margin: 1rem 0 0 0;
|
||||
background-color: #2c3e50;
|
||||
white-space: nowrap;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.theme-default .label {
|
||||
font-size: 1.2rem;
|
||||
line-height: 1.8rem;
|
||||
color: #7f8c8d;
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
|
||||
.theme-default .error {
|
||||
font-size: 1.4rem;
|
||||
padding: 1rem;
|
||||
color: #f1c40f;
|
||||
margin: 1rem 0 0 0;
|
||||
background-color: #2c3e50;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.theme-default .hr {
|
||||
height: 1px;
|
||||
margin: 1rem 0;
|
||||
background-color: #ecf0f1;
|
||||
}
|
||||
|
||||
/* +colors */
|
||||
|
||||
.theme-default .minor-font {
|
||||
color: #34495e;
|
||||
}
|
||||
.theme-default .major-font {
|
||||
color: #95a5a6;
|
||||
}
|
||||
.theme-default .normal-font {
|
||||
color: #697384;
|
||||
}
|
||||
.theme-default .focus-font {
|
||||
color: #16a085;
|
||||
}
|
||||
.theme-default .error-font {
|
||||
color: #f1c40f;
|
||||
}
|
||||
|
||||
.theme-default .major-bg {
|
||||
background-color: #f6f6f6;
|
||||
}
|
||||
.theme-default .normal-bg {
|
||||
background-color: white;
|
||||
}
|
||||
.theme-default .focus-bg {
|
||||
background-color: #16a085;
|
||||
}
|
||||
.theme-default .minor-bg {
|
||||
background-color: #ecf0f6;
|
||||
}
|
||||
.theme-default ::placeholder {
|
||||
color: #95a5a6;
|
||||
}
|
||||
.theme-default a {
|
||||
color: #16a085;
|
||||
}
|
||||
.theme-default a:hover {
|
||||
color: #2ecc71;
|
||||
}
|
||||
.theme-default input:focus {
|
||||
opacity: 0.8;
|
||||
box-shadow: 0 0.1rem 1rem rgba(22, 160, 133, 0.1);
|
||||
}
|
||||
.theme-default .button-default {
|
||||
color: #697384;
|
||||
background-color: #ecf0f6;
|
||||
}
|
BIN
static/public/font/Hurricane-Regular.ttf
Normal file
BIN
static/public/font/Hurricane-Regular.ttf
Normal file
Binary file not shown.
BIN
static/public/img/favicon.png
Normal file
BIN
static/public/img/favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
1
static/public/img/favicon.svg
Normal file
1
static/public/img/favicon.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="48" height="48" ><path fill="none" d="M0 0h24v24H0z"></path><path d="M9 3v2H4v14h16v-9h2v10a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6zm7 2V1l7 6h-9a2 2 0 0 0-2 2v6h-2V9a4 4 0 0 1 4-4h2z"></path></svg>
|
After Width: | Height: | Size: 317 B |
BIN
static/public/img/prism.png
Normal file
BIN
static/public/img/prism.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.5 KiB |
BIN
static/public/img/px_by_Gre3g.webp
Normal file
BIN
static/public/img/px_by_Gre3g.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
BIN
static/public/img/textured_paper.png
Normal file
BIN
static/public/img/textured_paper.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 131 KiB |
BIN
static/public/img/tweed.webp
Normal file
BIN
static/public/img/tweed.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
11
static/public/manifest.json
Normal file
11
static/public/manifest.json
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"name": "Quickshare",
|
||||
"short_name": "Quickshare",
|
||||
"icons": [{
|
||||
"src": "img/favicon.png",
|
||||
"sizes": "512x512"
|
||||
}],
|
||||
"background_color": "#16a085",
|
||||
"theme_color": "#ffffff",
|
||||
"display": "fullscreen"
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue