Herodotus CSS. Combining the Best of Modern Methodology. Presentational Documentation

Size: px
Start display at page:

Download "Herodotus CSS. Combining the Best of Modern Methodology. Presentational Documentation"

Transcription

1 Herodotus CSS Presentational Documentation Combining the Best of Modern Methodology When I first started out in web development in 011, I learned it the old way. I learned about keeping my HTML neat and tidy, naming my classes semantically and using specificity in CSS. But the web changed, becoming more complex as time went on and exposing the faults in our best practices. People like Nicole Sullivan, Nicolas Gallagher, Brad Frost, Jeremy Clarke and Jonathan Snook saw how web was starting to demand a different approach and developed new methodologies. In 013, I started using Nicole Sullivan's OOCSS after reading about it in a chapter of The Smashing Book 4. I experienced an immediate jump in my efficiency when I started using this method. The principles of modularity and abstraction that it offered made my code infinitely more maintainable and even my speed in initial development went up. However over time, I started to become aware of some problems in the methodology. One thing led to another, and with my Master's Thesis drawing near, I decided to create an improved methodology. I started out by analyzing CSS' history and modern CSS methodologies - OOCSS, SUIT CSS, Atomic Design, DRY CSS and SMACSS. At the beginning, I planned on simply improving OOCSS - but once my research was done, this approach changed. Almost every methodology I had found had its benefits and drawbacks - so I decided to combine their knowledge and my own realizations into one comprehensive methodology. This is what Herodotus CSS is. Herodotus is known as the Father of History, as he was the first scholar who researched and combined knowledge from an array of sources. I discovered that this was exactly my approach to not start from scratch but instead fuse brilliant ideas together. 1

