Add PageFrame, PrimaryButton, and shared layout for non-title pages

- PageFrame: parchment-background frame with title, diamond-rule divider,
  scrollable content area, and optional bottom-pinned footer slot
- PrimaryButton: shared full-width button (light blue, drop shadow, pressed
  state via translateY + shadow reduction) — used by TitleScreen and PlayerSetup
- Global button base in index.css ensures touch-friendly sizing everywhere
- TitleScreen consolidated to use PrimaryButton instead of its own button style

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-26 20:28:49 -05:00
parent 3c9c101829
commit b3e7df9ba8
10 changed files with 121 additions and 24 deletions
+4 -3
View File
@@ -1,3 +1,5 @@
import PageFrame from '../components/PageFrame'
interface Props {
onScoreRound: () => void
onNewGame: () => void
@@ -5,10 +7,9 @@ interface Props {
export default function ScoreSheet({ onScoreRound, onNewGame }: Props) {
return (
<div>
<h1>Score Sheet</h1>
<PageFrame title="Score Sheet">
<button onClick={onScoreRound}>Score Round</button>
<button onClick={onNewGame} style={{ fontSize: '0.75em' }}>New Game</button>
</div>
</PageFrame>
)
}