feat: refresh CLI output styling and progress
This commit is contained in:
36
src/terminal/theme.ts
Normal file
36
src/terminal/theme.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import chalk from "chalk";
|
||||
|
||||
export const LOBSTER_PALETTE = {
|
||||
accent: "#FF5A2D",
|
||||
accentBright: "#FF7A3D",
|
||||
accentDim: "#D14A22",
|
||||
info: "#FF8A5B",
|
||||
success: "#2FBF71",
|
||||
warn: "#FFB020",
|
||||
error: "#E23D2D",
|
||||
muted: "#8B7F77",
|
||||
} as const;
|
||||
|
||||
const hex = (value: string) => chalk.hex(value);
|
||||
|
||||
export const theme = {
|
||||
accent: hex(LOBSTER_PALETTE.accent),
|
||||
accentBright: hex(LOBSTER_PALETTE.accentBright),
|
||||
accentDim: hex(LOBSTER_PALETTE.accentDim),
|
||||
info: hex(LOBSTER_PALETTE.info),
|
||||
success: hex(LOBSTER_PALETTE.success),
|
||||
warn: hex(LOBSTER_PALETTE.warn),
|
||||
error: hex(LOBSTER_PALETTE.error),
|
||||
muted: hex(LOBSTER_PALETTE.muted),
|
||||
heading: chalk.bold.hex(LOBSTER_PALETTE.accent),
|
||||
command: hex(LOBSTER_PALETTE.accentBright),
|
||||
option: hex(LOBSTER_PALETTE.warn),
|
||||
} as const;
|
||||
|
||||
export const isRich = () => Boolean(process.stdout.isTTY && chalk.level > 0);
|
||||
|
||||
export const colorize = (
|
||||
rich: boolean,
|
||||
color: (value: string) => string,
|
||||
value: string,
|
||||
) => (rich ? color(value) : value);
|
||||
Reference in New Issue
Block a user