<html>
<head>
 <title>Participate in OpenOffice.org</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <meta http-equiv="Content-Style-Type" content="text/css">
</head>

<body>
  <p><a href="index.html">Participate in OpenOffice.org</a></p>
  <table width="100%">
  <tr>
    <td width="70px"><a href="art.html"><img src="_media/art.png" border="0" alt="Graphics and Art" vspace="11" /></a></td>
    <td style="vertical-align:middle">
     <h1>Graphics and Art</h1>
    </td>
   </tr>
</table>
<p>Have any art skills? Then you can help us create icons, logos, banners, labels, and more! These will be seen every day and used throughout the project and its products.</p>
<p>If you are interested, consider joining our new <a href="http://marketing.openoffice.org/art/"> Art Project.</a>  The Art Project is working closely with other open source projects, and is the center of art activity for the OpenOffice.org world.</p>
<table>
  <tr>
    <td><img src="/images/licensing.png" border="0" /></td>
    <td> Read the provisions of the Art Project for donating images there. You might also find it useful to visit our <a href='//dev_docs/guidelines.html'>Guidelines for Participate in OpenOffice.org</a> page, which outlines the way in which your work can be channeled into this project.</td>
  </tr>
</table>
  <br />
  <!-- 

Public Documentation License Notice


The contents of this Documentation are subject to the Public Documentation License Version 1.0 (the "License"); you may only use this Documentation if you comply with the terms of this License. A copy of the License is available at //licenses/PDL.html.

The Original Documentation is "art.html". The Initial Writer of the Original Documentation is Daniel Carrera Copyright (C) 2004. All Rights Reserved. (Initial Writer contact: dcarrera [at] digitaldistribution.com.)  This current document is derived from that original.

Contributor(s): Louis Suarez-Potts (LSP), louis [at] openoffice.org

For a record of all changes made to the original document by Louis Suarez-Potts, see the CVS history at OpenOffice.org (www/www/contributing/art.html and contributing/www/*)

-->
 </body>
</html>
