HTML and CSS enhanced for screen layout tasks. %% units and expandable backgrounds allow to use more flexible and "screen oriented" layout schemas.

Custom behaviors API allow you to define how HTML elements will be drawn, react on keyboard and mouse events.

Low level interaction with the host application. No intermediate component technologies involved. Just pure API calls, like in any other native Windows common controls. HtmLayout uses WM_NOTIFY mechanism for interacting with the host window.

Create "skinable" user interfaces. You can now use HTML files as "skins" for your applications.

Build help systems, HTML book readers, lightweight browsers, etc.

Develop applications with support of several UI languages. Each language (or locale) has its own requirement for screen layout as the same phrase (e.g. input field caption) could have different length in different language. Just create different HTML resources for different languages. HTMLayout will render all captions (as if they are just HTML text) and automatically adjust input fields (control windows) positions.

HtmLayout is a "native" window class implementation and is distributed in binary form as native Windows DLL (dynamic load library).

HTMLayout does not use any heavy component technologies this is why its startup time is just zero. And couple words about its light weight. .... well, not words just numbers:

IE 6.0

FireFox 1.0

Opera 7.5

HTMLayout(browse.exe)

Mem Usage (Active window)

8,300 kb

11,000 kb

6,200 kb

5,100 kb

Mem Usage (Non active window, iconized)

1,900 kb

1,500 kb

2,700 kb

550 kb

Peak Mem Usage

19,000 kb

23,000 kb

15,548 kb

9,100 kb

Handles

344

194

117

128

GDI Objects

228

160

351

54

These numbers were taken while browsing the Complexspiral Redux page (basic HTML and CSS level 1) in Microsoft Internet Explorer, Mozilla Firefox and HTMLayout (browser.exe).

Numbers are not precise - they just give you rough estimation of what to expect.

Actually such comparisons are not exactly fair to be honest. HTMLayout designed to be an embeddable component. So we have different priorities in our engine design therefore different optimization targets.