You are here
Since there is a large variety of transit networks here in San Francisco, I will break this up into multiple, broad groups.

Notes:

  • Most agencies allow children aged 4 and younger to ride for free with up to two adult-paying riders (unless where indicated).
  • Many transit agencies provide discounts for Clipper card holders. See the Clipper Card page for more details.
  • Most agencies provide monthly passes for frequent riders. See the Passes and Transfers page (under development) for more details.
  • For transfers to and from other agencies, visit the Interagency Transfers page (under development).

Buses and Electric Trolleys

Buses constitute the largest type of transit vehicles here in the San Francisco Bay Area. While all of them provide local services, some of them provide Transbay and regional services (e.g. San Francisco-North Bay, Peninsula-East Bay) that would incur an additional fee from the local fare.

Included in this discussion are paper transfers, which are valid for a certain amount of time, in which I will list them down by agency, time length, and cost (if applicable). Not included in this, however, are inter-agency transfers: these are facilitated at certain locations only with different terms and conditions for every transit agency. See the Interagency Transfers page for more details (under development).

#element-2246eea0-6430-413c-9649-5e32bc4837a4 .border-box {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .tabbed-box {
position: relative;
margin: 20px 0;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .tabbed-box-tab-group {
font-size: 0;
margin: 0;
padding: 0;
float: left;
list-style: none;
height: 60px;
width: 100%;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
white-space: nowrap;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .tabbed-box-tab {
margin: 0;
cursor: pointer;
height: 60px;
display: inline-block;
min-width: 19%;
position: relative;
background-color: #F7F7F7;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .tabbed-box-content-group {
clear: both;
float: left;
width: 100%;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .tabbed-box-content {
padding: 40px 20px 40px 20px;
display: none;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .scrollArrow {
width: 25px;
background-color: white;
text-align: center;
position: absolute;
z-index: 3;
top: 0;
display: none;
cursor: pointer;
height: 60px;
line-height: 60px;
font-weight: bold;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .scrollArrow.scrollArrow-left {
left: 0;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .scrollArrow.scrollArrow-right {
right: 0;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .tabbed-box.scrollable .tabbed-box-tab-group {
border-bottom: none;
overflow-x: hidden;
overflow-y: hidden;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .tabbed-box.scrollable .tabbed-box-bar:hover .scrollArrow.active {
display: block;
}
@media only screen and (min-device-width: 414px) and (max-device-width: 736px) and (-webkit-min-device-pixel-ratio: 3),only screen and (min-device-width: 375px) and (max-device-width: 667px) and (-webkit-min-device-pixel-ratio: 2),only screen and (min-device-width: 320px) and (max-device-width: 568px) and (-webkit-min-device-pixel-ratio: 2),only screen and (min-device-width: 320px) and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2),only screen and (max-width: 499px) {
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .tabbed-box-tab-group {
overflow-x: scroll !important;
}
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .standard .tabbed-box-tab-group {
border-left: 1px solid #CCCCCC;
border-bottom: 1px solid #CCCCCC;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .standard .tabbed-box-tab {
border: 1px solid #CCCCCC;
border-left: none;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .standard .tabbed-box-tab .paragraph {
color: #A8ABAC;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .standard .tabbed-box-tab.active {
border-bottom: 1px solid white;
background-color: white;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .standard .tabbed-box-content-group {
border: 1px solid #CCCCCC;
border-top: none;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .standard.scrollable .tabbed-box-tab-group {
border-right: 1px solid #CCCCCC;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .standard.scrollable .tabbed-box-tab-group .tabbed-box-tab:last-child {
border-right: none;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .standard.scrollable .scrollArrow-left {
border: 1px solid #CCCCCC;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .standard.scrollable .scrollArrow-right {
border: 1px solid #CCCCCC;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .line .tabbed-box-tab-group {
border: 1px solid #CCCCCC;
border-bottom: none;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .line .tabbed-box-tab {
border-bottom: 1px solid #CCCCCC;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .line .tabbed-box-tab .paragraph {
color: #BDC2C2;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .line .tabbed-box-tab.active {
border-bottom: 1px solid black;
background-color: white;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .line .tabbed-box-content-group {
border: 1px solid #CCCCCC;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .line.scrollable .tabbed-box-tab-group {
height: 61px;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .line.scrollable .tabbed-box-content-group {
border-top: none;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .line.scrollable .scrollArrow-left,
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .line.scrollable .scrollArrow-right {
border: 1px solid #CCCCCC;
border-bottom: none;
border-top: none;
height: 61px;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .simple .tabbed-box-tab {
border-bottom: 1px solid #CCCCCC;
height: 61px;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .simple .tabbed-box-tab .paragraph {
color: #BDC2C2;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .simple .tabbed-box-tab.active {
border-bottom: 1px solid black;
background-color: white;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .simple .tabbed-box-content-group {
border-top: 1px solid #CCCCCC;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .simple .tabbed-box-content {
padding: 20px 0px 20px 0px;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .simple .scrollArrow-left {
border-right: 1px solid #CCCCCC;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .simple .scrollArrow-right {
border-left: 1px solid #CCCCCC;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .s3d-shadow {
-webkit-box-shadow: #f5f5f5;
-moz-box-shadow: #f5f5f5;
box-shadow: #f5f5f5;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .s3d-content-shadow {
-webkit-box-shadow: 0px 0px 30px 4px #f5f5f5;
-moz-box-shadow: 0px 0px 30px 4px #f5f5f5;
box-shadow: 0px 0px 30px 4px #f5f5f5;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .s3d .tabbed-box-tab .paragraph {
color: #A8ABAC;
background-color: #F7F7F7;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .s3d .tabbed-box-tab.active {
border-bottom: 1px solid white;
background-color: white;
-webkit-box-shadow: 0px -10px 31px -4px #f5f5f5, -12px -4px 40px -16px #f5f5f5, 12px -4px 40px -16px #f5f5f5;
-moz-box-shadow: 0px -10px 31px -4px #f5f5f5, -12px -4px 40px -16px #f5f5f5, 12px -4px 40px -16px #f5f5f5;
box-shadow: 0px -10px 31px -4px #f5f5f5, -12px -4px 40px -16px #f5f5f5, 12px -4px 40px -16px #f5f5f5;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .s3d .tabbed-box-tab.active .paragraph {
background-color: white;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .s3d .tabbed-box-content-group {
-webkit-box-shadow: 0px 0px 30px 4px #f5f5f5;
-moz-box-shadow: 0px 0px 30px 4px #f5f5f5;
box-shadow: 0px 0px 30px 4px #f5f5f5;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .tabbed-box-tab .paragraph {
padding: 0px;
line-height: 60px !important;
text-align: center !important;
font-weight: bold;
font-size: 16px !important;
margin: 0 20px;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .tabbed-box-content .paragraph {
padding: 0;
line-height: 30px;
}
#element-2246eea0-6430-413c-9649-5e32bc4837a4 .tabbed-box-tab:last-child .w-delete-outer {
display: none;
position: relative;
float: right;
}

  • San Francisco & Peninsula
  • East Bay
  • South Bay
  • North Bay
  • Regional Buses
<
>

The local fares are as follows:

#element-fe125ab2-a99e-4048-8a28-def0f33dc4cb .simple-table-wrapper {
padding: 20px 0;
}
#element-fe125ab2-a99e-4048-8a28-def0f33dc4cb .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-fe125ab2-a99e-4048-8a28-def0f33dc4cb .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-fe125ab2-a99e-4048-8a28-def0f33dc4cb .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-fe125ab2-a99e-4048-8a28-def0f33dc4cb .simple-table.style-top tr:first-child td,
#element-fe125ab2-a99e-4048-8a28-def0f33dc4cb .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-fe125ab2-a99e-4048-8a28-def0f33dc4cb .simple-table.style-top tr:first-child td .paragraph,
#element-fe125ab2-a99e-4048-8a28-def0f33dc4cb .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-fe125ab2-a99e-4048-8a28-def0f33dc4cb .simple-table tr:last-child td {
border-bottom: none;
}
#element-fe125ab2-a99e-4048-8a28-def0f33dc4cb .simple-table td:last-of-type {
border-right: none;
}
#element-fe125ab2-a99e-4048-8a28-def0f33dc4cb .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Agency and Type
Regular (Adult) Fare
Discount (Senior, Youth) Fare
San Francisco Muni
$2.25
$1.00
SamTrans Local
$2.25
$1.10

function setupElement297873508296859279() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2}],”columns”:3,”rows”:3,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:”default”});
_Element.prototype.settings.page_element_id = “297873508296859279”;
_Element.prototype.element_id = “fe125ab2-a99e-4048-8a28-def0f33dc4cb”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-fe125ab2-a99e-4048-8a28-def0f33dc4cb’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement297873508296859279();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement297873508296859279, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement297873508296859279();
}
});
}

The regional fares (traveling into and out of San Francisco) are as follows:

#element-2b90c8e9-aad8-4d3d-af32-e063f3e06e08 .simple-table-wrapper {
padding: 20px 0;
}
#element-2b90c8e9-aad8-4d3d-af32-e063f3e06e08 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-2b90c8e9-aad8-4d3d-af32-e063f3e06e08 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-2b90c8e9-aad8-4d3d-af32-e063f3e06e08 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-2b90c8e9-aad8-4d3d-af32-e063f3e06e08 .simple-table.style-top tr:first-child td,
#element-2b90c8e9-aad8-4d3d-af32-e063f3e06e08 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-2b90c8e9-aad8-4d3d-af32-e063f3e06e08 .simple-table.style-top tr:first-child td .paragraph,
#element-2b90c8e9-aad8-4d3d-af32-e063f3e06e08 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-2b90c8e9-aad8-4d3d-af32-e063f3e06e08 .simple-table tr:last-child td {
border-bottom: none;
}
#element-2b90c8e9-aad8-4d3d-af32-e063f3e06e08 .simple-table td:last-of-type {
border-right: none;
}
#element-2b90c8e9-aad8-4d3d-af32-e063f3e06e08 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Agency and Type
Regular (Adult) Fare
Discount (Senior, Youth) Fare
AC Transit Transbay
$4.20
$2.10
Golden Gate Transit (within SF)
$4.75
$2.25
Golden Gate Transit (to Zone 2)
$5.25
$2.50
Golden Gate Transit (beyond Zone 2)
Varies
Varies
SamTrans (Out of San Francisco)
$4.00
$1.10
Soltrans Route 200
​$13.40
$6.70
WestCAT LYNX
$5.00
$2.00+

function setupElement626920322326799272() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3},{“rows_index”:4},{“rows_index”:5},{“rows_index”:6},{“rows_index”:7}],”columns”:3,”rows”:8,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:”default”});
_Element.prototype.settings.page_element_id = “626920322326799272”;
_Element.prototype.element_id = “2b90c8e9-aad8-4d3d-af32-e063f3e06e08”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-2b90c8e9-aad8-4d3d-af32-e063f3e06e08’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement626920322326799272();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement626920322326799272, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement626920322326799272();
}
});
}

Notes:

  • The AC Transit Transbay fare applies to the following:
    • All routes out of San Francisco (Routes B, C, CB, E, F, FS, G, H, J, L, LA, LC, NL, NX, NX1, NX2, NX3, NX4, NXC, O, OX, P, S, SB, V, W, Z)
    • Route M via the San Mateo Bridge
    • Dumbarton Express (Routes DB & DB1)
    • Route U via the Dumbarton Bridge
  • Golden Gate Transit regional fares vary based on destination.
    • For travel within San Francisco, stops south and east of Richardson & Lyon/Francisco are drop-off only southbound, pick-up only northbound. Pickups and dropoffs are allowed at Richardson & Lyon/Francisco and the Golden Gate Bridge Toll Plaza for onward connections to other Golden Gate and Muni routes.
    • Zone 2 destinations include Sausalito, Marin City, Mill Valley, Tiburon, Belvedere, and Stinson Beach. This also includes travel between the Golden Gate Bridge Toll Plaza and the Alexander Street stops (Bunker Road southbound, at US-101 offramp northbound) for access to either end of the Golden Gate Bridge.
    • For destinations beyond Zone 2, tell the driver your intended destination, your age (if needed to get a discounted fare), and insert the appropriate fare. Details in the North Bay tab.
  • San Francisco Muni offers paper transfers on board buses and light rail vehicles (outside tunnels only), good for 90 minutes on all directions.
    • The same fare also applies on all express routes, including Route 76X-Marin Headlands Express, which operates weekends and holidays only between Montgomery BART station and Point Bonita in the Marin Headlands via the Golden Gate Bridge.
  • When traveling on SamTrans Routes 292, 397, and KX, the following rules apply:
    • Traveling to San Francisco: pay the Local fare
    • Traveling from San Francisco: pay the Out of San Francisco fare
    • Within the City and County of San Francisco, northbound stops are drop-offs only while southbound stops are pick-ups only. Passengers traveling solely within San Francisco should use San Francisco Muni (Routes 9, 9R, 14, 14R, 33, and T).
  • Other SamTrans routes that go into and out of San Francisco (Routes ECR, 120, 121, 122) only require a local fare to travel.
  • Fares on the WestCAT LYNX are as follows:
    • Youths and adults (age 6 to 64) pay the adult fare
    • + – Fare applies to seniors (65 and over), handicapped, and Medicare cardholders
Regular cash fares are listed below. Take note:

* – Also includes service on the Dumbarton Express (Stanford University – Union City BART via Ardenwood Park-and-Ride)
** – Includes Routes 91X, 92X, 93X, 95X, 96X, 97X, and 98X
*** – Includes Routes 200, 201, and 300
+ – Discounted fare applies to seniors (65 and over) and handicapped riders only. Youths between 6 and 18 pay the regular fare.
++ – From 10am to 2pm weekdays, seniors and handicapped riders (plus Medicare cardholders) ride for free.

#element-a3369db1-03db-4e42-ab9f-99fc517618cb .simple-table-wrapper {
padding: 20px 0;
}
#element-a3369db1-03db-4e42-ab9f-99fc517618cb .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-a3369db1-03db-4e42-ab9f-99fc517618cb .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-a3369db1-03db-4e42-ab9f-99fc517618cb .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-a3369db1-03db-4e42-ab9f-99fc517618cb .simple-table.style-top tr:first-child td,
#element-a3369db1-03db-4e42-ab9f-99fc517618cb .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-a3369db1-03db-4e42-ab9f-99fc517618cb .simple-table.style-top tr:first-child td .paragraph,
#element-a3369db1-03db-4e42-ab9f-99fc517618cb .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-a3369db1-03db-4e42-ab9f-99fc517618cb .simple-table tr:last-child td {
border-bottom: none;
}
#element-a3369db1-03db-4e42-ab9f-99fc517618cb .simple-table td:last-of-type {
border-right: none;
}
#element-a3369db1-03db-4e42-ab9f-99fc517618cb .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Fare and Type
Regular (Adult) Fare
Discount (Senior, Youth) Fare
AC Transit Local
$2.10
$1.05
AC Transit Transbay*
$4.20
$2.10
County Connection Local
$2.00
$1.00++
County Connection Express**
$2.25
$1.00
Tri-Delta Transit Local
​$2.00
$0.85+
Tri-Delta Transit Express***
$2.50
$1.75+
Union City Transit
$2.00
Youth (6-17 y.o.): $1.25
Senior (65+ y.o.): $1.00
WestCAT Local
$1.75
$0.75+
WestCAT LYNX
$5.00
$2.00+
WestCAT Dial-a-Ride
$4.00
$2.00+
Wheels (Livermore)
$2.00
$1.00

function setupElement286734625291681181() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3},{“rows_index”:4},{“rows_index”:5},{“rows_index”:6},{“rows_index”:7},{“rows_index”:8},{“rows_index”:9},{“rows_index”:10},{“rows_index”:11}],”columns”:3,”rows”:12,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:”default”});
_Element.prototype.settings.page_element_id = “286734625291681181”;
_Element.prototype.element_id = “a3369db1-03db-4e42-ab9f-99fc517618cb”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-a3369db1-03db-4e42-ab9f-99fc517618cb’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement286734625291681181();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement286734625291681181, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement286734625291681181();
}
});
}

Local fares are as follows:

#element-39be683a-242f-47b5-bc92-c3197d2a9289 .simple-table-wrapper {
padding: 20px 0;
}
#element-39be683a-242f-47b5-bc92-c3197d2a9289 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-39be683a-242f-47b5-bc92-c3197d2a9289 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-39be683a-242f-47b5-bc92-c3197d2a9289 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-39be683a-242f-47b5-bc92-c3197d2a9289 .simple-table.style-top tr:first-child td,
#element-39be683a-242f-47b5-bc92-c3197d2a9289 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-39be683a-242f-47b5-bc92-c3197d2a9289 .simple-table.style-top tr:first-child td .paragraph,
#element-39be683a-242f-47b5-bc92-c3197d2a9289 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-39be683a-242f-47b5-bc92-c3197d2a9289 .simple-table tr:last-child td {
border-bottom: none;
}
#element-39be683a-242f-47b5-bc92-c3197d2a9289 .simple-table td:last-of-type {
border-right: none;
}
#element-39be683a-242f-47b5-bc92-c3197d2a9289 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Agency and Type
Regular (Adult) Fare
Discount (Senior, Youth) Fare
SamTrans Local
$2.25
$1.10
Santa Clara VTA Local
$2.00
Youth: $1.75
​Senior $1.00
Santa Clara VTA Community Bus
$1.25
Youth: $0.75
Senior: $0.50
Santa Clara VTA Express
$4.00
Youth: $1.75
​Senior: $1.00

