Compare commits

...

34 Commits

Author SHA1 Message Date
Daniel Napora f83575da2d icon, help 2022-06-10 10:16:49 +02:00
Daniel Napora 0346264199 update 2022-05-24 02:06:37 +02:00
Daniel Napora 02aab980f2 upd 2022-05-01 17:32:05 +02:00
Daniel Napora b9ca38e78e update 2022-04-28 14:44:58 +02:00
Daniel Napora 9894b7c3c7 do not set expose to html 2022-04-25 22:16:17 +02:00
Daniel Napora a2b4bc9901 rand wallpaper 2022-04-25 02:58:43 +02:00
Daniel Napora a0fa13432d big update :) 2022-04-24 18:43:34 +02:00
Daniel Napora 5cb3025154 fix 2022-04-22 19:48:31 +02:00
Daniel Napora bd1fb9ed40 wallpaper colors and other improvements 2022-04-22 18:46:38 +02:00
Daniel Napora a3cd3a96d2 accents clr palettes 2022-04-22 02:17:44 +02:00
Daniel Napora 8d813219de dracula 2021-11-11 01:32:09 +01:00
Daniel Napora 7cc9a29dc6 gruvbox and nord palette 2021-11-09 01:53:09 +01:00
Daniel Napora 80c59cba74 copy by default, readme update 2021-10-29 12:57:41 +02:00
Daniel Napora 791be778ff notifications, used 2021-10-29 11:38:53 +02:00
Daniel Napora 07bfd8dcf8 small fixes and improvements 2021-10-29 02:00:19 +02:00
Daniel Napora 25859b99e7 README update 2021-10-28 22:35:29 +02:00
Daniel Napora 18d34168c7 update 2021-10-28 22:31:59 +02:00
Daniel Napora 2a47f2d6b6 gcolor3 again 2021-10-28 21:42:12 +02:00
Daniel Napora f31d9471e0 gcolor3 again 2021-10-28 21:30:12 +02:00
Daniel Napora 54385d065b gcolor3 as color selector 2021-10-28 21:26:47 +02:00
Daniel Napora f36aa54f40 check if PyQt5 is available 2021-10-28 12:27:15 +02:00
Daniel Napora e9a3fd7333 PyQt color selector, notifications when in copy mode 2021-10-28 11:26:59 +02:00
Daniel Napora c4f0271e61 update 2021-10-27 21:09:10 +02:00
Daniel Napora 45b5e89c74 separete self made palettes 2021-10-27 17:38:03 +02:00
Daniel Napora c332f0f21e use xcolor as picker, added delete color option 2021-10-27 14:19:54 +02:00
Daniel Napora b7f55fd725 speed improvements 2021-10-27 02:39:14 +02:00
Daniel Napora 69535079c6 fix typo 2021-10-26 21:11:37 +02:00
Daniel Napora 715bbb8f89 fix wrong icons locations 2021-10-26 21:00:05 +02:00
Daniel Napora 808d47b266 do not show built-in palettes by default 2021-10-26 20:42:46 +02:00
Daniel Napora 6ebae82229 icons, desktop file update 2021-10-26 15:35:39 +02:00
Daniel Napora 8f128c6413 remove unicode arrow 2021-10-16 01:13:36 +02:00
Daniel Napora 2351f93c3f README update 2021-10-11 20:10:22 +02:00
Daniel Napora 9e506bfedc desktop file and 2 more palettes 2021-10-11 20:07:23 +02:00
Daniel Napora cd8842a249 icon 2021-10-10 11:56:59 +02:00
25 changed files with 1765 additions and 189 deletions

View File

@ -1,12 +1,25 @@
# mbxcolors # mbxcolors
A menu to pick, paste and organize colors (palettes) A menu to quickly pick, paste and organize colors (palettes)
## Dependencies ## Dependencies
- jgmenu - jgmenu
- xdotool - xdotool
- colorpicker - xcolor
- gcolor3
- xdg-utils - xdg-utils
- xclip - xclip
- notify-send or better notify-send.sh
## Installation
```
git clone https://git.maboxlinux.org/Mabox/mbxcolors
cd mbxcolors
sudo make install
## to uninstall
sudo make uninstall
```

View File

