Up and Running with PhoneGap Build – Building from the Command-line Interface

See how PhoneGap, an open-source framework, and PhoneGap Build, a service in the Adobe Creative Cloud, allow you to create cross-platform mobile apps using the web technologies you know and love: HTML, CSS, and JavaScript. This course explores how to use PhoneGap Build to create app-store-ready applications for iOS, Android, and Windows Phone. Learn how to build an app from GitHub, Dreamweaver, Edge Code, or even a simple ZIP file; configure icons, splash screens, and other preferences; enable access to camera and location sensor data; and deploy and install your device on your smart phone or tablet. Watch the lynda.com online course: Up and Running with PhoneGap Build

Topics include:

  • Creating a PhoneGap Build account
  • Exploring the HTML structure of an app
  • Configuring your mobile device for development
  • Building from Dreamweaver, Edge Code, or the command line
  • Setting up a config.xml file
  • Setting parameters and permissions
  • Deploying on iOS or Android

Application command-line interfaces

Application programs (as opposed to operating systems) may also have command line interfaces.

command-line

Screenshot of a sample Bash session. GNOME Terminal 3, Fedora 15

An application program may support none, any, or all of these three major types of command line interface mechanisms:

  1. Parameters: Most operating systems support a means to pass additional information to a program when it is launched. When a program is launched from an OS command-line shell, additional text provided along with the program name is passed to the launched program.
  2. Interactive command-line sessions: After launch, a program may provide an operator with an independent means to enter commands in the form of text.
  3. OS inter-process communication: Most operating systems support means of inter-process communication (for example; standard streams or named pipes). Command lines from client processes may be redirected to a CLI program by one of these methods.

CLI software
Some applications support only a CLI, presenting a CLI prompt to the user and acting upon command-lines as they are entered. Some examples of CLI-only applications are:

  • DEBUG
  • Diskpart
  • Ed
  • Edlin
  • Fdisk
  • Ping

Hybrid software

Some computer programs support both a CLI and a GUI. In some cases, a GUI is simply a wrapper around a separate CLI executable file. In other cases, a program may provide a CLI as an optional alternative to its GUI. Both interfaces do not always offer similar functionality. For example, MATLAB, a numerical analysis computer program, provides no GUI for some calculations, but the CLI can handle any calculation MATLAB supports.

Website:
Build My Site

Packaging an Android app

In this course, lynda.com author David Gassner shows you how to prepare, package, and publish your Android app on Google Play, and provides a brief overview of the alternatives offered by Amazon and Barnes & Noble. Watch the online video course: Distributing Android Apps

Topics include:

  • Packaging an Android app
  • Distributing through Google vs. Amazon vs. Barnes & Noble
  • Exporting the APK file
  • Testing the app
  • Shrinking and protecting an app with ProGuard
  • Creating and uploading screenshots to Google Play
  • Adding in-app products
  • Tracking app usage and revenue

Android Apps

Android

Android 4.4.2 home screen

Android has a growing selection of third party applications, which can be acquired by users either through an app store such as Google Play or the Amazon Appstore, or by downloading and installing the application’s APK file from a third-party site. The Play Store application allows users to browse, download and update apps published by Google and third-party developers, and is pre-installed on devices that comply with Google’s compatibility requirements. The app filters the list of available applications to those that are compatible with the user’s device, and developers may restrict their applications to particular carriers or countries for business reasons. Purchases of unwanted applications can be refunded within 15 minutes of the time of download, and some carriers offer direct carrier billing for Google Play application purchases, where the cost of the application is added to the user’s monthly bill.

As of July 2013, there are more than one million applications available for Android in the Play Store. As of May 2013, 48 billion apps have been installed from the Google Play store.

Applications (“apps”), that extend the functionality of devices, are developed primarily in the Java programming language language using the Android software development kit (SDK). The SDK includes a comprehensive set of development tools, including a debugger, software libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials. The officially supported integrated development environment (IDE) is Eclipse using the Android Development Tools (ADT) plugin. Other development tools are available, including a Native Development Kit for applications or extensions in C or C++, Google App Inventor, a visual environment for novice programmers, and various cross platform mobile web applications frameworks.

