<head>
<title>OpenOffice.org Art Project</title>


<style type="text/css">
.galleriestable {
        border: 1px solid #0E72A4;
        background-color: #FFFFFF;
        margin-top: 1px;
        margin-bottom: 1px;
}

.tableh1 {
        background : #00315a ;
        color : #FFFFFF;
        padding-top: 3px;
        padding-right: 10px;
        padding-bottom: 3px;
        padding-left: 10px;
}

.tableh1_compact {
        background : #0E72A4 ;
        color : #FFFFFF;
        padding-top: 2px;
        padding-right: 5px;
        padding-bottom: 2px;
        padding-left: 5px;
}

.tableh2 {
        background: #d8dee3 ;
        color : #000000;
        padding-top: 3px;
        padding-right: 10px;
        padding-bottom: 3px;
        padding-left: 10px;
}

.tableh2_compact {
        background: #D1D7DC ;
        color : #000000;
        padding-top: 2px;
        padding-right: 5px;
        padding-bottom: 2px;
        padding-left: 5px;
}

.tableb {
        background: #EFEFEF ;
        padding-top: 3px;
        padding-right: 10px;
        padding-bottom: 3px;
        padding-left: 10px;
}

.tableb_compact {
        background: #EFEFEF ;
        padding-top: 2px;
        padding-right: 5px;
        padding-bottom: 2px;
        padding-left: 5px;
}

.tablef {
        background: #d8dee3;
        padding-top: 10px;
        padding-right: 10px;
        padding-bottom: 10px;
        padding-left: 10px;
}

</style>

</head>

<H2>The OpenOffice.org Art Project</H2>

<!-- Project menu -->
<div align="right">
    <a href="index.html">Index</a> 
 :: <a href="index.html#galleries">Galleries</a>
 :: <a href="to-do-artwork.html"><b>Artwork To-Do</b></a>    
 :: <a href="to-do-maintenance.html"><b>Project Maintenance To-Do</b></a>     
 <br>
 
 <a href="about-participation.html">How to participate</a>
  :: <a href="about-request-graphics.html">Request graphics</a>
  :: <a href="about-issuezilla.html">IssueZilla</a>
  :: <a href="about-issuezilla-uploading_files.html"><b>Sending us files</b></a>
  :: <a href="about-legal.html">Licenses</a>
  :: <a href="about-project.html">About the project</a>  
 <br><br>
</div>
<!-- end of project menu -->


<!-- Galleries entry table -->
<table style="border-style:solid; border-color:#06338b; border-width:5px"  cellpadding="2" cellspacing="3" width="100%" bgcolor="#9bc0f5">
	<tr>
		<td>
		<strong>The OpenOffice.org Art Project is updating its web site. </strong>
		<br />
		This page is outdated, but most of its content is being worked on at the <a href="http://wiki.services.openoffice.org/wiki/Art">OpenOffice.org wiki</a>:
		<br />
		Please follow <a href="http://wiki.services.openoffice.org/wiki/Art">this link</a> 
		and use the wiki subpages to find the information you're looking for.
		<br />
		If you can't find what you want to know, please contact our mailing list <a href="mailto:art&#64;marketing.openoffice.org">art@marketing.openoffice.org</a>.
		<br />
		<br />		
		Sorry for any inconvenience, we hope to finish the update as soon as possible. 
		<br />		
		- And you are welcome to help us in this area too... - 
		</td>
	</tr>
</table>
<br />


<TABLE border="0" cellpadding="1" cellspacing="0" width="100%" bgcolor="#ffffff">
<TR>
<TD valign="top"  width="85%">	<!-- Begin contents of page -->
	<TABLE class="galleriestable" width="100%">
	<TR>
	<td class="tableh1">
	<strong>Contributing to the Art Project:</strong>
	</TD>
	</TR>
	<TR>
	<TD class="tableb">
	
	<p><b>Q: What does the Art project do ?</b>
	<BR><b>A:</b> The art project attempts to centralize all the OpenOffice.org related graphics and the graphics creation process so that everybody can easily find the needed graphics in one single location, and at the same time all new graphics requests can be directed to a single place.
<br>Here is a brief list of activities inside the project:
<ul>
<li><strong>Building an art directory containing the existing graphics across OpenOffice.org projects</strong> - The aim is to create and maintain a single repository where everybody can look for graphics related to OpenOffice.org. The way of doing it is by making contact with the projects, finding out about the existing graphics, and centralizing them in easily browseable galleries.</li>
<li><strong>Creating new art</strong> - The OpenOffice.org project needs new graphics for its various components and activities. We encourage graphic artists to participate and contribute with their creations.<br />
Whether we are talking about new nice screenshots, new OpenOffice.org posters, nice CD-covers or improved GUI icon sets, new contributions in all these fields and many others help the project evolve and remain fresh.<br />
There can be freely contributed artwork in which you can put everything you like (i.e. the wallpapers), but there is also coordinated artwork which must be built according to certain specifications in order to keep a unified visual identity of the project.<br/ >
In return for your contributions we will try to promote your volunteer work as much as we can.</li>
<li><strong>Translating and internationalizing art</strong> - Cooperating with Native-Language Projects is one of our main goals in order to make the graphics art usable for all the OpenOffice.org projects. This means translating existing art and newly created art into as many languageas as we can and from specific languages into English in order for other projects to benefit from the contributions made by the Native Language Projects.></li>
</ul>

	<p><b>Q: I want to help. How do I proceed ?</b>
	<BR><b>A:</b> After making yourself familiar with the project by reading the text pages, browsing the galleries and becoming acquainted with the <a href="about-legal.html">legal issues</a> and acceptable licenses for the artwork, you should consider doing the following:
<ul>
<li><strong>Browse our <a href="to-do-artwork.html">ARTWORK To-Do</a> list</strong> in order to see what is currently needed and if there is something to which you are able to
contribute.</li>
<li><strong><a href="http://www.openoffice.org/servlets/Join">Register</a> with the
website</strong> if you are not already registered.</li>
<li><strong>Subscribe to our mailing list</strong> by sending an empty email to 
	<a href="mailto:art-subscribe@marketing.openoffice.org">art-subscribe@marketing.openoffice.org</a> and then introduce yourself and tell us how you wish to help by sending your messages to the <a
href="mailto:art@marketing.openoffice.org">art@marketing.openoffice.org</a> mailing list.</li>
</ul>
	
We are looking forward to meeting you on the list.

<br><br><br>
	</TD>
	</TR>			
	</TABLE>
	<!-- end contents of page --></TD>
<TD width="150" valign="top">
		
		<!-- Help needed table -->
			<TABLE class="galleriestable" width="100%">
			<TR>
			<TD class="tableh2">
			<small>
			<b><font color="#7F7F7F">HELP NEEDED:</font></b><br>
			
			<script language="JavaScript"
			src="http://oosurvey.gratismania.ro/oooart/news/todo.php"></script>
			<br><!-- <a href="#">More...</a> -->
			</small>
			</TD>
			</TR>
			</table>
		
		<!-- news table -->
			<TABLE class="galleriestable" width="100%">
			<TR>
			<TD class="tableh2">
			<small>
			<b><font color="#7F7F7F">PROJECT NEWS:</font></b><br>
			<script language="JavaScript" 
			src="http://oosurvey.gratismania.ro/oooart/news/news.php"></script>
			<BR>
			<!-- http://oosurvey.gratismania.ro/oooart/news/news.php -->
			<!-- <a href="#">More...</a> -->
			</small>
			</TD>
			</TR>
			</table>


</TD>
</TR>
</TABLE>
<!-- end of galleries entry table -->
