Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -45,7 +45,7 @@
|
|||||||
//! progress-bar caption, palette label, eight palette swatches,
|
//! progress-bar caption, palette label, eight palette swatches,
|
||||||
//! version line).
|
//! version line).
|
||||||
//!
|
//!
|
||||||
//! The trailing "▌ ready_" cursor pulse layers on top of the fade
|
//! The trailing "| ready_" cursor pulse layers on top of the fade
|
||||||
//! by carrying both [`SplashFadableBg`] and [`SplashCursorPulse`]:
|
//! by carrying both [`SplashFadableBg`] and [`SplashCursorPulse`]:
|
||||||
//! [`pulse_splash_cursor`] runs after [`advance_splash`] in the
|
//! [`pulse_splash_cursor`] runs after [`advance_splash`] in the
|
||||||
//! schedule chain and overwrites the cursor's `BackgroundColor`
|
//! schedule chain and overwrites the cursor's `BackgroundColor`
|
||||||
@@ -109,7 +109,7 @@ impl Plugin for SplashPlugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Period of the trailing "▌ ready_" pulse cursor, in seconds. ~1 s
|
/// Period of the trailing "| ready_" pulse cursor, in seconds. ~1 s
|
||||||
/// reads as a comfortable terminal-blink cadence — much faster reads
|
/// reads as a comfortable terminal-blink cadence — much faster reads
|
||||||
/// as urgent (alarming on a hold-and-fade screen), much slower reads
|
/// as urgent (alarming on a hold-and-fade screen), much slower reads
|
||||||
/// as listless. Held as a `const` rather than a token because it's
|
/// as listless. Held as a `const` rather than a token because it's
|
||||||
@@ -157,7 +157,7 @@ struct SplashFadableBg {
|
|||||||
base_color: Color,
|
base_color: Color,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Marks the trailing pulse cursor on the "▌ ready_" line. Carries
|
/// Marks the trailing pulse cursor on the "| ready_" line. Carries
|
||||||
/// `SplashFadableBg` too so it picks up the global fade-in / hold /
|
/// `SplashFadableBg` too so it picks up the global fade-in / hold /
|
||||||
/// fade-out timeline; [`pulse_splash_cursor`] runs *after*
|
/// fade-out timeline; [`pulse_splash_cursor`] runs *after*
|
||||||
/// [`advance_splash`] in the chain and overwrites the
|
/// [`advance_splash`] in the chain and overwrites the
|
||||||
@@ -377,7 +377,7 @@ fn spawn_header_section(parent: &mut ChildSpawnerCommands, font_handle: &Handle<
|
|||||||
.with_children(|hdr| {
|
.with_children(|hdr| {
|
||||||
hdr.spawn((
|
hdr.spawn((
|
||||||
SplashFadable { base_color: ACCENT_PRIMARY },
|
SplashFadable { base_color: ACCENT_PRIMARY },
|
||||||
Text::new("\u{258C}"), // ▌ — the Terminal cursor block.
|
Text::new("|"), // ASCII terminal cursor.
|
||||||
cursor_font,
|
cursor_font,
|
||||||
TextColor(transparent(ACCENT_PRIMARY)),
|
TextColor(transparent(ACCENT_PRIMARY)),
|
||||||
));
|
));
|
||||||
@@ -431,7 +431,7 @@ fn spawn_centre_section(parent: &mut ChildSpawnerCommands, font_handle: &Handle<
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Boot-log column: three lime check rows + a "▌ ready_" line. Content
|
/// Boot-log column: three lime check rows + a "| ready_" line. Content
|
||||||
/// is fixture text, not driven from real bootstrap state — the splash
|
/// is fixture text, not driven from real bootstrap state — the splash
|
||||||
/// is a brand beat, not a real loader. Capped at 480 px width on
|
/// is a brand beat, not a real loader. Capped at 480 px width on
|
||||||
/// desktop (the design-system spec calls 70 % of mobile viewport,
|
/// desktop (the design-system spec calls 70 % of mobile viewport,
|
||||||
@@ -483,8 +483,8 @@ fn spawn_check_row(parent: &mut ChildSpawnerCommands, line_font: &TextFont, labe
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// "▌ ready_" line — visual signature of "boot complete, awaiting
|
/// "| ready_" line — visual signature of "boot complete, awaiting
|
||||||
/// input". The leading `▌` glyph picks up `TEXT_PRIMARY` rather than
|
/// input". The leading `|` glyph picks up `TEXT_PRIMARY` rather than
|
||||||
/// `ACCENT_PRIMARY` so it doesn't compete with the big accent cursor in
|
/// `ACCENT_PRIMARY` so it doesn't compete with the big accent cursor in
|
||||||
/// the header; the *trailing* 6×12 px accent pulse Node ([`SplashCursorPulse`])
|
/// the header; the *trailing* 6×12 px accent pulse Node ([`SplashCursorPulse`])
|
||||||
/// is what carries the "alive, blinking" signal called for by the
|
/// is what carries the "alive, blinking" signal called for by the
|
||||||
@@ -503,12 +503,12 @@ fn spawn_ready_row(parent: &mut ChildSpawnerCommands, line_font: &TextFont) {
|
|||||||
.with_children(|row| {
|
.with_children(|row| {
|
||||||
row.spawn((
|
row.spawn((
|
||||||
SplashFadable { base_color: TEXT_PRIMARY },
|
SplashFadable { base_color: TEXT_PRIMARY },
|
||||||
Text::new("\u{258C} ready_"), // ▌ ready_
|
Text::new("| ready_"), // ASCII ready prompt.
|
||||||
line_font.clone(),
|
line_font.clone(),
|
||||||
TextColor(transparent(TEXT_PRIMARY)),
|
TextColor(transparent(TEXT_PRIMARY)),
|
||||||
));
|
));
|
||||||
// Trailing 6×12 accent pulse cursor. Node-with-explicit-
|
// Trailing 6×12 accent pulse cursor. Node-with-explicit-
|
||||||
// dimensions rather than a `█` text glyph so the size
|
// dimensions rather than a solid-block text glyph so the size
|
||||||
// doesn't drift with the line font; matches the mockup's
|
// doesn't drift with the line font; matches the mockup's
|
||||||
// 6×12 px spec literally. Pulse animation lives in
|
// 6×12 px spec literally. Pulse animation lives in
|
||||||
// `pulse_splash_cursor` for testability.
|
// `pulse_splash_cursor` for testability.
|
||||||
@@ -1166,8 +1166,8 @@ mod tests {
|
|||||||
.map(|t| t.0.clone())
|
.map(|t| t.0.clone())
|
||||||
.collect();
|
.collect();
|
||||||
assert!(
|
assert!(
|
||||||
texts.iter().any(|t| t == "\u{258C}"),
|
texts.iter().any(|t| t == "|"),
|
||||||
"expected the cursor block (▌) on the splash, got: {texts:?}"
|
"expected the ASCII cursor (|) on the splash, got: {texts:?}"
|
||||||
);
|
);
|
||||||
assert!(
|
assert!(
|
||||||
texts.iter().any(|t| t == "Ferrous Solitaire"),
|
texts.iter().any(|t| t == "Ferrous Solitaire"),
|
||||||
|
|||||||
@@ -282,7 +282,7 @@ pub const SCORE_NO_UNDO_BONUS: i32 = 25;
|
|||||||
/// Time bonus ({m:ss}) +{time_bonus}
|
/// Time bonus ({m:ss}) +{time_bonus}
|
||||||
/// No-undo bonus +{no_undo_bonus}
|
/// No-undo bonus +{no_undo_bonus}
|
||||||
/// Mode multiplier ({mode} ×N) ×{multiplier}
|
/// Mode multiplier ({mode} ×N) ×{multiplier}
|
||||||
/// ─────────────────────────────────
|
/// -----------------
|
||||||
/// Total {total}
|
/// Total {total}
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
@@ -1019,11 +1019,11 @@ fn spawn_score_breakdown(
|
|||||||
row_index += 1;
|
row_index += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 5. Separator — em-dashes spanning the visual width.
|
// 5. Separator — ASCII dashes spanning the visual width.
|
||||||
spawn_breakdown_row(
|
spawn_breakdown_row(
|
||||||
card,
|
card,
|
||||||
"─────────────────",
|
"-----------------",
|
||||||
"─────".to_string(),
|
"-----".to_string(),
|
||||||
TEXT_SECONDARY,
|
TEXT_SECONDARY,
|
||||||
anim_speed,
|
anim_speed,
|
||||||
stagger * row_index as f32,
|
stagger * row_index as f32,
|
||||||
|
|||||||
Reference in New Issue
Block a user