It was announced in January 2014 that Chrome HTML5 web applications should become available, using a compatibility layer from the open source Apache Cordova framework to allow such applications to be wrapped in a native application shell, enabling their distribution over Google Play.

In order to work around limitations on reaching Google services due to Internet censorship in the People’s Republic of China, Android devices sold in the PRC are generally customized to use state approved services instead.


Learn to Build a Simple Android App Interactive Video Learning Path

from: Treehouse

Website:
Build My Site

How to Setup Your E-mail Account in iOS 7

Learn how to setup your email account on your iPhone, iPad or iPod Touch running iOS 7. Learn more about BlueHost, the world’s largest providers of cloud-based online solutions.

CLICK HERE TO SIGNUP FOR BLUEHOST.COM

E-Mail protocols

e-mailThe Internet Message Access Protocol (commonly known as IMAP) is an Application Layer Internet protocol that allows an e-mail client to access e-mail on a remote mail server. The current version, IMAP version 4 revision 1 (IMAP4), is defined by RFC 3501. An IMAP server typically listens on well-known port 143. IMAP over SSL (IMAPS) is assigned well-known port number 993.

IMAP supports both on-line and off-line modes of operation. E-mail clients using IMAP generally leave messages on the server until the user explicitly deletes them. This and other characteristics of IMAP operation allow multiple clients to manage the same mailbox. Most e-mail clients support IMAP in addition to Post Office Protocol (POP) to retrieve messages; however, fewer e-mail services support IMAP. IMAP offers access to the mail storage. Clients may store local copies of the messages, but these are considered to be a temporary cache.

Incoming e-mail messages are sent to an e-mail server that stores messages in the recipient’s e-mail box. The user retrieves the messages with an e-mail client that uses one of a number of e-mail retrieval protocols. Some clients and servers preferentially use vendor-specific, proprietary protocols, but most support SMTP for sending e-mail and POP and IMAP for retrieving e-mail, allowing interoperability with other servers and clients. For example, Microsoft’s Outlook client uses MAPI, a Microsoft proprietary protocol to communicate with a Microsoft Exchange Server. IBM’s Notes client works in a similar fashion when communicating with a Domino server. All of these products also support POP, IMAP, and outgoing SMTP. Support for the Internet standard protocols allows many e-mail clients such as Pegasus Mail or Mozilla Thunderbird to access these servers, and allows the clients to be used with other servers.

See Related Resources:

Website:
Build My Site

WordPress Tutorial: What’s New in WordPress 3.8

WordPress 3.8

WordPress 3.8WordPress 3.8 is here and there are a lot of exciting changes. Get up to date with the new features and start enhancing your blog or website today. In this video, lynda.com author Morten Rand-Hendriksen reveals the redesigned dashboard, which is high contrast, clean, and more customizable than ever, and the new Twenty Fourteen theme, which provides a (highly requested) featured content area on your front page. The new dashboard is also fully responsive, so you can now visit the dashboard from your mobile device. This is great for making changes on the go!

Magazine Theme

The magazine theme is a page layout for WordPress (a “theme”) that mimics the layout of a newspaper or magazine, with multiple boxes and spaces for photographs, allowing for certain posts to be called out.

Look and feel

In software design, look and feel is a term used in respect of a graphical user interface and comprises aspects of its design, including elements such as colors, shapes, layout, and typefaces (the “look”), as well as the behavior of dynamic elements such as buttons, boxes, and menus (the “feel”). The term can also refer to aspects of an API, mostly to parts of an API that are not related to its functional properties. The term is used in reference to both software and websites.

Look and feel applies to other products. In documentation, for example, it refers to the graphical layout (document size, color, font, etc.) and the writing style. In the context of equipment, it refers to consistency in controls and displays across a product line.

Look and feel in operating system user interfaces serves two general purposes. First, it provides branding, helping to identify a set of products from one company. Second, it increases ease of use, since users will become familiar with how one product functions (looks, reads, etc.) and can translate their experience to other products with the same look and feel.

Some Popular WordPress Magazine Themes From ThemeForest:

PRESSO – Clean & Modern Magazine Theme
Mogoze – Responsive Magazine WordPress Theme
Orion Press – Retina and Responsive Magazine Theme

Website:
Build My Site

