<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <title>Apache Flink: Material</title>
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">

    <!-- Bootstrap -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
    <link rel="stylesheet" href="/css/flink.css">
    <link rel="stylesheet" href="/css/syntax.css">

    <!-- Blog RSS feed -->
    <link href="/blog/feed.xml" rel="alternate" type="application/rss+xml" title="Apache Flink Blog: RSS feed" />

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <!-- We need to load Jquery in the header for custom google analytics event tracking-->
    <script src="/js/jquery.min.js"></script>

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>  
    

    <!-- Main content. -->
    <div class="container">
    <div class="row">

      
     <div id="sidebar" class="col-sm-3">
        

<!-- Top navbar. -->
    <nav class="navbar navbar-default">
        <!-- The logo. -->
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <div class="navbar-logo">
            <a href="/">
              <img alt="Apache Flink" src="/img/flink-header-logo.svg" width="147px" height="73px">
            </a>
          </div>
        </div><!-- /.navbar-header -->

        <!-- The navigation links. -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
          <ul class="nav navbar-nav navbar-main">

            <!-- First menu section explains visitors what Flink is -->

            <!-- What is Stream Processing? -->
            <!--
            <li><a href="/streamprocessing1.html">What is Stream Processing?</a></li>
            -->

            <!-- What is Flink? -->
            <li><a href="/flink-architecture.html">What is Apache Flink?</a></li>

            

            <!-- What is Stateful Functions? -->

            <li><a href="/stateful-functions.html">What is Stateful Functions?</a></li>

            <!-- Use cases -->
            <li><a href="/usecases.html">Use Cases</a></li>

            <!-- Powered by -->
            <li><a href="/poweredby.html">Powered By</a></li>


            &nbsp;
            <!-- Second menu section aims to support Flink users -->

            <!-- Downloads -->
            <li><a href="/downloads.html">Downloads</a></li>

            <!-- Getting Started -->
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Getting Started<span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="https://ci.apache.org/projects/flink/flink-docs-release-1.10/getting-started/index.html" target="_blank">With Flink <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.0/getting-started/project-setup.html" target="_blank">With Flink Stateful Functions <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
              </ul>
            </li>

            <!-- Documentation -->
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Documentation<span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="https://ci.apache.org/projects/flink/flink-docs-release-1.10" target="_blank">Flink 1.10 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-docs-master" target="_blank">Flink Master (Latest Snapshot) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.0" target="_blank">Flink Stateful Functions 2.0 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-statefun-docs-master" target="_blank">Flink Stateful Functions Master (Latest Snapshot) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
              </ul>
            </li>

            <!-- getting help -->
            <li><a href="/gettinghelp.html">Getting Help</a></li>

            <!-- Blog -->
            <li><a href="/blog/"><b>Flink Blog</b></a></li>


            <!-- Flink-packages -->
            <li>
              <a href="https://flink-packages.org" target="_blank">flink-packages.org <small><span class="glyphicon glyphicon-new-window"></span></small></a>
            </li>
            &nbsp;

            <!-- Third menu section aim to support community and contributors -->

            <!-- Community -->
            <li><a href="/community.html">Community &amp; Project Info</a></li>

            <!-- Roadmap -->
            <li><a href="/roadmap.html">Roadmap</a></li>

            <!-- Contribute -->
            <li><a href="/contributing/how-to-contribute.html">How to Contribute</a></li>
            

            <!-- GitHub -->
            <li>
              <a href="https://github.com/apache/flink" target="_blank">Flink on GitHub <small><span class="glyphicon glyphicon-new-window"></span></small></a>
            </li>

            &nbsp;

            <!-- Language Switcher -->
            <li>
              
                
                  <a href="/zh/material.html">中文版</a>
                
              
            </li>

          </ul>

          <ul class="nav navbar-nav navbar-bottom">
          <hr />

            <!-- Twitter -->
            <li><a href="https://twitter.com/apacheflink" target="_blank">@ApacheFlink <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>

            <!-- Visualizer -->
            <li class=" hidden-md hidden-sm"><a href="/visualizer/" target="_blank">Plan Visualizer <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>

          <hr />

            <li><a href="https://apache.org" target="_blank">Apache Software Foundation <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>

            <li>
              <style>
                .smalllinks:link {
                  display: inline-block !important; background: none; padding-top: 0px; padding-bottom: 0px; padding-right: 0px; min-width: 75px;
                }
              </style>

              <a class="smalllinks" href="https://www.apache.org/licenses/" target="_blank">License</a> <small><span class="glyphicon glyphicon-new-window"></span></small>

              <a class="smalllinks" href="https://www.apache.org/security/" target="_blank">Security</a> <small><span class="glyphicon glyphicon-new-window"></span></small>

              <a class="smalllinks" href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Donate</a> <small><span class="glyphicon glyphicon-new-window"></span></small>

              <a class="smalllinks" href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a> <small><span class="glyphicon glyphicon-new-window"></span></small>
            </li>

          </ul>
        </div><!-- /.navbar-collapse -->
    </nav>

      </div>
      <div class="col-sm-9">
      <div class="row-fluid">
  <div class="col-sm-12">
    <h1>Material</h1>

	<div class="page-toc">
