The hall's game cards no longer lift on hover or end in "Play X →" and a domain line, and the first game, the one newcomers are pointed at, takes the whole width with its art beside the words, so five games fill the grid without an orphan; the template renders the hall, the rules and the guide at build time behind a fallback named shell.html, and its deploy renders the Caddy site file from the template each time; the family list carries Wyrm and Dip's larger maps; the tally heading and the hosting line are said plainly; and the writing checklist names one sentence shape for a whole list as a tell
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0141G6xqLeNRYEtviLWSB5Up
This commit is contained in:
1 parent
40a52dfe37
commit
647e8cb2bf
12 files changed
+55
-49
No files matched your search
+19
-41
@@ -4,7 +4,7 @@
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Kestrel's Hall</title>
|
||||
<meta name="description" content="Free board games in the browser: Wiz-War, Waving Hands, Hnefatafl, and Dip. Play with friends by link or alone against the house. No accounts, no adverts, nothing sold.">
|
||||
<meta name="description" content="Free board games in the browser: Wiz-War, Waving Hands, Hnefatafl, Dip and Wyrm. Play with friends by link or alone against the house. No accounts, no adverts, nothing sold.">
|
||||
<link rel="canonical" href="https://gamehall.kestrelsnest.social/">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:title" content="Kestrel's Hall">
|
||||
@@ -58,18 +58,22 @@
|
||||
header.mast p.newcomer { margin: 10px auto 0; max-width: 38em; font-size: 0.95rem; color: var(--bone-dim); }
|
||||
|
||||
.games { display: grid; gap: 22px; grid-template-columns: repeat(2, 1fr); margin-top: 22px; }
|
||||
@media (max-width: 860px) { .games { grid-template-columns: 1fr; max-width: 520px; margin-left: auto; margin-right: auto; } }
|
||||
.game {
|
||||
display: flex; flex-direction: column;
|
||||
background: var(--panel);
|
||||
border: 1px solid var(--line);
|
||||
border-radius: 12px;
|
||||
border-radius: 6px;
|
||||
overflow: hidden;
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
transition: transform .15s ease, border-color .15s ease;
|
||||
}
|
||||
.game:hover { transform: translateY(-3px); border-color: var(--gold); text-decoration: none; }
|
||||
.game:hover { border-color: var(--gold); text-decoration: none; }
|
||||
.game:hover h2 { color: var(--gold); }
|
||||
/* The first game is the one newcomers are pointed at, so it has the whole width: art beside the words. */
|
||||
.game.first { grid-column: 1 / -1; flex-direction: row; }
|
||||
.game.first .art { flex: 0 0 55%; aspect-ratio: 2 / 1; }
|
||||
.game.first .body { justify-content: center; padding: 22px 26px; }
|
||||
.game.first h2 { font-size: 1.9rem; }
|
||||
.game .art { position: relative; aspect-ratio: 5 / 3; background: #222; overflow: hidden; }
|
||||
.game .art img.fill { width: 100%; height: 100%; object-fit: cover; display: block; }
|
||||
.game .art img.tafl { object-position: 50% 50%; }
|
||||
@@ -77,13 +81,15 @@
|
||||
.game .body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
|
||||
.game h2 { margin: 0; font-size: 1.45rem; font-weight: 500; }
|
||||
.game .pitch { margin: 0; color: var(--bone); }
|
||||
.game .players, .game .length { margin: 0; color: var(--bone-dim); font-size: 0.92rem; }
|
||||
.game .players { margin: 0; color: var(--bone-dim); font-size: 0.92rem; }
|
||||
.game .origin { margin: 0; color: var(--bone-dim); font-size: 0.85rem; }
|
||||
.game .length:empty { display: none; }
|
||||
.game .go { margin-top: auto; padding-top: 10px; display: flex; flex-direction: column; gap: 2px; }
|
||||
.game .play { color: var(--gold); font-size: 1rem; }
|
||||
.game .site { color: var(--bone-dim); font-size: 0.85rem; }
|
||||
.game:hover .play { text-decoration: underline; }
|
||||
@media (max-width: 860px) {
|
||||
.games { grid-template-columns: 1fr; max-width: 520px; margin-left: auto; margin-right: auto; }
|
||||
.game.first { flex-direction: column; }
|
||||
.game.first .art { flex: none; aspect-ratio: 5 / 3; }
|
||||
.game.first .body { padding: 16px 18px 18px; }
|
||||
.game.first h2 { font-size: 1.45rem; }
|
||||
}
|
||||
.nowrap { white-space: nowrap; }
|
||||
|
||||
/* The maze card: a stone floor in CSS, mortar-coloured walls, and the hall's own token drawings. */
|
||||
@@ -128,14 +134,11 @@
|
||||
<header class="mast">
|
||||
<h1>Kestrel's Hall</h1>
|
||||
<p class="lede"><b>Free board games in the browser.</b> Play alone against the house right away, or start a table and send friends the link. No accounts, no adverts, no timers, and nothing sold.</p>
|
||||
<!-- A word for newcomers, one line to tune or remove. -->
|
||||
<p class="newcomer">New here? Wiz-War is the friendliest place to start, and a game can be over in minutes. Dip is the long game.</p>
|
||||
</header>
|
||||
|
||||
<div class="games">
|
||||
<!-- Each card's empty "length" line is for a typical game's length, once real play has shown it; it is hidden until filled. -->
|
||||
|
||||
<a class="game" href="https://wizwar.kestrelsnest.social">
|
||||
<a class="game first" href="https://wizwar.kestrelsnest.social">
|
||||
<div class="art">
|
||||
<div class="maze">
|
||||
<div class="w h" style="left:12.5%;top:19%;width:25%"></div>
|
||||
@@ -159,11 +162,6 @@
|
||||
<p class="pitch">Steal treasure. Blast through walls. Outwit your friends.</p>
|
||||
<p class="players">2 to 6 players, or solo against the automaton</p>
|
||||
<p class="origin">An unofficial rebuild of Tom Jolly's 1993 board game</p>
|
||||
<p class="length"></p>
|
||||
<div class="go">
|
||||
<span class="play">Play Wiz-War →</span>
|
||||
<span class="site">wizwar.kestrelsnest.social</span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
@@ -174,11 +172,6 @@
|
||||
<p class="pitch">Wizards duel with their hands, and the right run of gestures is a spell.</p>
|
||||
<p class="players">2 to 12 players, or solo against a rival wizard</p>
|
||||
<p class="origin">Richard Bartle's pencil-and-paper duel, 1977</p>
|
||||
<p class="length"></p>
|
||||
<div class="go">
|
||||
<span class="play">Play Waving Hands →</span>
|
||||
<span class="site">hands.kestrelsnest.social</span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
@@ -189,11 +182,6 @@
|
||||
<p class="pitch">The Viking board game of a king breaking for safety and a ring of attackers closing in.</p>
|
||||
<p class="players">2 players, or solo against the housecarl</p>
|
||||
<p class="origin">The Norse tafl game, by the Copenhagen rules or Linnaeus's 1732 Tablut</p>
|
||||
<p class="length"></p>
|
||||
<div class="go">
|
||||
<span class="play">Play Hnefatafl →</span>
|
||||
<span class="site">tafl.kestrelsnest.social</span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
@@ -204,11 +192,6 @@
|
||||
<p class="pitch">Seven powers share one map, and none of them has to keep its word. Other maps seat five or ten.</p>
|
||||
<p class="players">2 to 10 players, depending on the map, or solo against the house's envoys</p>
|
||||
<p class="origin">An unofficial rebuild of Allan B. Calhamer's 1959 Diplomacy</p>
|
||||
<p class="length"></p>
|
||||
<div class="go">
|
||||
<span class="play">Play Dip →</span>
|
||||
<span class="site">dip.kestrelsnest.social</span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
@@ -219,11 +202,6 @@
|
||||
<p class="pitch">Chess on three boards, with a Dragon in the air above your King and a Basilisk in the earth below.</p>
|
||||
<p class="players">2 players, or solo against the drake</p>
|
||||
<p class="origin">An unofficial rebuild of Gary Gygax's 1985 Dragonchess, from Dragon Magazine No. 100</p>
|
||||
<p class="length"></p>
|
||||
<div class="go">
|
||||
<span class="play">Play Wyrm →</span>
|
||||
<span class="site">wyrm.kestrelsnest.social</span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
@@ -250,7 +228,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<h2 style="margin-top:28px">The hosting</h2>
|
||||
<p>The games are free and will stay free. They run on small servers that cost a few dollars a month, and anyone who wants to chip in toward the hosting can do so at <a class="nowrap" href="https://ko-fi.com/kestrelsnest">ko-fi.com/kestrelsnest</a>. Chipping in unlocks nothing, and nothing is held back without it.</p>
|
||||
<p>The games are free and will stay free. They run on small servers that cost a few dollars a month, and anyone who wants to chip in toward the hosting can do so at <a class="nowrap" href="https://ko-fi.com/kestrelsnest">ko-fi.com/kestrelsnest</a>. Chipping in unlocks nothing, and the games are the same for everyone.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
Reference in new issue
Block a user