Responsive HTML Emails, JavaScript Techniques, WebGL

You can find more useful learning videos similar to this one (this video is awesome!) at: http://teamtreehouse.com – Learn to make websites, mobile apps, and more!

In this episode of The Treehouse Show, Nick Pettit (@nickrp) and Jason Seifer (@jseifer) talk about the latest in web design, web development, html5, front end development, and more.

WebGL Design

Responsive WebGLWebGL is based on OpenGL ES 2.0 and provides an API for 3D graphics. It uses the HTML5 canvas element and is accessed using Document Object Model interfaces. Automatic memory management is provided as part of the JavaScript language.

Like OpenGL ES 2.0, WebGL does not have the fixed-function APIs introduced in OpenGL 1.0 and deprecated in OpenGL 3.0. This functionality can instead be provided by the user in the JavaScript code space.

Mobile Browsers

  • Android Browser – Supported in its replacement Google Chrome that is now standard Android browser, but basically unsupported before, but the Sony Ericsson Xperia range of Android smartphones have had WebGL capabilities following a firmware upgrade. Samsung smartphones also have WebGL enabled (verified on Galaxy SII (4.1.2) and Galaxy Note 8.0 (4.2))
  • BlackBerry PlayBook – WebGL is available via WebWorks and browser in PlayBook OS 2.00
  • Firefox for mobile – WebGL is available for Android devices since Firefox 4.
  • Firefox OS
  • Google Chrome – WebGL is available for Android devices since Google Chrome 25 and enabled by default since version 30.
  • Maemo – In Nokia N900, WebGL is available in the stock microB browser from the PR1.2 firmware update onwards.
  • Opera Mobile – Opera Mobile 12 supports WebGL (on Android only).
  • Tizen 1.0
  • Ubuntu Touch
  • WebOS
  • iOS – Officially only available through iAd on iOS 4.2 and higher, for all devices except for 2nd Gen iPod Touch or iPhone 3G and earlier. However, there is a tweak for jailbroken devices to enable functionality for Mobile Safari and all other WebKit browsers.

However its availability is dependent on other factors like the GPU supporting it. To check if a determined device supports WebGL, anyone could go to: Your browser supports WebGL.

Responsive Web Design

Responsive Web design (RWD) is a Web design approach aimed at crafting sites to provide an optimal viewing experience—easy reading and navigation with a minimum of resizing, panning, and scrolling—across a wide range of devices (from mobile phones to desktop computer monitors).

A site designed with RWD adapts the layout to the viewing environment by using fluid, proportion-based grids, flexible images, and CSS3 media queries, an extension of the @media rule.

  • The fluid grid concept calls for page element sizing to be in relative units like percentages, rather than absolute units like pixels or points.
  • Flexible images are also sized in relative units, so as to prevent them from displaying outside their containing element.
  • Media queries allow the page to use different CSS style rules based on characteristics of the device the site is being displayed on, most commonly the width of the browser.
  • Server-side components (RESS) in conjunction with client-side ones such as media queries can produce faster-loading sites for access over cellular networks and also deliver richer functionality/usability avoiding some of the pitfalls of device-side-only solutions.

A related concept…

Audience and Device Aware (ADA)
Audience and Device Aware is an approach aimed at ensuring that a site is optimized to deliver what a user wants and that works effectively on the device being used to access the site. Unlike Responsive web design (RWD), which crafts a site visually for a range of devices, ADA aims to reflect the many different elements that enhance and impact on the performance and usability of a site. The predominant application for the ADA approach is for mobile and smaller screen devices. The principle truly sees the adoption of a “mobile first” strategy and focuses on the performance of a site and value that it delivers to a user and the business.

Here are the links from the video:
Responsive HTML Emails: a Different Strategy – Fog Creek Blog
http://blog.fogcreek.com/responsive-h…

Frequently Misunderstood JavaScript Concepts
http://bolinfest.com/javascript/misun…

Building an amazing fullscreen mobile experience – HTML5 Rocks
http://www.html5rocks.com/en/mobile/f…

Creditcard.js
http://creditcardjs.com/

WebGL Shaders with Firefox Developer Tools
http://hacks.mozilla.org/2013/11/live…