function setupElement679643441515635752() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3},{“rows_index”:4}],”columns”:3,”rows”:5,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:”default”});
_Element.prototype.settings.page_element_id = “679643441515635752”;
_Element.prototype.element_id = “39be683a-242f-47b5-bc92-c3197d2a9289”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-39be683a-242f-47b5-bc92-c3197d2a9289’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement679643441515635752();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement679643441515635752, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement679643441515635752();
}
});
}

Notes:

  • Fares for limited-stop lines with the VTA (3xx series) are the same as the VTA Local fares.
  • Fares under VTA Community Bus include Lines 13, 14, 16, 17, 18, 19, 32, 34, 37, 39, 42, 45, 48, 49, 65, 88, 88L, and 88M.
  • Fares under VTA Express include the 1xx series lines (101, 102, 103, 104, 120, 121, 122, 140, 168, 180, 181, 182).
Regional fares are as follows:

#element-24af35da-15f1-4941-9a4c-b97398752010 .simple-table-wrapper {
padding: 20px 0;
}
#element-24af35da-15f1-4941-9a4c-b97398752010 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-24af35da-15f1-4941-9a4c-b97398752010 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-24af35da-15f1-4941-9a4c-b97398752010 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-24af35da-15f1-4941-9a4c-b97398752010 .simple-table.style-top tr:first-child td,
#element-24af35da-15f1-4941-9a4c-b97398752010 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-24af35da-15f1-4941-9a4c-b97398752010 .simple-table.style-top tr:first-child td .paragraph,
#element-24af35da-15f1-4941-9a4c-b97398752010 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-24af35da-15f1-4941-9a4c-b97398752010 .simple-table tr:last-child td {
border-bottom: none;
}
#element-24af35da-15f1-4941-9a4c-b97398752010 .simple-table td:last-of-type {
border-right: none;
}
#element-24af35da-15f1-4941-9a4c-b97398752010 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Agency and Route
Regular (Adult) Fare
Discount (Senior, Youth) Fare
AC Transit Transbay*
$4.20
$2.10
Monterey-Salinas Transit Routes 55 & 86
$12.00
$6.00
Santa Cruz Metro Hwy 17 Express
$7.00
$3.50+

function setupElement801044042997255109() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3}],”columns”:3,”rows”:4,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:”default”});
_Element.prototype.settings.page_element_id = “801044042997255109”;
_Element.prototype.element_id = “24af35da-15f1-4941-9a4c-b97398752010”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-24af35da-15f1-4941-9a4c-b97398752010’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement801044042997255109();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement801044042997255109, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement801044042997255109();
}
});
}

Notes:

  • * – Includes Dumbarton Express (Routes DB and DB1) and Route U (Stanford University – Fremont BART)
  • + – Fare applies to seniors, handicapped, and approved discounted fare cardholders. Present valid card to driver to receive discounted fare.
  • Children under 46 inches (checked by driver upon boarding) ride Monterey-Salinas Transit and Santa Cruz Metro buses for free (up to three children for every adult-paying passenger).
  • Discounted fare for Monterey-Salinas Transit also includes Veterans with MST Courtesy Card.
North Bay transit agencies have a more fragmented fare system where larger agencies like Golden Gate Transit and Sonoma County Transit operate with zone fares, while smaller agencies operate with unified fares.

The local (one zone-only) fares are as follows:

Notes: 

  • * – PCA: Personal Care Assistant. This person should accompany a senior or handicapped passenger to receive a discounted fare.
  • ** – Also includes Golden Gate Transit service within Marin County
  • On some agencies, senior fare is listed as SDM, meaning Seniors, Disabled, and Medicare cardholders.

#element-6ddd4a82-6b13-43c8-879e-09097825e9b5 .simple-table-wrapper {
padding: 20px 0;
}
#element-6ddd4a82-6b13-43c8-879e-09097825e9b5 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-6ddd4a82-6b13-43c8-879e-09097825e9b5 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-6ddd4a82-6b13-43c8-879e-09097825e9b5 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-6ddd4a82-6b13-43c8-879e-09097825e9b5 .simple-table.style-top tr:first-child td,
#element-6ddd4a82-6b13-43c8-879e-09097825e9b5 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-6ddd4a82-6b13-43c8-879e-09097825e9b5 .simple-table.style-top tr:first-child td .paragraph,
#element-6ddd4a82-6b13-43c8-879e-09097825e9b5 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-6ddd4a82-6b13-43c8-879e-09097825e9b5 .simple-table tr:last-child td {
border-bottom: none;
}
#element-6ddd4a82-6b13-43c8-879e-09097825e9b5 .simple-table td:last-of-type {
border-right: none;
}
#element-6ddd4a82-6b13-43c8-879e-09097825e9b5 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Agency (Coverage Area)
Regular (Adult) Fare
Discount (Senior, Youth) Fare
Fairfield and Suisun Transit
$1.75
Youth: $1.50
Senior: $0.85
Golden Gate Transit (Sonoma County)
$4.75
$2.25
Marin Transit**
$2.00
$1.00
Napa County VINE
$1.60
Youth: $1.10
Senior: $0.80
Petaluma Transit
$1.50
Youth: $1.00
​Senior: $0.75
Rio Vista Delta Breeze
$2.00
Within Isleton only: $1.00
$0.75
Santa Rosa CityBus
​$1.50
Youth: $1.25
​Senior: $0.75
Soltrans
$1.75
Youth: $1.50
Senior: $0.85
PCA*: $0.25
Sonoma County Transit
$1.50
Youth: $1.25
​Senior: $0.75
Vacaville City Coach
$1.50
Youth: $1.25
​Senior: $0.75

function setupElement427774057495819454() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3},{“rows_index”:4},{“rows_index”:5},{“rows_index”:6},{“rows_index”:7},{“rows_index”:8},{“rows_index”:9},{“rows_index”:10}],”columns”:3,”rows”:11,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:”default”});
_Element.prototype.settings.page_element_id = “427774057495819454”;
_Element.prototype.element_id = “6ddd4a82-6b13-43c8-879e-09097825e9b5”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-6ddd4a82-6b13-43c8-879e-09097825e9b5’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement427774057495819454();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement427774057495819454, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement427774057495819454();
}
});
}

Regional fares are as follows:
Routes operated as Solano Express

Solano Express is differentiated from the local services operating within Solano County by its use of buses with its dedicated livery. All of them have high-back seats with recliners, overhead luggage racks and reading lights, and bike racks (front on the Gillig Phantom, undercarriage on the MCI D4500 coach). On select buses owned by Fairfield and Suisun Transit (FAST), overhead televisions and audio jacks are also offered on board the MCI commuter coaches, as well as footrests on its Gillig Phantom buses.

Fairfield and Suisun Transit operates four routes branded as Solano Express, with two of them having “short” trip fares while all have “full” trip fares (although the other two have full trip fares collected only). The differences between Short and Full trip fares are as follows:

  • FAST 20: full trip only between Fairfield and Vacaville.
    • For local service between Solano Mall and Fairfield Transportation Center, use FAST Route 3.
  • FAST 30:
    • Short trip fare applies on the following segments: Fairfield-Vacaville, Fairfield-Dixon, Vacaville-Dixon, Vacaville-UC Davis, Dixon-UC Davis, Dixon-Sacramento, UC Davis-Sacramento
    • Full trip fare applies on the following segments: Fairfield-UC Davis, Fairfield-Sacramento, Vacaville-Sacramento
  • FAST 40:
    • Short trip fare applies on the following segments: Vacaville-Fairfield, Vacaville-Benicia, Fairfield-Benicia, Benicia-Pleasant Hill BART or Walnut Creek BART
    • Full trip fare applies on the following segments: Vacaville-Pleasant Hill BART or Walnut Creek BART, Fairfield-Pleasant Hill BART or Walnut Creek BART
  • FAST 90: full trip only between Fairfield or Suisun City Amtrak and El Cerrito del Norte BART.
    • For local service between Fairfield Transportation Center and Suisun City Amtrak, use FAST Route 5.
    • After 7pm, use Route 90 to access Suisun City Amtrak from FTC and ask for local fare from driver.

On the other hand, Soltrans operates three routes under the name Solano Express, including:

  • Route 78 (Vallejo – Walnut Creek BART via Benicia, Pleasant Hill BART; select trips also serve Diablo Valley College)
  • Route 80 (Vallejo – El Cerrito del Norte BART)
  • Route 85 (Vallejo – Fairfield Transportation Center via Solano Community College, Six Flags Marine World)

#element-a5eb7226-ed6e-445a-89b1-24acd9e2f1a7 .simple-table-wrapper {
padding: 20px 0;
}
#element-a5eb7226-ed6e-445a-89b1-24acd9e2f1a7 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-a5eb7226-ed6e-445a-89b1-24acd9e2f1a7 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-a5eb7226-ed6e-445a-89b1-24acd9e2f1a7 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-a5eb7226-ed6e-445a-89b1-24acd9e2f1a7 .simple-table.style-top tr:first-child td,
#element-a5eb7226-ed6e-445a-89b1-24acd9e2f1a7 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-a5eb7226-ed6e-445a-89b1-24acd9e2f1a7 .simple-table.style-top tr:first-child td .paragraph,
#element-a5eb7226-ed6e-445a-89b1-24acd9e2f1a7 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-a5eb7226-ed6e-445a-89b1-24acd9e2f1a7 .simple-table tr:last-child td {
border-bottom: none;
}
#element-a5eb7226-ed6e-445a-89b1-24acd9e2f1a7 .simple-table td:last-of-type {
border-right: none;
}
#element-a5eb7226-ed6e-445a-89b1-24acd9e2f1a7 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Route and Service Type
Regular (Adult) Fare
Discount (Youth, Senior) Fare
FAST 20 Full
FAST 30 Short
FAST 40 Short
$2.75
Youth: $2.00
Senior: $1.35
FAST 30 Full
FAST 40 Full
​FAST 90 Full
$5.75
Youth: $4.75
​Senior: $2.85
Soltrans Routes 78, 80, 85
$5.00
Youth: $4.00
Senior: $2.50
PCA*: $0.50

function setupElement749673607355171562() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3}],”columns”:3,”rows”:4,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:”default”});
_Element.prototype.settings.page_element_id = “749673607355171562”;
_Element.prototype.element_id = “a5eb7226-ed6e-445a-89b1-24acd9e2f1a7”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-a5eb7226-ed6e-445a-89b1-24acd9e2f1a7’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement749673607355171562();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement749673607355171562, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement749673607355171562();
}
});
}

Golden Gate Transit

Note:

+ – Fare also applies for local travel within the East Bay (ask driver before boarding). 

#element-f12d194e-2d54-476a-a8b2-6f75fb6e9b27 .simple-table-wrapper {
padding: 20px 0;
}
#element-f12d194e-2d54-476a-a8b2-6f75fb6e9b27 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-f12d194e-2d54-476a-a8b2-6f75fb6e9b27 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 50%;
}
#element-f12d194e-2d54-476a-a8b2-6f75fb6e9b27 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-f12d194e-2d54-476a-a8b2-6f75fb6e9b27 .simple-table.style-top tr:first-child td,
#element-f12d194e-2d54-476a-a8b2-6f75fb6e9b27 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-f12d194e-2d54-476a-a8b2-6f75fb6e9b27 .simple-table.style-top tr:first-child td .paragraph,
#element-f12d194e-2d54-476a-a8b2-6f75fb6e9b27 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-f12d194e-2d54-476a-a8b2-6f75fb6e9b27 .simple-table tr:last-child td {
border-bottom: none;
}
#element-f12d194e-2d54-476a-a8b2-6f75fb6e9b27 .simple-table td:last-of-type {
border-right: none;
}
#element-f12d194e-2d54-476a-a8b2-6f75fb6e9b27 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Zone
Cities and Communities Covered
1
San Francisco
2
Sausalito, Marin City, Mill Valley, Tiburon, Belvedere, Strawberry, Stinson Beach, Bolinas
3
San Rafael, Santa Venetia, Lucas Valley, Marinwood, Larkspur, Corte Madera, Kentfield, Ross, San Anselmo, Greenbrae, Fairfax, Sleepy Hollow, Lagunitas, Point Reyes Station, Inverness
4
Novato, Ignacio, Hamilton, San Marin
5
Petaluma, Cotati, Rohnert Park
6
Santa Rosa
East Bay
Richmond, El Cerrito, Albany, Berkeley, Emeryville

function setupElement923781911410990566() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3},{“rows_index”:4},{“rows_index”:5},{“rows_index”:6},{“rows_index”:7}],”columns”:2,”rows”:8,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:[19,80]});
_Element.prototype.settings.page_element_id = “923781911410990566”;
_Element.prototype.element_id = “f12d194e-2d54-476a-a8b2-6f75fb6e9b27”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-f12d194e-2d54-476a-a8b2-6f75fb6e9b27’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement923781911410990566();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement923781911410990566, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement923781911410990566();
}
});
}

#element-fb4f84e3-5272-4eb7-82cd-fc65eeba8398 .simple-table-wrapper {
padding: 20px 0;
}
#element-fb4f84e3-5272-4eb7-82cd-fc65eeba8398 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-fb4f84e3-5272-4eb7-82cd-fc65eeba8398 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-fb4f84e3-5272-4eb7-82cd-fc65eeba8398 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-fb4f84e3-5272-4eb7-82cd-fc65eeba8398 .simple-table.style-top tr:first-child td,
#element-fb4f84e3-5272-4eb7-82cd-fc65eeba8398 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-fb4f84e3-5272-4eb7-82cd-fc65eeba8398 .simple-table.style-top tr:first-child td .paragraph,
#element-fb4f84e3-5272-4eb7-82cd-fc65eeba8398 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-fb4f84e3-5272-4eb7-82cd-fc65eeba8398 .simple-table tr:last-child td {
border-bottom: none;
}
#element-fb4f84e3-5272-4eb7-82cd-fc65eeba8398 .simple-table td:last-of-type {
border-right: none;
}
#element-fb4f84e3-5272-4eb7-82cd-fc65eeba8398 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Travel Area
Regular (Adult) Fare
Discount (Senior, Youth) Fare
Zone 1 – Zone 2
​Zone 4 – Zone 5
$5.25
$2.50
Zone 1 – Zone 3
Zone 3 – Zone 5
​Zone 4 – Zone 6
$6.50
$3.25
Zone 1 – Zone 4
Zone 2 – Zone 5
​Zone 3 – Zone 6
$7.75
$3.75
Zone 2 – Zone 6
$9.25
$4.50
Zone 1 – Zone 5
$11.25
$5.50
Zone 1 – Zone 6
$12.50
$6.25
East Bay-Marin County+
$5.25
$2.50
East Bay-Sonoma County or San Francisco
$9.75
$4.75

function setupElement723091922222935280() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3},{“rows_index”:4},{“rows_index”:5},{“rows_index”:6},{“rows_index”:7},{“rows_index”:8}],”columns”:3,”rows”:9,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:”default”});
_Element.prototype.settings.page_element_id = “723091922222935280”;
_Element.prototype.element_id = “fb4f84e3-5272-4eb7-82cd-fc65eeba8398”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-fb4f84e3-5272-4eb7-82cd-fc65eeba8398’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement723091922222935280();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement723091922222935280, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement723091922222935280();
}
});
}

Napa County VINE

Two routes operate with different fares than the local fares. Take note, however, that one other “regional” route, Route 25, operating between Napa and Sonoma Plaza, operates with local fares (see above).

#element-c5f450cf-5abc-4a7c-9c2d-8cbec67a13bb .simple-table-wrapper {
padding: 20px 0;
}
#element-c5f450cf-5abc-4a7c-9c2d-8cbec67a13bb .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-c5f450cf-5abc-4a7c-9c2d-8cbec67a13bb .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-c5f450cf-5abc-4a7c-9c2d-8cbec67a13bb .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-c5f450cf-5abc-4a7c-9c2d-8cbec67a13bb .simple-table.style-top tr:first-child td,
#element-c5f450cf-5abc-4a7c-9c2d-8cbec67a13bb .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-c5f450cf-5abc-4a7c-9c2d-8cbec67a13bb .simple-table.style-top tr:first-child td .paragraph,
#element-c5f450cf-5abc-4a7c-9c2d-8cbec67a13bb .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-c5f450cf-5abc-4a7c-9c2d-8cbec67a13bb .simple-table tr:last-child td {
border-bottom: none;
}
#element-c5f450cf-5abc-4a7c-9c2d-8cbec67a13bb .simple-table td:last-of-type {
border-right: none;
}
#element-c5f450cf-5abc-4a7c-9c2d-8cbec67a13bb .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Route
Regular Fare
Discount (Senior, Youth) Fare
21
$3
$3
29 to/from Vallejo Ferry
$3.25
$3.25
29 to/from Del Norte BART
$5.50
$5.50

