Skip to content

Developer Guide

dsisco11 edited this page Jul 9, 2019 · 5 revisions

If you are reading this page; Thank you for any contribution to this project as the project itsself is quite an undertaking.
On this page you will find information & standard practices regarding the development of CssUI.
As with any large or collaborative project it is very important that all contributions are consistent in things like class/variable naming, namespace placement, among other things.

Table of Contents

  • Namespaces

Namespaces

Namespaces and what should go in them.

CssUI

This is the root namespace of this project and as such it should contain only the things that end users will commonly need to interact with.

CssUI.CSS

Here we place any kind of class or structure defined or derives from the official CSS specification documents.
Examples:
ICSSRule because it was explicitly defined in the specifications.
CssRule because it's the implementation of ICSSRule.
CssTokenizer because it's the implementation of the parsing process described in the specifications.

CssUI.Internal

Anything that's not forward facing as it were, the user should never have to access these things while using the library normally.
Examples:
AtomicString This class is used to speed up frequent string lookups within the element property system.
CssValueHash This class is used to quickly check if a CssValue has changed.

Clone this wiki locally