Gaia
Gaia is a collection of web apps which make up the UI for the Boot to Gecko project.
Admin
UX Guidelines
The Gaia apps share/reuse some JS libraries (localization, gesture detection, etc.), localization strings (relative dates), and styles (from the building blocks effort, see above):
Apps
- Browser
- Calendar
- Camera
- Clock
- Contacts
- Dialer
- FM Radio
- Gallery
- Home
- Lock
- Marketplace
- Music
- PDF Viewer
- Settings
- SMS/MMS
- Video
System
- Activities
- Apps (install, permissions, errors, management, updates, uninstall, reinstall)
- Bluetooth
- Internet Sharing & Tethering
- Consumption Control
- Do Not Track
- File Management
- First Run Experience
- Hardware
- Keyboard (text-entry ui, predictive and corrective text capabilities)
- Text-handling (cursor management and text selection)
- Localization & Internationalization
- Notifications
- Performance
- Sound
- Status Bar
- System Overlays
- Updates
- Boot Screen
Future
Contributing
Filing Bugs
Issues are filed on Github.
Hacking
You can fork us on Github, then send a pull request.
A lot of the apps should be able to run in a web browser (particularly Firefox Nightly), but sometimes you may need to run them on B2G until new APIs land in browsers. See Gaia/Hacking to get started.
Communicating
You can find us in #gaia on irc.mozilla.org and we use the dev-gaia mailing list.
Reviewers
Gaia does not have formal module owners, but the following developers are good candidates to review patches to the following modules and apps:
Module | Reviewers (irc nick/github username) |
---|---|
Dialer | etienne_s/etiennesegonzac |
Messages | timdream |
Browser | benfrancis/benfrancis |
Camera | benfrancis/benfrancis |
Gallery | djf/davidflanagan, benfrancis/benfrancis |
Video | djf/davidflanagan, kaze/fabi1cazenave |
Homescreen | djf/davidflanagan |
Keyboard | timdream |
Settings | kaze/fabi1cazenave |
Calculator | daleharvey/daleharvey |
Music | djf/davidflanagan |
Clock | etienne_s/etiennesegonzac |
Coding Style
- Background:
- make sure HTML files are declared <!DOCTYPE html> (i.e., HTML5). IE9+ will load them in compatibility mode otherwise.
- add a
"use strict";
statement (exactly that!) to the top of your JS files
- 2 spaces for indentation - do not use tab.
- Line break are free (I promise) don't hesitate to use them to separate logical block inside your functions.
- Files are named
like_this.js
.
- Use single quote instead of double quotes.
- Additional rules:
Bad:
if (expression) doSomething();
Correct:
if (expression) doSomething();
Before submitting a patch
On each javascript files you are adding or you have modified, run:
gjslint --nojsdoc my_file.js
http://code.google.com/closure/utilities/docs/linter_howto.html
Set of smoke tests to run before you check-in a patch: PatchSmokeTests.pdf
Subpages of Gaia
- Gaia/Alarm
- Gaia/AppPermissions
- Gaia/App Definitions
- Gaia/Architecture Proposal
- Gaia/Architecture Transition Proposal
- Gaia/Architecture Transition Validation
- Gaia/Browser
- Gaia/Build
- Gaia/Build/NewBuildSystem
- Gaia/Build/RefactoringToNodejs
- Gaia/Build/Refactoring Plan
- Gaia/Build/Refactoring Plan/First half of 2014
- Gaia/Build/Roadmap
- Gaia/Build/Specification
- Gaia/CSS Guidelines
- Gaia/Calculator
- Gaia/Calendar
- Gaia/Calendar/Triage
- Gaia/Camera
- Gaia/Clock
- Gaia/Clock/demos
- Gaia/Comms/2.1/Call Length
- Gaia/Comms/2.1/Highlight Actionable Field
- Gaia/Comms/2.1/Ice Contacts
- Gaia/Contacts
- Gaia/Contacts/Bookmarks
- Gaia/Contacts/Data Refactor
- Gaia/Contacts/Data Refactor/mozcontactsProposal
- Gaia/Contacts/Scrum/2.0S6
- Gaia/Contacts/Scrum/2.1S0
- Gaia/Contacts/Scrum/2.1S1
- Gaia/Contacts/Scrum/2.1S2
- Gaia/Contacts/Scrum/2.1S3
- Gaia/Contacts/Scrum/2.1S4
- Gaia/Contacts/Scrum/2.1S5
- Gaia/Contacts/Scrum/2.1S6
- Gaia/Contacts/Scrum/2.1S7
- Gaia/Contacts/Scrum/2.1S8
- Gaia/Contacts/Scrum/2.1S9
- Gaia/Contacts/Scrum/2.2S1
- Gaia/Contacts/Scrum/3
- Gaia/Contacts/Scrum/4
- Gaia/Contacts/Scrums/3
- Gaia/Demos- July 26
- Gaia/Design
- Gaia/Design/ApplicationUXDocumentation
- Gaia/Design/Assets
- Gaia/Design/BuildingBlocks
- Gaia/Design/Components
- Gaia/Design/FirstRun
- Gaia/Design/FlexibleUI
- Gaia/Design/Patterns
- Gaia/Design/UserScenario
- Gaia/Design/Visual
- Gaia/Dialer
- Gaia/Dialer/Restructure
- Gaia/Ecosystem
- Gaia/Email
- Gaia/Email/ActiveSync
- Gaia/Email/Autoconfig
- Gaia/Email/DebuggingTricks
- Gaia/Email/Demos
- Gaia/Email/Features
- Gaia/Email/HistoricalReqs
- Gaia/Email/Implementation/Limits
- Gaia/Email/Implementation/MailSynchronization
- Gaia/Email/Implementation/MessageDisplayAndAttachments
- Gaia/Email/LoggestTestFramework
- Gaia/Email/ProvidingEmailsForDebugging
- Gaia/Email/RequiredBugInfo
- Gaia/Email/SecretDebugMode
- Gaia/Email/Standards/PushNotifications
- Gaia/Email/UX/Decisions
- Gaia/ExistingStylesPatterns
- Gaia/FMRadio
- Gaia/Find My Device
- Gaia/Gaia/New-Architecture-Program/Contacts/NGA SP2
- Gaia/Gallery
- Gaia/HackingOffline
- Gaia/Haida template
- Gaia/Home
- Gaia/Home/Cards
- Gaia/Home/Carousel TF
- Gaia/Home/Dock
- Gaia/Home/Dock TF
- Gaia/Home/Grid
- Gaia/Home/Grid TF
- Gaia/Home/Lock
- Gaia/Home/Search
- Gaia/Marketplace
- Gaia/MediaTeam
- Gaia/Meeting/2011-11-10
- Gaia/Meeting/2012-01-24
- Gaia/Meeting/2012-02-28
- Gaia/Meeting/2012-03-06
- Gaia/Meeting/2012-03-13
- Gaia/Meeting/2012-03-20
- Gaia/Meeting/2012-03-27
- Gaia/Meeting/2012-04-03
- Gaia/Meeting/2012-04-17
- Gaia/Meeting/2012-04-24
- Gaia/Meeting/2012-05-01
- Gaia/Meeting/2012-05-15
- Gaia/Meeting/2012-05-22
- Gaia/Meeting/2012-05-28
- Gaia/Meeting/2012-06-05
- Gaia/Meeting/2012-07-03
- Gaia/Meeting/2012-07-24
- Gaia/Meeting/2012-08-14
- Gaia/Meeting/2012-08-20
- Gaia/Meeting/2012-08-21
- Gaia/Meeting/2012-08-28
- Gaia/Meeting/2012-09-04
- Gaia/Meeting/2012-09-11
- Gaia/Meeting/2012-09-18
- Gaia/Meeting/2012-09-28
- Gaia/Meeting/2012-10-02
- Gaia/Meeting/2012-10-09
- Gaia/Meeting/2012-10-16
- Gaia/Meeting/2012-10-23
- Gaia/Meeting/2012-10-30
- Gaia/Meeting/2012-11-13
- Gaia/Meeting/2012-11-20
- Gaia/Meeting/2012-11-27
- Gaia/Meeting/2012-12-04
- Gaia/Meeting/2012-12-11
- Gaia/Meeting/2013-02-07
- Gaia/Meeting/2013-08-27
- Gaia/Meeting/2013-09-03
- Gaia/Meeting/2013-09-17
- Gaia/Meeting/2013-09-24
- Gaia/Meeting/2013-10-01
- Gaia/Meeting/2013-10-08
- Gaia/Meeting/2013-10-15
- Gaia/Meeting/2013-10-22
- Gaia/Meeting/2013-10-29
- Gaia/Meeting/2013-11-05
- Gaia/Meeting/2013-11-12
- Gaia/Meeting/2013-11-19
- Gaia/Meeting/2013-11-26
- Gaia/Meeting/2013-12-03
- Gaia/Meeting/2013-12-10
- Gaia/Meeting/2013-12-17
- Gaia/Meeting/2014-01-07
- Gaia/Meeting/2014-01-14
- Gaia/Meeting/2014-01-21
- Gaia/Meeting/2014-01-28
- Gaia/Meeting/2014-02-04
- Gaia/Meeting/2014-02-11
- Gaia/Meeting/2014-02-18
- Gaia/Meeting/2014-02-25
- Gaia/Meeting/2014-03-04
- Gaia/Meeting/2014-03-11
- Gaia/Meeting/2014-03-18
- Gaia/Meeting/2014-03-25
- Gaia/Meeting/2014-04-01
- Gaia/Meeting/2014-04-08
- Gaia/Meeting/2014-04-15
- Gaia/Meeting/2014-04-22
- Gaia/Meeting/2014-04-29
- Gaia/Meeting/2014-05-06
- Gaia/Meeting/2014-05-13
- Gaia/Meeting/2014-05-20
- Gaia/Meeting/2014-05-27
- Gaia/Meeting/2014-06-03
- Gaia/Meeting/2014-06-10
- Gaia/Meeting/2014-06-17
- Gaia/Meeting/2014-06-24
- Gaia/Meeting/2014-07-01
- Gaia/Meeting/2014-07-08
- Gaia/Meeting/2014-07-15
- Gaia/Meeting/2014-07-29
- Gaia/Meeting/2014-08-05
- Gaia/Meeting/2014-08-12
- Gaia/Meeting/2014-08-19
- Gaia/Meeting/2014-08-26
- Gaia/Meeting/2014-09-02
- Gaia/Meeting/2014-09-09
- Gaia/Meeting/2014-09-16
- Gaia/Meeting/2014-09-23
- Gaia/Meeting/2014-10-06
- Gaia/Meeting/2014-10-13
- Gaia/Meeting/2014-10-20
- Gaia/Meeting/2014-10-28
- Gaia/Meeting/2014-11-04
- Gaia/Meeting/2014-11-11
- Gaia/Meeting/2015-02-17
- Gaia/Meeting/2015-03-03
- Gaia/Meeting/2015-03-10
- Gaia/Meeting/2015-03-17
- Gaia/Meeting/2015-03-24
- Gaia/Meeting/2015-03-31
- Gaia/Meeting/2015-04-14
- Gaia/Meeting/2015-04-21
- Gaia/Meeting/2015-04-28
- Gaia/Meeting/2015-05-05
- Gaia/Meeting/2015-05-12
- Gaia/Meeting/2015-05-19
- Gaia/Meeting/2015-05-26
- Gaia/Meeting/2015-06-09
- Gaia/Meeting/2015-07-07
- Gaia/Meeting/2015-07-14
- Gaia/Meeting/2015-07-21
- Gaia/Meeting/2015-07-28
- Gaia/Meeting/2015-08-04
- Gaia/Meeting/2015-08-11
- Gaia/Meeting/2015-08-18
- Gaia/Meeting/2015-08-25
- Gaia/Meeting/2015-09-01
- Gaia/Meeting/2015-09-08
- Gaia/Meeting/2015-09-15
- Gaia/Meeting/2015-09-29
- Gaia/Meeting/2015-10-16
- Gaia/Meeting/2015-10-20
- Gaia/Meeting/2015-10-27
- Gaia/Meeting/2015-11-10
- Gaia/Meeting/2015-11-17
- Gaia/Meeting/2015-11-24
- Gaia/Meeting/2016-01-15
- Gaia/Meeting/2016-01-19
- Gaia/Meeting/2016-01-26
- Gaia/Meeting/2016-03-01
- Gaia/Meeting Notes
- Gaia/Metrics
- Gaia/Metting/2013-10-15
- Gaia/Music
- Gaia/Network Alerts
- Gaia/New-Architecture-Program
- Gaia/New-Architecture-Program/Contacts
- Gaia/New-Architecture-Program/Contacts/FxOS-S2(10 Jul)
- Gaia/New-Architecture-Program/Contacts/FxOS-S3(24 Jul)
- Gaia/New-Architecture-Program/Contacts/FxOS-S4(07 Aug)
- Gaia/New-Architecture-Program/Contacts/FxOS-S5(21 Aug)
- Gaia/New-Architecture-Program/Contacts/FxOS-S6(04 Aug)
- Gaia/New-Architecture-Program/Contacts/FxOS-S6(04 Sep)
- Gaia/New-Architecture-Program/Contacts/FxOS-S7(18 Sep)
- Gaia/New-Architecture-Program/Contacts/FxOS-S8(02 Oct)
- Gaia/New-Architecture-Program/Contacts/FxOS-S9(16 Oct)
- Gaia/New-Architecture-Program/Contacts/NGA SP2
- Gaia/New-Architecture-Program/Contacts/NGA SP3
- Gaia/New-Architecture-Program/NavigationTransitions
- Gaia/Notifications
- Gaia/PDFViewer
- Gaia/Planning/2.1
- Gaia/Projects/Email
- Gaia/Projects/MozContacts
- Gaia/Projects/SMSDatabase
- Gaia/Projects/SMSHomescreen
- Gaia/Projects/Tests
- Gaia/Projects/VolumeUI
- Gaia/Projects/WindowManager
- Gaia/QA
- Gaia/SMS
- Gaia/SMS/Current App State
- Gaia/SMS/Handling Bugs
- Gaia/SMS/Scrum
- Gaia/SMS/Scrum/1
- Gaia/SMS/Scrum/1/Planning
- Gaia/SMS/Scrum/2
- Gaia/SMS/Scrum/2.0S6
- Gaia/SMS/Scrum/2.0S6/Planning
- Gaia/SMS/Scrum/2.1S1
- Gaia/SMS/Scrum/2.1S1/Planning
- Gaia/SMS/Scrum/2.1S2
- Gaia/SMS/Scrum/2.1S2/Planning
- Gaia/SMS/Scrum/2.1S3
- Gaia/SMS/Scrum/2.1S3/Planning
- Gaia/SMS/Scrum/2.1S4
- Gaia/SMS/Scrum/2.1S4/Planning
- Gaia/SMS/Scrum/2.1S5
- Gaia/SMS/Scrum/2.1S6
- Gaia/SMS/Scrum/2.1S7
- Gaia/SMS/Scrum/2.1S7/Planning
- Gaia/SMS/Scrum/2.1S8
- Gaia/SMS/Scrum/2.1S8/Planning
- Gaia/SMS/Scrum/2.1S9
- Gaia/SMS/Scrum/2.1S9/Planning
- Gaia/SMS/Scrum/2.2S1
- Gaia/SMS/Scrum/2.2S11
- Gaia/SMS/Scrum/2.2S11/Planning
- Gaia/SMS/Scrum/2.2S13
- Gaia/SMS/Scrum/2.2S13/Planning
- Gaia/SMS/Scrum/2.2S14
- Gaia/SMS/Scrum/2.2S14/Planning
- Gaia/SMS/Scrum/2.2S2
- Gaia/SMS/Scrum/2.2S3
- Gaia/SMS/Scrum/2.2S4
- Gaia/SMS/Scrum/2.2S4/Planning
- Gaia/SMS/Scrum/2.2S5
- Gaia/SMS/Scrum/2.2S5/Planning
- Gaia/SMS/Scrum/2/Planning
- Gaia/SMS/Scrum/3
- Gaia/SMS/Scrum/3/Planning
- Gaia/SMS/Scrum/4
- Gaia/SMS/Scrum/FxOS-S3
- Gaia/SMS/Scrum/FxOS-S3/Planning
- Gaia/SMS/Scrum/FxOS-S4
- Gaia/SMS/Scrum/FxOS-S4/Planning
- Gaia/SMS/Scrum/FxOS-S5
- Gaia/SMS/Scrum/FxOS-S5/Planning
- Gaia/SMS/Scrum/FxOS-S6
- Gaia/SMS/Scrum/FxOS-S6/Planning
- Gaia/SMS/Scrum/FxOS-S7
- Gaia/SMS/Scrum/FxOS-S8
- Gaia/SMS/Scrum/FxOS-S9
- Gaia/SMS/Scrum/Milestone Planning/1
- Gaia/SMS/Scrum/Milestone Planning/2
- Gaia/SMS/Scrum/Template
- Gaia/Settings
- Gaia/Settings/docs
- Gaia/Settings/docs/Apn Settings
- Gaia/Settings/docs/Call Settings
- Gaia/Settings/docs/Dialog Manager
- Gaia/Settings/docs/Dialog Service
- Gaia/Settings/docs/Keyboard Settings
- Gaia/Settings/docs/Operator Settings
- Gaia/Settings/docs/Root
- Gaia/Settings/docs/Sim Manager
- Gaia/Settings/docs/Sim Security
- Gaia/Settings/docs/Wifi
- Gaia/Settings/docs/airplane mode
- Gaia/Shared
- Gaia/Shared/Components
- Gaia/System
- Gaia/System/Activities
- Gaia/System/Apps
- Gaia/System/AppsManagement
- Gaia/System/Bluetooth
- Gaia/System/BootScreen
- Gaia/System/ConsumptionControl
- Gaia/System/Contribution
- Gaia/System/CursorManagement
- Gaia/System/Customization
- Gaia/System/DRM
- Gaia/System/DateTime
- Gaia/System/DeviceSecurity
- Gaia/System/Division