function setupElement814503143832162125() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3}],”columns”:3,”rows”:4,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:”default”});
_Element.prototype.settings.page_element_id = “814503143832162125”;
_Element.prototype.element_id = “c5f450cf-5abc-4a7c-9c2d-8cbec67a13bb”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-c5f450cf-5abc-4a7c-9c2d-8cbec67a13bb’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement814503143832162125();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement814503143832162125, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement814503143832162125();
}
});
}

Rio Vista Delta Breeze

​Delta Breeze allows travelers to deviate from any route for a small fee. The regional fare is the same no matter the origin (away from Rio Vista and Isleton).

#element-0e11e94d-8725-4a11-96bb-da344b01eb27 .simple-table-wrapper {
padding: 20px 0;
}
#element-0e11e94d-8725-4a11-96bb-da344b01eb27 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-0e11e94d-8725-4a11-96bb-da344b01eb27 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-0e11e94d-8725-4a11-96bb-da344b01eb27 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-0e11e94d-8725-4a11-96bb-da344b01eb27 .simple-table.style-top tr:first-child td,
#element-0e11e94d-8725-4a11-96bb-da344b01eb27 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-0e11e94d-8725-4a11-96bb-da344b01eb27 .simple-table.style-top tr:first-child td .paragraph,
#element-0e11e94d-8725-4a11-96bb-da344b01eb27 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-0e11e94d-8725-4a11-96bb-da344b01eb27 .simple-table tr:last-child td {
border-bottom: none;
}
#element-0e11e94d-8725-4a11-96bb-da344b01eb27 .simple-table td:last-of-type {
border-right: none;
}
#element-0e11e94d-8725-4a11-96bb-da344b01eb27 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Fare Type
Regular (Adult) Fare
Discount (Senior, Youth) Fare
Regional (to/within Fairfield, Vacaville, Suisun City, Antioch, Lodi, and Pittsburg)
$6.00
$3.00
Deviations on Intercity Routes 50, 52, and 54
$1.00
$1.00
Deviations in Isleton
$3.00
$1.50

function setupElement907955329256042865() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3}],”columns”:3,”rows”:4,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:”default”});
_Element.prototype.settings.page_element_id = “907955329256042865”;
_Element.prototype.element_id = “0e11e94d-8725-4a11-96bb-da344b01eb27”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-0e11e94d-8725-4a11-96bb-da344b01eb27’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement907955329256042865();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement907955329256042865, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement907955329256042865();
}
});
}

Sonoma County Transit

Similar to Golden Gate Transit, Sonoma County Transit operates with zone fares wherein it is grandfathered from the former. Perhaps Sonoma is the only county in the San Francisco Bay Area where a common transit agency has a fare-by-zone scheme.

#element-b70bc53e-f2af-4acb-976f-37f75612c3c8 .simple-table-wrapper {
padding: 20px 0;
}
#element-b70bc53e-f2af-4acb-976f-37f75612c3c8 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-b70bc53e-f2af-4acb-976f-37f75612c3c8 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 50%;
}
#element-b70bc53e-f2af-4acb-976f-37f75612c3c8 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-b70bc53e-f2af-4acb-976f-37f75612c3c8 .simple-table.style-top tr:first-child td,
#element-b70bc53e-f2af-4acb-976f-37f75612c3c8 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-b70bc53e-f2af-4acb-976f-37f75612c3c8 .simple-table.style-top tr:first-child td .paragraph,
#element-b70bc53e-f2af-4acb-976f-37f75612c3c8 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-b70bc53e-f2af-4acb-976f-37f75612c3c8 .simple-table tr:last-child td {
border-bottom: none;
}
#element-b70bc53e-f2af-4acb-976f-37f75612c3c8 .simple-table td:last-of-type {
border-right: none;
}
#element-b70bc53e-f2af-4acb-976f-37f75612c3c8 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Zone
Cities and Communities Covered
1
Santa Rosa
2
Windsor, Healdsburg, Fulton, Sonoma County Airport
3
Sebastopol, Forestville, Graton
4
Rohnert Park, Cotati, Penngrove, Petaluma, San Rafael
5
Kenwood, Glen Ellen
6
Guerneville, Monte Rio, Occidental, Bodega Bay
7
Sonoma, Schellville, Boyes Hot Springs, Temelec, El Verano
8
Geyserville, Asti, Cloverdale

function setupElement130852167253592307() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3},{“rows_index”:4},{“rows_index”:5},{“rows_index”:6},{“rows_index”:7},{“rows_index”:8}],”columns”:2,”rows”:9,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:[16,83]});
_Element.prototype.settings.page_element_id = “130852167253592307”;
_Element.prototype.element_id = “b70bc53e-f2af-4acb-976f-37f75612c3c8”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-b70bc53e-f2af-4acb-976f-37f75612c3c8’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement130852167253592307();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement130852167253592307, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement130852167253592307();
}
});
}

#element-e5eafd39-e954-45e0-a5d5-1ee05e49bfb1 .simple-table-wrapper {
padding: 20px 0;
}
#element-e5eafd39-e954-45e0-a5d5-1ee05e49bfb1 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-e5eafd39-e954-45e0-a5d5-1ee05e49bfb1 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-e5eafd39-e954-45e0-a5d5-1ee05e49bfb1 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-e5eafd39-e954-45e0-a5d5-1ee05e49bfb1 .simple-table.style-top tr:first-child td,
#element-e5eafd39-e954-45e0-a5d5-1ee05e49bfb1 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-e5eafd39-e954-45e0-a5d5-1ee05e49bfb1 .simple-table.style-top tr:first-child td .paragraph,
#element-e5eafd39-e954-45e0-a5d5-1ee05e49bfb1 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-e5eafd39-e954-45e0-a5d5-1ee05e49bfb1 .simple-table tr:last-child td {
border-bottom: none;
}
#element-e5eafd39-e954-45e0-a5d5-1ee05e49bfb1 .simple-table td:last-of-type {
border-right: none;
}
#element-e5eafd39-e954-45e0-a5d5-1ee05e49bfb1 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Number of Zones Traveled
Regular (Adult) Fare
Discount Fare
(Youth, Senior)
Two
$2.10
Youth: $1.85
​Senior: $1.05
Three
​$3.00
Youth: $2.75
​Senior: $1.50
Four
$3.90
Youth: $3.65
​Senior: $1.95
Five
$4.80
Youth: $4.55
​Senior: $2.40

function setupElement381241414367920327() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3},{“rows_index”:4}],”columns”:3,”rows”:5,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:”default”});
_Element.prototype.settings.page_element_id = “381241414367920327”;
_Element.prototype.element_id = “e5eafd39-e954-45e0-a5d5-1ee05e49bfb1”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-e5eafd39-e954-45e0-a5d5-1ee05e49bfb1’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement381241414367920327();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement381241414367920327, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement381241414367920327();
}
});
}

Fares are based on how many zones you cross. Tell driver your destination and your age (or show valid ID) to determine your appropriate fare.
Bus companies that connect the San Francisco Bay Area with neighboring regions include:​

  • Lake Transit (to Clearlake, Middletown)
  • Mendocino Transit Authority (to Ukiah, Point Arena, and Fort Bragg)
  • Modesto Area Express (to Modesto)
  • Monterey-Salinas Transit (to Monterey, Salinas, and King City)
  • San Joaquin Regional Transit District (to Stockton, Tracy, and Lathrop)
  • Santa Cruz Metro (to Santa Cruz, Davenport, Capitola, and Watsonville)
  • Yolobus (local service between Vacaville and Davis, with additional service to Woodland, Winters, and Sacramento)
Sample fares include:

#element-24f17453-434b-435d-a46f-097646aa5844 .simple-table-wrapper {
padding: 20px 0;
}
#element-24f17453-434b-435d-a46f-097646aa5844 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-24f17453-434b-435d-a46f-097646aa5844 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-24f17453-434b-435d-a46f-097646aa5844 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-24f17453-434b-435d-a46f-097646aa5844 .simple-table.style-top tr:first-child td,
#element-24f17453-434b-435d-a46f-097646aa5844 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-24f17453-434b-435d-a46f-097646aa5844 .simple-table.style-top tr:first-child td .paragraph,
#element-24f17453-434b-435d-a46f-097646aa5844 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-24f17453-434b-435d-a46f-097646aa5844 .simple-table tr:last-child td {
border-bottom: none;
}
#element-24f17453-434b-435d-a46f-097646aa5844 .simple-table td:last-of-type {
border-right: none;
}
#element-24f17453-434b-435d-a46f-097646aa5844 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Agency and Route
Regular (Adult) Fare
Discount (Senior, Youth) Fare
Lake Transit Route 3:
Clearlake – Deer Park via Calistoga
$5.00
Same as Regular Fare
Lake Transit:
Within Lake County
Local: $1.25
​Regional: $2.25
​Flex Stop: add $5.00
Local: $0.75
Regional: $1.25
Flex Stop: add $0.75 (local) or $1.50 (regional)
Mendocino Route 65:
Santa Rosa – Ukiah
​Santa Rosa – Fort Bragg
Adult and Youth:
$18.00
​$23.00
Senior only:
$9.00
$11.50
Mendocino Route 95:
Santa Rosa – Bodega Bay
​Santa Rosa – Point Arena
Adult and Youth:
$3.75
$8.25
Senior only:
$1.75
​$4.00
Mendocino Transit:
Local Routes
$1.50-$6.00
$0.60-$3.25
Modesto Area Express:
Dublin BART – Modesto
One way: $14.00
Round trip: $16.00
Same as Regular Fare
Modesto Area Express:
Lathrop ACE – Modesto
$3.00
Same as Regular Fare
Modesto Area Express:
​Local Routes
$1.50
Students: $1.25
Senior: $0.75
Monterey-Salinas Transit:
San Jose – Salinas
​San Jose – Monterey
$12.00
$6.00
Monterey-Salinas Transit:
Watsonville – Salinas
Santa Cruz – Monterey
$3.50
$1.75
Monterey-Salinas Transit:
​Local Routes
Local: $1.50
Primary: $2.50
Local: $0.75
Primary: $1.25*
San Joaquin RTD:
Dublin BART – Stockton
Sunnyvale – Manteca
Sacramento – Stockton
$7.00
Same as Regular Fare
San Joaquin RTD:
Local Routes
Adult and Youth:
​$1.50
Senior only:
$0.75
Santa Cruz Metro:
Highway 17 Express
Adult and Youth:
$7.00
Senior only:
​$3.50
Santa Cruz Metro:
​Within Santa Cruz County
Adult and Youth:
​$2.00
Senior only:
​$1.00
Yolobus:
Vacaville – Davis via Winters
Routes 42A and 42B
Non-Express Routes
$2.00
$1.00^
Yolobus:
​Express Routes
$3.00
$1.50^

function setupElement901323834279706490() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3},{“rows_index”:4},{“rows_index”:5},{“rows_index”:6},{“rows_index”:7},{“rows_index”:8},{“rows_index”:9},{“rows_index”:10},{“rows_index”:11},{“rows_index”:12},{“rows_index”:13},{“rows_index”:14},{“rows_index”:15},{“rows_index”:16},{“rows_index”:17}],”columns”:3,”rows”:18,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:[35,31,33]});
_Element.prototype.settings.page_element_id = “901323834279706490”;
_Element.prototype.element_id = “24f17453-434b-435d-a46f-097646aa5844”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-24f17453-434b-435d-a46f-097646aa5844’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement901323834279706490();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement901323834279706490, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement901323834279706490();
}
});
}

Notes:

  • Senior only fare also covers handicapped passengers and riders with valid ID card (e.g. Medicare, Veteran). Show operator valid proof of identification to receive discount fare.
  • * – The fare for select Senior line routes with Monterey-Salinas Transit is $0.75
  • ^ – Youth fare is $1.00 for non-express routes and $1.50 for express routes during the school year (September to May). Between June and August, the Youth fare is $0.35 per ride, regardless of service (no transfers issued).

function setupElement154346370867697249() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “135397292802228534-1.3.6”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var TabbedBox = PlatformElement.extend({
events: {
‘click .tabbed-box-tab’: ‘clickTab’,
// in case they type and that causes an overflow, we should determine scrollability here
‘keyup .tabbed-box-tab .paragraph’: ‘determineScrollability’,
‘mousedown .scrollArrow-left’: ‘scrollLeft’,
‘mousedown .scrollArrow-right’: ‘scrollRight’,
‘touchstart .scrollArrow-left’: ‘scrollLeft’,
‘touchstart .scrollArrow-right’: ‘scrollRight’
},
initialize: function() {
var view = this;
// optimization
this.scrollArrowLeft = this.$(‘> .tabbed-box > .tabbed-box-bar > .scrollArrow-left’);
this.scrollArrowRight = this.$(‘> .tabbed-box > .tabbed-box-bar > .scrollArrow-right’);
this.scrollTabsBar = this.$(‘> .tabbed-box > .tabbed-box-bar > .tabbed-box-tab-group’);
// resize handler and mouseup handler
// since we want to be able to handle mouseup wherever the user releases (not just over the element)
// we set it here as a property of the window.
$(window).resize(function() {
this.determineScrollability();
}.bind(this)).on(‘mouseup touchend’, function() {
this.stopScrolling();
}.bind(this));
// since scroll events don’t propagate up, we have to bind it here as opposed to in the events object
this.scrollTabsBar.scroll(function() {
this.determineHandlers();
}.bind(this));
// determine whether or not we should show the scroll handlers
this.determineScrollability();
// load the first tab.
$(document).ready(function() {
this.scrollTabsBar.children().first().click();
}.bind(this));
},
/*
Handle click event on a tab.
Uses ‘rel’ attribute of each tab as an index to access
the class of the corresponding content area.
*/
clickTab: function(e) {
var active = $(e.currentTarget); // Clicked tab
var content_wrapper = this.$(‘> .tabbed-box > .tabbed-box-content-group’); // wrapper for all content divs
this.stopScrolling();
this.determineClickScroll(active);
// Set new active tab
active.siblings().removeClass(‘active’);
active.addClass(‘active’);
// mark the new active tab
this.settings.set(‘activeTabIndexInternal’, this.scrollTabsBar.children().index(active));
this.settings.save();
// trigger children first
content_wrapper.find(‘.tabbed-box-tab.active’).click();
// Set new active content
content_wrapper.children().hide();
content_wrapper.find(‘> .’ + active.attr(‘rel’)).fadeIn();
this.determineHandlers();
// fire resize event to handle any deterministic elements now appearing
$(window).resize();
// Stop propagation in case this is a nested tab app
e.stopPropagation();
},
// determines whether or not the two arrows (left and right scroll handlers) should be visible or not.
determineScrollability: function() {
var group = this.scrollTabsBar[0];
if (group.scrollWidth > group.clientWidth) {
this.$el.children().addClass(‘scrollable’);
this.determineHandlers();
} else {
this.$el.children().removeClass(‘scrollable’);
}
},
// determines whether or not the two arrows (left and right scroll handlers) should be active or not.
determineHandlers: function() {
var target = this.scrollTabsBar[0];
// left handler
if (target.scrollLeft !== 0) {
this.scrollArrowLeft.addClass(‘active’);
} else {
this.scrollArrowLeft.removeClass(‘active’);
}
// right handler
if (target.scrollLeft + target.clientWidth < target.scrollWidth – 1) {
this.scrollArrowRight.addClass('active');
} else {
this.scrollArrowRight.removeClass('active');
}
},
// scrolls the tabs bar to the left.
scrollLeft: function(e) {
e.stopPropagation();
this.stopScrolling();
var scrollEl = this.scrollTabsBar[0];
var view = this;
var factor = 2;
this.scrollArrowRight.addClass('active');
this.scrollInterval = setInterval(function() {
scrollEl.scrollLeft -= Math.floor(factor);
factor *= 1.05;
if (scrollEl.scrollLeft === 0) {
view.stopScrolling();
}
}, 10);
},
// scrolls the tabs bar to the right.
scrollRight: function(e) {
e.stopPropagation();
this.stopScrolling();
var scrollEl = this.scrollTabsBar[0];
var view = this;
var factor = 2;
this.scrollArrowLeft.addClass('active');
this.scrollInterval = setInterval(function() {
scrollEl.scrollLeft += Math.floor(factor);
factor *= 1.05;
// forcefully stop the interval if it's not doing anything anymore
if (scrollEl.scrollLeft + scrollEl.clientWidth == scrollEl.scrollWidth) {
view.stopScrolling();
}
}, 10);
},
stopScrolling: function() {
clearInterval(this.scrollInterval);
this.determineHandlers();
},
determineClickScroll: function(active) {
// figure out where the element is, and if we need to change our view to show it
var scroll;
// determine where the element we're going to is in respect to the tabs bar
// 25px is the size of the scroll arrows
var leftSidePosition = active.position().left – 50;
var rightSidePosition = active.position().left + active.width() + 50;
// the gap is how much space we want there to be between the selected element
// when it's out of view, and we go to it.
var gap = 25;
if (this.scrollTabsBar.children().index(active) === 0) {
// this the first element, so define the scroll to be 0.
scroll = 0;
} else if (this.scrollTabsBar.children().index(active) == this.scrollTabsBar.children().length – 1) {
// this the last element, so define the scroll to be all the way to the right.
scroll = this.scrollTabsBar[0].scrollWidth – this.scrollTabsBar[0].clientWidth;
} else if (leftSidePosition this.scrollTabsBar.width()) {
// the right corner is out of view.
scroll = this.scrollTabsBar[0].scrollLeft + (rightSidePosition – this.scrollTabsBar.width()) + gap;
} else {
scroll = this.scrollTabsBar[0].scrollLeft;
}
// start scrolling
scroll = Math.floor(scroll);
var delta = scroll – this.scrollTabsBar[0].scrollLeft;
var startedDown = false;
if (delta !== 0) {
clearInterval(this.scrollInterval);
var distance = 0;
var direction = (delta > 0 ? 1 : -1);
var speed = 1;
var factor = 1.25; // for parabolic acceleration
this.scrollInterval = setInterval(function() {
if (distance >= Math.abs(delta)) {
this.stopScrolling();
}
this.scrollTabsBar[0].scrollLeft += (Math.max(1, Math.floor(speed)) * direction);
distance += Math.max(1, Math.floor(speed));
if (distance * 2 >= Math.abs(delta)) { // if we’ve traversed more than half
if (factor == 1.25) { // 5/4
factor = 1; // 4/4
} else {
factor = 0.8; // 4/5
}
}
speed *= factor;
}.bind(this), 20);
}
}
});
return TabbedBox;
})();
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“tabs_each”:[{“tabs_index”:0},{“tabs_index”:1},{“tabs_index”:2},{“tabs_index”:3},{“tabs_index”:4}],”activeTabIndexInternal_each”:[{“activeTabIndexInternal_index”:0},{“activeTabIndexInternal_index”:1},{“activeTabIndexInternal_index”:2}],”theme”:”standard”,”tabs”:5,”active_tab”:”white”,”inactive_tab”:”#F7F7F7″,”border_color”:”#CCCCCC”,”activeTabIndexInternal”:3});
_Element.prototype.settings.page_element_id = “154346370867697249”;
_Element.prototype.element_id = “2246eea0-6430-413c-9649-5e32bc4837a4”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/135397292802228534-1.3.6/assets/”;
new _Element({
el: ‘#element-2246eea0-6430-413c-9649-5e32bc4837a4’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement154346370867697249();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement154346370867697249, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement154346370867697249();
}
});
}


