SVG icon set
git clone https://git.lucas.co/cce-icons.git
Initial commit: cce icon set
SVG/PNG sources, generated 40x40 xpm output, and the ImageMagick
build script that colorizes and converts them.
Co-Authored-By: Claude Fable 5 <[email protected]>
.gitignore | 4 ++++
build.sh | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
png/minus.png | Bin 0 -> 10314 bytes
png/plus.png | Bin 0 -> 32729 bytes
png/star.png | Bin 0 -> 45455 bytes
png/x.png | Bin 0 -> 24981 bytes
svg/minus.svg | 9 +++++++++
svg/plus.svg | 11 +++++++++++
svg/star.svg | 12 ++++++++++++
svg/x.svg | 11 +++++++++++
xpm/minus.xpm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
xpm/plus.xpm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
xpm/star.xpm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
xpm/x.xpm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
14 files changed, 292 insertions(+)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..63d9f24
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+# local scratch
+tmp_*
+*.hip
+*.hiplc
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000..1e62ea0
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+# Configuration
+ICON_SIZE="40x40"
+ICON_COLOR="#ae8593" # Mixed Pink and Green
+SVG_DIR="./svg"
+PNG_DIR="./png"
+OUTPUT_DIR="./xpm"
+
+# Ensure output directory exists
+mkdir -p "$OUTPUT_DIR"
+
+echo "✨ CCE Icons Builder"
+echo "-----------------------"
+echo "Target Color: $ICON_COLOR"
+
+# Check for ImageMagick
+if ! command -v magick &> /dev/null; then
+ echo "❌ Error: ImageMagick (magick) is not installed."
+ exit 1
+fi
+
+count=0
+
+# Convert SVGs
+for svg in "$SVG_DIR"/*.svg; do
+ [ -e "$svg" ] || continue
+ filename=$(basename -- "$svg")
+ name="${filename%.*}"
+ output="$OUTPUT_DIR/$name.xpm"
+ echo "🎨 Converting & Coloring: $filename -> $name.xpm"
+ # -fill + -colorize 100% applies the color while preserving alpha
+ magick -background none "$svg" -fill "$ICON_COLOR" -colorize 100% -resize "$ICON_SIZE" "$output"
+ ((count++))
+done
+
+# Convert PNGs
+for png in "$PNG_DIR"/*.png; do
+ [ -e "$png" ] || continue
+ filename=$(basename -- "$png")
+ name="${filename%.*}"
+ output="$OUTPUT_DIR/$name.xpm"
+ echo "🎨 Converting & Coloring: $filename -> $name.xpm"
+ magick -background none "$png" -fill "$ICON_COLOR" -colorize 100% -resize "$ICON_SIZE" "$output"
+ ((count++))
+done
+
+if [ "$count" -eq 0 ]; then
+ echo "📭 No source files found."
+else
+ echo "-----------------------"
+ echo "✅ Successfully converted $count icons to $OUTPUT_DIR"
+fi
diff --git a/png/minus.png b/png/minus.png
new file mode 100644
index 0000000..f335085
Binary files /dev/null and b/png/minus.png differ
diff --git a/png/plus.png b/png/plus.png
new file mode 100644
index 0000000..a0517d7
Binary files /dev/null and b/png/plus.png differ
diff --git a/png/star.png b/png/star.png
new file mode 100644
index 0000000..a056d84
Binary files /dev/null and b/png/star.png differ
diff --git a/png/x.png b/png/x.png
new file mode 100644
index 0000000..620d808
Binary files /dev/null and b/png/x.png differ
diff --git a/svg/minus.svg b/svg/minus.svg
new file mode 100644
index 0000000..bdb6edb
--- /dev/null
+++ b/svg/minus.svg
@@ -0,0 +1,9 @@
+<svg width="40" height="40" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+ <!-- Stylized rounded minus -->
+ <g fill="#f1fa8c">
+ <!-- Horizontal bar -->
+ <rect x="4" y="17" width="32" height="6" rx="3" />
+ </g>
+ <!-- Bright center -->
+ <circle cx="20" cy="20" r="3" fill="#ffffff" />
+</svg>
diff --git a/svg/plus.svg b/svg/plus.svg
new file mode 100644
index 0000000..73ab8c8
--- /dev/null
+++ b/svg/plus.svg
@@ -0,0 +1,11 @@
+<svg width="40" height="40" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+ <!-- Stylized rounded cross -->
+ <g fill="#f1fa8c">
+ <!-- Vertical bar -->
+ <rect x="17" y="4" width="6" height="32" rx="3" />
+ <!-- Horizontal bar -->
+ <rect x="4" y="17" width="32" height="6" rx="3" />
+ </g>
+ <!-- Bright center -->
+ <circle cx="20" cy="20" r="3" fill="#ffffff" />
+</svg>
diff --git a/svg/star.svg b/svg/star.svg
new file mode 100644
index 0000000..4467cbb
--- /dev/null
+++ b/svg/star.svg
@@ -0,0 +1,12 @@
+<svg width="40" height="40" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+ <g fill="#f1fa8c">
+ <!-- Pronounced lobes with wide outer edges and deep grooves -->
+ <path d="M20 20 L13 14 Q20 2 27 14 Z" transform="rotate(0 20 20)"/>
+ <path d="M20 20 L13 14 Q20 2 27 14 Z" transform="rotate(72 20 20)"/>
+ <path d="M20 20 L13 14 Q20 2 27 14 Z" transform="rotate(144 20 20)"/>
+ <path d="M20 20 L13 14 Q20 2 27 14 Z" transform="rotate(216 20 20)"/>
+ <path d="M20 20 L13 14 Q20 2 27 14 Z" transform="rotate(288 20 20)"/>
+ </g>
+ <!-- Bright center -->
+ <circle cx="20" cy="20" r="3" fill="#ffffff" />
+</svg>
diff --git a/svg/x.svg b/svg/x.svg
new file mode 100644
index 0000000..39ee914
--- /dev/null
+++ b/svg/x.svg
@@ -0,0 +1,11 @@
+<svg width="40" height="40" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+ <!-- Stylized rounded x -->
+ <g fill="#f1fa8c" transform="rotate(45 20 20)">
+ <!-- Vertical bar -->
+ <rect x="17" y="4" width="6" height="32" rx="3" />
+ <!-- Horizontal bar -->
+ <rect x="4" y="17" width="32" height="6" rx="3" />
+ </g>
+ <!-- Bright center -->
+ <circle cx="20" cy="20" r="3" fill="#ffffff" />
+</svg>
diff --git a/xpm/minus.xpm b/xpm/minus.xpm
new file mode 100644
index 0000000..9830da8
--- /dev/null
+++ b/xpm/minus.xpm
@@ -0,0 +1,48 @@
+/* XPM */
+static char *minus[] = {
+/* columns rows colors chars-per-pixel */
+"40 40 2 1 ",
+" c None",
+". c #AE8593",
+/* pixels */
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" .............................. ",
+" ................................ ",
+" ................................ ",
+" ................................ ",
+" ................................ ",
+" .............................. ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" "
+};
diff --git a/xpm/plus.xpm b/xpm/plus.xpm
new file mode 100644
index 0000000..9980b4a
--- /dev/null
+++ b/xpm/plus.xpm
@@ -0,0 +1,48 @@
+/* XPM */
+static char *plus[] = {
+/* columns rows colors chars-per-pixel */
+"40 40 2 1 ",
+" c None",
+". c #AE8593",
+/* pixels */
+" ",
+" ",
+" ",
+" ",
+" ... ",
+" .... ",
+" ...... ",
+" ...... ",
+" ...... ",
+" ...... ",
+" ...... ",
+" ...... ",
+" ...... ",
+" ...... ",
+" ...... ",
+" ...... ",
+" ...... ",
+" ............................ ",
+" ............................... ",
+" ................................ ",
+" ................................ ",
+" .............................. ",
+" ............................ ",
+" ...... ",
+" ...... ",
+" ...... ",
+" ...... ",
+" ...... ",
+" ...... ",
+" ...... ",
+" ...... ",
+" ...... ",
+" ...... ",
+" ...... ",
+" .... ",
+" .. ",
+" ",
+" ",
+" ",
+" "
+};
diff --git a/xpm/star.xpm b/xpm/star.xpm
new file mode 100644
index 0000000..20eabde
--- /dev/null
+++ b/xpm/star.xpm
@@ -0,0 +1,48 @@
+/* XPM */
+static char *star[] = {
+/* columns rows colors chars-per-pixel */
+"40 40 2 1 ",
+" c None",
+". c #AE8593",
+/* pixels */
+" ",
+" ",
+" ",
+" ",
+" ",
+" .. ",
+" ...... ",
+" ...... ",
+" ........ ",
+" ........ ",
+" .......... ",
+" .......... ",
+" ........ ",
+" ...... ........ ...... ",
+" ........ ...... ........ ",
+" .......... ...... .......... ",
+" ........... .... ........... ",
+" ............ .. ............ ",
+" ............ ............ ",
+" ............ ............ ",
+" ......... ......... ",
+" ... .. .. ... ",
+" ............ ",
+" ................ ",
+" ........ ........ ",
+" ........ ........ ",
+" ......... ......... ",
+" ......... ......... ",
+" ......... ......... ",
+" ......... ......... ",
+" ........ ........ ",
+" ...... ...... ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" "
+};
diff --git a/xpm/x.xpm b/xpm/x.xpm
new file mode 100644
index 0000000..2051879
--- /dev/null
+++ b/xpm/x.xpm
@@ -0,0 +1,48 @@
+/* XPM */
+static char *x[] = {
+/* columns rows colors chars-per-pixel */
+"40 40 2 1 ",
+" c None",
+". c #AE8593",
+/* pixels */
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" .... .... ",
+" ...... ...... ",
+" ....... ....... ",
+" ........ ........ ",
+" ......... ......... ",
+" ......... ......... ",
+" ......... ......... ",
+" .................. ",
+" ................ ",
+" .............. ",
+" ............ ",
+" .......... ",
+" .......... ",
+" ............ ",
+" .............. ",
+" ................ ",
+" .................. ",
+" ......... ......... ",
+" ......... ......... ",
+" ......... ......... ",
+" ........ ........ ",
+" ....... ....... ",
+" ...... ...... ",
+" .... .... ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" "
+};