2 The Architecture The Architecture Different developers have different workflows. Herodotus CSS introduces an architecture that is meant to be flexible for any developer. It starts with base styles. Base styles are the foundation of your website. Here, the standard styles Derived from of every HTML Tag are written using element selectors. Base styles also include reset styles. The basis you create here already takes away a bunch of work you would have to do later on and puts it in a easy-to-find box. h3 { font-size: 10%; } a { color: #fff; text-decoration: none; &:hover, &:focus, &:active { color: #fff; text-decoration: underline; } } The rest of the architecture deals with the tangible parts of a design, starting with layout styles. Layout styles make up the structure of your website, most likely providing a grid layout system. It does not refer to any type of content. Derived from

3 Components Components Now let's dive a little deeper into this layout. What we will find is all kinds of content. This content, no matter what kind, is treated in the concept of modularity, as in most other CSS methodologies. However, in Herodotus CSS, Module architecture is split in three. Derived from Headline in a Background Read more On the highest level, we have components. These are units of content that serve a clear purpose to the user, whether they are news blocks, carousels, navbars, or simply an image with text next to it. All elements that they contain are defined as subparts of that component and receive their own classes and rules. If you have small variations of a component, feel free to create modifier classes that extend the original component classes. Components can be nested into each other endlessly. This allows you to define broader and broader units of meaning while still preserving the reusability of smaller components. Just be sure to detect smaller ones and create them first before moving on to the bigger picture. Atoms Herodotus CSS goes further than this though. The various visual pieces that make up a component, as well as being subparts, also receive their own clear classification. As far as pieces are visually separate from each other, they are seen as atoms. Derived from Atomic Design Read more This abstraction gives us very reusable, yet overseeable and tangible elements that hook into components, which in turn bend them to fit their needs. However, in order for this to work, they have to follow a couple of rules. 3

4 Atoms 1 Atoms have to be condensed. Similar Atoms of one type (e.g. links, buttons or list items) should be distinct from one another in order to prevent too much redundancy. Atoms themselves are contextless. They have to be able to hook into any Component, so when you're styling an atom, think of how it would look on its own. It doesn't hurt to look at the rest of the design at this point and spot similar atoms in different places. Condense what you find and apply. The styles that are left are what the specific Component needs to make the atom work! Add that to the component subpart styles. 3 The last two points lead up to this one, and it might be hard to grasp at first. Don't worry though, my brain hurt while thinking about it too: Distinct Atoms do not come in variations of their own. That means that modifier classes are dumped for Atoms. Why, you may ask? It seems essential. Well, the whole point of Herodotus CSS is to provide clarity - and Component Subparts are already in charge of Atom modification. If Atoms also had that task, you would have no way of knowing which path to choose when a green link has to be a bit bigger somewhere else. Giving the task to component subparts preserves the independence of Atoms. You might have to repeat a line of code to make that link bigger a couple of times, but you also definitely know where to find that code. 4

5 Utilities Utilities Now all that's missing is the glue that holds everything together. Utilities, unlike layout styles, do not set up a structure, but define a module's spacial relation towards its siblings and parent. They define one single CSS declaration each, making them infinitely reusable. However, in Herodotus CSS, they are tightly controlled, preventing them from overflowing your elements and CSS files. Utility classes are assigned an array of properties that differ the most depending on an element's location. These properties are almost exclusive to utilities. Here's the list: margin padding width height float text-align Derived from Remember when I said almost exclusive? Well, in some cases, you may require pixel perfect measurements, i.e. ugly numbers such as "34px". If that is the case, the value is not generally repeatable. Instead, it's most likely that you wrote it for one specific case. So don't hesitate to write those types of declarations into the component they apply to. Also, some of these properties are necessarily shared with your layout styles. Let's Talk about Names. Before we get into how all of this fits together in practice, we have to talk about naming. Herodotus CSS' naming system is not heavy on rules and most of what you'll see here is a recommendation. Different developers are used to different naming systems, so being too strict would be counter-productive. What you see below uses a BEM (Block Element--Modifier) naming flavor that was developed by Nicolas Gallagher. Derived from <Prefix>- <Mobile Prefix>- <Block> <Element> --<Modifier>.is-<State> 5

6 Let s Talk about Names. <Prefix>- This part is used to clarify whether a module class refers to a component, an atom or a utility. Components receive the prefix c-, atoms receive the prefix at- and utilities receive the prefix u-. <Mobile Prefix>- Any class can be made responsive by adding a mobile prefix. These are usually abbreviations for various screen sizes such as xs-, sm- or md-. <Block> The block segment is a module's main name. Components are named after their functionality, atoms after their element type and utilities after the role that they fulfill. <Element> Child elements of components are named using this segment. --<Modifier> Modifiers have various purposes. In components, they express variations and small class extensions. In utilities and atoms, modifiers are simply used to specify their nature and differentiate elements of the same type..is-<state> States contain CSS declarations for behaviors that are modified either during runtime or page generation. In CSS, they are treated like pseudo-classes and receive their own classes. These are then added to whatever class the state applies to, just like :hover or :active. 6

7 Let s Talk about Names. Now, just combine these building blocks in any way you need them to construct your classes. What you'll get might look something like this: A Navbar Component.c-navbar Navbar Links.c-navbar link Navbar Listitems.c-navbar listitem Link Atoms.at-link--primary.at-link--secondary.at-link--type1.at-link--type Spacer Utilities.u-spacer--small--downward.u-spacer--large--upward.u-spacer--medium--right.u-spacer--smaller--left But again, the way I personally construct my names in detail does not necessarily have to be yours. If you like using CamelCase, go for it. If you'd rather have the spacer utilities be named margin at the block level, be my guest. The only thing that is important is that you are consistent and that the prefixes and overall BEM structure are preserved. Also, keep in mind that classes with mobile prefixes are meant to be added to the base class. If you want responsive rules to always apply to a class, just write them directly into it. With that being said, I did spend time analyzing naming possibilities. What I came up with is a list of name recommendations sorted by priority. It can serve as sort of a guideline if you have trouble naming something. If you're stuck on one type of name, move on to the next in the priority list. 7

8 Let s Talk about Names. General Segments <Prefix>- <Mobile Prefix>-.is-<State> c- atu- Notes xs- sm- md- lg-.is-active.is-collapsed All of the names presented here are examples. For prefixes, you can pretty much use any abbreviation you feel comfortable with. States can be named after the visual or functional state that the element finds itself in. Components Name Segment Expression Priority List Examples Notes <Block> 1 Functionality navbar carousel I didn't find any case where I couldn't name a component after its functionality. <Element> 1 Functionality send Purpose for the Developer container 3 Element Type link --<Modifier> 1 Functionality --peripheral Appearance --detailed 3 Numerical --primary 8

9 Let s Talk about Names. Atoms Name Segment Expression Priority List Examples Notes <Block> 1 Element Type link listitem Since atoms on their own are contextless, you shouldn't name them after any sort of functionality. --<Modifier> 1 Appearance Numerical --unstyled --primary You can add more modifiers to further specify the atom. Utilities Name Segment Expression Priority List Examples Notes <Block> 1 Functionality Modified CSS Property spacer float --<Modifier> 1 Appearance Numerical --small --primary You can add more modifiers to further specify the utility. 9

10 Putting It All Together Putting It All Together Now that we have the architecture set up, let's look at how this works in practice. We'll start with the simple example component we set up before and express it in HTML with the applied classes. Headline in a Background Read more <div class="c-infobox"> <h3 class="c-infobox headline u-island--smaller"> Headline </h3> <p> Content </p> <a class="at-button--primary u-float--right"> Read more </a> </div> As you can see, I've mixed and matched component, atom and utility classes in HTML to achieve my goal. However, I don't need to use everything everywhere. The <h3>-tag doesn't need an atom class because this type of headline can be found in the base styles. It is my default h3. Conceptually, it is still an atom, though. The <a>-tag on the other hand doesn't have to include a component subpart class because the component doesn't need to change the atom. The <p>-tag is left completely alone because the base styles are all it needs in this case. Utilities are sprinkled in when necessary to take over the properties that are assigned to them. So the classes in use already convey a large amount of information to the developer, but aren't too many in number. You can expand on the clarity, though. For instance, I like to head off components with their base class - in the above case, that would be c-infobox. While I don't need any special styles here, it tells me where the component begins. Don't overuse this method though, as a lack of classes can also convey information, for example that an element did not need special component styling etc. So what is visually a component or an atom doesn't necessarily need to be explicitly declared as such within your HTML. Concerning layout styles, I should mention that they can absolutely be used within your larger elements. A good rule of thumb is that layout styles are applied to containers, e.g. as in grid classes, while utilities are applied directly to components, component subparts and atoms. 10

11 File Separation File Separation So by setting up this architecture, we've formally separated five concepts from each other - base, layout, component, atom and utility styles. Now we're going to transfer this logic to our file structure. We want our CSS files to be short and easy to overview, but also easy to find. We'll begin by creating folders for each category and put components, atoms and utilities in a parent folder named Modules. Let's take it one step further. Sure, now our categories are nicely divided, but we also have multiple types of components, atoms and utilities. In the block segment of their names, that type is defined. So instead of having one long file for components, one for atoms and one for utilities, we will give each type its own file and name it after that type. We should get something like this: Derived from This makes our various elements very easy to find and keeps the individual files short. The flipside of this is that you have to create a new file every time you create a new element type. However, this small amount of extra work pales in comparison to the the time you would otherwise have to spend looking for something. This is also where preprocessors like SASS and LESS jump in. All of these files couldn't possibly be separate CSS files, the load times would go through the roof and Google would hate you. Instead, let the preprocessor of your choice combine the files into one for you. 11

12 The Framework Question At this point, I should mention that while I really would recommend this approach, it s not set in stone. If you prefer to have less files and separate your code in a different way that you find more comfortable, you are entirely free to to do so. The important thing is that you keep a structure that you can navigate through easily. The Framework Question Frameworks are useful. There's no denying that. They take away a bunch of legwork from the development process. However, you'll never need every single part of a large framework like Bootstrap. Also, Herodotus CSS naturally isn't applied in any of them. In the end, Herodotus CSS recommends the following: 1 If your framework comes in preprocessor files, use them. Then, separate module files from layout or base files and put them into their own folders. This may take some time, but afterwards, you'll never have to do it again. Now, take the files that you don't use and place them into a folder clearly marked as containing unused styles. I recommend that you remove all files that have anything to do with modules. This will guarantee a lean and overseeable foundation of layout and base styles to start from. 3 If there are any module files that you want to keep, place them into a separate folder inside the Modules folder. This way, you can find framework-specific styles more easily. Some frameworks also come with files dedicated to providing essential variables or a library of mixins. Try to use these conservatively so that you don't have to constantly cross-check them. 1

13 Special Cases Special Cases Icon Fonts On first sight, icons don't really fit the bill when it comes to components or atoms. In CSS, they're implemented by using the :before or :after pseudo-classes, which aren't real HTML tags that we can apply classes to. To make matters worse, the type of icon is also controlled via CSS, which is highly variable. At the same time, there is usually a set of rules that determines the icon font family, among other things, which is highly static. All in all, there are two cases of icon use, and each can be solved. 1 Home News Galleries An atom is associated with various different icons throughout the site, each of which shows a very specific function. Read more An atom is mostly associated with one single icon throughout the site. The icon itself is abstract and applicable in any situation. These two cases mirror exactly what components and atoms are in charge of, respectively. Atoms are meant for general use, so they re ideally condensed into something a little bit more abstract. Components are in charge of the situational specifics. This sounds like a perfect fit. However, the static icon code creates an interesting dilemma. If we wrote this code into atoms and components, we d be repeating ourselves a lot. In my case, the static icon code looks like this: font-family: 'icomoon'; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; /* Better Font Rendering =========== */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; So yeah, it's pretty long. However, it s still better to repeat it than to put it into a separate and reusable class. This type of extreme abstractification is limited in Herodotus CSS on purpose. In HTML, your class attributes shouldn t be too verbose and you should be able to quickly tell what classes you need. Icons are visually and conceptually bound 13

14 Special Cases to tangible elements, which is why their code, both static and variable, should be found there. It s simply more natural. Something you can do to save time is stick the static code into a mixin, depending on the preprocessor you use. To summarize, if an icon within an element changes depending on its context, write all of the icon code into a component subpart class. If the icon stays the same, no matter where the element is placed, write the code into an atom class. Forced Complexity There is a certain case when it comes to atoms where the coding doesn't work out as planned. It's not a particularly rare case either. This occurs when a design element is visually an atom, but needs multiple HTML elements to construct. If this happens, what you've got is a small component, not an atom. Build the element like you would any other component. The only special thing you need to do is name it appropriately. What I recommend here is to name it after the element type and append --complex to distinguish it from its atomic siblings. The result would be something along the lines of c-button--complex--primary. However, if you can, use one HTML element only. Small components should be the exception, not common practice. Exceptions to Utility Properties Running text has quite a special place in CSS heart. What I am speaking of goes outside the realm of components and into simpler terms - because if we strip away all of the complexity in design that we have today, we are left with writing. Headlines, paragraphs and lists. Even browsers, by default, automatically add margins and paddings to these elements, because they have to fit the flow of text. For these elements, it would be unnatural to disallow utility properties to be written into their base styles. This doesn t break the rules of Herodotus CSS - running text is simply different from visual elements. Psuedo-elements are the second exception. This was something I discovered after already having built the Herodotus CSS website and begrudgingly redacted. If you were to add utility classes that set the margins, padding, etc. of :before and :after elements, you would start seeing an insane amount of verbosity in you class attributes. It wouldn t make sense to do this, 14

15 In the End either. Icons, for example, were already declared to be natural parts of their respective atoms or components, so why would the icons margins not be? So instead, put the required utility properties where you defined the pseudo-element s content. So altogether, there are three cases where utility properties are not exclusive to utility classes: Pixel Perfect Measurements Elements for Running Text Pseudo-Elements In the End I created Herodotus CSS to make web development faster, more flexible and more clear - to minimize tedious tasks and let you, the developer, concentrate on the engineering challenges. Currently however, the only person who has used it is me. So please feel free to use it in your project and share it with the community. If you feel that it can be improved upon or that I left something out, please share your thoughts and suggestions with me - I plan to develop Herodotus CSS for a long time. My Contact Information Patrick Santy Mail: mail@herodotuscss.com Mobile:

PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between

PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between MITOCW Lecture 10A [MUSIC PLAYING] PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between all these high-level languages like Lisp and the query

More information

CSS worksheet. JMC 105 Drake University

CSS worksheet. JMC 105 Drake University CSS worksheet JMC 105 Drake University 1. Download the css-site.zip file from the class blog and expand the files. You ll notice that you have an images folder with three images inside and an index.html

More information

TUTORIAL MADCAP FLARE Tripane and PDF

TUTORIAL MADCAP FLARE Tripane and PDF TUTORIAL MADCAP FLARE 2018 Tripane and PDF Copyright 2018 MadCap Software. All rights reserved. Information in this document is subject to change without notice. The software described in this document

More information

The Stack, Free Store, and Global Namespace

The Stack, Free Store, and Global Namespace Pointers This tutorial is my attempt at clarifying pointers for anyone still confused about them. Pointers are notoriously hard to grasp, so I thought I'd take a shot at explaining them. The more information

More information

Scalable and Modular Architecture for CSS. A flexible guide to developing sites small and large. by Jonathan Snook

Scalable and Modular Architecture for CSS. A flexible guide to developing sites small and large. by Jonathan Snook } Scalable and Modular Architecture for CSS A flexible guide to developing sites small and large. by Jonathan Snook Copyright 2012 Jonathan Snook All Rights Reserved SMACSS: Scalable and Modular Architecture

