chore(history): squash 16 commit(s) from 2026-09-26
- chore(backend): sync Cargo.lock with gateway dev-dependency - feat(frontend): ClickGui replica matching the in-game GUI — category panels, Modules/Settings switch, theme cards - feat(frontend): floating glass top bar in the mod's UI language - fix(frontend): soft night backdrop for the ClickGui, editor that fits one screen - chore(frontend): replace em dashes in UI copy with lighter separators - refactor(frontend): split landing sections and theme editor into subfolders (4-files-per-folder rule) - feat(frontend): login and registration in the mod's glass panel style - feat(frontend): link the game with a device code - feat(frontend): account page with avatar upload and linked games - feat(frontend): my configs with share codes and publishing - feat(frontend): public showcase listing and detail pages - chore(frontend): drop em dashes from visible copy - feat(frontend): atmospheric backdrop, glass download block and ClickGui-style FAQ on the landing - feat(frontend): Konami code, DevTools console greeting and ASCII 404 block - feat: public player profiles at /u/:id and author link in the showcase - fix(frontend): stop the theme editor overflowing horizontally at 375px
This commit is contained in:
parent
7f4b532f99
commit
ff2edc8eb6
116 changed files with 3534 additions and 1020 deletions
35
frontend/src/pages/app/LinkPage.tsx
Normal file
35
frontend/src/pages/app/LinkPage.tsx
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
import { useTranslation } from 'react-i18next'
|
||||
import { LinkDeviceForm } from '../../features/device-link/LinkDeviceForm'
|
||||
|
||||
const STEPS = ['one', 'two', 'three'] as const
|
||||
|
||||
export default function LinkPage() {
|
||||
const { t } = useTranslation('deviceLink')
|
||||
return (
|
||||
<section className="flex flex-col gap-8 py-12">
|
||||
<div>
|
||||
<h1 className="text-3xl">{t('page.title')}</h1>
|
||||
<p className="mt-2 max-w-sm text-frost">{t('page.lead')}</p>
|
||||
</div>
|
||||
|
||||
<ol className="flex flex-col gap-3 sm:flex-row sm:gap-4">
|
||||
{STEPS.map((step, i) => (
|
||||
<li
|
||||
key={step}
|
||||
className="flex flex-1 items-start gap-3 rounded-(--radius-panel) border border-shoal bg-slate/60 px-4 py-3"
|
||||
>
|
||||
<span
|
||||
aria-hidden="true"
|
||||
className="flex h-6 w-6 flex-none items-center justify-center rounded-full bg-ice font-code text-sm font-bold text-abyss"
|
||||
>
|
||||
{i + 1}
|
||||
</span>
|
||||
<p className="text-sm text-frost">{t(`steps.${step}`)}</p>
|
||||
</li>
|
||||
))}
|
||||
</ol>
|
||||
|
||||
<LinkDeviceForm />
|
||||
</section>
|
||||
)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue