a new start
This commit is contained in:
98
lib/banner.js
Normal file
98
lib/banner.js
Normal file
@@ -0,0 +1,98 @@
|
||||
const chalk = require('chalk');
|
||||
const gradient = require('gradient-string');
|
||||
const figlet = require('figlet');
|
||||
|
||||
// Theme colors
|
||||
const purpleGold = gradient(['#DA22FF', '#9733EE', '#FFD700']);
|
||||
const pinkPurple = gradient(['#FF1493', '#DA22FF', '#9733EE']);
|
||||
const goldPink = gradient(['#FFD700', '#FF69B4', '#FF1493']);
|
||||
|
||||
// Awesome ASCII logo inspired by the official logo
|
||||
const awesomeLogo = `
|
||||
▄████████ ▄█ █▄ ▄████████ ▄████████ ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████
|
||||
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███
|
||||
███ ███ ███ ███ ███ █▀ ███ █▀ ███ ███ ███ ███ ███ ███ █▀
|
||||
███ ███ ███ ███ ▄███▄▄▄ ███ ███ ███ ███ ███ ███ ▄███▄▄▄
|
||||
▀███████████ ███ ███ ▀▀███▀▀▀ ▀███████████ ███ ███ ███ ███ ███ ▀▀███▀▀▀
|
||||
███ ███ ███ ███ ███ █▄ ███ ███ ███ ███ ███ ███ ███ █▄
|
||||
███ ███ ███ ▄█▄ ███ ███ ███ ▄█ ███ ███ ███ ███ ███ ███ ███ ███
|
||||
███ █▀ ▀███▀███▀ ██████████ ▄████████▀ ▀██████▀ ▀█ ███ █▀ ██████████
|
||||
`;
|
||||
|
||||
// Simplified awesome logo for smaller terminals
|
||||
const simpleAwesomeLogo = `
|
||||
╔═╗╦ ╦╔═╗╔═╗╔═╗╔╦╗╔═╗
|
||||
╠═╣║║║║╣ ╚═╗║ ║║║║║╣
|
||||
╩ ╩╚╩╝╚═╝╚═╝╚═╝╩ ╩╚═╝
|
||||
`;
|
||||
|
||||
// Display the banner
|
||||
function showBanner(simple = false) {
|
||||
console.clear();
|
||||
|
||||
if (simple) {
|
||||
console.log(purpleGold(simpleAwesomeLogo));
|
||||
} else {
|
||||
console.log(purpleGold(awesomeLogo));
|
||||
}
|
||||
|
||||
console.log(pinkPurple(' A curated list explorer for the curious mind\n'));
|
||||
console.log(chalk.gray(' ━'.repeat(40)));
|
||||
console.log();
|
||||
}
|
||||
|
||||
// Show a figlet banner with custom text
|
||||
function showFigletBanner(text, font = 'Standard') {
|
||||
return new Promise((resolve, reject) => {
|
||||
figlet.text(text, { font }, (err, data) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
console.log(purpleGold(data));
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Display section header
|
||||
function sectionHeader(title, icon = '') {
|
||||
console.log();
|
||||
console.log(purpleGold(`${icon} ${title} ${icon}`));
|
||||
console.log(chalk.gray('━'.repeat(title.length + (icon ? 6 : 2))));
|
||||
console.log();
|
||||
}
|
||||
|
||||
// Display animated loading banner
|
||||
async function showLoadingBanner(message = 'Loading...') {
|
||||
console.log();
|
||||
console.log(goldPink(` ✨ ${message} ✨`));
|
||||
console.log();
|
||||
}
|
||||
|
||||
// Display success banner
|
||||
function showSuccessBanner(message) {
|
||||
console.log();
|
||||
console.log(chalk.green(` ✓ ${message}`));
|
||||
console.log();
|
||||
}
|
||||
|
||||
// Display error banner
|
||||
function showErrorBanner(message) {
|
||||
console.log();
|
||||
console.log(chalk.red(` ✗ ${message}`));
|
||||
console.log();
|
||||
}
|
||||
|
||||
// Export functions and colors
|
||||
module.exports = {
|
||||
showBanner,
|
||||
showFigletBanner,
|
||||
sectionHeader,
|
||||
showLoadingBanner,
|
||||
showSuccessBanner,
|
||||
showErrorBanner,
|
||||
purpleGold,
|
||||
pinkPurple,
|
||||
goldPink
|
||||
};
|
||||
Reference in New Issue
Block a user