@ -1,32 +1,43 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Copyright (C) Daniel Napora 2021 <napcok@gmail.com> # Copyright (C) Daniel Napora 2021-22 <napcok@gmail.com>
# Dependencies: jgmenu, xdotool, colorpicker, xdg-utils, xclip # Dependencies: jgmenu, xdotool, xcolor, gcolor3, gpick, pastel, xdg-utils, xclip, notify-send
# TODO # TODO export to .gpl (GIMP,Inkscape)
ME=$(basename $0) VERSION="0.9.8"
TEMP_DIR=/tmp/colormenu
ME=${0##*/}
DATA_DIR="/usr/share/$ME"
CNF_DIR="$HOME/.config/mbxcolors" CNF_DIR="$HOME/.config/mbxcolors"
CNF_FILE="$CNF_DIR/mbxcolors.cfg" CNF_FILE="$CNF_DIR/mbxcolors.cfg"
RECENT="$CNF_DIR/recent.clr" RECENT="$CNF_DIR/recent.clr"
USED="$CNF_DIR/.used" USED="$CNF_DIR/.used"
LASTPAL="$CNF_DIR/.palette" LASTPAL="$CNF_DIR/.palette"
[ ! -d "$CNF_DIR" ] && mkdir -p "$CNF_DIR" && cp -r /usr/share/mbxcolors/* "$CNF_DIR"/ [ ! -d "$CNF_DIR" ] && mkdir -p "$CNF_DIR"
if [ ! -f $CNF_FILE ]; then if [ ! -f $CNF_FILE ]; then
cat <<EOF > ${CNF_FILE} cat <<EOF > ${CNF_FILE}
# Paste mode: hex,rgb or rgba # Paste mode: hex,rgb or rgba
format=hex format=hex
#Action when color is clicked: paste (imadietely) or copy (to clipboard) #Action when color is clicked: paste (imadietely) or copy (to clipboard)
action=paste action=copy
#What thing to expose on top of main menu: recently picked colors, last used colors or last used palette #What thing to expose on top of main menu: recently picked colors, last used colors or last used palette
expose=picked expose=picked
#Show HTML colors? yes|no #Show HTML colors? yes|no
htmlcolors=yes htmlcolors=yes
#Color picker (gpick or xcolor)
picker=gpick
#Show built in palettes? (slow)
builtin_palettes=yes
# Random wallpaper dir
walldir=/usr/share/backgrounds
#Position on screen: topleft, top, topright, left, center, right, bottomleft, bottom, bottomright #Position on screen: topleft, top, topright, left, center, right, bottomleft, bottom, bottomright
position=left position=left
EOF EOF
fi fi
source <(grep = $CNF_FILE) source <(grep = $CNF_FILE)
RANDWALLDIR=${walldir:-/usr/share/backgrounds}
if [ ! -f $RECENT ]; then if [ ! -f $RECENT ]; then
cat <<EOF > ${RECENT} cat <<EOF > ${RECENT}
#FFFFFF White #FFFFFF White
@ -49,7 +60,16 @@ hex2rgba() {
echo "rgba($r, $g, $b, 1.0)" echo "rgba($r, $g, $b, 1.0)"
} }
pickcolor() { pickcolor() {
color=$(colorpicker --short --one-shot --preview) size=${xcolor_preview_size:-255}
scale=${xcolor_scale:-8}
picker=${picker:-gpick}
if [ "$picker" == "gpick" ]; then
command="gpick -pso 2>/dev/null"
else
command="xcolor --preview-size ${size} --scale ${scale}"
fi
color="$(${command})"
if [ -n "${color}" ]; then
echo "$color " > "$RECENT".tmp echo "$color " > "$RECENT".tmp
# add on top deduplicate # add on top deduplicate
awk '!x[$0]++' "$RECENT" >> "$RECENT".tmp awk '!x[$0]++' "$RECENT" >> "$RECENT".tmp
@ -57,6 +77,21 @@ pickcolor() {
[ -n "$1" ] && file="$1" [ -n "$1" ] && file="$1"
echo "$color " >> "$file" echo "$color " >> "$file"
setvar expose=picked setvar expose=picked
fi
$ME
}
addcolor() {
color=$(gcolor3)
if [ -n "${color}" ]; then
echo "$color " > "$RECENT".tmp
# add on top deduplicate
awk '!x[$0]++' "$RECENT" >> "$RECENT".tmp
awk '!x[$0]++' "$RECENT".tmp > "$RECENT"
[ -n "$1" ] && file="$1"
echo "$color " >> "$file"
setvar expose=picked
fi
$ME $ME
} }
getcolorcode() { getcolorcode() {
@ -66,12 +101,16 @@ getcolorcode() {
rgba) clr=$(hex2rgba $1);xdotool type --delay 0 "$clr";; rgba) clr=$(hex2rgba $1);xdotool type --delay 0 "$clr";;
*) xdotool type --delay 0 "$1";; *) xdotool type --delay 0 "$1";;
esac esac
else else # copy to clipboard
case "$format" in case "$format" in
rgb) clr=$(hex2rgb $1);echo $clr | tr -d "\n" | xclip -sel c;; rgb) clr=$(hex2rgb $1);echo $clr | tr -d "\n" | xclip -sel c;;
rgba) clr=$(hex2rgba $1);echo $clr | tr -d "\n" | xclip -sel c;; rgba) clr=$(hex2rgba $1);echo $clr | tr -d "\n" | xclip -sel c;;
*) echo "$1" | tr -d "\n" | xclip -sel c;; *) clr="$1";echo "$1" | tr -d "\n" | xclip -sel c;;
esac esac
mkdir -p $TEMP_DIR
FNAME="$TEMP_DIR/${1:1:6}.png"
convert -size 100x100 xc:"$1" "$FNAME"
notify-send ColorMenu "$clr copied to clipboard" --icon="$FNAME" --expire-time=120000
fi fi
echo "$1" > "$USED".tmp echo "$1" > "$USED".tmp
# add on top and deduplicate # add on top and deduplicate
@ -82,69 +121,62 @@ getcolorcode() {
} }
recent2palette () { recent2palette () {
DATE=$(date +"%Y%m%d-%H%M%S") DATE=$(date +"%Y%m%d-%H%M%S")
grep ^# $RECENT |tac > "$CNF_DIR/palettes/New_$DATE.clr" mkdir -p "$CNF_DIR/palettes/my"
grep ^# $RECENT |tac > "$CNF_DIR/palettes/my/My_palette_$DATE.clr"
grep ^# $RECENT |pastel sort-by brightness|pastel format hex > "$CNF_DIR/palettes/my/My_palette_$DATE.clr"
} }
newpalette() { newpalette() {
DATE=$(date +"%Y%m%d-%H%M%S") DATE=$(date +"%Y%m%d-%H%M%S")
touch "$CNF_DIR/palettes/New_$DATE.clr" mkdir -p "$CNF_DIR/palettes/my"
touch "$CNF_DIR/palettes/my/My_palette_$DATE.clr"
} }
palettes() { palettes() {
for file in "$CNF_DIR"/palettes/*.clr;do [ -n "$1" ] && pdir="$CNF_DIR/palettes/my/" || pdir="$DATA_DIR/palettes/"
if [[ -n "$1" ]]; then
out2+=("^tag(mypalettes)")
out2+=("^sep($MYPALETTES)")
else
out2+=("^tag(builtpalettes)")
out2+=("^sep($BUILTIN_PAL)")
fi
for file in "$pdir"*.clr ;do
filename=${file##*/} filename=${file##*/}
palette=${filename%.*} palette=${filename%.*}
pal=${palette//_/ } pal=${palette//_/ }
tagname=${palette// /_} tagname=${palette// /_}
out1+=("${pal^},^checkout($tagname)") out2+=("${pal^},^checkout($tagname)")
out2+=("^tag($tagname)") out3+=("^tag($tagname)")
out2+=("^sep(${pal^})") out3+=("^sep(${pal^})")
out3+=("$EXPOSE_IN_ROOTMENU,$ME setvar expose=$filename;$ME")
out3+=("^sep()")
while read -r color name; while read -r color name;
do do
name=$(printf "%22s %s\n" "$name") out3+=("<tt><small>$color</small> <span bgcolor='$color'><sub> </sub> <sup> </sup></span></tt>,$ME getcolorcode '$color' '$file',,,#${palette}")
fg=$(fgcolor $color)
out2+=("<tt><span bgcolor='$color' fgcolor='$fg'><sub> </sub>$color<sup>$name </sup></span></tt>,$ME getcolorcode '$color' '$file',,,#${palette}")
done < "$file" done < "$file"
out2+=("^sep()") if [[ -n "$1" ]] ; then
out2+=("<b>Add color...</b> (colorpicker),$ME pickcolor '$file'") out3+=("^sep()")
out2+=("<b>Edit</b> palette file,xdg-open '$file'") out3+=("<b>Add color...</b> from screen,$ME pickcolor '$file'")
out2+=("^sep(Danger zone...)") if hash gcolor3 2>/dev/null; then
out2+=("<b>Delete</b> palette: ${palette^},^checkout($tagname-del)") out3+=("^sep()")
out3+=("^tag($tagname-del)") out3+=("<b>Add</b> color from selector...,$ME addcolor '$file'")
out3+=("^sep(Are you sure?)")
out3+=("Yes,rm '$file';$ME")
done
out1+=("^sep()")
out1+=("<b>Add new</b> palette...,$ME newpalette;$ME")
out1+=("Open palette directory,xdg-open $CNF_DIR/palettes/")
}
htmlcolors() {
out+=("<b>HTML</b> colors,^checkout(html)")
out2+=("^tag(html)")
out2+=("^sep(<b>HTML</b> colors)")
for i in white yellow orange pink red brown green cyan blue purple gray;do
out2+=("<span bgcolor='$i'> </span> ${i^} ...,^checkout($i)")
out3+=("^tag($i)")
out3+=("^sep(${i^} colors)")
while read -r color name;
do
name=$(printf "%22s %s\n" "$name")
fg=$(fgcolor $color)
out3+=("<tt><span bgcolor='$color' fgcolor='$fg'><sub> </sub>$color<sup>$name</sup></span></tt>,$ME getcolorcode '$color',,,#$i")
done < "$CNF_DIR/$i.clr"
done
}
if [ $htmlcolors = "yes" ] && [ $expose != "html" ]; then
htmlroot="^sep()
<b>HTML</b> colors,^checkout(html)
"
htmlsub="^tag(html)
. ${CNF_DIR}/htmlsub.csv"
htmlclrs=". ${CNF_DIR}/htmlclrs.csv"
else
htmlroot="" htmlsub="" htmlclrs=""
fi fi
out3+=("^sep()")
out3+=("<b>Edit</b> palette file,xdg-open '$file'")
out3+=("^sep(Danger zone...)")
out3+=("<b>Delete</b> palette: ${palette^},^checkout($tagname-del)")
out4+=("^tag($tagname-del)")
out4+=("^sep(Are you sure?)")
out4+=("Yes,rm '$file';$ME")
fi
done
#if [[ $# = 0 ]] ; then
if [[ -n "$1" ]] ; then
out2+=("^sep()")
out2+=("<b>Add new</b> palette...,$ME newpalette;$ME")
out2+=("Open palette directory,xdg-open $CNF_DIR/palettes/my/")
fi
}
position() { position() {
case "$position" in case "$position" in
ipc) POSITION_MODE="ipc";; ipc) POSITION_MODE="ipc";;
@ -157,87 +189,73 @@ position() {
bottomleft) POSITION_MODE="fixed" MENU_VALIGN="bottom" MENU_HALIGN="left";; bottomleft) POSITION_MODE="fixed" MENU_VALIGN="bottom" MENU_HALIGN="left";;
bottom) POSITION_MODE="fixed" MENU_VALIGN="bottom" MENU_HALIGN="center";; bottom) POSITION_MODE="fixed" MENU_VALIGN="bottom" MENU_HALIGN="center";;
bottomright) POSITION_MODE="fixed" MENU_VALIGN="bottom" MENU_HALIGN="right";; bottomright) POSITION_MODE="fixed" MENU_VALIGN="bottom" MENU_HALIGN="right";;
center|*) POSITION_MODE="center";; center|*) POSITION_MODE="center" MENU_VALIGN="center" MENU_HALIGN="center";;
esac esac
} }
mkconfigfile() {
if [[ -f /usr/share/mbxtools/configure.inc ]];then
. /usr/share/mbxtools/configure.inc
#elif [[ -f /usr/share/mb-jgtools/pipemenu-standalone.cfg ]];then
#. /usr/share/mb-jgtools/pipemenu-standalone.cfg
#. $HOME/.config/mabox/mabox.conf
else
MENU_ITEMS=$(mktemp)
CONFIG_FILE=$(mktemp)
cat <<EOF > ${CONFIG_FILE}
position_mode = ${POSITION_MODE:-center}
menu_halign = ${MENU_HALIGN:-center}
menu_valign = ${MENU_VALIGN:-center}
csv_cmd = apps
stay_alive = 0
hide_back_items = ${HIDE_BACK_ITEMS:-0}
terminal_exec = terminator
terminal_args = -e
tabs = ${TABS:-220}
menu_border = ${jgtools_border:-0}
# MENU MARGIN
menu_margin_x = ${menu_margin_x:-0}
menu_margin_y = ${panels_topmargin:-0}
sub_spacing = ${submenu_spacing:-2}
menu_width = $JGWIDTH
menu_height_min = ${MENU_HEIGHT_MIN:-0}
menu_height_max = ${MENU_HEIGHT_MAX:-0}
menu_padding_top = ${MENU_PADDING_TOP:-70}
menu_padding_right = ${jgtools_padding:-0}
menu_padding_bottom = ${jgtools_padding:-0}
menu_padding_left = ${jgtools_padding:-0}
menu_radius = ${MENU_RADIUS:-0}
#item_height = ${jgmenu_item_height:-30}
#item_halign = ${ITEM_HALIGN:-left}
#item_padding_x = 4
#item_margin_x = ${item_margin_x:-0}
#item_margin_y = ${item_margin_y:-0}
#item_radius = ${item_radius:-2}
#item_border = ${item_border:-0}
arrow_string = ${ARROW_STRING:-⮞}
columns = ${COLUMNS:-1}
menu_gradient_pos = ${menu_gradient_pos:- none}
#color_menu_bg = ${color_menu_bg:-#222222 80}
#color_menu_bg_to = ${color_menu_bg_to:- #000000 100}
#color_menu_border = ${color_menu_border:-#2f9b85 100}
#color_norm_bg = ${color_norm_bg:-#000000 0}
#color_norm_fg = ${color_norm_fg:-#CCCCCC 100}
#color_sel_bg = ${color_sel_bg:-#169f6f 60}
#color_sel_fg = ${color_sel_fg:-#f8f8f8 100}
#color_sel_border = ${color_sel_border:-#504e65 100}
#color_sep_fg = ${color_sep_fg:-#4D4D4D 100}
#color_sep_bg = ${color_sep_bg:-#262626 100}
#color_title_fg = ${color_title_fg:-#4D4D4D 100}
#color_title_border = ${color_title_border:-#169f6f 100}
#color_title_bg = ${color_title_bg:-#262626 100}
#color_scroll_ind = ${COLOR_SCROLL_IND:-#504e65 100}
sep_markup = weight="bold"
sep_height = ${sep_height:-5}
#font = ${jgmenu_font:-Noto Sans Medium 9}
icon_size = ${jgmenu_icon_size:-16}
icon_theme = ${jgmenu_icon_theme:-Numix-Square}
EOF
fi
}
main () { main () {
# Mabox Linux
if [[ -f /usr/share/mb-jgtools/pipemenu-standalone.cfg ]];then if [[ -f /usr/share/mb-jgtools/pipemenu-standalone.cfg ]];then
. /usr/share/mb-jgtools/pipemenu-standalone.cfg . /usr/share/mb-jgtools/pipemenu-standalone.cfg
. $HOME/.config/mabox/mabox.conf . $HOME/.config/mabox/mabox.conf
fi fi
case $LANG in
pl*)
COLORMENU="Menu kolorów"
COPY_COLOR_CODE="Kopiuj kod koloru"
COLLECT_COLORS="Dodaj kolory"
PICK_FROM_SCREEN="<b>Pobierz</b> kolor z ekranu..."
ADD_FROM_SELECTOR="<b>Dodaj</b> kolor..."
LASTUSED_PAL="Ostatnio używana paleta"
RECENTLYUSED="Ostatnio użyte kolory"
RECENTLYPICKED="Ostatnio dodane kolory"
CLEAR_ALL="Usuń wszystkie"
CLEAR_ALL2="<b>Usuń</b> wszystkie"
CLEAR_RECUSED="<b>Usuń</b> ostatnio użyte kolory"
NEWPAL_FROMREC="<b>Nowa paleta</b> z ostatnio dodanych"
CLEAR_RECPICKED="<b>Usuń</b> ostatnio dodane"
REMOVEONE="Usuń tylko jeden kolor..."
WALLCOLORS="Kolory z tapety"
RANDWALL="Ustaw <b>losową tapetę</b>"
IMAGICKCOLORS="Kolory <b>Image Magick</b>"
HTMLCOLORS="Kolory <b>HTML</b>"
PALETTE="Paleta:"
COLORPALETTES="Palety kolorów"
MYPALETTES="Moje palety"
BUILTIN_PAL="Wbudowane palety"
EXPOSE_IN_ROOTMENU="Pokaż w menu głównym"
SETTINGS="Ustawienia"
PREFERENCES="Konfiguruj..."
HELP="Pomoc"
;;
*)
COLORMENU="ColorMenu"
COPY_COLOR_CODE="Copy Color Code"
COLLECT_COLORS="Collect Colors"
PICK_FROM_SCREEN="<b>Pick</b> color from screen..."
ADD_FROM_SELECTOR="<b>Add</b> color from selector..."
LASTUSED_PAL="Last used palette"
RECENTLYUSED="Recently used colors"
RECENTLYPICKED="Recently picked colors"
CLEAR_ALL="Clear All"
CLEAR_ALL2="<b>Clear</b> all"
CLEAR_RECUSED="<b>Clear</b> recently used colors"
NEWPAL_FROMREC="<b>New palette</b> from recently picked"
CLEAR_RECPICKED="<b>Clear</b> recently picked"
REMOVEONE="Just remove one color..."
WALLCOLORS="Wallpaper colors"
RANDWALL="Set <b>random wallpaper</b>"
IMAGICKCOLORS="<b>Image Magick</b> Colors"
HTMLCOLORS="<b>HTML</b> colors"
PALETTE="Palette:"
COLORPALETTES="Color palettes"
MYPALETTES="My palettes"
BUILTIN_PAL="Built-in palettes"
EXPOSE_IN_ROOTMENU="Expose in rootmenu"
SETTINGS="Settings"
PREFERENCES="Preferences"
HELP="About and Help"
;;
esac
[ "$1" = "ipc" ] && position="ipc" [ "$1" = "ipc" ] && position="ipc"
MENU_PADDING_TOP=${jgtools_padding:-0} MENU_PADDING_TOP=${jgtools_padding:-0}
@ -245,62 +263,159 @@ JGWIDTH="220"
ITEM_HALIGN="center" ITEM_HALIGN="center"
jgmenu_icon_size=0 jgmenu_icon_size=0
menu_margin_x=${submenu_spacing:-0} menu_margin_x=${submenu_spacing:-0}
[ $(pidof picom) ] && MENU_RADIUS=$jgtools_radius
#jgmenu_font="Noto Sans Medium 10" #jgmenu_font="Noto Sans Medium 10"
position position
mkconfigfile mkconfigfile
trap "rm -f ${CONFIG_FILE} ${MENU_ITEMS}" EXIT trap "rm -f ${CONFIG_FILE} ${MENU_ITEMS}" EXIT
out+=("^sep(<span bgcolor='#800000'> </span><span fgcolor='#800000' bgcolor='#FABD2F'> mbx </span><span fgcolor='#FABD2F' bgcolor='#800000'> colors </span><span bgcolor='#FABD2F'> </span> <sup><span font_weight='light'>[$action $format]</span></sup>)") out+=("^sep($COLORMENU)")
out+=("<b>Pick</b> color from screen...,$ME pickcolor") out+=("^sep()")
out+=("^sep($COLLECT_COLORS...)")
out+=("$PICK_FROM_SCREEN,$ME pickcolor")
if hash gcolor3 2>/dev/null; then
out+=("^sep()")
out+=("$ADD_FROM_SELECTOR,$ME addcolor")
fi
out+=("^sep($COPY_COLOR_CODE...<sup> [$action $format]</sup>)")
# exposed thing # exposed thing
case "$expose" in case "$expose" in
used)
out+=("^sep(<i><small>Recently used colors:</small></i>)")
while read -r color name;do
name=$(printf "%22s %s\n" "$name")
fg=$(fgcolor $color)
out+=("<tt><span bgcolor='$color' fgcolor='$fg'><sub> </sub>$color<sup>$name</sup></span></tt>,$ME getcolorcode '$color'")
done < <(grep ^# $USED)
out+=("^sep()")
out+=("<b>Clear</b> recently used colors,echo > $USED;$ME")
;;
html)
htmlroot=". ${CNF_DIR}/htmlsub.csv"
htmlsub=". ${CNF_DIR}/htmlclrs.csv"
htmlclrs=""
;;
palette) palette)
pal=$(cat "$CNF_DIR/.palette") pal=$(cat "$CNF_DIR/.palette")
filename=${pal##*/} filename=${pal##*/}
palette=${filename%.*} palette=${filename%.*}
out+=("^sep(<i><span font_weight='light'>Last used palette</span> ${palette^}</i>)") out+=("^sep(<i><span font_weight='light'>$LASTUSED_PAL</span> ${palette^}</i>)")
while read -r color name;do while read -r color name;do
name=$(printf "%22s %s\n" "$name") out+=("<tt><small>$color</small> <span bgcolor='$color'><sub> </sub> <sup> </sup></span></tt> ,$ME getcolorcode '$color'")
fg=$(fgcolor $color)
out+=("<tt><span bgcolor='$color' fgcolor='$fg'><sub> </sub>$color<sup>$name</sup></span></tt>,$ME getcolorcode '$color'")
done < "${pal}" done < "${pal}"
;; ;;
picked|*) used)
out+=("^sep(<i><small>Recently picked colors:</small></i>)") mapfile -t < $USED
if (( ${#MAPFILE[@]} > 1 )); then
out+=("^sep(<i><small>$RECENTLYUSED</small></i>)")
while read -r color name;do while read -r color name;do
name=$(printf "%22s %s\n" "$name") out+=("<tt><small>$color</small> <span bgcolor='$color'><sub> </sub> <sup> </sup></span></tt> ,$ME getcolorcode '$color'")
fg=$(fgcolor $color) done < <(grep ^# $USED)
out+=("<tt><span bgcolor='$color' fgcolor='$fg'><sub> </sub>$color<sup>$name</sup></span></tt>,$ME getcolorcode '$color'")
done < <(grep ^# $RECENT)
out+=("^sep()") out+=("^sep()")
out+=("$CLEAR_RECUSED,echo > $USED;$ME")
out+=("<b>New palette</b> from recently picked,$ME recent2palette;$ME") fi
out+=("<b>Clear</b> recently picked,echo > $RECENT;$ME")
;; ;;
picked)
mapfile -t < $RECENT
if (( ${#MAPFILE[@]} > 1 )); then
out+=("^sep(<i><small>$RECENTLYPICKED</small></i>)")
# for clear/delete
out2+=("^tag(pickeddel)")
out2+=("^sep($CLEAR_ALL)")
out2+=("$CLEAR_ALL2,echo > $RECENT;$ME")
out2+=("^sep($REMOVEONE)")
while read -r color name;do
out+=("<tt><small>$color</small> <span bgcolor='$color'><sub> </sub> <sup> </sup></span></tt> ,$ME getcolorcode '$color'")
out2+=("<tt><small>$color</small> <span bgcolor='$color'><sub> </sub> <sup> </sup></span></tt> ,sed -i '/${color:1:6}/d' $RECENT;$ME")
done < <(grep ^# $RECENT)
out+=("^sep()")
out+=("$NEWPAL_FROMREC,$ME recent2palette;$ME")
out+=("$CLEAR_RECPICKED,^checkout(pickeddel)")
fi
;;
wallpaper)
WALLPALDIR="$HOME/.config/mbxcolors/palettes/wallp"
mkdir -p "$WALLPALDIR"
read WALLPATH<<< $(grep file "$HOME/.config/nitrogen/bg-saved.cfg" | cut -d'=' -f2)
WALLPAPER=${WALLPATH##*/}
if [ ! -f "$WALLPALDIR/$WALLPAPER.clr" ]; then
convert ${WALLPATH} -resize 25% -colors 16 -unique-colors txt:- |grep -v '^#'| awk '{print substr($3,1,7)}' |pastel sort-by brightness |pastel format hex > "$WALLPALDIR/$WALLPAPER.clr"
fi
#mapfile -t wallcolors < "$WALLPALDIR/$WALLPAPER.clr"
out+=("^sep(<i><small>$WALLCOLORS</small></i>)")
while read -r color name;do
out+=("<tt><small>$color</small> <span bgcolor='$color'><sub> </sub> <sup> </sup></span></tt> ,$ME getcolorcode '$color'")
done < "$WALLPALDIR/$WALLPAPER.clr"
out+=("^sep()")
out+=("$RANDWALL,nitrogen --random ${RANDWALLDIR} --set-scaled --save;$ME")
;;
*)
if [ -f "$DATA_DIR/palettes/$expose" ];then
palfile="$DATA_DIR/palettes/$expose"
elif [ -f "$CNF_DIR/palettes/my/$expose" ];then
palfile="$CNF_DIR/palettes/my/$expose"
fi
if [ $palfile ];then
palette=${expose%.*}
pal=${palette//_/ }
out+=("^sep(<i><small>$PALETTE ${pal^}</small></i>)")
while read -r color name;
do
out+=("<tt><small>$color</small> <span bgcolor='$color'><sub> </sub> <sup> </sup></span></tt>,$ME getcolorcode '$color' '$file';$ME setvar expose=palette,,,#${palette}")
done < "$palfile"
fi
;;
esac esac
#if [[ "$CNF_DIR"/palettes/my/*.clr ]]; then
out1+=("^sep(Color palettes)") out+=("^sep($COLORPALETTES)")
if [ "$(find "$CNF_DIR"/palettes/my/*.clr -maxdepth 1 -type f -iname \*.clr 2>/dev/null)" ]; then
out+=("$MYPALETTES,^checkout(mypalettes)")
palettes my
fi
if [[ $builtin_palettes == "yes" ]];then
out+=("$BUILTIN_PAL,^checkout(builtpalettes)")
palettes palettes
fi
# WALLPAPER COLORS
if [ "$expose" != "wallpaper" ];then
out+=("$WALLCOLORS,^checkout(wallcolors)")
read WALLPAPER<<< $(grep file "$HOME/.config/nitrogen/bg-saved.cfg | cut -d'=' -f2")
WALLPALDIR="$HOME/.config/mbxcolors/palettes/wallp"
mkdir -p "$WALLPALDIR"
read WALLPATH<<< $(grep file "$HOME/.config/nitrogen/bg-saved.cfg" | cut -d'=' -f2)
WALLPAPER=${WALLPATH##*/}
if [ ! -f "$WALLPALDIR/$WALLPAPER.clr" ]; then
convert ${WALLPATH} -resize 25% -colors 16 -unique-colors txt:- |grep -v '^#'| awk '{print substr($3,1,7)}' |pastel sort-by brightness |pastel format hex > "$WALLPALDIR/$WALLPAPER.clr"
fi
#mapfile -t wallcolors < "$WALLPALDIR/$WALLPAPER.clr"
out2+=("^tag(wallcolors)")
out2+=("^sep($WALLCOLORS)")
out2+=("$EXPOSE_IN_ROOTMENU ,$ME setvar expose=wallpaper;$ME")
out2+=("^sep()")
while read -r color name;do
out2+=("<tt><small>$color</small> <span bgcolor='$color'><sub> </sub> <sup> </sup></span></tt> ,$ME getcolorcode '$color'")
done < "$WALLPALDIR/$WALLPAPER.clr"
out2+=("^sep()")
out2+=("$RANDWALL,nitrogen --random ${RANDWALLDIR} --set-scaled --save;$ME setvar expose=wallpaper;$ME")
fi
out1+=("^sep(Settings)") out1+=("$IMAGICKCOLORS,mbxcolors imagick")
out1+=("Preferences,^pipe($ME preferences)")
out1+=("^sep($SETTINGS)")
out1+=("$PREFERENCES,^pipe($ME preferences)")
out1+=("^sep()")
LNG=${LANG:0:2}
if [[ -f "/usr/share/mbxcolors/help/$LNG.html" ]];then
out1+=("$HELP,yhtml /usr/share/mbxcolors/help/$LNG.html 'Mabox Help - ColorMenu'")
else
out1+=("$HELP,yhtml /usr/share/mbxcolors/help/en.html 'Mabox Help - ColorMenu'")
fi
if [ $htmlcolors = "yes" ]; then
htmlroot="^sep()
${HTMLCOLORS},^checkout(html)
"
htmlsub="^tag(html)
. ${DATA_DIR}/htmlsub.csv"
htmlclrs=". ${DATA_DIR}/htmlclrs.csv"
else
htmlroot="" htmlsub="" htmlclrs=""
fi
cat << EOF > ${MENU_ITEMS} cat << EOF > ${MENU_ITEMS}
@ -313,52 +428,166 @@ $(printf '%s\n' "${out2[@]}")
${htmlclrs} ${htmlclrs}
$(printf '%s\n' "${out3[@]}") $(printf '%s\n' "${out3[@]}")
$(printf '%s\n' "${out4[@]}")
EOF EOF
jgmenu --config-file=${CONFIG_FILE} --csv-file=${MENU_ITEMS} 2>/dev/null jgmenu --config-file=${CONFIG_FILE} --csv-file=${MENU_ITEMS} 2>/dev/null
#printf '%s\n' "${out3[@]}" #printf '%s\n' "${out3[@]}"
exit 0 exit 0
} }
preferences() {
out2+=("^sep(Settings)")
out2+=("<tt>$(printf "%-20s %20s" "Color click action:" "[<b>$action</b>]")</tt>,^checkout(action)") imagick() {
if [[ -f /usr/share/mb-jgtools/pipemenu-standalone.cfg ]];then
. /usr/share/mb-jgtools/pipemenu-standalone.cfg
. $HOME/.config/mabox/mabox.conf
fi
case $LANG in
pl*) TYPE_TO_SEARCH="pisz aby wyszukać"
IMAGICKCOLORS="Kolory Image Magick"
BACK="Wróć do Menu Kolorów"
;;
*) TYPE_TO_SEARCH="type to search"
IMAGICKCOLORS="Image Magick Colors"
BACK="Back to ColorMenu"
;;
esac
#MENU_PADDING_TOP=${jgtools_padding:-24}
MENU_PADDING_TOP=$((jgtools_padding+24))
JGWIDTH="300"
ITEM_HALIGN="center"
jgmenu_icon_size=0
menu_margin_x=${submenu_spacing:-0}
[ $(pidof picom) ] && MENU_RADIUS=$jgtools_radius
jgmenu_font="Noto Sans Medium 12"
MENU_HALIGN="center"
MENU_VALIGN="center"
TABS="280"
icons=0
iconmargin=0
item_height_factor=240
MENU_HEIGHT_MAX=480
mkconfigfile
trap "rm -f ${CONFIG_FILE} ${MENU_ITEMS}" EXIT
out+=("^sep($IMAGICKCOLORS)")
out+=("$BACK,mbxcolors")
out+=("^sep()")
while read -r color name;do
out+=("<tt><small>$color</small> <span bgcolor='$color'><sub> </sub> <sup> </sup></span> $name</tt> ,$ME getcolorcode '$color'")
done < "$DATA_DIR/imagick.txt"
cat << EOF > ${MENU_ITEMS}
@search,,$((jgtools_padding + 32)),$((jgtools_padding + 4)),292,20,4,left,top,auto,#262626,"""<big></big> <i>$TYPE_TO_SEARCH</i>"""
$(printf '%s\n' "${out[@]}")
EOF
jgmenu --config-file=${CONFIG_FILE} --csv-file=${MENU_ITEMS} 2>/dev/null
}
preferences() {
case $LANG in
pl*)
SETTINGS="Ustawienia"
CLICK_ACTION="Akcja po kliknięciu w kolor:"
EXPOSE="Pokaż w menu głównym:"
HTMLCOLORS="Kolory HTML:"
HTML="Pokaż kolory HTML?"
BUILTIN="Wbudowane palety:"
BUILT="Pokaż wbudowane palety?"
PICKER="Pobieranie kolorów z ekranu:"
POSITION="Pozycja:"
RESET="Zresetuj ustawienia"
EDIT_CONF="Edytuj plik konfiguracyjny"
OPEN_DIR="Otwórz katalog z konfiguracją"
OUTFORMAT="Format wyjściowy"
PASTE="<b>paste</b> (wklej natychmiast)"
COPY="<b>copy</b> (kopiuj do schowka)"
SHOW_IN_ROOT="Pokazuj w menu głównym"
PICKED="<b>picked</b> ostatnio dodane kolory"
USED="<b>used</b> ostatnio użyte kolory"
PALETTE="<b>palette</b> ostatnio użyta paleta"
WALLPAPER="<b>wallpaper</b> kolory z tapety"
COLORPICKER="Pobieracz kolorów"
POS="Pozycja na ekranie"
;;
*)
SETTINGS="Settings"
CLICK_ACTION="Color click action:"
EXPOSE="Expose in rootmenu:"
HTMLCOLORS="HTML colors:"
HTML="Show HTML colors?"
BUILTIN="Built-in palettes:"
BUILT="Show Built-in palettes?"
PICKER="Color picker:"
POSITION="Position:"
RESET="Reset to defaults"
EDIT_CONF="Edit config file"
OPEN_DIR="Open config directory"
OUTFORMAT="Output format"
PASTE="<b>paste</b> (paste color immediately)"
COPY="<b>copy</b> (copy color to clipboard)"
SHOW_IN_ROOT="Show on top of rootmenu"
PICKED="<b>picked</b> recently picked colors"
USED="<b>used</b> recently used colors"
PALETTE="<b>palette</b> recently used palette"
WALLPAPER="<b>wallpaper</b> colors"
COLORPICKER="Color Picker"
POS="Position on screen"
;;
esac
out2+=("^sep($SETTINGS)")
out2+=("<tt>$(printf "%-20s %20s" "$CLICK_ACTION" "[<b>$action</b>]")</tt>,^checkout(action)")
out2+=("<tt>$(printf "%-20s %20s" "Format:" "[<b>$format</b>]")</tt>,^checkout(format)") out2+=("<tt>$(printf "%-20s %20s" "Format:" "[<b>$format</b>]")</tt>,^checkout(format)")
out2+=("^sep()") out2+=("^sep()")
out2+=("<tt>$(printf "%-20s %20s" "Expose on top:" "[<b>$expose</b>]")</tt>,^checkout(expose)") out2+=("<tt>$(printf "%-20s %20s" "$EXPOSE" "[<b>$expose</b>]")</tt>,^checkout(expose)")
out2+=("<tt>$(printf "%-20s %20s" "Show HTML colors:" "[<b>$htmlcolors</b>]")</tt>,^checkout(showhtml)") out2+=("<tt>$(printf "%-20s %20s" "$HTMLCOLORS:" "[<b>$htmlcolors</b>]")</tt>,^checkout(showhtml)")
out2+=("<tt>$(printf "%-20s %20s" "$BUILTIN" "[<b>$builtin_palettes</b>]")</tt>,^checkout(builtinpalettes)")
out2+=("<tt>$(printf "%-20s %20s" "$PICKER" "[<b>$picker</b>]")</tt>,^checkout(picker)")
out2+=("^sep()") out2+=("^sep()")
out2+=("<tt>$(printf "%-20s %20s" "Position:" "[<b>$position</b>]")</tt>,^checkout(position)") out2+=("<tt>$(printf "%-20s %20s" "$POSITION" "[<b>$position</b>]")</tt>,^checkout(position)")
out2+=("^sep()") out2+=("^sep()")
out2+=("Reset to defaults,rm $CNF_FILE,$ME") out2+=("$RESET,rm $CNF_FILE;$ME")
out2+=("^sep()") out2+=("^sep()")
out2+=("Edit config file,xdg-open $CNF_FILE") out2+=("$EDIT_CONF,xdg-open $CNF_FILE")
out2+=("Open config directory,xdg-open $CNF_DIR") out2+=("$OPEN_DIR,xdg-open $CNF_DIR")
out2+=("^tag(format)") out2+=("^tag(format)")
out2+=("^sep(Output format)") out2+=("^sep($OUTFORMAT)")
out2+=("<b>hex</b> <i>#579C8E</i>,$ME setvar format=hex;$ME") out2+=("<b>hex</b> <i>#579C8E</i>,$ME setvar format=hex;$ME")
out2+=("<b>rgb</b> <i>rgb(87&#44; 156&#44; 142)</i>,$ME setvar format=rgb;$ME") out2+=("<b>rgb</b> <i>rgb(87&#44; 156&#44; 142)</i>,$ME setvar format=rgb;$ME")
out2+=("<b>rgba</b> <i>rgba(87&#44; 156&#44; 142&#44; 1.0)</i>,$ME setvar format=rgba;$ME") out2+=("<b>rgba</b> <i>rgba(87&#44; 156&#44; 142&#44; 1.0)</i>,$ME setvar format=rgba;$ME")
out2+=("^tag(action)") out2+=("^tag(action)")
out2+=("^sep(Color action)") out2+=("^sep($CLICK_ACTION)")
out2+=("<b>paste</b> (paste color immediately),$ME setvar action=paste;$ME") out2+=("$PASTE,$ME setvar action=paste;$ME")
out2+=("<b>copy</b> (copy color to clipboard),$ME setvar action=copy;$ME") out2+=("$COPY,$ME setvar action=copy;$ME")
out2+=("^tag(expose)") out2+=("^tag(expose)")
out2+=("^sep(Show on top of rootmenu)") out2+=("^sep($SHOW_IN_ROOT)")
out2+=("<b>picked</b> recently picked colors,$ME setvar expose=picked;$ME") out2+=("$PICKED,$ME setvar expose=picked;$ME")
out2+=("<b>used</b> recently used colors,$ME setvar expose=used;$ME") out2+=("$USED,$ME setvar expose=used;$ME")
out2+=("<b>palette</b> recently used palette,$ME setvar expose=palette;$ME") out2+=("$PALETTE,$ME setvar expose=palette;$ME")
out2+=("<b>html</b> HTML Colors,$ME setvar expose=html;$ME") out2+=("$WALLPAPER,$ME setvar expose=wallpaper;$ME")
out2+=("^tag(showhtml)") out2+=("^tag(showhtml)")
out2+=("^sep(Show HTML colors?)") out2+=("^sep($HTML)")
out2+=("yes,$ME setvar htmlcolors=yes;$ME") out2+=("yes,$ME setvar htmlcolors=yes;$ME")
out2+=("no,$ME setvar htmlcolors=no;$ME") out2+=("no,$ME setvar htmlcolors=no;$ME")
out2+=("^tag(builtinpalettes)")
out2+=("^sep($BUILT)")
out2+=("yes,$ME setvar builtin_palettes=yes;$ME")
out2+=("no,$ME setvar builtin_palettes=no;$ME")
out2+=("^tag(picker)")
out2+=("^sep($COLORPICKER)")
out2+=("gpick,$ME setvar picker=gpick;$ME")
out2+=("xcolor,$ME setvar picker=xcolor;$ME")
out2+=("^tag(position)") out2+=("^tag(position)")
out2+=("^sep(Position on screen)") out2+=("^sep($POS)")
out2+=("center,$ME setvar position=center;$ME") out2+=("center,$ME setvar position=center;$ME")
out2+=("topleft,$ME setvar position=topleft;$ME") out2+=("topleft,$ME setvar position=topleft;$ME")
out2+=("top,$ME setvar position=top;$ME") out2+=("top,$ME setvar position=top;$ME")
@ -383,13 +612,15 @@ fi
case "$1" in case "$1" in
-h|--help|help) usage;; -h|--help|help) usage;;
-a|--pickcolor|pickcolor) pickcolor "$2";; --pickcolor|pickcolor) pickcolor "$2";;
--addcolor|addcolor) addcolor "$2" ;;
-g|--getcolorcode|getcolorcode) getcolorcode "$2" "$3";; -g|--getcolorcode|getcolorcode) getcolorcode "$2" "$3";;
-p|preferences) preferences;; -p|preferences) preferences;;
-s|setvar) setvar "$2";; -s|setvar) setvar "$2";;
ipc) main "$1";; ipc) main "$1";;
recent2palette) recent2palette ;; recent2palette) recent2palette ;;
newpalette) newpalette;; newpalette) newpalette;;
imagick) imagick;;
*) main;; *) main;;
esac esac
exit 0 exit 0

