feat: hide appicon & appname, place on bottom

This commit is contained in:
Khairul Hidayat 2024-08-11 03:16:31 +07:00
parent dc48c53aa2
commit 9ab145d23d
5 changed files with 187 additions and 182 deletions

View File

@ -10,11 +10,11 @@
width: 192px;
height: 192px;
object-fit: cover;
transition: transform .4s, opacity .4s;
transition: transform 0.4s, opacity 0.4s;
}
.appicon.notloaded {
transform: scale(.8);
transform: scale(0.8);
opacity: 0;
}
@ -23,14 +23,16 @@
overflow: hidden;
}
#theme-switcher i::before, #theme-switcher i::after {
#theme-switcher i::before,
#theme-switcher i::after {
position: absolute;
top: 50%;
left: 50%;
--hidden: 1;
opacity: calc(1 - var(--hidden));
transform: translate(-50%, -50%) rotateZ(calc(var(--hidden) * 360deg)) scale(calc(1 - var(--hidden) / 2));
transition: transform .3s, opacity .3s;
transform: translate(-50%, -50%) rotateZ(calc(var(--hidden) * 360deg))
scale(calc(1 - var(--hidden) / 2));
transition: transform 0.3s, opacity 0.3s;
}
#theme-switcher i::before {
@ -45,7 +47,7 @@
}
.home.page {
top: 50%;
top: 90%;
left: 50%;
width: 100%;
height: auto;
@ -68,7 +70,7 @@
}
.appdesc {
opacity: .6;
opacity: 0.6;
margin: 2px 12px;
}
@ -82,7 +84,7 @@
background: var(--background);
padding: 2px;
justify-content: space-between;
transition: background .3s;
transition: background 0.3s;
}
.buttons > div {
@ -91,7 +93,7 @@
cursor: pointer;
border-radius: 20px;
width: 100%;
transition: background .2s;
transition: background 0.2s;
}
.buttons > div:hover {

View File

@ -1,25 +1,27 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" id="favicon">
<link rel="stylesheet" type="text/css" href="css/main.css">
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
/>
<link rel="icon" id="favicon" />
<link rel="stylesheet" type="text/css" href="css/main.css" />
<script src="js/main.js" type="module"></script>
<link rel="manifest" href="config/manifest.json" />
</head>
<body>
<div id="background"></div>
<div class="main">
<!-- Home page -->
<div class="page home" p="home">
<div class="wrapper">
<div class="home">
<img class="appicon">
<!-- <div class="home">
<img class="appicon" />
<div class="appname"></div>
<div class="appdesc"></div>
</div>
</div> -->
<div class="buttons">
<div id="theme-switcher">
<i>&nbsp;</i>
@ -58,7 +60,6 @@
<div>Settings</div>
</div>
<div class="subpages">
<!-- Overview -->
<div>
<div class="overview">
@ -73,7 +74,10 @@
<!-- Settings -->
<div>
<div id="no-cookies">WARNING: due to blocked cookies, all settings will be lost after page reload</div>
<div id="no-cookies">
WARNING: due to blocked cookies, all settings will be lost after
page reload
</div>
<div id="settings"></div>
</div>
</div>

View File

@ -1,53 +1,52 @@
import App from "../../App"
import { showPage } from "../../Utils/DOMUtils"
import App from "../../App";
import { showPage } from "../../Utils/DOMUtils";
export default class Home {
constructor() {
this.app = new App()
this.config = this.app.config
this.init()
this.app = new App();
this.config = this.app.config;
this.init();
}
init() {
this.initButtons()
this.initHomeUI()
this.initBackButtons()
this.initButtons();
// this.initHomeUI();
this.initBackButtons();
}
initButtons() {
let buttons = document.querySelector(".buttons").children
let buttons = document.querySelector(".buttons").children;
for (let button of buttons) {
let target = button.getAttribute("t")
let target = button.getAttribute("t");
if (target) {
button.addEventListener("click", () => {
showPage(target)
})
showPage(target);
});
}
}
}
initBackButtons() {
let backButtons = document.querySelectorAll(".back")
let backButtons = document.querySelectorAll(".back");
for (let button of backButtons) {
button.addEventListener("click", () => {
showPage("home")
})
showPage("home");
});
}
}
initHomeUI() {
let logo = document.querySelector(".appicon")
logo.src = this.config.get("icon")
logo.classList.add("notloaded")
let logo = document.querySelector(".appicon");
logo.src = this.config.get("icon");
logo.classList.add("notloaded");
logo.addEventListener("load", () => {
logo.classList.remove("notloaded")
})
logo.classList.remove("notloaded");
});
let name = document.querySelector(".appname")
name.innerText = this.config.get("name")
let name = document.querySelector(".appname");
name.innerText = this.config.get("name");
let desc = document.querySelector(".appdesc")
desc.innerText = this.config.get("desc")
let desc = document.querySelector(".appdesc");
desc.innerText = this.config.get("desc");
}
}

View File

@ -3,8 +3,8 @@
"name": "Eclair",
"desc": "Nice and sweet place for all your self-hosted services.",
"icon": "img/icon.png",
"wallpaper": "img/background.jpg",
"wallpaper_dark": "img/background-dark.jpg",
"wallpaper": "img/gdt_xv_ma_yaauhi9_hUoR1tSITv.jpeg",
"wallpaper_dark": "img/gdt_xv_ma_yaauhi9_hUoR1tSITv.jpeg",
"dark_mode": true,
"open_new_tab": false,
"blur": true,

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 KiB