summaryrefslogtreecommitdiff
path: root/projects/libcss/index.en
blob: bb5122a464cc7596fece3f8849775bbf79e6912d (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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<!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/libcss.git/plain/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/libcss.git/">browse the source code</a> via the online interface. Alternatively, you can check it out with Git:</p>

<p class="svncommand">$ git clone git://git.netsurf-browser.org/libcss.git</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.4.0</dt>
<dd><a href="http://download.netsurf-browser.org/libs/releases/libcss-0.4.0-src.tar.gz">Tarball</a> &ndash; <a href="#changes-0.4.0">Changes</a></dd>
<dt>LibCSS 0.3.0</dt>
<dd><a href="http://download.netsurf-browser.org/libs/releases/libcss-0.3.0-src.tar.gz">Tarball</a> &ndash; <a href="#changes-0.3.0">Changes</a></dd>
<dt>LibCSS 0.2.0</dt>
<dd><a href="http://download.netsurf-browser.org/libs/releases/libcss-0.2.0-src.tar.gz">Tarball</a> &ndash; <a href="#changes-0.2.0">Changes</a></dd>
<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.4.0">LibCSS 0.4.0</dt>
<dd><ul>
<li>Added support for CSS3 overflow-x and overflow-y properties.</li>
<li>Fix to !important handling with play-during property.</li>
<li>Improved test coverage.</li>
<li>API <a href="http://git.netsurf-browser.org/libcss.git/plain/docs/API-ABI-Changes">changes made</a>.</li>
</ul></dd>
<dt id="changes-0.3.0">LibCSS 0.3.0</dt>
<dd><ul>
<li>Added support for the writing-mode property.</li>
<li>Significantly optimised selection performance.</li>
<li>Made many fixes and internal clean-ups.</li>
<li>Added support for multilib.</li>
<li>API and ABI <a href="http://git.netsurf-browser.org/libcss.git/plain/docs/API-ABI-Changes">changes made</a>.</li>
</ul></dd>
<dt id="changes-0.2.0">LibCSS 0.2.0</dt>
<dd><ul>
<li>Updated example code.</li>
<li>Added support for CSS widows and orphans properties.</li>
<li>Minor selection optimisations.</li>
<li>Several minor fixes.</li>
<li>Updated to use new core buildsystem.</li>
</ul></dd>
<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>