Files
totallynottokenstealer/dev/html/login.html
katamaz ce0d14bd77
Some checks failed
Build and Release / build-and-release (push) Failing after 8s
initial
2026-05-28 15:03:31 +03:00

250 lines
5.8 KiB
HTML

<!-- half ai slop -->
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
[k-template] {
display: none;
}
:root {
--bg: #0d0d0f;
--surface: #131316;
--surface2: #1a1a1f;
--border: rgba(255, 255, 255, 0.06);
--border-bright: rgba(255, 255, 255, 0.14);
--text: #ffffff;
--muted: #d3d3dd;
--too-muted: #84848f;
--blue: #4f8ef7;
--blue-dim: rgba(79, 142, 247, 0.12);
--green: #3ecf8e;
--green-dim: rgba(62, 207, 142, 0.12);
--red: #f76f6f;
--red-dim: rgba(247, 111, 111, 0.12);
}
body {
font-family: "JetBrains Mono", monospace;
background: var(--bg);
color: var(--text);
min-height: 100vh;
}
.shell {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
padding: 2rem 1rem;
}
.card {
width: 100%;
max-width: 820px;
background: var(--surface);
border: 1px solid var(--border-bright);
border-radius: 12px;
overflow: hidden;
box-shadow:
0 0 0 1px rgba(0, 0, 0, 0.5),
0 24px 64px rgba(0, 0, 0, 0.6);
}
.titlebar {
background: var(--surface2);
border-bottom: 1px solid var(--border-bright);
padding: 12px 18px;
display: flex;
align-items: center;
gap: 12px;
position: relative;
}
.dots {
display: flex;
gap: 6px;
}
.dot {
width: 11px;
height: 11px;
border-radius: 50%;
}
.dot-r {
background: #f76f6f;
}
.dot-y {
background: #f5c842;
}
.dot-g {
background: #3ecf8e;
}
.titlebar-name {
font-size: 17px;
font-weight: 800;
color: var(--text);
margin-left: 20px;
margin-right: auto;
}
.titlebar-by {
position: absolute;
right: 20px;
height: 30px;
}
.card-body {
padding: 24px;
display: flex;
flex-direction: column;
gap: 24px;
}
.error-area p {
font-size: 12px;
color: var(--red);
background: var(--red-dim);
border: 1px solid rgba(247, 111, 111, 0.25);
border-radius: 6px;
padding: 8px 14px;
text-align: center;
}
.field {
background: var(--bg);
border: 1px solid var(--border-bright);
border-radius: 6px;
padding: 8px 12px;
color: var(--text);
font-family: inherit;
font-size: 12px;
outline: none;
transition:
border-color 0.15s,
box-shadow 0.15s;
width: 100%;
}
.field::placeholder {
color: var(--too-muted);
}
.field:focus {
border-color: var(--blue);
box-shadow: 0 0 0 3px var(--blue-dim);
}
textarea.field {
resize: none;
min-height: 68px;
}
.btn-add {
display: flex;
align-items: center;
gap: 6px;
background: var(--blue);
color: #fff;
font-family: inherit;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.08em;
border: none;
border-radius: 6px;
padding: 7px 14px;
cursor: pointer;
transition:
background 0.15s,
transform 0.1s;
}
.btn-add:hover {
background: #6aa3ff;
}
.btn-add:active {
transform: scale(0.97);
}
.form{
display: flex;
align-items: center;
justify-content: center;
max-width: 600px;
gap: 6px;
}
</style>
</head>
<body>
<div id="t_error" k-template>
<p class="text-red-500 text-center">{{error}}</p>
</div>
<div class="shell">
<div class="card">
<div class="titlebar">
<div class="dots">
<span class="dot dot-r"></span>
<span class="dot dot-y"></span>
<span class="dot dot-g"></span>
</div>
<span class="titlebar-name">totally not token stealer</span>
<img src="https://assets.ktkz.ru/ktkzXtmb.svg" alt="" class="titlebar-by">
</div>
<div class="card-body">
<h2 class="text-xl">login</h2>
<form
class="form"
action=""
method="get"
>
<div k-m-error class="error-area"></div>
<input type="hidden" name="control" />
<input
type="password"
class="field"
name="l"
placeholder="password should be here"
/>
<button class="btn-add">login</button>
</form>
</div>
</div>
<script>
/** @param {{error?: string}} data */
const appendData = (data) => {
if (data.error) {
document.querySelector("[k-m-error]").innerHTML = renderTemplate(
"error",
data,
);
}
};
/** @param {string} name
* @param {object} values
*/
const renderTemplate = (name, values) => {
const el = document.querySelector(`[k-template]#t_${name}`);
if (!el) return;
let d = el.innerHTML;
Object.keys(values).forEach((i) => {
d = d.split(`{{${i}}}`).join(values[i].toString());
});
return d;
};
window["_appendData"] = appendData;
</script>
<script>window._appendData("<<BUILDER_PHP_VAR($data)>>")</script>
</body>
</html>