Pure Java HTML / CSS rendering engine
Switch branches/tags
Nothing to show
Clone or download
Latest commit a15df24 Dec 24, 2013
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc Initial commit Dec 24, 2013
project Added sbt-eclipse Dec 24, 2013
src/main Initial commit Dec 24, 2013
.gitignore Initial commit Dec 24, 2013
.travis.yml Initial commit Dec 24, 2013
CHANGELOG Initial commit Dec 24, 2013
LICENSE Initial commit Dec 24, 2013
README.md Fixed a URL in the Readme Dec 24, 2013
build.sbt Initial commit Dec 24, 2013


Build Status


CSSBox is an (X)HTML/CSS rendering engine written in pure Java. Its primary purpose is to provide a complete and further processable information about the rendered page contents and layout. However, it may be also used for browsing the rendered documents in Java Swing applications.

The input of the rendering engine is the document DOM tree and a set of style sheets referenced from the document. The output is an object-oriented model of the page layout. This model can be directly displayed but mainly, it is suitable for further processing by the layout analysis algorithms as for example the page segmentation or information extraction algorithms.

The core CSSBox library may be also used for obtaining a bitmap or vector (SVG) image of the rendered document. Using the SwingBox package, CSSBox may be used as an interactive web browser component in a Java Swing application.

See the CHANGELOG for the most important changes to the previous versions.

All the source code of CSSBox itself is licensed under the GNU Lesser General Public License (LGPL), version 3. A copy of the LGPL can be found in the LICENSE file.


  • CSSBox uses sbt 0.13 to build the project.
    • Use sbt compile to compile the project
    • Use sbt test to run the tests
    • Use sbt eclipse to create an Eclipse project that can be imported using Import Existing Projects into Workspace

Required Libraries

CSSBox relies on the jStyleParser open source CSS parser

In the demos contained in the org.fit.cssbox.demo package, the NekoHTML parser is used for creating the DOM tree. As an alternative, the The Validator.nu HTML Parser has been tested with CSSBox too.

The Xerces library may be replaced by any other DOM implementation.