More information

ORB Education Quality Teaching Resources

ORB Education Quality Teaching Resources These basic resources aim to keep things simple and avoid HTML and CSS completely, whilst helping familiarise students with what can be a daunting interface. The final websites will not demonstrate best

More information

MITOCW watch?v=kz7jjltq9r4

MITOCW watch?v=kz7jjltq9r4 MITOCW watch?v=kz7jjltq9r4 PROFESSOR: We're going to look at the most fundamental of all mathematical data types, namely sets, and let's begin with the definitions. So informally, a set is a collection

More information

Microsoft Expression Web Quickstart Guide

Microsoft Expression Web Quickstart Guide Microsoft Expression Web Quickstart Guide MS-Expression Web Quickstart Guide Page 1 of 24 Expression Web Quickstart Guide (20-Minute Training) Welcome to Expression Web. When you first launch the program,

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

Intro. Classes & Inheritance

Intro. Classes & Inheritance Intro Functions are useful, but they're not always intuitive. Today we're going to learn about a different way of programming, where instead of functions we will deal primarily with objects. This school

More information

Using Dreamweaver CC. Logo. 4 Creating a Template. Page Heading. Page content in this area. About Us Gallery Ordering Contact Us Links

Using Dreamweaver CC. Logo. 4 Creating a Template. Page Heading. Page content in this area. About Us Gallery Ordering Contact Us Links Using Dreamweaver CC 4 Creating a Template Now that the main page of our website is complete, we need to create the rest of the pages. Each of them will have a layout that follows the plan shown below.

