CODE DOCUMENTATION
Website Visuals
Colors
The colors used on 2019.igem.org are:
#00A19B | #007B8A | #085156 | #00BFD6 | #FF9012 | #FFB819 | #F42534 |
Creating a new page
Pages created in the 2019.igem.org website must follow a naming convention in order fit the website structure and to be reflected properly in the menu system. The naming convention should make them fall under these categories:
- About
- Calendar
- Teams
- Competition
- Team Registration
- Rules of Conduct
- Deliverables
- Tracks
- Giant Jamboree
- Judging
- Safety
- Human Practices
- Measurement
- Resources
- Cloning Help
- Sponsors
- Special Offers
- Sitemap
Here is an example for creating a new application page under the Teams namespace and within the Mentorship submenu:
2019.igem.org/Teams/Mentorship/Apply
If a page that doesn't fall under the previous categories needs to be created, please contact Ana or Traci before creating said page.
<div class="igem_menu_item">
<a href="https://2019.igem.org/Colors">
<div class="hub_icon">
<img src="https://static.igem.org/mediawiki/2019/8/81/colors_icon.svg">
</div>
<div class="hub_title">
COLORS
</div>
</a>
</div>
<div class="igem_menu_item">
<a href="https://2019.igem.org/Colors">
<div class="hub_icon">
<img src="https://static.igem.org/mediawiki/2019/8/81/colors_icon.svg">
</div>
<div class="hub_title">
COLORS
</div>
</a>
<div class="submenu_access"></div>
<div class="igem_submenu">
<div class="submenu_item subsection_title"> Warm Colors </div>
<a href="https://2019.igem.org/Colors/Red">
<div class="submenu_item">
Red
</div>
</a>
<a href="https://2019.igem.org/Colors/Yellow">
<div class="submenu_item">
Yellow
</div>
</a>
</div>
</div>
<div class="igem_menu_item">
<a href="https://2019.igem.org/Colors">
<div class="hub_icon">
<img src="https://static.igem.org/mediawiki/2019/8/81/colors_icon.svg">
</div>
<div class="hub_title">
COLORS
</div>
</a>
<div class="submenu_access"></div>
<div class="igem_submenu">
<div class="submenu_item subsection_title"> Warm Colors </div>
<a href="https://2019.igem.org/Colors/Reds">
<div class="submenu_item with_subsub_menu">
Reds
</div>
</a>
<div class="submenu_access"></div>
<div class="igem_subsubmenu">
<a href="https://2019.igem.org/Colors/Reds/Scarlet">
<div class="subsubmenu_item">
Scarlet
</div>
</a>
</div>
<a href="https://2019.igem.org/Colors/Yellow">
<div class="submenu_item">
Yellow
</div>
</a>
</div>
</div>
HTML
Hypertext Markup Language, or HTML, is a standardized system for tagging text to create font, color, graphic, and hyperlink styling on websites. Below we will go voer the general tags used to create a standard wiki page
Text
To write text use the < p > tag
<p> Text </p>
Titles
You can add title using the h tag, here is how the different sizes look:
Title one
Title two
Title three
Title four
Title five
Title six
<h1>Title one </h1>
<h2>Title two </h2>
<h3>Title three </h3>
<h4>Title four </h4>
<h5>Title five </h5>
<h6>Title six </h6>
Links
When creating links use the < a > tag, links will display : Example
<a href="link url "> LINK </a>
Images
You can add images to your website by using the img tag, remember all your images must be hosted on the iGEM server.
<img src="image URL ">
Unordered Lists
Use the following example to create a simple list.
Painting materials:
- Brushes
- Acrylic paint
- Watercolors
<b>Painting Materials</b>
<ul>
<li> Brushes </li>
<li> Acrylic paint </li>
<li> Watercolors </li>
</ul>
Numbered Lists
To create an ordered list, use:
Things to buy:
- Milk
- Eggs
- Flour
<b>Things to buy: </b>
<ol>
<li> Milk </li>
<li> Eggs </li>
<li> Flour </li>
</ol>
Nested Lists
Here is an example of a nested list.
- Cold Colors
- Warm Colors
- Red
- Orange
- Yellow
<ul>
<li> Cold Colors </li>
<li> Warm Colors
<ol>
<li> Red </li>
<li> Orange </li>
<li> Yellow </li>
</ol>
</li>
</ul>
Tables
Tables created within in a page already have styling and will display:
Header 1 | Header 2 |
---|---|
Content A 1 | Content B 1 |
Content A 2 | Content B 2 |
<table>
<tr>
<th> Header 1 </th> <th> Header 2 </th>
</tr>
<tr>
<td> Content A 1 </td> <td> Content B 1 </td>
</tr>
<tr>
<td> Content A 2 </td> <td> Content B 2 </td>
</tr>
</table>
Layout classes
Columns
Layout classes will help structure your page. You will need to call it when you start your page to have the proper layout and make it responsive. There are four types of layout options, which vary between one column up to four in the same row.
- One column (100%) : class="column full_size"
- Three quarters column (75%) : class="column three_quarter_size"
- Two thirds column (66%) : class="column two_thirds_size"
- Two columns (50%) : class="column half_size"
- Three columns (33%): class="column third_size"
- Four columns (25%) : class="column quarter_size"
<div class="column half_size" >
<p> Content goes here </p>
</div>
Support Classes
Highlight
Highlight will need to be declared inside another layout box, this highlight class will make the background gray and the size will be slightly smaller.
<div class="column half_size" >
<div class="highlight">
</div>
</div>
Styling highlight class
There are ways to style the highlight class, you can add:
- class="highlight gray" to add a gray background
- class="highlight decoration_top" to add a decorative line on top
- class="highlight decoration_full" to add a border around the div
- class="highlight decoration_red_top" to add a red line on top
- class="highlight decoration_red_full" to add a red border around the div
These classes can be combined to create different effects, as seen in the next examples.
<div class="column quarter_size" >
<div class="highlight decoration_full">
</div>
</div>
<div class="column quarter_size" >
<div class="highlight gray decoration_top">
</div>
</div>
Post items
Post items is a class that has multiple purposes and can be styled and divided as needed. They can be a standard way of highlighting information, making it easy to recognize types of announcements such as notes or alerts. They are also used as a structural type of class, to easily delineate between a list of items,for example meetups or news items.
The icons that can be used as part of the post item class are:
Description
<div class="highlight post_item">
<div class="details ">
<span class="icon announcement"></span>
<div class="title"> Title </div>
<div class="date"> Date </div>
</div>
<p>Description </p>
</div>
25%
65%
<div class="highlight post_item">
<div class="details">
<div class="title"> Title </div>
<div class="date"> Date </div>
</div>
<div class="column quarter_size">
<p> 25% </p>
</div>
<div class="column three_quarter_size">
<p>65%</p>
</div>
<div class="clear"></div>
</div>
Button
You can use the button class to highlight a link in your wiki.
<div class="button"> <a href="URL"> REGISTER NOW! </a> </div>
Clear
This class clears the content, it is basically the same as clicking "enter" when you are writing a text.
If you add the "extra_space" class, it will add extra vertical spacing between your divs.
<div class="clear extra_space"> </div>
line divider
This class draws a line to more easily separate sections on a page. You can add "soft" or "dark" to make the line lighter or softer.
This class should ideally be used in between clear extra_space to add the appropiate padding.
<div class="clear extra_space"> </div>
<div class="line_divider"> </div>
<div class="clear extra_space"> </div>
Calendar
The Calendar uses a set of special classes that display and control the viewing of the deadlines in each month. Information is divided in the date of the event and the information pertinent to it. The following code shows how to create a month with one event, the final result can be seen bellow. This class can also be use for expand and collapsing content.
MONTH
Title
Description
<div class="collapsible_accordion">
<h1> MONTH <div class="collapsible_accordion_access content_control displaying_content"></div> </h1>
<div class="collapsible_accordion_content" >
<div class="deadline_date">
DATE
</div>
<div class="deadline_content">
<H3> Title</H3>
<p> Description</p>
</div>
</div>
</div>
Read more..
This class hides text unless the user wishes to read more, therefore it should only be used when the content is not essential for the reader.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
<span class="read_more_text">
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</span>
<span class="read_more"></span>
</p>
Image Slider
Remember to keep the same number of items in both lists so the numbers match and work correctly.
- 1
- 2
- 3
<div id="image_carrousel">
<ul class="image_slider" >
<li class="current_image"><img src="https://placehold.it/550x200"></li>
<li><img src="https://placehold.it/550x200"></li>
<li><img src="https://placehold.it/550x200"></li>
</ul>
<div class="image_controller prev"> </div>
<ul class="image_number">
<li class="current_image_number"> 1</li>
<li> 2</li>
<li> 3</li>
</ul>
<div class="image_controller next"> </div>
</div>
Image caption
This class allows commenting on an image to further explain what is happening in the picture.
<img src="https://placehold.it/550x200">
<p class="image_caption">This is caption for the image</p>
On this page
This class should be used on every page to give users an at a glance list of the topics covered on the page.
On this page you will find information on:
For dividing the sections on the page, you should use the classes clear extra_space and line divider adding the section id to the last clear div. Below is an example.
<div class="clear extra_space"> </div>
<div class="line_divider"> </div>
<div class="clear extra_space"> id="section" </div>
<p>
<span class="on_page"></span><b>On this page</b>
you will find information on:
<a href="#link"> section 1 </a>,
<a href="#link"> section 2 </a>, and
<a href="#link"> section 3 </a>.
</p>
Center content
This class can help center content, it should be used instead the "center" tag, as this is a deprecreated tag in html.
Centered Text
Centered title
<p class="center_content">Centered Text</p>
<h1 class="center_content">Centered title</h1>
Multiple links
This class should be used when a lot of links are being used in a list, for example the list of tracks.
<div class="multiple_links">
<h5> List of links </h5>
<ul>
<li><a href="link url"> Link 1</a></li>
<li><a href="link url"> Link 2</a></li>
<li><a href="link url"> Link 3</a></li>
</ul>
</div>
Red text
Red text can be used to highlight text that is crucial for users to read. For example:
Make sure to follow the Safety rules!
<div class="red_text"> Make sure to follow the Safety rules! </div>
Navigation Support
This class can be used for navigating between pages in a Hub. This is used in the Competition Hub to browse between the team requirements. The structure is the following: Main link (either to the main hub or a particular section) and then links in a list adding the class active_navigation_button to the current page. See the example below.
The goal will be to make this code automatically recognize which page it is currently.*
<div class="column full_size navigation_support">
<a href="https://2019.igem.org/Competition#requirements">
<div class="navigation_support_title">
MAIN LINK
</div>
</a>
<a href="url">
<div class="navigation_button active_navigation_button">
1
<div class="title_extra" > Link 1 </div>
</div>
</a>
<a href="url">
<div class="navigation_button" >
2
</div>
<div class="title_extra"> Link 2 </div>
</a>
</div>
Hidding content
If content needs to be hidden for general users while it is being worked on, you can place said section in the HQ_info id. For example this section can only be viewed by members of HQ.
<div id="HQ_info">
<p> Content will be hidden inside this div </p>
</div>