View File

@ -0,0 +1,13 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=Image Magick colors
Name[pl]=Kolory Image Magick
Comment=Image Magick colors picker
Keywords=
StartupNotify=false
Icon=mbxcolors
TryExec=mbxcolors imagick
Exec=mbxcolors imagick
Categories=Graphics;
#NoDisplay=true

View File

@ -1,10 +1,12 @@
[Desktop Entry] [Desktop Entry]
Version=1.0 Version=1.0
Type=Application Type=Application
Name=MBX Colors Name=ColorMenu
Name[pl]=Menu Kolorów
Comment=Pick, paste and manage colors Comment=Pick, paste and manage colors
Keywords= Keywords=
Icon=color StartupNotify=false
Icon=mbxcolors
TryExec=mbxcolors TryExec=mbxcolors
Exec=mbxcolors Exec=mbxcolors
Categories=Graphics; Categories=Graphics;

Binary file not shown.

After

Width:  |  Height:  |  Size: 720 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

View File

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="120"
height="120"
viewBox="0 0 120 120"
version="1.1"
id="svg5"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
sodipodi:docname="mbxcolors.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="px"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="5.7916665"
inkscape:cx="115.07914"
inkscape:cy="60.77698"
inkscape:window-width="1920"
inkscape:window-height="1130"
inkscape:window-x="0"
inkscape:window-y="36"
inkscape:window-maximized="1"
inkscape:current-layer="layer1">
<sodipodi:guide
position="5.6345044,123.303"
orientation="1,0"
id="guide31" />
<sodipodi:guide
position="113.37618,122.07747"
orientation="1,0"
id="guide33" />
<sodipodi:guide
position="-24.647676,60.089955"
orientation="0,-1"
id="guide37" />
<inkscape:grid
type="xygrid"
id="grid1291" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:label="Warstwa 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#8d8d8d;fill-opacity:1;stroke-width:1.06949"
id="rect35"
width="107.74168"
height="20"
x="5.6345043"
y="5"
ry="2.389149" />
<rect
style="fill:#82d454;fill-opacity:1;stroke:none;stroke-width:1.06949"
id="rect119"
width="107.74168"
height="20"
x="5.6345043"
y="35"
ry="2.389149" />
<rect
style="fill:#fdcc53;fill-opacity:1;stroke:none;stroke-width:1.06972"
id="rect1082"
width="107.78635"
height="20"
x="5.5898337"
y="65"
ry="2.389149" />
<rect
style="fill:#4e8cd6;stroke:none;stroke-width:1.06949;fill-opacity:1"
id="rect2268"
width="107.74168"
height="20"
x="5.6345043"
y="95"
ry="2.389149" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1,235 @@
/* W3.CSS 4.15 December 2020 by Jan Egil and Borge Refsnes */
html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}
/* Extract from normalize.css by Nicolas Gallagher and Jonathan Neal git.io/normalize */
html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}
article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}summary{display:list-item}
audio,canvas,progress,video{display:inline-block}progress{vertical-align:baseline}
audio:not([controls]){display:none;height:0}[hidden],template{display:none}
a{background-color:transparent}a:active,a:hover{outline-width:0}
abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}
b,strong{font-weight:bolder}dfn{font-style:italic}mark{background:#ff0;color:#000}
small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sub{bottom:-0.25em}sup{top:-0.5em}figure{margin:1em 40px}img{border-style:none}
code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}hr{box-sizing:content-box;height:0;overflow:visible}
button,input,select,textarea,optgroup{font:inherit;margin:0}optgroup{font-weight:bold}
button,input{overflow:visible}button,select{text-transform:none}
button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}
button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}
button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}
fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}
legend{color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}
[type=checkbox],[type=radio]{padding:0}
[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}
[type=search]{-webkit-appearance:textfield;outline-offset:-2px}
[type=search]::-webkit-search-decoration{-webkit-appearance:none}
::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
/* End extract */
html,body{font-family:Verdana,sans-serif;font-size:15px;line-height:1.5}html{overflow-x:hidden}
h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}
.w3-serif{font-family:serif}.w3-sans-serif{font-family:sans-serif}.w3-cursive{font-family:cursive}.w3-monospace{font-family:monospace}
h1,h2,h3,h4,h5,h6{font-family:"Segoe UI",Arial,sans-serif;font-weight:400;margin:10px 0}.w3-wide{letter-spacing:4px}
hr{border:0;border-top:1px solid #eee;margin:20px 0}
.w3-image{max-width:100%;height:auto}img{vertical-align:middle}a{color:inherit}
.w3-table,.w3-table-all{border-collapse:collapse;border-spacing:0;width:100%;display:table}.w3-table-all{border:1px solid #ccc}
.w3-bordered tr,.w3-table-all tr{border-bottom:1px solid #ddd}.w3-striped tbody tr:nth-child(even){background-color:#f1f1f1}
.w3-table-all tr:nth-child(odd){background-color:#fff}.w3-table-all tr:nth-child(even){background-color:#f1f1f1}
.w3-hoverable tbody tr:hover,.w3-ul.w3-hoverable li:hover{background-color:#ccc}.w3-centered tr th,.w3-centered tr td{text-align:center}
.w3-table td,.w3-table th,.w3-table-all td,.w3-table-all th{padding:8px 8px;display:table-cell;text-align:left;vertical-align:top}
.w3-table th:first-child,.w3-table td:first-child,.w3-table-all th:first-child,.w3-table-all td:first-child{padding-left:16px}
.w3-btn,.w3-button{border:none;display:inline-block;padding:8px 16px;vertical-align:middle;overflow:hidden;text-decoration:none;color:inherit;background-color:inherit;text-align:center;cursor:pointer;white-space:nowrap}
.w3-btn:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}
.w3-btn,.w3-button{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
.w3-disabled,.w3-btn:disabled,.w3-button:disabled{cursor:not-allowed;opacity:0.3}.w3-disabled *,:disabled *{pointer-events:none}
.w3-btn.w3-disabled:hover,.w3-btn:disabled:hover{box-shadow:none}
.w3-badge,.w3-tag{background-color:#000;color:#fff;display:inline-block;padding-left:8px;padding-right:8px;text-align:center}.w3-badge{border-radius:50%}
.w3-ul{list-style-type:none;padding:0;margin:0}.w3-ul li{padding:8px 16px;border-bottom:1px solid #ddd}.w3-ul li:last-child{border-bottom:none}
.w3-tooltip,.w3-display-container{position:relative}.w3-tooltip .w3-text{display:none}.w3-tooltip:hover .w3-text{display:inline-block}
.w3-ripple:active{opacity:0.5}.w3-ripple{transition:opacity 0s}
.w3-input{padding:8px;display:block;border:none;border-bottom:1px solid #ccc;width:100%}
.w3-select{padding:9px 0;width:100%;border:none;border-bottom:1px solid #ccc}
.w3-dropdown-click,.w3-dropdown-hover{position:relative;display:inline-block;cursor:pointer}
.w3-dropdown-hover:hover .w3-dropdown-content{display:block}
.w3-dropdown-hover:first-child,.w3-dropdown-click:hover{background-color:#ccc;color:#000}
.w3-dropdown-hover:hover > .w3-button:first-child,.w3-dropdown-click:hover > .w3-button:first-child{background-color:#ccc;color:#000}
.w3-dropdown-content{cursor:auto;color:#000;background-color:#fff;display:none;position:absolute;min-width:160px;margin:0;padding:0;z-index:1}
.w3-check,.w3-radio{width:24px;height:24px;position:relative;top:6px}
.w3-sidebar{height:100%;width:200px;background-color:#fff;position:fixed!important;z-index:1;overflow:auto}
.w3-bar-block .w3-dropdown-hover,.w3-bar-block .w3-dropdown-click{width:100%}
.w3-bar-block .w3-dropdown-hover .w3-dropdown-content,.w3-bar-block .w3-dropdown-click .w3-dropdown-content{min-width:100%}
.w3-bar-block .w3-dropdown-hover .w3-button,.w3-bar-block .w3-dropdown-click .w3-button{width:100%;text-align:left;padding:8px 16px}
.w3-main,#main{transition:margin-left .4s}
.w3-modal{z-index:3;display:none;padding-top:100px;position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4)}
.w3-modal-content{margin:auto;background-color:#fff;position:relative;padding:0;outline:0;width:600px}
.w3-bar{width:100%;overflow:hidden}.w3-center .w3-bar{display:inline-block;width:auto}
.w3-bar .w3-bar-item{padding:8px 16px;float:left;width:auto;border:none;display:block;outline:0}
.w3-bar .w3-dropdown-hover,.w3-bar .w3-dropdown-click{position:static;float:left}
.w3-bar .w3-button{white-space:normal}
.w3-bar-block .w3-bar-item{width:100%;display:block;padding:8px 16px;text-align:left;border:none;white-space:normal;float:none;outline:0}
.w3-bar-block.w3-center .w3-bar-item{text-align:center}.w3-block{display:block;width:100%}
.w3-responsive{display:block;overflow-x:auto}
.w3-container:after,.w3-container:before,.w3-panel:after,.w3-panel:before,.w3-row:after,.w3-row:before,.w3-row-padding:after,.w3-row-padding:before,
.w3-cell-row:before,.w3-cell-row:after,.w3-clear:after,.w3-clear:before,.w3-bar:before,.w3-bar:after{content:"";display:table;clear:both}
.w3-col,.w3-half,.w3-third,.w3-twothird,.w3-threequarter,.w3-quarter{float:left;width:100%}
.w3-col.s1{width:8.33333%}.w3-col.s2{width:16.66666%}.w3-col.s3{width:24.99999%}.w3-col.s4{width:33.33333%}
.w3-col.s5{width:41.66666%}.w3-col.s6{width:49.99999%}.w3-col.s7{width:58.33333%}.w3-col.s8{width:66.66666%}
.w3-col.s9{width:74.99999%}.w3-col.s10{width:83.33333%}.w3-col.s11{width:91.66666%}.w3-col.s12{width:99.99999%}
@media (min-width:601px){.w3-col.m1{width:8.33333%}.w3-col.m2{width:16.66666%}.w3-col.m3,.w3-quarter{width:24.99999%}.w3-col.m4,.w3-third{width:33.33333%}
.w3-col.m5{width:41.66666%}.w3-col.m6,.w3-half{width:49.99999%}.w3-col.m7{width:58.33333%}.w3-col.m8,.w3-twothird{width:66.66666%}
.w3-col.m9,.w3-threequarter{width:74.99999%}.w3-col.m10{width:83.33333%}.w3-col.m11{width:91.66666%}.w3-col.m12{width:99.99999%}}
@media (min-width:993px){.w3-col.l1{width:8.33333%}.w3-col.l2{width:16.66666%}.w3-col.l3{width:24.99999%}.w3-col.l4{width:33.33333%}
.w3-col.l5{width:41.66666%}.w3-col.l6{width:49.99999%}.w3-col.l7{width:58.33333%}.w3-col.l8{width:66.66666%}
.w3-col.l9{width:74.99999%}.w3-col.l10{width:83.33333%}.w3-col.l11{width:91.66666%}.w3-col.l12{width:99.99999%}}
.w3-rest{overflow:hidden}.w3-stretch{margin-left:-16px;margin-right:-16px}
.w3-content,.w3-auto{margin-left:auto;margin-right:auto}.w3-content{max-width:980px}.w3-auto{max-width:1140px}
.w3-cell-row{display:table;width:100%}.w3-cell{display:table-cell}
.w3-cell-top{vertical-align:top}.w3-cell-middle{vertical-align:middle}.w3-cell-bottom{vertical-align:bottom}
.w3-hide{display:none!important}.w3-show-block,.w3-show{display:block!important}.w3-show-inline-block{display:inline-block!important}
@media (max-width:1205px){.w3-auto{max-width:95%}}
@media (max-width:600px){.w3-modal-content{margin:0 10px;width:auto!important}.w3-modal{padding-top:30px}
.w3-dropdown-hover.w3-mobile .w3-dropdown-content,.w3-dropdown-click.w3-mobile .w3-dropdown-content{position:relative}
.w3-hide-small{display:none!important}.w3-mobile{display:block;width:100%!important}.w3-bar-item.w3-mobile,.w3-dropdown-hover.w3-mobile,.w3-dropdown-click.w3-mobile{text-align:center}
.w3-dropdown-hover.w3-mobile,.w3-dropdown-hover.w3-mobile .w3-btn,.w3-dropdown-hover.w3-mobile .w3-button,.w3-dropdown-click.w3-mobile,.w3-dropdown-click.w3-mobile .w3-btn,.w3-dropdown-click.w3-mobile .w3-button{width:100%}}
@media (max-width:768px){.w3-modal-content{width:500px}.w3-modal{padding-top:50px}}
@media (min-width:993px){.w3-modal-content{width:900px}.w3-hide-large{display:none!important}.w3-sidebar.w3-collapse{display:block!important}}
@media (max-width:992px) and (min-width:601px){.w3-hide-medium{display:none!important}}
@media (max-width:992px){.w3-sidebar.w3-collapse{display:none}.w3-main{margin-left:0!important;margin-right:0!important}.w3-auto{max-width:100%}}
.w3-top,.w3-bottom{position:fixed;width:100%;z-index:1}.w3-top{top:0}.w3-bottom{bottom:0}
.w3-overlay{position:fixed;display:none;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.5);z-index:2}
.w3-display-topleft{position:absolute;left:0;top:0}.w3-display-topright{position:absolute;right:0;top:0}
.w3-display-bottomleft{position:absolute;left:0;bottom:0}.w3-display-bottomright{position:absolute;right:0;bottom:0}
.w3-display-middle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}
.w3-display-left{position:absolute;top:50%;left:0%;transform:translate(0%,-50%);-ms-transform:translate(-0%,-50%)}
.w3-display-right{position:absolute;top:50%;right:0%;transform:translate(0%,-50%);-ms-transform:translate(0%,-50%)}
.w3-display-topmiddle{position:absolute;left:50%;top:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
.w3-display-bottommiddle{position:absolute;left:50%;bottom:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
.w3-display-container:hover .w3-display-hover{display:block}.w3-display-container:hover span.w3-display-hover{display:inline-block}.w3-display-hover{display:none}
.w3-display-position{position:absolute}
.w3-circle{border-radius:50%}
.w3-round-small{border-radius:2px}.w3-round,.w3-round-medium{border-radius:4px}.w3-round-large{border-radius:8px}.w3-round-xlarge{border-radius:16px}.w3-round-xxlarge{border-radius:32px}
.w3-row-padding,.w3-row-padding>.w3-half,.w3-row-padding>.w3-third,.w3-row-padding>.w3-twothird,.w3-row-padding>.w3-threequarter,.w3-row-padding>.w3-quarter,.w3-row-padding>.w3-col{padding:0 8px}
.w3-container,.w3-panel{padding:0.01em 16px}.w3-panel{margin-top:16px;margin-bottom:16px}
.w3-code,.w3-codespan{font-family:Consolas,"courier new";font-size:16px}
.w3-code{width:auto;background-color:#fff;padding:8px 12px;border-left:4px solid #4CAF50;word-wrap:break-word}
.w3-codespan{color:crimson;background-color:#f1f1f1;padding-left:4px;padding-right:4px;font-size:110%}
.w3-card,.w3-card-2{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)}
.w3-card-4,.w3-hover-shadow:hover{box-shadow:0 4px 10px 0 rgba(0,0,0,0.2),0 4px 20px 0 rgba(0,0,0,0.19)}
.w3-spin{animation:w3-spin 2s infinite linear}@keyframes w3-spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}
.w3-animate-fading{animation:fading 10s infinite}@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
.w3-animate-opacity{animation:opac 0.8s}@keyframes opac{from{opacity:0} to{opacity:1}}
.w3-animate-top{position:relative;animation:animatetop 0.4s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}
.w3-animate-left{position:relative;animation:animateleft 0.4s}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}
.w3-animate-right{position:relative;animation:animateright 0.4s}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}
.w3-animate-bottom{position:relative;animation:animatebottom 0.4s}@keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}}
.w3-animate-zoom {animation:animatezoom 0.6s}@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}}
.w3-animate-input{transition:width 0.4s ease-in-out}.w3-animate-input:focus{width:100%!important}
.w3-opacity,.w3-hover-opacity:hover{opacity:0.60}.w3-opacity-off,.w3-hover-opacity-off:hover{opacity:1}
.w3-opacity-max{opacity:0.25}.w3-opacity-min{opacity:0.75}
.w3-greyscale-max,.w3-grayscale-max,.w3-hover-greyscale:hover,.w3-hover-grayscale:hover{filter:grayscale(100%)}
.w3-greyscale,.w3-grayscale{filter:grayscale(75%)}.w3-greyscale-min,.w3-grayscale-min{filter:grayscale(50%)}
.w3-sepia{filter:sepia(75%)}.w3-sepia-max,.w3-hover-sepia:hover{filter:sepia(100%)}.w3-sepia-min{filter:sepia(50%)}
.w3-tiny{font-size:10px!important}.w3-small{font-size:12px!important}.w3-medium{font-size:15px!important}.w3-large{font-size:18px!important}
.w3-xlarge{font-size:24px!important}.w3-xxlarge{font-size:36px!important}.w3-xxxlarge{font-size:48px!important}.w3-jumbo{font-size:64px!important}
.w3-left-align{text-align:left!important}.w3-right-align{text-align:right!important}.w3-justify{text-align:justify!important}.w3-center{text-align:center!important}
.w3-border-0{border:0!important}.w3-border{border:1px solid #ccc!important}
.w3-border-top{border-top:1px solid #ccc!important}.w3-border-bottom{border-bottom:1px solid #ccc!important}
.w3-border-left{border-left:1px solid #ccc!important}.w3-border-right{border-right:1px solid #ccc!important}
.w3-topbar{border-top:6px solid #ccc!important}.w3-bottombar{border-bottom:6px solid #ccc!important}
.w3-leftbar{border-left:6px solid #ccc!important}.w3-rightbar{border-right:6px solid #ccc!important}
.w3-section,.w3-code{margin-top:16px!important;margin-bottom:16px!important}
.w3-margin{margin:16px!important}.w3-margin-top{margin-top:16px!important}.w3-margin-bottom{margin-bottom:16px!important}
.w3-margin-left{margin-left:16px!important}.w3-margin-right{margin-right:16px!important}
.w3-padding-small{padding:4px 8px!important}.w3-padding{padding:8px 16px!important}.w3-padding-large{padding:12px 24px!important}
.w3-padding-16{padding-top:16px!important;padding-bottom:16px!important}.w3-padding-24{padding-top:24px!important;padding-bottom:24px!important}
.w3-padding-32{padding-top:32px!important;padding-bottom:32px!important}.w3-padding-48{padding-top:48px!important;padding-bottom:48px!important}
.w3-padding-64{padding-top:64px!important;padding-bottom:64px!important}
.w3-padding-top-64{padding-top:64px!important}.w3-padding-top-48{padding-top:48px!important}
.w3-padding-top-32{padding-top:32px!important}.w3-padding-top-24{padding-top:24px!important}
.w3-left{float:left!important}.w3-right{float:right!important}
.w3-button:hover{color:#000!important;background-color:#ccc!important}
.w3-transparent,.w3-hover-none:hover{background-color:transparent!important}
.w3-hover-none:hover{box-shadow:none!important}
/* Colors */
.w3-amber,.w3-hover-amber:hover{color:#000!important;background-color:#ffc107!important}
.w3-aqua,.w3-hover-aqua:hover{color:#000!important;background-color:#00ffff!important}
.w3-blue,.w3-hover-blue:hover{color:#fff!important;background-color:#2196F3!important}
.w3-light-blue,.w3-hover-light-blue:hover{color:#000!important;background-color:#87CEEB!important}
.w3-brown,.w3-hover-brown:hover{color:#fff!important;background-color:#795548!important}
.w3-cyan,.w3-hover-cyan:hover{color:#000!important;background-color:#00bcd4!important}
.w3-blue-grey,.w3-hover-blue-grey:hover,.w3-blue-gray,.w3-hover-blue-gray:hover{color:#fff!important;background-color:#607d8b!important}
.w3-green,.w3-hover-green:hover{color:#fff!important;background-color:#4CAF50!important}
.w3-light-green,.w3-hover-light-green:hover{color:#000!important;background-color:#8bc34a!important}
.w3-indigo,.w3-hover-indigo:hover{color:#fff!important;background-color:#3f51b5!important}
.w3-khaki,.w3-hover-khaki:hover{color:#000!important;background-color:#f0e68c!important}
.w3-lime,.w3-hover-lime:hover{color:#000!important;background-color:#cddc39!important}
.w3-orange,.w3-hover-orange:hover{color:#000!important;background-color:#ff9800!important}
.w3-deep-orange,.w3-hover-deep-orange:hover{color:#fff!important;background-color:#ff5722!important}
.w3-pink,.w3-hover-pink:hover{color:#fff!important;background-color:#e91e63!important}
.w3-purple,.w3-hover-purple:hover{color:#fff!important;background-color:#9c27b0!important}
.w3-deep-purple,.w3-hover-deep-purple:hover{color:#fff!important;background-color:#673ab7!important}
.w3-red,.w3-hover-red:hover{color:#fff!important;background-color:#f44336!important}
.w3-sand,.w3-hover-sand:hover{color:#000!important;background-color:#fdf5e6!important}
.w3-teal,.w3-hover-teal:hover{color:#fff!important;background-color:#009688!important}
.w3-yellow,.w3-hover-yellow:hover{color:#000!important;background-color:#ffeb3b!important}
.w3-white,.w3-hover-white:hover{color:#000!important;background-color:#fff!important}
.w3-black,.w3-hover-black:hover{color:#fff!important;background-color:#000!important}
.w3-grey,.w3-hover-grey:hover,.w3-gray,.w3-hover-gray:hover{color:#000!important;background-color:#9e9e9e!important}
.w3-light-grey,.w3-hover-light-grey:hover,.w3-light-gray,.w3-hover-light-gray:hover{color:#000!important;background-color:#f1f1f1!important}
.w3-dark-grey,.w3-hover-dark-grey:hover,.w3-dark-gray,.w3-hover-dark-gray:hover{color:#fff!important;background-color:#616161!important}
.w3-pale-red,.w3-hover-pale-red:hover{color:#000!important;background-color:#ffdddd!important}
.w3-pale-green,.w3-hover-pale-green:hover{color:#000!important;background-color:#ddffdd!important}
.w3-pale-yellow,.w3-hover-pale-yellow:hover{color:#000!important;background-color:#ffffcc!important}
.w3-pale-blue,.w3-hover-pale-blue:hover{color:#000!important;background-color:#ddffff!important}
.w3-text-amber,.w3-hover-text-amber:hover{color:#ffc107!important}
.w3-text-aqua,.w3-hover-text-aqua:hover{color:#00ffff!important}
.w3-text-blue,.w3-hover-text-blue:hover{color:#2196F3!important}
.w3-text-light-blue,.w3-hover-text-light-blue:hover{color:#87CEEB!important}
.w3-text-brown,.w3-hover-text-brown:hover{color:#795548!important}
.w3-text-cyan,.w3-hover-text-cyan:hover{color:#00bcd4!important}
.w3-text-blue-grey,.w3-hover-text-blue-grey:hover,.w3-text-blue-gray,.w3-hover-text-blue-gray:hover{color:#607d8b!important}
.w3-text-green,.w3-hover-text-green:hover{color:#4CAF50!important}
.w3-text-light-green,.w3-hover-text-light-green:hover{color:#8bc34a!important}
.w3-text-indigo,.w3-hover-text-indigo:hover{color:#3f51b5!important}
.w3-text-khaki,.w3-hover-text-khaki:hover{color:#b4aa50!important}
.w3-text-lime,.w3-hover-text-lime:hover{color:#cddc39!important}
.w3-text-orange,.w3-hover-text-orange:hover{color:#ff9800!important}
.w3-text-deep-orange,.w3-hover-text-deep-orange:hover{color:#ff5722!important}
.w3-text-pink,.w3-hover-text-pink:hover{color:#e91e63!important}
.w3-text-purple,.w3-hover-text-purple:hover{color:#9c27b0!important}
.w3-text-deep-purple,.w3-hover-text-deep-purple:hover{color:#673ab7!important}
.w3-text-red,.w3-hover-text-red:hover{color:#f44336!important}
.w3-text-sand,.w3-hover-text-sand:hover{color:#fdf5e6!important}
.w3-text-teal,.w3-hover-text-teal:hover{color:#009688!important}
.w3-text-yellow,.w3-hover-text-yellow:hover{color:#d2be0e!important}
.w3-text-white,.w3-hover-text-white:hover{color:#fff!important}
.w3-text-black,.w3-hover-text-black:hover{color:#000!important}
.w3-text-grey,.w3-hover-text-grey:hover,.w3-text-gray,.w3-hover-text-gray:hover{color:#757575!important}
.w3-text-light-grey,.w3-hover-text-light-grey:hover,.w3-text-light-gray,.w3-hover-text-light-gray:hover{color:#f1f1f1!important}
.w3-text-dark-grey,.w3-hover-text-dark-grey:hover,.w3-text-dark-gray,.w3-hover-text-dark-gray:hover{color:#3a3a3a!important}
.w3-border-amber,.w3-hover-border-amber:hover{border-color:#ffc107!important}
.w3-border-aqua,.w3-hover-border-aqua:hover{border-color:#00ffff!important}
.w3-border-blue,.w3-hover-border-blue:hover{border-color:#2196F3!important}
.w3-border-light-blue,.w3-hover-border-light-blue:hover{border-color:#87CEEB!important}
.w3-border-brown,.w3-hover-border-brown:hover{border-color:#795548!important}
.w3-border-cyan,.w3-hover-border-cyan:hover{border-color:#00bcd4!important}
.w3-border-blue-grey,.w3-hover-border-blue-grey:hover,.w3-border-blue-gray,.w3-hover-border-blue-gray:hover{border-color:#607d8b!important}
.w3-border-green,.w3-hover-border-green:hover{border-color:#4CAF50!important}
.w3-border-light-green,.w3-hover-border-light-green:hover{border-color:#8bc34a!important}
.w3-border-indigo,.w3-hover-border-indigo:hover{border-color:#3f51b5!important}
.w3-border-khaki,.w3-hover-border-khaki:hover{border-color:#f0e68c!important}
.w3-border-lime,.w3-hover-border-lime:hover{border-color:#cddc39!important}
.w3-border-orange,.w3-hover-border-orange:hover{border-color:#ff9800!important}
.w3-border-deep-orange,.w3-hover-border-deep-orange:hover{border-color:#ff5722!important}
.w3-border-pink,.w3-hover-border-pink:hover{border-color:#e91e63!important}
.w3-border-purple,.w3-hover-border-purple:hover{border-color:#9c27b0!important}
.w3-border-deep-purple,.w3-hover-border-deep-purple:hover{border-color:#673ab7!important}
.w3-border-red,.w3-hover-border-red:hover{border-color:#f44336!important}
.w3-border-sand,.w3-hover-border-sand:hover{border-color:#fdf5e6!important}
.w3-border-teal,.w3-hover-border-teal:hover{border-color:#009688!important}
.w3-border-yellow,.w3-hover-border-yellow:hover{border-color:#ffeb3b!important}
.w3-border-white,.w3-hover-border-white:hover{border-color:#fff!important}
.w3-border-black,.w3-hover-border-black:hover{border-color:#000!important}
.w3-border-grey,.w3-hover-border-grey:hover,.w3-border-gray,.w3-hover-border-gray:hover{border-color:#9e9e9e!important}
.w3-border-light-grey,.w3-hover-border-light-grey:hover,.w3-border-light-gray,.w3-hover-border-light-gray:hover{border-color:#f1f1f1!important}
.w3-border-dark-grey,.w3-hover-border-dark-grey:hover,.w3-border-dark-gray,.w3-hover-border-dark-gray:hover{border-color:#616161!important}
.w3-border-pale-red,.w3-hover-border-pale-red:hover{border-color:#ffe7e7!important}.w3-border-pale-green,.w3-hover-border-pale-green:hover{border-color:#e7ffe7!important}
.w3-border-pale-yellow,.w3-hover-border-pale-yellow:hover{border-color:#ffffcc!important}.w3-border-pale-blue,.w3-hover-border-pale-blue:hover{border-color:#e7ffff!important}

View File

@ -0,0 +1,171 @@
<!DOCTYPE html>
<html>
<title>Mabox Color Menu</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="./css/w3.css">
<style>
body{
background-color:#222222;
color: #909090
}
div.fixed {
position: fixed;
top: 0;
right: 0;
width: 200px;
}
div.fixeddown {
position: fixed;
bottom:0;
right:0;
}
</style>
<body>
<div class="w3-sidebar w3-bar-block w3-dark-grey w3-card" style="width:160px">
<div class="w3-center w3-margin"><img src="./img/mbxcolors.png" onclick="openTab(event, 'ColorMenu')"></div>
<button class="w3-bar-item w3-button w3-small tablink" onclick="openTab(event, 'ColorMenu')">ColorMenu</button>
<button class="w3-bar-item w3-button w3-small tablink" onclick="openTab(event, 'Collect')">Collecting Colors</button>
<button class="w3-bar-item w3-button w3-small tablink" onclick="openTab(event, 'Copy')">Color codes</button>
<button class="w3-bar-item w3-button w3-small tablink" onclick="openTab(event, 'Palette')">Palette Management</button>
<button class="w3-bar-item w3-button w3-small tablink" onclick="openTab(event, 'Wallpaper')">Wallpaper Colors</button>
<button class="w3-bar-item w3-button w3-small tablink" onclick="openTab(event, 'Imagick')">ImageMagick colors</button>
<button class="w3-bar-item w3-button w3-small tablink" onclick="openTab(event, 'Settings')">Settings</button>
</div>
<div style="margin-left:160px;" class="w3-small">
<section id="ColorMenu" class="w3-container tab" style="min-height:100vh;">
<div class="w3-container">
<h2>Color Menu</h2>
<p>an unusual tool that can help you work with colors</p>
<i>development version</i>
<p><ul><li>collect colors from the screen and manage palettes</li>
<li>copy or paste color codes (hex, rgb or rgba)</li>
<li>autogenarate color palette from current wallpaper</li></ul>
</p>
<a class="w3-button w3-round w3-small w3-lime w3-margin" href="run://mbxcolors">Launch Color Menu</a>
</div>
<div class="fixeddown">
<div class="w3-bar w3-tiny">
<div class="w3-bar-item">Mabox Linux Links:</div>
<a href="https://maboxlinux.org" class="w3-bar-item w3-hover-green">www</a>
<a href="https://forum.maboxlinux.org" class="w3-bar-item w3-hover-green">forum</a>
<a href="https://manual.maboxlinux.org/en" class="w3-bar-item w3-hover-green">manual</a>
<a href="https://ko-fi.com/maboxlinux" class="w3-bar-item w3-hover-green">donate</a>
</div>
</div>
</section>
<section id="Collect" class="w3-container tab" style="display:none;min-height:100vh;">
<div class="fixed"><a class="w3-button w3-round w3-small w3-lime w3-margin" href="run://mbxcolors">Launch Color Menu</a></div>
<h2>Collecting colors</h2>
<p></p>
</section>
<section id="Copy" class="w3-container tab" style="display:none;min-height:100vh">
<div class="fixed"><a class="w3-button w3-round w3-small w3-lime w3-margin" href="run://mbxcolors">Launch Color Menu</a></div>
<h2>Copy or paste color codes</h2>
<p>By clicking on color in Color Menu you can <strong>copy</strong> or <strong>paste</strong> color code in needed format - depending how Colormenu is configured.</p>
<h4>Actions</h4>
<table class="w3-table w3-bordered w3-dark-grey w3-small">
<tr class="w3-teal">
<th>Action</th>
<th>Description</th>
</tr>
<tr>
<td><a class="w3-btn w3-yellow w3-tiny" href="run://mbxcolors setvar action=copy">Copy</a></td>
<td>copy color code to the clipboard</td>
</tr>
<tr>
<td><a class="w3-btn w3-yellow w3-tiny" href="run://mbxcolors setvar action=paste">Paste</a></td>
<td>paste color code immadietely in cursor position</td>
</tr>
</table>
<h4>Formats</h4>
<table class="w3-table w3-bordered w3-dark-grey w3-small">
<tr class="w3-teal">
<th>Format</th>
<th>Description</th>
</tr>
<tr>
<td><a class="w3-btn w3-yellow w3-tiny" href="run://mbxcolors setvar format=hex">hex</a></td>
<td>hexadecimal <em>#4e8cd6</em></td>
</tr>
<tr>
<td><a class="w3-btn w3-yellow w3-tiny" href="run://mbxcolors setvar format=rgb">rgb</a></td>
<td>rgb <em>rgb(78, 140, 214)</em></td>
</tr>
<tr>
<td><a class="w3-btn w3-yellow w3-tiny" href="run://mbxcolors setvar format=rgba">rgba</a></td>
<td>rgba<em>rgba(78, 140, 214, 1.0)</em></td>
</tr>
</table>
</section>
<section id="Palette" class="w3-container tab" style="display:none;min-height:100vh">
<div class="fixed"><a class="w3-button w3-round w3-small w3-lime w3-margin" href="run://mbxcolors">Launch Color Menu</a></div>
<h2>Palette management</h2>
<p>Color Menu comes with several built-in color palettes.</p><p> It also generates color palette from currently used wallpaper automatically.</p>
<p>You can create additional own palettes from colors picked from screen or image.</p>
<h4>Pallette format</h4>
</section>
</section>
<section id="Wallpaper" class="w3-container tab" style="display:none;min-height:100vh">
<div class="fixed"><a class="w3-button w3-round w3-small w3-lime w3-margin" href="run://mbxcolors">Launch Color Menu</a></div>
<h2>Wallpaper Colors</h2>
<p></p>
</section>
</section>
<section id="Imagick" class="w3-container tab" style="display:none;min-height:100vh">
<div class="fixed"><a class="w3-button w3-round w3-tiny w3-lime w3-margin w3-display-topright" href="run://mbxcolors imagick">Launch ImageMagick colors selector</a></div>
<h2>ImageMagick colors selector</h2>
<p>ImageMagick colors selector let you pick color codes from a list of named colors recognized by ImageMagick.</p>
</section>
<section id="Settings" class="w3-container tab" style="display:none;min-height:100vh">
<h2>Settings</h2>
<p> </p>
</section>
</div>
<script>
function openTab(evt, tabName) {
var i, x, tablinks;
x = document.getElementsByClassName("tab");
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
tablinks = document.getElementsByClassName("tablink");
for (i = 0; i < x.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" w3-gray", "");
}
document.getElementById(tabName).style.display = "block";
evt.currentTarget.className += " w3-gray";
}
function myFunction() {
var input, filter, table, tr, td, i;
input = document.getElementById("myInput");
filter = input.value.toUpperCase();
table = document.getElementById("myTable");
tr = table.getElementsByTagName("tr");
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[0];
if (td) {
txtValue = td.textContent || td.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}
}
}
}
</script>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 B

View File

@ -0,0 +1,676 @@
#000000 black
#ff0000 red
#ff00ff magenta
#008000 green
#00ffff cyan
#0000ff blue
#ffff00 yellow
#ffffff white
#f0f8ff AliceBlue
#faebd7 AntiqueWhite
#ffefdb AntiqueWhite1
#eedfcc AntiqueWhite2
#cdc0b0 AntiqueWhite3
#8b8378 AntiqueWhite4
#00ffff aqua
#7fffd4 aquamarine
#7fffd4 aquamarine1
#76eec6 aquamarine2
#66cdaa aquamarine3
#458b74 aquamarine4
#f0ffff azure
#f0ffff azure1
#e0eeee azure2
#c1cdcd azure3
#838b8b azure4
#f5f5dc beige
#ffe4c4 bisque
#ffe4c4 bisque1
#eed5b7 bisque2
#cdb79e bisque3
#8b7d6b bisque4
#ffebcd BlanchedAlmond
#0000ff blue1
#0000ee blue2
#0000cd blue3
#00008b blue4
#8a2be2 BlueViolet
#a52a2a brown
#ff4040 brown1
#ee3b3b brown2
#cd3333 brown3
#8b2323 brown4
#deb887 burlywood
#ffd39b burlywood1
#eec591 burlywood2
#cdaa7d burlywood3
#8b7355 burlywood4
#5f9ea0 CadetBlue
#98f5ff CadetBlue1
#8ee5ee CadetBlue2
#7ac5cd CadetBlue3
#53868b CadetBlue4
#7fff00 chartreuse
#7fff00 chartreuse1
#76ee00 chartreuse2
#66cd00 chartreuse3
#458b00 chartreuse4
#d2691e chocolate
#ff7f24 chocolate1
#ee7621 chocolate2
#cd661d chocolate3
#8b4513 chocolate4
#ff7f50 coral
#ff7256 coral1
#ee6a50 coral2
#cd5b45 coral3
#8b3e2f coral4
#6495ed CornflowerBlue
#fff8dc cornsilk
#fff8dc cornsilk1
#eee8cd cornsilk2
#cdc8b1 cornsilk3
#8b8878 cornsilk4
#dc143c crimson
#00ffff cyan1
#00eeee cyan2
#00cdcd cyan3
#008b8b cyan4
#00008b DarkBlue
#008b8b DarkCyan
#b8860b DarkGoldenrod
#ffb90f DarkGoldenrod1
#eead0e DarkGoldenrod2
#cd950c DarkGoldenrod3
#8b6508 DarkGoldenrod4
#a9a9a9 DarkGray
#006400 DarkGreen
#a9a9a9 DarkGrey
#bdb76b DarkKhaki
#8b008b DarkMagenta
#556b2f DarkOliveGreen
#caff70 DarkOliveGreen1
#bcee68 DarkOliveGreen2
#a2cd5a DarkOliveGreen3
#6e8b3d DarkOliveGreen4
#ff8c00 DarkOrange
#ff7f00 DarkOrange1
#ee7600 DarkOrange2
#cd6600 DarkOrange3
#8b4500 DarkOrange4
#9932cc DarkOrchid
#bf3eff DarkOrchid1
#b23aee DarkOrchid2
#9a32cd DarkOrchid3
#68228b DarkOrchid4
#8b0000 DarkRed
#e9967a DarkSalmon
#8fbc8f DarkSeaGreen
#c1ffc1 DarkSeaGreen1
#b4eeb4 DarkSeaGreen2
#9bcd9b DarkSeaGreen3
#698b69 DarkSeaGreen4
#483d8b DarkSlateBlue
#2f4f4f DarkSlateGray
#97ffff DarkSlateGray1
#8deeee DarkSlateGray2
#79cdcd DarkSlateGray3
#528b8b DarkSlateGray4
#2f4f4f DarkSlateGrey
#00ced1 DarkTurquoise
#9400d3 DarkViolet
#ff1493 DeepPink
#ff1493 DeepPink1
#ee1289 DeepPink2
#cd1076 DeepPink3
#8b0a50 DeepPink4
#00bfff DeepSkyBlue
#00bfff DeepSkyBlue1
#00b2ee DeepSkyBlue2
#009acd DeepSkyBlue3
#00688b DeepSkyBlue4
#696969 DimGray
#696969 DimGrey
#1e90ff DodgerBlue
#1e90ff DodgerBlue1
#1c86ee DodgerBlue2
#1874cd DodgerBlue3
#104e8b DodgerBlue4
#b22222 firebrick
#ff3030 firebrick1
#ee2c2c firebrick2
#cd2626 firebrick3
#8b1a1a firebrick4
#fffaf0 FloralWhite
#228b22 ForestGreen
#808080 fractal
#000000 freeze
#ff00ff fuchsia
#dcdcdc gainsboro
#f8f8ff GhostWhite
#ffd700 gold
#ffd700 gold1
#eec900 gold2
#cdad00 gold3
#8b7500 gold4
#daa520 goldenrod
#ffc125 goldenrod1
#eeb422 goldenrod2
#cd9b1d goldenrod3
#8b6914 goldenrod4
#7e7e7e gray
#bebebe gray
#000000 gray0
#030303 gray1
#1a1a1a gray10
#ffffff gray100
#ffffff gray100
#1c1c1c gray11
#1f1f1f gray12
#212121 gray13
#242424 gray14
#262626 gray15
#292929 gray16
#2b2b2b gray17
#2e2e2e gray18
#303030 gray19
#050505 gray2
#333333 gray20
#363636 gray21
#383838 gray22
#3b3b3b gray23
#3d3d3d gray24
#404040 gray25
#424242 gray26
#454545 gray27
#474747 gray28
#4a4a4a gray29
#080808 gray3
#4d4d4d gray30
#4f4f4f gray31
#525252 gray32
#545454 gray33
#575757 gray34
#595959 gray35
#5c5c5c gray36
#5e5e5e gray37
#616161 gray38
#636363 gray39
#0a0a0a gray4
#666666 gray40
#696969 gray41
#6b6b6b gray42
#6e6e6e gray43
#707070 gray44
#737373 gray45
#757575 gray46
#787878 gray47
#7a7a7a gray48
#7d7d7d gray49
#0d0d0d gray5
#7f7f7f gray50
#828282 gray51
#858585 gray52
#878787 gray53
#8a8a8a gray54
#8c8c8c gray55
#8f8f8f gray56
#919191 gray57
#949494 gray58
#969696 gray59
#0f0f0f gray6
#999999 gray60
#9c9c9c gray61
#9e9e9e gray62
#a1a1a1 gray63
#a3a3a3 gray64
#a6a6a6 gray65
#a8a8a8 gray66
#ababab gray67
#adadad gray68
#b0b0b0 gray69
#121212 gray7
#b3b3b3 gray70
#b5b5b5 gray71
#b8b8b8 gray72
#bababa gray73
#bdbdbd gray74
#bfbfbf gray75
#c2c2c2 gray76
#c4c4c4 gray77
#c7c7c7 gray78
#c9c9c9 gray79
#141414 gray8
#cccccc gray80
#cfcfcf gray81
#d1d1d1 gray82
#d4d4d4 gray83
#d6d6d6 gray84
#d9d9d9 gray85
#dbdbdb gray86
#dedede gray87
#e0e0e0 gray88
#e3e3e3 gray89
#171717 gray9
#e5e5e5 gray90
#e8e8e8 gray91
#ebebeb gray92
#ededed gray93
#f0f0f0 gray94
#f2f2f2 gray95
#f5f5f5 gray96
#f7f7f7 gray97
#fafafa gray98
#fcfcfc gray99
#00ff00 green
#00ff00 green1
#00ee00 green2
#00cd00 green3
#008b00 green4
#adff2f GreenYellow
#bebebe grey
#000000 grey0
#030303 grey1
#1a1a1a grey10
#ffffff grey100
#1c1c1c grey11
#1f1f1f grey12
#212121 grey13
#242424 grey14
#262626 grey15
#292929 grey16
#2b2b2b grey17
#2e2e2e grey18
#303030 grey19
#050505 grey2
#333333 grey20
#363636 grey21
#383838 grey22
#3b3b3b grey23
#3d3d3d grey24
#404040 grey25
#424242 grey26
#454545 grey27
#474747 grey28
#4a4a4a grey29
#080808 grey3
#4d4d4d grey30
#4f4f4f grey31
#525252 grey32
#545454 grey33
#575757 grey34
#595959 grey35
#5c5c5c grey36
#5e5e5e grey37
#616161 grey38
#636363 grey39
#0a0a0a grey4
#666666 grey40
#696969 grey41
#6b6b6b grey42
#6e6e6e grey43
#707070 grey44
#737373 grey45
#757575 grey46
#787878 grey47
#7a7a7a grey48
#7d7d7d grey49
#0d0d0d grey5
#7f7f7f grey50
#828282 grey51
#858585 grey52
#878787 grey53
#8a8a8a grey54
#8c8c8c grey55
#8f8f8f grey56
#919191 grey57
#949494 grey58
#969696 grey59
#0f0f0f grey6
#999999 grey60
#9c9c9c grey61
#9e9e9e grey62
#a1a1a1 grey63
#a3a3a3 grey64
#a6a6a6 grey65
#a8a8a8 grey66
#ababab grey67
#adadad grey68
#b0b0b0 grey69
#121212 grey7
#b3b3b3 grey70
#b5b5b5 grey71
#b8b8b8 grey72
#bababa grey73
#bdbdbd grey74
#bfbfbf grey75
#c2c2c2 grey76
#c4c4c4 grey77
#c7c7c7 grey78
#c9c9c9 grey79
#141414 grey8
#cccccc grey80
#cfcfcf grey81
#d1d1d1 grey82
#d4d4d4 grey83
#d6d6d6 grey84
#d9d9d9 grey85
#dbdbdb grey86
#dedede grey87
#e0e0e0 grey88
#e3e3e3 grey89
#171717 grey9
#e5e5e5 grey90
#e8e8e8 grey91
#ebebeb grey92
#ededed grey93
#f0f0f0 grey94
#f2f2f2 grey95
#f5f5f5 grey96
#f7f7f7 grey97
#fafafa grey98
#fcfcfc grey99
#f0fff0 honeydew
#f0fff0 honeydew1
#e0eee0 honeydew2
#c1cdc1 honeydew3
#838b83 honeydew4
#ff69b4 HotPink
#ff6eb4 HotPink1
#ee6aa7 HotPink2
#cd6090 HotPink3
#8b3a62 HotPink4
#cd5c5c IndianRed
#ff6a6a IndianRed1
#ee6363 IndianRed2
#cd5555 IndianRed3
#8b3a3a IndianRed4
#4b0082 indigo
#fffff0 ivory
#fffff0 ivory1
#eeeee0 ivory2
#cdcdc1 ivory3
#8b8b83 ivory4
#f0e68c khaki
#fff68f khaki1
#eee685 khaki2
#cdc673 khaki3
#8b864e khaki4
#e6e6fa lavender
#fff0f5 LavenderBlush
#fff0f5 LavenderBlush1
#eee0e5 LavenderBlush2
#cdc1c5 LavenderBlush3
#8b8386 LavenderBlush4
#7cfc00 LawnGreen
#fffacd LemonChiffon
#fffacd LemonChiffon1
#eee9bf LemonChiffon2
#cdc9a5 LemonChiffon3
#8b8970 LemonChiffon4
#add8e6 LightBlue
#bfefff LightBlue1
#b2dfee LightBlue2
#9ac0cd LightBlue3
#68838b LightBlue4
#f08080 LightCoral
#e0ffff LightCyan
#e0ffff LightCyan1
#d1eeee LightCyan2
#b4cdcd LightCyan3
#7a8b8b LightCyan4
#eedd82 LightGoldenrod
#ffec8b LightGoldenrod1
#eedc82 LightGoldenrod2
#cdbe70 LightGoldenrod3
#8b814c LightGoldenrod4
#fafad2 LightGoldenrodYellow
#d3d3d3 LightGray
#90ee90 LightGreen
#d3d3d3 LightGrey
#ffb6c1 LightPink
#ffaeb9 LightPink1
#eea2ad LightPink2
#cd8c95 LightPink3
#8b5f65 LightPink4
#ffa07a LightSalmon
#ffa07a LightSalmon1
#ee9572 LightSalmon2
#cd8162 LightSalmon3
#8b5742 LightSalmon4
#20b2aa LightSeaGreen
#87cefa LightSkyBlue
#b0e2ff LightSkyBlue1
#a4d3ee LightSkyBlue2
#8db6cd LightSkyBlue3
#607b8b LightSkyBlue4
#8470ff LightSlateBlue
#778899 LightSlateGray
#778899 LightSlateGrey
#b0c4de LightSteelBlue
#cae1ff LightSteelBlue1
#bcd2ee LightSteelBlue2
#a2b5cd LightSteelBlue3
#6e7b8b LightSteelBlue4
#ffffe0 LightYellow
#ffffe0 LightYellow1
#eeeed1 LightYellow2
#cdcdb4 LightYellow3
#8b8b7a LightYellow4
#00ff00 lime
#32cd32 LimeGreen
#faf0e6 linen
#ff00ff magenta1
#ee00ee magenta2
#cd00cd magenta3
#8b008b magenta4
#800000 maroon
#b03060 maroon
#ff34b3 maroon1
#ee30a7 maroon2
#cd2990 maroon3
#8b1c62 maroon4
#66cdaa MediumAquamarine
#0000cd MediumBlue
#32814b MediumForestGreen
#d1c166 MediumGoldenRod
#ba55d3 MediumOrchid
#e066ff MediumOrchid1
#d15fee MediumOrchid2
#b452cd MediumOrchid3
#7a378b MediumOrchid4
#9370db MediumPurple
#ab82ff MediumPurple1
#9f79ee MediumPurple2
#8968cd MediumPurple3
#5d478b MediumPurple4
#3cb371 MediumSeaGreen
#7b68ee MediumSlateBlue
#00fa9a MediumSpringGreen
#48d1cc MediumTurquoise
#c71585 MediumVioletRed
#191970 MidnightBlue
#f5fffa MintCream
#ffe4e1 MistyRose
#ffe4e1 MistyRose1
#eed5d2 MistyRose2
#cdb7b5 MistyRose3
#8b7d7b MistyRose4
#ffe4b5 moccasin
#ffdead NavajoWhite
#ffdead NavajoWhite1
#eecfa1 NavajoWhite2
#cdb38b NavajoWhite3
#8b795e NavajoWhite4
#000080 navy
#000080 NavyBlue
#000000 matte
#fdf5e6 OldLace
#808000 olive
#6b8e23 OliveDrab
#c0ff3e OliveDrab1
#b3ee3a OliveDrab2
#9acd32 OliveDrab3
#698b22 OliveDrab4
#000000 opaque
#ffa500 orange
#ffa500 orange1
#ee9a00 orange2
#cd8500 orange3
#8b5a00 orange4
#ff4500 OrangeRed
#ff4500 OrangeRed1
#ee4000 OrangeRed2
#cd3700 OrangeRed3
#8b2500 OrangeRed4
#da70d6 orchid
#ff83fa orchid1
#ee7ae9 orchid2
#cd69c9 orchid3
#8b4789 orchid4
#eee8aa PaleGoldenrod
#98fb98 PaleGreen
#9aff9a PaleGreen1
#90ee90 PaleGreen2
#7ccd7c PaleGreen3
#548b54 PaleGreen4
#afeeee PaleTurquoise
#bbffff PaleTurquoise1
#aeeeee PaleTurquoise2
#96cdcd PaleTurquoise3
#668b8b PaleTurquoise4
#db7093 PaleVioletRed
#ff82ab PaleVioletRed1
#ee799f PaleVioletRed2
#cd6889 PaleVioletRed3
#8b475d PaleVioletRed4
#ffefd5 PapayaWhip
#ffdab9 PeachPuff
#ffdab9 PeachPuff1
#eecbad PeachPuff2
#cdaf95 PeachPuff3
#8b7765 PeachPuff4
#cd853f peru
#ffc0cb pink
#ffb5c5 pink1
#eea9b8 pink2
#cd919e pink3
#8b636c pink4
#dda0dd plum
#ffbbff plum1
#eeaeee plum2
#cd96cd plum3
#8b668b plum4
#b0e0e6 PowderBlue
#800080 purple
#a020f0 purple
#9b30ff purple1
#912cee purple2
#7d26cd purple3
#551a8b purple4
#ff0000 red1
#ee0000 red2
#cd0000 red3
#8b0000 red4
#bc8f8f RosyBrown
#ffc1c1 RosyBrown1
#eeb4b4 RosyBrown2
#cd9b9b RosyBrown3
#8b6969 RosyBrown4
#4169e1 RoyalBlue
#4876ff RoyalBlue1
#436eee RoyalBlue2
#3a5fcd RoyalBlue3
#27408b RoyalBlue4
#8b4513 SaddleBrown
#fa8072 salmon
#ff8c69 salmon1
#ee8262 salmon2
#cd7054 salmon3
#8b4c39 salmon4
#f4a460 SandyBrown
#2e8b57 SeaGreen
#54ff9f SeaGreen1
#4eee94 SeaGreen2
#43cd80 SeaGreen3
#2e8b57 SeaGreen4
#fff5ee seashell
#fff5ee seashell1
#eee5de seashell2
#cdc5bf seashell3
#8b8682 seashell4
#a0522d sienna
#ff8247 sienna1
#ee7942 sienna2
#cd6839 sienna3
#8b4726 sienna4
#c0c0c0 silver
#87ceeb SkyBlue
#87ceff SkyBlue1
#7ec0ee SkyBlue2
#6ca6cd SkyBlue3
#4a708b SkyBlue4
#6a5acd SlateBlue
#836fff SlateBlue1
#7a67ee SlateBlue2
#6959cd SlateBlue3
#473c8b SlateBlue4
#708090 SlateGray
#c6e2ff SlateGray1
#b9d3ee SlateGray2
#9fb6cd SlateGray3
#6c7b8b SlateGray4
#708090 SlateGrey
#fffafa snow
#fffafa snow1
#eee9e9 snow2
#cdc9c9 snow3
#8b8989 snow4
#00ff7f SpringGreen
#00ff7f SpringGreen1
#00ee76 SpringGreen2
#00cd66 SpringGreen3
#008b45 SpringGreen4
#4682b4 SteelBlue
#63b8ff SteelBlue1
#5cacee SteelBlue2
#4f94cd SteelBlue3
#36648b SteelBlue4
#d2b48c tan
#ffa54f tan1
#ee9a49 tan2
#cd853f tan3
#8b5a2b tan4
#008080 teal
#d8bfd8 thistle
#ffe1ff thistle1
#eed2ee thistle2
#cdb5cd thistle3
#8b7b8b thistle4
#ff6347 tomato
#ff6347 tomato1
#ee5c42 tomato2
#cd4f39 tomato3
#8b3626 tomato4
#40e0d0 turquoise
#00f5ff turquoise1
#00e5ee turquoise2
#00c5cd turquoise3
#00868b turquoise4
#ee82ee violet
#d02090 VioletRed
#ff3e96 VioletRed1
#ee3a8c VioletRed2
#cd3278 VioletRed3
#8b2252 VioletRed4
#f5deb3 wheat
#ffe7ba wheat1
#eed8ae wheat2
#cdba96 wheat3
#8b7e66 wheat4
#f5f5f5 WhiteSmoke
#ffff00 yellow1
#eeee00 yellow2
#cdcd00 yellow3
#8b8b00 yellow4
#9acd32 YellowGreen

View File

@ -0,0 +1,11 @@
#282a36
#44475a
#f8f8f2
#6272a4
#8be9fd
#50fa7b
#ffb86c
#ff79c6
#bd93f9
#ff5555
#f1fa8c

View File

@ -0,0 +1,44 @@
#FFFFFF
#F5F6E8
#F8C09D
#EF937E
#EA676C
#FFF79C
#FED883
#FEBE40
#EC7523
#E3482C
#DC1C4B
#B31E48
#EE8EB4
#DD527C
#DC166D
#9B1D5A
#6F1E49
#DD94C1
#B557A1
#612D82
#432355
#5E79BC
#87D1EE
#2BB3CD
#2276BC
#1D5C87
#7ECDCA
#30B1AD
#1F8B95
#50B86B
#C9DB53
#8FC23F
#D0AD9A
#9A605C
#66342D
#311A12
#D0E2EE
#AABFD0
#7D8E9E
#5B6571
#3A4D5C
#143441
#0F2437
#000000

View File

@ -0,0 +1,24 @@
#1d2021
#282828
#3c3836
#504945
#32361a
#333e34
#3c1f1e
#442e2d
#0d3138
#2e3b3b
#473c29
#32302f
#d4be98
#ddc7a1
#ea6962
#e78a4e
#d8a657
#a9b665
#89b482
#7daea3
#d3869b
#7c6f64
#928374
#a89984

View File

@ -0,0 +1,19 @@
#F44336 red
#E91E63 pink
#9C27B0 purple
#673AB7 deep purple
#3F51B5 indigo
#2196F3 blue
#03A9F4 light blue
#00BCD4 cyan
#009688 teal
#4CAF50 green
#8BC34A light green
#CDDC39 lime
#FFEB3B yellow
#FFC107 amber
#FF9800 orange
#FF5722 deep orange
#795548 brown
#9E9E9E grey
#607D8B blue grey

View File

@ -0,0 +1,11 @@
#94b273
#6cabcd
#5b73c4
#aa876a
#9d9d9d
#db9d61
#c76199
#8c6ec9
#c15b58
#c8ac69
#5aaa9a

View File

@ -0,0 +1,16 @@
#2e3440
#3b4252
#434c5e
#4c566a
#d8dee9
#e5e9f0
#eceff4
#8fbcbb
#88c0d0
#81a1c1
#5e81ac
#bf616a
#d08770
#ebcb8b
#a3be8c
#b48ead

View File

@ -0,0 +1,10 @@
#e93a9a
#e93d58
#e9643a
#e8cb2d
#3dd425
#00d3b8
#3daee9
#b875dc
#926ee4
#686b6f

View File

@ -0,0 +1,8 @@
#E95420
#18b0b0
#3584e4
#0e8420
#c748ba
#77216f
#c7162b
#f4a100