This is an automated email from the ASF dual-hosted git repository. moonming pushed a commit to branch feat/plugin-logos-and-homepage in repository https://gitbox.apache.org/repos/asf/apisix-website.git
commit 7e378c9ed2d6aff5a99e42bb9cdc76e39c726268 Author: Ming Wen <[email protected]> AuthorDate: Wed Jun 24 20:28:48 2026 +0800 feat(website): show real logos on the Plugin Hub Most plugins fell back to a single grey placeholder because adding an icon meant regenerating the iconfont sprite (js/plugin-icon.js), so newer plugins were all flagged `useDefaultIcon`. Decouple icons from that sprite: a plugin can now declare a `logo` path that renders as an <img>, with a graceful onError fallback. As a result no plugin shows the empty placeholder any more: - 23 plugins now use their real brand logo (OpenTelemetry, Kafka, gRPC, GraphQL, Dubbo, OpenWhisk, OpenFunction, Elasticsearch, ClickHouse, Grafana Loki, Splunk, RocketMQ, AWS Lambda, Azure Functions, OPA, Brotli, SafeLine, OpenAPI, MQTT, Alibaba Cloud, AWS). - The 8 built-in AI plugins share a new on-brand AI glyph. - Other built-in plugins use the APISIX logo instead of the placeholder. The 39 existing sprite icons are untouched. Also reorder the plugin categories so Traffic leads and General is last. --- website/src/pages/plugins.tsx | 49 +- website/static/data/plugins.json | 244 +-- website/static/img/integrations/alibabacloud.svg | 1 + website/static/img/integrations/aws.svg | 7 + website/static/img/integrations/awslambda.svg | 14 + website/static/img/integrations/azurefunctions.svg | 1 + website/static/img/integrations/brotli.svg | 9 + website/static/img/integrations/dubbo.svg | 7 + website/static/img/integrations/graphql.svg | 1 + website/static/img/integrations/grpc.svg | 1 + website/static/img/integrations/kafka.svg | 1 + website/static/img/integrations/mqtt.svg | 1 + website/static/img/integrations/opa.svg | 1 + website/static/img/integrations/openapi.svg | 1 + website/static/img/integrations/openfunction.svg | 4 + website/static/img/integrations/openwhisk.svg | 1832 ++++++++++++++++++++ website/static/img/integrations/rocketmq.svg | 1 + website/static/img/integrations/safeline.svg | 45 + website/static/img/integrations/skywalking.svg | 18 + website/static/img/integrations/splunk.svg | 1 + website/static/img/plugin/ai.svg | 10 + website/static/img/plugin/apisix.svg | 15 + 22 files changed, 2134 insertions(+), 130 deletions(-) diff --git a/website/src/pages/plugins.tsx b/website/src/pages/plugins.tsx index 594d1a51f66..7c9941cb202 100644 --- a/website/src/pages/plugins.tsx +++ b/website/src/pages/plugins.tsx @@ -191,9 +191,48 @@ const SBeta = styled.div` } `; +interface PluginEntry { + name: string; + description?: string; + logo?: string; + useDefaultIcon?: boolean; + beta?: boolean; +} + +interface PluginGroup { + groupName: string; + plugins: PluginEntry[]; +} + +const renderPluginIcon = (plugin: PluginEntry): JSX.Element => { + if (plugin.logo) { + return ( + <img + className="plugin-logo shadow" + src={plugin.logo} + alt={plugin.name} + loading="lazy" + onError={(e) => { + e.currentTarget.onerror = null; + e.currentTarget.src = '/img/plugin/default-icon.png'; + e.currentTarget.classList.add('default'); + }} + /> + ); + } + if (plugin.useDefaultIcon) { + return <img className="plugin-logo shadow" src="/img/plugin/apisix.svg" alt={plugin.name} loading="lazy" />; + } + return ( + <svg className="plugin-logo shadow" aria-hidden="true"> + <use xlinkHref={`#icon${plugin.name}`} /> + </svg> + ); +}; + const Plugins: FC = () => { const { siteConfig } = useDocusaurusContext(); - const { plugins = [] } = siteConfig.customFields as { plugins: any[] }; + const { plugins = [] } = siteConfig.customFields as { plugins: PluginGroup[] }; const sidebar = plugins.map((section) => ( <SidebarItem key={section.groupName}><a className="sidebar-link" href={`#${section.groupName}`}>{section.groupName}</a></SidebarItem> )); @@ -205,13 +244,7 @@ const Plugins: FC = () => { <div key={plugin.name}> <PluginCard href={plugin.beta ? `/docs/apisix/next/plugins/${pluginUrl}` : `/docs/apisix/plugins/${pluginUrl}`} target="_blank"> <PluginIcon> - {plugin.useDefaultIcon - ? <img className="plugin-logo shadow default" src="/img/plugin/default-icon.png" alt={plugin.name} /> - : ( - <svg className="plugin-logo shadow" aria-hidden="true"> - <use xlinkHref={`#icon${plugin.name}`} /> - </svg> - )} + {renderPluginIcon(plugin)} </PluginIcon> <PluginName> {plugin.name} diff --git a/website/static/data/plugins.json b/website/static/data/plugins.json index 9bbf985b7d8..f07a72d080f 100644 --- a/website/static/data/plugins.json +++ b/website/static/data/plugins.json @@ -1,64 +1,61 @@ [ { - "groupName": "General", + "groupName": "Traffic", "plugins": [ { - "name": "batch-requests", - "description": "The batch-requests plugin accepts multiple requests, sends them from APISIX via HTTP pipelining, and returns an aggregated response to the client" + "name": "limit-req", + "description": "The plugin limits request rate using the leaky bucket method" }, { - "name": "redirect", - "description": "The redirect Plugin can be used to configure redirects", - "useDefaultIcon": true + "name": "limit-conn", + "description": "The plugin limits request concurrency" }, { - "name": "echo", - "description": "The echo Plugin is to help users understand how they can develop an APISIX Plugin", - "useDefaultIcon": true + "name": "limit-count", + "description": "The plugin Limits request rate by a fixed number of requests in a given time window" }, { - "name": "gzip", - "description": "The gzip Plugin dynamically sets the behavior of gzip in Nginx", - "useDefaultIcon": true + "name": "proxy-cache", + "description": "The proxy-cache Plugin can be used to cache the response from the Upstream" }, { - "name": "brotli", - "description": "The brotli Plugin dynamically configures Brotli compression in NGINX", - "useDefaultIcon": true + "name": "request-validation", + "description": "The request-validation Plugin can be used to validate the requests before forwarding them to an Upstream service" }, { - "name": "real-ip", - "description": "The real-ip Plugin is used to dynamically change the client's IP address and port as seen by APISIX", - "useDefaultIcon": true + "name": "proxy-mirror", + "description": "The proxy-mirror Plugin can be used to mirror client requests" }, { - "name": "server-info", - "description": "The server-info Plugin periodically reports basic server information to etcd", - "useDefaultIcon": true + "name": "api-breaker", + "description": "The api-breaker Plugin implements circuit breaker functionality to protect Upstream services" }, { - "name": "inspect", - "description": "The inspect Plugin exposes runtime inspection information for APISIX", - "useDefaultIcon": true + "name": "traffic-split", + "description": "The traffic split plugin allows users to incrementally direct percentages of traffic between various upstreams" }, { - "name": "lago", - "description": "The lago Plugin reports usage and billing events to Lago", + "name": "request-id", + "description": "The request-id Plugin adds a unique ID to each request proxied through APISIX" + }, + { + "name": "attach-consumer-label", + "description": "The attach-consumer-label Plugin injects labels from the authenticated consumer into the request context", "useDefaultIcon": true }, { - "name": "ext-plugin-pre-req", - "description": "The ext-plugin-pre-req Plugin is for running specific external Plugins in the Plugin Runner before executing the built-in Lua Plugins", + "name": "proxy-control", + "description": "The proxy-control Plugin dynamically controls the behavior of the NGINX proxy", "useDefaultIcon": true }, { - "name": "ext-plugin-post-req", - "description": "ext-plugin-post-req differs from the ext-plugin-pre-req Plugin in that it runs after executing the built-in Lua Plugins and before proxying to the Upstream", + "name": "client-control", + "description": "The client-control Plugin can be used to dynamically control the behavior of NGINX to handle a client request, by setting the max size of the request body", "useDefaultIcon": true }, { - "name": "ext-plugin-post-resp", - "description": "The ext-plugin-post-resp Plugin is for running specific external Plugins in the Plugin Runner before executing the built-in Lua Plugins", + "name": "traffic-label", + "description": "The traffic-label Plugin evaluates labels on requests for traffic governance and routing", "useDefaultIcon": true } ] @@ -81,7 +78,7 @@ { "name": "grpc-web", "description": "The grpc-web Plugin is a proxy Plugin that can process gRPC Web requests from JavaScript clients to a gRPC service", - "useDefaultIcon": true + "logo": "/img/integrations/grpc.svg" }, { "name": "body-transformer", @@ -91,7 +88,7 @@ { "name": "degraphql", "description": "The degraphql Plugin translates GraphQL queries into upstream REST requests", - "useDefaultIcon": true + "logo": "/img/integrations/graphql.svg" }, { "name": "exit-transformer", @@ -177,7 +174,7 @@ { "name": "opa", "description": "An authorization plugin can be used to integrate with Open Policy Agent", - "useDefaultIcon": true + "logo": "/img/integrations/opa.svg" }, { "name": "forward-auth", @@ -222,12 +219,12 @@ { "name": "chaitin-waf", "description": "The chaitin-waf Plugin integrates Chaitin SafeLine WAF inspection with APISIX", - "useDefaultIcon": true + "logo": "/img/integrations/safeline.svg" }, { "name": "oas-validator", "description": "The oas-validator Plugin validates requests against an OpenAPI specification", - "useDefaultIcon": true + "logo": "/img/integrations/openapi.svg" }, { "name": "ocsp-stapling", @@ -241,119 +238,58 @@ } ] }, - { - "groupName": "Traffic", - "plugins": [ - { - "name": "limit-req", - "description": "The plugin limits request rate using the leaky bucket method" - }, - { - "name": "limit-conn", - "description": "The plugin limits request concurrency" - }, - { - "name": "limit-count", - "description": "The plugin Limits request rate by a fixed number of requests in a given time window" - }, - { - "name": "proxy-cache", - "description": "The proxy-cache Plugin can be used to cache the response from the Upstream" - }, - { - "name": "request-validation", - "description": "The request-validation Plugin can be used to validate the requests before forwarding them to an Upstream service" - }, - { - "name": "proxy-mirror", - "description": "The proxy-mirror Plugin can be used to mirror client requests" - }, - { - "name": "api-breaker", - "description": "The api-breaker Plugin implements circuit breaker functionality to protect Upstream services" - }, - { - "name": "traffic-split", - "description": "The traffic split plugin allows users to incrementally direct percentages of traffic between various upstreams" - }, - { - "name": "request-id", - "description": "The request-id Plugin adds a unique ID to each request proxied through APISIX" - }, - { - "name": "attach-consumer-label", - "description": "The attach-consumer-label Plugin injects labels from the authenticated consumer into the request context", - "useDefaultIcon": true - }, - { - "name": "proxy-control", - "description": "The proxy-control Plugin dynamically controls the behavior of the NGINX proxy", - "useDefaultIcon": true - }, - { - "name": "client-control", - "description": "The client-control Plugin can be used to dynamically control the behavior of NGINX to handle a client request, by setting the max size of the request body", - "useDefaultIcon": true - }, - { - "name": "traffic-label", - "description": "The traffic-label Plugin evaluates labels on requests for traffic governance and routing", - "useDefaultIcon": true - } - ] - }, { "groupName": "AI", "plugins": [ { "name": "ai-proxy", "description": "The ai-proxy Plugin simplifies proxying requests to LLM providers compatible with the OpenAI API format", - "useDefaultIcon": true + "logo": "/img/plugin/ai.svg" }, { "name": "ai-proxy-multi", "description": "The ai-proxy-multi Plugin extends ai-proxy with load balancing, retries, fallbacks, and health checks for LLM providers", - "useDefaultIcon": true + "logo": "/img/plugin/ai.svg" }, { "name": "ai-request-rewrite", "description": "The ai-request-rewrite Plugin rewrites client requests with LLM-generated content before proxying upstream", - "useDefaultIcon": true + "logo": "/img/plugin/ai.svg" }, { "name": "ai-rate-limiting", "description": "The ai-rate-limiting Plugin limits LLM usage by tracking and throttling token consumption", - "useDefaultIcon": true + "logo": "/img/plugin/ai.svg" }, { "name": "ai-prompt-decorator", "description": "The ai-prompt-decorator Plugin prepends and appends predefined prompts to user input", - "useDefaultIcon": true + "logo": "/img/plugin/ai.svg" }, { "name": "ai-prompt-template", "description": "The ai-prompt-template Plugin applies predefined prompt templates and accepts values for declared variables", - "useDefaultIcon": true + "logo": "/img/plugin/ai.svg" }, { "name": "ai-prompt-guard", "description": "The ai-prompt-guard Plugin validates prompts against allow and deny patterns before forwarding them to LLM services", - "useDefaultIcon": true + "logo": "/img/plugin/ai.svg" }, { "name": "ai-aws-content-moderation", "description": "The ai-aws-content-moderation Plugin uses AWS Comprehend to detect and block toxic request content", - "useDefaultIcon": true + "logo": "/img/integrations/aws.svg" }, { "name": "ai-aliyun-content-moderation", "description": "The ai-aliyun-content-moderation Plugin uses Alibaba Cloud content moderation to inspect and block unsafe requests", - "useDefaultIcon": true + "logo": "/img/integrations/alibabacloud.svg" }, { "name": "ai-rag", "description": "The ai-rag Plugin adds retrieval-augmented generation by fetching relevant context from external data sources", - "useDefaultIcon": true + "logo": "/img/plugin/ai.svg" } ] }, @@ -371,7 +307,7 @@ { "name": "opentelemetry", "description": "The opentelemetry Plugin can be used to report tracing data according to the OpenTelemetry specification", - "useDefaultIcon": true + "logo": "/img/integrations/opentelemetry.svg" }, { "name": "prometheus", @@ -393,7 +329,7 @@ { "name": "skywalking-logger", "description": "The skywalking-logger Plugin can be used to push access log data to SkyWalking OAP server of HTTP", - "useDefaultIcon": true + "logo": "/img/integrations/skywalking.svg" }, { "name": "tcp-logger", @@ -406,7 +342,7 @@ { "name": "rocketmq-logger", "description": "The rocketmq-logger Plugin provides the ability to push logs as JSON objects to your RocketMQ clusters", - "useDefaultIcon": true + "logo": "/img/integrations/rocketmq.svg" }, { "name": "udp-logger", @@ -415,7 +351,7 @@ { "name": "clickhouse-logger", "description": "The clickhouse-logger Plugin is used to push logs to ClickHouse database", - "useDefaultIcon": true + "logo": "/img/integrations/clickhouse.svg" }, { "name": "syslog", @@ -441,7 +377,7 @@ { "name": "splunk-hec-logging", "description": "The splunk-hec-logging Plugin is used to forward logs to Splunk HTTP Event Collector (HEC) for analysis and storage", - "useDefaultIcon": true + "logo": "/img/integrations/splunk.svg" }, { "name": "file-logger", @@ -456,12 +392,12 @@ { "name": "loki-logger", "description": "The loki-logger Plugin pushes access logs to Grafana Loki", - "useDefaultIcon": true + "logo": "/img/integrations/grafana.svg" }, { "name": "elasticsearch-logger", "description": "The elasticsearch-logger Plugin is used to forward logs to Elasticsearch for analysis and storage", - "useDefaultIcon": true + "logo": "/img/integrations/elasticsearch.svg" }, { "name": "tencent-cloud-cls", @@ -481,17 +417,17 @@ { "name": "azure-functions", "description": "The azure-functions Plugin is used to integrate APISIX with Azure Serverless Function as a dynamic upstream to proxy all requests for a particular URI to the Microsoft Azure Cloud", - "useDefaultIcon": true + "logo": "/img/integrations/azurefunctions.svg" }, { "name": "openwhisk", "description": "The openwhisk Plugin is used to integrate APISIX with the Apache OpenWhisk serverless platform", - "useDefaultIcon": true + "logo": "/img/integrations/openwhisk.svg" }, { "name": "aws-lambda", "description": "The aws-lambda Plugin is used for integrating APISIX with AWS Lambda as a dynamic upstream to proxy all requests for a particular URI to the AWS Cloud", - "useDefaultIcon": true + "logo": "/img/integrations/awslambda.svg" }, { "name": "workflow", @@ -501,7 +437,7 @@ { "name": "openfunction", "description": "The openfunction Plugin is used to integrate APISIX with CNCF OpenFunction serverless platform", - "useDefaultIcon": true + "logo": "/img/integrations/openfunction.svg" } ] }, @@ -511,21 +447,85 @@ { "name": "dubbo-proxy", "description": "The dubbo-proxy Plugin allows you to proxy HTTP requests to Apache Dubbo", - "useDefaultIcon": true + "logo": "/img/integrations/dubbo.svg" }, { "name": "http-dubbo", "description": "The http-dubbo Plugin proxies HTTP requests to Apache Dubbo services", - "useDefaultIcon": true + "logo": "/img/integrations/dubbo.svg" }, { "name": "mqtt-proxy", "description": "The mqtt-proxy Plugin is used for dynamic load balancing with client_id of MQTT. It only works in stream mode", - "useDefaultIcon": true + "logo": "/img/integrations/mqtt.svg" }, { "name": "kafka-proxy", "description": "The kafka-proxy plugin can be used to configure advanced parameters for the kafka upstream of Apache APISIX, such as SASL authentication", + "logo": "/img/integrations/kafka.svg" + } + ] + }, + { + "groupName": "General", + "plugins": [ + { + "name": "batch-requests", + "description": "The batch-requests plugin accepts multiple requests, sends them from APISIX via HTTP pipelining, and returns an aggregated response to the client" + }, + { + "name": "redirect", + "description": "The redirect Plugin can be used to configure redirects", + "useDefaultIcon": true + }, + { + "name": "echo", + "description": "The echo Plugin is to help users understand how they can develop an APISIX Plugin", + "useDefaultIcon": true + }, + { + "name": "gzip", + "description": "The gzip Plugin dynamically sets the behavior of gzip in Nginx", + "useDefaultIcon": true + }, + { + "name": "brotli", + "description": "The brotli Plugin dynamically configures Brotli compression in NGINX", + "logo": "/img/integrations/brotli.svg" + }, + { + "name": "real-ip", + "description": "The real-ip Plugin is used to dynamically change the client's IP address and port as seen by APISIX", + "useDefaultIcon": true + }, + { + "name": "server-info", + "description": "The server-info Plugin periodically reports basic server information to etcd", + "useDefaultIcon": true + }, + { + "name": "inspect", + "description": "The inspect Plugin exposes runtime inspection information for APISIX", + "useDefaultIcon": true + }, + { + "name": "lago", + "description": "The lago Plugin reports usage and billing events to Lago", + "useDefaultIcon": true + }, + { + "name": "ext-plugin-pre-req", + "description": "The ext-plugin-pre-req Plugin is for running specific external Plugins in the Plugin Runner before executing the built-in Lua Plugins", + "useDefaultIcon": true + }, + { + "name": "ext-plugin-post-req", + "description": "ext-plugin-post-req differs from the ext-plugin-pre-req Plugin in that it runs after executing the built-in Lua Plugins and before proxying to the Upstream", + "useDefaultIcon": true + }, + { + "name": "ext-plugin-post-resp", + "description": "The ext-plugin-post-resp Plugin is for running specific external Plugins in the Plugin Runner before executing the built-in Lua Plugins", "useDefaultIcon": true } ] diff --git a/website/static/img/integrations/alibabacloud.svg b/website/static/img/integrations/alibabacloud.svg new file mode 100644 index 00000000000..e0a1e9d1f9a --- /dev/null +++ b/website/static/img/integrations/alibabacloud.svg @@ -0,0 +1 @@ +<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Alibaba Cloud</title><path d="M3.996 4.517h5.291L8.01 6.324 4.153 7.506a1.668 1.668 0 0 0-1.165 1.601v5.786a1.668 1.668 0 0 0 1.165 1.6l3.857 1.183 1.277 1.807H3.996A3.996 3.996 0 0 1 0 15.487V8.513a3.996 3.996 0 0 1 3.996-3.996m16.008 0h-5.291l1.277 1.807 3.857 1.182c.715.227 1.17.889 1.165 1.601v5.786a1.668 1.668 0 0 1-1.165 1.6l-3.857 1.183-1.277 1.807h5.291A3.996 3.996 0 0 0 24 15.487V8.513a3.996 3.996 0 0 [...] \ No newline at end of file diff --git a/website/static/img/integrations/aws.svg b/website/static/img/integrations/aws.svg new file mode 100644 index 00000000000..de4948d7459 --- /dev/null +++ b/website/static/img/integrations/aws.svg @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="256px" height="153px" viewBox="0 0 256 153" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid"> + <g> + <path d="M72.392053,55.4384106 C72.392053,58.5748344 72.7311258,61.1178808 73.3245033,62.9827815 C74.002649,64.8476821 74.8503311,66.8821192 76.0370861,69.0860927 C76.4609272,69.7642384 76.6304636,70.4423841 76.6304636,71.0357616 C76.6304636,71.8834437 76.1218543,72.7311258 75.0198675,73.5788079 L69.6794702,77.1390728 C68.9165563,77.6476821 68.1536424,77.9019868 67.4754967,77.9019868 C66.6278146,77.9019868 65.7801325,77.4781457 64.9324503,76.7152318 C63.7456954,75.4437086 62.7284768, [...] + <path d="M230.993377,120.964238 C203.104636,141.562914 162.58543,152.498013 127.745695,152.498013 C78.9192053,152.498013 34.9245033,134.442384 1.69536424,104.434437 C-0.932450331,102.060927 1.4410596,98.8397351 4.57748344,100.704636 C40.5192053,121.557616 84.8529801,134.188079 130.712583,134.188079 C161.65298,134.188079 195.645033,127.745695 226.924503,114.521854 C231.586755,112.402649 235.570861,117.57351 230.993377,120.964238 Z M242.606623,107.740397 C239.046358,103.162914 219.0410 [...] + </g> +</svg> diff --git a/website/static/img/integrations/awslambda.svg b/website/static/img/integrations/awslambda.svg new file mode 100644 index 00000000000..c7407489abd --- /dev/null +++ b/website/static/img/integrations/awslambda.svg @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="256px" height="256px" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid"> + <title>AWS Lambda</title> + <defs> + <linearGradient x1="0%" y1="100%" x2="100%" y2="0%" id="linearGradient-1"> + <stop stop-color="#C8511B" offset="0%"></stop> + <stop stop-color="#FF9900" offset="100%"></stop> + </linearGradient> + </defs> + <g> + <rect fill="url(#linearGradient-1)" x="0" y="0" width="256" height="256"></rect> + <path d="M89.6241126,211.2 L49.8903277,211.2 L93.8354832,119.3472 L113.74728,160.3392 L89.6241126,211.2 Z M96.7029357,110.5696 C96.1640858,109.4656 95.0414813,108.7648 93.8162384,108.7648 L93.8066163,108.7648 C92.5717514,108.768 91.4491466,109.4752 90.9199187,110.5856 L41.9134208,213.0208 C41.4387197,214.0128 41.5060758,215.1776 42.0962451,216.1088 C42.6799994,217.0368 43.7063805,217.6 44.8065331,217.6 L91.654423,217.6 C92.8957027,217.6 94.0215149,216.8864 94.5539501,215.7696 L12 [...] + </g> +</svg> \ No newline at end of file diff --git a/website/static/img/integrations/azurefunctions.svg b/website/static/img/integrations/azurefunctions.svg new file mode 100644 index 00000000000..6c0d5a7a1cb --- /dev/null +++ b/website/static/img/integrations/azurefunctions.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient id="azure-original-a" x1="60.919" y1="9.602" x2="18.667" y2="134.423" gradientUnits="userSpaceOnUse"><stop stop-color="#114A8B"/><stop offset="1" stop-color="#0669BC"/></linearGradient><linearGradient id="azure-original-b" x1="74.117" y1="67.772" x2="64.344" y2="71.076" gradientUnits="userSpaceOnUse"><stop stop-opacity=".3"/><stop offset=".071" stop-opacity=".2"/><stop offset=".321" stop-opacity=".1"/><st [...] diff --git a/website/static/img/integrations/brotli.svg b/website/static/img/integrations/brotli.svg new file mode 100644 index 00000000000..ed5241f8ba5 --- /dev/null +++ b/website/static/img/integrations/brotli.svg @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="256px" height="256px" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid"> + <g> + <path d="M94.8793826,251.607827 C26.6126647,233.315815 -13.899839,163.1461 4.39217292,94.8793826 C22.6841848,26.6126647 92.8538996,-13.899839 161.120617,4.39217292 C229.387335,22.6841848 269.899839,92.8538996 251.607827,161.120617 C233.315815,229.387335 163.1461,269.899839 94.8793826,251.607827 Z" fill="#EEAA33"></path> + <path d="M101.606901,226.500386 C88.0068357,222.85626 88.7983974,175.801986 103.374903,121.401725 C117.951409,67.001464 140.793034,25.8554871 154.393099,29.4996137 C167.993164,33.1437402 167.201603,80.1980135 152.625097,134.598275 C138.048591,188.998536 115.206966,230.144513 101.606901,226.500386 Z" fill="#FFFFFF"></path> + <path d="M176.366192,193.74588 C169.566159,191.923817 169.96194,168.39668 177.250193,141.196549 C184.538446,113.996419 195.959258,93.4234304 202.759291,95.2454937 C209.559324,97.0675569 209.163543,120.594694 201.87529,147.794824 C194.587037,174.994955 183.166225,195.567943 176.366192,193.74588 Z" fill="#FFFFFF"></path> + <path d="M53.2407091,160.754506 C46.4406764,158.932443 46.8364572,135.405306 54.1247102,108.205176 C61.4129633,81.0050452 72.8337754,60.4320567 79.633808,62.25412 C86.4338407,64.0761832 86.0380599,87.6033199 78.7498068,114.803451 C71.4615538,142.003581 60.0407417,162.57657 53.2407091,160.754506 Z" fill="#FFFFFF"></path> + </g> +</svg> diff --git a/website/static/img/integrations/dubbo.svg b/website/static/img/integrations/dubbo.svg new file mode 100644 index 00000000000..4b107e0ffee --- /dev/null +++ b/website/static/img/integrations/dubbo.svg @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54" version="1.1"> + <title id="title19">DUBBO LOGO</title> + <path class="cls-1" + d="M68.46,50.38c0,14.06,11.39,22.11,25.45,22.11s25.45-8.05,25.45-22.11V7.25H68.46Zm21.24-28h8.6V31H89.7Zm0,22.25h8.6v8.6H89.7ZM33.24,7.25H4.06v64H33.24c10.95,0,19.3-7.18,23.29-17.15a45.12,45.12,0,0,0,2.38-14.87A45.12,45.12,0,0,0,56.53,24.4C52.84,14.62,44.19,7.25,33.24,7.25Zm.43,14.63H30.34a3.44,3.44,0,0,0-3.44,3.44V53.23a3.44,3.44,0,0,0,3.44,3.44h3.33v4.63h-8.3a6.87,6.87,0,0,1-6.87-6.87V24.12a6.87,6.87,0,0,1,6.87-6.87h8.3ZM285.51,6.06c-17.05,0-30.88,10.28-30.88,33.21s13.83,33.2 [...] + style="fill:#2C3E50;fill-opacity:1"/> +</svg> diff --git a/website/static/img/integrations/graphql.svg b/website/static/img/integrations/graphql.svg new file mode 100644 index 00000000000..3265b71859a --- /dev/null +++ b/website/static/img/integrations/graphql.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><g fill="#E434AA"><path d="M18.39 96.852l-4.6-2.657L65.04 5.434l4.597 2.656zm0 0"/><path d="M12.734 87.105H115.23v5.31H12.734zm0 0"/><path d="M66.031 119.688L14.766 90.09l2.656-4.602 51.266 29.602zm0 0M110.566 42.543L59.301 12.941l2.656-4.597 51.266 29.597zm0 0"/><path d="M17.434 42.523l-2.657-4.601 51.27-29.598 2.656 4.598zm0 0"/><path d="M109.621 96.852L58.375 8.09l4.598-2.656 51.25 88.761zm0 0M16.8 34.398h5.313v59.204h-5.31 [...] \ No newline at end of file diff --git a/website/static/img/integrations/grpc.svg b/website/static/img/integrations/grpc.svg new file mode 100644 index 00000000000..02448e678a8 --- /dev/null +++ b/website/static/img/integrations/grpc.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="-3.78 101.47 365.56 156.81"><defs><clipPath id="clip-path"><path d="M10.448 115.797h34.468v34.468H10.448z" class="cls-1" transform="rotate(-45.213 27.682 133.032)"/></clipPath><clipPath id="clip-path-2"><path d="M84.176 122.635h20.218v20.218H84.176z" class="cls-1" transform="rotate(-45.213 94.285 132.743)"/></clipPath><style>.cls-1{fill:none}.cls-2{fill:#244b5a}.cls-4{fill:#75caca}.cls-5{fill:#74cbca}.cls-6{fill:#73cbca}.cls-7{f [...] \ No newline at end of file diff --git a/website/static/img/integrations/kafka.svg b/website/static/img/integrations/kafka.svg new file mode 100644 index 00000000000..29836cf0fcc --- /dev/null +++ b/website/static/img/integrations/kafka.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path d="M86.758 70.89c-4.992 0-9.465 2.208-12.528 5.68l-7.851-5.547a21.275 21.275 0 001.312-7.32c0-2.531-.46-4.95-1.27-7.203l7.837-5.488c3.062 3.457 7.523 5.652 12.5 5.652 9.207 0 16.703-7.48 16.703-16.672 0-9.195-7.496-16.672-16.703-16.672-9.211 0-16.707 7.477-16.707 16.672 0 1.645.25 3.23.699 4.735l-7.84 5.488a21.578 21.578 0 00-13.36-7.746v-9.43c7.567-1.586 13.27-8.293 13.27-16.312C62.82 7.53 55.324.055 46.117.055c-9.21 0- [...] diff --git a/website/static/img/integrations/mqtt.svg b/website/static/img/integrations/mqtt.svg new file mode 100644 index 00000000000..7180c4d5c88 --- /dev/null +++ b/website/static/img/integrations/mqtt.svg @@ -0,0 +1 @@ +<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>MQTT</title><path d="M10.657 23.994h-9.45A1.212 1.212 0 0 1 0 22.788v-9.18h.071c5.784 0 10.504 4.65 10.586 10.386Zm7.606 0h-4.045C14.135 16.246 7.795 9.977 0 9.942V6.038h.071c9.983 0 18.121 8.044 18.192 17.956Zm4.53 0h-.97C21.754 12.071 11.995 2.407 0 2.372v-1.16C0 .55.544.006 1.207.006h7.64C15.733 2.49 21.257 7.789 24 14.508v8.291c0 .663-.544 1.195-1.207 1.195ZM16.713.006h6.092A1.19 1.19 0 0 1 24 1.2v5.914c-.9 [...] \ No newline at end of file diff --git a/website/static/img/integrations/opa.svg b/website/static/img/integrations/opa.svg new file mode 100644 index 00000000000..73f873b41e3 --- /dev/null +++ b/website/static/img/integrations/opa.svg @@ -0,0 +1 @@ +<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M52.5 16.917c0-4.667-8.75-15.167-9.333-15.75 2.098 9.444 1.837 8.034 2.188 11.05.093.795.132 1.62-.186 2.355-1.457 3.365-6.67 5.26-6.67 5.26l8.166 7S52.5 21 52.5 16.918zm-49 0c0-4.667 8.75-15.167 9.333-15.75-2.098 9.444-1.838 8.034-2.188 11.05-.093.795-.132 1.62.186 2.355 1.457 3.365 6.67 5.26 6.67 5.26l-8.166 7S3.5 21 3.5 16.918z" fill="#BFBFBF"/><path d="M28 12.25c9.144 0 15.784 6.42 [...] \ No newline at end of file diff --git a/website/static/img/integrations/openapi.svg b/website/static/img/integrations/openapi.svg new file mode 100644 index 00000000000..8920671852f --- /dev/null +++ b/website/static/img/integrations/openapi.svg @@ -0,0 +1 @@ +<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>OpenAPI Initiative</title><path d="M21.039 0a2.959 2.959 0 00-2.65 4.274l-6.447 6.447a2.96 2.96 0 101.335 1.336l6.447-6.447A2.959 2.959 0 1021.04 0zM10.628 2.745c-.072 0-.143.003-.214.004-.072.002-.143.002-.215.005-.447.018-.893.064-1.335.138l-.03.005-.185.033-.105.02a7.718 7.718 0 00-.289.062l-.032.008a10.69 10.69 0 00-2.55.95l-.155.089c-.063.034-.125.07-.187.105-.046.027-.093.051-.14.079H5.19l-.01.005-.036.02 [...] \ No newline at end of file diff --git a/website/static/img/integrations/openfunction.svg b/website/static/img/integrations/openfunction.svg new file mode 100644 index 00000000000..af744252131 --- /dev/null +++ b/website/static/img/integrations/openfunction.svg @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'> +<svg enable-background="new 0 0 512 512" version="1.1" viewBox="0 0 512 512" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> <image width="512" height="512" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAIGNIUk0AAHomAACAhAAA+gAAAIDo AAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAAHdElNRQfmBQILIhNBef3b AAAAXnRFWHRSYXcgcHJvZmlsZSB0eXBlIGlwdGMACmlwdGMKICAgICAgMjgKMzg0MjQ5NGQwNDA0 MDAwMDAwMDAwMDBmMWMwMjZlMDAwMzUyNDY0NzFjMDIwMDAwMDIwMDA0MDAKYJo9ng [...] +</svg> diff --git a/website/static/img/integrations/openwhisk.svg b/website/static/img/integrations/openwhisk.svg new file mode 100644 index 00000000000..08abfd945cc --- /dev/null +++ b/website/static/img/integrations/openwhisk.svg @@ -0,0 +1,1832 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="2.4221382in" + height="1.5887017in" + viewBox="0 0 465.05054 305.03073" + version="1.1" + id="svg4829" + sodipodi:docname="apache-openwhisk-logo-only.svg" + inkscape:version="0.92.2 5c3e80d, 2017-08-06" + inkscape:export-filename="/Users/Matt/openwhisk/release/openwhisk-website/images/logo/apache-openwhisk-logo-only.png" + inkscape:export-xdpi="154.69" + inkscape:export-ydpi="154.69"> + <metadata + id="metadata4833"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>logo/apache-openwhisk</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1571" + inkscape:window-height="896" + id="namedview4831" + showgrid="false" + showguides="true" + inkscape:zoom="4.4782375" + inkscape:cx="116.26263" + inkscape:cy="85.189766" + inkscape:window-x="51" + inkscape:window-y="53" + inkscape:window-maximized="0" + inkscape:current-layer="svg4829" + inkscape:pagecheckerboard="true" + borderlayer="false" + viewbox-width="116.3" + viewbox-height="21" + scale-x="1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + units="in"> + <inkscape:grid + type="xygrid" + id="grid4835" + originx="77.361511" + originy="-10.216809" /> + </sodipodi:namedview> + <!-- Generator: Sketch 41.2 (35397) - http://www.bohemiancoding.com/sketch --> + <title + id="title4812">logo/apache-openwhisk</title> + <desc + id="desc4814">Created with Sketch.</desc> + <defs + id="defs4816"> + <linearGradient + id="linearGradient2544" + osb:paint="solid"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop2542" /> + </linearGradient> + <color-profile + name="Adobe-RGB--1998-" + xlink:href="/System/Library/ColorSync/Profiles/AdobeRGB1998.icc" + id="color-profile3144" /> + <filter + style="color-interpolation-filters:sRGB" + inkscape:label="Drop Shadow" + id="filter4902"> + <feFlood + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + id="feFlood4892" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite4894" /> + <feGaussianBlur + in="composite1" + stdDeviation="2" + result="blur" + id="feGaussianBlur4896" /> + <feOffset + dx="6" + dy="6" + result="offset" + id="feOffset4898" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="fbSourceGraphic" + id="feComposite4900" /> + <feColorMatrix + result="fbSourceGraphicAlpha" + in="fbSourceGraphic" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + id="feColorMatrix4988" /> + <feFlood + id="feFlood4990" + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + in="fbSourceGraphic" /> + <feComposite + in2="fbSourceGraphic" + id="feComposite4992" + in="flood" + operator="in" + result="composite1" /> + <feGaussianBlur + id="feGaussianBlur4994" + in="composite1" + stdDeviation="1" + result="blur" /> + <feOffset + id="feOffset4996" + dx="6" + dy="6" + result="offset" /> + <feComposite + in2="offset" + id="feComposite4998" + in="fbSourceGraphic" + operator="over" + result="fbSourceGraphic" /> + <feColorMatrix + result="fbSourceGraphicAlpha" + in="fbSourceGraphic" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + id="feColorMatrix5000" /> + <feFlood + id="feFlood5002" + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + in="fbSourceGraphic" /> + <feComposite + in2="fbSourceGraphic" + id="feComposite5004" + in="flood" + operator="in" + result="composite1" /> + <feGaussianBlur + id="feGaussianBlur5006" + in="composite1" + stdDeviation="1" + result="blur" /> + <feOffset + id="feOffset5008" + dx="6" + dy="6" + result="offset" /> + <feComposite + in2="offset" + id="feComposite5010" + in="fbSourceGraphic" + operator="over" + result="fbSourceGraphic" /> + <feColorMatrix + result="fbSourceGraphicAlpha" + in="fbSourceGraphic" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + id="feColorMatrix5012" /> + <feFlood + id="feFlood5014" + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + in="fbSourceGraphic" /> + <feComposite + in2="fbSourceGraphic" + id="feComposite5016" + in="flood" + operator="in" + result="composite1" /> + <feGaussianBlur + id="feGaussianBlur5018" + in="composite1" + stdDeviation="1" + result="blur" /> + <feOffset + id="feOffset5020" + dx="6" + dy="6" + result="offset" /> + <feComposite + in2="offset" + id="feComposite5022" + in="fbSourceGraphic" + operator="over" + result="fbSourceGraphic" /> + <feColorMatrix + result="fbSourceGraphicAlpha" + in="fbSourceGraphic" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + id="feColorMatrix5024" /> + <feFlood + id="feFlood5026" + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + in="fbSourceGraphic" /> + <feComposite + in2="fbSourceGraphic" + id="feComposite5028" + in="flood" + operator="in" + result="composite1" /> + <feGaussianBlur + id="feGaussianBlur5030" + in="composite1" + stdDeviation="1" + result="blur" /> + <feOffset + id="feOffset5032" + dx="6" + dy="6" + result="offset" /> + <feComposite + in2="offset" + id="feComposite5034" + in="fbSourceGraphic" + operator="over" + result="fbSourceGraphic" /> + <feColorMatrix + result="fbSourceGraphicAlpha" + in="fbSourceGraphic" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + id="feColorMatrix5036" /> + <feFlood + id="feFlood5038" + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + in="fbSourceGraphic" /> + <feComposite + in2="fbSourceGraphic" + id="feComposite5040" + in="flood" + operator="in" + result="composite1" /> + <feGaussianBlur + id="feGaussianBlur5042" + in="composite1" + stdDeviation="1" + result="blur" /> + <feOffset + id="feOffset5044" + dx="6" + dy="6" + result="offset" /> + <feComposite + in2="offset" + id="feComposite5046" + in="fbSourceGraphic" + operator="over" + result="composite2" /> + </filter> + <filter + style="color-interpolation-filters:sRGB" + inkscape:label="Drop Shadow" + id="filter569"> + <feFlood + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + id="feFlood559" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite561" /> + <feGaussianBlur + in="composite1" + stdDeviation="1.38778e-16" + result="blur" + id="feGaussianBlur563" /> + <feOffset + dx="0.2" + dy="0.2" + result="offset" + id="feOffset565" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite567" /> + </filter> + <filter + style="color-interpolation-filters:sRGB" + inkscape:label="Drop Shadow" + id="filter895"> + <feFlood + flood-opacity="0.498039" + flood-color="rgb(255,255,255)" + result="flood" + id="feFlood885" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite887" /> + <feGaussianBlur + in="composite1" + stdDeviation="1.38778e-16" + result="blur" + id="feGaussianBlur889" /> + <feOffset + dx="-0.2" + dy="-2.77556e-17" + result="offset" + id="feOffset891" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite893" /> + </filter> + <filter + style="color-interpolation-filters:sRGB" + inkscape:label="Drop Shadow" + id="filter946"> + <feFlood + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + id="feFlood936" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite938" /> + <feGaussianBlur + in="composite1" + stdDeviation="1.38778e-16" + result="blur" + id="feGaussianBlur940" /> + <feOffset + dx="-0.2" + dy="-2.77556e-17" + result="offset" + id="feOffset942" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite944" /> + </filter> + <filter + style="color-interpolation-filters:sRGB" + inkscape:label="Drop Shadow" + id="filter1214"> + <feFlood + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + id="feFlood1204" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite1206" /> + <feGaussianBlur + in="composite1" + stdDeviation="1.38778e-16" + result="blur" + id="feGaussianBlur1208" /> + <feOffset + dx="-0.1" + dy="0.1" + result="offset" + id="feOffset1210" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite1212" /> + </filter> + <filter + style="color-interpolation-filters:sRGB" + inkscape:label="Drop Shadow" + id="filter1437"> + <feFlood + flood-opacity="0.498039" + flood-color="rgb(255,255,255)" + result="flood" + id="feFlood1427" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite1429" /> + <feGaussianBlur + in="composite1" + stdDeviation="1.38778e-16" + result="blur" + id="feGaussianBlur1431" /> + <feOffset + dx="0.1" + dy="0.1" + result="offset" + id="feOffset1433" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite1435" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2252"> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.93708497;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;paint-order:fill markers stroke" + id="rect2254" + width="15.335663" + height="17.757502" + x="15.284907" + y="-0.22932915" + ry="0.37528363" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2270"> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" + id="rect2272" + width="11.395495" + height="9.0284157" + x="9.1991491" + y="-0.064093582" + ry="0.35968757" /> + </clipPath> + <filter + style="color-interpolation-filters:sRGB" + inkscape:label="Drop Shadow" + id="filter2408"> + <feFlood + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + id="feFlood2398" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite2400" /> + <feGaussianBlur + in="composite1" + stdDeviation="1.38778e-16" + result="blur" + id="feGaussianBlur2402" /> + <feOffset + dx="-0.1" + dy="0.1" + result="offset" + id="feOffset2404" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite2406" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2418"> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" + id="rect2420" + width="11.568389" + height="8.9488811" + x="10.364887" + y="-0.055517841" + ry="0.37048745" /> + </clipPath> + <filter + style="color-interpolation-filters:sRGB" + inkscape:label="Drop Shadow" + id="filter2530"> + <feFlood + flood-opacity="0.498039" + flood-color="rgb(255,255,255)" + result="flood" + id="feFlood2520" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite2522" /> + <feGaussianBlur + in="composite1" + stdDeviation="1.38778e-16" + result="blur" + id="feGaussianBlur2524" /> + <feOffset + dx="-0.1" + dy="0" + result="offset" + id="feOffset2526" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite2528" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2538"> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" + id="rect2540" + width="14.630958" + height="17.226913" + x="-0.16488507" + y="2.4576325" + ry="0.37048745" /> + </clipPath> + <color-profile + id="color-profile4516" + xlink:href="/System/Library/ColorSync/Profiles/AdobeRGB1998.icc" + name="Adobe-RGB--1998-" /> + <filter + id="filter4902-83" + inkscape:label="Drop Shadow" + style="color-interpolation-filters:sRGB"> + <feFlood + id="feFlood4892-9" + result="flood" + flood-color="rgb(0,0,0)" + flood-opacity="0.498039" /> + <feComposite + id="feComposite4894-0" + result="composite1" + operator="in" + in2="SourceGraphic" + in="flood" /> + <feGaussianBlur + id="feGaussianBlur4896-5" + result="blur" + stdDeviation="2" + in="composite1" /> + <feOffset + id="feOffset4898-2" + result="offset" + dy="6" + dx="6" /> + <feComposite + id="feComposite4900-27" + result="fbSourceGraphic" + operator="over" + in2="offset" + in="SourceGraphic" /> + <feColorMatrix + id="feColorMatrix4988-3" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + in="fbSourceGraphic" + result="fbSourceGraphicAlpha" /> + <feFlood + in="fbSourceGraphic" + result="flood" + flood-color="rgb(0,0,0)" + flood-opacity="0.498039" + id="feFlood4990-79" /> + <feComposite + result="composite1" + operator="in" + in="flood" + id="feComposite4992-0" + in2="fbSourceGraphic" /> + <feGaussianBlur + result="blur" + stdDeviation="1" + in="composite1" + id="feGaussianBlur4994-2" /> + <feOffset + result="offset" + dy="6" + dx="6" + id="feOffset4996-3" /> + <feComposite + result="fbSourceGraphic" + operator="over" + in="fbSourceGraphic" + id="feComposite4998-9" + in2="offset" /> + <feColorMatrix + id="feColorMatrix5000-9" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + in="fbSourceGraphic" + result="fbSourceGraphicAlpha" /> + <feFlood + in="fbSourceGraphic" + result="flood" + flood-color="rgb(0,0,0)" + flood-opacity="0.498039" + id="feFlood5002-7" /> + <feComposite + result="composite1" + operator="in" + in="flood" + id="feComposite5004-0" + in2="fbSourceGraphic" /> + <feGaussianBlur + result="blur" + stdDeviation="1" + in="composite1" + id="feGaussianBlur5006-3" /> + <feOffset + result="offset" + dy="6" + dx="6" + id="feOffset5008-9" /> + <feComposite + result="fbSourceGraphic" + operator="over" + in="fbSourceGraphic" + id="feComposite5010-8" + in2="offset" /> + <feColorMatrix + id="feColorMatrix5012-6" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + in="fbSourceGraphic" + result="fbSourceGraphicAlpha" /> + <feFlood + in="fbSourceGraphic" + result="flood" + flood-color="rgb(0,0,0)" + flood-opacity="0.498039" + id="feFlood5014-5" /> + <feComposite + result="composite1" + operator="in" + in="flood" + id="feComposite5016-7" + in2="fbSourceGraphic" /> + <feGaussianBlur + result="blur" + stdDeviation="1" + in="composite1" + id="feGaussianBlur5018-62" /> + <feOffset + result="offset" + dy="6" + dx="6" + id="feOffset5020-7" /> + <feComposite + result="fbSourceGraphic" + operator="over" + in="fbSourceGraphic" + id="feComposite5022-0" + in2="offset" /> + <feColorMatrix + id="feColorMatrix5024-3" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + in="fbSourceGraphic" + result="fbSourceGraphicAlpha" /> + <feFlood + in="fbSourceGraphic" + result="flood" + flood-color="rgb(0,0,0)" + flood-opacity="0.498039" + id="feFlood5026-9" /> + <feComposite + result="composite1" + operator="in" + in="flood" + id="feComposite5028-9" + in2="fbSourceGraphic" /> + <feGaussianBlur + result="blur" + stdDeviation="1" + in="composite1" + id="feGaussianBlur5030-9" /> + <feOffset + result="offset" + dy="6" + dx="6" + id="feOffset5032-1" /> + <feComposite + result="fbSourceGraphic" + operator="over" + in="fbSourceGraphic" + id="feComposite5034-7" + in2="offset" /> + <feColorMatrix + id="feColorMatrix5036-2" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + in="fbSourceGraphic" + result="fbSourceGraphicAlpha" /> + <feFlood + in="fbSourceGraphic" + result="flood" + flood-color="rgb(0,0,0)" + flood-opacity="0.498039" + id="feFlood5038-3" /> + <feComposite + result="composite1" + operator="in" + in="flood" + id="feComposite5040-6" + in2="fbSourceGraphic" /> + <feGaussianBlur + result="blur" + stdDeviation="1" + in="composite1" + id="feGaussianBlur5042-5" /> + <feOffset + result="offset" + dy="6" + dx="6" + id="feOffset5044-5" /> + <feComposite + result="composite2" + operator="over" + in="fbSourceGraphic" + id="feComposite5046-8" + in2="offset" /> + </filter> + <filter + id="filter4342" + inkscape:label="Drop Shadow" + style="color-interpolation-filters:sRGB"> + <feFlood + id="feFlood4332" + result="flood" + flood-color="rgb(255,255,255)" + flood-opacity="0.933333" /> + <feComposite + id="feComposite4334" + result="composite1" + operator="in" + in2="SourceGraphic" + in="flood" /> + <feGaussianBlur + id="feGaussianBlur4336" + result="blur" + stdDeviation="0.2" + in="composite1" /> + <feOffset + id="feOffset4338" + result="offset" + dy="1.38778e-16" + dx="1.38778e-16" /> + <feComposite + id="feComposite4340" + result="fbSourceGraphic" + operator="over" + in2="offset" + in="SourceGraphic" /> + <feColorMatrix + id="feColorMatrix4344" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + in="fbSourceGraphic" + result="fbSourceGraphicAlpha" /> + <feFlood + in="fbSourceGraphic" + result="flood" + flood-color="rgb(255,255,255)" + flood-opacity="0.933333" + id="feFlood4346" /> + <feComposite + result="composite1" + operator="in" + in="flood" + id="feComposite4348" + in2="fbSourceGraphic" /> + <feGaussianBlur + result="blur" + stdDeviation="0.2" + in="composite1" + id="feGaussianBlur4350" /> + <feOffset + result="offset" + dy="1.38778e-16" + dx="1.38778e-16" + id="feOffset4352" /> + <feComposite + result="composite2" + operator="over" + in="fbSourceGraphic" + id="feComposite4354" + in2="offset" /> + </filter> + <color-profile + name="Adobe-RGB--1998-" + xlink:href="/System/Library/ColorSync/Profiles/AdobeRGB1998.icc" + id="color-profile4566" /> + <filter + style="color-interpolation-filters:sRGB" + inkscape:label="Drop Shadow" + id="filter4902-8"> + <feFlood + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + id="feFlood4892-3" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite4894-9" /> + <feGaussianBlur + in="composite1" + stdDeviation="2" + result="blur" + id="feGaussianBlur4896-0" /> + <feOffset + dx="6" + dy="6" + result="offset" + id="feOffset4898-5" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="fbSourceGraphic" + id="feComposite4900-2" /> + <feColorMatrix + result="fbSourceGraphicAlpha" + in="fbSourceGraphic" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + id="feColorMatrix4988-2" /> + <feFlood + id="feFlood4990-7" + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + in="fbSourceGraphic" /> + <feComposite + in2="fbSourceGraphic" + id="feComposite4992-3" + in="flood" + operator="in" + result="composite1" /> + <feGaussianBlur + id="feGaussianBlur4994-7" + in="composite1" + stdDeviation="1" + result="blur" /> + <feOffset + id="feOffset4996-9" + dx="6" + dy="6" + result="offset" /> + <feComposite + in2="offset" + id="feComposite4998-0" + in="fbSourceGraphic" + operator="over" + result="fbSourceGraphic" /> + <feColorMatrix + result="fbSourceGraphicAlpha" + in="fbSourceGraphic" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + id="feColorMatrix5000-2" /> + <feFlood + id="feFlood5002-3" + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + in="fbSourceGraphic" /> + <feComposite + in2="fbSourceGraphic" + id="feComposite5004-9" + in="flood" + operator="in" + result="composite1" /> + <feGaussianBlur + id="feGaussianBlur5006-9" + in="composite1" + stdDeviation="1" + result="blur" /> + <feOffset + id="feOffset5008-7" + dx="6" + dy="6" + result="offset" /> + <feComposite + in2="offset" + id="feComposite5010-0" + in="fbSourceGraphic" + operator="over" + result="fbSourceGraphic" /> + <feColorMatrix + result="fbSourceGraphicAlpha" + in="fbSourceGraphic" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + id="feColorMatrix5012-3" /> + <feFlood + id="feFlood5014-9" + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + in="fbSourceGraphic" /> + <feComposite + in2="fbSourceGraphic" + id="feComposite5016-8" + in="flood" + operator="in" + result="composite1" /> + <feGaussianBlur + id="feGaussianBlur5018-6" + in="composite1" + stdDeviation="1" + result="blur" /> + <feOffset + id="feOffset5020-5" + dx="6" + dy="6" + result="offset" /> + <feComposite + in2="offset" + id="feComposite5022-7" + in="fbSourceGraphic" + operator="over" + result="fbSourceGraphic" /> + <feColorMatrix + result="fbSourceGraphicAlpha" + in="fbSourceGraphic" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + id="feColorMatrix5024-6" /> + <feFlood + id="feFlood5026-2" + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + in="fbSourceGraphic" /> + <feComposite + in2="fbSourceGraphic" + id="feComposite5028-7" + in="flood" + operator="in" + result="composite1" /> + <feGaussianBlur + id="feGaussianBlur5030-0" + in="composite1" + stdDeviation="1" + result="blur" /> + <feOffset + id="feOffset5032-3" + dx="6" + dy="6" + result="offset" /> + <feComposite + in2="offset" + id="feComposite5034-9" + in="fbSourceGraphic" + operator="over" + result="fbSourceGraphic" /> + <feColorMatrix + result="fbSourceGraphicAlpha" + in="fbSourceGraphic" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + id="feColorMatrix5036-9" /> + <feFlood + id="feFlood5038-9" + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + in="fbSourceGraphic" /> + <feComposite + in2="fbSourceGraphic" + id="feComposite5040-1" + in="flood" + operator="in" + result="composite1" /> + <feGaussianBlur + id="feGaussianBlur5042-7" + in="composite1" + stdDeviation="1" + result="blur" /> + <feOffset + id="feOffset5044-2" + dx="6" + dy="6" + result="offset" /> + <feComposite + in2="offset" + id="feComposite5046-3" + in="fbSourceGraphic" + operator="over" + result="composite2" /> + </filter> + <filter + style="color-interpolation-filters:sRGB" + inkscape:label="Drop Shadow" + id="filter569-4"> + <feFlood + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + id="feFlood559-7" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite561-1" /> + <feGaussianBlur + in="composite1" + stdDeviation="1.38778e-16" + result="blur" + id="feGaussianBlur563-3" /> + <feOffset + dx="0.2" + dy="0.2" + result="offset" + id="feOffset565-8" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite567-4" /> + </filter> + <filter + style="color-interpolation-filters:sRGB" + inkscape:label="Drop Shadow" + id="filter895-8"> + <feFlood + flood-opacity="0.498039" + flood-color="rgb(255,255,255)" + result="flood" + id="feFlood885-0" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite887-4" /> + <feGaussianBlur + in="composite1" + stdDeviation="1.38778e-16" + result="blur" + id="feGaussianBlur889-6" /> + <feOffset + dx="-0.2" + dy="-2.77556e-17" + result="offset" + id="feOffset891-0" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite893-3" /> + </filter> + <filter + style="color-interpolation-filters:sRGB" + inkscape:label="Drop Shadow" + id="filter946-2"> + <feFlood + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + id="feFlood936-6" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite938-9" /> + <feGaussianBlur + in="composite1" + stdDeviation="1.38778e-16" + result="blur" + id="feGaussianBlur940-4" /> + <feOffset + dx="-0.2" + dy="-2.77556e-17" + result="offset" + id="feOffset942-1" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite944-3" /> + </filter> + <filter + style="color-interpolation-filters:sRGB" + inkscape:label="Drop Shadow" + id="filter1214-7"> + <feFlood + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + id="feFlood1204-8" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite1206-8" /> + <feGaussianBlur + in="composite1" + stdDeviation="1.38778e-16" + result="blur" + id="feGaussianBlur1208-3" /> + <feOffset + dx="-0.1" + dy="0.1" + result="offset" + id="feOffset1210-8" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite1212-1" /> + </filter> + <filter + style="color-interpolation-filters:sRGB" + inkscape:label="Drop Shadow" + id="filter1437-5"> + <feFlood + flood-opacity="0.498039" + flood-color="rgb(255,255,255)" + result="flood" + id="feFlood1427-3" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite1429-5" /> + <feGaussianBlur + in="composite1" + stdDeviation="1.38778e-16" + result="blur" + id="feGaussianBlur1431-4" /> + <feOffset + dx="0.1" + dy="0.1" + result="offset" + id="feOffset1433-3" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite1435-6" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2252-5"> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.93708497;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;paint-order:fill markers stroke" + id="rect2254-9" + width="15.335663" + height="17.757502" + x="15.284907" + y="-0.22932915" + ry="0.37528363" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2270-5"> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" + id="rect2272-4" + width="11.395495" + height="9.0284157" + x="9.1991491" + y="-0.064093582" + ry="0.35968757" /> + </clipPath> + <filter + style="color-interpolation-filters:sRGB" + inkscape:label="Drop Shadow" + id="filter2408-9"> + <feFlood + flood-opacity="0.498039" + flood-color="rgb(0,0,0)" + result="flood" + id="feFlood2398-1" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite2400-7" /> + <feGaussianBlur + in="composite1" + stdDeviation="1.38778e-16" + result="blur" + id="feGaussianBlur2402-5" /> + <feOffset + dx="-0.1" + dy="0.1" + result="offset" + id="feOffset2404-5" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite2406-4" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2418-1"> + <rect + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" + id="rect2420-8" + width="11.568389" + height="8.9488811" + x="10.364887" + y="-0.055517841" + ry="0.37048745" /> + </clipPath> + <filter + style="color-interpolation-filters:sRGB" + inkscape:label="Drop Shadow" + id="filter2530-8"> + <feFlood + flood-opacity="0.498039" + flood-color="rgb(255,255,255)" + result="flood" + id="feFlood2520-3" /> + <feComposite + in="flood" + in2="SourceGraphic" + operator="in" + result="composite1" + id="feComposite2522-5" /> + <feGaussianBlur + in="composite1" + stdDeviation="1.38778e-16" + result="blur" + id="feGaussianBlur2524-2" /> + <feOffset + dx="-0.1" + dy="0" + result="offset" + id="feOffset2526-2" /> + <feComposite + in="SourceGraphic" + in2="offset" + operator="over" + result="composite2" + id="feComposite2528-6" /> + </filter> + <color-profile + id="color-profile4940" + xlink:href="/System/Library/ColorSync/Profiles/AdobeRGB1998.icc" + name="Adobe-RGB--1998-" /> + <filter + id="filter4902-9" + inkscape:label="Drop Shadow" + style="color-interpolation-filters:sRGB"> + <feFlood + id="feFlood4892-1" + result="flood" + flood-color="rgb(0,0,0)" + flood-opacity="0.498039" /> + <feComposite + id="feComposite4894-5" + result="composite1" + operator="in" + in2="SourceGraphic" + in="flood" /> + <feGaussianBlur + id="feGaussianBlur4896-55" + result="blur" + stdDeviation="2" + in="composite1" /> + <feOffset + id="feOffset4898-8" + result="offset" + dy="6" + dx="6" /> + <feComposite + id="feComposite4900-29" + result="fbSourceGraphic" + operator="over" + in2="offset" + in="SourceGraphic" /> + <feColorMatrix + id="feColorMatrix4988-8" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + in="fbSourceGraphic" + result="fbSourceGraphicAlpha" /> + <feFlood + in="fbSourceGraphic" + result="flood" + flood-color="rgb(0,0,0)" + flood-opacity="0.498039" + id="feFlood4990-2" /> + <feComposite + result="composite1" + operator="in" + in="flood" + id="feComposite4992-07" + in2="fbSourceGraphic" /> + <feGaussianBlur + result="blur" + stdDeviation="1" + in="composite1" + id="feGaussianBlur4994-4" /> + <feOffset + result="offset" + dy="6" + dx="6" + id="feOffset4996-8" /> + <feComposite + result="fbSourceGraphic" + operator="over" + in="fbSourceGraphic" + id="feComposite4998-5" + in2="offset" /> + <feColorMatrix + id="feColorMatrix5000-8" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + in="fbSourceGraphic" + result="fbSourceGraphicAlpha" /> + <feFlood + in="fbSourceGraphic" + result="flood" + flood-color="rgb(0,0,0)" + flood-opacity="0.498039" + id="feFlood5002-30" /> + <feComposite + result="composite1" + operator="in" + in="flood" + id="feComposite5004-6" + in2="fbSourceGraphic" /> + <feGaussianBlur + result="blur" + stdDeviation="1" + in="composite1" + id="feGaussianBlur5006-2" /> + <feOffset + result="offset" + dy="6" + dx="6" + id="feOffset5008-2" /> + <feComposite + result="fbSourceGraphic" + operator="over" + in="fbSourceGraphic" + id="feComposite5010-5" + in2="offset" /> + <feColorMatrix + id="feColorMatrix5012-2" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + in="fbSourceGraphic" + result="fbSourceGraphicAlpha" /> + <feFlood + in="fbSourceGraphic" + result="flood" + flood-color="rgb(0,0,0)" + flood-opacity="0.498039" + id="feFlood5014-2" /> + <feComposite + result="composite1" + operator="in" + in="flood" + id="feComposite5016-71" + in2="fbSourceGraphic" /> + <feGaussianBlur + result="blur" + stdDeviation="1" + in="composite1" + id="feGaussianBlur5018-5" /> + <feOffset + result="offset" + dy="6" + dx="6" + id="feOffset5020-2" /> + <feComposite + result="fbSourceGraphic" + operator="over" + in="fbSourceGraphic" + id="feComposite5022-1" + in2="offset" /> + <feColorMatrix + id="feColorMatrix5024-1" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + in="fbSourceGraphic" + result="fbSourceGraphicAlpha" /> + <feFlood + in="fbSourceGraphic" + result="flood" + flood-color="rgb(0,0,0)" + flood-opacity="0.498039" + id="feFlood5026-0" /> + <feComposite + result="composite1" + operator="in" + in="flood" + id="feComposite5028-1" + in2="fbSourceGraphic" /> + <feGaussianBlur + result="blur" + stdDeviation="1" + in="composite1" + id="feGaussianBlur5030-8" /> + <feOffset + result="offset" + dy="6" + dx="6" + id="feOffset5032-7" /> + <feComposite + result="fbSourceGraphic" + operator="over" + in="fbSourceGraphic" + id="feComposite5034-6" + in2="offset" /> + <feColorMatrix + id="feColorMatrix5036-0" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + in="fbSourceGraphic" + result="fbSourceGraphicAlpha" /> + <feFlood + in="fbSourceGraphic" + result="flood" + flood-color="rgb(0,0,0)" + flood-opacity="0.498039" + id="feFlood5038-0" /> + <feComposite + result="composite1" + operator="in" + in="flood" + id="feComposite5040-9" + in2="fbSourceGraphic" /> + <feGaussianBlur + result="blur" + stdDeviation="1" + in="composite1" + id="feGaussianBlur5042-56" /> + <feOffset + result="offset" + dy="6" + dx="6" + id="feOffset5044-28" /> + <feComposite + result="composite2" + operator="over" + in="fbSourceGraphic" + id="feComposite5046-5" + in2="offset" /> + </filter> + <filter + id="filter569-9" + inkscape:label="Drop Shadow" + style="color-interpolation-filters:sRGB"> + <feFlood + id="feFlood559-4" + result="flood" + flood-color="rgb(0,0,0)" + flood-opacity="0.498039" /> + <feComposite + id="feComposite561-3" + result="composite1" + operator="in" + in2="SourceGraphic" + in="flood" /> + <feGaussianBlur + id="feGaussianBlur563-9" + result="blur" + stdDeviation="1.38778e-16" + in="composite1" /> + <feOffset + id="feOffset565-0" + result="offset" + dy="0.2" + dx="0.2" /> + <feComposite + id="feComposite567-5" + result="composite2" + operator="over" + in2="offset" + in="SourceGraphic" /> + </filter> + <filter + id="filter895-6" + inkscape:label="Drop Shadow" + style="color-interpolation-filters:sRGB"> + <feFlood + id="feFlood885-3" + result="flood" + flood-color="rgb(255,255,255)" + flood-opacity="0.498039" /> + <feComposite + id="feComposite887-6" + result="composite1" + operator="in" + in2="SourceGraphic" + in="flood" /> + <feGaussianBlur + id="feGaussianBlur889-3" + result="blur" + stdDeviation="1.38778e-16" + in="composite1" /> + <feOffset + id="feOffset891-08" + result="offset" + dy="-2.77556e-17" + dx="-0.2" /> + <feComposite + id="feComposite893-4" + result="composite2" + operator="over" + in2="offset" + in="SourceGraphic" /> + </filter> + <filter + id="filter946-0" + inkscape:label="Drop Shadow" + style="color-interpolation-filters:sRGB"> + <feFlood + id="feFlood936-4" + result="flood" + flood-color="rgb(0,0,0)" + flood-opacity="0.498039" /> + <feComposite + id="feComposite938-6" + result="composite1" + operator="in" + in2="SourceGraphic" + in="flood" /> + <feGaussianBlur + id="feGaussianBlur940-46" + result="blur" + stdDeviation="1.38778e-16" + in="composite1" /> + <feOffset + id="feOffset942-4" + result="offset" + dy="-2.77556e-17" + dx="-0.2" /> + <feComposite + id="feComposite944-38" + result="composite2" + operator="over" + in2="offset" + in="SourceGraphic" /> + </filter> + <filter + id="filter1214-4" + inkscape:label="Drop Shadow" + style="color-interpolation-filters:sRGB"> + <feFlood + id="feFlood1204-0" + result="flood" + flood-color="rgb(0,0,0)" + flood-opacity="0.498039" /> + <feComposite + id="feComposite1206-0" + result="composite1" + operator="in" + in2="SourceGraphic" + in="flood" /> + <feGaussianBlur + id="feGaussianBlur1208-9" + result="blur" + stdDeviation="1.38778e-16" + in="composite1" /> + <feOffset + id="feOffset1210-3" + result="offset" + dy="0.1" + dx="-0.1" /> + <feComposite + id="feComposite1212-7" + result="composite2" + operator="over" + in2="offset" + in="SourceGraphic" /> + </filter> + <filter + id="filter1437-57" + inkscape:label="Drop Shadow" + style="color-interpolation-filters:sRGB"> + <feFlood + id="feFlood1427-2" + result="flood" + flood-color="rgb(255,255,255)" + flood-opacity="0.498039" /> + <feComposite + id="feComposite1429-9" + result="composite1" + operator="in" + in2="SourceGraphic" + in="flood" /> + <feGaussianBlur + id="feGaussianBlur1431-7" + result="blur" + stdDeviation="1.38778e-16" + in="composite1" /> + <feOffset + id="feOffset1433-5" + result="offset" + dy="0.1" + dx="0.1" /> + <feComposite + id="feComposite1435-65" + result="composite2" + operator="over" + in2="offset" + in="SourceGraphic" /> + </filter> + <clipPath + id="clipPath2252-3" + clipPathUnits="userSpaceOnUse"> + <rect + ry="0.37528363" + y="-0.22932915" + x="15.284907" + height="17.757502" + width="15.335663" + id="rect2254-0" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.93708497;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;paint-order:fill markers stroke" /> + </clipPath> + <clipPath + id="clipPath2270-4" + clipPathUnits="userSpaceOnUse"> + <rect + ry="0.35968757" + y="-0.064093582" + x="9.1991491" + height="9.0284157" + width="11.395495" + id="rect2272-8" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" /> + </clipPath> + <filter + id="filter2408-5" + inkscape:label="Drop Shadow" + style="color-interpolation-filters:sRGB"> + <feFlood + id="feFlood2398-5" + result="flood" + flood-color="rgb(0,0,0)" + flood-opacity="0.498039" /> + <feComposite + id="feComposite2400-5" + result="composite1" + operator="in" + in2="SourceGraphic" + in="flood" /> + <feGaussianBlur + id="feGaussianBlur2402-4" + result="blur" + stdDeviation="1.38778e-16" + in="composite1" /> + <feOffset + id="feOffset2404-2" + result="offset" + dy="0.1" + dx="-0.1" /> + <feComposite + id="feComposite2406-1" + result="composite2" + operator="over" + in2="offset" + in="SourceGraphic" /> + </filter> + <clipPath + id="clipPath2418-9" + clipPathUnits="userSpaceOnUse"> + <rect + ry="0.37048745" + y="-0.055517841" + x="10.364887" + height="8.9488811" + width="11.568389" + id="rect2420-2" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" /> + </clipPath> + <filter + id="filter2530-4" + inkscape:label="Drop Shadow" + style="color-interpolation-filters:sRGB"> + <feFlood + id="feFlood2520-5" + result="flood" + flood-color="rgb(255,255,255)" + flood-opacity="0.498039" /> + <feComposite + id="feComposite2522-8" + result="composite1" + operator="in" + in2="SourceGraphic" + in="flood" /> + <feGaussianBlur + id="feGaussianBlur2524-6" + result="blur" + stdDeviation="1.38778e-16" + in="composite1" /> + <feOffset + id="feOffset2526-25" + result="offset" + dy="0" + dx="-0.1" /> + <feComposite + id="feComposite2528-1" + result="composite2" + operator="over" + in2="offset" + in="SourceGraphic" /> + </filter> + <clipPath + id="clipPath2538-3" + clipPathUnits="userSpaceOnUse"> + <rect + ry="0.37048745" + y="2.4576325" + x="-0.16488507" + height="17.226913" + width="14.630958" + id="rect2540-9" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" /> + </clipPath> + </defs> + <rect + inkscape:export-ydpi="72" + inkscape:export-xdpi="72" + inkscape:label="Website Header background - #27558f" + y="-4.6110868" + x="-3.0287452" + height="312.74371" + width="472.01105" + id="rect316" + style="display:none;fill:#27558f;fill-opacity:0.94117647;stroke:none;stroke-width:1;stroke-opacity:1" + sodipodi:insensitive="true" /> + <text + inkscape:label="TM" + id="text133" + y="18.152016" + x="437.64542" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.0028801px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:none;fill:#325c80;fill-opacity:1;stroke:none;stroke-width:1.59402001" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.0028801px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#325c80;fill-opacity:1;stroke-width:1.59402001" + y="18.152016" + x="437.64542" + id="tspan131" + sodipodi:role="line">TM</tspan></text> + <g + style="display:none;stroke-width:0.24340019" + inkscape:label="Logo Dark Background Shadow" + id="g2552-6" + transform="matrix(15.428316,0,0,15.493285,-1.5873152,-18.212558)" + sodipodi:insensitive="true"> + <path + transform="translate(0.1028831,1.175636)" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.24340019;stroke-opacity:1" + clip-path="none" + d="M 14.672649,19.788911 4.8204578,2.219221 -0.12607805,11.075757 4.7386969,19.788911 Z" + id="polygon2422-7" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccc" + inkscape:label="Dark blue Shadow" /> + </g> + <g + style="display:inline;stroke-width:0.27429447" + transform="matrix(6.3071665,0,0,5.3545025,-49.879637,-62.863546)" + id="g2788" + inkscape:label="Logo" + sodipodi:insensitive="true"> + <polygon + transform="matrix(2.4461563,0,0,2.8935059,7.9084066,11.740671)" + style="display:inline;fill:#008571;stroke-width:0.24340019" + points="15.537455,0.002953125 25.270444,17.22644 30.142665,8.6119277 25.27587,-0.00012304688 " + id="polygon99-8" + inkscape:label="Dark aquamarine" /> + <polygon + transform="matrix(2.4461563,0,0,2.8935059,7.9084066,11.740671)" + style="display:inline;fill:#6eedd8;stroke-width:0.24340019" + points="10.758253,8.6133428 20.405514,8.608776 15.537636,0.0031376953 " + id="polygon101-4" + inkscape:label="Light aquamarine" + clip-path="none" + mask="none" /> + <polygon + transform="matrix(2.4461563,0,0,2.8935059,7.9084066,11.740671)" + style="display:inline;fill:#325c80;stroke-width:0.24340019" + points="0,11.075757 4.8203765,19.687808 14.465952,19.684116 4.8258021,2.4612451 " + id="polygon103-1" + inkscape:label="Dark blue" /> + <polygon + inkscape:label="Medium blue" + id="polygon233-7" + points="14.466073,19.684547 19.291272,11.074342 9.6456963,11.077418 " + style="display:inline;fill:#5aaafa;stroke-width:0.24340019" + transform="matrix(2.4461563,0,0,2.8935059,7.9084066,11.740671)" /> + </g> +</svg> diff --git a/website/static/img/integrations/rocketmq.svg b/website/static/img/integrations/rocketmq.svg new file mode 100644 index 00000000000..d25ef2384e2 --- /dev/null +++ b/website/static/img/integrations/rocketmq.svg @@ -0,0 +1 @@ +<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Apache RocketMQ</title><path d="M11.438 23.467c-.517-.638-1.106-1.89-1.217-2.587l-.082-.511h1.835c1.435 0 1.835.036 1.835.165 0 .352-.412 1.553-.709 2.066-.333.577-1.021 1.41-1.155 1.4-.043-.004-.272-.244-.507-.533zm-4.532-4.193c-1.251-3.005-1.231-6.784.056-10.63.786-2.35 2.652-5.689 4.413-7.9L11.967 0l.422.493c.763.893 2.612 3.731 3.28 5.036 1.32 2.578 2.055 4.993 2.264 7.438.197 2.302-.176 4.837-.962 6.533l-. [...] \ No newline at end of file diff --git a/website/static/img/integrations/safeline.svg b/website/static/img/integrations/safeline.svg new file mode 100644 index 00000000000..c7c293593e6 --- /dev/null +++ b/website/static/img/integrations/safeline.svg @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="396px" height="407px" viewBox="0 0 396 407" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <title>编组 12</title> + <defs> + <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-1"> + <stop stop-color="#4B4B4B" offset="0%"></stop> + <stop stop-color="#000000" offset="100%"></stop> + </linearGradient> + <filter x="-3.0%" y="-2.8%" width="106.1%" height="105.6%" filterUnits="objectBoundingBox" id="filter-2"> + <feGaussianBlur stdDeviation="3" in="SourceGraphic"></feGaussianBlur> + </filter> + <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-3"> + <stop stop-color="#24BC43" stop-opacity="0.8" offset="0%"></stop> + <stop stop-color="#3ACBAB" stop-opacity="0.7" offset="100%"></stop> + </linearGradient> + <path d="M110.049657,49.667649 C110.049657,49.667649 81.1358702,46.2263115 76.8,26.7636364 C72.4880848,46.2263115 43.5503431,49.667649 43.5503431,49.667649 C14.2053649,53.3001718 0,36.4567369 0,36.4567369 C13.941859,65.8036979 38.4,64.7712967 38.4,64.7712967 L115.2,64.7712967 C115.2,64.7712967 139.634186,65.8036979 153.6,36.4567369 C153.6,36.4567369 139.394635,53.3192904 110.049657,49.667649 Z" id="path-4"></path> + <filter x="-16.9%" y="-57.9%" width="133.9%" height="236.8%" filterUnits="objectBoundingBox" id="filter-5"> + <feOffset dx="0" dy="4" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset> + <feGaussianBlur stdDeviation="8" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur> + <feColorMatrix values="0 0 0 0 0 0 0 0 0 0.490319293 0 0 0 0 0.292243323 0 0 0 1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix> + </filter> + </defs> + <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> + <g id="编组-12" transform="translate(49.000000, 38.000000)"> + <path d="M292.40836,59.04 C290.927217,51.9634286 285.002646,46.6971429 277.761503,46.368 C222.13636,44.8868571 176.385503,16.5805714 157.953503,3.08571429 C152.358074,-1.02857143 144.95236,-1.02857143 139.356931,3.08571429 C120.431217,16.5805714 75.1740742,44.8868571 19.5489314,46.368 C12.4723599,46.6971429 6.21864565,51.9634286 4.90207422,59.04 C-3.98478292,103.474286 -19.2899258,254.057143 148.902074,324 C316.60036,253.892571 300.966074,103.474286 292.40836,59.04 Z" id="路径" [...] + <path d="M292.40836,59.04 C290.927217,51.9634286 285.002646,46.6971429 277.761503,46.368 C222.13636,44.8868571 176.385503,16.5805714 157.953503,3.08571429 C152.358074,-1.02857143 144.95236,-1.02857143 139.356931,3.08571429 C120.431217,16.5805714 75.1740742,44.8868571 19.5489314,46.368 C12.4723599,46.6971429 6.21864565,51.9634286 4.90207422,59.04 C-3.98478292,103.474286 -19.2899258,254.057143 148.902074,324 C316.60036,253.892571 300.966074,103.474286 292.40836,59.04 Z" id="路径" [...] + <path d="M149,261.4 C205.553958,261.4 251.4,215.553958 251.4,159 C251.4,131.275004 240.381593,106.123494 222.484813,87.6855068 C209.900749,96.0964568 185.81512,106.024178 175.564259,100.853688 C166.334879,96.1984273 157.476591,88.4505652 148.989396,77.610101 C142.047769,88.5334102 134.670586,95.5517221 126.857848,98.6650367 C120.689419,101.123107 98.2592604,102.915695 75.4419467,87.761039 C57.5883513,106.192154 46.6,131.312844 46.6,159 C46.6,215.553958 92.4460416,261.4 149,26 [...] + <g id="编组-5备份-6" transform="translate(91.771423, 102.101722)" fill="#FFFFFF"> + <polygon id="路径-130备份-29" transform="translate(57.217971, 95.920999) rotate(-180.000000) translate(-57.217971, -95.920999) " points="56.6651511 64.9496372 -7.57241738e-17 97.1108413 50.6084036 126.892361 68.8016729 117.264704 34.3433228 97.1108413 56.6651511 84.5503086 96.9001091 107.376711 96.9001091 114.88399 114.435942 125.435553 114.435942 97.1108413"></polygon> + <polygon id="路径-130备份-30" transform="translate(57.217971, 30.971362) rotate(-360.000000) translate(-57.217971, -30.971362) " points="56.6651511 2.84217094e-14 -7.57241738e-17 32.1612041 50.6084036 61.9427239 68.8016729 52.3150668 34.3433228 32.1612041 56.6651511 19.6006714 96.9001091 42.4270741 96.9001091 49.9343528 114.435942 60.4859155 114.435942 32.1612041"></polygon> + <polygon id="路径-130备份-29" opacity="0.40499442" transform="translate(57.217971, 95.920999) rotate(-180.000000) translate(-57.217971, -95.920999) " points="56.6651511 64.9496372 -7.57241738e-17 97.1108413 50.6084036 126.892361 68.8016729 117.264704 34.3433228 97.1108413 56.6651511 84.5503086 96.9001091 107.376711 96.9001091 114.88399 114.435942 125.435553 114.435942 97.1108413"></polygon> + <polygon id="路径-130备份-30" opacity="0.40499442" transform="translate(57.217971, 30.971362) rotate(-360.000000) translate(-57.217971, -30.971362) " points="56.6651511 4.8316906e-13 -7.57241738e-17 32.1612041 50.6084036 61.9427239 68.8016729 52.3150668 34.3433228 32.1612041 56.6651511 19.6006714 96.9001091 42.4270741 96.9001091 49.9343528 114.435942 60.4859155 114.435942 32.1612041"></polygon> + </g> + <g id="长亭logo备份-18" transform="translate(72.200000, 45.222222)" fill-rule="nonzero"> + <g id="编组-7"> + <path d="M96.7632666,18.0061837 C96.7632666,18.0061837 79.3862969,15.2966085 76.7907961,0 C74.1952953,15.2966085 56.8183256,18.0061837 56.8183256,18.0061837 C39.1836466,20.8694936 30.6424242,7.60987058 30.6424242,7.60987058 C39.0363842,30.6893013 53.7258141,29.862977 53.7258141,29.862977 L99.8741859,29.862977 C99.8741859,29.862977 114.563616,30.6700845 122.957576,7.60987058 C122.957576,7.60987058 114.416353,20.8694936 96.7816744,18.0061837 L96.7632666,18.0061837 Z" id [...] + <g id="路径"> + <use fill="black" fill-opacity="1" filter="url(#filter-5)" xlink:href="#path-4"></use> + <use fill="#27B876" xlink:href="#path-4"></use> + </g> + </g> + </g> + </g> + </g> +</svg> \ No newline at end of file diff --git a/website/static/img/integrations/skywalking.svg b/website/static/img/integrations/skywalking.svg new file mode 100644 index 00000000000..005956317e1 --- /dev/null +++ b/website/static/img/integrations/skywalking.svg @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="3584px" height="848px" viewBox="0 0 3584 848" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <!-- Generator: Sketch 51.3 (57544) - http://www.bohemiancoding.com/sketch --> + <title>Group</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> + <g id="Group" transform="translate(0.000000, -16.000000)"> + <g id="Group-2" transform="translate(0.000000, 157.599119)" fill="#1890FF"> + <path d="M1440.61949,224.405286 L1440.61949,226.338106 L1381.99064,522.703744 C1374.25936,561.360132 1363.95099,576.822687 1324.65033,576.822687 L1307.25496,576.822687 C1272.46421,576.822687 1254.42456,560.071586 1246.04901,526.569383 L1195.15143,329.421806 C1194.50716,326.844714 1194.50716,326.200441 1193.21861,326.200441 C1191.93007,326.200441 1191.93007,326.844714 1191.28579,329.421806 L1140.38822,526.569383 C1132.01267,560.071586 1113.97302,576.822687 1079.18227,576.8 [...] + <path d="M309.821035,361.139868 C309.821035,426.211454 269.231828,495.792952 140.377203,495.792952 C92.0567181,495.792952 57.2659692,491.28304 26.340859,484.196035 C19.8981278,482.907489 14.0996696,478.397577 14.0996696,471.310573 L14.0996696,424.922907 C14.0996696,417.835903 19.8981278,412.681718 26.340859,412.681718 L27.6294053,412.681718 C53.4003304,415.903084 117.827643,419.124449 141.665749,419.124449 C199.006057,419.124449 216.401432,398.507709 216.401432,361.139868 [...] + </g> + <g id="moon-o" transform="translate(3304.973950, 323.548473) rotate(-183.000000) translate(-3304.973950, -323.548473) translate(3026.449721, 14.297372)" fill="#D8D8D8" fill-rule="nonzero"> + <path d="M556.201759,503.069627 C538.560505,506.036844 520.385618,507.520453 502.242121,507.520453 C320.273523,507.520453 172.645729,359.064881 172.645729,176.075948 C172.645729,113.448719 190.789226,52.2735334 223.654695,0 C93.1973036,38.9526209 0,159.314326 0,302.340521 C0,476.459368 140.753354,618.001955 313.901326,618.001955 C408.573966,618.001955 497.345261,574.598507 556.201759,503.069627 Z" id="Shape"></path> + </g> + </g> + </g> +</svg> \ No newline at end of file diff --git a/website/static/img/integrations/splunk.svg b/website/static/img/integrations/splunk.svg new file mode 100644 index 00000000000..fde4ffb96a5 --- /dev/null +++ b/website/static/img/integrations/splunk.svg @@ -0,0 +1 @@ +<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Splunk</title><path d="M23.348 11.911l-2.241-1.091v-.65L24 11.621v.593l-2.893 1.438v-.636zm-5.397 1.841h-.961v-5.31h.961v3.116h.102l1.28-1.481.723.31-1.23 1.316 1.453 1.809-.888.311-1.44-1.996zm-2.577-.002v-2.068a2.685 2.685 0 0 0-.026-.42.791.791 0 0 0-.09-.26c-.113-.202-.308-.304-.59-.304a.888.888 0 0 0-.461.113.673.673 0 0 0-.286.33 1.012 1.012 0 0 0-.07.263c-.012.13-.019.262-.017.395v1.95h-.961v-3.614h.961l [...] \ No newline at end of file diff --git a/website/static/img/plugin/ai.svg b/website/static/img/plugin/ai.svg new file mode 100644 index 00000000000..9ee514a61ee --- /dev/null +++ b/website/static/img/plugin/ai.svg @@ -0,0 +1,10 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"> + <defs> + <linearGradient id="apisixAiRed" x1="8" y1="8" x2="118" y2="118" gradientUnits="userSpaceOnUse"> + <stop offset="0" stop-color="#F8553F"/> + <stop offset="1" stop-color="#C4292E"/> + </linearGradient> + </defs> + <path d="M58 8 Q70 46 108 58 Q70 70 58 108 Q46 70 8 58 Q46 46 58 8 Z" fill="url(#apisixAiRed)"/> + <path d="M102 14 Q106 26 118 30 Q106 34 102 46 Q98 34 86 30 Q98 26 102 14 Z" fill="url(#apisixAiRed)"/> +</svg> diff --git a/website/static/img/plugin/apisix.svg b/website/static/img/plugin/apisix.svg new file mode 100644 index 00000000000..8e99cc539b4 --- /dev/null +++ b/website/static/img/plugin/apisix.svg @@ -0,0 +1,15 @@ +<svg width="185" height="156" viewBox="0 0 185 156" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M0 155.5L94 0L185 155.5H140L94 83L42.5 155.5H0Z" fill="#F8423F"/> +<path d="M94 82.5L42.5 155H0L76.5 57L94 82.5Z" fill="url(#paint0_linear)"/> +<path d="M140 155.5H185L94 0L140 155.5Z" fill="url(#paint1_linear)"/> +<defs> +<linearGradient id="paint0_linear" x1="222.5" y1="50" x2="85" y2="223.5" gradientUnits="userSpaceOnUse"> +<stop offset="0.536111" stop-color="#FC0A04"/> +<stop offset="1" stop-color="#CF0500" stop-opacity="0.77"/> +</linearGradient> +<linearGradient id="paint1_linear" x1="139.5" y1="1.50861e-06" x2="226" y2="136" gradientUnits="userSpaceOnUse"> +<stop offset="0.473466" stop-color="#E2423E"/> +<stop offset="1" stop-color="#E2423E" stop-opacity="0.77"/> +</linearGradient> +</defs> +</svg>