<ul id="markdown-toc">
  <li><a href="#apache-flink-logos" id="markdown-toc-apache-flink-logos">Apache Flink Logos</a>    <ul>
      <li><a href="#portable-network-graphics-png" id="markdown-toc-portable-network-graphics-png">Portable Network Graphics (PNG)</a></li>
      <li><a href="#scalable-vector-graphics-svg" id="markdown-toc-scalable-vector-graphics-svg">Scalable Vector Graphics (SVG)</a></li>
      <li><a href="#photoshop-psd" id="markdown-toc-photoshop-psd">Photoshop (PSD)</a></li>
    </ul>
  </li>
  <li><a href="#color-scheme" id="markdown-toc-color-scheme">Color Scheme</a></li>
</ul>

</div>

<h2 id="apache-flink-logos">Apache Flink Logos</h2>

<p>We provide the Apache Flink logo in different sizes and formats. You can <a href="/img/logo.zip">download all variants</a> (7.4 MB) or just pick the one you need from this page.</p>

<h3 id="portable-network-graphics-png">Portable Network Graphics (PNG)</h3>

<div class="row text-center">
  <div class="col-sm-4">
    <h4>Colored logo</h4>

    <p><img src="/img/logo/png/200/flink_squirrel_200_color.png" alt="Apache Flink Logo" title="Apache Flink Logo" width="200px" /></p>

    <p><strong>Sizes (px)</strong>:
      <a href="/img/logo/png/50/color_50.png">50x50</a>,
      <a href="/img/logo/png/100/flink_squirrel_100_color.png">100x100</a>,
      <a href="/img/logo/png/200/flink_squirrel_200_color.png">200x200</a>,
      <a href="/img/logo/png/500/flink_squirrel_500.png">500x500</a>,
      <a href="/img/logo/png/1000/flink_squirrel_1000.png">1000x1000</a></p>
  </div>

  <div class="col-sm-4">
    <h4>White filled logo</h4>

    <p><img src="/img/logo/png/200/flink_squirrel_200_white.png" alt="Apache Flink Logo" title="Apache Flink Logo" width="200px" style="background:black;" /></p>

    <p><strong>Sizes (px)</strong>:
      <a href="/img/logo/png/50/white_50.png">50x50</a>,
      <a href="/img/logo/png/100/flink_squirrel_100_white.png">100x100</a>,
      <a href="/img/logo/png/200/flink_squirrel_200_white.png">200x200</a>,
      <a href="/img/logo/png/500/flink_squirrel_500_white.png">500x500</a>,
      <a href="/img/logo/png/1000/flink_squirrel_white_1000.png">1000x1000</a></p>
  </div>

  <div class="col-sm-4">
    <h4>Black outline logo</h4>

    <p><img src="/img/logo/png/200/flink_squirrel_200_black.png" alt="Apache Flink Logo" title="Apache Flink Logo" width="200px" /></p>

    <p><strong>Sizes (px)</strong>:
      <a href="/img/logo/png/50/black_50.png">50x50</a>,
      <a href="/img/logo/png/100/flink_squirrel_100_black.png">100x100</a>,
      <a href="/img/logo/png/200/flink_squirrel_200_black.png">200x200</a>,
      <a href="/img/logo/png/500/flink_squirrel_500_black.png">500x500</a>,
      <a href="/img/logo/png/1000/flink_squirrel_black_1000.png">1000x1000</a></p>
  </div>
