While porting Graphics functionality using Direct2D primitives I’ve tried to implement immediate mode drawing in Sciter. Problem: as we know HTML5 mandates <canvas> to use off-screen bitmap buffer for drawings. Such model is not transform friendly (scale, rotation) as it involves bitmap transformation. So even when Graphics primitives (line,rectangle,etc.) are vector-ish the result is not…
Category: HTML and CSS
Sciter v.2 preview + gradients
I’ve added support of gradients in H-SMILE core. On the right are some of renderings with debug output (line with arrow) showing gradient vector used in each case. Sciter v.2 SDK preview is available here: terrainformatica.com/sciter/sciter2-tech-preview.zip Radial and linear gradients are supported. Implementation of radial gradients follows this draft: dev.w3.org/csswg/css3-images/#radial-gradients Implementation of linear gradients in…
DirectWrite font rendering.
While experimenting with Direct2D/Write back-ends for htmlayout/sciter got these results: Rendering of <textarea> in default DirectWrite mode: The same but in GDI: Probably subjective but classic GDI rendering is better for typical UI font. DirectWrite variant is more blurry (especially note the selection). So I forced to add one more proprietary CSS property: font-rendering-mode: classic…
Behaviors, simple jQuery extension.
Behaviors as an entity is a declarative way to assign/bind scripting methods to DOM elements. We can think that browsers have following declarations in their default CSS declarations: input[type=text] { binding: TextEditorImpl; } input[type=button] { binding: ButtonImpl; } select { binding: SelectImpl; } … So when we define <input type="text" /> in our markup we…
Style sets in H-SMILE core.
HTMLayout and Sciter are both use H-SMILE core to render HTML/CSS. And so both of them support so called style sets. In this article I’ll try to explain what style set is about and why I decided to introduce them. First of all: Style set is a named block of style rules – definition of…
Cheap CSS implementations?
CSS3 defines [att=val] selectors . And they work in all modern browsers in static form. But when you will try to use such a selector with attributes changed from script you will get problems. Following works as expected in FF but does not work in Google Chrome and Opera: <html> <head> <style> div { display:none;…
CSS or just MESS?
I believe that CSS (Cascading Style Sheets) in its development has reached some point that could be classified as a mess. I suspect that quantity of features has changed the quality of the whole foundation. And not exactly in good direction. Look, CSS used to have simple and regular construction: selector { attribute1: value[s]; attribute2:…
CSS Flexible Flow Module
We have published official proposal about ‘flow’ and flex units used in h-smile core: CSS Flexible Flow Module With the hope that the Web will benefit from them.
Announce: ScIDE
ScIDE is a compact and handy source code editor with syntax highlighting (colorizing). ScIDE is a system of HTML, CSS and scripting files that are running inside the Sciter. So ScIDE is so-called .scapp – Sciter application. You can run ScIDE: inside Sciter.exe player (part of main SDK distribution) or as a separate application ScIDE.exe…
CSSS! and computational complexity of selectors.
Lets say we have following markup: <ul> <li>First</li> <li>Second (with <a href=#>hyperlink</a>)</li> <li>Third</li> <li>Fourth (with <a href=#>hyperlink</a> too)</li> </ul> and the styling task: all <li> that have <a> elements inside have yellow background. If we would have hypothetic selector :with-child(selector) then we could write this as: li:with-child(a:link) { background:yellow; } Problem with this selector lies…