More information

P1_L3 Operating Systems Security Page 1

P1_L3 Operating Systems Security Page 1 P1_L3 Operating Systems Security Page 1 that is done by the operating system. systems. The operating system plays a really critical role in protecting resources in a computer system. Resources such as

More information

HTML and CSS a further introduction

HTML and CSS a further introduction HTML and CSS a further introduction By now you should be familiar with HTML and CSS and what they are, HTML dictates the structure of a page, CSS dictates how it looks. This tutorial will teach you a few

More information

Frontend guide. Everything you need to know about HTML, CSS, JavaScript and DOM. Dejan V Čančarević

Frontend guide. Everything you need to know about HTML, CSS, JavaScript and DOM. Dejan V Čančarević Frontend guide Everything you need to know about HTML, CSS, JavaScript and DOM Dejan V Čančarević Today frontend is treated as a separate part of Web development and therefore frontend developer jobs are

More information

Arduino IDE Friday, 26 October 2018

Arduino IDE Friday, 26 October 2018 Arduino IDE Friday, 26 October 2018 12:38 PM Looking Under The Hood Of The Arduino IDE FIND THE ARDUINO IDE DOWNLOAD First, jump on the internet with your favorite browser, and navigate to www.arduino.cc.

More information

In our first lecture on sets and set theory, we introduced a bunch of new symbols and terminology.

In our first lecture on sets and set theory, we introduced a bunch of new symbols and terminology. Guide to and Hi everybody! In our first lecture on sets and set theory, we introduced a bunch of new symbols and terminology. This guide focuses on two of those symbols: and. These symbols represent concepts

More information

Using Dreamweaver CS6

Using Dreamweaver CS6 Using Dreamweaver CS6 4 Creating a Template Now that the main page of our website is complete, we need to create the rest of the pages. Each of them will have a layout that follows the plan shown below.

More information

Introduction to Multimedia. MMP100 Spring 2016 thiserichagan.com/mmp100

Introduction to Multimedia. MMP100 Spring 2016 thiserichagan.com/mmp100 Introduction to Multimedia MMP100 Spring 2016 profehagan@gmail.com thiserichagan.com/mmp100 Troubleshooting Check your tags! Do you have a start AND end tags? Does everything match? Check your syntax!

More information

MITOCW watch?v=flgjisf3l78

MITOCW watch?v=flgjisf3l78 MITOCW watch?v=flgjisf3l78 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free. To

More information

MITOCW ocw apr k

MITOCW ocw apr k MITOCW ocw-6.033-32123-06apr2005-220k Good afternoon. So we're going to continue our discussion about atomicity and how to achieve atomicity. And today the focus is going to be on implementing this idea

More information

Introduction. Using Styles. Word 2010 Styles and Themes. To Select a Style: Page 1

Introduction. Using Styles. Word 2010 Styles and Themes. To Select a Style: Page 1 Word 2010 Styles and Themes Introduction Page 1 Styles and themes are powerful tools in Word that can help you easily create professional looking documents. A style is a predefined combination of font

More information

MITOCW watch?v=se4p7ivcune

MITOCW watch?v=se4p7ivcune MITOCW watch?v=se4p7ivcune The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

MITOCW watch?v=hverxup4cfg

MITOCW watch?v=hverxup4cfg MITOCW watch?v=hverxup4cfg PROFESSOR: We've briefly looked at graph isomorphism in the context of digraphs. And it comes up in even more fundamental way really for simple graphs where the definition is

More information

Getting Started with Eric Meyer's CSS Sculptor 1.0

Getting Started with Eric Meyer's CSS Sculptor 1.0 Getting Started with Eric Meyer's CSS Sculptor 1.0 Eric Meyer s CSS Sculptor is a flexible, powerful tool for generating highly customized Web standards based CSS layouts. With CSS Sculptor, you can quickly

More information

Make a Website. A complex guide to building a website through continuing the fundamentals of HTML & CSS. Created by Michael Parekh 1

Make a Website. A complex guide to building a website through continuing the fundamentals of HTML & CSS. Created by Michael Parekh 1 Make a Website A complex guide to building a website through continuing the fundamentals of HTML & CSS. Created by Michael Parekh 1 Overview Course outcome: You'll build four simple websites using web

More information

6.001 Notes: Section 15.1

