diff --git a/resources/celerity/map.php b/resources/celerity/map.php index 7aeb049f96..a92d33b71e 100644 --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -7,7 +7,7 @@ return array( 'names' => array( - 'core.pkg.css' => '9cc0bd27', + 'core.pkg.css' => '2ed3f133', 'core.pkg.js' => 'b7bdab05', 'darkconsole.pkg.js' => 'ca8671ce', 'differential.pkg.css' => 'd1b3a605', @@ -115,7 +115,8 @@ return array( 'rsrc/css/core/remarkup.css' => 'ca7f2265', 'rsrc/css/core/syntax.css' => '3c18c1cb', 'rsrc/css/core/z-index.css' => '0fd29d49', - 'rsrc/css/diviner/diviner-shared.css' => 'be90f718', + 'rsrc/css/diviner/diviner-shared.css' => '38813222', + 'rsrc/css/font/font-source-sans-pro.css' => '225851dd', 'rsrc/css/layout/phabricator-action-header-view.css' => 'c14dfc57', 'rsrc/css/layout/phabricator-action-list-view.css' => '81383e25', 'rsrc/css/layout/phabricator-crumbs-view.css' => '2d9db584', @@ -129,11 +130,12 @@ return array( 'rsrc/css/phui/calendar/phui-calendar.css' => '5e1ad989', 'rsrc/css/phui/phui-box.css' => 'a36cf3a5', 'rsrc/css/phui/phui-button.css' => '8784a966', - 'rsrc/css/phui/phui-document.css' => '143b2ac8', + 'rsrc/css/phui/phui-document.css' => 'b56323cf', 'rsrc/css/phui/phui-feed-story.css' => '3a59c2cf', + 'rsrc/css/phui/phui-fontkit.css' => 'de84aa4a', 'rsrc/css/phui/phui-form-view.css' => '0efd3326', 'rsrc/css/phui/phui-form.css' => 'b78ec020', - 'rsrc/css/phui/phui-header-view.css' => '472a6003', + 'rsrc/css/phui/phui-header-view.css' => 'b76a37b3', 'rsrc/css/phui/phui-icon.css' => '7a5771a9', 'rsrc/css/phui/phui-info-panel.css' => '27ea50a1', 'rsrc/css/phui/phui-list.css' => '2edb76cf', @@ -166,6 +168,8 @@ return array( 'rsrc/css/sprite-projects.css' => '7578fa56', 'rsrc/css/sprite-status.css' => '8bce1c97', 'rsrc/css/sprite-tokens.css' => '1706b943', + 'rsrc/externals/font/SourceSansPro.woff' => '44e50175', + 'rsrc/externals/font/SourceSansProBold.woff' => '8799f025', 'rsrc/externals/javelin/core/Event.js' => '79473b62', 'rsrc/externals/javelin/core/Stratcom.js' => 'c293f7b9', 'rsrc/externals/javelin/core/__tests__/event-stop-and-kill.js' => '717554e4', @@ -516,7 +520,8 @@ return array( 'diffusion-commit-view-css' => '92d1e8f9', 'diffusion-icons-css' => '384a0f7d', 'diffusion-source-css' => '66fdf661', - 'diviner-shared-css' => 'be90f718', + 'diviner-shared-css' => '38813222', + 'font-source-sans-pro' => '225851dd', 'global-drag-and-drop-css' => '697324ad', 'herald-css' => '59d48f01', 'herald-rule-editor' => '4f31d692', @@ -744,11 +749,12 @@ return array( 'phui-calendar-day-css' => 'de035c8a', 'phui-calendar-list-css' => 'c1d0ca59', 'phui-calendar-month-css' => '5e762971', - 'phui-document-view-css' => '143b2ac8', + 'phui-document-view-css' => 'b56323cf', 'phui-feed-story-css' => '3a59c2cf', + 'phui-fontkit-css' => 'de84aa4a', 'phui-form-css' => 'b78ec020', 'phui-form-view-css' => '0efd3326', - 'phui-header-view-css' => '472a6003', + 'phui-header-view-css' => 'b76a37b3', 'phui-icon-view-css' => '7a5771a9', 'phui-info-panel-css' => '27ea50a1', 'phui-list-view-css' => '2edb76cf', diff --git a/src/aphront/configuration/AphrontDefaultApplicationConfiguration.php b/src/aphront/configuration/AphrontDefaultApplicationConfiguration.php index b67954185a..d42d0f0317 100644 --- a/src/aphront/configuration/AphrontDefaultApplicationConfiguration.php +++ b/src/aphront/configuration/AphrontDefaultApplicationConfiguration.php @@ -61,7 +61,7 @@ class AphrontDefaultApplicationConfiguration '(?:(?P[0-9]+)T/)?'. '(?P[^/]+)/'. '(?P[a-f0-9]{8})/'. - '(?P.+\.(?:css|js|jpg|png|swf|gif))' + '(?P.+\.(?:css|js|jpg|png|swf|gif|woff))' => 'CelerityPhabricatorResourceController', ), ); diff --git a/src/aphront/response/AphrontFileResponse.php b/src/aphront/response/AphrontFileResponse.php index 08f3b82cb5..13d980d06e 100644 --- a/src/aphront/response/AphrontFileResponse.php +++ b/src/aphront/response/AphrontFileResponse.php @@ -10,6 +10,12 @@ final class AphrontFileResponse extends AphrontResponse { private $download; private $rangeMin; private $rangeMax; + private $allowOrigins = array(); + + public function addAllowOrigin($origin) { + $this->allowOrigins[] = $origin; + return $this; + } public function setDownload($download) { $download = preg_replace('/[^A-Za-z0-9_.-]/', '_', $download); @@ -76,6 +82,12 @@ final class AphrontFileResponse extends AphrontResponse { ); } + if ($this->allowOrigins) { + $headers[] = array( + 'Access-Control-Allow-Origin', + implode(',', $this->allowOrigins)); + } + $headers = array_merge(parent::getHeaders(), $headers); return $headers; } diff --git a/src/applications/base/controller/PhabricatorController.php b/src/applications/base/controller/PhabricatorController.php index eb31ff9a18..3a535f0b8a 100644 --- a/src/applications/base/controller/PhabricatorController.php +++ b/src/applications/base/controller/PhabricatorController.php @@ -222,6 +222,10 @@ abstract class PhabricatorController extends AphrontController { $page->setDeviceReady(true); } + if (idx($options, 'fonts')) { + $page->setExtraFonts(true); + } + $page->setShowChrome(idx($options, 'chrome', true)); $application_menu = $this->buildApplicationMenu(); diff --git a/src/applications/diviner/controller/DivinerAtomController.php b/src/applications/diviner/controller/DivinerAtomController.php index 4a6e6c5aff..5b4d2207a4 100644 --- a/src/applications/diviner/controller/DivinerAtomController.php +++ b/src/applications/diviner/controller/DivinerAtomController.php @@ -121,6 +121,7 @@ final class DivinerAtomController extends DivinerController { $document = id(new PHUIDocumentView()) ->setBook($book->getTitle(), $group_name) ->setHeader($header) + ->setFontKit(PHUIDocumentView::FONT_SOURCE_SANS) ->appendChild($properties) ->appendChild($warnings) ->appendChild($content); @@ -248,6 +249,7 @@ final class DivinerAtomController extends DivinerController { array( 'title' => $symbol->getTitle(), 'device' => true, + 'fonts' => true, )); } @@ -460,10 +462,8 @@ final class DivinerAtomController extends DivinerController { case DivinerAtom::TYPE_METHOD: case DivinerAtom::TYPE_FUNCTION: break; - case DivinerAtom::TYPE_ARTICLE: - return $symbol->getTitle(); default: - return null; + return $symbol->getTitle(); } $atom = $symbol->getAtom(); diff --git a/src/applications/diviner/controller/DivinerBookController.php b/src/applications/diviner/controller/DivinerBookController.php index f932b8a1d2..c9552cd530 100644 --- a/src/applications/diviner/controller/DivinerBookController.php +++ b/src/applications/diviner/controller/DivinerBookController.php @@ -38,6 +38,7 @@ final class DivinerBookController extends DivinerController { $document = new PHUIDocumentView(); $document->setHeader($header); + $document->setFontKit(PHUIDocumentView::FONT_SOURCE_SANS); $properties = $this->buildPropertyList($book); @@ -68,7 +69,19 @@ final class DivinerBookController extends DivinerController { $section->addContent($this->renderAtomList($atoms)); $out[] = $section; } + + $preface = $book->getPreface(); + $preface_view = null; + if (strlen($preface)) { + $preface_view = + PhabricatorMarkupEngine::renderOneObject( + id(new PhabricatorMarkupOneOff())->setContent($preface), + 'default', + $viewer); + } + $document->appendChild($properties); + $document->appendChild($preface_view); $document->appendChild($out); return $this->buildApplicationPage( @@ -79,6 +92,7 @@ final class DivinerBookController extends DivinerController { array( 'title' => $book->getTitle(), 'device' => true, + 'fonts' => true, )); } @@ -95,15 +109,6 @@ final class DivinerBookController extends DivinerController { pht('Updated'), phabricator_datetime($book->getDateModified(), $viewer)); - $preface = $book->getPreface(); - if (strlen($preface)) { - $view->addTextContent( - PhabricatorMarkupEngine::renderOneObject( - id(new PhabricatorMarkupOneOff())->setContent($preface), - 'default', - $viewer)); - } - return $view; } diff --git a/src/applications/diviner/controller/DivinerFindController.php b/src/applications/diviner/controller/DivinerFindController.php index 56b6af89b7..16ac0e1372 100644 --- a/src/applications/diviner/controller/DivinerFindController.php +++ b/src/applications/diviner/controller/DivinerFindController.php @@ -86,6 +86,7 @@ final class DivinerFindController extends DivinerController { array( 'title' => array(pht('Find'), pht('"%s"', $query_text)), 'device' => true, + 'fonts' => true, )); } diff --git a/src/applications/diviner/controller/DivinerMainController.php b/src/applications/diviner/controller/DivinerMainController.php index 2ac8f4d69d..31ece08328 100644 --- a/src/applications/diviner/controller/DivinerMainController.php +++ b/src/applications/diviner/controller/DivinerMainController.php @@ -33,23 +33,27 @@ final class DivinerMainController extends DivinerController { $document = new PHUIDocumentView(); $document->setHeader($header); + $document->setFontKit(PHUIDocumentView::FONT_SOURCE_SANS); if ($books) { - $list = id(new PHUIObjectItemListView()) - ->setUser($viewer) - ->setPlain(true); - $books = msort($books, 'getTitle'); + $list = array(); foreach ($books as $book) { - $item = id(new PHUIObjectItemView()) + $item = id(new DivinerBookItemView()) + ->setTitle($book->getTitle()) ->setHref('/book/'.$book->getName().'/') - ->setHeader($book->getTitle()) - ->addAttribute($book->getPreface()); - - $list->addItem($item); + ->setSubtitle($book->getPreface()); + $list[] = $item; } + $list = id(new PHUIBoxView()) + ->addPadding(PHUI::PADDING_LARGE_LEFT) + ->addPadding(PHUI::PADDING_LARGE_RIGHT) + ->addPadding(PHUI::PADDING_SMALL_TOP) + ->addPadding(PHUI::PADDING_SMALL_BOTTOM) + ->appendChild($list); $document->appendChild($list); + } else { $text = pht( "(NOTE) **Looking for Phabricator documentation?** If you're looking ". @@ -84,6 +88,7 @@ final class DivinerMainController extends DivinerController { array( 'title' => pht('Documentation Books'), 'device' => true, + 'fonts' => true, )); } } diff --git a/src/infrastructure/celerity/CelerityResourceController.php b/src/infrastructure/celerity/CelerityResourceController.php index 17b8403276..7e8ccc299d 100644 --- a/src/infrastructure/celerity/CelerityResourceController.php +++ b/src/infrastructure/celerity/CelerityResourceController.php @@ -70,6 +70,17 @@ abstract class CelerityResourceController extends PhabricatorController { $response = new AphrontFileResponse(); $response->setContent($data); $response->setMimeType($type_map[$type]); + + // NOTE: This is a piece of magic required to make WOFF fonts work in + // Firefox. Possibly we should generalize this. + if ($type == 'woff') { + // We could be more tailored here, but it's not currently trivial to + // generate a comprehensive list of valid origins (an install may have + // arbitrarily many Phame blogs, for example), and we lose nothing by + // allowing access from anywhere. + $response->addAllowOrigin("*"); + } + return $this->makeResponseCacheable($response); } @@ -81,6 +92,7 @@ abstract class CelerityResourceController extends PhabricatorController { 'gif' => 'image/gif', 'jpg' => 'image/jpg', 'swf' => 'application/x-shockwave-flash', + 'woff' => 'font/woff', ); } diff --git a/src/infrastructure/celerity/resources/CelerityResourcesOnDisk.php b/src/infrastructure/celerity/resources/CelerityResourcesOnDisk.php index 0aa46bb3d9..2abaaebbc1 100644 --- a/src/infrastructure/celerity/resources/CelerityResourcesOnDisk.php +++ b/src/infrastructure/celerity/resources/CelerityResourcesOnDisk.php @@ -33,6 +33,7 @@ abstract class CelerityResourcesOnDisk extends CelerityPhysicalResources { 'jpg', 'gif', 'swf', + 'woff', ); } diff --git a/src/view/page/PhabricatorStandardPageView.php b/src/view/page/PhabricatorStandardPageView.php index f4cd10be14..615a10fabd 100644 --- a/src/view/page/PhabricatorStandardPageView.php +++ b/src/view/page/PhabricatorStandardPageView.php @@ -12,6 +12,7 @@ final class PhabricatorStandardPageView extends PhabricatorBarePageView { private $glyph; private $menuContent; private $showChrome = true; + private $extraFonts; private $disableConsole; private $pageObjects = array(); private $applicationMenu; @@ -57,6 +58,15 @@ final class PhabricatorStandardPageView extends PhabricatorBarePageView { return $this->showChrome; } + public function setExtraFonts($extra) { + $this->extraFonts = $extra; + return $this; + } + + public function getExtraFonts() { + return $this->extraFonts; + } + public function appendPageObjects(array $objs) { foreach ($objs as $obj) { $this->pageObjects[] = $obj; @@ -233,8 +243,16 @@ final class PhabricatorStandardPageView extends PhabricatorBarePageView { $response = CelerityAPI::getStaticResourceResponse(); + $fonts = null; + if ($this->getExtraFonts()) { + $fonts = hsprintf(""); + } + return hsprintf( - '%s%s', parent::getHead(), + $fonts, phutil_safe_html($monospaced), phutil_safe_html($monospaced_win), $response->renderSingleResource('javelin-magical-init', 'phabricator')); diff --git a/src/view/phui/PHUIDocumentView.php b/src/view/phui/PHUIDocumentView.php index 8056951682..2b6feb7036 100644 --- a/src/view/phui/PHUIDocumentView.php +++ b/src/view/phui/PHUIDocumentView.php @@ -5,6 +5,7 @@ final class PHUIDocumentView extends AphrontTagView { /* For mobile displays, where do you want the sidebar */ const NAV_BOTTOM = 'nav_bottom'; const NAV_TOP = 'nav_top'; + const FONT_SOURCE_SANS = 'source-sans'; private $offset; private $header; @@ -14,6 +15,7 @@ final class PHUIDocumentView extends AphrontTagView { private $bookname; private $bookdescription; private $mobileview; + private $fontKit; public function setOffset($offset) { $this->offset = $offset; @@ -50,6 +52,11 @@ final class PHUIDocumentView extends AphrontTagView { return $this; } + public function setFontKit($kit) { + $this->fontKit = $kit; + return $this; + } + public function getTagAttributes() { $classes = array(); @@ -64,6 +71,9 @@ final class PHUIDocumentView extends AphrontTagView { public function getTagContent() { require_celerity_resource('phui-document-view-css'); + if ($this->fontKit) { + require_celerity_resource('phui-fontkit-css'); + } $classes = array(); $classes[] = 'phui-document-view'; @@ -122,6 +132,17 @@ final class PHUIDocumentView extends AphrontTagView { $this->bookName); } + if ($this->fontKit) { + $main_content = phutil_tag( + 'div', + array( + 'class' => 'phui-font-'.$this->fontKit + ), + $this->renderChildren()); + } else { + $main_content = $this->renderChildren(); + } + $content_inner = phutil_tag( 'div', array( @@ -131,7 +152,7 @@ final class PHUIDocumentView extends AphrontTagView { $book, $this->header, $topnav, - $this->renderChildren(), + $main_content, $crumbs )); diff --git a/webroot/rsrc/css/diviner/diviner-shared.css b/webroot/rsrc/css/diviner/diviner-shared.css index b96987e074..7057c51c5a 100644 --- a/webroot/rsrc/css/diviner/diviner-shared.css +++ b/webroot/rsrc/css/diviner/diviner-shared.css @@ -15,10 +15,6 @@ margin: 0 8px 16px; } -a.diviner-atom-signature-name { - color: {$violet}; -} - .diviner-table-header { padding: 4px 16px; background-color: {$greybackground}; @@ -71,6 +67,8 @@ a.diviner-atom-signature-name { body .diviner-document-section .phui-header-view { width: 100%; + font-size: 20px; + font-weight: 400; } .phui-property-list-view + .diviner-document-section { @@ -92,7 +90,8 @@ body .diviner-document-section .phui-header-view { } .diviner-list .diviner-atom-signature { - color: {$greytext}; + color: {$violet}; + margin-left: -16px; } .diviner-list a { @@ -120,9 +119,13 @@ body .diviner-document-section .phui-header-view { padding-top: 0; } +.diviner-list { + padding-left: 12px; +} + .diviner-list li { - line-height: 18px; - padding-bottom: 4px; + line-height: 20px; + padding-bottom: 12px; } /* - Book Index ---------------------------------------------------------------- @@ -133,8 +136,8 @@ body .diviner-document-section .phui-header-view { .diviner-book-item { display: block; - padding: 4px 16px; - margin: 0 -16px; + padding: 6px 16px; + margin: 4px -16px; } .diviner-book-item:hover { @@ -142,11 +145,13 @@ body .diviner-document-section .phui-header-view { } .device-desktop .diviner-book-item:hover { - background-color: {$lightgreybackground}; + background-color: #F5EEFF; } .diviner-book-item-title { - font-weight: bold; + font-weight: 700; + font-size: 16px; + color: {$darkbluetext}; } .diviner-book-item-type { @@ -156,6 +161,6 @@ body .diviner-document-section .phui-header-view { .diviner-book-item-subtitle { display: block; - line-height: 18px; - color: {$lightbluetext}; + line-height: 20px; + color: {$lightgreytext}; } diff --git a/webroot/rsrc/css/font/font-source-sans-pro.css b/webroot/rsrc/css/font/font-source-sans-pro.css new file mode 100644 index 0000000000..880042991c --- /dev/null +++ b/webroot/rsrc/css/font/font-source-sans-pro.css @@ -0,0 +1,23 @@ +/** + * @provides font-source-sans-pro + */ + +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 400; + src: local('Source Sans Pro'), + local('SourceSansPro-Regular'), + url(/rsrc/externals/font/SourceSansPro.woff) + format('woff'); +} + +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 700; + src: local('Source Sans Pro Bold'), + local('SourceSansPro-Bold'), + url(/rsrc/externals/font/SourceSansProBold.woff) + format('woff'); +} diff --git a/webroot/rsrc/css/phui/phui-document.css b/webroot/rsrc/css/phui/phui-document.css index b3de223869..d944f634d9 100644 --- a/webroot/rsrc/css/phui/phui-document.css +++ b/webroot/rsrc/css/phui/phui-document.css @@ -77,7 +77,7 @@ .phui-header-shell.phui-header-no-backgound .phui-header-view { padding: 8px 0 4px; - font-size: 14px; + font-size: 15px; } .phui-document-content .phui-header-view { diff --git a/webroot/rsrc/css/phui/phui-fontkit.css b/webroot/rsrc/css/phui/phui-fontkit.css new file mode 100644 index 0000000000..cbd5890697 --- /dev/null +++ b/webroot/rsrc/css/phui/phui-fontkit.css @@ -0,0 +1,38 @@ +/** + * @provides phui-fontkit-css + */ + +.phui-font-source-sans { + font-family: 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif; + font-size: 15px; + font-weight: 400; + line-height: 20px; +} + +.phui-font-source-sans .phabricator-remarkup h2 { + padding: 8px 24px 8px 0; + border-bottom: 1px solid {$thinblueborder}; + font-size: 20px; + font-weight: 400; + color: {$bluetext}; + margin: 0 0 16px; +} + +.phui-font-source-sans .phabricator-remarkup tt { + font-size: 13px; + padding: 1px 3px 2px; +} + +.phui-font-source-sans .phui-property-list-section { + border-bottom: 1px solid {$thinblueborder}; + margin-bottom: 8px; + background: {$lightgreybackground}; +} + +.phui-font-source-sans .phui-property-list-container { + padding-bottom: 6px; +} + +.phui-font-source-sans a { + color: {$blue}; +} diff --git a/webroot/rsrc/css/phui/phui-header-view.css b/webroot/rsrc/css/phui/phui-header-view.css index e2959375c6..dbe094cc23 100644 --- a/webroot/rsrc/css/phui/phui-header-view.css +++ b/webroot/rsrc/css/phui/phui-header-view.css @@ -16,16 +16,15 @@ body .phui-header-shell.phui-header-no-backgound { } body .phui-header-shell.phui-bleed-header { - background-color: {$lightgreybackground}; - border-top: 1px solid {$thinblueborder}; - border-bottom: none; + background-color: #fff; + border-bottom: 1px solid {$thinblueborder}; width: auto; - margin-bottom: 16px; + margin: 16px; } body .phui-header-shell.phui-bleed-header .phui-header-view { - padding: 8px 24px 8px 16px; + padding: 8px 24px 8px 0; color: {$bluetext}; } diff --git a/webroot/rsrc/externals/font/LICENSE b/webroot/rsrc/externals/font/LICENSE new file mode 100644 index 0000000000..07542572e3 --- /dev/null +++ b/webroot/rsrc/externals/font/LICENSE @@ -0,0 +1,93 @@ +Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. + +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/webroot/rsrc/externals/font/SourceSansPro.woff b/webroot/rsrc/externals/font/SourceSansPro.woff new file mode 100644 index 0000000000000000000000000000000000000000..58651d266dbb974676e954aeb3c358b917df0793 GIT binary patch literal 23808 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 U(p#XP^S`a{4|9O!PCf<(081kFdH?_b literal 0 HcmV?d00001 diff --git a/webroot/rsrc/externals/font/SourceSansProBold.woff b/webroot/rsrc/externals/font/SourceSansProBold.woff new file mode 100644 index 0000000000000000000000000000000000000000..12bd5526c9a2ed216a2704c5afd27681eb9bdf9e GIT binary patch literal 23128 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