feat(landing): rework — es default, 2-step join, roster + account polish
- Default language Spanish at root /, English moves to /en/ (eu unchanged):
getStaticPaths {lang:undefined}->es + LANG_*_PATH maps swapped in ui.ts.
- Section order: hero -> join -> status -> members -> mods -> features.
- Join flow 3 -> 2 steps (drop the Connect/IP step; launcher handles the
address). Remove the hero IP CopyChip. Header CTA renamed Play/Jugar/Jolastu
and gains Register + Login links on all four pages.
- Account page: hide the whole login block once authenticated (not just the
form), add an avatar Refresh button (cache-busted NMSR re-fetch), flatten the
avatar (no bevel). New i18n key account.refresh.
- Register page: new REGISTRATION_SHOW_INVITE env (default false/hidden) toggles
the invite-code field independently of the REGISTRATION_MODE backend gate.
- Members roster: drop the `admin` account, render full-body via a new
ROSTER_AVATAR_MODE (default fullbodyiso); portrait tiles.
- Style: flatten emboss on feature icons (.picon) + player tiles (.roster-tile).
PixelIcon gains optional image support (/icons/<name>.png|svg).
- Favicon now /favicon.png (committed) on all pages.
- Docs: plan/09-landing.md Assets section (logo/favicon/features-icons drop
points) + default-language note; .env.example documents the two new vars.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
21
.env.example
21
.env.example
@@ -7,18 +7,29 @@ BASE_DOMAIN=ulicraft.net
|
||||
|
||||
RCON_PASSWORD=change-me-to-something-random
|
||||
|
||||
# Registration mode for self-hosted accounts (Drasl) + landing register form.
|
||||
# Registration mode (BACKEND gate) for self-hosted accounts (Drasl).
|
||||
# invite = closed; guests need an admin-minted invite code (recommended on a
|
||||
# public, internet-present host). Admin mints via POST /drasl/api/v2/invites.
|
||||
# open = anyone can self-register with username+password (set [RateLimit]!).
|
||||
# Consumed by BOTH render-config.sh (-> Drasl RegistrationNewPlayer.RequireInvite)
|
||||
# and the landing build (-> show/hide the invite-code field). Default: invite.
|
||||
# Consumed by render-config.sh (-> Drasl RegistrationNewPlayer.RequireInvite).
|
||||
# Default: invite. NOTE: this no longer controls the landing invite FIELD — that's
|
||||
# REGISTRATION_SHOW_INVITE below.
|
||||
REGISTRATION_MODE=invite
|
||||
|
||||
# NMSR avatar render mode for the landing's avatar tiles (online players +
|
||||
# Members roster). Read by the landing BUILD (data/site.ts) only. Avatar URL =
|
||||
# Show the invite-code FIELD on the landing register form. Read by the landing
|
||||
# BUILD (data/site.ts) only; default false (hidden). Independent of the backend
|
||||
# gate above. CAVEAT: if REGISTRATION_MODE=invite (Drasl requires a code) but this
|
||||
# is false, public self-registration can't supply one — enable both together, or
|
||||
# mint accounts admin-side. true | false.
|
||||
REGISTRATION_SHOW_INVITE=false
|
||||
|
||||
# NMSR avatar render mode for the landing's avatar tiles. Read by the landing
|
||||
# BUILD (data/site.ts) only. Avatar URL =
|
||||
# https://avatar.${BASE_DOMAIN}/<mode>/<uuid>?size=N. e.g. headiso | head | fullbody.
|
||||
# AVATAR_MODE → ServerCard online row + account preview (heads)
|
||||
# ROSTER_AVATAR_MODE → Members grid (full body; default fullbodyiso)
|
||||
AVATAR_MODE=headiso
|
||||
ROSTER_AVATAR_MODE=fullbodyiso
|
||||
|
||||
# Drasl admin creds for the registered-players roster (/api/mcstatus/players).
|
||||
# Consumed ONLY by the mc-status container (server-side login → sanitized
|
||||
|
||||
Reference in New Issue
Block a user