-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
134 lines (132 loc) · 5.16 KB
/
index.html
File metadata and controls
134 lines (132 loc) · 5.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<!DOCTYPE html>
<html>
<head>
<title>Pangonn Corp. Essential Assets</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link id="favicon" rel="icon" href="./assets/dark.png" type="image/x-icon">
<style>
@import url('./colors.css');
html {
height: 100%;
}
body {
background: var(--surface-a0);
color: var(--text-a0);
width: 100%;
height: 100%;
font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;
margin: 0;
gap: 8px 16px;
display: flex;
overflow: hidden;
}
.item {
background: var(--surface-a10);
border-radius: 8px;
padding: 8px 16px;
width: 80%;
transition: box-shadow 0.2s ease-in-out, transform 0.2s ease-in-out;
cursor: pointer;
}
.item:hover {
box-shadow: 0 0 12px var(--primary-a30);
transform: translateY(10px);
transform: scale(1.02);
cursor: pointer;
user-select: none;
}
.overview {
color: var(--text-a60);
}
aside {
position: sticky;
top: 0;
display: flex;
flex-direction: column;
align-self: flex-start;
padding: 8px 12px;
background: var(--dark-a0);
width: 25%;
height: 100vh;
box-sizing: border-box;
gap: 4px;
transition: box-shadow 0.2s ease-in-out;
}
aside:hover {
box-shadow: 0 0 32px var(--primary-a30);
cursor: default;
user-select: none;
}
main {
display: grid;
grid-template-rows: repeat(auto-fill, minmax(150px, auto));
padding: 16px;
width: calc(75% - 32px);
height: 100vh;
box-sizing: border-box;
overflow-y: auto;
gap: 16px 32px;
}
</style>
<script src="./assets/theme.js" defer></script>
</head>
<body>
<aside>
<h1>Essential Assets</h1>
<small style="color: var(--text-a30);">by Pangonn Corp.</small>
<h3 style="color: var(--text-a70);">The assets needed to build functional, hidden, game and proxy sites.</h3>
<img style="background-color: var(--surface-a10); padding: 4px; border-radius: 16px;" src="./assets/dark.png">
</aside>
<main></main>
<template id="item">
<div class="item">
<h1>${title}</h1>
<div class="overview">
<h4>${overview}</h4>
</div>
</div>
</template>
<script>
const items = [
{
title: 'URL cloaking',
overview: 'URL cloaking is useful for hiding your current domain from blockers. The about:blank is the most well known URL cloak but it has its downsides...',
link: './pages/url-cloaking.html'
},
{
title: 'Tab cloaking',
overview: 'Tab cloaking is essential for creating hidden sites. It makes the tab appear as something else, such as a document or an educational resource...',
link: './pages/tab-cloak.html'
},
{
title: 'Game sources',
overview: 'Game sources are the backbone of any gaming site. They provide the necessary code and assets to run games seamlessly on your platform...',
link: './pages/game-sources.html'
}
];
function generateItems() {
const main = document.querySelector('main');
const template = document.getElementById('item');
items.forEach(item => {
const clone = template.content.cloneNode(true);
clone.querySelector('h1').textContent = item.title;
clone.querySelector('.overview').innerHTML = `<h4>${item.overview}</h4>`;
const node = clone.querySelector('.item');
node.tabIndex = 0;
node.style.cursor = 'pointer';
node.onclick = () => {
window.location.href = item.link;
};
node.addEventListener('keydown', (e) => {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
window.location.href = item.link;
}
});
main.appendChild(clone);
});
}
generateItems();
</script>
</body>
</html>