</div>

<div class="panel panel-default">
  <div class="panel-body">
    You can find more variants of the logo <a href="/img/logo/png">in this directory</a> or <a href="/img/logo.zip">download all variants</a> (7.4 MB).
  </div>
</div>

<h3 id="scalable-vector-graphics-svg">Scalable Vector Graphics (SVG)</h3>

<div class="row text-center img100">
  <div class="col-sm-4 text-center">
    <h4>Colored logo</h4>

    <p><img src="/img/logo/svg/color_black.svg" alt="Apache Flink Logo" title="Apache Flink Logo" /></p>

    <p>Colored logo with black text (<a href="/img/logo/svg/color_black.svg">color_black.svg</a>)</p>
  </div>
  <div class="col-sm-4">
    <h4>White filled logo</h4>

    <p><img src="/img/logo/svg/white_filled.svg" alt="Apache Flink Logo" title="Apache Flink Logo" style="background:black;" /></p>

    <p>White filled logo (<a href="/img/logo/svg/white_filled.svg">white_filled.svg</a>)</p>
  </div>
  <div class="col-sm-4">
    <h4>Black outline logo</h4>

    <p><img src="/img/logo/svg/black_outline.svg" alt="Apache Flink Logo" title="Apache Flink Logo" /></p>

    <p>Black outline logo (<a href="/img/logo/svg/black_outline.svg">black_outline.svg</a>)</p>
  </div>
</div>

<div class="panel panel-default">
  <div class="panel-body">
    You can find more variants of the logo <a href="/img/logo/svg">in this directory</a> or <a href="/img/logo.zip">download all variants</a> (7.4 MB).
  </div>
</div>

<h3 id="photoshop-psd">Photoshop (PSD)</h3>

<div class="panel panel-default">
  <div class="panel-body">
    <p>You can download the logo in PSD format as well:</p>

    <ul>
      <li><strong>Colored logo</strong>: <a href="/img/logo/psd/flink_squirrel_1000.psd">1000x1000</a>.</li>
      <li><strong>Black outline logo with text</strong>: <a href="/img/logo/psd/flink_1000.psd">1000x1000</a>, <a href="/img/logo/psd/flink_5000.psd">5000x5000</a>.</li>
    </ul>

    <p>You can find more variants of the logo <a href="/img/logo/psd">in this directory</a> or <a href="/img/logo.zip">download all variants</a> (7.4 MB).</p>
  </div>
</div>

<h2 id="color-scheme">Color Scheme</h2>

<p>You can use the provided color scheme which incorporates some colors of the Flink logo:</p>

<ul>
  <li><a href="/img/logo/colors/flink_colors.pdf">PDF color scheme</a></li>
  <li><a href="/img/logo/colors/flink_colors.pptx">Powerpoint color scheme</a></li>
</ul>


  </div>
</div>

      </div>
    </div>

    <hr />

    <div class="row">
      <div class="footer text-center col-sm-12">
        <p>Copyright © 2014-2019 <a href="http://apache.org">The Apache Software Foundation</a>. All Rights Reserved.</p>
        <p>Apache Flink, Flink®, Apache®, the squirrel logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.</p>
        <p><a href="/privacy-policy.html">Privacy Policy</a> &middot; <a href="/blog/feed.xml">RSS feed</a></p>
      </div>
    </div>
    </div><!-- /.container -->

    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.matchHeight/0.7.0/jquery.matchHeight-min.js"></script>
    <script src="/js/codetabs.js"></script>
    <script src="/js/stickysidebar.js"></script>

    <!-- Google Analytics -->
    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

      ga('create', 'UA-52545728-1', 'auto');
      ga('send', 'pageview');
    </script>
  </body>
</html>
