+:root {
+ --word-tile-size: 32px;
+ --word-tile-gap: 2px;
+}
+
.game-info {
margin-bottom: 1em;
}
font-size: 1em;
}
+.player-words-row {
+ display: flex;
+ flex-wrap: wrap;
+ row-gap: 2px;
+ column-gap: calc(var(--word-tile-size) + var(--word-tile-gap));
+}
+
.word-display {
display: inline-flex;
- gap: 2px;
- margin: 2px 4px 2px 0;
+ gap: var(--word-tile-gap);
cursor: default;
}
}
.word-display .tile {
- width: 32px;
- height: 32px;
+ width: var(--word-tile-size);
+ height: var(--word-tile-size);
font-size: 16px;
cursor: inherit;
}
{pw.words.length === 0 ? (
<span className="status">No words yet</span>
) : (
- pw.words.map(w => (
- <WordDisplay key={w.id}
- word={w}
- stealable={claim_active}
- onSteal={claim_active
- ? () => this.steal_word(sid, w) : null}
- />
- ))
+ <div className="player-words-row">
+ {pw.words.map(w =>
+ <WordDisplay key={w.id}
+ word={w}
+ stealable={claim_active}
+ onSteal={claim_active
+ ? () => this.steal_word(sid, w) : null}
+ />
+ )}
+ </div>
)}
</div>
);
{sorted.map(entry => (
<div key={entry.name + "-words"} className="player-word-section">
<h3>{entry.name}</h3>
- {entry.words.map((w, i) => (
- <span key={i} className="word-display">
- {w.split("").map((ch, j) => (
- <Tile key={j} letter={ch} />
- ))}
- </span>
- ))}
+ <div className="player-words-row">
+ {entry.words.map((w, i) =>
+ <span key={i} className="word-display">
+ {w.split("").map((ch, j) => (
+ <Tile key={j} letter={ch} />
+ ))}
+ </span>
+ )}
+ </div>
</div>
))}
</div>