| ... | @@ -158,70 +158,166 @@ export const GitLabIcon = ({ | ... | @@ -158,70 +158,166 @@ export const GitLabIcon = ({ |
| 158 | </svg> | 158 | </svg> |
| 159 | ); | 159 | ); |
| 160 | | 160 | |
| | 161 | // Microsoft Azure DevOps mark via selfhst/icons (CC BY 4.0): https://github.com/selfhst/icons/blob/main/svg/azure-devops.svg |
| 161 | export const AzureDevOpsIcon: Icon = (props) => { | 162 | export const AzureDevOpsIcon: Icon = (props) => { |
| 162 | const id = useId().replaceAll(":", ""); | 163 | const id = useId().replaceAll(":", ""); |
| 163 | const gradientA = `${id}-azure-a`; | 164 | const gradientId = `${id}-azure`; |
| 164 | const gradientB = `${id}-azure-b`; | | |
| 165 | const gradientC = `${id}-azure-c`; | | |
| 166 | | 165 | |
| 167 | return ( | 166 | return ( |
| 168 | <svg {...props} viewBox="0 0 96 96"> | 167 | <svg {...props} viewBox="0 0 512 512"> |
| 169 | <defs> | 168 | <defs> |
| 170 | <linearGradient | 169 | <linearGradient |
| 171 | id={gradientA} | 170 | id={`${gradientId}-a`} |
| 172 | x1="-1032.17" | 171 | x1="58.027" |
| 173 | x2="-1059.21" | 172 | x2="58.027" |
| 174 | y1="145.31" | 173 | y1="356.668" |
| 175 | y2="65.43" | 174 | y2="100.668" |
| 176 | gradientTransform="matrix(1 0 0 -1 1075 158)" | 175 | gradientTransform="matrix(1 0 0 -1 0 514)" |
| 177 | gradientUnits="userSpaceOnUse" | 176 | gradientUnits="userSpaceOnUse" |
| 178 | > | 177 | > |
| 179 | <stop offset="0" stopColor="#114a8b" /> | 178 | <stop offset="0" stopColor="#163697" /> |
| 180 | <stop offset="1" stopColor="#0669bc" /> | 179 | <stop offset=".276" stopColor="#2052cb" /> |
| | 180 | <stop offset=".518" stopColor="#2764e7" /> |
| | 181 | <stop offset=".879" stopColor="#367af2" /> |
| 181 | </linearGradient> | 182 | </linearGradient> |
| 182 | <linearGradient | 183 | <linearGradient |
| 183 | id={gradientB} | 184 | id={`${gradientId}-b`} |
| 184 | x1="-1023.73" | 185 | x1="58.027" |
| 185 | x2="-1029.98" | 186 | x2="58.027" |
| 186 | y1="108.08" | 187 | y1="351.334" |
| 187 | y2="105.97" | 188 | y2="292.668" |
| 188 | gradientTransform="matrix(1 0 0 -1 1075 158)" | 189 | gradientTransform="matrix(1 0 0 -1 0 514)" |
| 189 | gradientUnits="userSpaceOnUse" | 190 | gradientUnits="userSpaceOnUse" |
| 190 | > | 191 | > |
| 191 | <stop offset="0" stopOpacity=".3" /> | 192 | <stop offset="0" stopColor="#102784" /> |
| 192 | <stop offset=".07" stopOpacity=".2" /> | 193 | <stop offset="1" stopColor="#2052cb" stopOpacity="0" /> |
| 193 | <stop offset=".32" stopOpacity=".1" /> | | |
| 194 | <stop offset=".62" stopOpacity=".05" /> | | |
| 195 | <stop offset="1" stopOpacity="0" /> | | |
| 196 | </linearGradient> | 194 | </linearGradient> |
| 197 | <linearGradient | 195 | <linearGradient |
| 198 | id={gradientC} | 196 | id={`${gradientId}-c`} |
| 199 | x1="-1027.16" | 197 | x1="389.98" |
| 200 | x2="-997.48" | 198 | x2="107.314" |
| 201 | y1="147.64" | 199 | y1="57.935" |
| 202 | y2="68.56" | 200 | y2="193.935" |
| 203 | gradientTransform="matrix(1 0 0 -1 1075 158)" | 201 | gradientTransform="matrix(1 0 0 -1 0 514)" |
| 204 | gradientUnits="userSpaceOnUse" | 202 | gradientUnits="userSpaceOnUse" |
| 205 | > | 203 | > |
| 206 | <stop offset="0" stopColor="#3ccbf4" /> | 204 | <stop offset="0" stopColor="#163697" /> |
| 207 | <stop offset="1" stopColor="#2892df" /> | 205 | <stop offset=".301" stopColor="#2052cb" /> |
| | 206 | <stop offset=".626" stopColor="#2764e7" /> |
| | 207 | <stop offset=".926" stopColor="#367af2" /> |
| | 208 | </linearGradient> |
| | 209 | <linearGradient |
| | 210 | id={`${gradientId}-d`} |
| | 211 | x1="391.996" |
| | 212 | x2="341.385" |
| | 213 | y1="76.552" |
| | 214 | y2="78.224" |
| | 215 | gradientTransform="matrix(1 0 0 -1 0 514)" |
| | 216 | gradientUnits="userSpaceOnUse" |
| | 217 | > |
| | 218 | <stop offset="0" stopColor="#102784" /> |
| | 219 | <stop offset="1" stopColor="#2052cb" stopOpacity="0" /> |
| | 220 | </linearGradient> |
| | 221 | <linearGradient |
| | 222 | id={`${gradientId}-e`} |
| | 223 | x1="442.24" |
| | 224 | x2="442.24" |
| | 225 | y1="54.769" |
| | 226 | y2="419.38" |
| | 227 | gradientTransform="matrix(1 0 0 -1 0 514)" |
| | 228 | gradientUnits="userSpaceOnUse" |
| | 229 | > |
| | 230 | <stop offset=".043" stopColor="#2052cb" /> |
| | 231 | <stop offset=".489" stopColor="#367af2" /> |
| | 232 | <stop offset=".943" stopColor="#16bbda" /> |
| | 233 | </linearGradient> |
| | 234 | <linearGradient |
| | 235 | id={`${gradientId}-f`} |
| | 236 | x1="435.596" |
| | 237 | x2="425.732" |
| | 238 | y1="270.413" |
| | 239 | y2="385.266" |
| | 240 | gradientTransform="matrix(1 0 0 -1 0 514)" |
| | 241 | gradientUnits="userSpaceOnUse" |
| | 242 | > |
| | 243 | <stop offset=".134" stopColor="#16bbda" stopOpacity="0" /> |
| | 244 | <stop offset=".932" stopColor="#6be7a0" stopOpacity=".8629" /> |
| | 245 | </linearGradient> |
| | 246 | <linearGradient |
| | 247 | id={`${gradientId}-g`} |
| | 248 | x1="437.081" |
| | 249 | x2="507.893" |
| | 250 | y1="204.362" |
| | 251 | y2="119.081" |
| | 252 | gradientTransform="matrix(1 0 0 -1 0 514)" |
| | 253 | gradientUnits="userSpaceOnUse" |
| | 254 | > |
| | 255 | <stop offset="0" stopColor="#2c68e0" stopOpacity="0" /> |
| | 256 | <stop offset=".898" stopColor="#66c0ff" stopOpacity=".5" /> |
| | 257 | </linearGradient> |
| | 258 | <linearGradient |
| | 259 | id={`${gradientId}-h`} |
| | 260 | x1="99.399" |
| | 261 | x2="352.75" |
| | 262 | y1="279.26" |
| | 263 | y2="498.676" |
| | 264 | gradientTransform="matrix(1 0 0 -1 0 514)" |
| | 265 | gradientUnits="userSpaceOnUse" |
| | 266 | > |
| | 267 | <stop offset=".005" stopColor="#367af2" /> |
| | 268 | <stop offset=".507" stopColor="#0fafff" /> |
| | 269 | <stop offset="1" stopColor="#26cfe8" /> |
| | 270 | </linearGradient> |
| | 271 | <linearGradient |
| | 272 | id={`${gradientId}-i`} |
| | 273 | x1="184.342" |
| | 274 | x2="338.581" |
| | 275 | y1="356.795" |
| | 276 | y2="480.642" |
| | 277 | gradientTransform="matrix(1 0 0 -1 0 514)" |
| | 278 | gradientUnits="userSpaceOnUse" |
| | 279 | > |
| | 280 | <stop offset=".443" stopColor="#26cfe8" stopOpacity="0" /> |
| | 281 | <stop offset=".897" stopColor="#6be7a0" stopOpacity=".8629" /> |
| 208 | </linearGradient> | 282 | </linearGradient> |
| 209 | </defs> | 283 | </defs> |
| 210 | <path | 284 | <path |
| 211 | fill={`url(#${gradientA})`} | 285 | d="M116.1 73.4c-5.8 5.8-13.7 13.8-13.7 22.6v216.4c0 8.9-3.3 17.3-9 23.4s-13.3 9.2-21.1 8.5l-42.7-3.1c-7.9-.5-15-3.9-20.3-9.3-5.7-5.7-9.3-13.7-9.3-22.6V202.7c0-8.9 3.6-16.9 9.4-22.6l2-1.9z" |
| 212 | d="M33.34 6.54h26.04l-27.03 80.1a4.15 4.15 0 0 1-3.94 2.81H8.15a4.14 4.14 0 0 1-3.93-5.47L29.4 9.38a4.15 4.15 0 0 1 3.94-2.83z" | 286 | fill={`url(#${gradientId}-a)`} |
| | 287 | /> |
| | 288 | <path |
| | 289 | d="M116.1 73.4c-5.8 5.8-13.7 13.8-13.7 22.6v216.4c0 8.9-3.3 17.3-9 23.4s-13.3 9.2-21.1 8.5l-42.7-3.1c-7.9-.5-15-3.9-20.3-9.3-5.7-5.7-9.3-13.7-9.3-22.6V202.7c0-8.9 3.6-16.9 9.4-22.6l2-1.9z" |
| | 290 | fill={`url(#${gradientId}-b)`} |
| | 291 | /> |
| | 292 | <path |
| | 293 | d="m500.5 366-128 106.7c-5.5 4.6-12.7 7.4-20.5 7.4q-2.4 0-4.8-.3l-112.5-16.9v27.8c0 11.7-9.6 21.3-21.3 21.3-7.3 0-13.5-3.6-17.5-9.1l-36.2-51.4-5.4-7.6-36.6-51.9-7-10c-2.6-3.5-3.9-7.8-3.9-12.3 0-6 2.5-11.6 6.8-15.7 3.8-3.7 9.1-5.8 14.5-5.8.4 0 1 .1 1.5.1l105.2 7.5L384 366.5l93.7 6.7c.7.1 1.6.1 2.3.1 7.8 0 14.9-2.7 20.5-7.3" |
| | 294 | fill={`url(#${gradientId}-c)`} |
| | 295 | /> |
| | 296 | <path |
| | 297 | d="m500.5 366-128 106.7c-5.5 4.6-12.7 7.4-20.5 7.4q-2.4 0-4.8-.3l-112.5-16.9v27.8c0 11.7-9.6 21.3-21.3 21.3-7.3 0-13.5-3.6-17.5-9.1l-36.2-51.4-5.4-7.6-36.6-51.9-7-10c-2.6-3.5-3.9-7.8-3.9-12.3 0-6 2.5-11.6 6.8-15.7 3.8-3.7 9.1-5.8 14.5-5.8.4 0 1 .1 1.5.1l105.2 7.5L384 366.5l93.7 6.7c.7.1 1.6.1 2.3.1 7.8 0 14.9-2.7 20.5-7.3" |
| | 298 | fill={`url(#${gradientId}-d)`} |
| | 299 | /> |
| | 300 | <path |
| | 301 | d="M512 170.7v170.7c0 9.9-4.5 18.8-11.5 24.6l-128 106.7c7-5.9 11.5-14.7 11.5-24.6V175.3c0-16.7 13-30.7 29.8-31.9l63.9-4.6c.7-.1 1.6-.1 2.3-.1 7.8 0 14.9 2.8 20.5 7.4 7 5.8 11.5 14.6 11.5 24.6" |
| | 302 | fill={`url(#${gradientId}-e)`} |
| | 303 | /> |
| | 304 | <path |
| | 305 | d="M512 170.7v170.7c0 9.9-4.5 18.8-11.5 24.6l-128 106.7c7-5.9 11.5-14.7 11.5-24.6V175.3c0-16.7 13-30.7 29.8-31.9l63.9-4.6c.7-.1 1.6-.1 2.3-.1 7.8 0 14.9 2.8 20.5 7.4 7 5.8 11.5 14.6 11.5 24.6" |
| | 306 | fill={`url(#${gradientId}-f)`} |
| | 307 | fillOpacity=".7" |
| 213 | /> | 308 | /> |
| 214 | <path | 309 | <path |
| 215 | fill="#0078d4" | 310 | d="M512 170.7v170.7c0 9.9-4.5 18.8-11.5 24.6l-128 106.7c7-5.9 11.5-14.7 11.5-24.6V175.3c0-16.7 13-30.7 29.8-31.9l63.9-4.6c.7-.1 1.6-.1 2.3-.1 7.8 0 14.9 2.8 20.5 7.4 7 5.8 11.5 14.6 11.5 24.6" |
| 216 | d="M71.17 60.26H29.88a1.91 1.91 0 0 0-1.3 3.31l26.53 24.76a4.17 4.17 0 0 0 2.85 1.13h23.38z" | 311 | fill={`url(#${gradientId}-g)`} |
| 217 | /> | 312 | /> |
| 218 | <path | 313 | <path |
| 219 | fill={`url(#${gradientB})`} | 314 | d="M384 125.5c0 11.2-8.6 20.5-19.8 21.3-.5 0-1.1.1-1.6.1l-127.9 9.2-132.3 9.1-72.7 5.5c-6.9.4-13.2 3.1-18.2 7.4L116.1 73.4c4.7-4.7 10.9-8 17.8-9.1l100.8-15.1V21.3C234.7 9.6 244.3 0 256 0c5.8 0 11.1 2.3 14.9 6.1l33.4 32.6 16.9 16.5 40.3 39.3 16.1 15.8c4.1 3.9 6.4 9.4 6.4 15.2" |
| 220 | d="M33.34 6.54a4.12 4.12 0 0 0-3.95 2.88L4.25 83.92a4.14 4.14 0 0 0 3.91 5.54h20.79a4.44 4.44 0 0 0 3.4-2.9l5.02-14.78 17.91 16.7a4.24 4.24 0 0 0 2.67.97h23.29L71.02 60.26H41.24L59.47 6.55z" | 315 | fill={`url(#${gradientId}-h)`} |
| 221 | /> | 316 | /> |
| 222 | <path | 317 | <path |
| 223 | fill={`url(#${gradientC})`} | 318 | d="M384 125.5c0 11.2-8.6 20.5-19.8 21.3-.5 0-1.1.1-1.6.1l-127.9 9.2-132.3 9.1-72.7 5.5c-6.9.4-13.2 3.1-18.2 7.4L116.1 73.4c4.7-4.7 10.9-8 17.8-9.1l100.8-15.1V21.3C234.7 9.6 244.3 0 256 0c5.8 0 11.1 2.3 14.9 6.1l33.4 32.6 16.9 16.5 40.3 39.3 16.1 15.8c4.1 3.9 6.4 9.4 6.4 15.2" |
| 224 | d="M66.6 9.36a4.14 4.14 0 0 0-3.93-2.82H33.65a4.15 4.15 0 0 1 3.93 2.82l25.18 74.62a4.15 4.15 0 0 1-3.93 5.48h29.02a4.15 4.15 0 0 0 3.93-5.48z" | 319 | fill={`url(#${gradientId}-i)`} |
| | 320 | fillOpacity=".5" |
| 225 | /> | 321 | /> |
| 226 | </svg> | 322 | </svg> |
| 227 | ); | 323 | ); |