Compare commits

..

2 Commits

Author SHA1 Message Date
Bjorn Lammers 1a4e4a8640 chore(icons): trim whitespacing 2025-01-07 18:52:30 +01:00
Bjorn Lammers 311fa5878d fix(icons): restore missing PNGs 2025-01-07 18:43:09 +01:00
4275 changed files with 2128 additions and 80693 deletions
-4
View File
@@ -1,4 +0,0 @@
# These are supported funding model platforms
open_collective: homarr
github: lammersbjorn
@@ -1,88 +0,0 @@
name: "Add light & dark icon"
description: |
Submit a new icon with distinct 'light' and 'dark' versions.
- A **Light Icon** is typically light-colored (e.g., predominantly white/very light shades, like Sonarr's logo) and is best suited for dark backgrounds.
- A **Dark Icon** is typically dark-colored (e.g., predominantly black/very dark shades, like Ollama's logo) and is best suited for light backgrounds.
title: "feat(icons): add monochrome [icon-name]"
labels: ["icon addition", "monochrome icon"]
body:
- type: markdown
attributes:
value: |
Thanks for contributing a new icon with light and dark variants! Please complete the following.
Ensure your icons are optimized and adhere to quality standards.
**Light Icon Definition:** Predominantly light colors (e.g., white, light grays - like Sonarr's logo), designed for optimal visibility on dark backgrounds.
**Dark Icon Definition:** Predominantly dark colors (e.g., black, dark grays - like Ollama's logo), designed for optimal visibility on light backgrounds.
- type: input
id: icon-name
attributes:
label: "Icon Name"
description: "The unique name for the icon (e.g., `home-assistant`). This will be the base filename."
placeholder: "e.g., sonarr"
validations:
required: true
- type: textarea
id: svg-code-light
attributes:
label: "SVG Code (Light Version)"
description: "Paste the SVG code for the **Light Version** of the icon (predominantly light colors, for dark backgrounds)."
placeholder: "<svg>...</svg>"
render: svg
validations:
required: true
- type: textarea
id: svg-code-dark
attributes:
label: "SVG Code (Dark Version)"
description: "Paste the SVG code for the **Dark Version** of the icon (predominantly dark colors, for light backgrounds)."
placeholder: "<svg>...</svg>"
render: svg
validations:
required: true
- type: input
id: brand-guidelines
attributes:
label: "Brand Guidelines URL (Optional)"
description: "If available, provide a link to the official brand guidelines or logo source."
placeholder: "e.g., https://brand.home-assistant.io/"
- type: input
id: source-url
attributes:
label: "Icon Source URL (Optional)"
description: "Link to where you found the icon (e.g., official website, GitHub repository)."
placeholder: "e.g., https://example.com/logo.svg"
- type: dropdown
id: icon-type-confirmation
attributes:
label: "Icon Type Confirmation"
description: "Confirm this icon submission includes separate light and dark variants as defined above."
options:
- "Yes, this includes light and dark variants."
validations:
required: true
- type: input
id: categories
attributes:
label: "Categories (Optional, comma-separated)"
description: "Relevant categories for the icon (e.g., `media, automation`). Helps with searching and organization."
placeholder: "e.g., dashboard, utility, networking"
- type: input
id: aliases
attributes:
label: "Aliases (Optional, comma-separated)"
description: "Alternative names or keywords for the icon (e.g., `ha, hass`)."
placeholder: "e.g., prox, pve"
- type: textarea
id: additional-notes
attributes:
label: "Additional Notes (Optional)"
description: "Any other relevant information or context for the maintainers."
@@ -1,74 +0,0 @@
name: "Add normal icon"
description: "Submit a new 'normal' icon. A normal icon is designed to be versatile and visually consistent across both light and dark backgrounds without requiring separate versions."
title: "feat(icons): add [icon-name]"
labels: ["icon addition", "normal icon"]
body:
- type: markdown
attributes:
value: |
Thanks for your interest in contributing a new icon! Please complete the following details.
A **normal icon** should be designed to work well and maintain good contrast/readability on both light and dark backgrounds.
Ensure your icon is optimized and adheres to our quality standards.
- type: input
id: icon-name
attributes:
label: "Icon Name"
description: "The unique name for the icon (e.g., `home-assistant`). This will be used as the filename."
placeholder: "e.g., sonarr"
validations:
required: true
- type: textarea
id: svg-code
attributes:
label: "SVG Code (Normal Version)"
description: "Paste the SVG code for the icon. This version should be suitable for both light and dark backgrounds. Ensure the icon\'s colors provide good contrast and readability on various background shades."
placeholder: "<svg>...</svg>"
render: svg
validations:
required: true
- type: input
id: brand-guidelines
attributes:
label: "Brand Guidelines URL (Optional)"
description: "If available, provide a link to the official brand guidelines or logo source."
placeholder: "e.g., https://brand.home-assistant.io/"
- type: input
id: source-url
attributes:
label: "Icon Source URL (Optional)"
description: "Link to where you found the icon (e.g., official website, GitHub repository)."
placeholder: "e.g., https://example.com/logo.svg"
- type: dropdown
id: icon-type-confirmation
attributes:
label: "Icon Type Confirmation"
description: "Confirm this icon is a \'normal\' icon (designed to be versatile and visually consistent across both light and dark backgrounds without requiring separate versions)."
options:
- "Yes, this is a normal icon."
validations:
required: true
- type: input
id: categories
attributes:
label: "Categories (Optional, comma-separated)"
description: "Relevant categories for the icon (e.g., `media, automation`). Helps with searching and organization."
placeholder: "e.g., dashboard, utility, networking"
- type: input
id: aliases
attributes:
label: "Aliases (Optional, comma-separated)"
description: "Alternative names or keywords for the icon (e.g., `ha, hass`)."
placeholder: "e.g., prox, pve"
- type: textarea
id: additional-notes
attributes:
label: "Additional Notes (Optional)"
description: "Any other relevant information or context for the maintainers."
@@ -1,110 +0,0 @@
name: "Add Wordmark Icon"
description: |
Submit a new wordmark icon (icon featuring brand name).
A **Wordmark Icon** incorporates the brand's name or logotype directly into or alongside the graphical mark.
It can be a single version for all themes, or have separate light/dark versions.
- **Light Icon Version:** (If applicable) predominantly light colors (e.g., Sonarr's logo), for dark backgrounds.
- **Dark Icon Version:** (If applicable) predominantly dark colors (e.g., Ollama's logo), for light backgrounds.
title: "feat(icons): add wordmark [icon-name]"
labels: ["icon addition", "wordmark icon"]
body:
- type: markdown
attributes:
value: |
Thanks for contributing a new wordmark icon!
**What is a Wordmark Icon?** It's an icon that integrates the brand's name/logotype with its graphical mark for stronger brand recognition.
Please complete the following details. Ensure your icon is optimized.
- type: input
id: icon-name
attributes:
label: "Icon Name (Base)"
description: "The unique name for the icon (e.g., `my-service-wordmark`). This will be used as the base for filenames."
placeholder: "e.g., awesome-app-wordmark"
validations:
required: true
- type: markdown
attributes:
value: |
**Icon Versioning:** Does this wordmark have a single version or separate light/dark versions?
- type: checkboxes
id: wordmark-type
attributes:
label: "Wordmark Version Type"
description: "Select how this wordmark is provided."
options:
- label: "Single version (works on both light and dark backgrounds)"
required: false
- label: "Separate light and dark versions"
required: false
- type: textarea
id: svg-code-wordmark-normal
attributes:
label: "SVG Code (Single/Normal Wordmark)"
description: "If this is a single-version wordmark, paste the SVG code here. Ensure it's versatile for all backgrounds."
placeholder: "<svg>...</svg>"
render: svg
validations:
required: false
- type: textarea
id: svg-code-wordmark-light
attributes:
label: "SVG Code (Light Wordmark Version)"
description: "If providing separate versions, paste the SVG for the **Light Version** here (predominantly light colors, e.g., for dark UIs)."
placeholder: "<svg>...</svg>"
render: svg
validations:
required: false
- type: textarea
id: svg-code-wordmark-dark
attributes:
label: "SVG Code (Dark Wordmark Version)"
description: "If providing separate versions, paste the SVG for the **Dark Version** here (predominantly dark colors, e.g., for light UIs)."
placeholder: "<svg>...</svg>"
render: svg
validations:
required: false
- type: markdown
attributes:
value: |
**Important:** Please ensure you fill out the correct SVG code section(s) based on your selection above. If providing separate light/dark versions, both are typically required. If a single version, only the 'Single/Normal' field is needed.
- type: input
id: brand-guidelines
attributes:
label: "Brand Guidelines URL (Optional)"
description: "Link to official brand guidelines, if available."
placeholder: "e.g., https://brand.example.com/"
- type: input
id: source-url
attributes:
label: "Icon Source URL (Optional)"
description: "Link to where you found the wordmark (e.g., official website)."
placeholder: "e.g., https://example.com/logo-wordmark.svg"
- type: input
id: categories
attributes:
label: "Categories (Optional, comma-separated)"
description: "Relevant categories for the icon."
placeholder: "e.g., service, productivity"
- type: input
id: aliases
attributes:
label: "Aliases (Optional, comma-separated)"
description: "Alternative names or keywords."
placeholder: "e.g., myapp-text, full-logo"
- type: textarea
id: additional-notes
attributes:
label: "Additional Notes (Optional)"
description: "Any other relevant information."
@@ -0,0 +1,33 @@
name: "Request Icon"
description: Suggest an icon or request changes
labels: "icon request"
body:
- type: markdown
attributes:
value: |
Thank you for your interest in contributing to our icon repository! To ensure smooth collaboration, please make sure to read and agree to our [Contribution Guidelines](https://github.com/homarr-labs/dashboard-icons/blob/main/CONTRIBUTING.md) before submitting your request.
- type: checkboxes
attributes:
label: Contribution Guidelines
options:
- label: "I have read and agree to the [Contribution Guidelines](https://github.com/homarr-labs/dashboard-icons/blob/main/CONTRIBUTING.md)"
required: true
- type: textarea
id: icon-name
attributes:
label: Icon Name
description: What is the name of the icon you are requesting or suggesting?
placeholder: Enter icon name here
validations:
required: true
- type: textarea
id: icon-details
attributes:
label: Icon Details
description: Provide any additional details or context for the icon request.
placeholder: Enter details here
validations:
required: false
@@ -1,59 +0,0 @@
name: "Update light & dark icon"
description: |
Improve an existing icon with distinct 'light' and 'dark' versions.
- A **Light Icon** is typically light-colored (e.g., predominantly white/very light shades, like Sonarr's logo) and is best suited for dark backgrounds.
- A **Dark Icon** is typically dark-colored (e.g., predominantly black/very dark shades, like Ollama's logo) and is best suited for light backgrounds.
title: "fix(icons): update monochrome [icon-name]"
labels: ["icon update", "monochrome icon"]
body:
- type: markdown
attributes:
value: |
Thanks for improving an icon with light and dark variants!
Please ensure the updated versions adhere to the definitions:
**Light Icon Definition:** Predominantly light colors (e.g., white, light grays - like Sonarr's logo), for dark backgrounds.
**Dark Icon Definition:** Predominantly dark colors (e.g., black, dark grays - like Ollama's logo), for light backgrounds.
Please specify the icon name and provide the updated SVGs.
- type: input
id: icon-name
attributes:
label: "Icon Name to Update"
description: "The name of the existing icon you are updating (e.g., `home-assistant`)."
placeholder: "e.g., sonarr"
validations:
required: true
- type: textarea
id: svg-code-light
attributes:
label: "Updated SVG Code (Light Version)"
description: "Paste the new SVG code for the **Light Version** (predominantly light colors, for dark backgrounds)."
placeholder: "<svg>...</svg>"
render: svg
validations:
required: true
- type: textarea
id: svg-code-dark
attributes:
label: "Updated SVG Code (Dark Version)"
description: "Paste the new SVG code for the **Dark Version** (predominantly dark colors, for light backgrounds)."
placeholder: "<svg>...</svg>"
render: svg
validations:
required: true
- type: textarea
id: reason-for-update
attributes:
label: "Reason for Update"
description: "Briefly explain why this icon needs an update (e.g., outdated design, quality, color adjustment)."
validations:
required: true
- type: textarea
id: additional-notes
attributes:
label: "Additional Notes (Optional)"
description: "Any other relevant information or context for the maintainers."
@@ -1,44 +0,0 @@
name: "Update normal icon"
description: "Improve an existing 'normal' icon. A normal icon is designed to be versatile and visually consistent across both light and dark backgrounds."
title: "fix(icons): update [icon-name]"
labels: ["icon update", "normal icon"]
body:
- type: markdown
attributes:
value: |
Thanks for helping improve an existing icon!
A **normal icon** should be designed to work well and maintain good contrast/readability on both light and dark backgrounds.
Please specify the icon name and provide the updated details.
- type: input
id: icon-name
attributes:
label: "Icon Name to Update"
description: "The name of the existing icon you are updating (e.g., `home-assistant`)."
placeholder: "e.g., sonarr"
validations:
required: true
- type: textarea
id: svg-code
attributes:
label: "Updated SVG Code (Normal Version)"
description: "Paste the new SVG code for the icon. This version should be suitable for both light and dark backgrounds. Ensure the icon\'s colors provide good contrast and readability."
placeholder: "<svg>...</svg>"
render: svg
validations:
required: true
- type: textarea
id: reason-for-update
attributes:
label: "Reason for Update"
description: "Briefly explain why this icon needs an update (e.g., outdated design, quality improvement, color adjustment for better universal background compatibility)."
validations:
required: true
- type: textarea
id: additional-notes
attributes:
label: "Additional Notes (Optional)"
description: "Any other relevant information or context for the maintainers."
@@ -1,87 +0,0 @@
name: "Update Wordmark Icon"
description: |
Improve an existing wordmark icon.
A **Wordmark Icon** incorporates the brand's name or logotype.
Remember the light/dark definitions if applicable for the wordmark.
title: "fix(icons): update wordmark [icon-name]"
labels: ["icon update", "wordmark icon"]
body:
- type: markdown
attributes:
value: |
Thanks for helping improve a wordmark icon!
Please specify the icon name and provide the updated details.
- type: input
id: icon-name
attributes:
label: "Wordmark Icon Name to Update"
description: "The name of the existing wordmark icon you are updating (e.g., `my-service-wordmark`)."
placeholder: "e.g., awesome-app-wordmark"
validations:
required: true
- type: markdown
attributes:
value: |
**Icon Versioning Being Updated:** Is this wordmark a single version or does it have separate light/dark versions? This helps in providing the correct updated SVGs.
- type: checkboxes
id: wordmark-update-type
attributes:
label: "Wordmark Version Type (of the icon being updated)"
description: "Indicate the type of wordmark you are updating."
options:
- label: "Updating a single-version wordmark"
required: false
- label: "Updating a wordmark with separate light and dark versions"
required: false
- type: textarea
id: svg-code-wordmark-normal-updated
attributes:
label: "Updated SVG Code (Single/Normal Wordmark)"
description: "If updating a single-version wordmark, paste the NEW SVG code here."
placeholder: "<svg>...</svg>"
render: svg
validations:
required: false
- type: textarea
id: svg-code-wordmark-light-updated
attributes:
label: "Updated SVG Code (Light Wordmark Version)"
description: "If updating light/dark versions, paste the NEW SVG for the Light Version here (predominantly light colors)."
placeholder: "<svg>...</svg>"
render: svg
validations:
required: false
- type: textarea
id: svg-code-wordmark-dark-updated
attributes:
label: "Updated SVG Code (Dark Wordmark Version)"
description: "If updating light/dark versions, paste the NEW SVG for the Dark Version here (predominantly dark colors)."
placeholder: "<svg>...</svg>"
render: svg
validations:
required: false
- type: markdown
attributes:
value: |
**Important:** Provide the updated SVG(s) in the relevant section(s) above based on the type of wordmark being updated.
- type: textarea
id: reason-for-update
attributes:
label: "Reason for Update"
description: "Briefly explain why this wordmark icon needs an update (e.g., outdated design, quality improvement, color adjustment)."
validations:
required: true
- type: textarea
id: additional-notes
attributes:
label: "Additional Notes (Optional)"
description: "Any other relevant information."
+6 -4
View File
@@ -1,6 +1,8 @@
name: Compress Icons
on:
schedule:
- cron: "0 0 * * 0"
workflow_dispatch:
jobs:
@@ -26,10 +28,10 @@ jobs:
echo "Compressing PNGs..."
find png/ -iname "*.png" -print0 | xargs -0 -P 4 -I{} zopflipng -y {} {}
#- name: Compress SVG Files
# run: |
# echo "Compressing SVGs..."
# svgo -f svg/
- name: Compress SVG Files
run: |
echo "Compressing SVGs..."
svgo -f svg/
- name: Compress WEBP Files
run: |
-15
View File
@@ -1,15 +0,0 @@
name: Trigger Cloudflare Pages Build
on:
schedule:
- cron: '0 0 * * *' # Runs every day at midnight UTC
workflow_dispatch:
jobs:
cron_job:
runs-on: ubuntu-latest
steps:
- name: Run Your Cron Job
run: |
curl -X POST "${{ secrets.CLOUDFLARE_DEPLOY_HOOK_URL }}"
@@ -1,82 +0,0 @@
name: "[Icon] Icon addition approved"
on:
issues:
types: [labeled]
jobs:
add-icon:
runs-on: ubuntu-latest
# This condition ensures the job only runs when the 'approved' label is added and the issue title starts with 'feat(icons): add '
if: |
contains(github.event.issue.labels.*.name, 'approved') &&
startsWith(github.event.issue.title, 'feat(icons): add ')
env:
ICON_TYPE: ${{ contains(github.event.issue.labels.*.name, 'normal-icon') && 'normal' || 'monochrome' }}
steps:
- name: Obtain token
id: obtainToken
uses: tibdex/github-app-token@v2
with:
private_key: ${{ secrets.DASHBOARD_ICONS_MANAGER_APP_PRIVATE_KEY }}
app_id: ${{ vars.DASHBOARD_ICONS_MANAGER_APP_ID }}
- name: Checkout repository
uses: actions/checkout@v4
env:
GITHUB_TOKEN: ${{ steps.obtainToken.outputs.token }}
- name: Set Up Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install Dependencies
run: |
pip install cairosvg pillow requests
sudo apt-get update
sudo apt-get install -y zopfli webp
- name: Parse issue form
id: parse_issue_form
run: echo "ISSUE_FORM=$(python scripts/parse_issue_form.py)" >> "$GITHUB_OUTPUT"
env:
INPUT_ISSUE_BODY: ${{ github.event.issue.body }}
- name: Create metadata file
run: python scripts/generate_metadata_file.py ${{ env.ICON_TYPE }} addition
env:
INPUT_ISSUE_FORM: ${{ steps.parse_issue_form.outputs.ISSUE_FORM }}
INPUT_ISSUE_AUTHOR_ID: ${{ github.event.issue.user.id }}
INPUT_ISSUE_AUTHOR_LOGIN: ${{ github.event.issue.user.login }}
- name: Generate icons
run: python scripts/generate_icons.py ${{ env.ICON_TYPE }} addition
env:
INPUT_ISSUE_FORM: ${{ steps.parse_issue_form.outputs.ISSUE_FORM }}
- name: Generate File Tree
run: python scripts/generate_file_tree.py svg png webp
- name: Generate full metadata file
run: python scripts/generate_metadata.py
- name: Extract icon name
id: extract_icon_name
run: echo "ICON_NAME=$(python scripts/print_icon_name.py ${{ env.ICON_TYPE }} addition)" >> "$GITHUB_OUTPUT"
env:
INPUT_ISSUE_FORM: ${{ steps.parse_issue_form.outputs.ISSUE_FORM }}
- name: Compress icons
run: |
echo "Compressing PNGs..."
find png/ -iname "${{ steps.extract_icon_name.outputs.ICON_NAME }}*.png" -print0 | xargs -0 -P 4 -I{} zopflipng -y {} {}
echo "Compressing WEBPs..."
find webp/ -iname "${{ steps.extract_icon_name.outputs.ICON_NAME }}*.webp" -print0 | xargs -0 -P 4 -I{} bash -c 'cwebp -quiet -lossless "$1" -o "$1"' _ {}
- name: Commit changes
run: |
git config --global user.email "193821040+dashboard-icons-manager[bot]@users.noreply.github.com"
git config --global user.name "Dashboard Icons Manager"
git add .
git commit -m "feat(icons): add ${{ steps.extract_icon_name.outputs.ICON_NAME }}"
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
with:
token: ${{ steps.obtainToken.outputs.token }}
branch: icons/add-${{steps.extract_icon_name.outputs.ICON_NAME}}
base: main
title: "feat(icons): add ${{steps.extract_icon_name.outputs.ICON_NAME}}"
delete-branch: true
body: |
This PR adds the icon ${{steps.extract_icon_name.outputs.ICON_NAME}} added in #${{github.event.issue.number}} to the project.
Closes #${{github.event.issue.number}}
@@ -1,82 +0,0 @@
name: "[Icon] Icon update approved"
on:
issues:
types: [labeled]
jobs:
update-icon:
runs-on: ubuntu-latest
# This condition ensures the job only runs when the 'approved' label is updated and the issue title starts with 'feat(icons): update '
if: |
contains(github.event.issue.labels.*.name, 'approved') &&
startsWith(github.event.issue.title, 'feat(icons): update ')
env:
ICON_TYPE: ${{ contains(github.event.issue.labels.*.name, 'normal-icon') && 'normal' || 'monochrome' }}
steps:
- name: Obtain token
id: obtainToken
uses: tibdex/github-app-token@v2
with:
private_key: ${{ secrets.DASHBOARD_ICONS_MANAGER_APP_PRIVATE_KEY }}
app_id: ${{ vars.DASHBOARD_ICONS_MANAGER_APP_ID }}
- name: Checkout repository
uses: actions/checkout@v4
env:
GITHUB_TOKEN: ${{ steps.obtainToken.outputs.token }}
- name: Set Up Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install Dependencies
run: |
pip install cairosvg pillow requests
sudo apt-get update
sudo apt-get install -y zopfli webp
- name: Parse issue form
id: parse_issue_form
run: echo "ISSUE_FORM=$(python scripts/parse_issue_form.py)" >> "$GITHUB_OUTPUT"
env:
INPUT_ISSUE_BODY: ${{ github.event.issue.body }}
- name: Update metadata file
run: python scripts/generate_metadata_file.py ${{ env.ICON_TYPE }} update
env:
INPUT_ISSUE_FORM: ${{ steps.parse_issue_form.outputs.ISSUE_FORM }}
INPUT_ISSUE_AUTHOR_ID: ${{ github.event.issue.user.id }}
INPUT_ISSUE_AUTHOR_LOGIN: ${{ github.event.issue.user.login }}
- name: Generate icons
run: python scripts/generate_icons.py ${{ env.ICON_TYPE }} update
env:
INPUT_ISSUE_FORM: ${{ steps.parse_issue_form.outputs.ISSUE_FORM }}
- name: Generate File Tree
run: python scripts/generate_file_tree.py svg png webp
- name: Generate full metadata file
run: python scripts/generate_metadata.py
- name: Extract icon name
id: extract_icon_name
run: echo "ICON_NAME=$(python scripts/print_icon_name.py ${{ env.ICON_TYPE }} update)" >> "$GITHUB_OUTPUT"
env:
INPUT_ISSUE_FORM: ${{ steps.parse_issue_form.outputs.ISSUE_FORM }}
- name: Compress icons
run: |
echo "Compressing PNGs..."
find png/ -iname "${{ steps.extract_icon_name.outputs.ICON_NAME }}*.png" -print0 | xargs -0 -P 4 -I{} zopflipng -y {} {}
echo "Compressing WEBPs..."
find webp/ -iname "${{ steps.extract_icon_name.outputs.ICON_NAME }}*.webp" -print0 | xargs -0 -P 4 -I{} bash -c 'cwebp -quiet -lossless "$1" -o "$1"' _ {}
- name: Commit changes
run: |
git config --global user.email "193821040+dashboard-icons-manager[bot]@users.noreply.github.com"
git config --global user.name "Dashboard Icons Manager"
git add .
git commit -m "feat(icons): update ${{ steps.extract_icon_name.outputs.ICON_NAME }}"
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
with:
token: ${{ steps.obtainToken.outputs.token }}
branch: icons/update-${{steps.extract_icon_name.outputs.ICON_NAME}}
base: main
title: "feat(icons): update ${{steps.extract_icon_name.outputs.ICON_NAME}}"
delete-branch: true
body: |
This PR updates the icon ${{steps.extract_icon_name.outputs.ICON_NAME}} like requested in #${{github.event.issue.number}} to the project.
Closes #${{github.event.issue.number}}
@@ -1,6 +1,13 @@
name: Update Icons and Resources
on:
push:
branches:
- main
- dev
paths:
- "svg/**"
- "png/**"
workflow_dispatch:
jobs:
@@ -32,7 +39,6 @@ jobs:
git config --global user.name "Dashboard Icons Bot"
git add png/ webp/
git commit -m "ci(github-actions): convert SVG assets to PNG and WEBP" || exit 0
git status
git pull --rebase origin ${{ github.ref_name }}
git push origin HEAD:${{ github.ref_name }}
@@ -52,11 +58,14 @@ jobs:
with:
python-version: "3.9"
- name: Generate File Tree
run: python scripts/generate_file_tree.py svg png webp
- name: Commit and Push Changes
run: |
git config --global user.email "homarr-labs@proton.me"
git config --global user.name "Dashboard Icons Bot"
git add tree.json
git add tree.json tree.xml
git commit -m "ci(github-actions): generate file tree" || exit 0
git pull --rebase origin ${{ github.ref_name }}
git push origin HEAD:${{ github.ref_name }}
@@ -77,9 +86,14 @@ jobs:
with:
python-version: "3.9"
- name: Generate ICONS.md
run: python scripts/generate_icons_page.py
- name: Commit and Push Changes
run: |
git config --global user.email "homarr-labs@proton.me"
git config --global user.name "Dashboard Icons Bot"
git add ICONS.md
git commit -m "ci(github-actions): generate ICONS.md" || exit 0
git pull --rebase origin ${{ github.ref_name }}
git push origin HEAD:${{ github.ref_name }}
-3
View File
@@ -30,6 +30,3 @@ Temporary Items
### macOS Patch ###
# iCloud generated files
*.icloud
# Python
__pycache__/
+18 -30
View File
@@ -1,42 +1,30 @@
# Code of Conduct
## Code of Conduct
## Our Commitment
We are committed to creating a welcoming and harassment-free environment for everyone who contributes to our icon repository. This includes people of all genders, gender identities, sexual orientations, disabilities, appearances, body sizes, races, ages, religions, and nationalities.
We are committed to maintaining a welcoming and inclusive environment for everyone who contributes to our icon collection. This includes people of all backgrounds, identities, and experiences.
### Communication
## Expected Behavior
All communication should be appropriate for a professional audience, respectful, constructive, and considerate of people from different backgrounds. Please aim to create a positive and inclusive atmosphere.
- Be respectful and constructive in all communications
- Focus on what's best for the community
- Show empathy towards other community members
- Be open to different viewpoints and experiences
### Prohibited Behavior
## Unacceptable Behavior
We do not tolerate harassment, intimidation, discrimination, or any other inappropriate conduct, whether in communication or behavior. Prohibited actions include:
The following behaviors are unacceptable:
- The use of sexual language or imagery
- Deliberate intimidation or stalking
- Unwelcome sexual attention or harassment
- Inappropriate physical contact
- Disruptions during events or conversations
- Discrimination of any kind
- Harassment, discrimination, or intimidation
- Offensive comments related to personal characteristics
- Unwelcome sexual attention or advances
- Disruptive behavior in community spaces
- Any other conduct that could reasonably be considered inappropriate
### Reporting
## Reporting
If you witness or experience behavior that violates this code of conduct, please report it immediately to [homarr-labs@proton.me](mailto:homarr-labs@proton.me). All reports will be reviewed confidentially and promptly, and appropriate actions will be taken.
If you experience or witness behavior that violates this code:
### Consequences
1. Contact us at [homarr-labs@proton.me](mailto:homarr-labs@proton.me)
2. Provide as much detail as possible about the incident
3. All reports will be reviewed confidentially
Anyone violating this code of conduct may face consequences, such as warnings, removal from the repository, or a ban from future participation. We take violations seriously to ensure a safe and welcoming environment for everyone.
## Enforcement
### Acknowledgment
Violations of this code may result in:
- Warning
- Temporary suspension
- Permanent ban from the community
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.0.
By contributing to this repository, you agree to adhere to this code of conduct. Thank you for helping us create an inclusive and supportive environment for all contributors.
+51 -77
View File
@@ -1,104 +1,78 @@
# Contributing to Dashboard Icons
![Contributions Welcome](https://img.shields.io/badge/contributions-welcome-brightgreen?style=flat-square)
Thank you for your interest in contributing to our icon collection! These guidelines will help ensure smooth collaboration and maintain the quality of our collection.
## Contribution Guidelines
Thank you for your interest in contributing to the icon repository! To ensure smooth collaboration, please follow these guidelines. Your contributions help make this project better.
## Table of Contents
- [Contributing to Dashboard Icons](#contributing-to-dashboard-icons)
- [Table of Contents](#table-of-contents)
- [Icon Specifications](#icon-specifications)
- [Format Requirements](#format-requirements)
- [Quality Standards](#quality-standards)
- [Light \& Dark Variants](#light--dark-variants)
- [File Naming](#file-naming)
- [Requesting New Icons](#requesting-new-icons)
- [Improving the Repository](#improving-the-repository)
- [Code of Conduct](#code-of-conduct)
- [Questions?](#questions)
- [Contribution Guidelines](#contribution-guidelines)
- [Table of Contents](#table-of-contents)
- [Icon Specifications](#icon-specifications)
- [Format](#format)
- [Cropping](#cropping)
- [Light and Dark Versions](#light-and-dark-versions)
- [File Naming](#file-naming)
- [Quality Requirements](#quality-requirements)
- [Git Commit Messages](#git-commit-messages)
- [Contribution Process](#contribution-process)
- [Code of Conduct](#code-of-conduct)
- [Contact](#contact)
## Icon Specifications
### Format Requirements
### Format
- **SVG Format**: All icons must be submitted in SVG format
- **Auto-Generated Formats**: PNG and WEBP versions are generated automatically with:
- Height: 512 pixels
- Width: Auto (maintaining aspect ratio)
- Transparency: Enabled
- **SVG Format Required**: All icons should be submitted in SVG format. If an SVG version is unavailable, a PNG version will suffice, and a WEBP version will be generated accordingly.
- **Automatic PNG and WEBP Generation**: PNG and WEBP versions are generated automatically from the SVG (or PNG) files using the following settings:
- **Dimensions**:
- Height: 512 pixels
- Width: Auto (maintaining aspect ratio)
- **Transparency**: Enabled
### Quality Standards
### Cropping
- **Clean SVG**: No embedded raster images in SVG files
- **Proper Cropping**: Remove empty space for proper centering
- Use [SVG Crop](https://svgcrop.com/) for assistance
- **No Upscaling**: Maintain original quality without artificial enlargement
- **Remove Empty Space**: Crop any empty space from your SVG files to ensure the icon is properly centered and sized. You can use [SVG Crop](https://svgcrop.com/) to assist with this.
### Light & Dark Variants
### Light and Dark Versions
For monochrome or single-color icons:
- **Light Variant**: Required for dark backgrounds
- Invert black elements
- Adjust colors for visibility
- **Dark Variant**: Required for light backgrounds
- Invert white elements
- Adjust colors for visibility
**Tool Recommendation**: [DEEditor](https://deeditor.com/) for color adjustments
- **Monochrome or Single Primary Color Icons**:
- If your icon is monochrome, please provide additional versions if applicable:
- **`-light` Version**: For icons primarily dark or using black as a main color, provide a `-light` version for light backgrounds.
- **`-dark` Version**: For icons primarily light or using white as a main color, provide a `-dark` version for dark backgrounds.
- **Examples**:
- A black logo should include a `-light` version where black is inverted.
- A multicolored logo using black should provide a `-light` version with the black replaced.
- **Tool Recommendation**: [DEEditor](https://deeditor.com/) can help adjust icon colors if needed.
### File Naming
- **Kebab Case**: Use lowercase with hyphens
- Example: "Nextcloud Calendar" → `nextcloud-calendar.svg`
- **Variant Suffixes**:
- `-light` for dark backgrounds
- `-dark` for light backgrounds
- **Kebab Case**: Name your files using kebab case (lowercase words separated by hyphens). For example, "Nextcloud Calendar" becomes `nextcloud-calendar.svg`.
- **Note**: Filenames are automatically converted to kebab case, but please double-check your naming to avoid conflicts or errors.
## Requesting New Icons
### Quality Requirements
To request a new icon:
- **No Upscaled Images**: Icons should maintain their original quality without artificial enlargement.
- **No Embedded Raster Images in SVGs**: Ensure that SVG files are true vector graphics without embedded raster images.
1. **Create an Issue**:
- Use the appropriate [issue template](https://github.com/homarr-labs/dashboard-icons/issues/new/choose)
- Choose between "Light & dark icon" or "Normal icon" template
## Git Commit Messages
2. **Provide Information**:
- Service/application name
- Official logo or icon source
- Any specific requirements or notes
- **Use Semantic Commits**: Follow the format <type>(scope): description:
- `feat(icons): add nextcloud-calendar` when adding new icons.
3. **Upload Icon** (optional):
- Attach the SVG file directly to the issue
- Include both light and dark variants if applicable
## Contribution Process
4. **Wait for Review**:
- Our team will review your request
- We may request adjustments if needed
- Once approved, we'll add the icon to the collection
## Improving the Repository
To contribute to the repository itself:
1. **Fork the Repository**
2. **Make Your Changes**:
- Documentation improvements
- Website enhancements
- Repository maintenance
- Bug fixes
3. **Submit a Pull Request**:
- Use semantic commit messages following the format: `<type>(scope): description`
- `feat(icons): add nextcloud-calendar`
- `fix(website): correct icon preview`
- `docs(readme): update installation instructions`
- Reference any related issues
- Follow our [Code of Conduct](CODE_OF_CONDUCT.md)
1. **Fork the Repository**: Create a fork of this repository on your GitHub account.
2. **Clone the Repository**: Clone your forked repository to your local machine.
3. **Add Your Icons**: Place your SVG icon(s) into the appropriate directory, following the specifications above.
4. **Commit Your Changes**: Commit your additions with clear and descriptive commit messages using Gitmoji.
5. **Push to Your Fork**: Push your committed changes to your forked repository on GitHub.
6. **Create a Pull Request**: Submit a pull request to the main repository for review.
## Code of Conduct
By contributing, you agree to abide by our [Code of Conduct](CODE_OF_CONDUCT.md). Please review it to understand the expectations for all participants.
## Questions?
## Contact
If you have any questions or need assistance, contact us at [homarr-labs@proton.me](mailto:homarr-labs@proton.me).
If you have any questions or need assistance, feel free to reach out at [homarr-labs@proton.me](mailto:homarr-labs@proton.me). I'm happy to help.
+1705
View File
File diff suppressed because it is too large Load Diff
+89 -99
View File
@@ -1,126 +1,116 @@
# Dashboard Icons
> [!WARNING]
> The repository has been migrated from `walkxcode` to `homarr-labs`, because I do not have the capacity/time to keep maintaining it. The Homarr team will take over all management and maintenance, whilst keeping all functionality for you, the user, the same. The project will always be usable outside of Homarr itself and breaking changes will not be made. ^Bjorn
>
> The license and guidelines have changed, so please review them. If you want to help with maintenance, reach out to [homarr-labs@proton.me](mailto:homarr-labs@proton.me).
[![jsDelivr hits](https://img.shields.io/jsdelivr/gh/hy/walkxcode/dashboard-icons?style=flat-square&color=%23A020F0)](https://www.jsdelivr.com/package/gh/walkxcode/dashboard-icons)
[![jsDelivr hits](https://img.shields.io/jsdelivr/gh/hy/homarr-labs/dashboard-icons?style=flat-square&color=%23A020F0)](https://www.jsdelivr.com/package/gh/homarr-labs/dashboard-icons)
[![GitHub Stars](https://img.shields.io/github/stars/homarr-labs/dashboard-icons?style=flat-square&color=yellow)](https://github.com/homarr-labs/dashboard-icons/stargazers)
[![Contributors](https://img.shields.io/github/contributors/homarr-labs/dashboard-icons?style=flat-square&color=blue)](https://github.com/homarr-labs/dashboard-icons/graphs/contributors)
[![jsDelivr hits (GitHub)](https://img.shields.io/jsdelivr/gh/hy/homarr-labs/dashboard-icons?style=flat-square&color=%23A020F0)](https://www.jsdelivr.com/package/gh/homarr-labs/dashboard-icons)
[![jsDelivr hits (GitHub)](https://img.shields.io/jsdelivr/gh/hy/walkxcode/dashboard-icons?style=flat-square&color=%23A020F0)](https://www.jsdelivr.com/package/gh/walkxcode/dashboard-icons)
> **Your definitive source for dashboard icons.**
## Dashboard Icons
A collection of over 1800 curated icons for services, applications and tools, designed specifically for dashboards and app directories.
The best source for dashboard icons.<br />
[**View icons →**](ICONS.md)
**[→ Browse the collection at dashboardicons.com](https://dashboardicons.com)**
## Table of Contents
- [Dashboard Icons](#dashboard-icons)
- [Table of Contents](#table-of-contents)
- [Icon Requests](#icon-requests)
- [Supported Dashboards](#supported-dashboards)
- [Usage and Details](#usage-and-details)
- [Direct Links](#direct-links)
- [Base URL](#base-url)
- [Name](#name)
- [Formats](#formats)
- [Dark/Light Versions](#darklight-versions)
- [Downloading Icons](#downloading-icons)
- [Disclaimer](#disclaimer)
## Why Dashboard Icons?
## Icon Requests
- **Comprehensive Collection**: 1800+ icons for all popular services and tools
- **Consistent Style**: Uniform visual language across different services
- **Multiple Formats**: Available in SVG, PNG, and WEBP to suit your needs
- **Light & Dark Variants**: Icons optimized for both light and dark themes
- **Community-Driven**: Easy process to request missing icons
If you're looking to add a new icon, please read the [Contribution Guidelines](CONTRIBUTING.md). Afterwards, submit a Pull Request or open an issue.
<p align="center">
<a href="https://dashboardicons.com">
<video width="650" autoplay loop muted playsinline>
<source src="assets/preview.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
</a>
</p>
## Supported Dashboards
## Using the Icons
### Website
Find and download icons at [dashboardicons.com](https://dashboardicons.com):
1. Search for the icon you need
2. Click on an icon to view details
3. Choose your preferred format
4. Download or copy the direct link
### Direct Links
Use icons from CDN with this pattern:
```
<Base URL>/<Format>/<Icon Name>.<Format>
```
**Base URL options:**
- jsDelivr (recommended): `https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons`
- GitHub Direct: `https://raw.githubusercontent.com/homarr-labs/dashboard-icons/main`
**Example:**
```html
<img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/plex.svg" alt="Plex">
```
### Technical Details
- **Naming Convention**: Kebab-case (lowercase with hyphens)
- Example: "Nextcloud Calendar" → `nextcloud-calendar`
- **Available Formats**:
- SVG: Vector format (original source)
- PNG: 512px height (auto-generated)
- WEBP: 512px height (auto-generated)
- **Variants**:
- `-light` suffix for dark backgrounds (e.g., `github-light.svg`)
- `-dark` suffix for light backgrounds (e.g., `github-dark.svg`)
- **Command Line**:
```bash
# Download with curl
curl -O https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/nextcloud.svg
# Download with wget
wget https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/nextcloud.svg
```
## Dashboard Integration
These icons integrate seamlessly with popular dashboard applications:
Several dashboards offer seamless integration with Dashboard Icons. Here are some of the most popular options:
- [Homarr](https://github.com/ajnart/homarr)
- [Homepage](https://github.com/gethomepage/homepage)
- [Dashy](https://github.com/Lissy93/dashy)
...and many others!
## Usage and Details
## Contributing
### Direct Links
### Request Icons
Icons can be used directly from either GitHub or jsDelivr (recommended). Links consist of three components, each described below:
Need an icon that's not in our collection?
- **Base URL**
- **Name**
- **Format**
1. Check the [Contribution Guidelines](CONTRIBUTING.md) for specifications
2. Submit a request using our [issue templates](https://github.com/homarr-labs/dashboard-icons/issues/new/choose)
3. Provide service details and optionally upload the icon
4. Our team will review, optimize, and add it to the collection
A complete link will look like this:
### Improve the Repository
https://<Base URL>/<Format>/<Name>.<Format>
Want to help with the repository itself?
For example, the icon URL for the WEBP version of Nextcloud Calendar would be:
- Review our [Contribution Guidelines](CONTRIBUTING.md)
- Fork the repository, make your changes, and submit a pull request
- We welcome help with documentation, website improvements, and maintenance
https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/webp/nextcloud-calendar.webp
## Support
#### Base URL
- **GitHub Issues**: Report bugs or request icons
- **Email**: [homarr-labs@proton.me](mailto:homarr-labs@proton.me)
We recommend using jsDelivr, a free and fast CDN:
## Legal
- `https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons`
**Disclaimer**: All product names, trademarks, and registered trademarks are the property of their respective owners. Icons are used for identification purposes only and do not imply endorsement.
Alternatively, you can use direct links to the repository:
**License**: This project is available under the terms of the [LICENSE](LICENSE) file.
- `https://raw.githubusercontent.com/homarr-labs/dashboard-icons/refs/heads/main`
---
#### Name
<p align="center">
Made with ♥ by the <a href="https://github.com/homarr-labs">Homarr Labs</a> team and contributors
</p>
Icons are named using kebab case (lowercase words separated by hyphens). For example, "Nextcloud Calendar" becomes `nextcloud-calendar`.
#### Formats
Icons are available in the following formats:
- SVG
- PNG
- WEBP
All icons are generated from the SVG file as the base.
*Read more about the specifics and standards of icons in the [Contribution Guidelines](CONTRIBUTING.md).*
### Dark/Light Versions
In some cases, an icon might have very light or dark colors, making it hard to see on certain backgrounds. In this situation, a `-light` or `-dark` version will be added to the end of the icon's name, with colors adjusted accordingly.
For example, "2fauth" becomes `2fauth-light`.
*Read more about the specifics and standards of icons in the [Contribution Guidelines](CONTRIBUTING.md).*
### Downloading Icons
To download icons from the [icons page](ICONS.md), simply Right-click the icon link and select "Save link as".
**Warning**: Visiting the icons page will load every icon in the repository. This may result in:
- High data usage.
- System slowdowns.
- Browser crashes on some devices.
If you prefer not to load all icons at once, consider using the direct links or downloading icons individually.
To download icons using the terminal, use `curl` or `wget`. Refer to [Direct Links](#direct-links) for details on the link structure.
curl -O https://<Base URL>/<Format>/<Name>.<Format>
or
wget https://<Base URL>/<Format>/<Name>.<Format>
## Disclaimer
Unless otherwise indicated, all images and assets in this repository, including product names, trademarks, and registered trademarks, are the property of their respective owners. These images and assets are used for identification purposes only, and their use does not imply endorsement.
Read the [LICENSE](LICENSE) for more information about the project itself. For questions or concerns, contact us at [homarr-labs@proton.me](mailto:homarr-labs@proton.me).
Binary file not shown.
-17
View File
@@ -1,17 +0,0 @@
{
"base": "svg",
"aliases": [
"paywall-remover",
"article-unblocker"
],
"categories": [
"Web-Browsers"
],
"update": {
"timestamp": "2024-10-13T18:25:47Z",
"author": {
"id": 46011270,
"name": "mcmikemn"
}
}
}
-16
View File
@@ -1,16 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T18:01:33Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
},
"colors": {
"dark": "1password-dark",
"light": "1password"
}
}
-21
View File
@@ -1,21 +0,0 @@
{
"base": "svg",
"aliases": [
"2FA Authenticator"
],
"categories": [
"Password-Managers",
"Security"
],
"update": {
"timestamp": "2024-10-13T18:37:13Z",
"author": {
"id": 858858,
"name": "Bubka"
}
},
"colors": {
"dark": "2fauth",
"light": "2fauth-light"
}
}
-16
View File
@@ -1,16 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T18:33:11Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
},
"colors": {
"dark": "3cx",
"light": "3cx-light"
}
}
-16
View File
@@ -1,16 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T18:46:29Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
},
"colors": {
"dark": "5etools-dark",
"light": "5etools"
}
}
-16
View File
@@ -1,16 +0,0 @@
{
"base": "svg",
"aliases": [
"7-zip"
],
"categories": [
"Developer-Tools"
],
"update": {
"timestamp": "2025-01-05T00:02:27Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T18:47:53Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2022-09-09T09:57:51Z",
"author": {
"id": 15933,
"name": "fabricionaweb"
}
}
}
-17
View File
@@ -1,17 +0,0 @@
{
"base": "svg",
"aliases": [
"Database Management"
],
"categories": [
"Databases",
"Developer-Tools"
],
"update": {
"timestamp": "2022-08-16T17:22:56Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2025-04-06T16:32:41.752755",
"author": {
"id": 63781622,
"login": "Meierschlumpf"
}
}
}
-14
View File
@@ -1,14 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [
"Monitoring-Tools"
],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-16
View File
@@ -1,16 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
},
"colors": {
"dark": "affine",
"light": "affine-light"
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2023-06-23T17:25:39Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-16
View File
@@ -1,16 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
},
"colors": {
"dark": "akkoma",
"light": "akkoma-light"
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-14
View File
@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Media"
],
"update": {
"timestamp": "2025-04-18T08:34:26.627973",
"author": {
"id": 2432100,
"login": "lyneld"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-01-28T15:25:19Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-13T18:27:20Z",
"author": {
"id": 56171752,
"name": "Flying-Tom"
}
}
}
-18
View File
@@ -1,18 +0,0 @@
{
"base": "svg",
"aliases": [
"no-code-platform",
"app-builder"
],
"categories": [
"Developer-Tools",
"Cloud-Computing"
],
"update": {
"timestamp": "2024-06-01T17:32:11Z",
"author": {
"id": 10404337,
"name": "bmgalhardo"
}
}
}
-20
View File
@@ -1,20 +0,0 @@
{
"base": "png",
"aliases": [
"Download Manager"
],
"categories": [
"Download-Managers"
],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
},
"colors": {
"dark": "alltube",
"light": "alltube-light"
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-17
View File
@@ -1,17 +0,0 @@
{
"base": "svg",
"aliases": [
"prime-video",
"amazon-video"
],
"categories": [
"Video-Streaming"
],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-16
View File
@@ -1,16 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
},
"colors": {
"dark": "amazon-web-services",
"light": "amazon-web-services-light"
}
}
-21
View File
@@ -1,21 +0,0 @@
{
"base": "svg",
"aliases": [
"online-marketplace",
"shopping-website"
],
"categories": [
"E-commerce-Platforms"
],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
},
"colors": {
"dark": "amazon",
"light": "amazon-light"
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-22
View File
@@ -1,22 +0,0 @@
{
"base": "svg",
"aliases": [
"processor-company",
"computer-chips"
],
"categories": [
"Hardware",
"Organization"
],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
},
"colors": {
"dark": "amd",
"light": "amd-light"
}
}
-21
View File
@@ -1,21 +0,0 @@
{
"base": "png",
"aliases": [
"Asterisk Manager"
],
"categories": [
"Networking-Tools",
"Communication"
],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
},
"colors": {
"dark": "ami-alt",
"light": "ami-alt-light"
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-18
View File
@@ -1,18 +0,0 @@
{
"base": "png",
"aliases": [
"music-server",
"audio-streaming"
],
"categories": [
"Media-Servers",
"Music-Streaming"
],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-18
View File
@@ -1,18 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Smart-Home"
],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
},
"colors": {
"dark": "android-auto-dark",
"light": "android-auto"
}
}
-17
View File
@@ -1,17 +0,0 @@
{
"base": "svg",
"aliases": [
"android-logo",
"mobile-os-icon"
],
"categories": [
"Operating-Systems"
],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-17
View File
@@ -1,17 +0,0 @@
{
"base": "svg",
"aliases": [
"android-os",
"mobile-os"
],
"categories": [
"Operating-Systems"
],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-17
View File
@@ -1,17 +0,0 @@
{
"base": "svg",
"aliases": [
"Email Aliases"
],
"categories": [
"Email-Providers",
"Security"
],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-21
View File
@@ -1,21 +0,0 @@
{
"base": "svg",
"aliases": [
"Automation Tool"
],
"categories": [
"Developer-Tools",
"DevOps"
],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
},
"colors": {
"dark": "ansible",
"light": "ansible-light"
}
}
-16
View File
@@ -1,16 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
},
"colors": {
"dark": "anything-llm",
"light": "anything-llm-light"
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-04-05T08:15:52Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-16
View File
@@ -1,16 +0,0 @@
{
"base": "svg",
"aliases": [
"NoSQL Database"
],
"categories": [
"Databases"
],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-17
View File
@@ -1,17 +0,0 @@
{
"base": "svg",
"aliases": [
"realtime-database",
"analytics-database"
],
"categories": [
"Databases"
],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-16
View File
@@ -1,16 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
},
"colors": {
"dark": "apache-tomcat",
"light": "apache-tomcat-light"
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2023-10-30T09:24:44Z",
"author": {
"id": 10834935,
"name": "djrarky"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-18T21:26:41Z",
"author": {
"id": 72495210,
"name": "v3DJG6GL"
}
}
}
-17
View File
@@ -1,17 +0,0 @@
{
"base": "png",
"aliases": [
"Home Automation"
],
"categories": [
"Home-Automation",
"Smart-Home"
],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-17
View File
@@ -1,17 +0,0 @@
{
"base": "svg",
"aliases": [
"itunes-music",
"apple-music-service"
],
"categories": [
"Music-Streaming"
],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-21
View File
@@ -1,21 +0,0 @@
{
"base": "svg",
"aliases": [
"apple-tv",
"streaming-service"
],
"categories": [
"Video-Streaming"
],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
},
"colors": {
"dark": "apple-tv-plus",
"light": "apple-tv-plus-light"
}
}
-16
View File
@@ -1,16 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
},
"colors": {
"light": "apple",
"dark": "apple-light"
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-17
View File
@@ -1,17 +0,0 @@
{
"base": "png",
"aliases": [
"steam-idler",
"game-farmer"
],
"categories": [
"Gaming-Platforms"
],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-17
View File
@@ -1,17 +0,0 @@
{
"base": "png",
"aliases": [
"web-archiver",
"site-scraper"
],
"categories": [
"Developer-Tools"
],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-16
View File
@@ -1,16 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
},
"colors": {
"dark": "archiveteam-warrior",
"light": "archiveteam-warrior-light"
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-18
View File
@@ -1,18 +0,0 @@
{
"base": "svg",
"aliases": [
"GitOps Tool"
],
"categories": [
"Developer-Tools",
"DevOps",
"Containerization-&-Orchestration"
],
"update": {
"timestamp": "2024-10-20T17:24:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}
-16
View File
@@ -1,16 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2025-01-07T17:54:03Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
},
"colors": {
"dark": "arris",
"light": "arris-light"
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-13T18:29:55Z",
"author": {
"id": 60740924,
"name": "plcnk"
}
}
}
-12
View File
@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2024-10-20T19:32:46Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}

Some files were not shown because too many files have changed in this diff Show More