From 91666f1ea95b0c4179633eb28c22df4b9f7839ff Mon Sep 17 00:00:00 2001 From: fox Date: Tue, 15 Nov 2022 00:20:18 -0600 Subject: [PATCH] add branding --- .gitmodules | 0 README.md | 51 ++++++++++++++-------- branding/png/treehouse-icon-small.png | Bin 0 -> 6995 bytes branding/png/treehouse-icon-wordmark.png | Bin 0 -> 4216 bytes branding/png/treehouse-icon.png | Bin 0 -> 9181 bytes branding/png/treehouse-logo-full.png | Bin 0 -> 6454 bytes emoji-convert.sh | 48 +++++++++++++++++--- {emoji => pride}/png/agender-flag.png | Bin {emoji => pride}/png/aromantic-flag.png | Bin {emoji => pride}/png/asexual-flag.png | Bin {emoji => pride}/png/bigender-flag.png | Bin {emoji => pride}/png/bisexual-flag.png | Bin {emoji => pride}/png/demisexual-flag.png | Bin {emoji => pride}/png/genderfluid-flag.png | Bin {emoji => pride}/png/genderqueer-flag.png | Bin {emoji => pride}/png/intersex-flag.png | Bin {emoji => pride}/png/lesbian-flag.png | Bin {emoji => pride}/png/lesbian2-flag.png | Bin {emoji => pride}/png/nonbinary-flag.png | Bin {emoji => pride}/png/pansexual-flag.png | Bin {emoji => pride}/png/polyamory-flag.png | Bin {emoji => pride}/png/progress-flag.png | Bin {emoji => pride}/png/progress2-flag.png | Bin {emoji => pride}/png/rainbow-flag.png | Bin {emoji => pride}/png/transgender-flag.png | Bin {emoji => pride}/svg/agender-flag.svg | 0 {emoji => pride}/svg/aromantic-flag.svg | 0 {emoji => pride}/svg/asexual-flag.svg | 0 {emoji => pride}/svg/bigender-flag.svg | 0 {emoji => pride}/svg/bisexual-flag.svg | 0 {emoji => pride}/svg/demisexual-flag.svg | 0 {emoji => pride}/svg/genderfluid-flag.svg | 0 {emoji => pride}/svg/genderqueer-flag.svg | 0 {emoji => pride}/svg/intersex-flag.svg | 0 {emoji => pride}/svg/lesbian-flag.svg | 0 {emoji => pride}/svg/lesbian2-flag.svg | 0 {emoji => pride}/svg/nonbinary-flag.svg | 0 {emoji => pride}/svg/pansexual-flag.svg | 0 {emoji => pride}/svg/polyamory-flag.svg | 0 {emoji => pride}/svg/progress-flag.svg | 0 {emoji => pride}/svg/progress2-flag.svg | 0 {emoji => pride}/svg/rainbow-flag.svg | 0 {emoji => pride}/svg/transgender-flag.svg | 0 43 files changed, 75 insertions(+), 24 deletions(-) create mode 100644 .gitmodules create mode 100644 branding/png/treehouse-icon-small.png create mode 100644 branding/png/treehouse-icon-wordmark.png create mode 100644 branding/png/treehouse-icon.png create mode 100644 branding/png/treehouse-logo-full.png rename {emoji => pride}/png/agender-flag.png (100%) rename {emoji => pride}/png/aromantic-flag.png (100%) rename {emoji => pride}/png/asexual-flag.png (100%) rename {emoji => pride}/png/bigender-flag.png (100%) rename {emoji => pride}/png/bisexual-flag.png (100%) rename {emoji => pride}/png/demisexual-flag.png (100%) rename {emoji => pride}/png/genderfluid-flag.png (100%) rename {emoji => pride}/png/genderqueer-flag.png (100%) rename {emoji => pride}/png/intersex-flag.png (100%) rename {emoji => pride}/png/lesbian-flag.png (100%) rename {emoji => pride}/png/lesbian2-flag.png (100%) rename {emoji => pride}/png/nonbinary-flag.png (100%) rename {emoji => pride}/png/pansexual-flag.png (100%) rename {emoji => pride}/png/polyamory-flag.png (100%) rename {emoji => pride}/png/progress-flag.png (100%) rename {emoji => pride}/png/progress2-flag.png (100%) rename {emoji => pride}/png/rainbow-flag.png (100%) rename {emoji => pride}/png/transgender-flag.png (100%) rename {emoji => pride}/svg/agender-flag.svg (100%) rename {emoji => pride}/svg/aromantic-flag.svg (100%) rename {emoji => pride}/svg/asexual-flag.svg (100%) rename {emoji => pride}/svg/bigender-flag.svg (100%) rename {emoji => pride}/svg/bisexual-flag.svg (100%) rename {emoji => pride}/svg/demisexual-flag.svg (100%) rename {emoji => pride}/svg/genderfluid-flag.svg (100%) rename {emoji => pride}/svg/genderqueer-flag.svg (100%) rename {emoji => pride}/svg/intersex-flag.svg (100%) rename {emoji => pride}/svg/lesbian-flag.svg (100%) rename {emoji => pride}/svg/lesbian2-flag.svg (100%) rename {emoji => pride}/svg/nonbinary-flag.svg (100%) rename {emoji => pride}/svg/pansexual-flag.svg (100%) rename {emoji => pride}/svg/polyamory-flag.svg (100%) rename {emoji => pride}/svg/progress-flag.svg (100%) rename {emoji => pride}/svg/progress2-flag.svg (100%) rename {emoji => pride}/svg/rainbow-flag.svg (100%) rename {emoji => pride}/svg/transgender-flag.svg (100%) diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index 822139c..1c06500 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,40 @@ # Treehouse Emoji -![:agender_flag:](emoji/png/agender-flag.png?raw=true ":agender_flag:") -![:aromantic_flag:](emoji/png/aromantic-flag.png?raw=true ":aromantic_flag:") -![:asexual_flag:](emoji/png/asexual-flag.png?raw=true ":asexual_flag:") -![:bigender_flag:](emoji/png/bigender-flag.png?raw=true ":bigender_flag:") -![:bisexual_flag:](emoji/png/bisexual-flag.png?raw=true ":bisexual_flag:") -![:demisexual_flag:](emoji/png/demisexual-flag.png?raw=true ":demisexual_flag:") -![:genderfluid_flag:](emoji/png/genderfluid-flag.png?raw=true ":genderfluid_flag:") -![:genderqueer_flag:](emoji/png/genderqueer-flag.png?raw=true ":genderqueer_flag:") -![:intersex_flag:](emoji/png/intersex-flag.png?raw=true ":intersex_flag:") -![:lesbian_flag:](emoji/png/lesbian-flag.png?raw=true ":lesbian_flag:") -![:lesbian2_flag:](emoji/png/lesbian2-flag.png?raw=true ":lesbian2_flag:") -![:nonbinary_flag:](emoji/png/nonbinary-flag.png?raw=true ":nonbinary_flag:") -![:pansexual_flag:](emoji/png/pansexual-flag.png?raw=true ":pansexual_flag:") -![:polyamory_flag:](emoji/png/polyamory-flag.png?raw=true ":polyamory_flag:") -![:prorgress_flag:](emoji/png/progress-flag.png?raw=true ":progress_flag:") -![:prorgress2_flag:](emoji/png/progress2-flag.png?raw=true ":progress2_flag:") -![:rainbow_flag:](emoji/png/rainbow-flag.png?raw=true ":rainbow_flag:") -![:transgender_flag:](emoji/png/transgender-flag.png?raw=true ":transgender_flag:") +## Pride Set + +![:agender_flag:](pride/png/agender-flag.png?raw=true ":agender_flag:") +![:aromantic_flag:](pride/png/aromantic-flag.png?raw=true ":aromantic_flag:") +![:asexual_flag:](pride/png/asexual-flag.png?raw=true ":asexual_flag:") +![:bigender_flag:](pride/png/bigender-flag.png?raw=true ":bigender_flag:") +![:bisexual_flag:](pride/png/bisexual-flag.png?raw=true ":bisexual_flag:") +![:demisexual_flag:](pride/png/demisexual-flag.png?raw=true ":demisexual_flag:") +![:genderfluid_flag:](pride/png/genderfluid-flag.png?raw=true ":genderfluid_flag:") +![:genderqueer_flag:](pride/png/genderqueer-flag.png?raw=true ":genderqueer_flag:") +![:intersex_flag:](pride/png/intersex-flag.png?raw=true ":intersex_flag:") +![:lesbian_flag:](pride/png/lesbian-flag.png?raw=true ":lesbian_flag:") +![:lesbian2_flag:](pride/png/lesbian2-flag.png?raw=true ":lesbian2_flag:") +![:nonbinary_flag:](pride/png/nonbinary-flag.png?raw=true ":nonbinary_flag:") +![:pansexual_flag:](pride/png/pansexual-flag.png?raw=true ":pansexual_flag:") +![:polyamory_flag:](pride/png/polyamory-flag.png?raw=true ":polyamory_flag:") +![:prorgress_flag:](pride/png/progress-flag.png?raw=true ":progress_flag:") +![:prorgress2_flag:](pride/png/progress2-flag.png?raw=true ":progress2_flag:") +![:rainbow_flag:](pride/png/rainbow-flag.png?raw=true ":rainbow_flag:") +![:transgender_flag:](pride/png/transgender-flag.png?raw=true ":transgender_flag:") + +## Branding + +![:treehouse_icon:](branding/png/treehouse-icon.png?raw=true ":treehouse_icon:") +![:treehouse_icon2:](branding/png/treehouse-icon-small.png?raw=true ":treehouse_icon2:") +![:treehouse_wordmark:](branding/png/treehouse-icon-wordmark.png?raw=true ":treehouse_wordmark:") +![:treehouse_logo:](branding/png/treehouse-logo-full.png?raw=true ":treehouse_logo:") ## Licenses -All Treehouse Emoji images have no copywrite and are published through the CC0 1.0 Universal (CC0 1.0) Public Domain Dedication. All other files are under The 3-Clause BSD License. +Images from the Treehouse Emoji Pride set are published through the CC0 1.0 Universal (CC0 1.0) Public Domain Dedication. + +All rights are reserved for images in the Treehouse Emoji Treehouse set. + +All other files are under The 3-Clause BSD License. ## Attribution diff --git a/branding/png/treehouse-icon-small.png b/branding/png/treehouse-icon-small.png new file mode 100644 index 0000000000000000000000000000000000000000..6198b0f71c2d7b82b77c82087486f37f683a6d1f GIT binary patch literal 6995 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 literal 0 HcmV?d00001 diff --git a/branding/png/treehouse-logo-full.png b/branding/png/treehouse-logo-full.png new file mode 100644 index 0000000000000000000000000000000000000000..d06298fde9e9bf837942265d4323f925011c07d6 GIT binary patch literal 6454 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 literal 0 HcmV?d00001 diff --git a/emoji-convert.sh b/emoji-convert.sh index c9510c3..bd1a542 100755 --- a/emoji-convert.sh +++ b/emoji-convert.sh @@ -1,13 +1,14 @@ LENGTH=128 MARGIN=1 WIDTH=126 -HEIGHT=84 +HEIGHT=84 # flags #ROUND=10 TEMP=`mktemp -d -p ""` -for svg_path in emoji/svg/*.svg; do - svg=${svg_path#"emoji/svg/"} +# pride flags +for svg_path in pride/svg/*.svg; do + svg=${svg_path#"pride/svg/"} # resize convert ${svg_path} \ -resize ${WIDTH}x${HEIGHT} \ @@ -29,11 +30,48 @@ for svg_path in emoji/svg/*.svg; do -gravity center \ $TEMP/margin-${svg%.svg}.png \ -extent ${LENGTH}x${LENGTH} \ - ./emoji/png/${svg%.svg}.png + ./pride/png/${svg%.svg}.png + echo ${svg%.svg} created +done + +# branding +for svg_path in branding/svg/*.svg; do + svg=${svg_path#"branding/svg/"} + # resize + convert ${svg_path} \ + -resize ${WIDTH}x${WIDTH} \ + $TEMP/resized-${svg%.svg}.png + if [[ $svg == "treehouse-icon-wordmark.svg" ]] \ + || [[ $svg == "treehouse-logo-full.svg" ]]; then + # round borders + magick $TEMP/resized-${svg%.svg}.png \ + \( +clone -alpha extract \ + -draw \ + 'fill black polygon 0,0 0,10 10,0 fill white circle 10,10 10,0' \ + \( +clone -flip \) -compose Multiply -composite \ + \( +clone -flop \) -compose Multiply -composite \ + \) -alpha off -compose CopyOpacity -composite \ + $TEMP/rounded-${svg%.svg}.png + else + # already rounded + cp $TEMP/resized-${svg%.svg}.png $TEMP/rounded-${svg%.svg}.png + fi + # add margin + convert $TEMP/rounded-${svg%.svg}.png \ + -bordercolor transparent \ + -border ${MARGIN} \ + $TEMP/margin-${svg%.svg}.png + # make square + convert -background transparent \ + -gravity center \ + $TEMP/margin-${svg%.svg}.png \ + -extent ${LENGTH}x${LENGTH} \ + ./branding/png/${svg%.svg}.png echo ${svg%.svg} created done rm -rf $TEMP # fix and remove metadata -exiftool -all= -overwrite_original ./emoji/png/* +exiftool -all= -overwrite_original ./pride/png/* +exiftool -all= -overwrite_original ./branding/png/* diff --git a/emoji/png/agender-flag.png b/pride/png/agender-flag.png similarity index 100% rename from emoji/png/agender-flag.png rename to pride/png/agender-flag.png diff --git a/emoji/png/aromantic-flag.png b/pride/png/aromantic-flag.png similarity index 100% rename from emoji/png/aromantic-flag.png rename to pride/png/aromantic-flag.png diff --git a/emoji/png/asexual-flag.png b/pride/png/asexual-flag.png similarity index 100% rename from emoji/png/asexual-flag.png rename to pride/png/asexual-flag.png diff --git a/emoji/png/bigender-flag.png b/pride/png/bigender-flag.png similarity index 100% rename from emoji/png/bigender-flag.png rename to pride/png/bigender-flag.png diff --git a/emoji/png/bisexual-flag.png b/pride/png/bisexual-flag.png similarity index 100% rename from emoji/png/bisexual-flag.png rename to pride/png/bisexual-flag.png diff --git a/emoji/png/demisexual-flag.png b/pride/png/demisexual-flag.png similarity index 100% rename from emoji/png/demisexual-flag.png rename to pride/png/demisexual-flag.png diff --git a/emoji/png/genderfluid-flag.png b/pride/png/genderfluid-flag.png similarity index 100% rename from emoji/png/genderfluid-flag.png rename to pride/png/genderfluid-flag.png diff --git a/emoji/png/genderqueer-flag.png b/pride/png/genderqueer-flag.png similarity index 100% rename from emoji/png/genderqueer-flag.png rename to pride/png/genderqueer-flag.png diff --git a/emoji/png/intersex-flag.png b/pride/png/intersex-flag.png similarity index 100% rename from emoji/png/intersex-flag.png rename to pride/png/intersex-flag.png diff --git a/emoji/png/lesbian-flag.png b/pride/png/lesbian-flag.png similarity index 100% rename from emoji/png/lesbian-flag.png rename to pride/png/lesbian-flag.png diff --git a/emoji/png/lesbian2-flag.png b/pride/png/lesbian2-flag.png similarity index 100% rename from emoji/png/lesbian2-flag.png rename to pride/png/lesbian2-flag.png diff --git a/emoji/png/nonbinary-flag.png b/pride/png/nonbinary-flag.png similarity index 100% rename from emoji/png/nonbinary-flag.png rename to pride/png/nonbinary-flag.png diff --git a/emoji/png/pansexual-flag.png b/pride/png/pansexual-flag.png similarity index 100% rename from emoji/png/pansexual-flag.png rename to pride/png/pansexual-flag.png diff --git a/emoji/png/polyamory-flag.png b/pride/png/polyamory-flag.png similarity index 100% rename from emoji/png/polyamory-flag.png rename to pride/png/polyamory-flag.png diff --git a/emoji/png/progress-flag.png b/pride/png/progress-flag.png similarity index 100% rename from emoji/png/progress-flag.png rename to pride/png/progress-flag.png diff --git a/emoji/png/progress2-flag.png b/pride/png/progress2-flag.png similarity index 100% rename from emoji/png/progress2-flag.png rename to pride/png/progress2-flag.png diff --git a/emoji/png/rainbow-flag.png b/pride/png/rainbow-flag.png similarity index 100% rename from emoji/png/rainbow-flag.png rename to pride/png/rainbow-flag.png diff --git a/emoji/png/transgender-flag.png b/pride/png/transgender-flag.png similarity index 100% rename from emoji/png/transgender-flag.png rename to pride/png/transgender-flag.png diff --git a/emoji/svg/agender-flag.svg b/pride/svg/agender-flag.svg similarity index 100% rename from emoji/svg/agender-flag.svg rename to pride/svg/agender-flag.svg diff --git a/emoji/svg/aromantic-flag.svg b/pride/svg/aromantic-flag.svg similarity index 100% rename from emoji/svg/aromantic-flag.svg rename to pride/svg/aromantic-flag.svg diff --git a/emoji/svg/asexual-flag.svg b/pride/svg/asexual-flag.svg similarity index 100% rename from emoji/svg/asexual-flag.svg rename to pride/svg/asexual-flag.svg diff --git a/emoji/svg/bigender-flag.svg b/pride/svg/bigender-flag.svg similarity index 100% rename from emoji/svg/bigender-flag.svg rename to pride/svg/bigender-flag.svg diff --git a/emoji/svg/bisexual-flag.svg b/pride/svg/bisexual-flag.svg similarity index 100% rename from emoji/svg/bisexual-flag.svg rename to pride/svg/bisexual-flag.svg diff --git a/emoji/svg/demisexual-flag.svg b/pride/svg/demisexual-flag.svg similarity index 100% rename from emoji/svg/demisexual-flag.svg rename to pride/svg/demisexual-flag.svg diff --git a/emoji/svg/genderfluid-flag.svg b/pride/svg/genderfluid-flag.svg similarity index 100% rename from emoji/svg/genderfluid-flag.svg rename to pride/svg/genderfluid-flag.svg diff --git a/emoji/svg/genderqueer-flag.svg b/pride/svg/genderqueer-flag.svg similarity index 100% rename from emoji/svg/genderqueer-flag.svg rename to pride/svg/genderqueer-flag.svg diff --git a/emoji/svg/intersex-flag.svg b/pride/svg/intersex-flag.svg similarity index 100% rename from emoji/svg/intersex-flag.svg rename to pride/svg/intersex-flag.svg diff --git a/emoji/svg/lesbian-flag.svg b/pride/svg/lesbian-flag.svg similarity index 100% rename from emoji/svg/lesbian-flag.svg rename to pride/svg/lesbian-flag.svg diff --git a/emoji/svg/lesbian2-flag.svg b/pride/svg/lesbian2-flag.svg similarity index 100% rename from emoji/svg/lesbian2-flag.svg rename to pride/svg/lesbian2-flag.svg diff --git a/emoji/svg/nonbinary-flag.svg b/pride/svg/nonbinary-flag.svg similarity index 100% rename from emoji/svg/nonbinary-flag.svg rename to pride/svg/nonbinary-flag.svg diff --git a/emoji/svg/pansexual-flag.svg b/pride/svg/pansexual-flag.svg similarity index 100% rename from emoji/svg/pansexual-flag.svg rename to pride/svg/pansexual-flag.svg diff --git a/emoji/svg/polyamory-flag.svg b/pride/svg/polyamory-flag.svg similarity index 100% rename from emoji/svg/polyamory-flag.svg rename to pride/svg/polyamory-flag.svg diff --git a/emoji/svg/progress-flag.svg b/pride/svg/progress-flag.svg similarity index 100% rename from emoji/svg/progress-flag.svg rename to pride/svg/progress-flag.svg diff --git a/emoji/svg/progress2-flag.svg b/pride/svg/progress2-flag.svg similarity index 100% rename from emoji/svg/progress2-flag.svg rename to pride/svg/progress2-flag.svg diff --git a/emoji/svg/rainbow-flag.svg b/pride/svg/rainbow-flag.svg similarity index 100% rename from emoji/svg/rainbow-flag.svg rename to pride/svg/rainbow-flag.svg diff --git a/emoji/svg/transgender-flag.svg b/pride/svg/transgender-flag.svg similarity index 100% rename from emoji/svg/transgender-flag.svg rename to pride/svg/transgender-flag.svg