run Biome formatter
This commit is contained in:
parent
a028fa741d
commit
e485a0c398
16
.vscode/settings.json
vendored
Normal file
16
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"editor.defaultFormatter": "biomejs.biome",
|
||||||
|
"biome.enabled": true,
|
||||||
|
"biome.requireConfiguration": true,
|
||||||
|
"biome.configurationPath": "./frontend/biome.json",
|
||||||
|
"biome.lsp.bin": {
|
||||||
|
"linux-x64": "./frontend/node_modules/@biomejs/cli-linux-x64/biome",
|
||||||
|
"linux-x64-musl": "./frontend/node_modules/@biomejs/cli-linux-x64-musl/biome",
|
||||||
|
"cli-linux-arm64": "./frontend/node_modules/@biomejs/cli-linux-arm64/biome",
|
||||||
|
"linux-arm64-musl": "./frontend/node_modules/@biomejs/cli-linux-arm64-musl/biome",
|
||||||
|
"win32-x64": "./frontend/node_modules/@biomejs/cli-win32-x64/biome.exe",
|
||||||
|
"win32-arm64": "./frontend/node_modules/@biomejs/cli-win32-arm64/biome.exe",
|
||||||
|
"darwin-x64": "./frontend/node_modules/@biomejs/cli-darwin-x64/biome"
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
@ -11,8 +11,6 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
|
|
||||||
<!-- ─── HEADER ─── -->
|
|
||||||
<header class="header">
|
<header class="header">
|
||||||
<div class="container header__inner">
|
<div class="container header__inner">
|
||||||
<a href="#hero" class="logo">
|
<a href="#hero" class="logo">
|
||||||
@ -35,8 +33,6 @@
|
|||||||
</header>
|
</header>
|
||||||
|
|
||||||
<main>
|
<main>
|
||||||
|
|
||||||
<!-- ─── HERO ─── -->
|
|
||||||
<section class="hero" id="hero">
|
<section class="hero" id="hero">
|
||||||
<div class="container hero__inner">
|
<div class="container hero__inner">
|
||||||
|
|
||||||
@ -88,8 +84,6 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<!-- ─── ABOUT ─── -->
|
|
||||||
<section class="about" id="about">
|
<section class="about" id="about">
|
||||||
<div class="container about__inner">
|
<div class="container about__inner">
|
||||||
|
|
||||||
@ -99,7 +93,7 @@
|
|||||||
<p class="about__desc reveal reveal-delay-2">
|
<p class="about__desc reveal reveal-delay-2">
|
||||||
GeoDraw is a competitive browser game built on memory and precision. You get a country name, sketch its outline, and the system calculates how close you were to the real border.
|
GeoDraw is a competitive browser game built on memory and precision. You get a country name, sketch its outline, and the system calculates how close you were to the real border.
|
||||||
</p>
|
</p>
|
||||||
<!--
|
|
||||||
<div class="mini-globe-wrap reveal reveal-delay-3">
|
<div class="mini-globe-wrap reveal reveal-delay-3">
|
||||||
<div class="map-outline">
|
<div class="map-outline">
|
||||||
<svg viewBox="0 0 100 130" xmlns="http://www.w3.org/2000/svg">
|
<svg viewBox="0 0 100 130" xmlns="http://www.w3.org/2000/svg">
|
||||||
@ -117,7 +111,7 @@
|
|||||||
transform="translate(4,-2) scale(0.96) translate(-2,2)"/>
|
transform="translate(4,-2) scale(0.96) translate(-2,2)"/>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
</div> -->
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="about__right">
|
<div class="about__right">
|
||||||
|
|||||||
@ -1,13 +1,17 @@
|
|||||||
{
|
{
|
||||||
"name": "fs2026-frontend",
|
"name": "fs2026-frontend",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"author": "",
|
"author": "",
|
||||||
"type": "commonjs",
|
"type": "commonjs",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {},
|
"scripts": {
|
||||||
"devDependencies": {
|
"format": "biome format --write",
|
||||||
"@biomejs/biome": "2.3.14"
|
"lint": "biome lint",
|
||||||
}
|
"lint:fix": "biome lint --write"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@biomejs/biome": "2.3.14"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -1,36 +1,39 @@
|
|||||||
document.addEventListener("DOMContentLoaded", () => {
|
document.addEventListener("DOMContentLoaded", () => {
|
||||||
|
// ── Register button
|
||||||
|
const regBtn = document.getElementById("reg-btn");
|
||||||
|
if (regBtn) {
|
||||||
|
regBtn.addEventListener("click", () => {
|
||||||
|
alert("Frontend skeleton only. Backend will be connected later.");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// ── Register button
|
// ── Smooth scroll for all anchor links
|
||||||
const regBtn = document.getElementById("reg-btn");
|
document.querySelectorAll('a[href^="#"]').forEach((link) => {
|
||||||
if (regBtn) {
|
link.addEventListener("click", (e) => {
|
||||||
regBtn.addEventListener("click", () => {
|
const id = link.getAttribute("href").slice(1);
|
||||||
alert("Frontend skeleton only. Backend will be connected later.");
|
const target = document.getElementById(id);
|
||||||
});
|
if (!target) return;
|
||||||
}
|
e.preventDefault();
|
||||||
|
const headerH = document.querySelector(".header").offsetHeight;
|
||||||
|
const top =
|
||||||
|
target.getBoundingClientRect().top + window.scrollY - headerH - 16;
|
||||||
|
window.scrollTo({ top, behavior: "smooth" });
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
// ── Smooth scroll for all anchor links
|
// ── Scroll reveal
|
||||||
document.querySelectorAll('a[href^="#"]').forEach(link => {
|
const reveals = document.querySelectorAll(".reveal");
|
||||||
link.addEventListener("click", e => {
|
const io = new IntersectionObserver(
|
||||||
const id = link.getAttribute("href").slice(1);
|
(entries) => {
|
||||||
const target = document.getElementById(id);
|
entries.forEach((entry) => {
|
||||||
if (!target) return;
|
if (entry.isIntersecting) {
|
||||||
e.preventDefault();
|
entry.target.classList.add("visible");
|
||||||
const headerH = document.querySelector(".header").offsetHeight;
|
io.unobserve(entry.target);
|
||||||
const top = target.getBoundingClientRect().top + window.scrollY - headerH - 16;
|
}
|
||||||
window.scrollTo({ top, behavior: "smooth" });
|
});
|
||||||
});
|
},
|
||||||
});
|
{ threshold: 0.12 },
|
||||||
|
);
|
||||||
|
|
||||||
// ── Scroll reveal
|
reveals.forEach((el) => io.observe(el));
|
||||||
const reveals = document.querySelectorAll(".reveal");
|
|
||||||
const io = new IntersectionObserver((entries) => {
|
|
||||||
entries.forEach(entry => {
|
|
||||||
if (entry.isIntersecting) {
|
|
||||||
entry.target.classList.add("visible");
|
|
||||||
io.unobserve(entry.target);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}, { threshold: 0.12 });
|
|
||||||
|
|
||||||
reveals.forEach(el => io.observe(el));
|
|
||||||
});
|
});
|
||||||
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user