Files
kazewp/lib/colors.sh
T

124 lines
2.3 KiB
Bash

#!/bin/bash
# Reset
NC='\033[0m' # No Color
# Regular Colors
BLACK='\033[0;30m'
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
PURPLE='\033[0;35m'
CYAN='\033[0;36m'
WHITE='\033[0;37m'
# Bold Colors
BBLACK='\033[1;30m'
BRED='\033[1;31m'
BGREEN='\033[1;32m'
BYELLOW='\033[1;33m'
BBLUE='\033[1;34m'
BPURPLE='\033[1;35m'
BCYAN='\033[1;36m'
BWHITE='\033[1;37m'
# Underline
UBLACK='\033[4;30m'
URED='\033[4;31m'
UGREEN='\033[4;32m'
UYELLOW='\033[4;33m'
UBLUE='\033[4;34m'
UPURPLE='\033[4;35m'
UCYAN='\033[4;36m'
UWHITE='\033[4;37m'
# Background Colors
BG_BLACK='\033[40m'
BG_RED='\033[41m'
BG_GREEN='\033[42m'
BG_YELLOW='\033[43m'
BG_BLUE='\033[44m'
BG_PURPLE='\033[45m'
BG_CYAN='\033[46m'
BG_WHITE='\033[47m'
# Styling Helper Functions
print_header() {
local text="$1"
local padding=2 # Padding on each side
local terminal_width=$(tput cols)
local text_length=${#text}
local total_padding=$(( (terminal_width - text_length - 2) / 2 ))
echo
printf "${BBLUE}%${terminal_width}s${NC}\n" | tr ' ' '='
printf "${BBLUE}|${NC}%${total_padding}s${BWHITE}%s${NC}%${total_padding}s${BBLUE}|${NC}\n" "" "$text" ""
printf "${BBLUE}%${terminal_width}s${NC}\n" | tr ' ' '='
}
print_subheader() {
local text="$1"
echo -e "\n${BCYAN}> ${text}${NC}"
echo -e "${CYAN}$(printf '%.s-' $(seq 1 $(tput cols)))${NC}"
}
print_menu_item() {
local number="$1"
local text="$2"
local status="${3:-}"
if [ -n "$status" ]; then
echo -e "${BWHITE}$number)${NC} $text ${status}"
else
echo -e "${BWHITE}$number)${NC} $text"
fi
}
print_menu_action() {
local key="$1"
local text="$2"
echo -e "${BPURPLE}$key)${NC} $text"
}
print_success() {
echo -e "${BGREEN}${NC} $1"
}
print_error() {
echo -e "${BRED}${NC} $1"
}
print_warning() {
echo -e "${BYELLOW}! $1${NC}"
}
print_info() {
echo -e "${WHITE}$1${NC}"
}
print_separator() {
echo -e "${BLUE}$(printf '%.s-' $(seq 1 $(tput cols)))${NC}"
}
# Status Indicators with simple ASCII
status_running() {
echo -e "${BGREEN}[ RUNNING ]${NC}"
}
status_stopped() {
echo -e "${BRED}[ STOPPED ]${NC}"
}
status_partial() {
local running="$1"
local total="$2"
echo -e "${BYELLOW}[ PARTIAL: $running/$total ]${NC}"
}
status_loading() {
echo -e "${BCYAN}[ LOADING ]${NC}"
}