summaryrefslogtreecommitdiff
path: root/projects/libcss/index.en
blob: b28128811609c029375135ea31440e906d37d188 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>LibCSS | CSS Library</title>
<link rel="stylesheet" type="text/css" href="/projects/projects.css">
<link rel="icon" type="image/png" href="/webimages/favicon.png">
</head>
<body>

<div class="projects">
<ul>
<li><a href="/">NetSurf</a></li>
<li><a href="/projects/hubbub/">Hubbub</a></li>
<li><strong>LibCSS</strong></li>
<li><a href="/projects/libdom/">LibDOM</a></li>
<li><a href="/projects/libparserutils/">LibParserUtils</a></li>
<li><a href="/projects/libwapcaplet/">LibWapcaplet</a></li>
<li><a href="/projects/libsvgtiny/">Libsvgtiny</a></li>
<li><a href="/projects/libnsfb/">LibNSFB</a></li>
<li><a href="/projects/libnsbmp/">Libnsbmp</a></li>
<li><a href="/projects/libnsgif/">Libnsgif</a></li>
<li><a href="/projects/librosprite/">LibROSprite</a></li>
<li><a href="/projects/iconv/">Iconv</a></li>
<li><a href="/projects/rufl/">RUfl</a></li>
<li><a href="/projects/ttf2f/">TTF2f</a></li>
<li><a href="/projects/tinct/">Tinct</a></li>
<li><a href="/projects/libpencil/">Libpencil</a></li>
</ul>
</div>

<h1>LibCSS</h1>

<h2>What is LibCSS?</h2>

<p>LibCSS is a CSS (Cascading Style Sheet) parser and selection engine, written in C. It was developed as part of the <a href="/">NetSurf</a> project and is available for use by other software under the MIT licence. For further details, see the <a href="http://source.netsurf-browser.org/trunk/libcss/README">readme</a>.</p>

<h2>Features</h2>

<ul>
<li>Parses CSS, good and bad</li>
<li>Simple C API</li>
<li>Low memory usage</li>
<li>Fast selection engine</li>
<li>Portable</li>
<li>Shared library</li>
</ul>

<p>Future:</p>

<ul>
<li>Available and packaged in major Linux distributions</li>
</ul>

<h2>Source code</h2>

<p>You can <a href="http://source.netsurf-browser.org/trunk/libcss/">browse the source code</a> via the online interface. Alternatively, you can check it out of SVN:</p>

<p class="svncommand">$ svn co svn://svn.netsurf-browser.org/trunk/libcss</p>

<p>LibCSS is licensed under the <a href="http://opensource.org/licenses/mit-license.php">MIT Licence</a>.</p>

<h2>Releases</h2>

<p>Most recent first:</p>

<dl class="releases">
<dt>LibCSS 0.1.2</dt>
<dd><a href="http://download.netsurf-browser.org/libs/releases/libcss-0.1.2-src.tar.gz">Tarball</a> &ndash; <a href="#changes-0.1.2">Changes</a></dd>
<dt>LibCSS 0.1.1</dt>
<dd><a href="http://download.netsurf-browser.org/libs/releases/libcss-0.1.1-src.tar.gz">Tarball</a> &ndash; <a href="#changes-0.1.1">Changes</a></dd>
<dt>LibCSS 0.1.0</dt>
<dd><a href="http://download.netsurf-browser.org/libs/releases/libcss-0.1.0-src.tar.gz">Tarball</a> &ndash; <a href="#changes-0.1.0">Changes</a></dd>
<dt>LibCSS 0.0.2</dt>
<dd><a href="http://download.netsurf-browser.org/libs/releases/libcss-0.0.2-src.tar.gz">Tarball</a> &ndash; <a href="#changes-0.0.2">Changes</a></dd>
<dt>LibCSS 0.0.1</dt>
<dd><a href="http://download.netsurf-browser.org/libs/releases/libcss-0.0.1-src.tar.gz">Tarball</a> &ndash; First release</dd>
</dl>

<h2>Changes</h2>

<dl class="changes">
<dt id="changes-0.1.2">LibCSS 0.1.2</dt>
<dd><ul>
<li>Avoided interning standard strings for every stylesheet, style tag and style attribute.</li>
<li>Made significant optimisations to style selection.</li>
<li>Fixed case where font-family is unspecified in input CSS.</li>
<li>Added some support for @font-face.</li>
<li>Fixed !important on opacity property.</li>
<li>Added support for parsing CSS3 Multi-column layout properties.</li>
</ul></dd>
<dt id="changes-0.1.1">LibCSS 0.1.1</dt>
<dd><ul>
<li>Improved build tree cleaning.</li>
<li>Fixed build with GCC 4.6.</li>
<li>Added support for selection of page-break properties.</li>
<li>Optimised style selection.</li>
</ul></dd>
<dt id="changes-0.1.0">LibCSS 0.1.0</dt>
<dd><ul>
<li>Fixed destruction of bytecode for clip property.</li>
<li>Added scoping for use from C++ programs.</li>
<li>Removed need for library initialisation and finalisation.</li>
<li>Added support for CSS2 system colours.</li>
<li>Added support for CSS2 system fonts.</li>
<li>Altered external representation of colours to aarrggbb.</li>
<li>Added support for CSS3 rgba() colour specifier.</li>
<li>Added support for CSS3 'transparent' colour keyword.</li>
<li>Added support for CSS3 hsl() and hsla() colour specifiers.</li>
<li>Added support for CSS3 'currentColor' colour keyword.</li>
<li>Added support for CSS3 'opacity' property.</li>
<li>Added support for CSS3 selectors.</li>
<li>Added support for CSS3 namespaces.</li>
<li>Enabled clients to fetch imported stylesheets in parallel.</li>
<li>Made internal bytecode 64-bit safe.</li>
<li>Fixed leaking of strings.</li>
<li>Rewritten property parsers.</li>
<li>Certain property parsers auto-generated at build time.</li>
<li>Added clang build support.</li>
<li>Various portability enhancements.</li>
<li>Fixed selection for pseudo elements.</li>
<li>Added simultaneous selection for base and pseudo elements.</li>
<li>Namespaced all global symbols.</li>
<li>Updated test suite.</li>
<li>Future-proofed ABI.</li>
<li>Ensured fixed point maths saturates instead of overflowing.</li>
<li>Fixed clip property handling.</li>
<li>Fixed selection and cascade of &quot;uncommon&quot; CSS properties.</li>
<li>Added structure versioning for client input.</li>
</ul></dd>
<dt id="changes-0.0.2">LibCSS 0.0.2</dt>
<dd><ul>
<li>Allow stylesheets to be used in multiple contexts simultaneously.</li>
<li>Fix possible stylesheet reuse crash.</li>
</ul></dd>
<dt id="changes-0.0.1">LibCSS 0.0.1</dt>
<dd>First release.</dd>
</dl>

<h2>Contact</h2>

<p>If you would like to help develop LibCSS, or have questions about the library, please join the NetSurf <a href="http://www.netsurf-browser.org/lists/netsurf-dev">developer mailing list</a>.</p>

</body>
</html>