6.001 Notes: Section 15.1 6.001 Notes: Section 15.1 Slide 15.1.1 Our goal over the next few lectures is to build an interpreter, which in a very basic sense is the ultimate in programming, since doing so will allow us to define

More information

COMSC-031 Web Site Development- Part 2

COMSC-031 Web Site Development- Part 2 COMSC-031 Web Site Development- Part 2 Part-Time Instructor: Joenil Mistal December 5, 2013 Chapter 13 13 Designing a Web Site with CSS In addition to creating styles for text, you can use CSS to create

More information

Welcome Please sit on alternating rows. powered by lucid & no.dots.nl/student

Welcome Please sit on alternating rows. powered by lucid & no.dots.nl/student Welcome Please sit on alternating rows powered by lucid & no.dots.nl/student HTML && CSS Workshop Day Day two, November January 276 powered by lucid & no.dots.nl/student About the Workshop Day two: CSS

More information

COMM 2555: Interactive Digital Communication / Spring 2018 Lab 9: Basic layout techniques with CSS

COMM 2555: Interactive Digital Communication / Spring 2018 Lab 9: Basic layout techniques with CSS COMM 2555: Interactive Digital Communication / Spring 2018 Lab 9: Basic layout techniques with CSS Goals Practice working with the CSS box model, positioning and layout Step 1. Create your infrastructure

More information

Client Side JavaScript and AJAX

Client Side JavaScript and AJAX Client Side JavaScript and AJAX Client side javascript is JavaScript that runs in the browsers of people using your site. So far all the JavaScript code we've written runs on our node.js server. This is

More information

Creating your first website Part 4: Formatting your page with CSS

Creating your first website Part 4: Formatting your page with CSS Adobe - Developer Center : Creating your first website Part 4: Formatting your page... Page 1 of 23 Dreamweaver Article Creating your first website Part 4: Formatting your page with CSS Jon Varese Adobe

More information

USER GUIDE. MADCAP FLARE 2017 r3. QR Codes

USER GUIDE. MADCAP FLARE 2017 r3. QR Codes USER GUIDE MADCAP FLARE 2017 r3 QR Codes Copyright 2018 MadCap Software. All rights reserved. Information in this document is subject to change without notice. The software described in this document is

More information

Azon Master Class. By Ryan Stevenson Guidebook #7 Site Construction 2/2

Azon Master Class. By Ryan Stevenson   Guidebook #7 Site Construction 2/2 Azon Master Class By Ryan Stevenson https://ryanstevensonplugins.com/ Guidebook #7 Site Construction 2/2 Table of Contents 1. Creation of Additional Site Pages & Content 2. Custom HTML Menus for Category

More information

MITOCW watch?v=0jljzrnhwoi

MITOCW watch?v=0jljzrnhwoi MITOCW watch?v=0jljzrnhwoi The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

Styles, Style Sheets, the Box Model and Liquid Layout

Styles, Style Sheets, the Box Model and Liquid Layout Styles, Style Sheets, the Box Model and Liquid Layout This session will guide you through examples of how styles and Cascading Style Sheets (CSS) may be used in your Web pages to simplify maintenance of

More information

Azon Master Class. By Ryan Stevenson Guidebook #8 Site Construction 1/3

Azon Master Class. By Ryan Stevenson   Guidebook #8 Site Construction 1/3 Azon Master Class By Ryan Stevenson https://ryanstevensonplugins.com/ Guidebook #8 Site Construction 1/3 Table of Contents 1. Code Generators 2. Home Page Menu Creation 3. Category Page Menu Creation 4.

More information

Direct Variations DIRECT AND INVERSE VARIATIONS 19. Name

Direct Variations DIRECT AND INVERSE VARIATIONS 19. Name DIRECT AND INVERSE VARIATIONS 19 Direct Variations Name Of the many relationships that two variables can have, one category is called a direct variation. Use the description and example of direct variation

More information

Smart formatting for better compatibility between OpenOffice.org and Microsoft Office

Smart formatting for better compatibility between OpenOffice.org and Microsoft Office Smart formatting for better compatibility between OpenOffice.org and Microsoft Office I'm going to talk about the backbreaking labor of helping someone move and a seemingly unrelated topic, OpenOffice.org

More information

Post Experiment Interview Questions

Post Experiment Interview Questions Post Experiment Interview Questions Questions about the Maximum Problem 1. What is this problem statement asking? 2. What is meant by positive integers? 3. What does it mean by the user entering valid

More information

How to Improve Your Campaign Conversion Rates

How to Improve Your  Campaign Conversion Rates How to Improve Your Email Campaign Conversion Rates Chris Williams Author of 7 Figure Business Models How to Exponentially Increase Conversion Rates I'm going to teach you my system for optimizing an email

More information

4. Write sets of directions for how to check for direct variation. How to check for direct variation by analyzing the graph :

4. Write sets of directions for how to check for direct variation. How to check for direct variation by analyzing the graph : Name Direct Variations There are many relationships that two variables can have. One of these relationships is called a direct variation. Use the description and example of direct variation to help you

More information

Introduction to JavaScript and the Web

Introduction to JavaScript and the Web Introduction to JavaScript and the Web In this introductory chapter, we'll take a look at what JavaScript is, what it can do for you, and what you need to be able to use it. With these foundations in place,

More information

Skill 1: Multiplying Polynomials

Skill 1: Multiplying Polynomials CS103 Spring 2018 Mathematical Prerequisites Although CS103 is primarily a math class, this course does not require any higher math as a prerequisite. The most advanced level of mathematics you'll need

More information

MITOCW MIT6_172_F10_lec18_300k-mp4

MITOCW MIT6_172_F10_lec18_300k-mp4 MITOCW MIT6_172_F10_lec18_300k-mp4 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for

More information

Graduating to Grid. An Event Apart Orlando

