Merge curated fork work: 12 new diagram types, icons, export, onboarding v2
Imports the substantive work from the aristide/diagram-design fork (PR #9) as a curated set: - 12 new diagram types with reference docs: radar, bar, line, gantt, scatter, it-state, high-level, process, medallion, data-flow, dp-integration, dp-security-matrix (26 types total) - 86-icon monochrome IT/cloud primitive, build script, and gallery - /diagram-design:export command with PNG/SVG export reference - Onboarding v2: URL, skill, and folder design-token sources - Mandatory connector rules (orthogonal elbows, label gaps, fanned attach points, bridge crossings) + architecture/ER connector upgrades - Series palette tokens for multi-series chart types - THIRD_PARTY_LICENSES.md covering Tabler, Simple Icons, log-z, Devicon Not taken from the fork: plugin-manifest identity changes, the client-brand takeover of style-guide.md, and client-branded example files. The six affected type examples were regenerated in the neutral editorial skin with generic content, and their README screenshots recaptured. Reference docs for those types were rewritten to semantic tokens and typography roles. Version: 1.0.0 -> 2.0.0. Co-authored-by: Aristide <mendoo.aristide@gmail.com>
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "diagram-design",
|
||||
"metadata": {
|
||||
"description": "Editorial-quality technical and product diagrams — 13 types rendered as standalone HTML with inline SVG, skinnable to match your brand"
|
||||
"description": "Editorial-quality technical and product diagrams — 26 types rendered as standalone HTML with inline SVG, skinnable to match your brand"
|
||||
},
|
||||
"owner": {
|
||||
"name": "Cathryn Lavery"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "diagram-design",
|
||||
"description": "Editorial-quality technical and product diagrams — 13 types rendered as standalone HTML with inline SVG, skinnable to match your brand",
|
||||
"version": "1.0.0",
|
||||
"description": "Editorial-quality technical and product diagrams — 26 types rendered as standalone HTML with inline SVG, skinnable to match your brand",
|
||||
"version": "2.0.0",
|
||||
"homepage": "https://github.com/cathrynlavery/diagram-design",
|
||||
"repository": "https://github.com/cathrynlavery/diagram-design",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "diagram-design",
|
||||
"description": "Editorial-quality technical and product diagrams - 13 types rendered as standalone HTML with inline SVG, skinnable to match your brand",
|
||||
"version": "1.0.0",
|
||||
"description": "Editorial-quality technical and product diagrams - 26 types rendered as standalone HTML with inline SVG, skinnable to match your brand",
|
||||
"version": "2.0.0",
|
||||
"author": {
|
||||
"name": "Cathryn Lavery",
|
||||
"url": "https://github.com/cathrynlavery"
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
.claude/
|
||||
.mcp.json
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||

|
||||
|
||||
14 types. One Claude Code skill. Your brand in 60 seconds — the skill reads your website and maps colors + fonts to every diagram.
|
||||
26 types. One Claude Code skill. Your brand in 60 seconds — the skill reads your website and maps colors + fonts to every diagram.
|
||||
|
||||
No Figma. No generic rounded boxes. No 30-minute color-picking sessions.
|
||||
|
||||
@@ -14,7 +14,7 @@ No Figma. No generic rounded boxes. No 30-minute color-picking sessions.
|
||||
|
||||
I write at [littlemight.com](https://littlemight.com?utm_source=diagram-design&utm_medium=readme&utm_campaign=github&utm_content=intro) (and run [BestSelf.co](https://bestself.co?utm_source=diagram-design&utm_medium=readme&utm_campaign=github&utm_content=intro) on the side). Every time I needed a diagram — an architecture sketch, a flowchart, a pyramid of what matters most — I'd ask Claude and get back a generic rounded-box thing that looked nothing like the rest of the site. I'd either fight with Figma for 30 minutes or just skip the diagram.
|
||||
|
||||
So I built a Claude Code skill for it. Fourteen types, editorial quality, matches your brand in 60 seconds by reading your website.
|
||||
So I built a Claude Code skill for it. Twenty-six types, editorial quality, matches your brand in 60 seconds by reading your website.
|
||||
|
||||
> *The highest-quality move is usually deletion.* Every node earns its place. The accent color is reserved for the 1–2 things the reader should look at first. Target density: 4/10.
|
||||
|
||||
@@ -22,7 +22,7 @@ So I built a Claude Code skill for it. Fourteen types, editorial quality, matche
|
||||
|
||||
## What it makes
|
||||
|
||||
All 14 diagrams ship in three variants: minimal light, minimal dark, and full-editorial. Open any of them directly in a browser — no build step, no JS, no external images.
|
||||
All 26 diagrams ship in three variants: minimal light, minimal dark, and full-editorial. Open any of them directly in a browser — no build step, no JS, no external images.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
@@ -32,7 +32,7 @@ All 14 diagrams ship in three variants: minimal light, minimal dark, and full-ed
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><img src="docs/screenshots/state.png" alt="State machine"><br><b>State machine</b><br><sub>States + transitions</sub></td>
|
||||
<td align="center"><img src="docs/screenshots/er.png" alt="ER / data model"><br><b>ER / data model</b><br><sub>Entities + fields</sub></td>
|
||||
<td align="center"><img src="docs/screenshots/er.png" alt="ER"><br><b>ER / data model</b><br><sub>Entities + fields</sub></td>
|
||||
<td align="center"><img src="docs/screenshots/timeline.png" alt="Timeline"><br><b>Timeline</b><br><sub>Events on an axis</sub></td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -48,16 +48,31 @@ All 14 diagrams ship in three variants: minimal light, minimal dark, and full-ed
|
||||
<tr>
|
||||
<td align="center"><img src="docs/screenshots/layers.png" alt="Layers"><br><b>Layer stack</b><br><sub>Stacked abstractions</sub></td>
|
||||
<td align="center"><img src="docs/screenshots/pyramid.png" alt="Pyramid"><br><b>Pyramid / funnel</b><br><sub>Ranked hierarchy or drop-off</sub></td>
|
||||
<td align="center"> </td>
|
||||
<td align="center"><img src="docs/screenshots/quadrant-consultant.png" alt="Consultant 2×2"><br><b>Consultant 2×2</b><br><sub>Scenario matrix · named cells</sub></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><img src="docs/screenshots/quadrant-consultant.png" alt="Consultant 2×2"><br><b>Consultant 2×2</b><br><sub>Scenario matrix · named cells</sub></td>
|
||||
<td align="center"> </td>
|
||||
<td align="center"> </td>
|
||||
<td align="center"><img src="docs/screenshots/radar.png" alt="Radar"><br><b>Radar / Spider</b><br><sub>Multi-axis comparison</sub></td>
|
||||
<td align="center"><img src="docs/screenshots/it-state.png" alt="IT current-state"><br><b>IT current-state</b><br><sub>Legacy landscape · modernization</sub></td>
|
||||
<td align="center"><img src="docs/screenshots/high-level.png" alt="High-Level"><br><b>High-Level</b><br><sub>End-to-end stack on a cluster</sub></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><img src="docs/screenshots/bar.png" alt="Bar chart"><br><b>Bar chart</b><br><sub>Categorical comparison</sub></td>
|
||||
<td align="center"><img src="docs/screenshots/line.png" alt="Line chart"><br><b>Line chart</b><br><sub>Trends over time</sub></td>
|
||||
<td align="center"><img src="docs/screenshots/gantt.png" alt="Gantt"><br><b>Gantt</b><br><sub>Tasks and phases on a timeline</sub></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><img src="docs/screenshots/scatter.png" alt="Scatter plot"><br><b>Scatter plot</b><br><sub>Distribution and correlation</sub></td>
|
||||
<td align="center"><img src="docs/screenshots/process.png" alt="Process"><br><b>Process</b><br><sub>Multi-actor sequential workflow</sub></td>
|
||||
<td align="center"><img src="docs/screenshots/medallion.png" alt="Medallion"><br><b>Medallion</b><br><sub>Multi-tier data storage</sub></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><img src="docs/screenshots/data-flow.png" alt="Data flow"><br><b>Data flow</b><br><sub>Role-scoped pipeline steps</sub></td>
|
||||
<td align="center"><img src="docs/screenshots/dp-integration.png" alt="DP integration"><br><b>DP integration</b><br><sub>Sources → core → consumers</sub></td>
|
||||
<td align="center"><img src="docs/screenshots/dp-security-matrix.png" alt="DP security matrix"><br><b>DP security matrix</b><br><sub>Per-role access permissions</sub></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
**Browse the live gallery:** open [`skills/diagram-design/assets/index.html`](skills/diagram-design/assets/index.html) in your browser to flip through all 14 diagrams with light / dark / full-editorial tabs.
|
||||
**Browse the live gallery:** open [`skills/diagram-design/assets/index.html`](skills/diagram-design/assets/index.html) in your browser to flip through all 26 diagrams with light / dark / full-editorial tabs.
|
||||
|
||||
---
|
||||
|
||||
@@ -78,6 +93,7 @@ Restart Claude Code. The skill registers as `diagram-design` and activates whene
|
||||
Quicker to install — but the skill lives in the plugin cache, so edits to `references/style-guide.md` don't survive plugin updates. Pick this if you just want to try it out; use the clone route above if you plan to customize the style guide by hand.
|
||||
|
||||
**Claude Code:**
|
||||
|
||||
```
|
||||
/plugin marketplace add cathrynlavery/diagram-design
|
||||
/plugin install diagram-design@diagram-design
|
||||
@@ -86,6 +102,7 @@ Quicker to install — but the skill lives in the plugin cache, so edits to `ref
|
||||
**Claude Cowork:** Customize → Directory → Plugins → **+** → paste `cathrynlavery/diagram-design` → Sync, then install from the Personal list.
|
||||
|
||||
**Codex:**
|
||||
|
||||
```
|
||||
npx skills add https://github.com/cathrynlavery/diagram-design --skill diagram-design
|
||||
```
|
||||
@@ -132,7 +149,7 @@ Before writing tokens, the skill verifies WCAG AA contrast on `ink` over `paper`
|
||||
|
||||
### Manual override
|
||||
|
||||
Prefer to set tokens by hand? Open [`skills/diagram-design/references/style-guide.md`](skills/diagram-design/references/style-guide.md) and edit the table. Everything downstream reads from there — all 14 diagrams, the annotation primitive, and the gallery all inherit semantic role names (`accent`, not `#eb6c36`).
|
||||
Prefer to set tokens by hand? Open [`skills/diagram-design/references/style-guide.md`](skills/diagram-design/references/style-guide.md) and edit the table. Everything downstream reads from there — all 26 diagrams, the annotation primitive, and the gallery all inherit semantic role names (`accent`, not `#eb6c36`).
|
||||
|
||||
### First-run gate
|
||||
|
||||
@@ -147,7 +164,7 @@ See [`skills/diagram-design/references/onboarding.md`](skills/diagram-design/ref
|
||||
## Quickstart
|
||||
|
||||
```bash
|
||||
# Open the gallery to see all 14 diagrams
|
||||
# Open the gallery to see all 26 diagrams
|
||||
open ~/.claude/skills/diagram-design/assets/index.html
|
||||
|
||||
# In Claude Code, just ask:
|
||||
@@ -165,6 +182,30 @@ cp assets/template-full.html my-diagram.html # editorial with summary cards
|
||||
|
||||
---
|
||||
|
||||
## Export to PNG / SVG
|
||||
|
||||
Diagrams ship as self-contained HTML, but you can export the diagram itself for Figma, slides, or social cards. Use the slash command:
|
||||
|
||||
```
|
||||
/diagram-design:export path/to/diagram.html
|
||||
/diagram-design:export path/to/diagram.html --svg-only
|
||||
/diagram-design:export path/to/diagram.html --png-only --scale=3
|
||||
```
|
||||
|
||||
Or just ask in natural language:
|
||||
|
||||
```
|
||||
"Export this diagram as SVG and PNG."
|
||||
"Save my-diagram.html as PNG."
|
||||
```
|
||||
|
||||
- **SVG** — extracts the `<svg>` node and injects Google Fonts so it renders standalone in browsers, Figma, and Illustrator.
|
||||
- **PNG** — rasterizes the diagram via Playwright at 2× by default. One-time setup: `pip install playwright && playwright install chromium`.
|
||||
|
||||
Both formats are diagram-only — editorial cards and headers from `-full` variants aren't included. For a screenshot of the full editorial layout, use your browser's print-to-PDF or full-page screenshot. See [`skills/diagram-design/references/export.md`](skills/diagram-design/references/export.md) for the full procedure.
|
||||
|
||||
---
|
||||
|
||||
## Architecture
|
||||
|
||||
Progressive disclosure. `SKILL.md` is a lean index — it tells Claude how to pick a type and where to look for detail. Every type lives in its own reference file, loaded only when relevant.
|
||||
@@ -194,16 +235,16 @@ diagram-design/
|
||||
├── assets/
|
||||
│ ├── index.html — live gallery, tabbed
|
||||
│ ├── template*.html — scaffolds for new diagrams
|
||||
│ ├── example-<type>.html — 3 variants × 14 types
|
||||
│ ├── example-<type>.html — 3 variants × 26 types
|
||||
│ └── example-quadrant-consultant.html — consultant-special 2×2 scenario matrix
|
||||
└── docs/screenshots/ — the images in this README
|
||||
```
|
||||
|
||||
This keeps Claude's working context tight (only load what you need) and makes the skill easy to extend — drop a new `type-<name>.md` and wire it into the selection guide.
|
||||
This keeps Claude's working context tight (only load what you need) and makes the skill easy to extend — drop a new `type-<name>.md` and wire it into the selection guide. The skill ships with 32 reference files covering every diagram type, primitive, and utility.
|
||||
|
||||
### What loads when
|
||||
|
||||
The top-level `SKILL.md` is always in context. Everything else is pulled in only when relevant — this is what keeps the skill fast even with 15 reference files.
|
||||
The top-level `SKILL.md` is always in context. Everything else is pulled in only when relevant — this is what keeps the skill fast even with 32 reference files.
|
||||
|
||||
| You ask for… | Claude loads |
|
||||
|---|---|
|
||||
@@ -212,7 +253,7 @@ The top-level `SKILL.md` is always in context. Everything else is pulled in only
|
||||
| "Onboard this skill to my site" | `SKILL.md` + `references/onboarding.md` + `references/style-guide.md` |
|
||||
| "Add an editorial callout to this diagram" | `SKILL.md` + `references/primitive-annotation.md` |
|
||||
| "Give me a hand-drawn version" | `SKILL.md` + `references/primitive-sketchy.md` |
|
||||
| Routine diagram-making (any of the 14 diagrams) | Only `SKILL.md` + that one type's reference |
|
||||
| Routine diagram-making (any of the 26 diagrams) | Only `SKILL.md` + that one type's reference |
|
||||
|
||||
No matter how many types exist, Claude only reads the one you need. Add a new type tomorrow and nothing else changes.
|
||||
|
||||
@@ -228,6 +269,7 @@ One accent color, 1–2 focal elements per diagram. Three font families: Instrum
|
||||
|
||||
- **Annotation callout** — italic Instrument Serif + dashed Bézier leader, for editorial asides that sit in the margins. See [`skills/diagram-design/references/primitive-annotation.md`](skills/diagram-design/references/primitive-annotation.md).
|
||||
- **Sketchy filter** — SVG turbulence + displacement map for a hand-drawn variant. Good for essays, not for technical docs. See [`skills/diagram-design/references/primitive-sketchy.md`](skills/diagram-design/references/primitive-sketchy.md).
|
||||
- **Icon set** — 55 monochrome IT/cloud icons (laptop, phone, user, server, database, Docker, Kubernetes, AWS, Azure, GitHub, Postgres…) for richer architecture and sequence diagrams. Stroked icons from [Tabler Icons](https://tabler.io/icons) (MIT); brand silhouettes from [Simple Icons](https://simpleicons.org) (CC0). Each icon uses `currentColor` so it inherits the editorial skin or your onboarded brand. See [`skills/diagram-design/references/primitive-icons.md`](skills/diagram-design/references/primitive-icons.md); browse the [gallery](skills/diagram-design/assets/icons.html). Regenerate with `python scripts/build-icons.py`.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
# Third-party licenses
|
||||
|
||||
The diagram-design skill itself is MIT-licensed (see [`LICENSE`](LICENSE)). It bundles content from the following third-party sources, redistributed under their respective licenses.
|
||||
|
||||
## Tabler Icons
|
||||
|
||||
- **License:** MIT
|
||||
- **Upstream:** https://github.com/tabler/tabler-icons
|
||||
- **Used in:** stroked icons in `skills/diagram-design/references/primitive-icons.md` and `skills/diagram-design/assets/icons.html` (categories: Compute, People, Network, Data, Kubernetes, Action, DevOps, plus the stroked Brand outlines for Docker, Terraform, AWS, Azure, GitHub).
|
||||
|
||||
The MIT license is reproduced in full at https://github.com/tabler/tabler-icons/blob/main/LICENSE.
|
||||
|
||||
## Simple Icons
|
||||
|
||||
- **License:** CC0 1.0 Universal (Public Domain Dedication)
|
||||
- **Upstream:** https://github.com/simple-icons/simple-icons
|
||||
- **Used in:** filled brand silhouettes in `skills/diagram-design/references/primitive-icons.md` and `skills/diagram-design/assets/icons.html` (Kubernetes, Google Cloud, PostgreSQL, Nginx, Gitea, Keycloak, MinIO, Apache NiFi, Apache Airflow, Trino, Apache Superset, Jupyter, Python, R).
|
||||
|
||||
The CC0 dedication is reproduced in full at https://github.com/simple-icons/simple-icons/blob/develop/LICENSE.md.
|
||||
|
||||
## log-z/logos
|
||||
|
||||
- **License:** MIT
|
||||
- **Upstream:** https://github.com/log-z/logos/tree/main/website-logos
|
||||
- **Used in:** filled brand silhouettes that aren't carried by Simple Icons or Tabler — currently MySQL, Redis, and StarRocks. Source SVGs are 100×100 with embedded `<style>` + class-based fills; the build script strips the style block and rewrites class refs to `currentColor` for monochrome consistency.
|
||||
|
||||
The MIT license is reproduced in full at https://github.com/log-z/logos/blob/main/LICENSE.
|
||||
|
||||
## Devicon
|
||||
|
||||
- **License:** MIT
|
||||
- **Upstream:** https://github.com/devicons/devicon
|
||||
- **Used in:** the RStudio and SPSS icons in `scripts/vendor/icons/devicon/`.
|
||||
|
||||
The MIT license is reproduced in full at https://github.com/devicons/devicon/blob/master/LICENSE.
|
||||
|
||||
## One-off sourced icons
|
||||
|
||||
The `scripts/vendor/icons/url/` directory contains one-off sourced icons for SAS, from [SVGRepo](https://www.svgrepo.com/download/374062/sas.svg), and Stata, from the [IcePanel Technology Icons collection](https://icon.icepanel.io/Technology/svg/Stata.svg) published via techicons.dev. Their provenance is recorded here; use of these product marks is covered by the Trademarks note below.
|
||||
|
||||
## Trademarks
|
||||
|
||||
Brand logos remain the trademarks of their respective owners. Their inclusion in this icon set is for documentation and illustrative use only. The presence of a brand mark in this repository does not imply endorsement, sponsorship, or affiliation.
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
description: Export a diagram-design HTML file to .svg and .png next to the source
|
||||
argument-hint: <html-file> [--svg-only|--png-only] [--scale=N] [--output=<path>]
|
||||
allowed-tools:
|
||||
- Read
|
||||
- Write
|
||||
- Edit
|
||||
- Bash
|
||||
- Glob
|
||||
---
|
||||
|
||||
Export the diagram HTML at `$1` to `.svg` and/or `.png`, following the procedure documented in [`skills/diagram-design/references/export.md`](../skills/diagram-design/references/export.md). Treat that reference as the source of truth — don't reimplement the logic here.
|
||||
|
||||
Full argument string: `$ARGUMENTS`
|
||||
|
||||
## Defaults
|
||||
|
||||
- Produce **both** `.svg` and `.png` next to the source (e.g. `diagram.html` → `diagram.svg` + `diagram.png`).
|
||||
- PNG renders at `device_scale_factor=2`.
|
||||
|
||||
## Flags
|
||||
|
||||
- `--svg-only` — emit only the SVG. Skip Playwright entirely.
|
||||
- `--png-only` — emit only the PNG.
|
||||
- `--scale=1` / `--scale=2` / `--scale=3` — override the PNG device scale factor. Default `2`.
|
||||
- `--output=<path>` — override the output base path; the format extension is appended. Applies to both formats when both are produced.
|
||||
|
||||
## Required behaviour
|
||||
|
||||
1. **No source path provided** → ask the user which `.html` file to export. Don't guess.
|
||||
2. **Source is `assets/index.html`** (the gallery, multiple SVGs in one file) → refuse and ask which specific diagram file. Per the reference's edge-case section.
|
||||
3. **Source has no `<svg>` block** → refuse and tell the user; don't write anything.
|
||||
4. **PNG requested but Playwright not installed** → surface the install instruction from the reference verbatim and stop. Do **not** auto-install.
|
||||
5. **PNG requested with `--scale` outside {1,2,3}** → reject; valid values are 1, 2, 3.
|
||||
|
||||
After producing the outputs, report the file paths and sizes back to the user.
|
||||
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 195 KiB |
|
After Width: | Height: | Size: 186 KiB |
|
After Width: | Height: | Size: 149 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 88 KiB |
|
After Width: | Height: | Size: 188 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 219 KiB |
|
After Width: | Height: | Size: 177 KiB |
|
After Width: | Height: | Size: 199 KiB |
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,588 @@
|
||||
"""Fetch and normalize the icon set for the diagram-design skill.
|
||||
|
||||
Pulls SVGs from Tabler Icons (MIT), Simple Icons (CC0), log-z/logos (MIT),
|
||||
and Devicon (MIT), normalizes them to a 24x24 viewBox using `currentColor`
|
||||
so they inherit ink from context, and emits two artifacts:
|
||||
|
||||
- skills/diagram-design/references/primitive-icons.md (catalog with snippets)
|
||||
- skills/diagram-design/assets/icons.html (visual gallery)
|
||||
|
||||
Run: python scripts/build-icons.py
|
||||
Reqs: stdlib only (urllib, re, pathlib)
|
||||
|
||||
Re-run any time the manifest below changes. The generated files are
|
||||
committed; users of the skill never need to run this script.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import pathlib
|
||||
import re
|
||||
import sys
|
||||
import urllib.request
|
||||
import urllib.error
|
||||
|
||||
REPO = pathlib.Path(__file__).resolve().parent.parent
|
||||
|
||||
MD_OUT = REPO / "skills" / "diagram-design" / "references" / "primitive-icons.md"
|
||||
HTML_OUT = REPO / "skills" / "diagram-design" / "assets" / "icons.html"
|
||||
VENDOR_DIR = REPO / "scripts" / "vendor" / "icons"
|
||||
|
||||
|
||||
def vendor_path(slot: str, source: str, source_id: str) -> pathlib.Path:
|
||||
"""Return the local cache path for a given icon."""
|
||||
if source == "tabler":
|
||||
return VENDOR_DIR / "tabler" / f"{source_id}.svg"
|
||||
if source == "simple":
|
||||
return VENDOR_DIR / "simple" / f"{source_id}.svg"
|
||||
if source == "logz":
|
||||
return VENDOR_DIR / "logz" / f"{source_id}.svg"
|
||||
if source.startswith("devicon"):
|
||||
variant = source.split(":")[1] if ":" in source else "plain"
|
||||
return VENDOR_DIR / "devicon" / f"{source_id}-{variant}.svg"
|
||||
# "url" source — key by slot name so the cache is human-readable
|
||||
safe = re.sub(r"[^\w\-]", "_", slot)
|
||||
return VENDOR_DIR / "url" / f"{safe}.svg"
|
||||
|
||||
TABLER_URL = "https://raw.githubusercontent.com/tabler/tabler-icons/main/icons/outline/{name}.svg"
|
||||
TABLER_URL_FALLBACK = "https://raw.githubusercontent.com/tabler/tabler-icons/main/icons/{name}.svg"
|
||||
SI_URL = "https://raw.githubusercontent.com/simple-icons/simple-icons/develop/icons/{slug}.svg"
|
||||
SI_CDN_URL = "https://cdn.jsdelivr.net/npm/simple-icons/icons/{slug}.svg"
|
||||
LOGZ_URL = "https://raw.githubusercontent.com/log-z/logos/main/website-logos/{name}.svg"
|
||||
DEVICON_URL = "https://raw.githubusercontent.com/devicons/devicon/master/icons/{name}/{name}-{variant}.svg"
|
||||
# For "url" source: source_id is the full URL; blurb should note license
|
||||
|
||||
|
||||
# (slot_name, source, source_id, blurb)
|
||||
# slot_name = what users call the icon
|
||||
# source = "tabler" or "simple"
|
||||
# source_id = upstream filename / slug (no extension)
|
||||
ICONS: dict[str, list[tuple[str, str, str, str]]] = {
|
||||
"Compute": [
|
||||
("laptop", "tabler", "device-laptop", "User laptop or workstation."),
|
||||
("phone", "tabler", "device-mobile", "Mobile phone or tablet client."),
|
||||
("desktop", "tabler", "device-desktop", "Desktop computer."),
|
||||
("server", "tabler", "server", "Physical server or VM host."),
|
||||
("container", "tabler", "package", "Container image or running instance."),
|
||||
("vm", "tabler", "cube", "Virtual machine."),
|
||||
],
|
||||
"People": [
|
||||
("user", "tabler", "user", "End user or single actor."),
|
||||
("users", "tabler", "users", "Group / cohort / team."),
|
||||
("admin", "tabler", "user-shield", "Privileged user / admin."),
|
||||
("robot", "tabler", "robot", "Bot, agent, or automated process."),
|
||||
],
|
||||
"Network": [
|
||||
("cloud", "tabler", "cloud", "Cloud provider or boundary."),
|
||||
("internet", "tabler", "world", "Public internet."),
|
||||
("cdn", "tabler", "world-www", "CDN or edge cache."),
|
||||
("firewall", "tabler", "wall", "Firewall or perimeter control."),
|
||||
("vpn", "tabler", "shield-lock", "VPN or encrypted tunnel."),
|
||||
("load-balancer", "tabler", "arrows-split", "Load balancer / traffic split."),
|
||||
("gateway", "tabler", "door-enter", "API gateway or ingress door."),
|
||||
("dns", "tabler", "tag", "DNS / name resolution."),
|
||||
],
|
||||
"Data": [
|
||||
("database", "tabler", "database", "Relational or document database."),
|
||||
("file", "tabler", "file", "Generic file."),
|
||||
("log", "tabler", "file-text", "Log file / event stream."),
|
||||
("queue", "tabler", "stack-2", "Message queue / FIFO."),
|
||||
("cache", "tabler", "bolt", "Cache layer."),
|
||||
("bucket", "tabler", "bucket", "Object storage / S3 bucket."),
|
||||
("backup", "tabler", "device-floppy", "Backup or snapshot."),
|
||||
("search", "tabler", "search", "Search index / query."),
|
||||
],
|
||||
"Kubernetes": [
|
||||
("pod", "tabler", "hexagon", "Pod (smallest deployable unit)."),
|
||||
("node", "tabler", "topology-star", "Cluster node."),
|
||||
("service", "tabler", "world-cog", "K8s service / virtual endpoint."),
|
||||
("deployment", "tabler", "rocket", "Deployment rollout."),
|
||||
("ingress", "tabler", "arrow-right-rhombus", "Ingress controller / route in."),
|
||||
("volume", "tabler", "device-sd-card", "Persistent volume."),
|
||||
],
|
||||
"Action": [
|
||||
("api", "tabler", "braces", "API surface / endpoint."),
|
||||
("request", "tabler", "arrow-right", "Outbound request."),
|
||||
("response", "tabler", "arrow-left", "Inbound response."),
|
||||
("sync", "tabler", "refresh", "Sync / reconcile loop."),
|
||||
("lock", "tabler", "lock", "Locked / authenticated."),
|
||||
("key", "tabler", "key", "Key / secret."),
|
||||
("alert", "tabler", "alert-triangle", "Warning / paged alert."),
|
||||
],
|
||||
"DevOps": [
|
||||
("git-branch", "tabler", "git-branch", "Branch / fork point."),
|
||||
("terminal", "tabler", "terminal", "Shell / CLI."),
|
||||
("pipeline", "tabler", "git-merge", "CI/CD pipeline."),
|
||||
("bug", "tabler", "bug", "Bug / defect."),
|
||||
("monitoring", "tabler", "chart-line", "Metrics / observability."),
|
||||
("test", "tabler", "test-pipe", "Test / experiment."),
|
||||
],
|
||||
"Brand": [
|
||||
# Stroke-style brand outlines (Tabler) where available — match the rest of the set
|
||||
("docker", "tabler", "brand-docker", "Docker engine / image."),
|
||||
("terraform", "tabler", "brand-terraform", "Terraform IaC."),
|
||||
("aws", "tabler", "brand-aws", "Amazon Web Services."),
|
||||
("azure", "tabler", "brand-azure", "Microsoft Azure."),
|
||||
("github", "tabler", "brand-github", "GitHub."),
|
||||
# Filled silhouettes (Simple Icons) for brands Tabler doesn't ship
|
||||
("kubernetes", "simple", "kubernetes", "Kubernetes."),
|
||||
("gcp", "simple", "googlecloud", "Google Cloud."),
|
||||
("postgres", "simple", "postgresql", "PostgreSQL."),
|
||||
("redis", "logz", "redis", "Redis."),
|
||||
("nginx", "simple", "nginx", "Nginx."),
|
||||
("gitea", "simple", "gitea", "Gitea self-hosted git."),
|
||||
("keycloak", "simple", "keycloak", "Keycloak identity / SSO."),
|
||||
("active-directory", "tabler", "address-book", "Active Directory / LDAP identity directory."),
|
||||
("minio", "simple", "minio", "MinIO S3-compatible object storage."),
|
||||
("mysql", "logz", "mysql", "MySQL."),
|
||||
("oracle", "simple", "oracle", "Oracle Database."),
|
||||
("sqlserver", "simple", "microsoftsqlserver", "Microsoft SQL Server."),
|
||||
("sqlite", "simple", "sqlite", "SQLite embedded database."),
|
||||
("hive", "simple", "apachehive", "Apache Hive data warehouse."),
|
||||
("starrocks", "logz", "starrocks", "StarRocks MPP analytical DB."),
|
||||
],
|
||||
"Data stack": [
|
||||
("nifi", "simple", "apachenifi", "Apache NiFi data flow."),
|
||||
("airflow", "simple", "apacheairflow", "Apache Airflow scheduler / DAG runner."),
|
||||
("hop", "url", "https://hop.apache.org/img/hop-logo.svg", "Apache Hop data orchestration / ETL."),
|
||||
("pentaho", "url", "https://cdn.worldvectorlogo.com/logos/pentaho-2.svg", "Pentaho PDI (Kettle) ETL & data integration."),
|
||||
("dagster", "url", "https://cdn.prod.website-files.com/681399f654933b29e12fb8bd/6a04996c4dd28c8ad73bbf3d_Dagster%20Icon.svg", "Dagster data orchestration platform."),
|
||||
("trino", "simple", "trino", "Trino distributed SQL query engine."),
|
||||
("superset", "simple", "apachesuperset", "Apache Superset BI / dashboards."),
|
||||
("redash", "simple", "redash", "Redash open-source BI & dashboards."),
|
||||
("tableau", "simple", "tableau", "Tableau data visualization."),
|
||||
("powerbi", "simple", "powerbi", "Microsoft Power BI."),
|
||||
("jupyter", "simple", "jupyter", "Jupyter / JupyterLab notebooks."),
|
||||
],
|
||||
"Language": [
|
||||
("python", "simple", "python", "Python."),
|
||||
("r", "simple", "r", "R statistical language."),
|
||||
("sql", "tabler", "sql", "SQL / generic relational query."),
|
||||
],
|
||||
"Statistical tools": [
|
||||
("spss", "devicon:plain", "spss", "IBM SPSS Statistics."),
|
||||
("sas", "url", "https://www.svgrepo.com/download/374062/sas.svg", "SAS analytics platform."),
|
||||
("stata", "url", "https://icon.icepanel.io/Technology/svg/Stata.svg", "Stata statistical software."),
|
||||
("rstudio", "devicon:plain", "rstudio", "RStudio / Posit IDE for R and Python."),
|
||||
("qgis", "simple", "qgis", "QGIS open-source GIS platform."),
|
||||
],
|
||||
"File formats": [
|
||||
("excel", "tabler", "file-type-xls", "Microsoft Excel spreadsheet."),
|
||||
("csv", "tabler", "file-type-csv", "Comma-separated values file."),
|
||||
("txt", "tabler", "file-type-txt", "Plain text file."),
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
def fetch(url: str) -> str | None:
|
||||
try:
|
||||
req = urllib.request.Request(
|
||||
url, headers={"User-Agent": "diagram-design-build/1.0 (https://github.com)"}
|
||||
)
|
||||
with urllib.request.urlopen(req, timeout=15) as r:
|
||||
return r.read().decode("utf-8")
|
||||
except urllib.error.HTTPError:
|
||||
return None
|
||||
except urllib.error.URLError as e:
|
||||
print(f" network error for {url}: {e}", file=sys.stderr)
|
||||
return None
|
||||
|
||||
|
||||
def fetch_tabler(name: str) -> str | None:
|
||||
return fetch(TABLER_URL.format(name=name)) or fetch(TABLER_URL_FALLBACK.format(name=name))
|
||||
|
||||
|
||||
def fetch_simple(slug: str) -> str | None:
|
||||
return fetch(SI_URL.format(slug=slug)) or fetch(SI_CDN_URL.format(slug=slug))
|
||||
|
||||
|
||||
def fetch_logz(name: str) -> str | None:
|
||||
return fetch(LOGZ_URL.format(name=name))
|
||||
|
||||
|
||||
def fetch_devicon(name: str, variant: str = "plain") -> str | None:
|
||||
return fetch(DEVICON_URL.format(name=name, variant=variant))
|
||||
|
||||
|
||||
def fetch_url(url: str) -> str | None:
|
||||
return fetch(url)
|
||||
|
||||
|
||||
def normalize_tabler(raw: str) -> str:
|
||||
"""Extract inner geometry from a Tabler SVG and wrap with our normalized attrs."""
|
||||
inner = re.search(r"<svg\b[^>]*>(.*?)</svg>", raw, flags=re.DOTALL | re.IGNORECASE)
|
||||
if not inner:
|
||||
raise ValueError("no <svg> in Tabler payload")
|
||||
body = inner.group(1).strip()
|
||||
# Drop tabler-icons class wrapper paths (icon-tabler placeholder path that does nothing)
|
||||
body = re.sub(r'<path\s+stroke="none"[^/]*?/>', "", body)
|
||||
body = re.sub(r"\s+", " ", body).strip()
|
||||
return (
|
||||
'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" '
|
||||
'stroke="currentColor" stroke-width="1.5" stroke-linecap="round" '
|
||||
f'stroke-linejoin="round">{body}</svg>'
|
||||
)
|
||||
|
||||
|
||||
def normalize_simple(raw: str) -> str:
|
||||
"""Extract path from a Simple Icons SVG; force fill=currentColor."""
|
||||
inner = re.search(r"<svg\b[^>]*>(.*?)</svg>", raw, flags=re.DOTALL | re.IGNORECASE)
|
||||
if not inner:
|
||||
raise ValueError("no <svg> in Simple Icons payload")
|
||||
body = inner.group(1).strip()
|
||||
body = re.sub(r"\s+", " ", body).strip()
|
||||
return (
|
||||
'<svg width="24" height="24" viewBox="0 0 24 24" '
|
||||
f'fill="currentColor">{body}</svg>'
|
||||
)
|
||||
|
||||
|
||||
def normalize_url(raw: str) -> str:
|
||||
"""Generic normalizer for directly-fetched SVGs (icepanel, vendor CDNs, etc.).
|
||||
Extracts inner paths, rewrites fill/stroke colours to currentColor,
|
||||
and preserves the original viewBox.
|
||||
|
||||
Rules applied:
|
||||
- White / near-white fills (#fff, #ffffff, white) are kept as-is — they
|
||||
act as contrast cutouts in 2-colour logos (e.g. white letter on coloured
|
||||
circle). Every other colour becomes currentColor.
|
||||
- inline style="fill:#..." is rewritten to a fill= attribute.
|
||||
- Inkscape layer translate() transforms are stripped (canvas offset artefact).
|
||||
"""
|
||||
vb_match = re.search(r'viewBox="([^"]+)"', raw, re.IGNORECASE)
|
||||
viewbox = vb_match.group(1) if vb_match else "0 0 128 128"
|
||||
inner = re.search(r"<svg\b[^>]*>(.*?)</svg>", raw, flags=re.DOTALL | re.IGNORECASE)
|
||||
if not inner:
|
||||
raise ValueError("no <svg> in payload")
|
||||
body = inner.group(1)
|
||||
body = re.sub(r"<style\b[^>]*>.*?</style>", "", body, flags=re.DOTALL | re.IGNORECASE)
|
||||
body = re.sub(r"<title\b[^>]*>.*?</title>", "", body, flags=re.DOTALL | re.IGNORECASE)
|
||||
body = re.sub(r"<defs\b[^>]*>.*?</defs>", "", body, flags=re.DOTALL | re.IGNORECASE)
|
||||
# Strip Inkscape canvas-offset translate transforms from group wrappers
|
||||
body = re.sub(r'\btransform="translate\([^"]+\)"', '', body)
|
||||
|
||||
def _rewrite_fill(m: re.Match) -> str:
|
||||
"""Keep white; turn everything else into currentColor."""
|
||||
hex_val = m.group(1).lower().strip()
|
||||
if hex_val in ("#fff", "#ffffff", "white", "#fefefe", "#fdfdfd"):
|
||||
return 'fill="#fff"'
|
||||
return 'fill="currentColor"'
|
||||
|
||||
# Rewrite inline style="fill:#rrggbb" → standalone fill= attribute
|
||||
body = re.sub(
|
||||
r'style="[^"]*fill:\s*(#[0-9a-fA-F]{3,8}|white)[^"]*"',
|
||||
lambda m: _rewrite_fill(re.search(r'(#[0-9a-fA-F]{3,8}|white)', m.group(0))),
|
||||
body,
|
||||
)
|
||||
# Rewrite standalone fill="#rrggbb" attributes
|
||||
body = re.sub(
|
||||
r'\bfill="(#[0-9a-fA-F]{3,8}|white)"',
|
||||
_rewrite_fill,
|
||||
body,
|
||||
)
|
||||
body = re.sub(r'\bstroke="#[0-9a-fA-F]{3,8}"', 'stroke="currentColor"', body)
|
||||
body = re.sub(r'\bfill="none"', '', body)
|
||||
body = re.sub(r"\s+", " ", body).strip()
|
||||
return (
|
||||
f'<svg width="24" height="24" viewBox="{viewbox}" '
|
||||
f'fill="currentColor">{body}</svg>'
|
||||
)
|
||||
|
||||
|
||||
def normalize_devicon(raw: str) -> str:
|
||||
"""Devicon SVGs have colored fills and a 128x128 or 32x32 viewBox.
|
||||
Strip fills/classes and rewrite to 24x24 currentColor."""
|
||||
inner = re.search(r"<svg\b[^>]*>(.*?)</svg>", raw, flags=re.DOTALL | re.IGNORECASE)
|
||||
if not inner:
|
||||
raise ValueError("no <svg> in Devicon payload")
|
||||
body = inner.group(1)
|
||||
body = re.sub(r"<style\b[^>]*>.*?</style>", "", body, flags=re.DOTALL | re.IGNORECASE)
|
||||
body = re.sub(r"<title\b[^>]*>.*?</title>", "", body, flags=re.DOTALL | re.IGNORECASE)
|
||||
body = re.sub(r'\bfill="#[0-9a-fA-F]{3,8}"', 'fill="currentColor"', body)
|
||||
body = re.sub(r'\bstroke="#[0-9a-fA-F]{3,8}"', 'stroke="currentColor"', body)
|
||||
body = re.sub(r'\bclass="[^"]*"', 'fill="currentColor"', body)
|
||||
body = re.sub(r"\s+", " ", body).strip()
|
||||
return (
|
||||
'<svg width="24" height="24" viewBox="0 0 128 128" '
|
||||
f'fill="currentColor">{body}</svg>'
|
||||
)
|
||||
|
||||
|
||||
def normalize_logz(raw: str) -> str:
|
||||
"""log-z/logos SVGs are 100x100 with embedded <style> + class-based fills.
|
||||
Strip the style block and rewrite class refs so the icon inherits currentColor."""
|
||||
inner = re.search(r"<svg\b[^>]*>(.*?)</svg>", raw, flags=re.DOTALL | re.IGNORECASE)
|
||||
if not inner:
|
||||
raise ValueError("no <svg> in log-z payload")
|
||||
body = inner.group(1)
|
||||
body = re.sub(r"<style\b[^>]*>.*?</style>", "", body, flags=re.DOTALL | re.IGNORECASE)
|
||||
body = re.sub(r'\bclass="st\d+"', 'fill="currentColor"', body)
|
||||
body = re.sub(r'\bfill="#[0-9a-fA-F]{3,8}"', 'fill="currentColor"', body)
|
||||
body = re.sub(r"\s+", " ", body).strip()
|
||||
return (
|
||||
'<svg width="24" height="24" viewBox="0 0 100 100" '
|
||||
f'fill="currentColor">{body}</svg>'
|
||||
)
|
||||
|
||||
|
||||
def build() -> tuple[list[str], list[str]]:
|
||||
md_chunks: list[str] = []
|
||||
gallery_chunks: list[str] = []
|
||||
misses: list[str] = []
|
||||
|
||||
md_chunks.append(
|
||||
"# Icons (primitive)\n\n"
|
||||
"A monochrome 24×24 icon library for IT/cloud diagrams. Each icon "
|
||||
"uses `currentColor` so it inherits ink from its parent SVG and "
|
||||
"adapts to the editorial skin or any user-onboarded brand palette.\n\n"
|
||||
"## Usage\n\n"
|
||||
"Find the icon by name (the `### name` headings below). Copy the "
|
||||
"fenced `<svg>` snippet into your diagram. Default size is 24×24; "
|
||||
"wrap in `<g transform=\"translate(x,y) scale(s)\">` to position and "
|
||||
"resize. Set `color`, `fill`, or `stroke` on the parent group/SVG to "
|
||||
"control color.\n\n"
|
||||
"Generic icons are stroked (1.5px, hairline, like the rest of the "
|
||||
"skill); brand silhouettes are filled. Don't mix the two styles in "
|
||||
"the same diagram unnecessarily.\n\n"
|
||||
)
|
||||
|
||||
for category, items in ICONS.items():
|
||||
md_chunks.append(f"## {category}\n\n")
|
||||
gallery_chunks.append(f'<section class="cat"><h2>{category}</h2><div class="grid">')
|
||||
|
||||
for slot, source, source_id, blurb in items:
|
||||
vpath = vendor_path(slot, source, source_id)
|
||||
|
||||
if source == "tabler":
|
||||
normalize = normalize_tabler
|
||||
attribution = f"Tabler Icons / `{source_id}` (MIT)"
|
||||
elif source == "simple":
|
||||
normalize = normalize_simple
|
||||
attribution = f"Simple Icons / `{source_id}` (CC0)"
|
||||
elif source == "logz":
|
||||
normalize = normalize_logz
|
||||
attribution = f"log-z/logos / `{source_id}` (MIT)"
|
||||
elif source.startswith("devicon"):
|
||||
variant = source.split(":")[1] if ":" in source else "plain"
|
||||
normalize = normalize_devicon
|
||||
attribution = f"Devicon / `{source_id}-{variant}` (MIT)"
|
||||
elif source == "url":
|
||||
normalize = normalize_url
|
||||
domain = re.sub(r"https?://([^/]+)/.*", r"\1", source_id)
|
||||
attribution = f"Direct fetch / `{domain}` — verify license before use"
|
||||
else:
|
||||
raise ValueError(f"unknown source: {source}")
|
||||
|
||||
if vpath.exists():
|
||||
print(f" local {source}/{source_id} -> {slot}", file=sys.stderr)
|
||||
raw = vpath.read_text(encoding="utf-8")
|
||||
else:
|
||||
print(f" fetching {source}/{source_id} -> {slot}", file=sys.stderr)
|
||||
if source == "tabler":
|
||||
raw = fetch_tabler(source_id)
|
||||
elif source == "simple":
|
||||
raw = fetch_simple(source_id)
|
||||
elif source == "logz":
|
||||
raw = fetch_logz(source_id)
|
||||
elif source.startswith("devicon"):
|
||||
variant = source.split(":")[1] if ":" in source else "plain"
|
||||
raw = fetch_devicon(source_id, variant)
|
||||
elif source == "url":
|
||||
raw = fetch_url(source_id)
|
||||
if raw is not None:
|
||||
vpath.parent.mkdir(parents=True, exist_ok=True)
|
||||
vpath.write_text(raw, encoding="utf-8")
|
||||
|
||||
if raw is None:
|
||||
misses.append(f"{slot} <- {source}/{source_id}")
|
||||
md_chunks.append(
|
||||
f"### {slot}\n_NOT FOUND — please pick a fallback_\n\n"
|
||||
)
|
||||
gallery_chunks.append(
|
||||
f'<div class="cell missing"><div class="icon">∅</div>'
|
||||
f'<div class="name">{slot}</div></div>'
|
||||
)
|
||||
continue
|
||||
|
||||
try:
|
||||
snippet = normalize(raw)
|
||||
except ValueError as e:
|
||||
misses.append(f"{slot} <- {source}/{source_id} (parse: {e})")
|
||||
continue
|
||||
|
||||
md_chunks.append(
|
||||
f"### {slot}\n{blurb}\n\n"
|
||||
f"```svg\n{snippet}\n```\n\n"
|
||||
f"Source: {attribution}\n\n"
|
||||
)
|
||||
gallery_chunks.append(
|
||||
f'<div class="cell"><div class="icon">{snippet}</div>'
|
||||
f'<div class="name">{slot}</div></div>'
|
||||
)
|
||||
|
||||
gallery_chunks.append("</div></section>")
|
||||
|
||||
md_chunks.append(
|
||||
"---\n\n"
|
||||
"## License attribution\n\n"
|
||||
"- **Tabler Icons** — MIT — https://github.com/tabler/tabler-icons\n"
|
||||
"- **Simple Icons** — CC0 — https://github.com/simple-icons/simple-icons\n"
|
||||
"- **Devicon** — MIT — https://github.com/devicons/devicon\n"
|
||||
"- **log-z/logos** — MIT — https://github.com/log-z/logos\n\n"
|
||||
"All libraries' licenses permit redistribution, including in this "
|
||||
"repository's MIT-licensed source. Brand logos retain their "
|
||||
"respective trademarks; this set is for documentation and "
|
||||
"illustrative use only.\n"
|
||||
)
|
||||
|
||||
return md_chunks, gallery_chunks, misses
|
||||
|
||||
|
||||
GALLERY_TEMPLATE = """<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Icon library · Diagram Design</title>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Geist:wght@400;500;600&family=Geist+Mono:wght@400;500;600&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
:root {
|
||||
--color-paper: #f5f5f5;
|
||||
--color-paper-2: #ececec;
|
||||
--color-ink: #2d3142;
|
||||
--color-muted: #4f5d75;
|
||||
--color-soft: #7a8399;
|
||||
--color-rule: rgba(45,49,66,0.12);
|
||||
--color-accent: #eb6c36;
|
||||
--font-sans: 'Geist', system-ui, sans-serif;
|
||||
--font-serif: 'Instrument Serif', serif;
|
||||
--font-mono: 'Geist Mono', ui-monospace, monospace;
|
||||
}
|
||||
body {
|
||||
font-family: var(--font-sans);
|
||||
background: var(--color-paper);
|
||||
color: var(--color-ink);
|
||||
min-height: 100vh;
|
||||
padding: 3rem 2rem;
|
||||
}
|
||||
.container { max-width: 1200px; margin: 0 auto; }
|
||||
.header { margin-bottom: 2.5rem; }
|
||||
.eyebrow {
|
||||
font-family: var(--font-mono);
|
||||
font-size: 0.66rem;
|
||||
font-weight: 500;
|
||||
letter-spacing: 0.18em;
|
||||
text-transform: uppercase;
|
||||
color: var(--color-muted);
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
h1 {
|
||||
font-family: var(--font-serif);
|
||||
font-size: clamp(1.75rem, 3vw + 1rem, 2.5rem);
|
||||
font-weight: 400;
|
||||
letter-spacing: -0.02em;
|
||||
line-height: 1.1;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
.subtitle {
|
||||
font-size: 1rem;
|
||||
line-height: 1.55;
|
||||
color: var(--color-muted);
|
||||
max-width: 64ch;
|
||||
}
|
||||
.cat { margin-top: 2.5rem; }
|
||||
.cat h2 {
|
||||
font-family: var(--font-serif);
|
||||
font-size: 1.25rem;
|
||||
font-weight: 400;
|
||||
margin-bottom: 1rem;
|
||||
padding-bottom: 0.5rem;
|
||||
border-bottom: 1px solid var(--color-rule);
|
||||
color: var(--color-ink);
|
||||
}
|
||||
.grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(6, 1fr);
|
||||
gap: 0.5rem;
|
||||
}
|
||||
@media (max-width: 980px) { .grid { grid-template-columns: repeat(4, 1fr); } }
|
||||
@media (max-width: 600px) { .grid { grid-template-columns: repeat(2, 1fr); } }
|
||||
.cell {
|
||||
background: #fff;
|
||||
border: 1px solid var(--color-rule);
|
||||
border-radius: 6px;
|
||||
padding: 1rem 0.5rem 0.75rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
color: var(--color-ink);
|
||||
transition: border-color 0.12s, color 0.12s;
|
||||
}
|
||||
.cell:hover { border-color: var(--color-accent); color: var(--color-accent); }
|
||||
.cell .icon { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; }
|
||||
.cell .icon svg { width: 100%; height: 100%; }
|
||||
.cell .name {
|
||||
font-family: var(--font-mono);
|
||||
font-size: 0.62rem;
|
||||
letter-spacing: 0.06em;
|
||||
color: var(--color-muted);
|
||||
text-align: center;
|
||||
}
|
||||
.cell.missing { opacity: 0.5; }
|
||||
.cell.missing .icon { font-size: 24px; color: var(--color-muted); }
|
||||
footer {
|
||||
margin-top: 3rem;
|
||||
padding-top: 1.5rem;
|
||||
border-top: 1px solid var(--color-rule);
|
||||
font-family: var(--font-mono);
|
||||
font-size: 0.72rem;
|
||||
letter-spacing: 0.06em;
|
||||
color: var(--color-soft);
|
||||
}
|
||||
footer a { color: inherit; text-decoration: underline dotted; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<p class="eyebrow">Icons · Diagram Design</p>
|
||||
<h1>Icon library</h1>
|
||||
<p class="subtitle">A small, monochrome library for IT/cloud illustrations. Stroked icons from <a href="https://tabler.io/icons" style="color:inherit">Tabler Icons</a> (MIT); brand silhouettes from <a href="https://simpleicons.org" style="color:inherit">Simple Icons</a> (CC0). Every icon uses <code>currentColor</code> so it inherits ink from its parent.</p>
|
||||
</div>
|
||||
{SECTIONS}
|
||||
<footer>
|
||||
Tabler Icons · MIT · github.com/tabler/tabler-icons · Simple Icons · CC0 · github.com/simple-icons/simple-icons · Devicon · MIT · github.com/devicons/devicon
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
"""
|
||||
|
||||
|
||||
def main() -> int:
|
||||
print("Building icon library…", file=sys.stderr)
|
||||
md_chunks, gallery_chunks, misses = build()
|
||||
|
||||
MD_OUT.parent.mkdir(parents=True, exist_ok=True)
|
||||
MD_OUT.write_text("".join(md_chunks), encoding="utf-8")
|
||||
|
||||
HTML_OUT.parent.mkdir(parents=True, exist_ok=True)
|
||||
html = GALLERY_TEMPLATE.replace("{SECTIONS}", "\n".join(gallery_chunks))
|
||||
HTML_OUT.write_text(html, encoding="utf-8")
|
||||
|
||||
total = sum(len(items) for items in ICONS.values())
|
||||
print(f"\nDone. {total - len(misses)}/{total} fetched.", file=sys.stderr)
|
||||
print(f" primitive-icons.md: {MD_OUT}", file=sys.stderr)
|
||||
print(f" icons.html: {HTML_OUT}", file=sys.stderr)
|
||||
if misses:
|
||||
print(f"\n {len(misses)} miss(es) — review and pick fallbacks:", file=sys.stderr)
|
||||
for m in misses:
|
||||
print(f" - {m}", file=sys.stderr)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
@@ -0,0 +1,61 @@
|
||||
"""Replace mojibake sequences in UTF-8 files with their original characters.
|
||||
|
||||
The repo had a few files saved by a tool that interpreted UTF-8 as cp1252 and
|
||||
re-saved as UTF-8, producing classic mojibake (em-dash --> 'â€"', section sign
|
||||
--> '§', right arrow --> 'â†'', etc.). This script rewrites those sequences
|
||||
in-place without touching legitimately-encoded UTF-8 elsewhere in the file.
|
||||
"""
|
||||
import sys
|
||||
|
||||
PAIRS = [
|
||||
('—', '—'), # em-dash
|
||||
('–', '–'), # en-dash
|
||||
('’', '’'), # right single quote
|
||||
('‘', '‘'), # left single quote
|
||||
('“', '“'), # left double quote
|
||||
('â€', '”'), # right double quote
|
||||
('…', '…'), # horizontal ellipsis
|
||||
('•', '•'), # bullet
|
||||
('→', '→'), # right arrow
|
||||
('↑', '←'), # left arrow
|
||||
('↑', '↑'), # up arrow (same prefix collision - rare)
|
||||
('↓', '↓'), # down arrow
|
||||
('≤', '≤'), # less-than-or-equal
|
||||
('≥', '≥'), # greater-than-or-equal
|
||||
('×', '×'), # multiplication sign
|
||||
('÷', '÷'), # division sign
|
||||
('§', '§'), # section sign
|
||||
('°', '°'), # degree
|
||||
('½', '½'), # one-half
|
||||
('«', '«'), # «
|
||||
('»', '»'), # »
|
||||
('©', '©'), # ©
|
||||
('®', '®'), # ®
|
||||
]
|
||||
|
||||
|
||||
def fix(path: str) -> int:
|
||||
with open(path, 'rb') as f:
|
||||
raw = f.read()
|
||||
had_bom = raw.startswith(b'\xef\xbb\xbf')
|
||||
if had_bom:
|
||||
raw = raw[3:]
|
||||
text = raw.decode('utf-8')
|
||||
n = 0
|
||||
for bad, good in PAIRS:
|
||||
if bad in text:
|
||||
n += text.count(bad)
|
||||
text = text.replace(bad, good)
|
||||
if n == 0 and not had_bom:
|
||||
print(f'{path}: no mojibake found')
|
||||
return 0
|
||||
with open(path, 'w', encoding='utf-8', newline='\n') as f:
|
||||
f.write(text)
|
||||
note = f' (also stripped BOM)' if had_bom else ''
|
||||
print(f'{path}: replaced {n} sequence(s){note}')
|
||||
return n
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
for p in sys.argv[1:]:
|
||||
fix(p)
|
||||
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path fill="#75aadb" d="M71.4 38.8c-1.5-.6-3.9-1-6.9-1.1-4.2-.1-9 .4-9.2.5v20c13.3.6 15.5-1.7 15.5-1.7 11.6-5.9 4.3-16.2.6-17.7z"/><path fill="#75aadb" d="M64 0C28.6 0 0 28.6 0 64s28.6 64 64 64 64-28.6 64-64S99.3 0 64 0zm28.6 89.8H82L64.4 63.5h-9V84h9v5.8H41.5v-5.7l7.6-.1-.1-45.9c-.8-.2-7.5-.8-7.5-.8V32c1 1 7.9 1.2 7.9 1.2 1.6.1 3.9.2 5.2-.1 9.3-1.7 16.4-.4 16.4-.4 14 3.2 14.2 15.8 10.3 22.6-3.5 5.8-10.3 7.2-10.3 7.2l14.4 21.8 7.2-.1v5.6z"/></svg>
|
||||
|
After Width: | Height: | Size: 513 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path fill="#CC1E4C" d="M125 80.5c-1.7 0-3.1 1.3-3.1 3s1.3 3 3.1 3c1.7 0 3-1.3 3-3s-1.3-3-3-3zm-.1.5c1.4 0 2.4 1.1 2.4 2.5s-1 2.5-2.3 2.5c-1.4 0-2.4-1.1-2.4-2.5s.9-2.4 2.3-2.5zm-1 .8v3.4h.6v-1.5h.6l.9 1.5h.6l-.9-1.6c.6 0 .8-.4.8-.9 0-.6-.4-.9-1.2-.9h-1.4zm.5 1.5v-1.1h.7c.5 0 .7.2.7.6s-.3.6-.6.6l-.8-.1zM31.3 93.7c-1.6-1.2-3.5-2.2-6.1-3-3.3-1.1-8.1-2.2-10-2.9-1.2-.5-1.7-1.2-1.7-2.2 0-1.4 1.7-2.2 3.7-2.3 3.3.1 4.3 2 4.5 3.3h9.6v7.1zm12 8.9h7.1c6.2-.1 11.2-3.2 13.7-7.7.2-.4.4-.7.6-1.1.4.5.7.7 1.1 1.1 1.7 1.5 3.9 2.6 6.2 3.3 3.7 1.3 6.6 2.2 7.6 2.6 1.9.8 3.1 1.4 3.1 3.1 0 2-2.2 2.8-4.5 2.9-3.1-.1-6.2-1.6-6.1-4.7H60c.6 8.1 8.6 14.4 18 14.5 5.7-.1 11-1.7 14.4-5.8 3.4 3.5 7.4 5.7 13 5.8 8.9-.1 18.1-4.5 18.2-13.9 0-3-.8-5.6-2.7-7.8-1.7-2-4.1-3.3-7.4-4.2-3.3-1.1-8.1-2.2-10-2.9-1.2-.5-1.7-1.2-1.7-2.2 0-1.4 1.7-2.2 3.7-2.3 3.3.1 4.3 2 4.5 3.3h11.6c.1-8-6.6-13.3-16.1-13.3-7.1 0-11.9 2.7-14.3 6.6-2.6-4.1-7.8-6.6-14.3-6.6-6.8 0-11.5 2.6-14 6.3-2.8-3.6-7.4-5.9-13-5.9H31.3v6.1c-2.6-4.1-7.8-6.5-14.2-6.5-9.9 0-15.3 5.5-15.8 11.8 0 3.9 1.9 7.4 4.8 9.9 1.7 1.5 3.7 2.6 6 3.3 3.7 1.3 6.6 2.2 7.6 2.6 1.9.8 3.1 1.4 3.1 3.1 0 2-2.3 2.8-4.5 2.9-3.1-.1-6.2-1.6-6.1-4.7H-.1c.6 8.1 8.6 14.4 18 14.5 5.2-.1 10-1.5 13.2-4.5v3.8h12l.2-13.4zm0-18.9h6.5c2.4 0 4.5 2 4.5 4.5s-2 4.5-4.5 4.5h-6.5v-9zM92.5 95c-1.7-2-4.1-3.3-7.4-4.2-3.3-1.1-8.1-2.2-9.9-2.9-1.3-.5-1.9-1.2-1.9-2.2 0-1.4 1.7-2.2 3.7-2.3 3.4.1 4.3 2 4.5 3.3h8.2c.5 3.2 2.1 6.1 4.7 8.3 1.7 1.5 3.8 2.6 6.1 3.3 3.7 1.3 6.6 2.2 7.5 2.6 2 .8 3.1 1.4 3.1 3.1 0 2-2.3 2.8-4.5 2.9-3.1-.1-6.2-1.6-6.1-4.7H95c0-2.9-.9-5.3-2.5-7.2zM.1 11.2v3.5H25v-3.5H.1zm28.3 0v3.5H64s-3.6-3.5-8.4-3.5H28.4zm42.6 0v3.5h21.5l-1.3-3.5H71zm36.9 0l-1.3 3.5h21.3v-3.5h-20zM.1 18v3.5H25V18H.1zm28.3 0v3.5H68s-.5-2.7-1.3-3.5H28.4zM71 18v3.5h23.8L93.6 18H71zm34.3 0l-1.2 3.5h23.7V18h-22.5zm-98 6.8v3.5H18v-3.5H7.3zm28.3 0v3.5h10.8v-3.5H35.6zm21.4 0v3.5h10.8s.7-1.9.7-3.5H57zm21.2 0v3.5h19.1L96 24.8H78.2zm24.8 0l-1.3 3.5h19.2v-3.5H103zM7.3 31.7v3.5H18v-3.5H7.3zm28.3 0v3.5h27.6s2.3-1.8 3-3.5H35.6zm42.6 0v3.5H89v-1.9l.7 1.9h19.8l.7-1.9v1.9H121v-3.5h-20.3l-1.1 3-1.1-3H78.2zM7.3 38.5V42H18v-3.5H7.3zm28.3 0V42h30.6c-.7-1.7-3-3.5-3-3.5H35.6zm42.6 0V42H89v-3.5H78.2zm12.7 0l1.3 3.5H107l1.2-3.5H90.9zm19.3 0V42H121v-3.5h-10.8zM7.3 45.3v3.5H18v-3.5H7.3zm28.3 0v3.5h10.8v-3.5H35.6zm21.4 0v3.5h11.5c0-1.7-.7-3.5-.7-3.5H57zm21.2 0v3.5H89v-3.5H78.2zm15.2 0l1.3 3.5h9.9l1.3-3.5H93.4zm16.8 0v3.5H121v-3.5h-10.8zM.3 52.1v3.5h24.9v-3.5H.3zm28.1 0v3.5h38.4c.8-.8 1.3-3.5 1.3-3.5H28.4zm42.8 0v3.5H89v-3.5H71.2zm24.6 0l1.3 3.5h5.1l1.2-3.5h-7.6zm14.4 0v3.5h17.9v-3.5h-17.9zM.3 58.9v3.5h24.9v-3.5H.3zm28.1 0v3.5h27.1c4.8 0 8.4-3.5 8.4-3.5H28.4zm42.8 0v3.5H89v-3.5H71.2zm27.1 0l1.3 3.5h.2l1.3-3.5h-2.8zm11.9 0v3.5h17.9v-3.5h-17.9z"/></svg>
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg version="1.1" width="100" height="100" xmlns="http://www.w3.org/2000/svg">
|
||||
<style type="text/css">
|
||||
.st0{fill:#00758F;}
|
||||
</style>
|
||||
<g id="mysql">
|
||||
<path class="st0" d="M87.9,74.2c-4.9-0.1-8.7,0.4-11.9,1.7c-0.9,0.4-2.4,0.4-2.5,1.5c0.5,0.5,0.6,1.3,1,2c0.7,1.2,2,2.9,3.2,3.7
|
||||
c1.3,1,2.6,2,3.9,2.8c2.4,1.5,5.1,2.3,7.4,3.8c1.4,0.9,2.7,2,4,2.9c0.7,0.5,1.1,1.3,2,1.6v-0.2c-0.4-0.6-0.6-1.3-1-2
|
||||
c-0.6-0.6-1.2-1.2-1.8-1.8c-1.8-2.4-4-4.5-6.4-6.2c-2-1.4-6.2-3.2-7-5.5c0,0-0.1-0.1-0.1-0.1c1.3-0.1,2.9-0.6,4.2-1
|
||||
c2.1-0.6,4-0.4,6.1-1c1-0.2,2-0.6,2.9-0.9v-0.6c-1.1-1.1-1.9-2.6-3.1-3.6c-3.1-2.7-6.6-5.3-10.1-7.5c-1.9-1.2-4.3-2-6.4-3.1
|
||||
c-0.7-0.4-2-0.6-2.4-1.2c-1.1-1.3-1.7-3.1-2.5-4.7c-1.8-3.4-3.5-7.1-5-10.7c-1.1-2.4-1.8-4.8-3.1-7c-6.3-10.4-13.2-16.8-23.7-23
|
||||
c-2.3-1.3-5-1.8-7.8-2.5c-1.5-0.1-3.1-0.2-4.6-0.2c-1-0.4-2-1.6-2.8-2.2C17,7.3,8,2.5,5.4,8.9c-1.7,4,2.4,7.9,3.9,9.9
|
||||
c1,1.4,2.4,3,3.1,4.6c0.4,1,0.6,2.2,1,3.3c1,2.7,1.9,5.7,3.2,8.2c0.7,1.3,1.4,2.6,2.3,3.8c0.5,0.7,1.3,1,1.5,2.1
|
||||
c-0.9,1.2-0.9,3.1-1.4,4.6c-2.2,6.9-1.3,15.5,1.8,20.6c1,1.5,3.3,4.9,6.4,3.6c2.8-1.1,2.1-4.6,2.9-7.7c0.2-0.7,0.1-1.2,0.4-1.7v0.1
|
||||
c0.9,1.7,1.7,3.4,2.5,5.1c1.9,3,5.2,6.1,8,8.2c1.5,1.1,2.6,3,4.5,3.7v-0.2h-0.1c-0.4-0.6-0.9-0.8-1.4-1.2c-1.1-1.1-2.3-2.5-3.2-3.7
|
||||
c-2.6-3.4-4.8-7.2-6.9-11.2c-1-1.9-1.8-4-2.6-5.9c-0.4-0.7-0.4-1.8-1-2.2c-0.9,1.3-2.3,2.5-2.9,4.2c-1.2,2.6-1.3,5.9-1.7,9.3
|
||||
c-0.2,0.1-0.1,0-0.2,0.1c-2-0.5-2.6-2.5-3.4-4.2C20.1,58,19.8,51,21.4,45.9c0.4-1.3,2.3-5.3,1.5-6.6c-0.4-1.2-1.6-1.8-2.3-2.8
|
||||
c-0.8-1.2-1.7-2.6-2.2-3.9c-1.5-3.4-2.2-7.2-3.8-10.7c-0.7-1.6-2-3.3-3.1-4.7c-1.2-1.7-2.4-2.8-3.4-4.8C8,11.8,7.5,10.7,8,10
|
||||
c0.1-0.5,0.4-0.7,0.9-0.8c0.8-0.7,3.1,0.2,3.9,0.6c2.3,0.9,4.2,1.8,6.1,3.1c0.9,0.6,1.8,1.8,2.9,2.1H23c2,0.4,4.2,0.1,6,0.7
|
||||
c3.2,1,6.2,2.6,8.8,4.2c8,5.1,14.6,12.3,19.1,21c0.7,1.4,1,2.7,1.7,4.2c1.3,3,2.9,6.1,4.2,9c1.3,2.9,2.5,5.8,4.3,8.2
|
||||
c0.9,1.3,4.6,2,6.2,2.6c1.2,0.6,3.1,1,4.2,1.7c2.1,1.3,4.2,2.8,6.1,4.2C84.7,71.5,87.7,73,87.9,74.2"/>
|
||||
<path class="st0" d="M25.5,20.9c-1,0-1.8,0.1-2.5,0.3v0.1h0.1c0.5,1,1.4,1.7,2,2.5c0.5,1,0.9,2,1.4,2.9c0.1-0.1,0.1-0.1,0.1-0.1
|
||||
c0.9-0.6,1.3-1.6,1.3-3.1c-0.4-0.4-0.4-0.9-0.7-1.3C26.7,21.7,26,21.4,25.5,20.9"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg version="1.1" width="100" height="100" xmlns="http://www.w3.org/2000/svg">
|
||||
<style type="text/css">
|
||||
.st0{fill:#912626;}
|
||||
.st1{fill:#C6302B;}
|
||||
.st2{fill:#FFFFFF;}
|
||||
.st3{fill:#621B1C;}
|
||||
.st4{fill:#9A2928;}
|
||||
</style>
|
||||
<g id="redis">
|
||||
<path class="st0" d="M91.5,70.8c-4.8,2.5-29.7,12.7-35,15.5C51.2,89,48.3,89,44.1,87c-4.2-2-30.7-12.7-35.4-15
|
||||
C6.3,70.9,5,69.9,5,69v-9.1c0,0,34.5-7.5,40-9.5c5.6-2,7.5-2.1,12.2-0.3c4.7,1.7,33.1,6.8,37.7,8.6l0,9
|
||||
C95,68.5,93.9,69.5,91.5,70.8"/>
|
||||
<path class="st1" d="M91.5,61.7c-4.8,2.5-29.7,12.7-35,15.5C51.2,80,48.3,80,44.1,78c-4.2-2-30.7-12.7-35.4-15
|
||||
c-4.8-2.3-4.9-3.8-0.2-5.7c4.7-1.8,31-12.2,36.6-14.2c5.6-2,7.5-2.1,12.2-0.3c4.7,1.7,29.5,11.6,34.1,13.3
|
||||
C96.1,57.8,96.3,59.2,91.5,61.7"/>
|
||||
<path class="st0" d="M91.5,56c-4.8,2.5-29.7,12.7-35,15.5c-5.3,2.8-8.2,2.7-12.4,0.7c-4.2-2-30.7-12.7-35.4-15
|
||||
c-2.4-1.1-3.6-2.1-3.6-3v-9.1c0,0,34.5-7.5,40-9.5c5.6-2,7.5-2.1,12.2-0.3c4.7,1.7,33.1,6.8,37.7,8.6l0,9
|
||||
C95,53.8,93.9,54.8,91.5,56"/>
|
||||
<path class="st1" d="M91.5,47c-4.8,2.5-29.7,12.7-35,15.5c-5.3,2.8-8.2,2.7-12.4,0.7c-4.2-2-30.7-12.7-35.4-15
|
||||
c-4.8-2.3-4.9-3.8-0.2-5.7c4.7-1.8,31-12.2,36.6-14.2c5.6-2,7.5-2.1,12.2-0.3c4.7,1.7,29.5,11.6,34.1,13.3
|
||||
C96.1,43.1,96.3,44.5,91.5,47"/>
|
||||
<path class="st0" d="M91.5,40.8c-4.8,2.5-29.7,12.7-35,15.5C51.2,59,48.3,59,44.1,57c-4.2-2-30.7-12.7-35.4-15
|
||||
C6.3,40.9,5,39.9,5,39v-9.1c0,0,34.5-7.5,40-9.5c5.6-2,7.5-2.1,12.2-0.3c4.7,1.7,33.1,6.8,37.7,8.6l0,9
|
||||
C95,38.5,93.9,39.5,91.5,40.8"/>
|
||||
<path class="st1" d="M91.5,31.7c-4.8,2.5-29.7,12.7-35,15.5C51.2,50,48.3,50,44.1,48c-4.2-2-30.7-12.7-35.4-15
|
||||
c-4.8-2.3-4.9-3.8-0.2-5.7c4.7-1.8,31-12.2,36.6-14.2c5.6-2,7.5-2.1,12.2-0.3c4.7,1.7,29.5,11.6,34.1,13.3
|
||||
C96.1,27.8,96.3,29.2,91.5,31.7"/>
|
||||
<path class="st2" d="M61,22.9l-7.7,0.8l-1.7,4.2l-2.8-4.7l-8.9-0.8l6.7-2.4l-2-3.7l6.2,2.4l5.9-1.9L55,20.6L61,22.9 M51.1,43.1
|
||||
l-14.4-6l20.7-3.2L51.1,43.1 M31,25.2c6.1,0,11.1,1.9,11.1,4.3c0,2.4-5,4.3-11.1,4.3S20,31.9,20,29.5C20,27.1,24.9,25.2,31,25.2"/>
|
||||
<path class="st3" d="M70.1,24l12.2,4.8l-12.2,4.8L70.1,24"/>
|
||||
<path class="st4" d="M56.6,29.4L70.1,24l0,9.7l-1.3,0.5L56.6,29.4"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg version="1.1" width="100" height="100" xmlns="http://www.w3.org/2000/svg">
|
||||
<style type="text/css">
|
||||
.st0{fill:#01808F;}
|
||||
.st1{fill:#FEBD02;}
|
||||
</style>
|
||||
<g id="starrocks">
|
||||
<g>
|
||||
<path class="st0" d="M11.8,26.4c-0.1,2.2,0.9,3.4,2.3,4.5c9,7.4,18,14.8,27,22.2c2.5,2.1,2.7,3.5,1,6.2
|
||||
c-4.4,6.7-8.8,13.4-13.2,20.1c-1.7,2.5-3.2,2.9-5.9,1.4c-2.8-1.6-5.6-3.2-8.4-4.8c-3.2-1.8-4.8-4.6-4.8-8.3c0-11.8,0-23.6,0-35.5
|
||||
C9.8,30.2,10.3,28.4,11.8,26.4z"/>
|
||||
<path class="st0" d="M87.9,73.8c0.6-2.3-0.5-3.5-1.9-4.6c-9-7.4-17.9-14.7-26.8-22.1c-2.9-2.4-3.1-3.6-1.1-6.7
|
||||
c4.3-6.6,8.7-13.2,13-19.8c1.7-2.6,3.3-2.9,6-1.4c2.8,1.6,5.6,3.2,8.3,4.8c3.2,1.8,4.7,4.5,4.7,8.2c0,11.9,0,23.7,0,35.6
|
||||
C90.2,69.9,89.6,71.9,87.9,73.8z"/>
|
||||
<path class="st0" d="M67.1,56.8c0.6,0.4,17.3,14.1,17.5,14.3c2.4,2.2,2.2,4.1-0.6,5.8C76.8,81,57.3,92.1,54.8,93.6
|
||||
c-3.2,1.9-6.4,1.9-9.6,0c-4.6-2.7-9.2-5.3-13.8-8c-2.2-1.3-2.2-2.7,0-3.9C42.3,75.5,53.1,69.2,64,63
|
||||
C66.5,61.6,68.2,60.1,67.1,56.8z"/>
|
||||
<path class="st1" d="M32.9,43.2c-0.6-0.4-17.3-14.1-17.5-14.3c-2.4-2.2-2.2-4.1,0.6-5.8C23.2,19,42.7,7.9,45.2,6.4
|
||||
c3.2-1.9,6.4-1.9,9.6,0c4.6,2.7,9.2,5.3,13.8,8c2.2,1.3,2.2,2.7,0,3.9C57.7,24.5,46.9,30.8,36,37C33.5,38.4,31.8,39.9,32.9,43.2z"
|
||||
/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Apache Airflow</title><path d="M17.195 16.822l4.002-4.102C23.55 10.308 23.934 5.154 24 .43a.396.396 0 0 0-.246-.373.392.392 0 0 0-.437.09l-6.495 6.658-4.102-4.003C10.309.45 5.154.066.43 0H.423a.397.397 0 0 0-.277.683l6.658 6.494-4.003 4.103C.45 13.692.065 18.846 0 23.57a.398.398 0 0 0 .683.282l6.494-6.657 3.934 3.837.17.165c2.41 2.353 7.565 2.737 12.288 2.803h.006a.397.397 0 0 0 .277-.683l-6.657-6.495zm-.409-9.476c.04.115.05.24.031.344-.17.96-1.593 2.538-4.304 3.87a.597.597 0 0 0-.08-.079c1.432-3.155 1.828-5.61 1.175-7.322l3.058 2.984.12.203zm-.131 9.44a.73.73 0 0 1-.347.031c-.96-.171-2.537-1.594-3.87-4.307a.656.656 0 0 0 .08-.078l-.001.001c3.155 1.432 5.61 1.83 7.324 1.174l-2.969 3.043M23.568.392a.05.05 0 0 1 .052-.011c.018.006.03.024.029.043-.065 4.655-.437 9.726-2.703 12.05-1.53 1.565-4.326 1.419-8.283-.377.006-.037.021-.07.02-.108 0-.044-.017-.082-.026-.123 2.83-1.39 4.315-3.037 4.506-4.115.057-.322-.009-.542-.102-.688l6.507-6.67V.392zM.393.43A.045.045 0 0 1 .382.38C.39.36.403.343.425.35c4.655.065 9.727.438 12.05 2.703l.002.002c1.56 1.527 1.415 4.323-.379 8.28-.033-.005-.062-.02-.097-.02h-.008c-.045.001-.084.019-.126.027-1.39-2.83-3.037-4.314-4.115-4.506-.323-.057-.542.01-.688.103L.393.43zm11.94 11.563a.331.331 0 0 1-.327.335H12a.332.332 0 0 1-.004-.661c.172.016.333.144.335.326h.002zm-5.12 4.661a.722.722 0 0 1-.03-.345c.17-.96 1.595-2.54 4.309-3.873.013.016.019.035.033.05.013.012.03.017.044.028-1.434 3.158-1.83 5.613-1.177 7.326l-3.041-2.967m-.006-9.659a.735.735 0 0 1 .345-.031c.961.17 2.54 1.594 3.871 4.306a.597.597 0 0 0-.079.08c-2.167-.983-4.007-1.484-5.498-1.484-.68 0-1.289.103-1.825.308L7.128 7.35M.43 23.607c-.018.018-.038.015-.052.01-.019-.007-.028-.021-.028-.043.065-4.654.437-9.725 2.703-12.049 1.527-1.565 4.325-1.419 8.286.378-.006.035-.02.067-.02.104 0 .043.018.083.026.124-2.831 1.391-4.317 3.04-4.51 4.117-.057.322.01.542.103.688L.43 23.607zm23.144.042c-4.655-.065-9.726-.437-12.05-2.703l-.005-.006c-1.56-1.526-1.412-4.322.383-8.279.033.005.064.02.098.02h.009c.043 0 .08-.018.122-.027 1.39 2.832 3.036 4.317 4.115 4.51.083.014.16.021.23.021a.776.776 0 0 0 .45-.133l6.68 6.516c.02.02.016.04.01.052a.042.042 0 0 1-.042.029z"/></svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Apache NiFi</title><path d="M11.648 0a.093.093 0 0 0-.084.053A30.71 30.71 0 0 1 8.592 4.73c-2.09 2.728-5.145 6.466-5.145 10.364a8.201 8.201 0 0 0 8.201 8.2v-5.003c0-.106.087-.193.194-.193h2.81v-2.813c0-.106.087-.191.194-.191h5.004c0-3.9-3.056-7.636-5.145-10.364A30.712 30.712 0 0 1 11.732.053.094.094 0 0 0 11.648 0zm-1.632 3.867c.05 0 .08.034.037.112-.11.197-.218.397-.328.593-.396.702-.819 1.389-1.23 2.08-.196-.032-.39-.06-.585-.088.495-.651 1-1.296 1.48-1.959.153-.209.302-.423.454-.634a.24.24 0 0 1 .172-.104zM7.44 7.186c.221.035.444.076.666.119-.073.129-.15.256-.223.383a29.073 29.073 0 0 0-1.625 3.261c-.874 2.123-1.383 4.444-.77 6.707a8.222 8.222 0 0 0 2.217 3.74c.083.083-.02.216-.119.155a7.568 7.568 0 0 1-.93-.686A7.674 7.674 0 0 1 4.1 16.248c-.329-2.156.387-4.246 1.418-6.115a27.44 27.44 0 0 1 1.92-2.947zm7.931 8.435a.193.193 0 0 0-.191.191V18.3h2.677V15.62zm3.299 0V18.3h1.348a7.975 7.975 0 0 0 .515-2.678zm-6.303 3.004a.193.193 0 0 0-.191.193v2.485h2.678v-2.678Zm3.295.484v2.68h2.115a.562.562 0 0 0 .399-.162v-.004a.562.562 0 0 0 .16-.397V19.11zm3.674.182v1.98a7.999 7.999 0 0 0 1.217-1.98zm-6.969 2.824a.193.193 0 0 0-.191.192v1.672a7.997 7.997 0 0 0 2.678-.516v-1.348zm3.48.668V24a8.008 8.008 0 0 0 1.98-1.217z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Apache Superset</title><path d="M6.168 6.045C2.603 6.045 0 8.579 0 12.014c0 3.434 2.603 5.941 6.168 5.941 2.184 0 3.888-1.026 5.775-3.078 1.53 2.033 4.037 3.136 5.89 3.078 3.566 0 6.167-2.503 6.167-5.941 0-3.438-2.601-5.97-6.168-5.97-2.864 0-5.138 2.425-5.771 3.173-.76-.9-1.674-1.665-2.682-2.274-1.019-.588-2.084-.898-3.211-.898Zm2.875 1.303c1.156.595 1.952 1.42 2.639 2.304-.534.63-1.245 1.483-1.739 2.07-.56-.658-1.58-1.907-2.609-2.308ZM6.186 9.703c1.018.027 1.81.458 3.435 2.408-1.158 1.378-2.202 2.244-3.435 2.244-1.51 0-2.41-.99-2.41-2.31s.906-2.382 2.41-2.342zm11.535 0c1.51 0 2.408 1.026 2.408 2.342 0 1.315-.862 2.301-2.402 2.31-.571-.037-1.529-.026-3.442-2.314l.074-.09.002.002c1.122-1.328 2.097-2.25 3.36-2.25zm-3.762 2.738c.61.68 1.795 1.988 2.713 2.24l-1.684 2.016h-.002c-.753-.371-2.031-1.134-2.716-2.215l1.689-2.04z"/></svg>
|
||||
|
After Width: | Height: | Size: 917 B |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Gitea</title><path d="M4.209 4.603c-.247 0-.525.02-.84.088-.333.07-1.28.283-2.054 1.027C-.403 7.25.035 9.685.089 10.052c.065.446.263 1.687 1.21 2.768 1.749 2.141 5.513 2.092 5.513 2.092s.462 1.103 1.168 2.119c.955 1.263 1.936 2.248 2.89 2.367 2.406 0 7.212-.004 7.212-.004s.458.004 1.08-.394c.535-.324 1.013-.893 1.013-.893s.492-.527 1.18-1.73c.21-.37.385-.729.538-1.068 0 0 2.107-4.471 2.107-8.823-.042-1.318-.367-1.55-.443-1.627-.156-.156-.366-.153-.366-.153s-4.475.252-6.792.306c-.508.011-1.012.023-1.512.027v4.474l-.634-.301c0-1.39-.004-4.17-.004-4.17-1.107.016-3.405-.084-3.405-.084s-5.399-.27-5.987-.324c-.187-.011-.401-.032-.648-.032zm.354 1.832h.111s.271 2.269.6 3.597C5.549 11.147 6.22 13 6.22 13s-.996-.119-1.641-.348c-.99-.324-1.409-.714-1.409-.714s-.73-.511-1.096-1.52C1.444 8.73 2.021 7.7 2.021 7.7s.32-.859 1.47-1.145c.395-.106.863-.12 1.072-.12zm8.33 2.554c.26.003.509.127.509.127l.868.422-.529 1.075a.686.686 0 0 0-.614.359.685.685 0 0 0 .072.756l-.939 1.924a.69.69 0 0 0-.66.527.687.687 0 0 0 .347.763.686.686 0 0 0 .867-.206.688.688 0 0 0-.069-.882l.916-1.874a.667.667 0 0 0 .237-.02.657.657 0 0 0 .271-.137 8.826 8.826 0 0 1 1.016.512.761.761 0 0 1 .286.282c.073.21-.073.569-.073.569-.087.29-.702 1.55-.702 1.55a.692.692 0 0 0-.676.477.681.681 0 1 0 1.157-.252c.073-.141.141-.282.214-.431.19-.397.515-1.16.515-1.16.035-.066.218-.394.103-.814-.095-.435-.48-.638-.48-.638-.467-.301-1.116-.58-1.116-.58s0-.156-.042-.27a.688.688 0 0 0-.148-.241l.516-1.062 2.89 1.401s.48.218.583.619c.073.282-.019.534-.069.657-.24.587-2.1 4.317-2.1 4.317s-.232.554-.748.588a1.065 1.065 0 0 1-.393-.045l-.202-.08-4.31-2.1s-.417-.218-.49-.596c-.083-.31.104-.691.104-.691l2.073-4.272s.183-.37.466-.497a.855.855 0 0 1 .35-.077z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Google Cloud</title><path d="M12.19 2.38a9.344 9.344 0 0 0-9.234 6.893c.053-.02-.055.013 0 0-3.875 2.551-3.922 8.11-.247 10.941l.006-.007-.007.03a6.717 6.717 0 0 0 4.077 1.356h5.173l.03.03h5.192c6.687.053 9.376-8.605 3.835-12.35a9.365 9.365 0 0 0-2.821-4.552l-.043.043.006-.05A9.344 9.344 0 0 0 12.19 2.38zm-.358 4.146c1.244-.04 2.518.368 3.486 1.15a5.186 5.186 0 0 1 1.862 4.078v.518c3.53-.07 3.53 5.262 0 5.193h-5.193l-.008.009v-.04H6.785a2.59 2.59 0 0 1-1.067-.23h.001a2.597 2.597 0 1 1 3.437-3.437l3.013-3.012A6.747 6.747 0 0 0 8.11 8.24c.018-.01.04-.026.054-.023a5.186 5.186 0 0 1 3.67-1.69z"/></svg>
|
||||
|
After Width: | Height: | Size: 683 B |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Jupyter</title><path d="M7.157 22.201A1.784 1.799 0 0 1 5.374 24a1.784 1.799 0 0 1-1.784-1.799 1.784 1.799 0 0 1 1.784-1.799 1.784 1.799 0 0 1 1.783 1.799zM20.582 1.427a1.415 1.427 0 0 1-1.415 1.428 1.415 1.427 0 0 1-1.416-1.428A1.415 1.427 0 0 1 19.167 0a1.415 1.427 0 0 1 1.415 1.427zM4.992 3.336A1.047 1.056 0 0 1 3.946 4.39a1.047 1.056 0 0 1-1.047-1.055A1.047 1.056 0 0 1 3.946 2.28a1.047 1.056 0 0 1 1.046 1.056zm7.336 1.517c3.769 0 7.06 1.38 8.768 3.424a9.363 9.363 0 0 0-3.393-4.547 9.238 9.238 0 0 0-5.377-1.728A9.238 9.238 0 0 0 6.95 3.73a9.363 9.363 0 0 0-3.394 4.547c1.713-2.04 5.004-3.424 8.772-3.424zm.001 13.295c-3.768 0-7.06-1.381-8.768-3.425a9.363 9.363 0 0 0 3.394 4.547A9.238 9.238 0 0 0 12.33 21a9.238 9.238 0 0 0 5.377-1.729 9.363 9.363 0 0 0 3.393-4.547c-1.712 2.044-5.003 3.425-8.772 3.425Z"/></svg>
|
||||
|
After Width: | Height: | Size: 899 B |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Keycloak</title><path d="m18.742 1.182-12.493.002C4.155 4.784 2.079 8.393 0 12.002c2.071 3.612 4.162 7.214 6.252 10.816l12.49-.004 3.089-5.404h2.158v-.002H24L23.996 6.59h-2.168zM8.327 4.792h2.081l1.04 1.8-3.12 5.413 3.117 5.403-1.035 1.81H8.327a2047.566 2047.566 0 0 0-4.168-7.204C5.547 9.606 6.937 7.2 8.327 4.792Zm6.241 0 2.086.003c1.393 2.405 2.78 4.813 4.166 7.222l-4.167 7.2h-2.08c-.382-.562-1.038-1.808-1.038-1.808l3.123-5.405-3.124-5.413z"/></svg>
|
||||
|
After Width: | Height: | Size: 532 B |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Kubernetes</title><path d="M10.204 14.35l.007.01-.999 2.413a5.171 5.171 0 0 1-2.075-2.597l2.578-.437.004.005a.44.44 0 0 1 .484.606zm-.833-2.129a.44.44 0 0 0 .173-.756l.002-.011L7.585 9.7a5.143 5.143 0 0 0-.73 3.255l2.514-.725.002-.009zm1.145-1.98a.44.44 0 0 0 .699-.337l.01-.005.15-2.62a5.144 5.144 0 0 0-3.01 1.442l2.147 1.523.004-.002zm.76 2.75l.723.349.722-.347.18-.78-.5-.623h-.804l-.5.623.179.779zm1.5-3.095a.44.44 0 0 0 .7.336l.008.003 2.134-1.513a5.188 5.188 0 0 0-2.992-1.442l.148 2.615.002.001zm10.876 5.97l-5.773 7.181a1.6 1.6 0 0 1-1.248.594l-9.261.003a1.6 1.6 0 0 1-1.247-.596l-5.776-7.18a1.583 1.583 0 0 1-.307-1.34L2.1 5.573c.108-.47.425-.864.863-1.073L11.305.513a1.606 1.606 0 0 1 1.385 0l8.345 3.985c.438.209.755.604.863 1.073l2.062 8.955c.108.47-.005.963-.308 1.34zm-3.289-2.057c-.042-.01-.103-.026-.145-.034-.174-.033-.315-.025-.479-.038-.35-.037-.638-.067-.895-.148-.105-.04-.18-.165-.216-.216l-.201-.059a6.45 6.45 0 0 0-.105-2.332 6.465 6.465 0 0 0-.936-2.163c.052-.047.15-.133.177-.159.008-.09.001-.183.094-.282.197-.185.444-.338.743-.522.142-.084.273-.137.415-.242.032-.024.076-.062.11-.089.24-.191.295-.52.123-.736-.172-.216-.506-.236-.745-.045-.034.027-.08.062-.111.088-.134.116-.217.23-.33.35-.246.25-.45.458-.673.609-.097.056-.239.037-.303.033l-.19.135a6.545 6.545 0 0 0-4.146-2.003l-.012-.223c-.065-.062-.143-.115-.163-.25-.022-.268.015-.557.057-.905.023-.163.061-.298.068-.475.001-.04-.001-.099-.001-.142 0-.306-.224-.555-.5-.555-.275 0-.499.249-.499.555l.001.014c0 .041-.002.092 0 .128.006.177.044.312.067.475.042.348.078.637.056.906a.545.545 0 0 1-.162.258l-.012.211a6.424 6.424 0 0 0-4.166 2.003 8.373 8.373 0 0 1-.18-.128c-.09.012-.18.04-.297-.029-.223-.15-.427-.358-.673-.608-.113-.12-.195-.234-.329-.349-.03-.026-.077-.062-.111-.088a.594.594 0 0 0-.348-.132.481.481 0 0 0-.398.176c-.172.216-.117.546.123.737l.007.005.104.083c.142.105.272.159.414.242.299.185.546.338.743.522.076.082.09.226.1.288l.16.143a6.462 6.462 0 0 0-1.02 4.506l-.208.06c-.055.072-.133.184-.215.217-.257.081-.546.11-.895.147-.164.014-.305.006-.48.039-.037.007-.09.02-.133.03l-.004.002-.007.002c-.295.071-.484.342-.423.608.061.267.349.429.645.365l.007-.001.01-.003.129-.029c.17-.046.294-.113.448-.172.33-.118.604-.217.87-.256.112-.009.23.069.288.101l.217-.037a6.5 6.5 0 0 0 2.88 3.596l-.09.218c.033.084.069.199.044.282-.097.252-.263.517-.452.813-.091.136-.185.242-.268.399-.02.037-.045.095-.064.134-.128.275-.034.591.213.71.248.12.556-.007.69-.282v-.002c.02-.039.046-.09.062-.127.07-.162.094-.301.144-.458.132-.332.205-.68.387-.897.05-.06.13-.082.215-.105l.113-.205a6.453 6.453 0 0 0 4.609.012l.106.192c.086.028.18.042.256.155.136.232.229.507.342.84.05.156.074.295.145.457.016.037.043.09.062.129.133.276.442.402.69.282.247-.118.341-.435.213-.71-.02-.039-.045-.096-.065-.134-.083-.156-.177-.261-.268-.398-.19-.296-.346-.541-.443-.793-.04-.13.007-.21.038-.294-.018-.022-.059-.144-.083-.202a6.499 6.499 0 0 0 2.88-3.622c.064.01.176.03.213.038.075-.05.144-.114.28-.104.266.039.54.138.87.256.154.06.277.128.448.173.036.01.088.019.13.028l.009.003.007.001c.297.064.584-.098.645-.365.06-.266-.128-.537-.423-.608zM16.4 9.701l-1.95 1.746v.005a.44.44 0 0 0 .173.757l.003.01 2.526.728a5.199 5.199 0 0 0-.108-1.674A5.208 5.208 0 0 0 16.4 9.7zm-4.013 5.325a.437.437 0 0 0-.404-.232.44.44 0 0 0-.372.233h-.002l-1.268 2.292a5.164 5.164 0 0 0 3.326.003l-1.27-2.296h-.01zm1.888-1.293a.44.44 0 0 0-.27.036.44.44 0 0 0-.214.572l-.003.004 1.01 2.438a5.15 5.15 0 0 0 2.081-2.615l-2.6-.44-.004.005z"/></svg>
|
||||
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 9.1 KiB |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>MinIO</title><path d="M13.2072.006c-.6216-.0478-1.2.1943-1.6211.582a2.15 2.15 0 0 0-.0938 3.0352l3.4082 3.5507a3.042 3.042 0 0 1-.664 4.6875l-.463.2383V7.2853a15.4198 15.4198 0 0 0-8.0174 10.4862v.0176l6.5487-3.3281v7.621L13.7794 24V13.6817l.8965-.4629a4.4432 4.4432 0 0 0 1.2207-7.0292l-3.371-3.5254a.7489.7489 0 0 1 .037-1.0547.7522.7522 0 0 1 1.0567.0371l.4668.4863-.006.0059 4.0704 4.2441a.0566.0566 0 0 0 .082 0 .06.06 0 0 0 0-.0703l-3.1406-5.1425-.1484.1425.1484-.1445C14.4945.3926 13.8287.0538 13.2072.006Zm-.9024 9.8652v2.9941l-4.1523 2.1484a13.9787 13.9787 0 0 1 2.7676-3.9277 14.1784 14.1784 0 0 1 1.3847-1.2148z"/></svg>
|
||||
|
After Width: | Height: | Size: 709 B |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>NGINX</title><path d="M12 0L1.605 6v12L12 24l10.395-6V6L12 0zm6 16.59c0 .705-.646 1.29-1.529 1.29-.631 0-1.351-.255-1.801-.81l-6-7.141v6.66c0 .721-.57 1.29-1.274 1.29H7.32c-.721 0-1.29-.6-1.29-1.29V7.41c0-.705.63-1.29 1.5-1.29.646 0 1.38.255 1.83.81l5.97 7.141V7.41c0-.721.6-1.29 1.29-1.29h.075c.72 0 1.29.6 1.29 1.29v9.18H18z"/></svg>
|
||||
|
After Width: | Height: | Size: 413 B |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Oracle</title><path d="M16.412 4.412h-8.82a7.588 7.588 0 0 0-.008 15.176h8.828a7.588 7.588 0 0 0 0-15.176zm-.193 12.502H7.786a4.915 4.915 0 0 1 0-9.828h8.433a4.914 4.914 0 1 1 0 9.828z"/></svg>
|
||||
|
After Width: | Height: | Size: 271 B |
|
After Width: | Height: | Size: 5.1 KiB |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Power BI</title><path d="M10 12a1 1 0 0 1 1 1v11H4a1 1 0 0 1-1-1V13a1 1 0 0 1 1-1h6Zm-2-.5V7a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v17h-4.5V13a1.5 1.5 0 0 0-1.5-1.5H8Zm5-6V1a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v22a1 1 0 0 1-1 1h-3.5V7A1.5 1.5 0 0 0 15 5.5h-2Z"/></svg>
|
||||
|
After Width: | Height: | Size: 330 B |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Python</title><path d="M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>QGIS</title><path d="M12.879 13.006v3.65l-3.004-3.048v-3.495h3.582l2.852 2.893h-3.43zm10.886 7.606V24h-3.654l-5.73-5.9v-3.55h3.354l6.03 6.062zm-10.828-1.448l3.372 3.371c-1.309.442-2.557.726-4.325.726C5.136 23.26 0 18.243 0 11.565 0 4.92 5.136 0 11.984 0 18.864 0 24 4.952 24 11.565c0 2.12-.523 4.076-1.457 5.759l-3.625-3.725a8.393 8.393 0 0 0 .24-2.005c0-4.291-3.148-7.527-7.1-7.527-3.954 0-7.248 3.236-7.248 7.527s3.33 7.6 7.247 7.6c.548 0 .661.017.88-.03z"/></svg>
|
||||
|
After Width: | Height: | Size: 544 B |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>R</title><path d="M12 2.746c-6.627 0-12 3.599-12 8.037 0 3.897 4.144 7.144 9.64 7.88V16.26c-2.924-.915-4.925-2.755-4.925-4.877 0-3.035 4.084-5.494 9.12-5.494 5.038 0 8.757 1.683 8.757 5.494 0 1.976-.999 3.379-2.662 4.272.09.066.174.128.258.216.169.149.25.363.372.544 2.128-1.45 3.44-3.437 3.44-5.631 0-4.44-5.373-8.038-12-8.038zm-2.111 4.99v13.516l4.093-.002-.002-5.291h1.1c.225 0 .321.066.549.25.272.22.715.982.715.982l2.164 4.063 4.627-.002-2.864-4.826s-.086-.193-.265-.383a2.22 2.22 0 00-.582-.416c-.422-.214-1.149-.434-1.149-.434s3.578-.264 3.578-3.826c0-3.562-3.744-3.63-3.744-3.63zm4.127 2.93l2.478.002s1.149-.062 1.149 1.127c0 1.165-1.149 1.17-1.149 1.17h-2.478zm1.754 6.119c-.494.049-1.012.079-1.54.088v1.807a16.622 16.622 0 002.37-.473l-.471-.891s-.108-.183-.248-.394c-.039-.054-.08-.098-.111-.137z"/></svg>
|
||||
|
After Width: | Height: | Size: 894 B |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Redash</title><path d="M12 0C6.775 0 2.546 4.238 2.546 9.455c0 4.971 3.842 9.05 8.727 9.423V24c3.405-3.49 5.837-6.072 7.307-7.756a9.5 9.5 0 0 0 1.532-1.93l.005-.006q.003-.007.007-.014a9.4 9.4 0 0 0 1.33-4.84C21.455 4.238 17.226 0 12 0m3.821 5.818h1.385c.337.001.611.25.612.558v6.157c-.001.308-.275.557-.612.558H15.82c-.337-.001-.611-.25-.612-.558V6.376c0-.307.275-.557.612-.558M9.297 7.921h1.386c.338 0 .611.25.613.558v4.054c-.002.308-.275.557-.613.558H9.297c-.337-.001-.61-.25-.61-.558V8.479c0-.308.273-.558.61-.558m3.222 1.534h1.396c.337 0 .61.25.61.558v2.52c0 .308-.273.557-.61.558h-1.396c-.338-.001-.612-.25-.613-.558v-2.52c.001-.308.275-.558.613-.558M6.067 10.71h1.396c.337.001.61.25.61.559v1.264c0 .308-.273.557-.61.558H6.067c-.338-.001-.611-.25-.612-.558v-1.264c0-.308.274-.558.612-.559"/></svg>
|
||||
|
After Width: | Height: | Size: 880 B |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>SQLite</title><path d="M21.678.521c-1.032-.92-2.28-.55-3.513.544a8.71 8.71 0 0 0-.547.535c-2.109 2.237-4.066 6.38-4.674 9.544.237.48.422 1.093.544 1.561a13.044 13.044 0 0 1 .164.703s-.019-.071-.096-.296l-.05-.146a1.689 1.689 0 0 0-.033-.08c-.138-.32-.518-.995-.686-1.289-.143.423-.27.818-.376 1.176.484.884.778 2.4.778 2.4s-.025-.099-.147-.442c-.107-.303-.644-1.244-.772-1.464-.217.804-.304 1.346-.226 1.478.152.256.296.698.422 1.186.286 1.1.485 2.44.485 2.44l.017.224a22.41 22.41 0 0 0 .056 2.748c.095 1.146.273 2.13.5 2.657l.155-.084c-.334-1.038-.47-2.399-.41-3.967.09-2.398.642-5.29 1.661-8.304 1.723-4.55 4.113-8.201 6.3-9.945-1.993 1.8-4.692 7.63-5.5 9.788-.904 2.416-1.545 4.684-1.931 6.857.666-2.037 2.821-2.912 2.821-2.912s1.057-1.304 2.292-3.166c-.74.169-1.955.458-2.362.629-.6.251-.762.337-.762.337s1.945-1.184 3.613-1.72C21.695 7.9 24.195 2.767 21.678.521m-18.573.543A1.842 1.842 0 0 0 1.27 2.9v16.608a1.84 1.84 0 0 0 1.835 1.834h9.418a22.953 22.953 0 0 1-.052-2.707c-.006-.062-.011-.141-.016-.2a27.01 27.01 0 0 0-.473-2.378c-.121-.47-.275-.898-.369-1.057-.116-.197-.098-.31-.097-.432 0-.12.015-.245.037-.386a9.98 9.98 0 0 1 .234-1.045l.217-.028c-.017-.035-.014-.065-.031-.097l-.041-.381a32.8 32.8 0 0 1 .382-1.194l.2-.019c-.008-.016-.01-.038-.018-.053l-.043-.316c.63-3.28 2.587-7.443 4.8-9.791.066-.069.133-.128.198-.194Z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Tableau</title><path d="M11.654.174V2.377H9.682v.58h1.972V5.16h.696V2.957h1.97v-.58h-1.97V.174h-.348zm6.03 2.262l-.002 1.623v1.623h-2.957v.927h2.957v3.188H18.725l.011-1.582.02-1.576 1.465-.02 1.46-.01v-.927H18.728V2.436h-.522zm-12.407.06V5.686H2.291v.925H5.277V9.801h.985V6.61h3.013v-.925H6.262V2.496H5.77zm6.086 5.27v3.593H8.06v1.188h3.304v3.596h1.28v-3.596H15.953v-1.188H12.643V7.766h-.637zm9.721 1.55v2.221h-2.012v.811h2.012v2.261h.887v-2.261H24v-.811h-2.029V9.317h-.422zm-19.111.131V11.621H0v.621H1.973v2.194H2.64v-2.194h2v-.62H2.609V9.446h-.318zm15.709 4.516v3.254h-3.016v.927h3.016v3.217h1.072v-3.216H21.74v-.928H18.754v-3.254h-.533zm-12.463.008v3.246H2.262v.928h2.957v3.189H6.32v-3.189h2.955v-.928H6.32V13.97h-.55zm6.316 4.578l.002 1.103v1.1H9.566v.812h1.971v2.262h.928l.012-1.119.017-1.143H14.463v-.812h-2V18.549h-.465z"/></svg>
|
||||
|
After Width: | Height: | Size: 914 B |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Trino</title><path d="M14.124 16.8529a.1615.1615 0 1 1 .1576.1614.1577.1577 0 0 1-.1576-.1614zm-5.607-.1576a.1614.1614 0 1 0 0 .3228.1614.1614 0 0 0 0-.3228zm10.1341-.6648v1.9869c-.031.5788-.524 1.0237-1.1029.9954h-.3843a5.0596 5.0596 0 0 1-1.1298 1.7178.3192.3192 0 0 0 0 .465l.2382.2191a.3036.3036 0 0 1 .0385.4304c-1.126 1.3835-2.9669 2.1521-5.0498 2.1521a6.575 6.575 0 0 1-4.8192-1.8985c-.0029-.0032-.0059-.0063-.0087-.0096a.6302.6302 0 0 1 .0548-.8896c.137-.1265.1371-.3462 0-.4727a4.944 4.944 0 0 1-1.126-1.714h-.3497c-.5797.0284-1.0737-.416-1.1068-.9954v-1.9869c.0351-.5779.5286-1.02 1.1068-.9915h.2728a5.7648 5.7648 0 0 1 2.0791-3.0936c-.4227-1.0991-1.1529-3.2551-1.226-5.0075C6.0229 4.4705 6.2189.078 7.8253.001c1.6064-.0768 1.3719 4.0275 1.0991 6.6946a32.732 32.732 0 0 0-.123 4.4503 6.994 6.994 0 0 1 2.4826-.4304 7.2414 7.2414 0 0 1 1.7371.2075c.2614-1.2682.8762-3.574 2.0292-5.1958 1.6717-2.352 3.4357-4.7808 4.6116-4.1006 1.176.6802-.3074 3.1398-1.3297 4.4272-1.0222 1.2874-2.7862 3.2089-3.3742 4.2274-.2114.3843-.4304.8032-.5956 1.1529a5.7375 5.7375 0 0 1 2.9169 3.6125h.073v-2.3058a.3075.3075 0 0 0-.1806-.2844.9148.9148 0 0 1-.5573-.8148 1.0184 1.0184 0 0 1 .9045-.9044c.5593-.0598 1.061.3452 1.1208.9044a.9187.9187 0 0 1-.5534.8148.3074.3074 0 0 0-.1691.2844v2.1522a.3113.3113 0 0 0 .1691.2805.9724.9724 0 0 1 .5648.857zm-1.0222-3.9737a.4345.4345 0 0 0 .4612-.4151.4151.4151 0 1 0-.4612.4151zm-.4227 3.4779c.0978.4794.148.9672.1498 1.4565v.3651h.4113a.3228.3228 0 0 0 .3228-.319v-1.0069c-.0111-.2967-.2733-.5256-.5688-.4957h-.3151zm-3.7278-4.481.611.2383a36.6046 36.6046 0 0 1 2.3828-3.8661c1.2874-1.7255 2.3365-3.5817 1.8715-3.8699-.465-.2883-1.6179 1.2297-2.7708 3.109a34.8978 34.8978 0 0 0-2.0945 4.3887zm-4.0544.6726.0154 1.3335c-.0039.2007.1881.3587.3843.3152a6.4317 6.4317 0 0 1 1.4565-.1653 5.995 5.995 0 0 1 1.4527.1729c.1956.0398.3853-.1153.3843-.3151v-1.3412a.319.319 0 0 0-.2421-.3113 6.664 6.664 0 0 0-1.6026-.1845 6.7093 6.7093 0 0 0-1.6025.1845.3188.3188 0 0 0-.246.3113zm1.7063 6.8637v.3843a.6878.6878 0 0 1-.4996.269c-.3074 0-.538-.4189-.538-.4189a.073.073 0 0 0-.1-.0307l-.0024.0013a.0693.0693 0 0 0-.0245.0947c.0115.0231.2806.4957.6649.4957a.7144.7144 0 0 0 .3843-.1268.3267.3267 0 0 1 .3612 0 .8332.8332 0 0 0 .4727.1345.957.957 0 0 0 .6572-.4803.0692.0692 0 0 0-.0269-.0961.0692.0692 0 0 0-.0999.0269c0 .0231-.2191.3843-.5419.4074a.8036.8036 0 0 1-.5765-.269v-.3843a.3154.3154 0 0 1 .1268-.2537c.196-.1499.415-.3958.415-.4919a.538.538 0 0 0-.5764-.4189c-.3766 0-.6533.2498-.6533.4573 0 .1345.2536.3382.4227.4612a.3226.3226 0 0 1 .1346.2383zM7.783 11.6455l.5765-.3074c-.0192-1.126-.0346-3.1436 0-4.5425.0538-2.0368.1537-4.5732-.5226-4.5463S6.6877 4.2285 6.949 7.007a33.0562 33.0562 0 0 0 .834 4.6385zm-3.305 5.3919a.319.319 0 0 0 .319.319h.3997a3.046 3.046 0 0 1 0-.3651 7.546 7.546 0 0 1 .1461-1.4565c-.0493.0002-.34.0005-.3866-.0021a.4881.4881 0 0 0-.4781.4979v1.0068zm.9184 1.4718a5.3254 5.3254 0 0 1-.123-.5573.3228.3228 0 0 0-.319-.2728h-.4957c.0007.0163-.0015.34.0009.355a.5188.5188 0 0 0 .5526.4827l.3842-.0076zm10.1265 2.917-.0884-.0807a.3229.3229 0 0 0-.3843-.0269 6.9823 6.9823 0 0 1-3.8046 1.0068 6.995 6.995 0 0 1-3.7932-1.0068.3228.3228 0 0 0-.3843.0269l-.0884.0807a.3154.3154 0 0 0 0 .4573 6.0305 6.0305 0 0 0 4.2927 1.5988 6.0453 6.0453 0 0 0 4.2889-1.5988.315.315 0 0 0-.0384-.4573zm1.4488-4.4158c0-2.4557-1.1529-4.3273-3.0245-5.2266-.2081-.1022-.4673.0594-.465.2921v1.3297a.3269.3269 0 0 0 .2037.296c1.7332.7109 2.9284 2.1866 2.9284 3.8776 0 2.2712-2.1559 3.8085-5.3419 3.8085-3.1859 0-5.3419-1.5411-5.3419-3.8085 0-1.691 1.1952-3.1667 2.9284-3.8776a.319.319 0 0 0 .2037-.296v-1.322c.0048-.2315-.2536-.3963-.4612-.2921-1.887.8839-3.0399 2.767-3.0399 5.2073 0 2.9899 2.2866 4.996 5.7108 4.996 3.4282.0001 5.6994-2.0098 5.6994-4.9844zm-8.6084-.538h-.0038a.5842.5842 0 1 0 .0038 0zm5.1614.5919c.0063.3226.2615.5789.584.5725a.5842.5842 0 1 0-.584-.5725zm4.5692.6225h-.4996a.3227.3227 0 0 0-.3151.2728c-.0346.173-.0768.3766-.1268.5573.0163.0007.3861-.0014.4012.0009a.5188.5188 0 0 0 .5366-.5004l.0037-.3306z"/></svg>
|
||||
|
After Width: | Height: | Size: 4.0 KiB |
@@ -0,0 +1,24 @@
|
||||
<!--
|
||||
category: Communication
|
||||
tags: [contact, contacts, phonebook, profile, resources, address, book]
|
||||
version: "1.55"
|
||||
unicode: "f021"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M20 6v12a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2" />
|
||||
<path d="M10 16h6" />
|
||||
<path d="M11 11a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
|
||||
<path d="M4 8h3" />
|
||||
<path d="M4 12h3" />
|
||||
<path d="M4 16h3" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 607 B |
@@ -0,0 +1,21 @@
|
||||
<!--
|
||||
tags: [warning, danger, caution, risk, alert, triangle, control, operation, function, interface]
|
||||
category: System
|
||||
version: "1.0"
|
||||
unicode: "ea06"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M12 9v4" />
|
||||
<path d="M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0" />
|
||||
<path d="M12 16h.01" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 584 B |
@@ -0,0 +1,21 @@
|
||||
<!--
|
||||
tags: [back, swipe, return, arrow, left, direction, pointer, navigation, flow, navigate]
|
||||
category: Arrows
|
||||
version: "1.0"
|
||||
unicode: "ea19"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M5 12l14 0" />
|
||||
<path d="M5 12l6 6" />
|
||||
<path d="M5 12l6 -6" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 452 B |
@@ -0,0 +1,21 @@
|
||||
<!--
|
||||
tags: [proceed, swipe, below, shape, east, arrow, right, rhombus, direction, pointer]
|
||||
category: Arrows
|
||||
version: "1.116"
|
||||
unicode: "f61f"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M8 12h13" />
|
||||
<path d="M18 9l3 3l-3 3" />
|
||||
<path d="M5.5 9.5l-2.5 2.5l2.5 2.5l2.5 -2.5l-2.5 -2.5" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 488 B |
@@ -0,0 +1,21 @@
|
||||
<!--
|
||||
tags: [next, proceed, swipe, arrow, right, direction, pointer, navigation, flow, navigate]
|
||||
category: Arrows
|
||||
version: "1.0"
|
||||
unicode: "ea1f"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M5 12l14 0" />
|
||||
<path d="M13 18l6 -6" />
|
||||
<path d="M13 6l6 6" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 455 B |
@@ -0,0 +1,22 @@
|
||||
<!--
|
||||
tags: [direction, navigation, east, arrows, split, flow, movement, route, path, pointers]
|
||||
category: Arrows
|
||||
version: "1.35"
|
||||
unicode: "edb5"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M21 17h-8l-3.5 -5h-6.5" />
|
||||
<path d="M21 7h-8l-3.495 5" />
|
||||
<path d="M18 10l3 -3l-3 -3" />
|
||||
<path d="M18 20l3 -3l-3 -3" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 515 B |
@@ -0,0 +1,19 @@
|
||||
<!--
|
||||
category: Design
|
||||
tags: [energy, power, electricity, storm, lightning, flash, bolt, quick, fast, speed]
|
||||
version: "1.0"
|
||||
unicode: "ea38"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 421 B |
@@ -0,0 +1,20 @@
|
||||
<!--
|
||||
tags: [punctuation, additional, information, braces, calculation, equation, mathematics, numeric, formula]
|
||||
category: Math
|
||||
version: "1.6"
|
||||
unicode: "ebcc"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M7 4a2 2 0 0 0 -2 2v3a2 3 0 0 1 -2 3a2 3 0 0 1 2 3v3a2 2 0 0 0 2 2" />
|
||||
<path d="M17 4a2 2 0 0 1 2 2v3a2 3 0 0 0 2 3a2 3 0 0 0 -2 3v3a2 2 0 0 1 -2 2" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 555 B |
@@ -0,0 +1,24 @@
|
||||
<!--
|
||||
tags: [cloud, computing, services, infrastructure, storage, networking, scalable, datacenter, virtualization, deployment]
|
||||
category: Brand
|
||||
version: "2.16"
|
||||
unicode: "fa4c"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M17 18.5a15.198 15.198 0 0 1 -7.37 1.44a14.62 14.62 0 0 1 -6.63 -2.94" />
|
||||
<path d="M19.5 21c.907 -1.411 1.451 -3.323 1.5 -5c-1.197 -.773 -2.577 -.935 -4 -1" />
|
||||
<path d="M3 11v-4.5a1.5 1.5 0 0 1 3 0v4.5" />
|
||||
<path d="M3 9h3" />
|
||||
<path d="M9 5l1.2 6l1.8 -4l1.8 4l1.2 -6" />
|
||||
<path d="M18 10.25c0 .414 .336 .75 .75 .75h1.25a1 1 0 0 0 1 -1v-1a1 1 0 0 0 -1 -1h-1a1 1 0 0 1 -1 -1v-1a1 1 0 0 1 1 -1h1.25a.75 .75 0 0 1 .75 .75" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 852 B |
@@ -0,0 +1,20 @@
|
||||
<!--
|
||||
tags: [microsoft, azure, cloud, computing, technology, services, software, platform, it, digital]
|
||||
category: Brand
|
||||
version: "2.16"
|
||||
unicode: "fa4d"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M6 7.5l-4 9.5h4l6 -15l-6 5.5" />
|
||||
<path d="M22 20l-7 -15l-3 7l4 5l-8 3l14 0" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 475 B |
@@ -0,0 +1,27 @@
|
||||
<!--
|
||||
tags: [app, development, hub, platform, software, developer, programming, programmer, virtualization, technology]
|
||||
category: Brand
|
||||
version: "1.36"
|
||||
unicode: "edca"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M22 12.54c-1.804 -.345 -2.701 -1.08 -3.523 -2.94c-.487 .696 -1.102 1.568 -.92 2.4c.028 .238 -.32 1 -.557 1h-14c0 5.208 3.164 7 6.196 7c4.124 .022 7.828 -1.376 9.854 -5c1.146 -.101 2.296 -1.505 2.95 -2.46" />
|
||||
<path d="M5 10h3v3h-3l0 -3" />
|
||||
<path d="M8 10h3v3h-3l0 -3" />
|
||||
<path d="M11 10h3v3h-3l0 -3" />
|
||||
<path d="M8 7h3v3h-3l0 -3" />
|
||||
<path d="M11 7h3v3h-3l0 -3" />
|
||||
<path d="M11 4h3v3h-3l0 -3" />
|
||||
<path d="M4.571 18c1.5 0 2.047 -.074 2.958 -.78" />
|
||||
<path d="M10 16l0 .01" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 905 B |
@@ -0,0 +1,19 @@
|
||||
<!--
|
||||
tags: [logo, website, hosting, project, programming, software, development, brand, github, company]
|
||||
category: Brand
|
||||
version: "1.18"
|
||||
unicode: "ec1c"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 692 B |
@@ -0,0 +1,20 @@
|
||||
<!--
|
||||
tags: [infrastructure, cloud, automation, devops, provisioning, configuration, software, platform, tool, orchestration]
|
||||
category: Brand
|
||||
version: "2.16"
|
||||
unicode: "fa56"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M15 15.5l-11.476 -6.216a1 1 0 0 1 -.524 -.88v-4.054a1.35 1.35 0 0 1 2.03 -1.166l9.97 5.816v10.65a1.35 1.35 0 0 1 -2.03 1.166l-3.474 -2.027a1 1 0 0 1 -.496 -.863v-11.926" />
|
||||
<path d="M15 15.5l5.504 -3.21a1 1 0 0 0 .496 -.864v-3.576a1.35 1.35 0 0 0 -2.03 -1.166l-3.97 2.316" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 694 B |
@@ -0,0 +1,20 @@
|
||||
<!--
|
||||
tags: [collection, container, water, liquid, bucket, creative, artistic, visual, aesthetic, style]
|
||||
category: Design
|
||||
version: "1.0"
|
||||
unicode: "ea47"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M4 7a8 4 0 1 0 16 0a8 4 0 1 0 -16 0" />
|
||||
<path d="M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.333 -1 1.246 -4.345 2.737 -10.035a7.45 7.45 0 0 0 .263 -1.965" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
@@ -0,0 +1,27 @@
|
||||
<!--
|
||||
tags: [germ, insect, error, nature, bug, programming, software, coding, technical, developer]
|
||||
category: Development
|
||||
version: "1.1"
|
||||
unicode: "ea48"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M9 9v-1a3 3 0 0 1 6 0v1" />
|
||||
<path d="M8 9h8a6 6 0 0 1 1 3v3a5 5 0 0 1 -10 0v-3a6 6 0 0 1 1 -3" />
|
||||
<path d="M3 13l4 0" />
|
||||
<path d="M17 13l4 0" />
|
||||
<path d="M12 20l0 -6" />
|
||||
<path d="M4 19l3.35 -2" />
|
||||
<path d="M20 19l-3.35 -2" />
|
||||
<path d="M4 7l3.75 2.4" />
|
||||
<path d="M20 7l-3.75 2.4" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 700 B |
@@ -0,0 +1,20 @@
|
||||
<!--
|
||||
tags: [statistics, diagram, graph, rhythm, data, analysis, chart, line, visualization, analytics]
|
||||
category: Charts
|
||||
version: "1.0"
|
||||
unicode: "ea5c"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M4 19l16 0" />
|
||||
<path d="M4 15l4 -6l4 2l4 -5l4 4" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 448 B |
@@ -0,0 +1,19 @@
|
||||
<!--
|
||||
tags: [weather, online, cloud, storage, climate, forecast, server, sync, meteorology, atmospheric]
|
||||
category: Weather
|
||||
version: "1.0"
|
||||
unicode: "ea76"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M6.657 18c-2.572 0 -4.657 -2.007 -4.657 -4.483c0 -2.475 2.085 -4.482 4.657 -4.482c.393 -1.762 1.794 -3.2 3.675 -3.773c1.88 -.572 3.956 -.193 5.444 1c1.488 1.19 2.162 3.007 1.77 4.769h.99c1.913 0 3.464 1.56 3.464 3.486c0 1.927 -1.551 3.487 -3.465 3.487h-11.878" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 659 B |
@@ -0,0 +1,22 @@
|
||||
<!--
|
||||
tags: [3d, pattern, abstract, geometric, shape, cube, geometry, form, figure, outline]
|
||||
category: Shapes
|
||||
version: "2.20"
|
||||
unicode: "fa97"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M21 16.008v-8.018a1.98 1.98 0 0 0 -1 -1.717l-7 -4.008a2.016 2.016 0 0 0 -2 0l-7 4.008c-.619 .355 -1 1.01 -1 1.718v8.018c0 .709 .381 1.363 1 1.717l7 4.008a2.016 2.016 0 0 0 2 0l7 -4.008c.619 -.355 1 -1.01 1 -1.718" />
|
||||
<path d="M12 22v-10" />
|
||||
<path d="M12 12l8.73 -5.04" />
|
||||
<path d="M3.27 6.96l8.73 5.04" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 698 B |
@@ -0,0 +1,21 @@
|
||||
<!--
|
||||
tags: [storage, data, memory, database, repository, records, information, table, content, record]
|
||||
category: Database
|
||||
version: "1.0"
|
||||
unicode: "ea88"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M4 6a8 3 0 1 0 16 0a8 3 0 1 0 -16 0" />
|
||||
<path d="M4 6v6a8 3 0 0 0 16 0v-6" />
|
||||
<path d="M4 12v6a8 3 0 0 0 16 0v-6" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 518 B |
@@ -0,0 +1,22 @@
|
||||
<!--
|
||||
tags: [monitor, computer, imac, device, desktop, hardware, technology, electronic, gadget, equipment]
|
||||
category: Devices
|
||||
version: "1.0"
|
||||
unicode: "ea89"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M3 5a1 1 0 0 1 1 -1h16a1 1 0 0 1 1 1v10a1 1 0 0 1 -1 1h-16a1 1 0 0 1 -1 -1v-10" />
|
||||
<path d="M7 20h10" />
|
||||
<path d="M9 16v4" />
|
||||
<path d="M15 16v4" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 555 B |
@@ -0,0 +1,21 @@
|
||||
<!--
|
||||
tags: [save, file, disk, device, floppy, hardware, technology, electronic, gadget, equipment]
|
||||
category: Devices
|
||||
version: "1.2"
|
||||
unicode: "eb62"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M6 4h10l4 4v10a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2" />
|
||||
<path d="M10 14a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
|
||||
<path d="M14 4l0 4l-6 0l0 -4" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 551 B |
@@ -0,0 +1,20 @@
|
||||
<!--
|
||||
tags: [workstation, mac, notebook, portable, screen, computer, device, laptop, hardware, technology]
|
||||
category: Devices
|
||||
version: "1.2"
|
||||
unicode: "eb64"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M3 19l18 0" />
|
||||
<path d="M5 7a1 1 0 0 1 1 -1h12a1 1 0 0 1 1 1v8a1 1 0 0 1 -1 1h-12a1 1 0 0 1 -1 -1l0 -8" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 507 B |
@@ -0,0 +1,21 @@
|
||||
<!--
|
||||
tags: [iphone, phone, smartphone, cellphone, device, mobile, hardware, technology, electronic, gadget]
|
||||
category: Devices
|
||||
version: "1.0"
|
||||
unicode: "ea8a"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M6 5a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2v-14" />
|
||||
<path d="M11 4h2" />
|
||||
<path d="M12 17v.01" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 531 B |
@@ -0,0 +1,22 @@
|
||||
<!--
|
||||
tags: [memory, storage, technology, data, device, card, hardware, sd, electronic, gadget]
|
||||
category: Devices
|
||||
version: "1.91"
|
||||
unicode: "f384"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M7 21h10a2 2 0 0 0 2 -2v-14a2 2 0 0 0 -2 -2h-6.172a2 2 0 0 0 -1.414 .586l-3.828 3.828a2 2 0 0 0 -.586 1.414v10.172a2 2 0 0 0 2 2" />
|
||||
<path d="M13 6v2" />
|
||||
<path d="M16 6v2" />
|
||||
<path d="M10 7v1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 592 B |
@@ -0,0 +1,22 @@
|
||||
<!--
|
||||
category: System
|
||||
tags: [entrance, open, in, entry, door, enter]
|
||||
version: "1.43"
|
||||
unicode: "ef4c"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M13 12v.01" />
|
||||
<path d="M3 21h18" />
|
||||
<path d="M5 21v-16a2 2 0 0 1 2 -2h6m4 10.5v7.5" />
|
||||
<path d="M21 7h-7m3 -3l-3 3l3 3" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 476 B |
@@ -0,0 +1,23 @@
|
||||
<!--
|
||||
tags: [data, pdf, txt, file, text, document, content, record, paper, information]
|
||||
category: Document
|
||||
version: "1.0"
|
||||
unicode: "eaa2"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M14 3v4a1 1 0 0 0 1 1h4" />
|
||||
<path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2" />
|
||||
<path d="M9 9l1 0" />
|
||||
<path d="M9 13l6 0" />
|
||||
<path d="M9 17l6 0" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 570 B |
@@ -0,0 +1,23 @@
|
||||
<!--
|
||||
tags: [spreadsheet, data, comma, separated, values, document, information, table, format, record]
|
||||
category: Document
|
||||
version: "2.25"
|
||||
unicode: "fb09"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M14 3v4a1 1 0 0 0 1 1h4" />
|
||||
<path d="M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4" />
|
||||
<path d="M7 16.5a1.5 1.5 0 0 0 -3 0v3a1.5 1.5 0 0 0 3 0" />
|
||||
<path d="M10 20.25c0 .414 .336 .75 .75 .75h1.25a1 1 0 0 0 1 -1v-1a1 1 0 0 0 -1 -1h-1a1 1 0 0 1 -1 -1v-1a1 1 0 0 1 1 -1h1.25a.75 .75 0 0 1 .75 .75" />
|
||||
<path d="M16 15l2 6l2 -6" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 720 B |
@@ -0,0 +1,27 @@
|
||||
<!--
|
||||
tags: [text, plain, note, ascii, file, document, writing, data, info, txt]
|
||||
category: Document
|
||||
version: "2.25"
|
||||
unicode: "fb19"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M14 3v4a1 1 0 0 0 1 1h4" />
|
||||
<path d="M14 3v4a1 1 0 0 0 1 1h4" />
|
||||
<path d="M16.5 15h3" />
|
||||
<path d="M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4" />
|
||||
<path d="M4.5 15h3" />
|
||||
<path d="M6 15v6" />
|
||||
<path d="M18 15v6" />
|
||||
<path d="M10 15l4 6" />
|
||||
<path d="M10 21l4 -6" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 646 B |
@@ -0,0 +1,24 @@
|
||||
<!--
|
||||
tags: [spreadsheet, excel, data, table, calculation, cell, xls, office, financial, grid]
|
||||
category: Document
|
||||
version: "2.25"
|
||||
unicode: "fb1b"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M14 3v4a1 1 0 0 0 1 1h4" />
|
||||
<path d="M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4" />
|
||||
<path d="M4 15l4 6" />
|
||||
<path d="M4 21l4 -6" />
|
||||
<path d="M17 20.25c0 .414 .336 .75 .75 .75h1.25a1 1 0 0 0 1 -1v-1a1 1 0 0 0 -1 -1h-1a1 1 0 0 1 -1 -1v-1a1 1 0 0 1 1 -1h1.25a.75 .75 0 0 1 .75 .75" />
|
||||
<path d="M11 15v6h3" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 696 B |
@@ -0,0 +1,20 @@
|
||||
<!--
|
||||
tags: [paper, new, file, document, data, content, record, text, information]
|
||||
category: Document
|
||||
version: "1.0"
|
||||
unicode: "eaa4"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M14 3v4a1 1 0 0 0 1 1h4" />
|
||||
<path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 488 B |
@@ -0,0 +1,24 @@
|
||||
<!--
|
||||
tags: [code, version control, command, git, branch, versioning, repository, tracking, revision]
|
||||
category: Version control
|
||||
version: "1.0"
|
||||
unicode: "eab2"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M5 18a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
|
||||
<path d="M5 6a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
|
||||
<path d="M15 6a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
|
||||
<path d="M7 8l0 8" />
|
||||
<path d="M9 18h6a2 2 0 0 0 2 -2v-5" />
|
||||
<path d="M14 14l3 -3l3 3" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 639 B |
@@ -0,0 +1,23 @@
|
||||
<!--
|
||||
tags: [code, version control, command, git, merge, versioning, repository, tracking, revision]
|
||||
category: Version control
|
||||
version: "1.0"
|
||||
unicode: "eab5"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M5 18a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
|
||||
<path d="M5 6a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
|
||||
<path d="M15 12a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
|
||||
<path d="M7 8l0 8" />
|
||||
<path d="M7 8a4 4 0 0 0 4 4h4" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 602 B |
@@ -0,0 +1,19 @@
|
||||
<!--
|
||||
tags: [shape, geometric, math, 2d, hexagon, geometry, form, figure, pattern, outline]
|
||||
category: Shapes
|
||||
version: "1.8"
|
||||
unicode: "ec02"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M19.875 6.27a2.225 2.225 0 0 1 1.125 1.948v7.284c0 .809 -.443 1.555 -1.158 1.948l-6.75 4.27a2.269 2.269 0 0 1 -2.184 0l-6.75 -4.27a2.225 2.225 0 0 1 -1.158 -1.948v-7.285c0 -.809 .443 -1.554 1.158 -1.947l6.75 -3.98a2.33 2.33 0 0 1 2.25 0l6.75 3.98h-.033" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 638 B |
@@ -0,0 +1,20 @@
|
||||
<!--
|
||||
category: Design
|
||||
tags: [password, login, authentication, secure, key]
|
||||
version: "1.0"
|
||||
unicode: "eac7"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M16.555 3.843l3.602 3.602a2.877 2.877 0 0 1 0 4.069l-2.643 2.643a2.877 2.877 0 0 1 -4.069 0l-.301 -.301l-6.558 6.558a2 2 0 0 1 -1.239 .578l-.175 .008h-1.172a1 1 0 0 1 -.993 -.883l-.007 -.117v-1.172a2 2 0 0 1 .467 -1.284l.119 -.13l.414 -.414h2v-2h2v-2l2.144 -2.144l-.301 -.301a2.877 2.877 0 0 1 0 -4.069l2.643 -2.643a2.877 2.877 0 0 1 4.069 0" />
|
||||
<path d="M15 9h.01" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 720 B |
@@ -0,0 +1,21 @@
|
||||
<!--
|
||||
tags: [security, password, secure, lock, private, control, operation, protected, closed, function]
|
||||
category: System
|
||||
version: "1.0"
|
||||
unicode: "eae2"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M5 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-6" />
|
||||
<path d="M11 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0" />
|
||||
<path d="M8 11v-4a4 4 0 1 1 8 0v4" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 569 B |
@@ -0,0 +1,23 @@
|
||||
<!--
|
||||
tags: [npm, box, container, package, store, purchase, shopping, retail, business]
|
||||
category: E-commerce
|
||||
version: "1.0"
|
||||
unicode: "eaff"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M12 3l8 4.5l0 9l-8 4.5l-8 -4.5l0 -9l8 -4.5" />
|
||||
<path d="M12 12l8 -4.5" />
|
||||
<path d="M12 12l0 9" />
|
||||
<path d="M12 12l-8 -4.5" />
|
||||
<path d="M16 5.25l-8 4.5" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 548 B |
@@ -0,0 +1,20 @@
|
||||
<!--
|
||||
tags: [synchronization, reload, restart, spinner, loader, ajax, update, arrows, refresh, navigation]
|
||||
category: Arrows
|
||||
version: "1.0"
|
||||
unicode: "eb13"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4" />
|
||||
<path d="M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 495 B |
@@ -0,0 +1,27 @@
|
||||
<!--
|
||||
tags: [technology, ai, machine, bot, android, robot, entertainment, playing, recreation, fun]
|
||||
category: Games
|
||||
version: "1.53"
|
||||
unicode: "f00b"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M6 6a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v4a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2l0 -4" />
|
||||
<path d="M12 2v2" />
|
||||
<path d="M9 12v9" />
|
||||
<path d="M15 12v9" />
|
||||
<path d="M5 16l4 -2" />
|
||||
<path d="M15 14l4 2" />
|
||||
<path d="M9 18h6" />
|
||||
<path d="M10 8v.01" />
|
||||
<path d="M14 8v.01" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 673 B |
@@ -0,0 +1,21 @@
|
||||
<!--
|
||||
tags: [universe, galaxy, space, journey, discover, extraterrestrial, spaceship, rocket, location, navigation]
|
||||
category: Map
|
||||
version: "1.11"
|
||||
unicode: "ec45"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M4 13a8 8 0 0 1 7 7a6 6 0 0 0 3 -5a9 9 0 0 0 6 -8a3 3 0 0 0 -3 -3a9 9 0 0 0 -8 6a6 6 0 0 0 -5 3" />
|
||||
<path d="M7 14a6 6 0 0 0 -3 6a6 6 0 0 0 6 -3" />
|
||||
<path d="M14 9a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 606 B |
@@ -0,0 +1,20 @@
|
||||
<!--
|
||||
category: System
|
||||
tags: [find, magnifier, magnifying glass, search, look, seek, query, browse]
|
||||
version: "1.0"
|
||||
unicode: "eb1c"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" />
|
||||
<path d="M21 21l-6 -6" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 442 B |
@@ -0,0 +1,22 @@
|
||||
<!--
|
||||
tags: [storage, hosting, www, server, hardware, technology, electronic, gadget, equipment]
|
||||
category: Devices
|
||||
version: "1.0"
|
||||
unicode: "eb1f"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M3 7a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v2a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3" />
|
||||
<path d="M3 15a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v2a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3l0 -2" />
|
||||
<path d="M7 8l0 .01" />
|
||||
<path d="M7 16l0 .01" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 616 B |
@@ -0,0 +1,21 @@
|
||||
<!--
|
||||
tags: [secure, security, closed, key, safety, shield, lock, private, control, operation]
|
||||
category: System
|
||||
version: "1.30"
|
||||
unicode: "ed58"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M12 3a12 12 0 0 0 8.5 3a12 12 0 0 1 -8.5 15a12 12 0 0 1 -8.5 -15a12 12 0 0 0 8.5 -3" />
|
||||
<path d="M11 11a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" />
|
||||
<path d="M12 12l0 2.5" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 554 B |
@@ -0,0 +1,22 @@
|
||||
<!--
|
||||
tags: [file, document, type, format, extencion, sql, plugin, addon, module, component]
|
||||
category: Extensions
|
||||
version: "2.7"
|
||||
unicode: "f7c0"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M12 8a2 2 0 0 1 2 2v4a2 2 0 1 1 -4 0v-4a2 2 0 0 1 2 -2" />
|
||||
<path d="M17 8v8h4" />
|
||||
<path d="M13 15l1 1" />
|
||||
<path d="M3 15a1 1 0 0 0 1 1h2a1 1 0 0 0 1 -1v-2a1 1 0 0 0 -1 -1h-2a1 1 0 0 1 -1 -1v-2a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 623 B |
@@ -0,0 +1,21 @@
|
||||
<!--
|
||||
tags: [pile, elements, layout, wrap, stack, creative, artistic, visual, aesthetic, style]
|
||||
category: Design
|
||||
version: "1.39"
|
||||
unicode: "eef7"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M12 4l-8 4l8 4l8 -4l-8 -4" />
|
||||
<path d="M4 12l8 4l8 -4" />
|
||||
<path d="M4 16l8 4l8 -4" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 478 B |
@@ -0,0 +1,20 @@
|
||||
<!--
|
||||
tags: [label, price, tag, store, purchase, shopping, retail, business]
|
||||
category: E-commerce
|
||||
version: "3.22"
|
||||
unicode: "10096"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M6.5 7.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" />
|
||||
<path d="M3 6v5.172a2 2 0 0 0 .586 1.414l7.71 7.71a2.41 2.41 0 0 0 3.408 0l5.592 -5.592a2.41 2.41 0 0 0 0 -3.408l-7.71 -7.71a2 2 0 0 0 -1.414 -.586h-5.172a3 3 0 0 0 -3 3" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 591 B |
@@ -0,0 +1,20 @@
|
||||
<!--
|
||||
category: System
|
||||
tags: [console, command, git, command line, command prompt, terminal]
|
||||
version: "1.6"
|
||||
unicode: "ebdc"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M5 7l5 5l-5 5" />
|
||||
<path d="M12 19l7 0" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 410 B |
@@ -0,0 +1,22 @@
|
||||
<!--
|
||||
category: System
|
||||
tags: [sample, color, flask, liquid, container, glass, chemistry, test, laboratory, experimental, beta]
|
||||
version: "1.0"
|
||||
unicode: "eb3a"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M20 8.04l-12.122 12.124a2.857 2.857 0 1 1 -4.041 -4.04l12.122 -12.124" />
|
||||
<path d="M7 13h8" />
|
||||
<path d="M19 15l1.5 1.6a2 2 0 1 1 -3 0l1.5 -1.6" />
|
||||
<path d="M15 3l6 6" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 578 B |
@@ -0,0 +1,27 @@
|
||||
<!--
|
||||
tags: [hierarchy, network, structure, connection, topology, star, favorite, rating, computing, machine]
|
||||
category: Computers
|
||||
version: "1.112"
|
||||
unicode: "f5e5"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M8 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0" />
|
||||
<path d="M20 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0" />
|
||||
<path d="M8 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0" />
|
||||
<path d="M20 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0" />
|
||||
<path d="M14 12a2 2 0 1 0 -4 0a2 2 0 0 0 4 0" />
|
||||
<path d="M7.5 7.5l3 3" />
|
||||
<path d="M7.5 16.5l3 -3" />
|
||||
<path d="M13.5 13.5l3 3" />
|
||||
<path d="M16.5 7.5l-3 3" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 770 B |
@@ -0,0 +1,21 @@
|
||||
<!--
|
||||
category: System
|
||||
tags: [protection, security, defend, safeguard, guard, armor, cover, shield, safety, fortify]
|
||||
version: "2.8"
|
||||
unicode: "f7d0"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M6 21v-2a4 4 0 0 1 4 -4h2" />
|
||||
<path d="M22 16c0 4 -2.5 6 -3.5 6s-3.5 -2 -3.5 -6c1 0 2.5 -.5 3.5 -1.5c1 1 2.5 1.5 3.5 1.5" />
|
||||
<path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 567 B |
@@ -0,0 +1,20 @@
|
||||
<!--
|
||||
tags: [person, account, user, control, operation, profile, member, function, interface, management]
|
||||
category: System
|
||||
version: "1.0"
|
||||
unicode: "eb4d"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0" />
|
||||
<path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 491 B |
@@ -0,0 +1,22 @@
|
||||
<!--
|
||||
tags: [people, persons, accounts, users, control, operation, function, interface, management]
|
||||
category: System
|
||||
version: "1.7"
|
||||
unicode: "ebf2"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M5 7a4 4 0 1 0 8 0a4 4 0 1 0 -8 0" />
|
||||
<path d="M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2" />
|
||||
<path d="M16 3.13a4 4 0 0 1 0 7.75" />
|
||||
<path d="M21 21v-2a4 4 0 0 0 -3 -3.85" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 572 B |
@@ -0,0 +1,27 @@
|
||||
<!--
|
||||
tags: [brick, security, firewall, building, renovation, construction, wall, architecture, structure, property]
|
||||
category: Buildings
|
||||
version: "1.45"
|
||||
unicode: "ef7a"
|
||||
-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12" />
|
||||
<path d="M4 8h16" />
|
||||
<path d="M20 12h-16" />
|
||||
<path d="M4 16h16" />
|
||||
<path d="M9 4v4" />
|
||||
<path d="M14 8v4" />
|
||||
<path d="M8 12v4" />
|
||||
<path d="M16 12v4" />
|
||||
<path d="M11 16v4" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 692 B |