getify/You-Dont-Know-JS
http://github.com/getify/You-Dont-Kno…

Techniques for Responsive Typography | Codrops
http://tympanus.net/codrops/2013/11/1…

Website:
Build My Site

Form Validation | Safari Push Notifications | JavaScript Performance

In this episode of The Treehouse Show, Nick Pettit (@nickrp) and Jason Seifer (@jseifer) talk about Form Validation, Safari Push Notifications, JavaScript Performance, and more.

Treehouse is an online technology education school that teaches web design, web development, mobile app development, business, and more! On YouTube, our experts will bring you the latest and greatest in technology.

D3.js

FacebookNetworkValidation

A data visualization from social media

D3.js (or just D3 for Data-Driven Documents) is a JavaScript library that uses digital data to drive the creation and control of dynamic and interactive graphical forms which run in web browsers. It is a tool for data visualization in W3C-compliant computing, making use of the widely implemented Scalable Vector Graphics (SVG), JavaScript, HTML5, and Cascading Style Sheets (CSS3) standards. It is the successor to the earlier Protovis framework. In contrast to many other libraries, D3 allows great control over the final visual result. Its development was noted in 2011, as version 2.0.0 was released in August 2011. As of October 2013, the library is at version 3.3.9.

Technical principles

Embedded within an HTML webpage, the JavaScript D3.js library uses pre-built JavaScript functions to select elements, create SVG objects, style them, or add transitions, dynamic effects or tooltips to them. These objects can also be widely styled using CSS. Large datasets can be easily bound to SVG objects using simple D3 functions to generate rich text/graphic charts and diagrams. The data can be in various formats, most commonly JSON, comma-separated values (CSV) or geoJSON, but, if required, JavaScript functions can be written to read other data formats.

The atomic concept of D3 design is to first use a CSS-style selector to select given sets of Document Object Model (DOM) nodes, then use operators to manipulate them in a similar manner to jQuery (see Bostock, Ogievetsky & Heer 2011). For example, D3 may select all HTML <P>...</P> elements to change their color, e.g. to lavender:

 d3.selectAll("p")
   .style("color", "lavender");

Transitions

By declaring a transition, D3.js will smoothly interpolate values for attributes and styles over a duration.

 d3.selectAll("p")
   .transition()
   .style("color", "pink");

Usage

Data visualization company Datameer officially uses D3.js as its core technology, while The New York Times sometimes uses it for rich graphs. Other uses include ID Editor for editing OpenStreetMap. D3.js has been extensively used for GIS map making, managing both GeoJSON and Topojson files as input.

Here are the links from the video:

Formance.js by Omar Shammas
http://omarshammas.github.io/formancejs

Photon | CSS 3D Lighting Engine
http://photon.attasi.com/

json.human.js – Json Formatting for Human Beings
http://marianoguerra.github.io/json.human.js/

Pattern Lab
http://pattern-lab.info/?utm_content=…

Brad Frost’s Blog
http://bradfrostweb.com/

Safari Push Notifications – Apple Developer
http://developer.apple.com/notificati…

dat.GUI
http://workshop.chromeexperiments.com…

jsPerf: JavaScript performance playground
http://jsperf.com/?utm_source=buffer&…

D3.js – Data-Driven Documents
http://d3js.org/

“Interactive Data Visualization in a Web Browser”

Validation







Website:
Build My Site

Touchscreen UI Events | Sprite and Checkbox Animation | Lo-Dash

You can find more learning videos similar to this one at: teamtreehouse.com.

In this episode of The Treehouse Show, Nick Pettit (@nickrp) and Jason Seifer (@jseifer) talk about Touchscreen UI events, Sprite and checkbox animation, Lo-Dash, and more.

Sprite (computer graphics)

In computer graphics, a sprite is a two-dimensional image or animation that is integrated into a larger scene. Initially including just graphical objects handled separately from the memory bitmap of a video display, this now includes various manners of graphical overlays.

Originally, sprites were a method of integrating unrelated bitmaps so that they appeared to be part of the normal bitmap on a screen, such as creating an animated character that can be moved on a screen without altering the data defining the overall screen. Such sprites can be created by either electronic circuitry or software. In circuitry, a hardware sprite is a hardware construct that employs custom DMA channels to integrate visual elements with the main screen in that it super-imposes two discrete video sources. Software can simulate this through specialized rendering methods.

