After building the Content Structure (HTML) of your website, the next step in the process is building its Visuals (CSS).
To be able to ease the process of writing the style sheets, we must segment it into levels:
- Level 1: Default (browser level)
- Level 2: Normalize (boilerplate level)
- Level 3: Modify (visibility and sizes level)
- Level 4: Template (functionality level)
- Level 5: Theme (custom level)
Ideally, each level must be buildt on top of the previous one yet still independent. For example, leaving the style sheet at browser level must present usable information. The same principle applies as one builds the style sheet level per level.
Level 3: Modify
- hide accessible names
- hide components
- set default state of components thru class names
- active element padding
- spacings (margins between components and paddings around components)
- dimensions are set at 100% for Mobile-First
Level 4: Template
- set the functionality of utilities such as Search and Navigation
Level 4: Theme
- background colors/images
- visual elements (badges, logos, lines/borders, shadows, corner radius)
It is good news that Philippines ranks number 9 out of 142 countries in the Global Gender Gap Report 2014. This means that the gap between genders in many aspects of our economy is getting slimmer.
And what is it to us as a country?
People and their talents are two of the core drivers of sustainable, long-term economic growth. If half of these talents are underdeveloped or underutilized, the economy will never grow as it could. Multiple studies have shown that healthy and educated women are more likely to have healthier and more educated children, creating a positive, virtuous cycle for the broader population. Research also shows the benefits of gender equality in politics: when women are more involved in decision-making, they make different decisions—not necessarily better or worse—but decisions that reflect the needs of more members of society.
I’m currently working on HopScotch 3 and it involves a lot of revising the HTML markup of content structure plus a lot of structural class names.
In relation to this HTML refactoring, I’d like to share with you some notes on writing the HTML markup of web sites:
- Text. Begin by writing in plain text all the important content your web site has. For example, you might have a web site logo – translate it into words; if you web site has a tagline or description, write that too.
- Tag. Follow it up by wrapping each text content in its semantic HTML tag. Avoid using
spanjust yet. For example, your web site name should be wrapped in a heading tag like
h1since it is the title of your HTML document; your tagline could be wrapped in a
ptag. At this point, all heading tags could be in
h1since we have not put these objects in context yet. Eventually, we would be arranging the hierarchy of these tags – from
- Group. This is where div and span will come into play. You will have to group and segment the objects based on semantics and not on visual appearance. For example, you could wrap both the web site name and tagline in one
- Classify. Put the class names into the grouped structure of the objects. For example, the
divthat contains the web site name and tagline could be classified as “web-product-name”. The test for its semantics is if the name is true to the objects’ nature – something that isn’t tied up to visual appearance or layout.
- Format. To add another level of semantics and structure to the objects, we could use Microformats. It uses a vocabulary of class names that give structure to common content such as a person’s information, a movie’s information, an organization’s information and much more.
Similar to UI State (which only has active or inactive), UI Condition can be anything to describe the condition of an object.
To denote that an article entry does not have content, we add the class
ui-cond__entry--blank which translates to “the UI condition of entry is blank”.
Structural Classes are classes that denote hierarchy in HTML tags particularly in
Example: Structure of a Component
Please note that
h denotes a heading tag that varies from 1 to 6 depending on the HTML 4 outline.
The Structural Classes in this example are the following:
accessible-name(heading or official name)
Maximum Number of Classes
While building the structure, we will put generic and specific class names into each area. The suggested maximum number of classes to add into a single
div is two (2).
The first class to be added is the generic class – which is basically, what the component is. The second class – if available – is the category it belongs to – which will become the specific class – this is usually inherited from its parent.
Example of Generic Class
In this example, we’ll use the Author Component.
The Author Component is part of an article byline wherein the name of the author is indicated (along with the date the article was published).
Name of component (generic class): Author
Category of component (specific class): Article Entry
Using this information, we can plot the classes into the structure.
<div class="comp author_comp article-entry-author_comp">
<div class="cr author_cr article-entry-author_cr">
<div class="ct author_ct article-entry-author_ct">
</div><!– article-entry-author_comp –>
This structure now features the following:
- a generic class (author_comp) which will be used in any instance of author in the HTML document
- specific class (article-entry-author_comp) which could be used to directly select the component (e.g., for use in CSS)
The objects inside
ct (content) could simply have their generic classes – just like with the heading tag which only has
accessible-name as its class.
There’s a need for web pages to be defined in which view it is in and in which type of container the whole view is in.
In this regard I am using
ui-view--<view name> and
ui-cr--<container name> (cr short for container).
UI View is the representation of the totality of the page or screen the user is in. Common examples of this is the Sign In screen of web apps, Dashboard, or Home views.
Example: If you are on the Terms & Conditions page or a web site, you could classify it as:
UI Container, on the other hand, is the type of user interface that contains the components or even the whole view (in this case, it is usually called screen or page).
Example: Using the example above, the page is contained in some sort of container – it is usually contained in a page or screen. For the sake of being device-agnostic, I would define it as screen – it being displayed thru a screen.
Other types of UI Containers are:
- dialog box
In my entry, UI Type and State Class Naming Convention, I used UI Type to define a dialog box – while in this entry, I used dialog box as one of the standard UI Containers.
I am now using UI Type to define a specific UI – something that one invents and not a standard in the community. For example, you’ve created a three-column panel that slides one by one – you could dub it as “three-col-panel” thus
UI Container is a modifier – once you’ve added this class to a component, it modifies its standard structure to take the form of the said container. The same can be said for UI Type, but what it modifies is the whole view, including the containers. Simply put, you may be in Terms & Conditions view, and while it is contained in a screen or page, once you’ve added a three-column-panel UI Type, the layout transforms into a three-column type of layout.