Home

Glossary

This is a glossary of technical terms used throughout the [Famo.us reference documentation][0]. The definitions are grouped into two categories: [Famo.us-specific terms][1], and [terms that apply more broadly][2] to software engineering and web development.

Famo.us-specific terms

Renderable
In Famo.us, a renderable is an element that can be displayed on the screen, usually via the DOM. Surfaces are the primary type of renderable. Contrast with views, which aren't displayed but which encapsulate renderables.
Render spec
In Famo.us, a render spec is an object that describes how a single target — or the targets that belong to an array of child specs — should be rendered. Render specs are what the render tree is composed of. Render specs look like this:
{
  transform: ... ,
  opacity: ... ,
  origin: ... ,
  align: ... ,
  size: ... ,
  target: ... // An ID, or an array of specs
}
Target
In the context of a render spec, the target is the identifier for an individual renderable. In simplified terms, you could think of it as a reference to a <div>, to which the engine applies styles.

General terms

AMD
The AMD (or asynchronous module definition) API specifies a way to define modules such that modules are asynchronously loaded. In code, module definitions using the AMD style look like this:
define('mymodule', function(mymodule) {
    // Module code goes here 
});
Backface visibility
In CSS, when an element's backface-visibility property is set to visible, the element remains visible when its front is facing away from the screen.
Box Model
In CSS, elements are represented as rectangular boxes. In this system, the box model describes the content of the space taken up by each element. Read a thorough description on MDN.
Box-Sizing
In CSS, the box-sizing property alters the CSS box model when the width and height of elements are calculated. In the wild it is most often used to make element sizing behave more intuitively with respect to margins and padding.
Camel-case
Camel-case is a convention for writing variables where the first letter of each part of a compound word, with the exception of the variable's first letter, is capitalized. For example: weLikeCoffee.
Coefficient
A coefficient is a multiplying factor in a mathematical expression. It is a plain number that multiples a variable. E.g., in the expression 3x + 2y, the coefficients are 3 and 2.
CSS3 transformation matrix
CSS3 includes a transform property, which we can assign a matrix3d() function for styling. The CSS3 matrix3d() function takes 16 arguments, each of which represents an element in a 4x4 homogenous matrix. More about the CSS3 transform function »
Damping
Damping is a type of restriction that prevents oscillations or bounce-backs. In the context of physics, damping reduces the countereffect of an applied force. You can use dampingRatio, for example, to reduce the springyness of a spring force.
DOM
DOM stands for the Document-Object Model, the conventions for interacting with objects in HTML. We often use the term (colloquially) as a shorthand for the document objects themselves. More about the DOM on MDN »
Normal flow
Flow, normal flow, or normal document flow is the way a web page is presented when no structural layout styling has been applied to the elements. An element is said to be "out of flow" if it has been floated or absolutely positioned.
FPS
FPS stands for frames per second, the average number of animation frames rendered to the screen every single second. In Famo.us, the framerate can be controlled via the engine.
Object-oriented programming (OOP)
Object-oriented programming is a model for writing software in which objects interact to carry out the program's intent. Objects are structures that encompass data and behavior, often corresponding to things in the real world. More about OOP on Wikipedia »
Prototypal inheritance
In JavaScript, there are no classes. Objects inherit from other objects via the prototype chain. More about prototypal inheritance on MDN »
Reflow
In browsers, reflow occurs when change to an element causes the need for the layout of child and ancestor elements to be recomputed. The browser must re-draw what you see on the screen to represent the new layout.
Repaint
The browser is said to repaint when changes are made to elements' visual properties that do not affect layout. When a change is made to the outline or background color of an element (for example), the browser must re-draw what you see on the screen.
Singleton
A singleton is an object of which there is only ever one instance. More about singletons on Wikipedia »
Vanishing point
When viewing a scene with perspective, the vanishing point is the point at which parallel lines appear to converge.
YUIDoc
YUIDoc is a modified form of JSDoc comment tags, a convention for including formatted documentation within source code.