More recently, CSS sprites are used in web design as a way to improve performance by combining numerous small images or icons into a larger image called a sprite sheet or tile set, and selecting which icon to show on the rendered page using Cascading Style Sheets.

As three-dimensional graphics became more prevalent, sprites came to include flat images seamlessly integrated into complicated three-dimensional scenes.

Sprites by CSS

Sprite example

Example of a sprite sheet

To reduce the number of requests the browser makes to the server, some web designers combine numerous small images or icons into a larger image called a sprite sheet or tile set. CSS is used to select the parts of the composite image to display at different points in the page. If a page has ten 1 kB images, they can be combined into one 10 kB image, downloaded with a single HTTP request, and then positioned with CSS. Reducing the number of HTTP requests can make a Web page load much faster. In this usage, the sprite sheet format that had been developed for use in game and animation engines is being applied to static images.

Some advantages of using CSS sprites over using separate images include:

  • Performance – Fewer HTTP requests means less overhead.
  • Automatic preloading – In situations where you have an image which isn’t displayed until some user interaction happens (e.g. a hover state), you will often see a flicker as the browser loads the new image.
  • It is possible to preload such images, but using CSS sprites ensures that this happens automatically.

Some disadvantages are:

  • Perceived load speed – Even though CSS sprites can often be used to increase a page’s overall load speed, this can come at the cost of perceived speed. The browser needs to load the entire sprite sheet before it can display any of the images within that sheet. For large pages, it may be preferable to load the images individually so that the top of the page can finish rendering before the entire page has loaded.
  • Development workflow – It can be inconvenient for a development workflow to be required to regenerate a sprite sheet whenever you add an image to your project. Depending on the method used to generate and manage the sprite sheet, this can range from a minor annoyance to a significant waste of productivity.

Here are the links from the video:

Touche.js – seamless touch event mapping for your click events
http://benhowdle.im/touche/

Motio
http://darsa.in/motio/

Grid Forms · Data entry made beautiful
http://kumailht.com/gridforms/

Codrops
Animated Checkboxes and Radio Buttons with SVG | Codrops

Lo-Dash
http://lodash.com/

CircleType.js lets you set type on a circle
http://circletype.labwire.ca/

Odometer — Transition numbers with ease
http://github.hubspot.com/odometer/docs/welcome/

dypsilon/frontend-dev-bookmarks
https://github.com/dypsilon/frontend-dev-bookmarks

MHM5000/TreehouseShow
http://github.com/MHM5000/TreehouseShow

Website:
Build My Site

JavaScript Tutorial: Adding Touch Events

Touch events allow users to interact with mobile devices via touch gestures such as finger swipes and taps. In this tutorial, learn how to implement JavaScript touch events. Watch more at: JavaScript: Events.

This tutorial is a single movie from the JavaScript: Events course presented by lynda.com author Ray Villalobos. The complete course is 2 hours and 10 minutes and shows how to use JavaScript events to respond to clicks, form input, and touch gestures in your web applications.

Introduction
1. Learning about Events
2. Working with Common Events
3. Working with Time-Based Events
4. JavaScript: Events in Action

Touch events

multitouch eventsWeb browsers running on touch-enabled devices, such as Apple’s iOS and Google’s Android, generate additional events.

Category Type Attribute  Description  Bubbles Cancelable
Touch touchstart Fires when a finger is placed on the touch surface/screen. Yes Yes
touchend Fires when a finger is removed from the touch surface/screen. Yes Yes
touchmove Fires when a finger already placed on the screen is moved across the screen. Yes Yes
touchenter Fires when a touch point moves onto the interactive area defined by a DOM element. Yes Yes
touchleave Fires when a touch point moves off the interactive area defined by a DOM element. Yes Yes
touchcancel A user agent must dispatch this event type to indicate when a TouchPoint has been disrupted in an implementation-specific manner, such as by moving outside the bounds of the UA window. A user agent may also dispatch this event type when the user places more touch points (The coordinate point at which a pointer (e.g. finger or stylus) intersects the target surface of an interface) on the touch surface than the device or implementation is configured to store, in which case the earliest TouchPoint object in the TouchList should be removed. Yes No