Graduating to Grid. An Event Apart Orlando Graduating to Grid An Event Apart Orlando 2018 And there was great rejoicing. https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer/suggestions/6514853-update-css-grid https://caniuse.com/#search=grid

More information

An attribute used in HTML that is used for web browsers screen reading devices to indicate the presence and description of an image Module 4

An attribute used in HTML that is used for web browsers screen reading devices to indicate the presence and description of an image Module 4 HTML Basics Key Terms Term Definition Introduced In A tag used in HTML that stands for Anchor and is used for all types of hyperlinks Module 3 A tag used in HTML to indicate a single line break

More information

If Statements, For Loops, Functions

If Statements, For Loops, Functions Fundamentals of Programming If Statements, For Loops, Functions Table of Contents Hello World Types of Variables Integers and Floats String Boolean Relational Operators Lists Conditionals If and Else Statements

More information

Website Development with HTML5, CSS and Bootstrap

Website Development with HTML5, CSS and Bootstrap Contact Us 978.250.4983 Website Development with HTML5, CSS and Bootstrap Duration: 28 hours Prerequisites: Basic personal computer skills and basic Internet knowledge. Course Description: This hands on

More information

CPSC 320 Sample Solution, Playing with Graphs!

CPSC 320 Sample Solution, Playing with Graphs! CPSC 320 Sample Solution, Playing with Graphs! September 23, 2017 Today we practice reasoning about graphs by playing with two new terms. These terms/concepts are useful in themselves but not tremendously

More information

Azon Master Class. By Ryan Stevenson Guidebook #7 Site Construction 2/3

Azon Master Class. By Ryan Stevenson   Guidebook #7 Site Construction 2/3 Azon Master Class By Ryan Stevenson https://ryanstevensonplugins.com/ Guidebook #7 Site Construction 2/3 Table of Contents 1. Creation of Site Pages 2. Category Pages Creation 3. Home Page Creation Creation

More information

Managing CSS Projects with ITCSS. DaFED Novi Sad, November 2014

Managing CSS Projects with ITCSS. DaFED Novi Sad, November 2014 Hello, Serbia! Managing CSS Projects with ITCSS DaFED Novi Sad, November 2014 #itcss Harry Roberts Consultant Front-end Architect. Products, long-running projects, large teams, big codebases. @csswizardry

More information

(Refer Slide Time: 02.06)

(Refer Slide Time: 02.06) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 27 Depth First Search (DFS) Today we are going to be talking

More information

Ruby on Rails Welcome. Using the exercise files

Ruby on Rails Welcome. Using the exercise files Ruby on Rails Welcome Welcome to Ruby on Rails Essential Training. In this course, we're going to learn the popular open source web development framework. We will walk through each part of the framework,

More information

Web Design and Implementation

Web Design and Implementation Study Guide 3 - HTML and CSS - Chap. 13-15 Name: Alexia Bernardo Due: Start of class - first day of week 5 Your HTML files must be zipped and handed in to the Study Guide 3 dropbox. Chapter 13 - Boxes

More information

Chrome if I want to. What that should do, is have my specifications run against four different instances of Chrome, in parallel.

Chrome if I want to. What that should do, is have my specifications run against four different instances of Chrome, in parallel. Hi. I'm Prateek Baheti. I'm a developer at ThoughtWorks. I'm currently the tech lead on Mingle, which is a project management tool that ThoughtWorks builds. I work in Balor, which is where India's best

More information

The building block of a CSS stylesheet. A rule consists of a selector and a declaration block (one or more declarations).

The building block of a CSS stylesheet. A rule consists of a selector and a declaration block (one or more declarations). WDI Fundamentals Unit 4 CSS Cheat Sheet Rule The building block of a CSS stylesheet. A rule consists of a selector and a declaration block (one or more declarations). Declaration A declaration is made

More information

MITOCW ocw f99-lec07_300k

MITOCW ocw f99-lec07_300k MITOCW ocw-18.06-f99-lec07_300k OK, here's linear algebra lecture seven. I've been talking about vector spaces and specially the null space of a matrix and the column space of a matrix. What's in those

More information

CSS means Cascading Style Sheets. It is used to style HTML documents.

CSS means Cascading Style Sheets. It is used to style HTML documents. CSS CSS means Cascading Style Sheets. It is used to style HTML documents. Like we mentioned in the HTML tutorial, CSS can be embedded in the HTML document but it's better, easier and neater if you style

More information

BEGINNER PHP Table of Contents

BEGINNER PHP Table of Contents Table of Contents 4 5 6 7 8 9 0 Introduction Getting Setup Your first PHP webpage Working with text Talking to the user Comparison & If statements If & Else Cleaning up the game Remembering values Finishing

More information

HTML5: Adding Style. Styling Differences. HTML5: Adding Style Nancy Gill

HTML5: Adding Style. Styling Differences. HTML5: Adding Style Nancy Gill HTML5: Adding Style In part 2 of a look at HTML5, Nancy will show you how to add CSS to the previously unstyled document from part 1 and why there are some differences you need to watch out for. In this

More information

Header. Article. Footer

Header. Article. Footer Styling your Interface There have been various versions of HTML since its first inception. HTML 5 being the latest has benefited from being able to look back on these previous versions and make some very

More information

Lesson 1 using Dreamweaver CS3. To get started on your web page select the link below and copy (Save Picture As) the images to your image folder.

