Simplify the import dialog copy; spell it "color"
- The save-import dialog body is now just "N seen · N caught in this save." — the button labels carry the merge/replace meaning. - "colour" → "color" throughout (the visible "Accent color" field, plus comments and README for consistency). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017Ve7HLspzeG2xDPtJQ8vmu
This commit is contained in:
parent
840031c48a
commit
d275117569
@ -92,19 +92,19 @@ Working app with a type-themed UI:
|
|||||||
snapshot; a pill switcher on the detail page rebuilds types / stats /
|
snapshot; a pill switcher on the detail page rebuilds types / stats /
|
||||||
matchups / abilities / learnset / artwork for the chosen form. Purely
|
matchups / abilities / learnset / artwork for the chosen form. Purely
|
||||||
cosmetic variants (Unown's 27 letters, Vivillon's 19 patterns, Furfrou
|
cosmetic variants (Unown's 27 letters, Vivillon's 19 patterns, Furfrou
|
||||||
trims, seasonal Deerling/Sawsbuck, Flabébé line colours, Alcremie's 62
|
trims, seasonal Deerling/Sawsbuck, Flabébé line colors, Alcremie's 62
|
||||||
decorations, Pikachu caps — 278 across 50 species) get a separate compact
|
decorations, Pikachu caps — 278 across 50 species) get a separate compact
|
||||||
"Appearance" dropdown that only swaps the sprite. Cards show a "+N forms"
|
"Appearance" dropdown that only swaps the sprite. Cards show a "+N forms"
|
||||||
badge.
|
badge.
|
||||||
- **Detail** — type-gradient hero + tabbed sheet (About / Stats / Evolution /
|
- **Detail** — type-gradient hero + tabbed sheet (About / Stats / Evolution /
|
||||||
Moves / Locations); coloured animated stat bars; defensive type matchups;
|
Moves / Locations); colored animated stat bars; defensive type matchups;
|
||||||
evolution chain re-parented to the selected game's generation; learnset with
|
evolution chain re-parented to the selected game's generation; learnset with
|
||||||
per-move power/type/accuracy/PP/effect (era-accurate via `past_values`,
|
per-move power/type/accuracy/PP/effect (era-accurate via `past_values`,
|
||||||
incl. pre-Gen-4 physical/special-by-type), the TM/HM group ordered by
|
incl. pre-Gen-4 physical/special-by-type), the TM/HM group ordered by
|
||||||
TM number for the selected game; wild encounter locations.
|
TM number for the selected game; wild encounter locations.
|
||||||
- **Game-aware** — abilities gated to Gen 3+ (hidden to Gen 5+); type chart
|
- **Game-aware** — abilities gated to Gen 3+ (hidden to Gen 5+); type chart
|
||||||
applies Gen 1 / pre-Gen 6 rules.
|
applies Gen 1 / pre-Gen 6 rules.
|
||||||
- **Games** — overlay picker with stylised version-colour cover tiles,
|
- **Games** — overlay picker with stylised version-color cover tiles,
|
||||||
sub-dex switch, and an "All games" (National, no gen limits) option.
|
sub-dex switch, and an "All games" (National, no gen limits) option.
|
||||||
- **Search** — tabbed lookup: Pokémon, Moves, Items and Abilities, all
|
- **Search** — tabbed lookup: Pokémon, Moves, Items and Abilities, all
|
||||||
browsable offline from the snapshot. Moves filter by type / damage class
|
browsable offline from the snapshot. Moves filter by type / damage class
|
||||||
@ -133,7 +133,7 @@ Working app with a type-themed UI:
|
|||||||
chart (tap a type for its offensive + defensive breakdown; both
|
chart (tap a type for its offensive + defensive breakdown; both
|
||||||
gen-aware).
|
gen-aware).
|
||||||
- **Settings** — theme (System / Light / Dark / Black / Sepia) + accent
|
- **Settings** — theme (System / Light / Dark / Black / Sepia) + accent
|
||||||
colour, text size, an in-app reduce-motion override (on top of the OS
|
color, text size, an in-app reduce-motion override (on top of the OS
|
||||||
preference, which is always respected too), sprite style, haptic
|
preference, which is always respected too), sprite style, haptic
|
||||||
feedback on catch (Vibration API), which screen to land on at launch,
|
feedback on catch (Vibration API), which screen to land on at launch,
|
||||||
JSON export/import.
|
JSON export/import.
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import { prettify } from '../data/pokedex-resolver.js';
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* One Pokémon in the dex feed. Tinted by its primary type: a soft top-down
|
* One Pokémon in the dex feed. Tinted by its primary type: a soft top-down
|
||||||
* gradient, a type-coloured spotlight behind an oversized sprite that lifts
|
* gradient, a type-colored spotlight behind an oversized sprite that lifts
|
||||||
* above the card, a number chip, and a big ghost number in the corner.
|
* above the card, a number chip, and a big ghost number in the corner.
|
||||||
*/
|
*/
|
||||||
export function Card(species, number, { spriteStyle = 'official', versionGroup, gen = 9, boxed = false, metric = null } = {}) {
|
export function Card(species, number, { spriteStyle = 'official', versionGroup, gen = 9, boxed = false, metric = null } = {}) {
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Signature colours for each game, used to render a stylised "cover" tile in
|
* Signature colors for each game, used to render a stylised "cover" tile in
|
||||||
* the game picker (real box art is Nintendo's and not in the API). Two
|
* the game picker (real box art is Nintendo's and not in the API). Two
|
||||||
* colours = the paired versions; games without a listed entry fall back to
|
* colors = the paired versions; games without a listed entry fall back to
|
||||||
* a per-generation hue.
|
* a per-generation hue.
|
||||||
*/
|
*/
|
||||||
const GAME = {
|
const GAME = {
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
// Resolve a Pokémon type to its hex colour by reading the --type-* CSS
|
// Resolve a Pokémon type to its hex color by reading the --type-* CSS
|
||||||
// custom properties once and memoising. Type colours don't change between
|
// custom properties once and memoising. Type colors do not change between
|
||||||
// light and dark, so the cache is safe for the session.
|
// light and dark, so the cache is safe for the session.
|
||||||
const TYPES = [
|
const TYPES = [
|
||||||
'normal', 'fire', 'water', 'electric', 'grass', 'ice', 'fighting', 'poison',
|
'normal', 'fire', 'water', 'electric', 'grass', 'ice', 'fighting', 'poison',
|
||||||
|
|||||||
@ -647,7 +647,7 @@
|
|||||||
text-transform: capitalize;
|
text-transform: capitalize;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Cover tiles: a clean split of the two version colours, no gloss. */
|
/* Cover tiles: a clean split of the two version colors, no gloss. */
|
||||||
.gamecard--cover {
|
.gamecard--cover {
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|||||||
@ -51,7 +51,7 @@ export async function SettingsView() {
|
|||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
const accentField = el('div', { class: 'field' }, el('span', {}, 'Accent colour'), accentRow);
|
const accentField = el('div', { class: 'field' }, el('span', {}, 'Accent color'), accentRow);
|
||||||
|
|
||||||
const fontSizeField = selectField('Text size', st.fontScale || 'default', [
|
const fontSizeField = selectField('Text size', st.fontScale || 'default', [
|
||||||
['small', 'Small'],
|
['small', 'Small'],
|
||||||
@ -145,9 +145,7 @@ export async function SettingsView() {
|
|||||||
const who = dex.trainer || dex.game;
|
const who = dex.trainer || dex.game;
|
||||||
const choice = await chooseDialog({
|
const choice = await chooseDialog({
|
||||||
title: `${dex.game}${dex.trainer ? ` · ${dex.trainer}` : ''}`,
|
title: `${dex.game}${dex.trainer ? ` · ${dex.trainer}` : ''}`,
|
||||||
body: `${dex.seen.length} seen · ${dex.caught.length} caught in this save (${dex.caught.length} of ${
|
body: `${dex.seen.length} seen · ${dex.caught.length} caught in this save.`,
|
||||||
[151, 251, 386][dex.gen - 1]
|
|
||||||
} for the game). Your caught record is shared across every game — imported species also count toward the National Dex and any other game they appear in.`,
|
|
||||||
choices: [
|
choices: [
|
||||||
{ key: 'merge', label: 'Add to my Pokédex' },
|
{ key: 'merge', label: 'Add to my Pokédex' },
|
||||||
{ key: 'replace', label: 'Replace mine with this', class: 'button--danger' },
|
{ key: 'replace', label: 'Replace mine with this', class: 'button--danger' },
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user