Trains and Light Rail

Also includes cable car fares operated by San Francisco Muni. And coming soon,  fares for Sonoma-Marin Area Rail Transit will be included to this list.

#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .border-box {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .tabbed-box {
position: relative;
margin: 20px 0;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .tabbed-box-tab-group {
font-size: 0;
margin: 0;
padding: 0;
float: left;
list-style: none;
height: 60px;
width: 100%;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
white-space: nowrap;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .tabbed-box-tab {
margin: 0;
cursor: pointer;
height: 60px;
display: inline-block;
min-width: 19%;
position: relative;
background-color: #F7F7F7;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .tabbed-box-content-group {
clear: both;
float: left;
width: 100%;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .tabbed-box-content {
padding: 40px 20px 40px 20px;
display: none;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .scrollArrow {
width: 25px;
background-color: white;
text-align: center;
position: absolute;
z-index: 3;
top: 0;
display: none;
cursor: pointer;
height: 60px;
line-height: 60px;
font-weight: bold;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .scrollArrow.scrollArrow-left {
left: 0;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .scrollArrow.scrollArrow-right {
right: 0;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .tabbed-box.scrollable .tabbed-box-tab-group {
border-bottom: none;
overflow-x: hidden;
overflow-y: hidden;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .tabbed-box.scrollable .tabbed-box-bar:hover .scrollArrow.active {
display: block;
}
@media only screen and (min-device-width: 414px) and (max-device-width: 736px) and (-webkit-min-device-pixel-ratio: 3),only screen and (min-device-width: 375px) and (max-device-width: 667px) and (-webkit-min-device-pixel-ratio: 2),only screen and (min-device-width: 320px) and (max-device-width: 568px) and (-webkit-min-device-pixel-ratio: 2),only screen and (min-device-width: 320px) and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2),only screen and (max-width: 499px) {
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .tabbed-box-tab-group {
overflow-x: scroll !important;
}
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .standard .tabbed-box-tab-group {
border-left: 1px solid #CCCCCC;
border-bottom: 1px solid #CCCCCC;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .standard .tabbed-box-tab {
border: 1px solid #CCCCCC;
border-left: none;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .standard .tabbed-box-tab .paragraph {
color: #A8ABAC;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .standard .tabbed-box-tab.active {
border-bottom: 1px solid white;
background-color: white;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .standard .tabbed-box-content-group {
border: 1px solid #CCCCCC;
border-top: none;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .standard.scrollable .tabbed-box-tab-group {
border-right: 1px solid #CCCCCC;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .standard.scrollable .tabbed-box-tab-group .tabbed-box-tab:last-child {
border-right: none;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .standard.scrollable .scrollArrow-left {
border: 1px solid #CCCCCC;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .standard.scrollable .scrollArrow-right {
border: 1px solid #CCCCCC;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .line .tabbed-box-tab-group {
border: 1px solid #CCCCCC;
border-bottom: none;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .line .tabbed-box-tab {
border-bottom: 1px solid #CCCCCC;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .line .tabbed-box-tab .paragraph {
color: #BDC2C2;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .line .tabbed-box-tab.active {
border-bottom: 1px solid black;
background-color: white;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .line .tabbed-box-content-group {
border: 1px solid #CCCCCC;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .line.scrollable .tabbed-box-tab-group {
height: 61px;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .line.scrollable .tabbed-box-content-group {
border-top: none;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .line.scrollable .scrollArrow-left,
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .line.scrollable .scrollArrow-right {
border: 1px solid #CCCCCC;
border-bottom: none;
border-top: none;
height: 61px;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .simple .tabbed-box-tab {
border-bottom: 1px solid #CCCCCC;
height: 61px;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .simple .tabbed-box-tab .paragraph {
color: #BDC2C2;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .simple .tabbed-box-tab.active {
border-bottom: 1px solid black;
background-color: white;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .simple .tabbed-box-content-group {
border-top: 1px solid #CCCCCC;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .simple .tabbed-box-content {
padding: 20px 0px 20px 0px;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .simple .scrollArrow-left {
border-right: 1px solid #CCCCCC;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .simple .scrollArrow-right {
border-left: 1px solid #CCCCCC;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .s3d-shadow {
-webkit-box-shadow: #f5f5f5;
-moz-box-shadow: #f5f5f5;
box-shadow: #f5f5f5;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .s3d-content-shadow {
-webkit-box-shadow: 0px 0px 30px 4px #f5f5f5;
-moz-box-shadow: 0px 0px 30px 4px #f5f5f5;
box-shadow: 0px 0px 30px 4px #f5f5f5;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .s3d .tabbed-box-tab .paragraph {
color: #A8ABAC;
background-color: #F7F7F7;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .s3d .tabbed-box-tab.active {
border-bottom: 1px solid white;
background-color: white;
-webkit-box-shadow: 0px -10px 31px -4px #f5f5f5, -12px -4px 40px -16px #f5f5f5, 12px -4px 40px -16px #f5f5f5;
-moz-box-shadow: 0px -10px 31px -4px #f5f5f5, -12px -4px 40px -16px #f5f5f5, 12px -4px 40px -16px #f5f5f5;
box-shadow: 0px -10px 31px -4px #f5f5f5, -12px -4px 40px -16px #f5f5f5, 12px -4px 40px -16px #f5f5f5;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .s3d .tabbed-box-tab.active .paragraph {
background-color: white;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .s3d .tabbed-box-content-group {
-webkit-box-shadow: 0px 0px 30px 4px #f5f5f5;
-moz-box-shadow: 0px 0px 30px 4px #f5f5f5;
box-shadow: 0px 0px 30px 4px #f5f5f5;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .tabbed-box-tab .paragraph {
padding: 0px;
line-height: 60px !important;
text-align: center !important;
font-weight: bold;
font-size: 16px !important;
margin: 0 20px;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .tabbed-box-content .paragraph {
padding: 0;
line-height: 30px;
}
#element-2218e160-d234-4a7d-a693-994e5f58a6f2 .tabbed-box-tab:last-child .w-delete-outer {
display: none;
position: relative;
float: right;
}

  • BART
  • ACE (Stockton)
  • Amtrak
  • Caltrain
  • San Francisco Muni
  • Santa Clara VTA
<
>

Due to the complex fare structure by BART, which is distance-based, I will list down the basic fare table first, then I will describe the most popular segments and their fares.

​Note:
* – For service between Coliseum and OAK Airport only, the fare is $6.00. Oakland Airport access fare is collected once at the Coliseum end of the AirTrain line and will be added to your total fare once you exit the system.

For more fares, use this fare calculator by BART.

#element-56b01fd9-09f1-41d1-be33-85a6aef3586a .simple-table-wrapper {
padding: 20px 0;
}
#element-56b01fd9-09f1-41d1-be33-85a6aef3586a .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-56b01fd9-09f1-41d1-be33-85a6aef3586a .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 50%;
}
#element-56b01fd9-09f1-41d1-be33-85a6aef3586a .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-56b01fd9-09f1-41d1-be33-85a6aef3586a .simple-table.style-top tr:first-child td,
#element-56b01fd9-09f1-41d1-be33-85a6aef3586a .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-56b01fd9-09f1-41d1-be33-85a6aef3586a .simple-table.style-top tr:first-child td .paragraph,
#element-56b01fd9-09f1-41d1-be33-85a6aef3586a .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-56b01fd9-09f1-41d1-be33-85a6aef3586a .simple-table tr:last-child td {
border-bottom: none;
}
#element-56b01fd9-09f1-41d1-be33-85a6aef3586a .simple-table td:last-of-type {
border-right: none;
}
#element-56b01fd9-09f1-41d1-be33-85a6aef3586a .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Fare Type
Regular Fare
​Local:

  • San Francisco (all stations between Balboa Park and Embarcadero)
  • Oakland:
    • All stations between Rockridge and West Oakland
    • Most stations between MacArthur and Coliseum
  • Richmond Line (all stations between Richmond and Ashby)
  • Fremont Line (all stations between Hayward and Fremont)
  • Dublin Line (all stations between Dublin/Pleasanton and Castro Valley)
  • Pittsburg Line (all stations between Walnut Creek and Pittsburg/Bay Point)
  • All other local services (up to four stations)
$1.95
San Mateo Local (up to three stops)
$3.20
Transbay Tube (step-up fee)
$1.25
San Francisco International Airport (step-up access fee)
$4.00
Oakland International Airport (step-up access fee)
$6.00*

function setupElement911611924628776772() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3},{“rows_index”:4},{“rows_index”:5}],”columns”:2,”rows”:6,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:[73,26]});
_Element.prototype.settings.page_element_id = “911611924628776772”;
_Element.prototype.element_id = “56b01fd9-09f1-41d1-be33-85a6aef3586a”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-56b01fd9-09f1-41d1-be33-85a6aef3586a’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement911611924628776772();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement911611924628776772, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement911611924628776772();
}
});
}

Special fare tickets can be purchased by mail (download and complete order form here), My Transit Plus locations throughout the region, senior centers, schools, and at the BART Customer Service Center at Lake Merritt Station. Valid ID is required to purchase the Green and Red Tickets, and Orange Tickets are available only at participating schools.

Consider obtaining a Clipper Card to avail of the same discounts listed below automatically.

#element-3ba4fbd2-c256-427f-9714-3e0d880ba507 .simple-table-wrapper {
padding: 20px 0;
}
#element-3ba4fbd2-c256-427f-9714-3e0d880ba507 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-3ba4fbd2-c256-427f-9714-3e0d880ba507 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-3ba4fbd2-c256-427f-9714-3e0d880ba507 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-3ba4fbd2-c256-427f-9714-3e0d880ba507 .simple-table.style-top tr:first-child td,
#element-3ba4fbd2-c256-427f-9714-3e0d880ba507 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-3ba4fbd2-c256-427f-9714-3e0d880ba507 .simple-table.style-top tr:first-child td .paragraph,
#element-3ba4fbd2-c256-427f-9714-3e0d880ba507 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-3ba4fbd2-c256-427f-9714-3e0d880ba507 .simple-table tr:last-child td {
border-bottom: none;
}
#element-3ba4fbd2-c256-427f-9714-3e0d880ba507 .simple-table td:last-of-type {
border-right: none;
}
#element-3ba4fbd2-c256-427f-9714-3e0d880ba507 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Ticket Type
Who Can Use It?
Discount Value
​(Price)
Blue High Value
Anyone
6.25%
($45 or $60)
Green Ticket
Seniors (age 65+)
62.5%
​($9)
Red Ticket
– Youths (age 5-12)
– Handicapped
– Medicare cardholders
​- Students on a chaperoned field trip*
62.5%
​($9)
Orange Ticket
Middle and secondary school students (age 13 to 18)
50%

function setupElement815154445784243444() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3},{“rows_index”:4}],”columns”:3,”rows”:5,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:[27,45,27]});
_Element.prototype.settings.page_element_id = “815154445784243444”;
_Element.prototype.element_id = “3ba4fbd2-c256-427f-9714-3e0d880ba507”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-3ba4fbd2-c256-427f-9714-3e0d880ba507’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement815154445784243444();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement815154445784243444, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement815154445784243444();
}
});
}

And here are some of the most popular stations from Market Street stations (Embarcadero, Montgomery, Powell, and Civic Center) in San Francisco on the BART network, in which I list down the fare and the travel length (in minutes):

#element-789a0f98-ba59-46f6-92aa-ef062ffa1507 .simple-table-wrapper {
padding: 20px 0;
}
#element-789a0f98-ba59-46f6-92aa-ef062ffa1507 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-789a0f98-ba59-46f6-92aa-ef062ffa1507 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-789a0f98-ba59-46f6-92aa-ef062ffa1507 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-789a0f98-ba59-46f6-92aa-ef062ffa1507 .simple-table.style-top tr:first-child td,
#element-789a0f98-ba59-46f6-92aa-ef062ffa1507 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-789a0f98-ba59-46f6-92aa-ef062ffa1507 .simple-table.style-top tr:first-child td .paragraph,
#element-789a0f98-ba59-46f6-92aa-ef062ffa1507 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-789a0f98-ba59-46f6-92aa-ef062ffa1507 .simple-table tr:last-child td {
border-bottom: none;
}
#element-789a0f98-ba59-46f6-92aa-ef062ffa1507 .simple-table td:last-of-type {
border-right: none;
}
#element-789a0f98-ba59-46f6-92aa-ef062ffa1507 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Station or Area Name
Fare
Travel Length (minutes)
SFO Airport
$8.95
30
OAK Airport (transfer at Coliseum)
$10.20
40
Downtown Oakland

– Oakland City Hall (12th Street)
– Broadway (12th or 19th Street)
– Jack London Square* (12th Street)
– Koreatown* (19th Street)
– Lake Merritt

$3.45
15
Downtown Berkeley

– UC Berkeley
– Pacific Art Museum
– Pacific Film Archive
– Berkeley Repertory

$4.00
25**
Walnut Creek

– Downtown*
​- Broadway Plaza*

$5.25
35

function setupElement913707251700741933() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3},{“rows_index”:4},{“rows_index”:5}],”columns”:3,”rows”:6,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:[42,28,29]});
_Element.prototype.settings.page_element_id = “913707251700741933”;
_Element.prototype.element_id = “789a0f98-ba59-46f6-92aa-ef062ffa1507”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-789a0f98-ba59-46f6-92aa-ef062ffa1507’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement913707251700741933();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement913707251700741933, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement913707251700741933();
}
});
}

Notes:

* – Nearby attraction served by a free bus service

  • For Jack London Square and Koreatown, ride the Broadway B Shuttle, running Mondays to Thursdays from 7am to 10pm, Fridays from 7am to 1am, and Saturdays from 6pm to 1am. To access the B from 12th Street BART, board bus at Broadway & 11th or 14th. For 19th Street BART, board bus at Broadway & 20th (Thomas L. Berkley Way).
  • For Downtown Walnut Creek, ride County Connection Route 4, operating weekdays 7am to 9:45pm, weekends and holidays from 9:20am to 6:50pm. The trip time between BART and Broadway Plaza is around 15 minutes.

** – Direct service on the Richmond-Millbrae Line. For service between Downtown Berkeley and San Francisco after 9pm weekdays, before 10am and after 7pm Saturdays, and all day Sundays and holidays:

  • To Berkeley: board a Pittsburg/Bay Point train to 19th Street/Oakland, then transfer to the Richmond train on the opposite platform
  • To San Francisco: board a Fremont train to MacArthur, then transfer to the SFO Airport train on the opposite platform
For Airport-to-Airport service, it costs $15.40 and will take you around 75 to 90 minutes (depending on the transfer length made at either 12th Street/Oakland or Balboa Park Station). Step-by-step instructions on how to travel between SFO and OAK Airports by BART can be found here.
Altamont Commuter Express operates between Stockton and San Jose via Tracy, Livermore, Fremont, and Santa Clara. It runs four trips each way during the morning (from Stockton) and afternoon (from San Jose) peaks.

Notes:

  • Tri-Valley stations include:
    • Vasco (connects to Lawrence Livermore National Laboratory)
    • Livermore
    • Pleasanton (connects to Dublin/Pleasanton BART via Wheels Routes 10 and 54)
  • Santa Clara stations include:
    • Great America (connects to Levis Stadium)
    • Santa Clara (connects to San Jose International Airport and Avaya Stadium)
    • San Jose (connects to Caltrain and Amtrak)

One-way ticket fares are as follows:

#element-6e938bec-cd8a-4ccd-86bd-e7bfe46ac36d .simple-table-wrapper {
padding: 20px 0;
}
#element-6e938bec-cd8a-4ccd-86bd-e7bfe46ac36d .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-6e938bec-cd8a-4ccd-86bd-e7bfe46ac36d .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 25%;
}
#element-6e938bec-cd8a-4ccd-86bd-e7bfe46ac36d .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-6e938bec-cd8a-4ccd-86bd-e7bfe46ac36d .simple-table.style-top tr:first-child td,
#element-6e938bec-cd8a-4ccd-86bd-e7bfe46ac36d .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-6e938bec-cd8a-4ccd-86bd-e7bfe46ac36d .simple-table.style-top tr:first-child td .paragraph,
#element-6e938bec-cd8a-4ccd-86bd-e7bfe46ac36d .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-6e938bec-cd8a-4ccd-86bd-e7bfe46ac36d .simple-table tr:last-child td {
border-bottom: none;
}
#element-6e938bec-cd8a-4ccd-86bd-e7bfe46ac36d .simple-table td:last-of-type {
border-right: none;
}
#element-6e938bec-cd8a-4ccd-86bd-e7bfe46ac36d .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Start or End Area
Tri-Valley
Fremont
Santa Clara
Stockton
$9.50
$10.75
$13.75
Lathrop/Manteca
$9.00
$10.25
$12.75
Tracy
$5.25
$9.00
$10.25
Tri-Valley
$4.00
$5.25
$9.00
Fremont
$5.25
$5.25
Santa Clara
$9.00
$5.25
$4.00

function setupElement315919640750846054() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2},{“columns_index”:3}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3},{“rows_index”:4},{“rows_index”:5},{“rows_index”:6}],”columns”:4,”rows”:7,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:[27,23,28,20]});
_Element.prototype.settings.page_element_id = “315919640750846054”;
_Element.prototype.element_id = “6e938bec-cd8a-4ccd-86bd-e7bfe46ac36d”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-6e938bec-cd8a-4ccd-86bd-e7bfe46ac36d’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement315919640750846054();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement315919640750846054, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement315919640750846054();
}
});
}

For travel within San Joaquin County:

#element-0939731a-c44a-43cd-9e91-6d9d40ef9cc7 .simple-table-wrapper {
padding: 20px 0;
}
#element-0939731a-c44a-43cd-9e91-6d9d40ef9cc7 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-0939731a-c44a-43cd-9e91-6d9d40ef9cc7 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 25%;
}
#element-0939731a-c44a-43cd-9e91-6d9d40ef9cc7 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-0939731a-c44a-43cd-9e91-6d9d40ef9cc7 .simple-table.style-top tr:first-child td,
#element-0939731a-c44a-43cd-9e91-6d9d40ef9cc7 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-0939731a-c44a-43cd-9e91-6d9d40ef9cc7 .simple-table.style-top tr:first-child td .paragraph,
#element-0939731a-c44a-43cd-9e91-6d9d40ef9cc7 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-0939731a-c44a-43cd-9e91-6d9d40ef9cc7 .simple-table tr:last-child td {
border-bottom: none;
}
#element-0939731a-c44a-43cd-9e91-6d9d40ef9cc7 .simple-table td:last-of-type {
border-right: none;
}
#element-0939731a-c44a-43cd-9e91-6d9d40ef9cc7 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Start or End Station
Stockton
Lathrop/Manteca
Tracy
Stockton
$4.50
$5.50
Lathrop/Manteca
$4.50
$5.25
Tracy
$5.50
$5.25

function setupElement576749535676107858() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2},{“columns_index”:3}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3}],”columns”:4,”rows”:4,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:[26,27,27,17]});
_Element.prototype.settings.page_element_id = “576749535676107858”;
_Element.prototype.element_id = “0939731a-c44a-43cd-9e91-6d9d40ef9cc7”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-0939731a-c44a-43cd-9e91-6d9d40ef9cc7’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement576749535676107858();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement576749535676107858, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement576749535676107858();
}
});
}

Amtrak operates multiple rail services through the San Francisco Bay Area, all of them requiring online booking before boarding. Here’s a breakdown of the services available:

Note: for amenities on these services, click here.

  • California Zephyr (CZ)
  • Capitol Corridor (CC)
  • Coast Starlight (CS)
  • San Joaquin (SJ)
Pacific Surfliner (PS)

While this operates mainly in Southern California between San Luis Obispo and San Diego, the Pacific Surfliner provides complementary rail service to these trains:

  • Coast Starlight between Central California and Los Angeles 
  • Metrolink between Ventura and Oceanside
  • COASTER between Oceanside and San Diego

With multiple round trips focused between Los Angeles and San Diego (with several services operating also to Santa Barbara, Grover Beach, and San Luis Obispo), this train service gives travelers unprecedented views of California’s majestic coastline. Bus service between the San Francisco Bay Area and San Luis Obispo or Santa Barbara on Pacific Surfliner is also provided.

  • Current schedule (also includes connecting bus services from Los Angeles, Santa Barbara, and San Luis Obispo)

Features include:

  • Overhead luggage racks
  • Business Class Service

    • Enhanced legroom
    • Complementary beverage
    • Light snacks and newspapers
    • Lounge access
  • Luxury and social seating areas
  • Cafe Car
  • WiFi on board
  • Bike and surfboard racks (reservations required)
Sample fares are as follows:

#element-7f0f20bf-3f33-4678-a0fd-b6decac3c254 .simple-table-wrapper {
padding: 20px 0;
}
#element-7f0f20bf-3f33-4678-a0fd-b6decac3c254 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-7f0f20bf-3f33-4678-a0fd-b6decac3c254 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-7f0f20bf-3f33-4678-a0fd-b6decac3c254 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-7f0f20bf-3f33-4678-a0fd-b6decac3c254 .simple-table.style-top tr:first-child td,
#element-7f0f20bf-3f33-4678-a0fd-b6decac3c254 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-7f0f20bf-3f33-4678-a0fd-b6decac3c254 .simple-table.style-top tr:first-child td .paragraph,
#element-7f0f20bf-3f33-4678-a0fd-b6decac3c254 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-7f0f20bf-3f33-4678-a0fd-b6decac3c254 .simple-table tr:last-child td {
border-bottom: none;
}
#element-7f0f20bf-3f33-4678-a0fd-b6decac3c254 .simple-table td:last-of-type {
border-right: none;
}
#element-7f0f20bf-3f33-4678-a0fd-b6decac3c254 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Origin or Destination
San Jose
San Francisco*
San Jose
Use Caltrain
Oakland-Coliseum
$16 (CC)
Use BART
Martinez
​$27 (CC)
$16 (CC)
Davis
$35 (CC)
$25 (CS)
Sacramento
$40 (CC)
$29 (CS)
Reno, NV
$73 (CC+Bus)
$53 (CZ)
Los Angeles
$55 (Bus+PS)
$59 (SJ+Bus)
San Diego
$68 (Bus+PS)
$71 (Bus+PS)
Las Vegas, NV+
$90 (Bus+SJ+Bus)
$91 (SJ+Bus)
Portland, OR
$92 (CS)
$87 (CS)
Seattle, WA
$102 (CS)
​$106 (CS)
Salt Lake City, UT
$118 (Bus+CZ)
$100 (Bus+CZ)
Denver, CO
$158 (Bus+CZ)
$140 (Bus+CZ)
Chicago, IL
$185 (CC+CZ)
$167 (Bus+CZ)

function setupElement887439721254488662() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3},{“rows_index”:4},{“rows_index”:5},{“rows_index”:6},{“rows_index”:7},{“rows_index”:8},{“rows_index”:9},{“rows_index”:10},{“rows_index”:11},{“rows_index”:12},{“rows_index”:13},{“rows_index”:14}],”columns”:3,”rows”:15,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:[40,27,32]});
_Element.prototype.settings.page_element_id = “887439721254488662”;
_Element.prototype.element_id = “7f0f20bf-3f33-4678-a0fd-b6decac3c254”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-7f0f20bf-3f33-4678-a0fd-b6decac3c254’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement887439721254488662();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement887439721254488662, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement887439721254488662();
}
});
}

Notes: 

  • Quoted prices are the cheapest fares under the “Value” section when you make your reservation on Amtrak’s website. These prices also include potential bus transfers en route (listed as “Bus” before or after a train name).
  • Check often as you might get to see a “Saver” price when you book ahead of time. Be aware, however, of the fare terms and conditions listed above each fare option before booking.
  • If you want direct (no transfers) train service, make sure that the “Direct First” option is checked and check the price and trip length before booking. This is especially true if you’re after longer trips.
  • Some fares (especially towards Southern California) have “Premium” fares cheaper than the “Flexible” fares. This is especially true if you’ll board the Pacific Surfliner in San Luis Obispo. Confirm the additional features you’ll get on the Premium fare and compare it to the Value or Saver fares before booking.
  • Amtrak Thruway Bus services are provided to cities that are further away from any Amtrak rail service. Keep your rail ticket to ride a Thruway Bus to your destination.
  • * – Fare includes Amtrak California Thruway Bus service between San Francisco and Emeryville. Board the bus at the following locations:
    • Temporary Transbay Terminal (Folsom & Beale Streets)
    • Financial District (Drumm & California Streets, Hyatt Regency)
    • Moscone Center (Howard & 4th Streets)
    • Caltrain (Townsend & 4th Streets)
    • Westfield San Francisco Centre (Market & Powell Streets, Powell BART)
    • Civic Center (Market Street between 7th and 8th Streets, Civic Center BART)
    • Fisherman’s Wharf (The Embarcadero & Beach Street)
  • + – Multiple terminals in Las Vegas, including:
    • Greyhound Station (200 N Main Street)
    • South Strip Transfer Terminal (for connections to RTC Southern Nevada Routes and Deuce)
    • McCarran International Airport
Caltrain operates as a Proof-of-Payment system wherein it is the passenger’s responsibility to possess a valid ticket, commuter pass, or Clipper card while on board a train. It operates with a zone system, similar to Golden Gate Transit, where fares are determined by how many zones a passenger travels through the system.

Take note, however, that trains do not stop at select stations everyday, which are noted below. Also noted are onward connections for select stations, including other rail lines and airports. Most importantly, no matter what service you ride (local, limited-stop, or Baby Rapid), the fares remain consistent.

#element-1404454e-8dcc-4f7a-aecc-2fd0d21a9a18 .simple-table-wrapper {
padding: 20px 0;
}
#element-1404454e-8dcc-4f7a-aecc-2fd0d21a9a18 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-1404454e-8dcc-4f7a-aecc-2fd0d21a9a18 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 50%;
}
#element-1404454e-8dcc-4f7a-aecc-2fd0d21a9a18 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-1404454e-8dcc-4f7a-aecc-2fd0d21a9a18 .simple-table.style-top tr:first-child td,
#element-1404454e-8dcc-4f7a-aecc-2fd0d21a9a18 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-1404454e-8dcc-4f7a-aecc-2fd0d21a9a18 .simple-table.style-top tr:first-child td .paragraph,
#element-1404454e-8dcc-4f7a-aecc-2fd0d21a9a18 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-1404454e-8dcc-4f7a-aecc-2fd0d21a9a18 .simple-table tr:last-child td {
border-bottom: none;
}
#element-1404454e-8dcc-4f7a-aecc-2fd0d21a9a18 .simple-table td:last-of-type {
border-right: none;
}
#element-1404454e-8dcc-4f7a-aecc-2fd0d21a9a18 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Zone 1
  • San Francisco (transfer to San Francisco Muni Metro)
  • 22nd Street
  • Bayshore
  • South San Francisco
  • San Bruno (transfer to SamTrans bus to SFO Airport)
Zone 2
  • Millbrae (transfer to BART, service to SFO Airport)
  • Broadway (weekends and holidays only)
  • Burlingame
  • San Mateo
  • Hayward Park
  • Hillsdale
  • Belmont
  • San Carlos
  • Redwood City
Zone 3
  • Atherton (weekends and holidays only)
  • Menlo Park
  • Palo Alto
  • Stanford (football season only)
  • California Avenue
  • San Antonio
  • Mountain View (transfer to VTA Light Rail)
  • Sunnyvale
Zone 4
  • Lawrence
  • Santa Clara (transfer to Amtrak California and ACE trains, VTA bus to San Jose International Airport)
  • College Park (weekday school days only)
  • San Jose Diridon (transfer to VTA Light Rail)
  • Tamien (rail service weekdays, bus service weekends and holidays)
Zone 5
(Weekday Peaks only)
  • Capitol
  • Blossom Hill
Zone 6
​(Weekday Peaks only)
  • Morgan Hill
  • San Martin
  • Gilroy

function setupElement904847296918484079() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3},{“rows_index”:4},{“rows_index”:5}],”columns”:2,”rows”:6,”style”:”side”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:[31,68]});
_Element.prototype.settings.page_element_id = “904847296918484079”;
_Element.prototype.element_id = “1404454e-8dcc-4f7a-aecc-2fd0d21a9a18”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-1404454e-8dcc-4f7a-aecc-2fd0d21a9a18’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement904847296918484079();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement904847296918484079, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement904847296918484079();
}
});
}

The following cash fares are as follows (buy tickets at a ticket vending machine):

Notes:

  • * – Discount Fare is available to seniors (age 65 and better), handicapped, youths (age 18 and younger), and Medicare cardholders.
  • One child under four years old can ride for free with one adult-paying rider. Additional children must have their own, separate Discounted fare ticket.
  • Hold on to your ticket during your journey as random fare inspections may take place at anytime.
  • Clipper fares are a bit different than the cash fares; see here for more information.

#element-cd0d4666-9e76-4438-b420-19769feb67a8 .simple-table-wrapper {
padding: 20px 0;
}
#element-cd0d4666-9e76-4438-b420-19769feb67a8 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-cd0d4666-9e76-4438-b420-19769feb67a8 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-cd0d4666-9e76-4438-b420-19769feb67a8 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-cd0d4666-9e76-4438-b420-19769feb67a8 .simple-table.style-top tr:first-child td,
#element-cd0d4666-9e76-4438-b420-19769feb67a8 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-cd0d4666-9e76-4438-b420-19769feb67a8 .simple-table.style-top tr:first-child td .paragraph,
#element-cd0d4666-9e76-4438-b420-19769feb67a8 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-cd0d4666-9e76-4438-b420-19769feb67a8 .simple-table tr:last-child td {
border-bottom: none;
}
#element-cd0d4666-9e76-4438-b420-19769feb67a8 .simple-table td:last-of-type {
border-right: none;
}
#element-cd0d4666-9e76-4438-b420-19769feb67a8 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Travel Within
Regular (Adult) Fare
Discount Fare*
One Zone
$3.75
​$1.75
Two Zones
$5.75
$2.75
Three Zones
$7.75
$3.75
Four Zones
$9.75
$4.75
Five Zones
$11.75
$5.75
Six Zones
$13.75
$6.75