In the W3C draft recommendation, a TouchEvent delivers a TouchList of Touch locations, the modifier keys that were active, a TouchList of Touch locations within the targeted DOM element, and a TouchList of Touch locations that have changed since the previous TouchEvent.

Apple didn’t join this working group, and delayed W3C recommendation of its Touch Events Specification by disclosing patents late in the recommendation process.

Website:
Build My Site

jQuery Plugins | Autoprefixer | CSS Sprites

In this episode, Nick Pettit (@nickrp) and Jason Seifer (@jseifer) discuss jQuery plugins, Autoprefixing, CSS sprites, and more.

TeamTreehouse.com is a new way to learn how to create websites, build mobile apps, and start businesses.

jQuery Usage Styles

jQuery has two usage styles:

  • Via the $ function, which is a factory method for the jQuery object. These functions, often called commands, are chainable as they all return jQuery objects.
  • Via $.-prefixed functions. These are utility functions, which do not act upon the jQuery object directly.

Typically, access to and manipulation of multiple DOM nodes begins with the $ function being called with a CSS selector string, which results in a jQuery object referencing matching elements in the HTML page. This node set can be manipulated by calling instance methods on the jQuery object, or on the nodes themselves. For example:
jQuery Plugins

This line finds the union of all div tags with class attribute test and all p tags with CSS class attribute quote, adds the class attribute blue to each matched element, and then increases their height with an animation. The $ and add functions affect the matched set, while the addClass and slideDown affect the referenced nodes.

Besides accessing DOM nodes through jQuery object hierarchy, it is also possible to create new DOM elements if a string passed as the argument to $() looks like HTML. For example, this line finds an HTML SELECT element with ID=”carmakes”, and adds an OPTION element with value “VAG” and text “Volkswagen”:
jQuery Plugins

The methods prefixed with $. are convenience methods or affect global properties and behaviour. For example, the following is an example of the iterating function called each in jQuery:
jQuery plugins




This writes “234″ to the document.

It is possible to perform browser-independent Ajax queries using $.ajax and associated methods to load and manipulate remote data.
jQuery plugins

This example posts the data name=John and location=Boston to example.php on the server. When this request finishes successfully, the success function is called to alert the user. If the request fails, it will alert the user to the failure, the status of the request, and the specific error.

jQuery Plugins

jQuery’s architecture allows developers to create plug-in code to extend its functionality. Currently there are thousands of jQuery plugins available on the web that cover a wide range of functionality such as Ajax helpers, web services, datagrids, dynamic lists, XML and XSLT tools, drag and drop, events, cookie handling, modal windows, and even a jQuery-based Commodore 64 emulator.

An important source of jQuery plugins is the plugins subdomain of the jQuery Project website. However, in an effort to rid the site of spam, the plugins in this subdomain were accidentally deleted in December 2011. The new site will include a GitHub-hosted repository, which will require developers to resubmit their plugins and to conform to new submission requirements. There are alternative plug-in search engines like jquer.in that take more specialized approaches, such as listing only plugins that meet certain criteria (e.g. those that have a public code repository). The tutorials page on the jQuery site has a list of links to jQuery plug-in tutorials under the “Plugin development” section.

Here are the links from the video:
The Responsinator
www.responsinator.com

jQuery Boilerplate
http://jqueryboilerplate.com

Autoprefixer
https://github.com/ai/autoprefixer

Glue — glue 0.3 documentation
http://glue.readthedocs.org/en/latest/

Cardinal — Build more with less.
http://cardinalcss.com/

Google Nexus Website Menu | Codrops
Google Nexus Website

Salvattore — A jQuery Masonry alternative with CSS-driven configuration.
http://salvattore.com/

FT Fastclick | FT Labs
http://labs.ft.com/articles/ft-fastclick/

Subtle Patterns | Free textures for your next web project.
http://subtlepatterns.com/

Website:
Build My Site

Foundation Tutorial: Combining Small and Large Grids in a Single Page

In this tutorial, see how to combine small and large grids in a single page using the Foundation framework. Watch more at: Up and Running with Foundation.