Lesson 1 using Dreamweaver CS3. To get started on your web page select the link below and copy (Save Picture As) the images to your image folder. Lesson 1 using Dreamweaver CS3 To get started on your web page select the link below and copy (Save Picture As) the images to your image folder. Click here to get images for your web page project. (Note:

More information

WordPress is free and open source, meaning it's developed by the people who use it.

WordPress is free and open source, meaning it's developed by the people who use it. 1 2 WordPress Workshop by BBC July 2015 Contents: lorem ipsum dolor sit amet. page + WordPress.com is a cloudhosted service that runs WordPress where you can set up your own free blog or website without

More information

Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5

Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5 Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5 [talking head] This lecture we study theory design and implementation. Programmers have two roles to play here. In one role, they

More information

Azon Master Class. By Ryan Stevenson Guidebook #5 WordPress Usage

Azon Master Class. By Ryan Stevenson   Guidebook #5 WordPress Usage Azon Master Class By Ryan Stevenson https://ryanstevensonplugins.com/ Guidebook #5 WordPress Usage Table of Contents 1. Widget Setup & Usage 2. WordPress Menu System 3. Categories, Posts & Tags 4. WordPress

More information

Welcome Back! Without further delay, let s get started! First Things First. If you haven t done it already, download Turbo Lister from ebay.

Welcome Back! Without further delay, let s get started! First Things First. If you haven t done it already, download Turbo Lister from ebay. Welcome Back! Now that we ve covered the basics on how to use templates and how to customise them, it s time to learn some more advanced techniques that will help you create outstanding ebay listings!

More information

Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5

Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5 Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5 [talking head] Formal Methods of Software Engineering means the use of mathematics as an aid to writing programs. Before we can

More information

How to lay out a web page with CSS

How to lay out a web page with CSS How to lay out a web page with CSS A CSS page layout uses the Cascading Style Sheets format, rather than traditional HTML tables or frames, to organize the content on a web page. The basic building block

More information

CSS. Selectors & Measurments. Copyright DevelopIntelligence LLC

CSS. Selectors & Measurments. Copyright DevelopIntelligence LLC CSS Selectors & Measurments 1 Back to descendants remember walking down the document tree structure and see how parents and children interact not only is it important to know about inheritance walking

More information

Introduction to CSS. 2 Sep 13. Derek Peacock. An introduction to defining CSS style rules using tags, classes and ids.

Introduction to CSS. 2 Sep 13. Derek Peacock. An introduction to defining CSS style rules using tags, classes and ids. An introduction to defining CSS style rules using tags, classes and ids. 1 The HTML file contains the raw content of a web page, and the css style sheet should control all the design and look of a web

More information

Class 3 Page 1. Using DW tools to learn CSS. Intro to Web Design using Dreamweaver (VBUS 010) Instructor: Robert Lee

Class 3 Page 1. Using DW tools to learn CSS. Intro to Web Design using Dreamweaver (VBUS 010) Instructor: Robert Lee Class 3 Page 1 Using DW tools to learn CSS Dreaweaver provides a way for beginners to learn CSS. Here s how: After a page is set up, you might want to style the . Like setting up font-family, or

More information

CS193X: Web Programming Fundamentals

CS193X: Web Programming Fundamentals CS193X: Web Programming Fundamentals Spring 2017 Victoria Kirst (vrk@stanford.edu) Today's schedule Today: - Wrap up box model - Debugging with Chrome Inspector - Case study: Squarespace Layout - Flex

More information

Documentation Nick Parlante, 1996.Free for non-commerical use.

Documentation Nick Parlante, 1996.Free for non-commerical use. Documentation Nick Parlante, 1996.Free for non-commerical use. A program expresses an algorithm to the computer. A program is clear or "readable" if it also does a good job of communicating the algorithm

More information

CaseComplete Roadmap

CaseComplete Roadmap CaseComplete Roadmap Copyright 2004-2014 Serlio Software Development Corporation Contents Get started... 1 Create a project... 1 Set the vision and scope... 1 Brainstorm for primary actors and their goals...

More information

printf( Please enter another number: ); scanf( %d, &num2);

printf( Please enter another number: ); scanf( %d, &num2); CIT 593 Intro to Computer Systems Lecture #13 (11/1/12) Now that we've looked at how an assembly language program runs on a computer, we're ready to move up a level and start working with more powerful

More information

The following content is provided under a Creative Commons license. Your support

The following content is provided under a Creative Commons license. Your support MITOCW Lecture 10 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free. To make a

More information

Zen Garden. CSS Zen Garden

Zen Garden. CSS Zen Garden CSS Patrick Behr CSS HTML = content CSS = display It s important to keep them separated Less code in your HTML Easy maintenance Allows for different mediums Desktop Mobile Print Braille Zen Garden CSS

More information

Digital Marketing Manager, Marketing Manager, Agency Owner. Bachelors in Marketing, Advertising, Communications, or equivalent experience

Digital Marketing Manager, Marketing Manager, Agency Owner. Bachelors in Marketing, Advertising, Communications, or equivalent experience Persona name Amanda Industry, geographic or other segments B2B Roles Digital Marketing Manager, Marketing Manager, Agency Owner Reports to VP Marketing or Agency Owner Education Bachelors in Marketing,

More information

CS103 Spring 2018 Mathematical Vocabulary

CS103 Spring 2018 Mathematical Vocabulary CS103 Spring 2018 Mathematical Vocabulary You keep using that word. I do not think it means what you think it means. - Inigo Montoya, from The Princess Bride Consider the humble while loop in most programming

More information

Week - 01 Lecture - 04 Downloading and installing Python

Week - 01 Lecture - 04 Downloading and installing Python Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 01 Lecture - 04 Downloading and

More information

Imagery International website manual

Imagery International website manual Imagery International website manual Prepared for: Imagery International Prepared by: Jenn de la Fuente Rosebud Designs http://www.jrosebud.com/designs designs@jrosebud.com 916.538.2133 A brief introduction

More information

CS193X: Web Programming Fundamentals

CS193X: Web Programming Fundamentals CS193X: Web Programming Fundamentals Spring 2017 Victoria Kirst (vrk@stanford.edu) Today's schedule Schedule: - HTML: Background and history - Complex selectors - Box model - Debugging with Chrome Inspector

More information

Instructor: Craig Duckett. Lecture 04: Thursday, April 5, Relationships

Instructor: Craig Duckett. Lecture 04: Thursday, April 5, Relationships Instructor: Craig Duckett Lecture 04: Thursday, April 5, 2018 Relationships 1 Assignment 1 is due NEXT LECTURE 5, Tuesday, April 10 th in StudentTracker by MIDNIGHT MID-TERM EXAM is LECTURE 10, Tuesday,

More information

Before you begin, make sure you have the images for these exercises saved in the location where you intend to create the Nuklear Family Website.

Before you begin, make sure you have the images for these exercises saved in the location where you intend to create the Nuklear Family Website. 9 Now it s time to challenge the serious web developers among you. In this section we will create a website that will bring together skills learned in all of the previous exercises. In many sections, rather

More information

PROFESSOR: So far in this course we've been talking a lot about data abstraction. And remember the idea is that

PROFESSOR: So far in this course we've been talking a lot about data abstraction. And remember the idea is that MITOCW Lecture 4B [MUSIC-- "JESU, JOY OF MAN'S DESIRING" BY JOHANN SEBASTIAN BACH] PROFESSOR: So far in this course we've been talking a lot about data abstraction. And remember the idea is that we build

More information

DRY CSS A DON T-REPEAT-YOURSELF METHODOLOGY FOR CREATING EFFICIENT, UNIFIED AND SCALABLE STYLESHEETS

DRY CSS A DON T-REPEAT-YOURSELF METHODOLOGY FOR CREATING EFFICIENT, UNIFIED AND SCALABLE STYLESHEETS DRY CSS A DON T-REPEAT-YOURSELF METHODOLOGY FOR CREATING EFFICIENT, UNIFIED AND SCALABLE STYLESHEETS Jeremy Clarke http://jeremyclarke.org Download these slides: http://slideshare.net/jeremyclarke WHO

More information

CSS BASICS. selector { property: value; }

CSS BASICS. selector { property: value; } GETTING STARTED 1. Download the Juice-o-Rama 11-01 zip file from our course dropbox. 2. Move the file to the desktop. You have learned two ways to do this. 3. Unzip the file by double clicking it. You

More information

What's New. Version 9.2 release. Campground Master Contents 1. Contents. A couple quick reminders:

What's New. Version 9.2 release. Campground Master Contents 1. Contents. A couple quick reminders: Campground Master Contents 1 Contents A couple quick reminders: Make Backups! It's so sad when we hear from someone whose computer has crashed and they have no backup of their data to restore from. It's

More information

Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we

Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we have to talk about the way in which we represent the

More information

There are four (4) skills every Drupal editor needs to master:

There are four (4) skills every Drupal editor needs to master: There are four (4) skills every Drupal editor needs to master: 1. Create a New Page / Edit an existing page. This entails adding text and formatting the content properly. 2. Adding an image to a page.

More information

Cascading Style Sheets for layout II CS7026

Cascading Style Sheets for layout II CS7026 Cascading Style Sheets for layout II CS7026 Understanding CSS float The CSS float property is also a very important property for layout. It allows you to position your Web page designs exactly as you want

More information

Copyright. For more information, please read the Disclosures and Disclaimers section at the end of this ebook. First PDF Edition, February 2013

Copyright. For more information, please read the Disclosures and Disclaimers section at the end of this ebook. First PDF Edition, February 2013 Copyright This ebook is Copyright 2013 Teresa Miller (the Author ). All Rights Reserved. Published in the United States of America. The legal notices, disclosures, and disclaimers in the front and back

More information

OddsMatrix. Everything is possible. SASS Code Standards

OddsMatrix. Everything is possible. SASS Code Standards OddsMatrix Everything is possible. SASS Code Standards Why do we need SASS standards? Switching projects (when we need to, when we want to) Maximizing efficiency (finding stuff fast) Fast bug-fixing Fast

More information

SASS Variables and Mixins Written by Margaret Rodgers. Variables. Contents. From Web Team. 1 Variables

SASS Variables and Mixins Written by Margaret Rodgers. Variables. Contents. From Web Team. 1 Variables SASS Variables and Mixins Written by Margaret Rodgers From Web Team Contents 1 Variables o 1.1 Nested Variables 2 Mixins 3 Inheritance Variables A variable in SASS works exactly the same as a variable

More information

(Refer Slide Time: 1:43)

(Refer Slide Time: 1:43) (Refer Slide Time: 1:43) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology, Madras Lecture - 27 Pattern Detector So, we talked about Moore

More information

Using Dreamweaver CC. 6 Styles in Websites. Exercise 1 Linked Styles vs Embedded Styles

Using Dreamweaver CC. 6 Styles in Websites. Exercise 1 Linked Styles vs Embedded Styles Using Dreamweaver CC 6 So far we have used CSS to arrange the elements on our web page. We have also used CSS for some limited formatting. In this section we will take full advantage of using CSS to format

More information

MITOCW MIT6_01SC_rec2_300k.mp4

MITOCW MIT6_01SC_rec2_300k.mp4 MITOCW MIT6_01SC_rec2_300k.mp4 KENDRA PUGH: Hi. I'd like to talk to you today about inheritance as a fundamental concept in object oriented programming, its use in Python, and also tips and tricks for

More information

(Refer Slide Time: 00:01:30)

(Refer Slide Time: 00:01:30) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology, Madras Lecture - 32 Design using Programmable Logic Devices (Refer Slide Time: 00:01:30)

More information

Search Box Usability Testing Report November 5, 2007

Search Box Usability Testing Report November 5, 2007 Search Box Usability Testing Report November 5, 2007 Charge: To gather user feedback on two different styles of search boxes for the new library website. The Web Re-Design Group is looking to assess the

More information

Web-Friendly Sites. Planning & Design 1

Web-Friendly Sites. Planning & Design 1 Planning & Design 1 This tutorial presents useful tips and tricks to help you achieve a more Web-friendly design and make your sites more efficient. The following topics are discussed: How Z-order and

More information