|
| 1 | +# Contributing to Microsoft Cloud Product Logos |
| 2 | + |
| 3 | +First off — thank you! This repository is a community-maintained collection of |
| 4 | +current and legacy Microsoft cloud product logos, and it only stays useful |
| 5 | +because people like you help keep it accurate and complete. |
| 6 | + |
| 7 | +This guide explains how to contribute properly so your changes can be merged |
| 8 | +quickly and without rework. It complements the |
| 9 | +[Contributing section in the README](README.md#contributing) and the conventions |
| 10 | +described in [reorganisation_guidance.md](reorganisation_guidance.md). |
| 11 | + |
| 12 | +> **Trademark note:** All logos are the property of Microsoft Corporation and are |
| 13 | +> subject to [Microsoft's Trademark and Brand Guidelines](https://learn.microsoft.com/en-us/microsoft-365/cloud-storage-partner-program/online/branding). |
| 14 | +> This project simply collects them — **never alter or recreate the marks themselves.** |
| 15 | +
|
| 16 | +--- |
| 17 | + |
| 18 | +## Before you start |
| 19 | + |
| 20 | +Please **thoroughly check the repository first.** Many products have moved, |
| 21 | +been renamed, or have legacy versions tucked into sub-folders (see the structure |
| 22 | +rules below). Checking first avoids duplicate issues and pull requests. |
| 23 | + |
| 24 | +--- |
| 25 | + |
| 26 | +## Ways to contribute |
| 27 | + |
| 28 | +| You want to… | Do this | |
| 29 | +| :--- | :--- | |
| 30 | +| Report an incorrect, outdated, or missing logo | [Open an issue](../../issues/new) | |
| 31 | +| Add a new logo | Open a pull request (see below) | |
| 32 | +| Update / replace an existing logo | Open a pull request (see below) | |
| 33 | +| Suggest a structural or process change | Open an issue to discuss first | |
| 34 | + |
| 35 | +If you spot something incorrect and know the fix, a pull request is welcome — |
| 36 | +otherwise an issue is perfectly fine. |
| 37 | + |
| 38 | +--- |
| 39 | + |
| 40 | +## Adding or updating a logo |
| 41 | + |
| 42 | +### 1. Place the file in the correct folder |
| 43 | + |
| 44 | +- Logos live under `logos/` grouped by **product**, in a folder named after that |
| 45 | + product. |
| 46 | +- Folder and file names are **lowercase**, use **hyphens** instead of spaces, and |
| 47 | + contain **no spaces** (e.g. `microsoft-scout`, `azure-app-service`). |
| 48 | +- Group products by their current product family where applicable. Outliers |
| 49 | + (e.g. Entra, Intune, Power BI) are handled case-by-case — see the |
| 50 | + [README structure notes](README.md#file--folder-structure). |
| 51 | +- **Renamed products:** put the old logos in a sub-folder of the *current* name |
| 52 | + (e.g. Yammer lives under `viva-engage`). |
| 53 | +- **Retired products:** move them into a `zzFORMER_PRODUCTS` folder within their |
| 54 | + product family where possible. |
| 55 | +- **Multiple versions / eras:** keep older logos in sub-folders named by their |
| 56 | + years of existence and style (e.g. `2019-current_full-color`). |
| 57 | + |
| 58 | +### 2. Follow the file naming convention |
| 59 | + |
| 60 | +- Prefer scalable vector art. Name single SVGs `<product>-scalable.svg` |
| 61 | + (e.g. `microsoft-scout-scalable.svg`). |
| 62 | +- For raster files, include the dimensions in the filename where relevant |
| 63 | + (e.g. `agent-365-300x300.png`). |
| 64 | +- Keep sizing/padding consistent with sibling files in the product family. |
| 65 | + |
| 66 | +### 3. Add or update `metadata.md` |
| 67 | + |
| 68 | +Every product folder contains a `metadata.md` file. The site |
| 69 | +([www.mscloudlogos.com](https://www.mscloudlogos.com)) is built from these files, |
| 70 | +so accurate metadata is essential. |
| 71 | + |
| 72 | +| Field | Description | Required | |
| 73 | +| :--- | :--- | :--- | |
| 74 | +| `name` | Current product name | Yes | |
| 75 | +| `type` | `Product`, `Family`, or `Feature` | Yes | |
| 76 | +| `status` | `Active`, `Retired`, or `Renamed (TO: <name>)` | Yes | |
| 77 | +| `altnames` | Alternative / former names, abbreviations (comma-separated) | No | |
| 78 | +| `prodfamilies` | Product family or families it belongs to (comma-separated) | No | |
| 79 | + |
| 80 | +Example: |
| 81 | + |
| 82 | +```text |
| 83 | +name: Microsoft Scout |
| 84 | +
|
| 85 | +type: Product |
| 86 | +
|
| 87 | +status: Active |
| 88 | +
|
| 89 | +altnames: Scout, Frontier |
| 90 | +
|
| 91 | +prodfamilies: Microsoft 365 |
| 92 | +``` |
| 93 | + |
| 94 | +See [reorganisation_guidance.md](reorganisation_guidance.md) for more worked |
| 95 | +examples (renamed products, families, and features). |
| 96 | + |
| 97 | +### 4. Do **not** hand-edit `docs/js/logo-data.js` |
| 98 | + |
| 99 | +`docs/js/logo-data.js` is **auto-generated** from the logo files and their |
| 100 | +`metadata.md` by [`generate-logo-data.py`](generate-logo-data.py). Never edit it |
| 101 | +by hand. |
| 102 | + |
| 103 | +You have two options: |
| 104 | + |
| 105 | +- **Let CI do it (simplest):** just commit your logo file(s) and `metadata.md`. |
| 106 | + The [Update GitHub Pages workflow](.github/workflows/update-github-pages.yml) |
| 107 | + regenerates and commits `logo-data.js` for branches in this repo, and comments |
| 108 | + on fork pull requests asking you to regenerate it. |
| 109 | +- **Regenerate it yourself:** run the generator and commit the result: |
| 110 | + |
| 111 | + ```bash |
| 112 | + python generate-logo-data.py |
| 113 | + ``` |
| 114 | + |
| 115 | +> **Heads-up about the diff:** each logo's `id` in `logo-data.js` is a positional |
| 116 | +> index. Adding a logo renumbers the IDs of everything after it, so the generated |
| 117 | +> diff can look large. **This is expected** — the IDs aren't referenced by the |
| 118 | +> website (lookups use `productSlug` and `path`), and CI produces the same result. |
| 119 | +
|
| 120 | +--- |
| 121 | + |
| 122 | +## Submitting your pull request |
| 123 | + |
| 124 | +1. **Fork** the repository and create a descriptive branch |
| 125 | + (e.g. `add-microsoft-scout-logo`). |
| 126 | +2. Make your changes following the conventions above. |
| 127 | +3. Keep each pull request focused — one product or one logical change is ideal. |
| 128 | +4. Write a clear PR title and description explaining what you added or fixed, and |
| 129 | + where you sourced the logo if relevant. |
| 130 | +5. Open the pull request against the `main` branch and respond to any review |
| 131 | + feedback. |
| 132 | + |
| 133 | +--- |
| 134 | + |
| 135 | +## Sources |
| 136 | + |
| 137 | +Official Microsoft icon sets are linked in the |
| 138 | +[References and sources section of the README](README.md#references-and-sources). |
| 139 | +When possible, use official sources and note where a logo came from in your PR. |
| 140 | + |
| 141 | +Thanks again for contributing! 🎉 |
0 commit comments