This tutorial is a single movie from the Up and Running with Foundation course presented by lynda.com author Jen Kramer. The complete course duration is 3 hours and 7 minutes and introduces this web design framework and provides a quick overview of all of the goodies in Foundation.

Introduction
1. Foundation Introduction and Download
2. The Grid System in Foundation
3. CSS Overview
4. Navigation Systems
5. JavaScript Effects

Foundation (framework)

FoundationZURB Foundation is a free collection of tools for creating websites and web applications. It contains HTML and CSS-based design templates for typography, forms, buttons, navigation and other interface components, as well as optional JavaScript extensions.

It is the 12th most popular project in all of GitHub and is used by Dictionary.com, ZURB’s web applications, and others.

Origin

Foundation emerged as a ZURB project to develop front-end code faster and better. In October 2011, ZURB released Foundation 2.0 as open-source under the MIT License. In June 2012 ZURB released a major update, Foundation 3.0. In February 2013 ZURB released another major update, Foundation 4.0.

Features

Foundation has relatively incomplete support for HTML 5 and CSS 3, but it is compatible with all major browsers. Basic information of compatibility of websites or applications is available for all devices and browsers. There is a concept of partial compatibility that makes the basic information of a website available for all devices and browsers. For example, the properties introduced in CSS3 for rounded corners, gradients and shadows are used by Foundation despite lack of support by older web browsers. These extend the functionality of the toolkit, but are not required for its use.

Since version 2.0 it also supports responsive design. This means the graphic design of web pages adjusts dynamically, taking into account the characteristics of the device used (PC, tablet, mobile phone). Additionally, since 4.0 it has taken a mobile-first approach, designing and developing for mobile devices first, and enhancing the web pages and applications for larger screens.

Foundation is open source and available on Github. Developers are encouraged to participate in the project and make their own contributions to the platform.

Structure and Function

Foundation is modular and consists essentially of a series of Sass stylesheets that implement the various components of the toolkit. Component stylesheets can be included via Sass or by customizing the initial Foundation download. The developer can adapt the Foundation file itself, selecting the components he wishes to use in his project.

Adjustments are possible to a limited extent through a central configuration stylesheet. More profound changes are possible by changing the Sass variables.

The use of Sass stylesheet language allows the use of variables, functions and operators, nested selectors, as well as so-called mixins.

Since version 3.0, the configuration of Foundation also has a special “Customize” option in the documentation. Moreover, the developer chooses on a form the desired components and adjusts, if necessary, the values of various options to their needs. The subsequently generated package already includes the pre-built CSS style sheet.

Grid system and responsive design

Foundation comes standard with a 940 pixel wide, flexible grid layout. The toolkit is fully responsive to make use different resolutions and types of devices: mobile phones, portrait and landscape format, tablets and PCs with a low and high resolution (widescreen). This adjusts the width of the columns automatically.

Understanding CSS stylesheet

Foundation provides a set of stylesheets that provide basic style definitions for all key HTML components. These provide a browser and system-wide uniform, modern appearance for formatting text, tables and form elements.

Re-usable components

n addition to the regular HTML elements, Foundation contains other commonly used interface elements. These include buttons with advanced features (for example, grouping of buttons or buttons with drop-down option, make and navigation lists, horizontal and vertical tabs, navigation, breadcrumb navigation, pagination, etc.), labels, advanced typographic capabilities, and formatting for messages such as warnings.

JavaScript plug-ins

The JavaScript components of Foundation are based on Zepto.js, a lighter but API-compatible alternative to the jQuery JavaScript framework. They provide additional user-interface elements such as dialog, tooltips and carousels. They also extend the functionality of some existing interface elements, including for example a split drop-down button. In version 4.0 following JavaScript plugins are supported: alerts, clearing, cookie, dropdown, forms, joyride, magellan, orbit, placeholder, reveal, section, tooltips, and topbar.

Use

To use Foundation in an HTML page the developer must first compile one CSS file from the downloaded Sass stylesheets. This can be done with a special compiler. Alternatively, the developer can download a pre-compiled CSS file.

Then they must integrate the generated CSS file in the HTML file. If JavaScript components are selected, they must be referenced along with the Zepto.js or jQuery library in the HTML document.

Website:
Build My Site