Skip to main content

Using the code formatting stylesheet

This page contains comprehensive information about using the javadoc.css stylesheet for Apache Juneau JavaDoc documentation.

Overview​

The javadoc.css file is located at docs/src/javadoc/javadoc.css and provides comprehensive styling for all generated JavaDoc HTML pages. It includes both standard JavaDoc styles and extensive Juneau-specific customizations for enhanced documentation presentation.

Configuration​

The stylesheet is automatically configured in the root pom.xml file for the Maven Javadoc plugin:

<stylesheetfile>${maven.multiModuleProjectDirectory}/docs/src/javadoc/javadoc.css</stylesheetfile>

This ensures that all generated JavaDoc HTML files use the custom stylesheet when running:

  • mvn javadoc:javadoc
  • mvn site

Standard JavaDoc Styles​

The stylesheet includes comprehensive styling for standard JavaDoc elements:

Typography​

  • Fonts: Uses DejaVu Sans for body text, DejaVu Sans Mono for code
  • Base font size: 14px
  • Headings: H1 (20px) through H6 (13px) with appropriate sizing
  • Top navigation bar: Blue background (#4D7A97) with white text
  • Sub-navigation: Light gray background (#dee3e9)
  • Active page indicator: Orange highlight (#F8981D)
  • Responsive design: Mobile-friendly navigation with collapsible menu

Tables​

  • Summary tables: Alternating row colors (white and #EEEEEF)
  • Table tabs: Interactive tabs for switching between different views
  • Responsive columns: Grid-based layouts that adapt to screen size
  • Standard links: Blue (#4A6782) with orange hover (#bb7a2a)
  • External links: Automatically marked with an external link icon
  • No underlines: Clean link styling without default underlines

Juneau-Specific Custom Styles​

Code Highlighting Tags​

The stylesheet provides extensive inline code highlighting tags for syntax coloring:

Java Code Tags​

  • <jc> - Java comment (green)
  • <jd> - Javadoc comment (#3f5fbf)
  • <jt> - Javadoc tag (#7f9fbf, bold)
  • <jk> - Java keyword (#7f0055, bold)
  • <js> - Java string (#00B)
  • <jf> - Java field (DarkBlue)
  • <jsf> - Java static field (DarkBlue, italic)
  • <jsm> - Java static method (italic)
  • <ja> - Java annotation (grey)
  • <jp> - Java parameter (#654040)
  • <jv> - Java local variable (#654040)

XML Code Tags​

  • <xt> - XML tag (DarkCyan)
  • <xa> - XML attribute (purple)
  • <xc> - XML comment (mediumblue)
  • <xs> - XML string (#00B, italic)
  • <xv> - XML value (black)

Other Code Tags​

  • <mk> - Manifest file key (DarkRed, bold)
  • <mv> - Manifest file value (DarkBlue)
  • <cc> - Config file comment (green)
  • <cs> - Config file section (DarkRed, bold)
  • <ck> - Config file key (DarkRed)
  • <cv> - Config file value (DarkBlue)

Code Block Classes​

  • .bcode, .bjava, .bjson, .bxml, .bini, .buon, .burlenc, .bconsole, .bschema - Bordered code blocks with left border and background
  • .code - Unbordered code block

Example:

<p class='bjava'>
<jk>public static void</jk> myMethod(<jk>int</jk> <jv>foo</jv>, String <jv>bar</jv>) {
System.<jsm>out</jsm>.println(<js>"Hello world!"</js>);
}
</p>

Special Classes​

Topic Headers​

  • h2.topic, h3.topic, h4.topic, h5.topic - Styled topic headers with borders and background gradients
  • Automatically includes a decorative icon

Tables​

  • table.styled - Table with alternating row colors and styled borders
  • table.unstyled - Plain table with borders but no row coloring
  • table.borderless - Table without borders
  • table.plain - Table with plain borders
  • table.striped - Table with striped rows

Lists​

  • ul.toc, ol.toc - Table of contents with styled background
  • ul.spaced-list, ol.spaced-list - Lists with extra spacing between items
  • ul.javatree, ol.javatree - Java class hierarchy lists with special markers
  • ul.seealso - "See Also" lists with automatic label
  • ul.notes - Notes lists with automatic label
  • ul.values - Values lists with automatic label
  • ul.format - Format lists with automatic label

Alert Blocks​

  • div.info - Information block (blue border, light blue background)
  • div.warn - Warning block (orange border, light orange background)
  • div.severe - Severe warning block (red border, light red background)
  • p.severe, p.warn, p.info, p.todo - Paragraph-level alerts

Special Elements​

  • .bordered - Adds border around images or blocks
  • .fixedWidth - Forces block to be 800px wide
  • a.doclink - Styled link to documentation with dotted underline
  • <l> - Literal text tag
  • <review> - Review marker block (yellow background)
  • <reviewed> - Reviewed marker block (green background)

Width Utilities​

  • .w400 - 400px width
  • .w500 - 500px width
  • .w800 - 800px width
  • .w900 - 900px width
  • .w1000 - 1000px width

Java Hierarchy Markers​

Special list item classes for displaying Java class hierarchies:

  • li.jc - Java class (green circle)
  • li.jac - Java abstract class (yellow circle)
  • li.jic - Java interface (purple diamond)
  • li.ja - Java annotation (cyan circle)
  • li.je - Java enum (brown circle)
  • li.jf - Java field (green circle)
  • li.jm - Java method (green circle)
  • li.jp - Java package (orange circle)

Usage Examples​

Code Blocks with Syntax Highlighting​

/**
* Example method with highlighted code.
*
* <p class='bjava'>
* <jk>public</jk> <jk>void</jk> processData(<jk>String</jk> <jv>input</jv>) {
* <jc>// Process the input</jc>
* System.<jsm>out</jsm>.println(<js>"Processing: "</js> + <jv>input</jv>);
* }
* </p>
*/

Styled Tables​

/**
* Configuration options:
*
* <table class='styled'>
* <tr><th>Option</th><th>Description</th></tr>
* <tr><td>option1</td><td>First option</td></tr>
* <tr><td>option2</td><td>Second option</td></tr>
* </table>
*/

Alert Blocks​

/**
* <div class='warn'>
* <b>Warning:</b> This method may throw an exception.
* </div>
*
* <div class='info'>
* <b>Note:</b> This feature was added in version 9.0.
* </div>
*/

Topic Headers​

/**
* <h3 class='topic'>Advanced Usage</h3>
*
* This section covers advanced usage patterns.
*/

Java Hierarchy​

/**
* Class hierarchy:
* <ul class='javatree'>
* <li class='jp'>com.example</li>
* <li class='jc'>BaseClass</li>
* <li class='jc'>MyClass extends BaseClass</li>
* </ul>
*/

Customization​

To customize the JavaDoc appearance:

  1. Edit the docs/src/javadoc/javadoc.css file
  2. Regenerate the JavaDoc documentation:
    mvn javadoc:javadoc
    or
    mvn site

Changes will be reflected in all generated JavaDoc pages.

Responsive Design​

The stylesheet includes comprehensive responsive design support:

  • Mobile navigation with collapsible menu
  • Responsive table layouts that adapt to screen size
  • Flexible grid systems for multi-column layouts
  • Optimized typography for different screen sizes

Color Scheme​

The stylesheet uses a consistent color palette:

  • Primary blue: #4D7A97 (navigation, links)
  • Orange accent: #F8981D (active states, highlights)
  • Hover orange: #bb7a2a (link hovers)
  • Light gray: #dee3e9 (backgrounds, borders)
  • Dark text: #353833 (body text)
  • Dark blue: #2c4557 (headings)

Additional Resources​

For more information, see:

Discussion

Share feedback or follow-up questions for this page directly through GitHub.