diff --git a/radicale/web/internal_data/css/main-dark.css b/radicale/web/internal_data/css/main-dark.css new file mode 100644 index 00000000..059e1d2e --- /dev/null +++ b/radicale/web/internal_data/css/main-dark.css @@ -0,0 +1,636 @@ +body { + background: #0f1115; + color: #e5e7eb; + font-family: sans-serif; + font-size: 14pt; + margin: 0; + min-height: 100vh; + display: flex; + flex-wrap: wrap; + flex-direction: row; + align-content: center; + align-items: flex-start; + justify-content: space-around; +} + +main { + width: 100%; +} + +.container { + height: auto; + min-height: 500px; + width: 95%; + max-width: 450px; + box-sizing: border-box; + transition: .2s; + overflow: hidden; + padding: 1ex 1em 1ex 1em; + background: #1b1b22; + border: 1px solid #2a2a33; + border-radius: 8px; + box-shadow: 2px 2px 10px #00000066; + display: block; + flex-shrink: 0; + margin: 0 auto; +} + +.container h1 { + margin: 0; + width: 100%; + text-align: center; + color: #e5e7eb; +} + +table { + width: 100%; + border-collapse: collapse; + margin: 1ex 0; +} + +th, +td { + text-align: left; + font-size: 0.8em; + padding: 0.2ex 0.2em; +} + +tr { + border-bottom: 1px solid #2a2a33; +} + +tr:last-child { + border-bottom: none; +} + +th { + font-size: 0.8em; + color: #a1a1aa; + font-weight: normal; + text-transform: uppercase; +} + +td.fill { + width: 100%; +} + +details { + border: 1px solid #2a2a33; + border-radius: 0.7ex; + padding: 0.5ex 0.7ex; + margin-bottom: 1ex; + background: #1b1b22; +} + +summary { + font-weight: bold; + cursor: pointer; + padding: 0.2ex 0; + outline: none; +} + +summary:hover { + color: #2494fe; +} + +#loginscene .infcloudlink { + margin: 0; + width: 100%; + text-align: center; + color: #a1a1aa; +} + +#loginscene .infcloudlink-hidden { + visibility: hidden; +} + +#loginscene .logocontainer { + width: 100%; + text-align: center; +} + +#loginscene .logocontainer img { + width: 75px; +} + +#loginscene h1 { + text-align: center; + font-family: sans-serif; + font-weight: normal; +} + +#loginscene button { + float: right; +} + +#loadingscene { + width: 100%; + height: 100%; + background: #12141a; + position: absolute; + top: 0; + left: 0; + display: flex; + flex-wrap: nowrap; + justify-content: center; + align-items: center; + flex-direction: column; + overflow: hidden; + z-index: 999; +} + +#loadingscene h2 { + font-size: 2em; + font-weight: bold; +} + +#logoutview { + width: 100%; + display: block; + background: #1b1b22; + text-align: center; + padding: 10px 0px; + color: #a1a1aa; + border-bottom: 2px solid #2a2a33; + position: fixed; +} + +#logoutview span { + width: calc(100% - 60px); + display: inline-block; + word-wrap: break-word; +} + +#logoutview a { + color: #e5e7eb; + text-decoration: none; + padding: 3px 10px; + position: relative; + border-radius: 4px; +} + +#logoutview a[data-name=logout] { + right: 25px; + float: right; +} + +#logoutview a[data-name=refresh] { + left: 25px; + float: left; +} + +#logoutview .version { + float: right !important; + width: auto !important; + margin-right: 10px; + position: relative; + right: 25px; + font-size: 0.8em; + color: #6b7280; + line-height: 2.2em; +} + +#collectionsscene { + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-content: flex-start; + align-items: center; + margin-top: 50px; + width: 100%; + height: 100vh; +} + +#collectionsscene article { + width: 275px; + background: #1b1b22; + border-radius: 8px; + box-shadow: 2px 2px 10px #00000066; + border: 1px solid #2a2a33; + padding: 5px 10px; + padding-top: 0; + margin: 10px; + float: left; + min-height: 375px; + overflow: hidden; +} + +#collectionsscene article .colorbar { + width: 500%; + height: 15px; + margin: 0px -100%; + background: #111827; +} + +#collectionsscene article .title { + width: 100%; + text-align: center; + font-size: 1.5em; + display: block; + padding: 10px 0; + margin: 0; +} + +#collectionsscene article small { + font-size: 15px; + float: left; + font-weight: normal; + font-style: italic; + padding-bottom: 10px; + width: 100%; + text-align: center; +} + +#collectionsscene article input[type=text] { + margin-bottom: 0 !important; +} + +#collectionsscene article p { + font-size: 1em; + max-height: 130px; + overflow: auto; + word-wrap: break-word; +} + +#collectionsscene article:hover ul { + visibility: visible; +} + +#collectionsscene ul { + visibility: hidden; + display: flex; + justify-content: space-evenly; + width: 60%; + margin: 0 20%; + padding: 0; +} + +#collectionsscene li { + list-style: none; + display: block; +} + +#collectionsscene li a { + text-decoration: none !important; + padding: 5px; + float: left; + border-radius: 5px; + width: 25px; + height: 25px; + text-align: center; +} + +#collectionsscene article small[data-name=contentcount] { + font-weight: bold; + font-style: normal; +} + +#editcollectionscene p span { + word-wrap: break-word; + font-weight: bold; + color: #22c55e; +} + +#deletecollectionscene p span { + word-wrap: break-word; + font-weight: bold; + color: #ef4444; +} + +#uploadcollectionscene ul { + margin: 10px -30px; + max-height: 600px; + overflow-y: scroll; +} + +#uploadcollectionscene li { + border-bottom: 1px dashed #2a2a33; + margin-bottom: 10px; + padding-bottom: 10px; +} + +#uploadcollectionscene div[data-name=pending] { + width: 100%; + text-align: center; +} + +#uploadcollectionscene .successmessage { + color: #22c55e; + width: 100%; + text-align: center; + display: block; + margin-top: 15px; +} + +#newshare input[type=text] { + margin-bottom: 0 !important; +} + +.deleteconfirmationtxt { + text-align: center; + font-size: 1em; + font-weight: bold; +} + +.fabcontainer { + display: flex; + flex-direction: column-reverse; + position: fixed; + bottom: 5px; + right: 0; +} + +.fabcontainer a { + width: 30px; + height: 30px; + text-decoration: none; + color: #e5e7eb; + border: none !important; + border-radius: 100%; + margin: 5px 10px; + background: #111827; + text-align: center; + display: flex; + align-content: center; + justify-content: center; + align-items: center; + font-size: 30px; + padding: 10px; + box-shadow: 2px 2px 10px #000000aa; +} + +.title { + word-wrap: break-word; + font-weight: bold; +} + +.icon { + width: 100%; + height: 100%; + filter: invert(1); +} + +.small_icon { + width: 1em; + height: 1em; + filter: invert(1); +} + +.med_icon { + width: 1.5em; + height: 1.5em; +} + +.badge_icon { + width: 1em; + height: 1em; + position: absolute; + top: -5px; + right: -5px; + filter: invert(1); + border-radius: 50%; + background-color: #1b1b22; +} + +.smalltext { + font-size: 75% !important; +} + +.error { + width: 100%; + display: block; + text-align: center; + color: #f87171; + font-family: sans-serif; + clear: both; + padding-top: 15px; +} + +img.loading { + width: 150px; + height: 150px; +} + +.error::before { + content: "!"; + height: 1.4em; + color: white; + background: #ef4444; + font-weight: bold; + border-radius: 100%; + display: inline-block; + width: 1.4em; + margin-right: 5px; + font-size: 1em; + text-align: center; +} + +button { + font-size: 1em; + padding: 7px 21px; + color: #e5e7eb; + border-radius: 4px; + float: right; + margin-left: 10px; + background: #111827; + cursor: pointer; + position: relative; +} + +input, +select { + width: 100%; + height: 3em; + border-style: solid; + border-color: #2a2a33; + border-width: 1px; + border-radius: 7px; + margin-bottom: 25px; + padding-left: 15px; + padding-right: 15px; + outline: none !important; + box-sizing: border-box; + background: #0f1115; + color: #e5e7eb; +} + +input:active, +input:focus, +input:focus-visible { + border-color: #2494fe !important; + border-width: 1px !important; +} + +.url-input-wrapper { + position: relative; + width: 100%; + margin-bottom: 0; + display: flex; + align-items: center; + clear: both; +} + +td .url-input-wrapper input { + min-height: 4ex; +} + +.url-input-wrapper input { + flex: 1; + min-width: 40px; + min-height: 6ex; + padding-left: 0.5em; + padding-top: 0.5ex; + padding-bottom: 0.5ex; + padding-right: 22px !important; + box-sizing: border-box; + width: 100% !important; + margin-bottom: 0 !important; + height: 2ex; + background: #0f1115; + color: #e5e7eb; +} + +#collectionsscene article .url-input-wrapper { + margin-bottom: 15px; +} + +.copy-btn { + flex: none; + margin-left: -30px; + background: transparent; + border: none; + color: #60a5fa; + font-size: 1.25em; + cursor: pointer; + padding: 0; + width: 30px; + height: 30px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 4px; + transition: background-color 0.2s, color 0.2s, transform 0.1s; + line-height: 1; + z-index: 2; + float: none; + margin-bottom: 0; + margin-top: 0; + margin-right: 8px; +} + +.copy-btn:hover { + background-color: #1b2a3a; + color: #93c5fd; +} + +.copy-btn:active { + transform: scale(0.9); +} + +.copy-btn.copied { + color: #22c55e; +} + +input[type=radio], +input[type=checkbox] { + width: auto; + height: 1.5em; + padding: 0; + margin: 2px; +} + +p.red, +span.red { + color: #f87171; +} + +button.red, +a.red { + background: #7f1d1d; + border: 1px solid #991b1b; +} + +button.red:hover, +a.red:hover { + background: #991b1b; +} + +button.red:active, +a.red:active { + background: #b91c1c; +} + +button.green, +a.green { + background: #14532d; + border: 1px solid #166534; +} + +button.green:hover, +a.green:hover { + background: #166534; +} + +button.green:active, +a.green:active { + background: #22c55e; +} + +button.blue, +a.blue { + background: #1d4ed8; + border: 1px solid #1e40af; +} + +button.blue:hover, +a.blue:hover { + background: #2563eb; + cursor: pointer !important; +} + +button.blue:active, +a.blue:active { + background: #1e40af; + cursor: pointer !important; +} + +button.inline { + padding-left: 1px; + padding-right: 1px; + min-width: 2em; + margin: 0; + display: flex; + align-items: center; + justify-content: center; +} + +@media only screen and (max-width: 600px) { + #collectionsscene { + flex-direction: column !important; + flex-wrap: nowrap; + } + + #collectionsscene ul { + visibility: visible !important; + } +} + +.pill { + display: inline-block; + padding: 0.25em 0.6em; + font-size: 75%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: middle; + border-radius: 0.7ex; + background-color: #3a3f4b; + color: #e5e7eb; + margin: 0 2px; + min-width: 1.3em; +} + +.hidden { + display: none !important; +}