From 48d4058e061a2d7bea7f4282d3033b38fff64e72 Mon Sep 17 00:00:00 2001 From: pavel444-byte Date: Sat, 31 Oct 2026 12:06:22 +0500 Subject: [PATCH] Float glass header and document moderator applications --- app/site-glass.css | 40 ++++++++++++++++++++++++++++----------- docs/gitbook/staff.md | 11 +++++++++++ shared/player-docs.json | 2 +- tests/player-docs.test.ts | 19 +++++++++++++++++++ 4 files changed, 60 insertions(+), 12 deletions(-) create mode 100644 tests/player-docs.test.ts diff --git a/app/site-glass.css b/app/site-glass.css index 32be9fb..7f6c3bb 100644 --- a/app/site-glass.css +++ b/app/site-glass.css @@ -1,14 +1,20 @@ /* A restrained frosted-glass treatment for the shared site navigation. */ .site-header { - --site-header-glass: rgb(8 11 16 / 0.78); + --site-header-glass: rgb(8 11 16 / 0.68); position: sticky; - inset-block-start: 0; + inset-block-start: 16px; z-index: 40; + height: 72px; + margin: 16px clamp(12px, 2vw, 28px) 0; + overflow: visible; background: var(--bg); - border-bottom-color: rgb(235 242 250 / 0.14); + border: 1px solid rgb(235 242 250 / 0.16); + border-radius: 22px; box-shadow: - inset 0 1px rgb(255 255 255 / 0.055), - 0 8px 24px rgb(3 6 10 / 0.12); + inset 0 1px rgb(255 255 255 / 0.12), + inset 0 -1px rgb(255 255 255 / 0.025), + 0 12px 36px rgb(3 6 10 / 0.24), + 0 2px 8px rgb(3 6 10 / 0.16); transition: background-color 160ms ease, border-color 160ms ease; @@ -17,8 +23,8 @@ @supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) { .site-header { background: var(--site-header-glass); - backdrop-filter: blur(7px) saturate(135%); - -webkit-backdrop-filter: blur(7px) saturate(135%); + backdrop-filter: blur(18px) saturate(160%); + -webkit-backdrop-filter: blur(18px) saturate(160%); } } @@ -36,11 +42,22 @@ } html[data-theme="light"] .site-header { - --site-header-glass: rgb(246 249 242 / 0.78); - border-bottom-color: rgb(52 76 43 / 0.18); + --site-header-glass: rgb(246 249 242 / 0.72); + border-color: rgb(52 76 43 / 0.18); box-shadow: - inset 0 1px rgb(255 255 255 / 0.72), - 0 8px 24px rgb(39 58 33 / 0.08); + inset 0 1px rgb(255 255 255 / 0.82), + inset 0 -1px rgb(255 255 255 / 0.28), + 0 12px 36px rgb(39 58 33 / 0.12), + 0 2px 8px rgb(39 58 33 / 0.06); +} + +@media (max-width: 700px) { + .site-header { + inset-block-start: 10px; + height: 60px; + margin: 10px 10px 0; + border-radius: 18px; + } } @media (prefers-reduced-transparency: reduce) { @@ -58,6 +75,7 @@ html[data-theme="light"] .site-header { .site-header::before { position: absolute; inset: 0; + border-radius: inherit; pointer-events: none; content: ""; background: diff --git a/docs/gitbook/staff.md b/docs/gitbook/staff.md index 61800a9..a2f1383 100644 --- a/docs/gitbook/staff.md +++ b/docs/gitbook/staff.md @@ -8,6 +8,17 @@ Use the Discord button at the bottom of MineGeo, or [join the community here](ht Newly approved maps may be announced there. Hosts can also share open multiplayer parties to the community's party channel. Open an invite to join while there is space. +## Apply to be a moderator + +1. Sign in to MineGeo and set your username in **Settings** if you have not already. +2. For **Discord**, [join the MineGeo community](https://discord.gg/Aer4ZugKWS), find the **MineGeo** bot in the member list, and send it a direct message. You cannot apply through a public server channel. +3. For **Telegram**, [open @MineGeoModeratorBot](https://t.me/MineGeoModeratorBot) and select **Start**. +4. Select **Apply for moderator** and enter your exact MineGeo username. +5. Open the confirmation link the bot sends you within **30 minutes** and sign in to the same MineGeo account. This confirms that the account belongs to you. +6. Wait for an Admin to accept or decline your application. The bot will send you the decision; an accepted application gives that confirmed account the Moderator role. + +If your confirmation link expires, start a new application. Do not share your confirmation link with anyone. + ## What do the name badges mean? - **Moderator, with a shield:** someone who can check maps and approve them for public play. diff --git a/shared/player-docs.json b/shared/player-docs.json index 0560637..6791e44 100644 --- a/shared/player-docs.json +++ b/shared/player-docs.json @@ -62,7 +62,7 @@ { "title": "Community and badges", "slug": "staff", - "markdown": "# Community and badges\n\nMeet other explorers, recognize the people helping the community, and make your account feel like yours.\n\n## Join Discord\n\nUse the Discord button at the bottom of MineGeo, or [join the community here](https://discord.gg/Aer4ZugKWS).\n\nNewly approved maps may be announced there. Hosts can also share open multiplayer parties to the community's party channel. Open an invite to join while there is space.\n\n## What do the name badges mean?\n\n- **Moderator, with a shield:** someone who can check maps and approve them for public play.\n- **Admin, with a crown:** someone who can also handle community reports and other site management.\n- **Bug finder:** someone recognized for helping find a confirmed bug.\n- **Custom prefix:** extra text and an icon assigned by an Admin.\n\nA decorative custom prefix does not give someone moderation powers. Copying another player's name does not copy their badges.\n\n## Can I get a glow?\n\nSupport may award one for a confirmed bug report. Describe the real problem through **Report a bug**. A reward is granted by staff; it is not automatic for every report.\n\nIf you have an active glow, open **Settings → Username glow**, choose a color, and save it. You can keep an earned Bug finder badge even if the glow is later removed.\n\n## Be a good party member\n\nShare invites thoughtfully, keep chat friendly, and avoid spoiling the location before everyone has guessed. Report content that needs attention instead of starting an argument.\n\n" + "markdown": "# Community and badges\n\nMeet other explorers, recognize the people helping the community, and make your account feel like yours.\n\n## Join Discord\n\nUse the Discord button at the bottom of MineGeo, or [join the community here](https://discord.gg/Aer4ZugKWS).\n\nNewly approved maps may be announced there. Hosts can also share open multiplayer parties to the community's party channel. Open an invite to join while there is space.\n\n## Apply to be a moderator\n\n1. Sign in to MineGeo and set your username in **Settings** if you have not already.\n2. For **Discord**, [join the MineGeo community](https://discord.gg/Aer4ZugKWS), find the **MineGeo** bot in the member list, and send it a direct message. You cannot apply through a public server channel.\n3. For **Telegram**, [open @MineGeoModeratorBot](https://t.me/MineGeoModeratorBot) and select **Start**.\n4. Select **Apply for moderator** and enter your exact MineGeo username.\n5. Open the confirmation link the bot sends you within **30 minutes** and sign in to the same MineGeo account. This confirms that the account belongs to you.\n6. Wait for an Admin to accept or decline your application. The bot will send you the decision; an accepted application gives that confirmed account the Moderator role.\n\nIf your confirmation link expires, start a new application. Do not share your confirmation link with anyone.\n\n## What do the name badges mean?\n\n- **Moderator, with a shield:** someone who can check maps and approve them for public play.\n- **Admin, with a crown:** someone who can also handle community reports and other site management.\n- **Bug finder:** someone recognized for helping find a confirmed bug.\n- **Custom prefix:** extra text and an icon assigned by an Admin.\n\nA decorative custom prefix does not give someone moderation powers. Copying another player's name does not copy their badges.\n\n## Can I get a glow?\n\nSupport may award one for a confirmed bug report. Describe the real problem through **Report a bug**. A reward is granted by staff; it is not automatic for every report.\n\nIf you have an active glow, open **Settings → Username glow**, choose a color, and save it. You can keep an earned Bug finder badge even if the glow is later removed.\n\n## Be a good party member\n\nShare invites thoughtfully, keep chat friendly, and avoid spoiling the location before everyone has guessed. Report content that needs attention instead of starting an argument.\n\n" }, { "slug": "account-bans", diff --git a/tests/player-docs.test.ts b/tests/player-docs.test.ts new file mode 100644 index 0000000..c16f538 --- /dev/null +++ b/tests/player-docs.test.ts @@ -0,0 +1,19 @@ +import assert from "node:assert/strict"; +import { readFile } from "node:fs/promises"; +import test from "node:test"; +import guides from "../shared/player-docs.json"; + +test("moderator application guide matches GitBook and includes both bot routes", async () => { + const guide = guides.find((item) => item.slug === "staff"); + assert.ok(guide); + const gitbook = await readFile("docs/gitbook/staff.md", "utf8"); + assert.equal(guide.markdown.trim(), gitbook.trim()); + assert.match(guide.markdown, /## Apply to be a moderator/); + assert.match(guide.markdown, /send it a direct message/); + assert.match(guide.markdown, /Select \*\*Apply for moderator\*\*/); + assert.match(guide.markdown, /within \*\*30 minutes\*\*/); + assert.match( + guide.markdown, + /\[open @MineGeoModeratorBot\]\(https:\/\/t\.me\/MineGeoModeratorBot\)/, + ); +});