first commit
This commit is contained in:
commit
efc0c2f2c7
8 changed files with 128 additions and 0 deletions
41
.gitignore
vendored
Normal file
41
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# Node
|
||||
node_modules/
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
|
||||
# Build output
|
||||
dist/
|
||||
build/
|
||||
out/
|
||||
.tmp/
|
||||
.temp/
|
||||
|
||||
# Capacitor / Cordova
|
||||
android/
|
||||
ios/
|
||||
www/
|
||||
|
||||
# Environment files
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
||||
|
||||
# System files
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
# Editor folders
|
||||
.vscode/
|
||||
.idea/
|
||||
|
||||
# Logs
|
||||
*.log
|
||||
|
||||
# Cache
|
||||
.cache/
|
||||
.parcel-cache/
|
||||
.next/
|
||||
.nuxt/
|
||||
.svelte-kit/
|
||||
2
README.md
Normal file
2
README.md
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
npx http-server .
|
||||
19
app.js
Normal file
19
app.js
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
async function loadApps() {
|
||||
const container = document.getElementById("folder");
|
||||
const apps = await fetch("apps.json").then(r => r.json());
|
||||
|
||||
apps.forEach(app => {
|
||||
const div = document.createElement("div");
|
||||
div.className = "app-icon";
|
||||
div.onclick = () => window.open(app.url, "_blank", "noopener,noreferrer");
|
||||
|
||||
div.innerHTML = `
|
||||
<img src="${app.icon}" alt="${app.name}">
|
||||
<span>${app.name}</span>
|
||||
`;
|
||||
|
||||
container.appendChild(div);
|
||||
});
|
||||
}
|
||||
|
||||
loadApps();
|
||||
12
apps.json
Normal file
12
apps.json
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
[
|
||||
{
|
||||
"name": "Google",
|
||||
"icon": "icons/google.png",
|
||||
"url": "https://google.com"
|
||||
},
|
||||
{
|
||||
"name": "GitHub",
|
||||
"icon": "icons/github.png",
|
||||
"url": "https://github.com"
|
||||
}
|
||||
]
|
||||
BIN
icons/github.png
Normal file
BIN
icons/github.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
BIN
icons/google.png
Normal file
BIN
icons/google.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 70 KiB |
12
index.html
Normal file
12
index.html
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="it">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Folder style macOS</title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="folder" id="folder"></div>
|
||||
<script src="app.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
42
style.css
Normal file
42
style.css
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
body {
|
||||
background: #1e1e1e;
|
||||
font-family: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
|
||||
color: #f5f5f5;
|
||||
}
|
||||
|
||||
.folder {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, 100px);
|
||||
gap: 24px;
|
||||
padding: 32px;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.app-icon {
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
transition: transform 0.15s ease, box-shadow 0.15s ease;
|
||||
}
|
||||
|
||||
.app-icon img {
|
||||
width: 72px;
|
||||
height: 72px;
|
||||
border-radius: 20px;
|
||||
box-shadow: 0 8px 18px rgba(0, 0, 0, 0.45);
|
||||
}
|
||||
|
||||
.app-icon span {
|
||||
display: block;
|
||||
margin-top: 8px;
|
||||
font-size: 13px;
|
||||
color: #ddd;
|
||||
}
|
||||
|
||||
.app-icon:hover {
|
||||
transform: scale(1.08);
|
||||
}
|
||||
|
||||
.app-icon:active {
|
||||
transform: scale(0.97);
|
||||
}
|
||||
Loading…
Reference in a new issue