function setupElement598294043950116245() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3},{“rows_index”:4},{“rows_index”:5},{“rows_index”:6}],”columns”:3,”rows”:7,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:”default”});
_Element.prototype.settings.page_element_id = “598294043950116245”;
_Element.prototype.element_id = “cd0d4666-9e76-4438-b420-19769feb67a8”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-cd0d4666-9e76-4438-b420-19769feb67a8’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement598294043950116245();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement598294043950116245, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement598294043950116245();
}
});
}

San Francisco Muni operates a diverse streetcar and light rail network, covering many parts of the city. Fares are as follows:

#element-0755cc57-45dd-4f38-96d2-33f0aae6c478 .simple-table-wrapper {
padding: 20px 0;
}
#element-0755cc57-45dd-4f38-96d2-33f0aae6c478 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-0755cc57-45dd-4f38-96d2-33f0aae6c478 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-0755cc57-45dd-4f38-96d2-33f0aae6c478 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-0755cc57-45dd-4f38-96d2-33f0aae6c478 .simple-table.style-top tr:first-child td,
#element-0755cc57-45dd-4f38-96d2-33f0aae6c478 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-0755cc57-45dd-4f38-96d2-33f0aae6c478 .simple-table.style-top tr:first-child td .paragraph,
#element-0755cc57-45dd-4f38-96d2-33f0aae6c478 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-0755cc57-45dd-4f38-96d2-33f0aae6c478 .simple-table tr:last-child td {
border-bottom: none;
}
#element-0755cc57-45dd-4f38-96d2-33f0aae6c478 .simple-table td:last-of-type {
border-right: none;
}
#element-0755cc57-45dd-4f38-96d2-33f0aae6c478 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Category
Muni Metro
F-Market Streetcar
Cable Car
Regular (Adult) Fare
$2.25
$7.00
Youth (age 5 to 17) Fare
$1.00
$7.00
Senior (age 65+) Fare
$1.00
7am to 9pm: $7.00
​9pm to 7am: $3.00
Children age 4 and younger
Free
Free

function setupElement324902166719602192() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3},{“rows_index”:4}],”columns”:3,”rows”:5,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:”default”});
_Element.prototype.settings.page_element_id = “324902166719602192”;
_Element.prototype.element_id = “0755cc57-45dd-4f38-96d2-33f0aae6c478”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-0755cc57-45dd-4f38-96d2-33f0aae6c478’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement324902166719602192();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement324902166719602192, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement324902166719602192();
}
});
}

Santa Clara Valley Transportation Authority operates three light rail lines, stretching from Mountain View to Los Gatos via Downtown San Jose.

Notes: 

  • Children under 5 years old ride for free with a fare-paying adult.
  • Light rail tickets can be bought at ticket vending machines at all stations. Keep your ticket for random fare inspections on board, and use it to transfer to another light rail service or to a bus.

#element-50f36fe5-4965-4bb7-aff2-705fd6c0f9de .simple-table-wrapper {
padding: 20px 0;
}
#element-50f36fe5-4965-4bb7-aff2-705fd6c0f9de .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-50f36fe5-4965-4bb7-aff2-705fd6c0f9de .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-50f36fe5-4965-4bb7-aff2-705fd6c0f9de .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-50f36fe5-4965-4bb7-aff2-705fd6c0f9de .simple-table.style-top tr:first-child td,
#element-50f36fe5-4965-4bb7-aff2-705fd6c0f9de .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-50f36fe5-4965-4bb7-aff2-705fd6c0f9de .simple-table.style-top tr:first-child td .paragraph,
#element-50f36fe5-4965-4bb7-aff2-705fd6c0f9de .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-50f36fe5-4965-4bb7-aff2-705fd6c0f9de .simple-table tr:last-child td {
border-bottom: none;
}
#element-50f36fe5-4965-4bb7-aff2-705fd6c0f9de .simple-table td:last-of-type {
border-right: none;
}
#element-50f36fe5-4965-4bb7-aff2-705fd6c0f9de .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Category
​Single-Ride
8-Hour Light Rail Pass
Adult (ages 19-64)
$2.00
$4.00
Senior (age 65+) and handicapped
$1.00
$2.00
Youth (ages 5-18)
$1.75
$3.50

function setupElement838601152675873911() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3}],”columns”:3,”rows”:4,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:[37,28,33]});
_Element.prototype.settings.page_element_id = “838601152675873911”;
_Element.prototype.element_id = “50f36fe5-4965-4bb7-aff2-705fd6c0f9de”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-50f36fe5-4965-4bb7-aff2-705fd6c0f9de’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement838601152675873911();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement838601152675873911, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement838601152675873911();
}
});
}

function setupElement996965178931093161() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “135397292802228534-1.3.6”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var TabbedBox = PlatformElement.extend({
events: {
‘click .tabbed-box-tab’: ‘clickTab’,
// in case they type and that causes an overflow, we should determine scrollability here
‘keyup .tabbed-box-tab .paragraph’: ‘determineScrollability’,
‘mousedown .scrollArrow-left’: ‘scrollLeft’,
‘mousedown .scrollArrow-right’: ‘scrollRight’,
‘touchstart .scrollArrow-left’: ‘scrollLeft’,
‘touchstart .scrollArrow-right’: ‘scrollRight’
},
initialize: function() {
var view = this;
// optimization
this.scrollArrowLeft = this.$(‘> .tabbed-box > .tabbed-box-bar > .scrollArrow-left’);
this.scrollArrowRight = this.$(‘> .tabbed-box > .tabbed-box-bar > .scrollArrow-right’);
this.scrollTabsBar = this.$(‘> .tabbed-box > .tabbed-box-bar > .tabbed-box-tab-group’);
// resize handler and mouseup handler
// since we want to be able to handle mouseup wherever the user releases (not just over the element)
// we set it here as a property of the window.
$(window).resize(function() {
this.determineScrollability();
}.bind(this)).on(‘mouseup touchend’, function() {
this.stopScrolling();
}.bind(this));
// since scroll events don’t propagate up, we have to bind it here as opposed to in the events object
this.scrollTabsBar.scroll(function() {
this.determineHandlers();
}.bind(this));
// determine whether or not we should show the scroll handlers
this.determineScrollability();
// load the first tab.
$(document).ready(function() {
this.scrollTabsBar.children().first().click();
}.bind(this));
},
/*
Handle click event on a tab.
Uses ‘rel’ attribute of each tab as an index to access
the class of the corresponding content area.
*/
clickTab: function(e) {
var active = $(e.currentTarget); // Clicked tab
var content_wrapper = this.$(‘> .tabbed-box > .tabbed-box-content-group’); // wrapper for all content divs
this.stopScrolling();
this.determineClickScroll(active);
// Set new active tab
active.siblings().removeClass(‘active’);
active.addClass(‘active’);
// mark the new active tab
this.settings.set(‘activeTabIndexInternal’, this.scrollTabsBar.children().index(active));
this.settings.save();
// trigger children first
content_wrapper.find(‘.tabbed-box-tab.active’).click();
// Set new active content
content_wrapper.children().hide();
content_wrapper.find(‘> .’ + active.attr(‘rel’)).fadeIn();
this.determineHandlers();
// fire resize event to handle any deterministic elements now appearing
$(window).resize();
// Stop propagation in case this is a nested tab app
e.stopPropagation();
},
// determines whether or not the two arrows (left and right scroll handlers) should be visible or not.
determineScrollability: function() {
var group = this.scrollTabsBar[0];
if (group.scrollWidth > group.clientWidth) {
this.$el.children().addClass(‘scrollable’);
this.determineHandlers();
} else {
this.$el.children().removeClass(‘scrollable’);
}
},
// determines whether or not the two arrows (left and right scroll handlers) should be active or not.
determineHandlers: function() {
var target = this.scrollTabsBar[0];
// left handler
if (target.scrollLeft !== 0) {
this.scrollArrowLeft.addClass(‘active’);
} else {
this.scrollArrowLeft.removeClass(‘active’);
}
// right handler
if (target.scrollLeft + target.clientWidth < target.scrollWidth – 1) {
this.scrollArrowRight.addClass('active');
} else {
this.scrollArrowRight.removeClass('active');
}
},
// scrolls the tabs bar to the left.
scrollLeft: function(e) {
e.stopPropagation();
this.stopScrolling();
var scrollEl = this.scrollTabsBar[0];
var view = this;
var factor = 2;
this.scrollArrowRight.addClass('active');
this.scrollInterval = setInterval(function() {
scrollEl.scrollLeft -= Math.floor(factor);
factor *= 1.05;
if (scrollEl.scrollLeft === 0) {
view.stopScrolling();
}
}, 10);
},
// scrolls the tabs bar to the right.
scrollRight: function(e) {
e.stopPropagation();
this.stopScrolling();
var scrollEl = this.scrollTabsBar[0];
var view = this;
var factor = 2;
this.scrollArrowLeft.addClass('active');
this.scrollInterval = setInterval(function() {
scrollEl.scrollLeft += Math.floor(factor);
factor *= 1.05;
// forcefully stop the interval if it's not doing anything anymore
if (scrollEl.scrollLeft + scrollEl.clientWidth == scrollEl.scrollWidth) {
view.stopScrolling();
}
}, 10);
},
stopScrolling: function() {
clearInterval(this.scrollInterval);
this.determineHandlers();
},
determineClickScroll: function(active) {
// figure out where the element is, and if we need to change our view to show it
var scroll;
// determine where the element we're going to is in respect to the tabs bar
// 25px is the size of the scroll arrows
var leftSidePosition = active.position().left – 50;
var rightSidePosition = active.position().left + active.width() + 50;
// the gap is how much space we want there to be between the selected element
// when it's out of view, and we go to it.
var gap = 25;
if (this.scrollTabsBar.children().index(active) === 0) {
// this the first element, so define the scroll to be 0.
scroll = 0;
} else if (this.scrollTabsBar.children().index(active) == this.scrollTabsBar.children().length – 1) {
// this the last element, so define the scroll to be all the way to the right.
scroll = this.scrollTabsBar[0].scrollWidth – this.scrollTabsBar[0].clientWidth;
} else if (leftSidePosition this.scrollTabsBar.width()) {
// the right corner is out of view.
scroll = this.scrollTabsBar[0].scrollLeft + (rightSidePosition – this.scrollTabsBar.width()) + gap;
} else {
scroll = this.scrollTabsBar[0].scrollLeft;
}
// start scrolling
scroll = Math.floor(scroll);
var delta = scroll – this.scrollTabsBar[0].scrollLeft;
var startedDown = false;
if (delta !== 0) {
clearInterval(this.scrollInterval);
var distance = 0;
var direction = (delta > 0 ? 1 : -1);
var speed = 1;
var factor = 1.25; // for parabolic acceleration
this.scrollInterval = setInterval(function() {
if (distance >= Math.abs(delta)) {
this.stopScrolling();
}
this.scrollTabsBar[0].scrollLeft += (Math.max(1, Math.floor(speed)) * direction);
distance += Math.max(1, Math.floor(speed));
if (distance * 2 >= Math.abs(delta)) { // if we’ve traversed more than half
if (factor == 1.25) { // 5/4
factor = 1; // 4/4
} else {
factor = 0.8; // 4/5
}
}
speed *= factor;
}.bind(this), 20);
}
}
});
return TabbedBox;
})();
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“tabs_each”:[{“tabs_index”:0},{“tabs_index”:1},{“tabs_index”:2},{“tabs_index”:3},{“tabs_index”:4},{“tabs_index”:5}],”theme”:”standard”,”tabs”:6,”active_tab”:”white”,”inactive_tab”:”#F7F7F7″,”border_color”:”#CCCCCC”,”activeTabIndexInternal”:0});
_Element.prototype.settings.page_element_id = “996965178931093161”;
_Element.prototype.element_id = “2218e160-d234-4a7d-a693-994e5f58a6f2”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/135397292802228534-1.3.6/assets/”;
new _Element({
el: ‘#element-2218e160-d234-4a7d-a693-994e5f58a6f2’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement996965178931093161();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement996965178931093161, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement996965178931093161();
}
});
}


Ferries

Ferry boats are integral to the Bay Area’s transportation network and a main source of the region’s tourism receipts. In fact, the crossing between Sausalito and San Francisco is among the best in the world in terms of the views offered: you get to see the City’s skyline, Golden Gate Bridge, Alcatraz, the Bay Bridge, Treasure Island, Angel Island and the Tiburon Peninsula (with Belvedere) all in a 30-minute crossing.

