Finish the redesign's edges: auth page, modals, dead code, docs
The sign-in page becomes a plain centred column with the brand mark and a segmented login/register switch, modals lose their last inner boxes, the red-days list collapses every year but the current one, and the retired components' CSS, an unused list component and 23 unreferenced translation keys are removed. ARCHITECTURE.md documents the Almanacka styling conventions and the per-year balance rule. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XBRLomdLK9jF7wU7a8AA6H
This commit is contained in:
@@ -3,6 +3,7 @@ import { useNavigate } from 'react-router-dom'
|
||||
import { useAuth } from '@/context/AuthContext'
|
||||
import { useWorkspace } from '@/context/WorkspaceContext'
|
||||
import { useTranslation } from '@/i18n'
|
||||
import { LanguageToggle } from '@/components/layout/LanguageToggle'
|
||||
import './auth.css'
|
||||
|
||||
export function Auth() {
|
||||
@@ -48,12 +49,16 @@ export function Auth() {
|
||||
|
||||
return (
|
||||
<main className="auth-page">
|
||||
<div className="auth-page__card card">
|
||||
<p className="eyebrow auth-page__brand">{t('app.name')}</p>
|
||||
<div className="auth-page__tabs">
|
||||
<div className="auth-page__lang">
|
||||
<LanguageToggle />
|
||||
</div>
|
||||
<div className="auth-page__column">
|
||||
<img className="auth-page__mark" src="/img/icon-64.png" alt="" width={32} height={32} />
|
||||
<h1 className="auth-page__title">{isRegister ? t('auth.createAccountTitle') : t('auth.loginTitle')}</h1>
|
||||
<div className="segmented auth-page__tabs" role="group">
|
||||
<button
|
||||
type="button"
|
||||
className="btn btn--ghost auth-page__tab"
|
||||
className="segmented__option auth-page__tab"
|
||||
aria-pressed={!isRegister}
|
||||
onClick={() => switchTab(false)}
|
||||
data-testid="auth-tab-login"
|
||||
@@ -62,7 +67,7 @@ export function Auth() {
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className="btn btn--ghost auth-page__tab"
|
||||
className="segmented__option auth-page__tab"
|
||||
aria-pressed={isRegister}
|
||||
onClick={() => switchTab(true)}
|
||||
data-testid="auth-tab-register"
|
||||
@@ -70,7 +75,6 @@ export function Auth() {
|
||||
{t('auth.createAccountButton')}
|
||||
</button>
|
||||
</div>
|
||||
<h1 className="auth-page__title">{isRegister ? t('auth.createAccountTitle') : t('auth.loginTitle')}</h1>
|
||||
<form className="auth-page__form" onSubmit={(e) => void handleSubmit(e)}>
|
||||
{isRegister && (
|
||||
<div className="field">
|
||||
@@ -115,7 +119,7 @@ export function Auth() {
|
||||
/>
|
||||
</div>
|
||||
{error && (
|
||||
<p role="alert" className="alert alert--error">
|
||||
<p role="alert" className="auth-page__error">
|
||||
{error}
|
||||
</p>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user