#element-f9390871-819d-468f-aa60-e443ea7d16a1 .border-box {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .tabbed-box {
position: relative;
margin: 20px 0;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .tabbed-box-tab-group {
font-size: 0;
margin: 0;
padding: 0;
float: left;
list-style: none;
height: 60px;
width: 100%;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
white-space: nowrap;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .tabbed-box-tab {
margin: 0;
cursor: pointer;
height: 60px;
display: inline-block;
min-width: 19%;
position: relative;
background-color: #F7F7F7;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .tabbed-box-content-group {
clear: both;
float: left;
width: 100%;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .tabbed-box-content {
padding: 40px 20px 40px 20px;
display: none;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .scrollArrow {
width: 25px;
background-color: white;
text-align: center;
position: absolute;
z-index: 3;
top: 0;
display: none;
cursor: pointer;
height: 60px;
line-height: 60px;
font-weight: bold;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .scrollArrow.scrollArrow-left {
left: 0;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .scrollArrow.scrollArrow-right {
right: 0;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .tabbed-box.scrollable .tabbed-box-tab-group {
border-bottom: none;
overflow-x: hidden;
overflow-y: hidden;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .tabbed-box.scrollable .tabbed-box-bar:hover .scrollArrow.active {
display: block;
}
@media only screen and (min-device-width: 414px) and (max-device-width: 736px) and (-webkit-min-device-pixel-ratio: 3),only screen and (min-device-width: 375px) and (max-device-width: 667px) and (-webkit-min-device-pixel-ratio: 2),only screen and (min-device-width: 320px) and (max-device-width: 568px) and (-webkit-min-device-pixel-ratio: 2),only screen and (min-device-width: 320px) and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2),only screen and (max-width: 499px) {
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .tabbed-box-tab-group {
overflow-x: scroll !important;
}
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .standard .tabbed-box-tab-group {
border-left: 1px solid #CCCCCC;
border-bottom: 1px solid #CCCCCC;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .standard .tabbed-box-tab {
border: 1px solid #CCCCCC;
border-left: none;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .standard .tabbed-box-tab .paragraph {
color: #A8ABAC;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .standard .tabbed-box-tab.active {
border-bottom: 1px solid white;
background-color: white;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .standard .tabbed-box-content-group {
border: 1px solid #CCCCCC;
border-top: none;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .standard.scrollable .tabbed-box-tab-group {
border-right: 1px solid #CCCCCC;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .standard.scrollable .tabbed-box-tab-group .tabbed-box-tab:last-child {
border-right: none;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .standard.scrollable .scrollArrow-left {
border: 1px solid #CCCCCC;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .standard.scrollable .scrollArrow-right {
border: 1px solid #CCCCCC;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .line .tabbed-box-tab-group {
border: 1px solid #CCCCCC;
border-bottom: none;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .line .tabbed-box-tab {
border-bottom: 1px solid #CCCCCC;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .line .tabbed-box-tab .paragraph {
color: #BDC2C2;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .line .tabbed-box-tab.active {
border-bottom: 1px solid black;
background-color: white;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .line .tabbed-box-content-group {
border: 1px solid #CCCCCC;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .line.scrollable .tabbed-box-tab-group {
height: 61px;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .line.scrollable .tabbed-box-content-group {
border-top: none;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .line.scrollable .scrollArrow-left,
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .line.scrollable .scrollArrow-right {
border: 1px solid #CCCCCC;
border-bottom: none;
border-top: none;
height: 61px;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .simple .tabbed-box-tab {
border-bottom: 1px solid #CCCCCC;
height: 61px;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .simple .tabbed-box-tab .paragraph {
color: #BDC2C2;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .simple .tabbed-box-tab.active {
border-bottom: 1px solid black;
background-color: white;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .simple .tabbed-box-content-group {
border-top: 1px solid #CCCCCC;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .simple .tabbed-box-content {
padding: 20px 0px 20px 0px;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .simple .scrollArrow-left {
border-right: 1px solid #CCCCCC;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .simple .scrollArrow-right {
border-left: 1px solid #CCCCCC;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .s3d-shadow {
-webkit-box-shadow: #f5f5f5;
-moz-box-shadow: #f5f5f5;
box-shadow: #f5f5f5;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .s3d-content-shadow {
-webkit-box-shadow: 0px 0px 30px 4px #f5f5f5;
-moz-box-shadow: 0px 0px 30px 4px #f5f5f5;
box-shadow: 0px 0px 30px 4px #f5f5f5;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .s3d .tabbed-box-tab .paragraph {
color: #A8ABAC;
background-color: #F7F7F7;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .s3d .tabbed-box-tab.active {
border-bottom: 1px solid white;
background-color: white;
-webkit-box-shadow: 0px -10px 31px -4px #f5f5f5, -12px -4px 40px -16px #f5f5f5, 12px -4px 40px -16px #f5f5f5;
-moz-box-shadow: 0px -10px 31px -4px #f5f5f5, -12px -4px 40px -16px #f5f5f5, 12px -4px 40px -16px #f5f5f5;
box-shadow: 0px -10px 31px -4px #f5f5f5, -12px -4px 40px -16px #f5f5f5, 12px -4px 40px -16px #f5f5f5;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .s3d .tabbed-box-tab.active .paragraph {
background-color: white;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .s3d .tabbed-box-content-group {
-webkit-box-shadow: 0px 0px 30px 4px #f5f5f5;
-moz-box-shadow: 0px 0px 30px 4px #f5f5f5;
box-shadow: 0px 0px 30px 4px #f5f5f5;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .tabbed-box-tab .paragraph {
padding: 0px;
line-height: 60px !important;
text-align: center !important;
font-weight: bold;
font-size: 16px !important;
margin: 0 20px;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .tabbed-box-content .paragraph {
padding: 0;
line-height: 30px;
}
#element-f9390871-819d-468f-aa60-e443ea7d16a1 .tabbed-box-tab:last-child .w-delete-outer {
display: none;
position: relative;
float: right;
}

  • San Francisco Bay Ferry
  • Golden Gate Ferry
  • Blue & Gold Fleet
  • City and Alcatraz Tours
<
>

The San Francisco Bay Area Ferry primarily provides service between the East Bay and San Francisco, with additional services to Vallejo and South San Francisco (Oyster Point, operates during commute periods weekdays only). It also operates during the baseball season where ferry services operate between Oakland (at Jack London Square), Alameda (at Alameda Point), and AT&T Park (the home of the San Francisco Giants).

For ferry services to AT&T Park, discount passes and Clipper cards are not accepted as form of payment. Advanced reservations are recommended since these boats fill up quickly; click on the links under their respective origins to book online.

The cash fares are as follows:

Between Oakland, Alameda, and San Francisco
Notes:

  • ​Discount fare includes youths aged 5 to 18 years, seniors 65 and over, and the handicapped. Special fares apply for students on a chaperoned field trip; see here for details.
  • * – Short hop fares are applicable between:
    • Oakland and Alameda
    • Ferry Building and Pier 41 in San Francisco
  • + – Discount fare applies to seniors and the handicapped only.

#element-3028f980-e0c5-4644-9a26-76f4880d5464 .simple-table-wrapper {
padding: 20px 0;
}
#element-3028f980-e0c5-4644-9a26-76f4880d5464 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-3028f980-e0c5-4644-9a26-76f4880d5464 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-3028f980-e0c5-4644-9a26-76f4880d5464 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-3028f980-e0c5-4644-9a26-76f4880d5464 .simple-table.style-top tr:first-child td,
#element-3028f980-e0c5-4644-9a26-76f4880d5464 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-3028f980-e0c5-4644-9a26-76f4880d5464 .simple-table.style-top tr:first-child td .paragraph,
#element-3028f980-e0c5-4644-9a26-76f4880d5464 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-3028f980-e0c5-4644-9a26-76f4880d5464 .simple-table tr:last-child td {
border-bottom: none;
}
#element-3028f980-e0c5-4644-9a26-76f4880d5464 .simple-table td:last-of-type {
border-right: none;
}
#element-3028f980-e0c5-4644-9a26-76f4880d5464 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Origin or Destination
Regular (Adult) Fare
Discount (Youth, Senior) Fare
SF Ferry Building
$6.40
$3.20
$7.50
$5.60
South San Francisco
$7.40
$3.70
Short Hop*
$1.50
$0.75+

function setupElement858958669608894047() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3},{“rows_index”:4}],”columns”:3,”rows”:5,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:[36,30,33]});
_Element.prototype.settings.page_element_id = “858958669608894047”;
_Element.prototype.element_id = “3028f980-e0c5-4644-9a26-76f4880d5464”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-3028f980-e0c5-4644-9a26-76f4880d5464’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement858958669608894047();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement858958669608894047, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement858958669608894047();
}
});
}

From Bay Farm Island (Alameda)

During weekday peak periods, additional ferry services operate between Bay Farm Island in Alameda (close to Oakland International Airport) and San Francisco’s Ferry Building to complement the regular Oakland-Alameda-San Francisco service.

#element-3b6ded76-39a2-4367-a500-50b9b0d29cf4 .simple-table-wrapper {
padding: 20px 0;
}
#element-3b6ded76-39a2-4367-a500-50b9b0d29cf4 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-3b6ded76-39a2-4367-a500-50b9b0d29cf4 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-3b6ded76-39a2-4367-a500-50b9b0d29cf4 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-3b6ded76-39a2-4367-a500-50b9b0d29cf4 .simple-table.style-top tr:first-child td,
#element-3b6ded76-39a2-4367-a500-50b9b0d29cf4 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-3b6ded76-39a2-4367-a500-50b9b0d29cf4 .simple-table.style-top tr:first-child td .paragraph,
#element-3b6ded76-39a2-4367-a500-50b9b0d29cf4 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-3b6ded76-39a2-4367-a500-50b9b0d29cf4 .simple-table tr:last-child td {
border-bottom: none;
}
#element-3b6ded76-39a2-4367-a500-50b9b0d29cf4 .simple-table td:last-of-type {
border-right: none;
}
#element-3b6ded76-39a2-4367-a500-50b9b0d29cf4 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Origin or Destination
Regular (Adult) Fare
Discount (Youth, Senior) Fare
SF Ferry Building
​$6.70
$3.30

function setupElement380699596157655337() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1}],”columns”:3,”rows”:2,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:[36,30,33]});
_Element.prototype.settings.page_element_id = “380699596157655337”;
_Element.prototype.element_id = “3b6ded76-39a2-4367-a500-50b9b0d29cf4”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-3b6ded76-39a2-4367-a500-50b9b0d29cf4’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement380699596157655337();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement380699596157655337, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement380699596157655337();
}
});
}

From Vallejo

Once operated by Vallejo Baylink, San Francisco Bay Ferry operates daily ferry services between Vallejo and San Francisco (Pier 41 and Ferry Building) in collaboration with Blue and Gold Fleet. In addition, Soltrans Route 200 replicates the same ferry service by operating MCI D4500 coaches up and down I-80 nonstop between Vallejo Ferry Terminal and San Francisco Ferry Building. Be it by bus or boat, the same fares apply traveling between Solano County and San Francisco.

#element-b6e50317-d5d6-4d5d-a554-0becb10010c4 .simple-table-wrapper {
padding: 20px 0;
}
#element-b6e50317-d5d6-4d5d-a554-0becb10010c4 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-b6e50317-d5d6-4d5d-a554-0becb10010c4 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-b6e50317-d5d6-4d5d-a554-0becb10010c4 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-b6e50317-d5d6-4d5d-a554-0becb10010c4 .simple-table.style-top tr:first-child td,
#element-b6e50317-d5d6-4d5d-a554-0becb10010c4 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-b6e50317-d5d6-4d5d-a554-0becb10010c4 .simple-table.style-top tr:first-child td .paragraph,
#element-b6e50317-d5d6-4d5d-a554-0becb10010c4 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-b6e50317-d5d6-4d5d-a554-0becb10010c4 .simple-table tr:last-child td {
border-bottom: none;
}
#element-b6e50317-d5d6-4d5d-a554-0becb10010c4 .simple-table td:last-of-type {
border-right: none;
}
#element-b6e50317-d5d6-4d5d-a554-0becb10010c4 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Origin or Destination
Regular (Adult) Fare
Discount (Youth, Senior) Fare
SF Ferry Building
$13.40
$6.70
AT&T Park (E-ticket)
$14.20
$10.60

function setupElement349025733204152983() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2}],”columns”:3,”rows”:3,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:[36,30,33]});
_Element.prototype.settings.page_element_id = “349025733204152983”;
_Element.prototype.element_id = “b6e50317-d5d6-4d5d-a554-0becb10010c4”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-b6e50317-d5d6-4d5d-a554-0becb10010c4’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement349025733204152983();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement349025733204152983, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement349025733204152983();
}
});
}

Golden Gate Ferry operates mainly between Marin County and San Francisco, with additional ferry services between Larkspur and AT&T Park operating during the baseball season and select special events. And coming soon, fares between Tiburon and San Francisco will be added as Golden Gate Ferry will operate weekday peak period trips.

Take note: you will need to have a ferry ticket from a ticket vending machine, a printed ticket (if going to AT&T Park), or Clipper card upon boarding as no fares are collected on board the ferries.

#element-aba89acf-875e-496c-af41-93ea87dd02cc .simple-table-wrapper {
padding: 20px 0;
}
#element-aba89acf-875e-496c-af41-93ea87dd02cc .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-aba89acf-875e-496c-af41-93ea87dd02cc .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-aba89acf-875e-496c-af41-93ea87dd02cc .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-aba89acf-875e-496c-af41-93ea87dd02cc .simple-table.style-top tr:first-child td,
#element-aba89acf-875e-496c-af41-93ea87dd02cc .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-aba89acf-875e-496c-af41-93ea87dd02cc .simple-table.style-top tr:first-child td .paragraph,
#element-aba89acf-875e-496c-af41-93ea87dd02cc .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-aba89acf-875e-496c-af41-93ea87dd02cc .simple-table tr:last-child td {
border-bottom: none;
}
#element-aba89acf-875e-496c-af41-93ea87dd02cc .simple-table td:last-of-type {
border-right: none;
}
#element-aba89acf-875e-496c-af41-93ea87dd02cc .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Route
Regular (Adult) Fare
Discount Fare
Sausalito-San Francisco
$11.25
$5.50
Larkspur-San Francisco
$10.50
$5.25
Larkspur-AT&T Park
$12.50
Not available

function setupElement525380091194408443() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3}],”columns”:3,”rows”:4,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:”default”});
_Element.prototype.settings.page_element_id = “525380091194408443”;
_Element.prototype.element_id = “aba89acf-875e-496c-af41-93ea87dd02cc”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-aba89acf-875e-496c-af41-93ea87dd02cc’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement525380091194408443();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement525380091194408443, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement525380091194408443();
}
});
}

While Blue and Gold Fleet operates mainly as a tour company, it also operates passenger ferry services that complement those provided by San Francisco Bay Ferry and Golden Gate Ferry. And soon, select weekday trips on the Tiburon-San Francisco route will be handed over to Golden Gate Ferry as part of the latter’s deal to operate commuter services with larger ferry boats.

Notes: 

  • Discount fare is available to:
    • Youths between 5 and 11 years old (also noted below as Child Fare)
    • Seniors aged 65 and better
    • Handicapped and Medicare cardholders
  • Youths between 12 and 18 years old have to pay the adult fare.
  • Most services originate from Pier 41, except for weekday commute services (between 6 and 9am, and between 4 and 7pm) between San Francisco and Tiburon which arrive at the Ferry Building.
Passenger services:

Take note that while Blue and Gold Ferry lists down East Bay destinations and Vallejo on its website, you will be redirected to the San Francisco Bay Ferry website for schedule and ticket information. For fares to Oakland, Alameda, Harbor Bay, and Vallejo, see the San Francisco Bay Ferry tab.

#element-a1ea8795-94c2-4856-b5e8-a7870d414e46 .simple-table-wrapper {
padding: 20px 0;
}
#element-a1ea8795-94c2-4856-b5e8-a7870d414e46 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-a1ea8795-94c2-4856-b5e8-a7870d414e46 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-a1ea8795-94c2-4856-b5e8-a7870d414e46 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-a1ea8795-94c2-4856-b5e8-a7870d414e46 .simple-table.style-top tr:first-child td,
#element-a1ea8795-94c2-4856-b5e8-a7870d414e46 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-a1ea8795-94c2-4856-b5e8-a7870d414e46 .simple-table.style-top tr:first-child td .paragraph,
#element-a1ea8795-94c2-4856-b5e8-a7870d414e46 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-a1ea8795-94c2-4856-b5e8-a7870d414e46 .simple-table tr:last-child td {
border-bottom: none;
}
#element-a1ea8795-94c2-4856-b5e8-a7870d414e46 .simple-table td:last-of-type {
border-right: none;
}
#element-a1ea8795-94c2-4856-b5e8-a7870d414e46 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Destination
Regular (Adult) Fare
Discount Fare
Sausalito
Tiburon
$10.00
$5.75
Angel Island
$8.00
$4.50

function setupElement906248468664604214() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2}],”columns”:3,”rows”:3,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:[35,30,33]});
_Element.prototype.settings.page_element_id = “906248468664604214”;
_Element.prototype.element_id = “a1ea8795-94c2-4856-b5e8-a7870d414e46”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-a1ea8795-94c2-4856-b5e8-a7870d414e46’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement906248468664604214();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement906248468664604214, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement906248468664604214();
}
});
}

​Sightseeing cruises

Notes for RocketBoat only: 

  • * – same fare applies to youths between 12 and 18 years old.
  • RocketBoat only operates select periods during the year; please check website below for details. 
  • A minimum height of 40 inches per passenger is required to board this special service.
  • No reservations are required for this service; boarding is first-come, first-served.

#element-df7d807e-47b8-4fad-9c79-8003400cc6e3 .simple-table-wrapper {
padding: 20px 0;
}
#element-df7d807e-47b8-4fad-9c79-8003400cc6e3 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-df7d807e-47b8-4fad-9c79-8003400cc6e3 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 25%;
}
#element-df7d807e-47b8-4fad-9c79-8003400cc6e3 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-df7d807e-47b8-4fad-9c79-8003400cc6e3 .simple-table.style-top tr:first-child td,
#element-df7d807e-47b8-4fad-9c79-8003400cc6e3 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-df7d807e-47b8-4fad-9c79-8003400cc6e3 .simple-table.style-top tr:first-child td .paragraph,
#element-df7d807e-47b8-4fad-9c79-8003400cc6e3 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-df7d807e-47b8-4fad-9c79-8003400cc6e3 .simple-table tr:last-child td {
border-bottom: none;
}
#element-df7d807e-47b8-4fad-9c79-8003400cc6e3 .simple-table td:last-of-type {
border-right: none;
}
#element-df7d807e-47b8-4fad-9c79-8003400cc6e3 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Tour Type
Regular Fare
Child Fare
Senior Fare
$30
$20
$24
$36
$24
$29
$27
$19
$23*

function setupElement938886366587919227() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2},{“columns_index”:3}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3}],”columns”:4,”rows”:4,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:[33,24,20,21]});
_Element.prototype.settings.page_element_id = “938886366587919227”;
_Element.prototype.element_id = “df7d807e-47b8-4fad-9c79-8003400cc6e3”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-df7d807e-47b8-4fad-9c79-8003400cc6e3’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement938886366587919227();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement938886366587919227, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement938886366587919227();
}
});
}

Event cruises are offered during holidays and special events; click here for details.

Angel Island-Tiburon Ferry

Access to Angel Island is better from Tiburon rather than using the Blue and Gold Ferry service from San Francisco as more trips are provided between the two for most of the year. However, in the winter, weekday services are limited that there may be no trips provided on certain days; check website for details.

Notes:

  • Credit cards are not accepted as payment form; only cash and checks.
  • Toddlers and infants below age 3 ride for free (one toddler for every one adult-paying ticket).
  • For Angel Island:
    • Listed fares to Angel Island are round trip, and admission to Angel Island State Park is included in the ticket cost.
    • No advanced reservations are accepted; pay as you board the ferry to Angel Island only.
  • + – Sunset Cruise available by reservation or pay as you board. Sailing Fridays and Saturdays between May and October; see website for details.
    • * – Same fare applies to seniors 65 and over

#element-323242e0-1395-418a-a4a7-2e2ab6578d5f .simple-table-wrapper {
padding: 20px 0;
}
#element-323242e0-1395-418a-a4a7-2e2ab6578d5f .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-323242e0-1395-418a-a4a7-2e2ab6578d5f .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-323242e0-1395-418a-a4a7-2e2ab6578d5f .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-323242e0-1395-418a-a4a7-2e2ab6578d5f .simple-table.style-top tr:first-child td,
#element-323242e0-1395-418a-a4a7-2e2ab6578d5f .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-323242e0-1395-418a-a4a7-2e2ab6578d5f .simple-table.style-top tr:first-child td .paragraph,
#element-323242e0-1395-418a-a4a7-2e2ab6578d5f .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-323242e0-1395-418a-a4a7-2e2ab6578d5f .simple-table tr:last-child td {
border-bottom: none;
}
#element-323242e0-1395-418a-a4a7-2e2ab6578d5f .simple-table td:last-of-type {
border-right: none;
}
#element-323242e0-1395-418a-a4a7-2e2ab6578d5f .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Trip Type
Adult Fare
Discount Fare
Tiburon-Angel Island
$15
Age 65+: $14
Age 6 to 12: $13
Age 3 to 5: $5
Sunset Cruise+
$20*
Age 6 to 12: $10
Age 3 to 5: $5

function setupElement828450729314127955() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2}],”columns”:3,”rows”:3,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:”default”});
_Element.prototype.settings.page_element_id = “828450729314127955”;
_Element.prototype.element_id = “323242e0-1395-418a-a4a7-2e2ab6578d5f”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-323242e0-1395-418a-a4a7-2e2ab6578d5f’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement828450729314127955();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement828450729314127955, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement828450729314127955();
}
});
}


Hornblower Cruises

Hornblower Cruises is the exclusive ferry company that operates to and from Alcatraz Island (branded as Alcatraz Cruises). It also provides a special cruise combining Alcatraz and Angel Islands, in which visitors will be able to tour around both islands by foot (on the former) and by tram (on the latter). Family packages are available, perfect for 2 adults and 2 children.

Notes: 

#element-d9c97afc-95bd-447b-aec5-e244c4f5ee6a .simple-table-wrapper {
padding: 20px 0;
}
#element-d9c97afc-95bd-447b-aec5-e244c4f5ee6a .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-d9c97afc-95bd-447b-aec5-e244c4f5ee6a .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-d9c97afc-95bd-447b-aec5-e244c4f5ee6a .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-d9c97afc-95bd-447b-aec5-e244c4f5ee6a .simple-table.style-top tr:first-child td,
#element-d9c97afc-95bd-447b-aec5-e244c4f5ee6a .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-d9c97afc-95bd-447b-aec5-e244c4f5ee6a .simple-table.style-top tr:first-child td .paragraph,
#element-d9c97afc-95bd-447b-aec5-e244c4f5ee6a .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-d9c97afc-95bd-447b-aec5-e244c4f5ee6a .simple-table tr:last-child td {
border-bottom: none;
}
#element-d9c97afc-95bd-447b-aec5-e244c4f5ee6a .simple-table td:last-of-type {
border-right: none;
}
#element-d9c97afc-95bd-447b-aec5-e244c4f5ee6a .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Cruise Type
Adult Fare
Discount Fare
Day Tour
$33*
Child: $20.50
Senior: $31.25
Night Tour
$40
Youth: $39
Child: $24
Senior: $37.25
Alcatraz & Angel Island
$64.75*
Child: $44
​Senior: $63

function setupElement100294051974242569() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3}],”columns”:3,”rows”:4,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:[33,33,33]});
_Element.prototype.settings.page_element_id = “100294051974242569”;
_Element.prototype.element_id = “d9c97afc-95bd-447b-aec5-e244c4f5ee6a”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-d9c97afc-95bd-447b-aec5-e244c4f5ee6a’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement100294051974242569();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement100294051974242569, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement100294051974242569();
}
});
}


Red and White Fleet

Home to the original bay cruise, operating since 1939, Red and White Fleet operates two tours with audio available in sixteen (16) different languages. And it offers a sunset cruise in the summer and twilight cruise in the winter that offer spectacular views of the sights around San Francisco Bay in the early evening.

#element-e443488c-906c-4977-8d10-8cdc9ae40f78 .simple-table-wrapper {
padding: 20px 0;
}
#element-e443488c-906c-4977-8d10-8cdc9ae40f78 .simple-table {
width: 100%;
border: 1px solid #C9CDCF;
border-spacing: 0;
}
#element-e443488c-906c-4977-8d10-8cdc9ae40f78 .simple-table td.cell {
border-right: 1px solid #C9CDCF;
border-bottom: 1px solid #C9CDCF;
word-break: break-word;
background-color: #FFFFFF;
width: 33.333333333333%;
}
#element-e443488c-906c-4977-8d10-8cdc9ae40f78 .simple-table td.cell .paragraph {
width: 90%;
margin: 0 5%;
padding-bottom: 10px;
padding-top: 10px;
text-align: center;
}
#element-e443488c-906c-4977-8d10-8cdc9ae40f78 .simple-table.style-top tr:first-child td,
#element-e443488c-906c-4977-8d10-8cdc9ae40f78 .simple-table.style-side td:first-of-type {
background-color: #F8F8F8;
}
#element-e443488c-906c-4977-8d10-8cdc9ae40f78 .simple-table.style-top tr:first-child td .paragraph,
#element-e443488c-906c-4977-8d10-8cdc9ae40f78 .simple-table.style-side td:first-of-type .paragraph {
font-weight: 700;
}
#element-e443488c-906c-4977-8d10-8cdc9ae40f78 .simple-table tr:last-child td {
border-bottom: none;
}
#element-e443488c-906c-4977-8d10-8cdc9ae40f78 .simple-table td:last-of-type {
border-right: none;
}
#element-e443488c-906c-4977-8d10-8cdc9ae40f78 .simple-table .empty-content-area-element {
padding-left: 0px !important;
}

Cruise Type
Adult Fare
Youth Fare
Golden Gate Bay Cruise
$30
$20
Bridge 2 Bridge Cruise
$38
$26
California Sunset Cruise
$64
$44

function setupElement539661067857724370() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “702688850553606843-1.4.3”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var SimpleTable = PlatformElement.extend({
initialize: function() {
this.setSizes();
},
setSizes: function() {
var sizes = this.settings.get(‘tableSizes’);
// if the # of columns isn’t the size of the array of lengths, ignore it.
if (sizes && sizes != “default” && this.settings.get(‘columns’) == sizes.length) {
var columns = this.$(‘tr’).each(function(index, value) {
var cells = $(value).find(‘td’).each(function(index2, value2) {
$(value2).css(‘width’, sizes[index2] + ‘%’);
});
});
}
}
});
return SimpleTable;
})();;
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“columns_each”:[{“columns_index”:0},{“columns_index”:1},{“columns_index”:2}],”rows_each”:[{“rows_index”:0},{“rows_index”:1},{“rows_index”:2},{“rows_index”:3}],”columns”:3,”rows”:4,”style”:”top”,”alignment”:”center”,”titleColor”:”#F8F8F8″,”backgroundColor”:”#FFFFFF”,”borderColor”:”#C9CDCF”,”tableSizes”:”default”});
_Element.prototype.settings.page_element_id = “539661067857724370”;
_Element.prototype.element_id = “e443488c-906c-4977-8d10-8cdc9ae40f78”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/702688850553606843-1.4.3/assets/”;
new _Element({
el: ‘#element-e443488c-906c-4977-8d10-8cdc9ae40f78’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement539661067857724370();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement539661067857724370, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement539661067857724370();
}
});
}

function setupElement394771943923078695() {
var requireFunc = window.platformElementRequire || window.require;
// Relies on a global require, specific to platform elements
requireFunc([
‘w-global’,
‘underscore’,
‘jquery’,
‘backbone’,
‘util/platform/elements/PlatformElement’,
‘util/platform/elements/PlatformElementSettings’
], function(
_W,
_,
$,
Backbone,
PlatformElement,
PlatformElementSettings
) {
var dependencies = null || [];
var platform_element_id = “135397292802228534-1.3.6”;
if (typeof _W.loadedPlatformDependencies === ‘undefined’) {
_W.loadedPlatformDependencies = [];
}
if (typeof _W.platformElements === ‘undefined’) {
_W.platformElements = [];
}
if (typeof _W.platformElements[platform_element_id] === ‘undefined’) {
_W.platformElements[platform_element_id] = {};
_W.platformElements[platform_element_id].deferredObject = new $.Deferred();
_W.platformElements[platform_element_id].deferredPromise = _W.platformElements[platform_element_id].deferredObject.promise();
}
if(_.intersection(_W.loadedPlatformDependencies, dependencies).length !== dependencies.length){
_.reduce(dependencies, function(promise, nextScript){
_W.loadedPlatformDependencies.push(nextScript);
return promise.then(function(){
return $.getScript(nextScript);
});
}, $().promise()).then(function(){
_W.platformElements[platform_element_id].deferredObject.resolve();
});
}
if (dependencies.length === 0){
_W.platformElements[platform_element_id].deferredObject.resolve();
}
_W.platformElements[platform_element_id].deferredPromise.done(function(){
var _ElementDefinition = /**
* This is required for element rendering to be possible
* @type {PlatformElement}
*/
(function() {
var TabbedBox = PlatformElement.extend({
events: {
‘click .tabbed-box-tab’: ‘clickTab’,
// in case they type and that causes an overflow, we should determine scrollability here
‘keyup .tabbed-box-tab .paragraph’: ‘determineScrollability’,
‘mousedown .scrollArrow-left’: ‘scrollLeft’,
‘mousedown .scrollArrow-right’: ‘scrollRight’,
‘touchstart .scrollArrow-left’: ‘scrollLeft’,
‘touchstart .scrollArrow-right’: ‘scrollRight’
},
initialize: function() {
var view = this;
// optimization
this.scrollArrowLeft = this.$(‘> .tabbed-box > .tabbed-box-bar > .scrollArrow-left’);
this.scrollArrowRight = this.$(‘> .tabbed-box > .tabbed-box-bar > .scrollArrow-right’);
this.scrollTabsBar = this.$(‘> .tabbed-box > .tabbed-box-bar > .tabbed-box-tab-group’);
// resize handler and mouseup handler
// since we want to be able to handle mouseup wherever the user releases (not just over the element)
// we set it here as a property of the window.
$(window).resize(function() {
this.determineScrollability();
}.bind(this)).on(‘mouseup touchend’, function() {
this.stopScrolling();
}.bind(this));
// since scroll events don’t propagate up, we have to bind it here as opposed to in the events object
this.scrollTabsBar.scroll(function() {
this.determineHandlers();
}.bind(this));
// determine whether or not we should show the scroll handlers
this.determineScrollability();
// load the first tab.
$(document).ready(function() {
this.scrollTabsBar.children().first().click();
}.bind(this));
},
/*
Handle click event on a tab.
Uses ‘rel’ attribute of each tab as an index to access
the class of the corresponding content area.
*/
clickTab: function(e) {
var active = $(e.currentTarget); // Clicked tab
var content_wrapper = this.$(‘> .tabbed-box > .tabbed-box-content-group’); // wrapper for all content divs
this.stopScrolling();
this.determineClickScroll(active);
// Set new active tab
active.siblings().removeClass(‘active’);
active.addClass(‘active’);
// mark the new active tab
this.settings.set(‘activeTabIndexInternal’, this.scrollTabsBar.children().index(active));
this.settings.save();
// trigger children first
content_wrapper.find(‘.tabbed-box-tab.active’).click();
// Set new active content
content_wrapper.children().hide();
content_wrapper.find(‘> .’ + active.attr(‘rel’)).fadeIn();
this.determineHandlers();
// fire resize event to handle any deterministic elements now appearing
$(window).resize();
// Stop propagation in case this is a nested tab app
e.stopPropagation();
},
// determines whether or not the two arrows (left and right scroll handlers) should be visible or not.
determineScrollability: function() {
var group = this.scrollTabsBar[0];
if (group.scrollWidth > group.clientWidth) {
this.$el.children().addClass(‘scrollable’);
this.determineHandlers();
} else {
this.$el.children().removeClass(‘scrollable’);
}
},
// determines whether or not the two arrows (left and right scroll handlers) should be active or not.
determineHandlers: function() {
var target = this.scrollTabsBar[0];
// left handler
if (target.scrollLeft !== 0) {
this.scrollArrowLeft.addClass(‘active’);
} else {
this.scrollArrowLeft.removeClass(‘active’);
}
// right handler
if (target.scrollLeft + target.clientWidth < target.scrollWidth – 1) {
this.scrollArrowRight.addClass('active');
} else {
this.scrollArrowRight.removeClass('active');
}
},
// scrolls the tabs bar to the left.
scrollLeft: function(e) {
e.stopPropagation();
this.stopScrolling();
var scrollEl = this.scrollTabsBar[0];
var view = this;
var factor = 2;
this.scrollArrowRight.addClass('active');
this.scrollInterval = setInterval(function() {
scrollEl.scrollLeft -= Math.floor(factor);
factor *= 1.05;
if (scrollEl.scrollLeft === 0) {
view.stopScrolling();
}
}, 10);
},
// scrolls the tabs bar to the right.
scrollRight: function(e) {
e.stopPropagation();
this.stopScrolling();
var scrollEl = this.scrollTabsBar[0];
var view = this;
var factor = 2;
this.scrollArrowLeft.addClass('active');
this.scrollInterval = setInterval(function() {
scrollEl.scrollLeft += Math.floor(factor);
factor *= 1.05;
// forcefully stop the interval if it's not doing anything anymore
if (scrollEl.scrollLeft + scrollEl.clientWidth == scrollEl.scrollWidth) {
view.stopScrolling();
}
}, 10);
},
stopScrolling: function() {
clearInterval(this.scrollInterval);
this.determineHandlers();
},
determineClickScroll: function(active) {
// figure out where the element is, and if we need to change our view to show it
var scroll;
// determine where the element we're going to is in respect to the tabs bar
// 25px is the size of the scroll arrows
var leftSidePosition = active.position().left – 50;
var rightSidePosition = active.position().left + active.width() + 50;
// the gap is how much space we want there to be between the selected element
// when it's out of view, and we go to it.
var gap = 25;
if (this.scrollTabsBar.children().index(active) === 0) {
// this the first element, so define the scroll to be 0.
scroll = 0;
} else if (this.scrollTabsBar.children().index(active) == this.scrollTabsBar.children().length – 1) {
// this the last element, so define the scroll to be all the way to the right.
scroll = this.scrollTabsBar[0].scrollWidth – this.scrollTabsBar[0].clientWidth;
} else if (leftSidePosition this.scrollTabsBar.width()) {
// the right corner is out of view.
scroll = this.scrollTabsBar[0].scrollLeft + (rightSidePosition – this.scrollTabsBar.width()) + gap;
} else {
scroll = this.scrollTabsBar[0].scrollLeft;
}
// start scrolling
scroll = Math.floor(scroll);
var delta = scroll – this.scrollTabsBar[0].scrollLeft;
var startedDown = false;
if (delta !== 0) {
clearInterval(this.scrollInterval);
var distance = 0;
var direction = (delta > 0 ? 1 : -1);
var speed = 1;
var factor = 1.25; // for parabolic acceleration
this.scrollInterval = setInterval(function() {
if (distance >= Math.abs(delta)) {
this.stopScrolling();
}
this.scrollTabsBar[0].scrollLeft += (Math.max(1, Math.floor(speed)) * direction);
distance += Math.max(1, Math.floor(speed));
if (distance * 2 >= Math.abs(delta)) { // if we’ve traversed more than half
if (factor == 1.25) { // 5/4
factor = 1; // 4/4
} else {
factor = 0.8; // 4/5
}
}
speed *= factor;
}.bind(this), 20);
}
}
});
return TabbedBox;
})();
if (typeof _ElementDefinition == ‘undefined’ || typeof _ElementDefinition == ‘null’) {
var _ElementDefinition = PlatformElement.extend({});
}
var _Element = _ElementDefinition.extend({
initialize: function() {
// we still want to call the initialize function defined by the developer
// however, we don’t want to call it until placeholders have been replaced
this.placeholderInterval = setInterval(function() {
// so use setInterval to check for placeholders.
if (this.$(‘.platform-element-child-placeholder’).length == 0) {
clearInterval(this.placeholderInterval);
this.constructor.__super__.initialize.apply(this);
}
}.bind(this), 100);
}
});
_Element.prototype.settings = new PlatformElementSettings({“tabs_each”:[{“tabs_index”:0},{“tabs_index”:1},{“tabs_index”:2},{“tabs_index”:3}],”activeTabIndexInternal_each”:[{“activeTabIndexInternal_index”:0},{“activeTabIndexInternal_index”:1},{“activeTabIndexInternal_index”:2}],”theme”:”standard”,”tabs”:4,”active_tab”:”white”,”inactive_tab”:”#F7F7F7″,”border_color”:”#CCCCCC”,”activeTabIndexInternal”:3});
_Element.prototype.settings.page_element_id = “394771943923078695”;
_Element.prototype.element_id = “f9390871-819d-468f-aa60-e443ea7d16a1”;
_Element.prototype.user_id = “3466466”;
_Element.prototype.site_id = “484589221176252212”;
_Element.prototype.assets_path = “//marketplace.editmysite.com/elements/135397292802228534-1.3.6/assets/”;
new _Element({
el: ‘#element-f9390871-819d-468f-aa60-e443ea7d16a1’
});
});
});
}
if (typeof document.documentElement.appReady == ‘undefined’) {
document.documentElement.appReady = 0;
}
if (document.documentElement.appReady || (window.inEditor && window.inEditor())) {
setupElement394771943923078695();
} else if (document.createEvent && document.addEventListener) {
document.addEventListener(‘appReady’, setupElement394771943923078695, false);
} else {
document.documentElement.attachEvent(‘onpropertychange’, function(event){
if (event.propertyName == ‘appReady’) {
setupElement394771943923078695();
}
});
}

Top