Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/applications/conpherence/view/ConpherenceMenuItemView.php b/src/applications/conpherence/view/ConpherenceMenuItemView.php
index 5450abf157..eaa24af46b 100644
--- a/src/applications/conpherence/view/ConpherenceMenuItemView.php
+++ b/src/applications/conpherence/view/ConpherenceMenuItemView.php
@@ -1,132 +1,122 @@
<?php
/**
* @group conpherence
*/
final class ConpherenceMenuItemView extends AphrontTagView {
private $title;
private $subtitle;
private $imageURI;
private $href;
private $epoch;
private $unreadCount;
public function setUnreadCount($unread_count) {
$this->unreadCount = $unread_count;
return $this;
}
public function getUnreadCount() {
return $this->unreadCount;
}
public function setEpoch($epoch) {
$this->epoch = $epoch;
return $this;
}
public function getEpoch() {
return $this->epoch;
}
public function setHref($href) {
$this->href = $href;
return $this;
}
public function getHref() {
return $this->href;
}
public function setImageURI($image_uri) {
$this->imageURI = $image_uri;
return $this;
}
public function getImageURI() {
return $this->imageURI;
}
public function setSubtitle($subtitle) {
$this->subtitle = $subtitle;
return $this;
}
public function getSubtitle() {
return $this->subtitle;
}
public function setTitle($title) {
$this->title = $title;
return $this;
}
public function getTitle() {
return $this->title;
}
protected function getTagName() {
return 'a';
}
protected function getTagAttributes() {
$classes = array('conpherence-menu-item-view');
return array(
'class' => $classes,
'href' => $this->href,
);
}
protected function getTagContent() {
$image = null;
if ($this->imageURI) {
$image = phutil_tag(
'span',
array(
'class' => 'conpherence-menu-item-image',
'style' => 'background-image: url('.$this->imageURI.');'
),
'');
}
$title = null;
if ($this->title) {
$title = phutil_tag(
'span',
array(
'class' => 'conpherence-menu-item-title',
),
$this->title);
}
$subtitle = null;
if ($this->subtitle) {
$subtitle = phutil_tag(
'span',
array(
'class' => 'conpherence-menu-item-subtitle',
),
$this->subtitle);
}
- $epoch = null;
- if ($this->epoch) {
- $epoch = phutil_tag(
- 'span',
- array(
- 'class' => 'conpherence-menu-item-date',
- ),
- phabricator_relative_date($this->epoch, $this->user));
- }
$unread_count = null;
if ($this->unreadCount) {
$unread_count = phutil_tag(
'span',
array(
'class' => 'conpherence-menu-item-unread-count'
),
(int)$this->unreadCount);
}
return array(
$image,
$title,
$subtitle,
- $epoch,
$unread_count,
);
}
}
diff --git a/src/applications/meta/view/PhabricatorApplicationLaunchView.php b/src/applications/meta/view/PhabricatorApplicationLaunchView.php
index 3c3f95c339..7863390b7f 100644
--- a/src/applications/meta/view/PhabricatorApplicationLaunchView.php
+++ b/src/applications/meta/view/PhabricatorApplicationLaunchView.php
@@ -1,140 +1,145 @@
<?php
final class PhabricatorApplicationLaunchView extends AphrontView {
private $application;
private $status;
public function setApplication(PhabricatorApplication $application) {
$this->application = $application;
return $this;
}
public function setApplicationStatus(array $status) {
$this->status = $status;
return $this;
}
public function render() {
$application = $this->application;
require_celerity_resource('phabricator-application-launch-view-css');
require_celerity_resource('sprite-apps-large-css');
$content = array();
$icon = null;
$create_button = null;
if ($application) {
$content[] = phutil_tag(
'span',
array(
'class' => 'phabricator-application-launch-name',
),
$application->getName());
if ($application->isBeta()) {
$content[] = javelin_tag(
'span',
array(
'aural' => false,
'class' => 'phabricator-application-beta',
),
"\xCE\xB2");
}
$content[] = phutil_tag(
'span',
array(
'class' => 'phabricator-application-launch-description',
),
$application->getShortDescription());
$counts = array();
$text = array();
if ($this->status) {
foreach ($this->status as $status) {
$type = $status->getType();
$counts[$type] = idx($counts, $type, 0) + $status->getCount();
if ($status->getCount()) {
$text[] = $status->getText();
}
}
}
$attention = PhabricatorApplicationStatusView::TYPE_NEEDS_ATTENTION;
$warning = PhabricatorApplicationStatusView::TYPE_WARNING;
if (!empty($counts[$attention]) || !empty($counts[$warning])) {
$count = idx($counts, $attention, 0);
$count1 = $count2 = '';
if ($count > 0) {
$count1 = phutil_tag(
'span',
array(
'class' => 'phabricator-application-attention-count',
),
$count);
}
if (!empty($counts[$warning])) {
$count2 = phutil_tag(
'span',
array(
'class' => 'phabricator-application-warning-count',
),
$counts[$warning]);
}
+ if (nonempty($count1)) {
+ $numbers = array($count1, ' / ', $count2);
+ } else {
+ $numbers = array($count1, $count2);
+ }
Javelin::initBehavior('phabricator-tooltips');
$content[] = javelin_tag(
'span',
array(
'sigil' => 'has-tooltip',
'meta' => array(
'tip' => implode("\n", $text),
'size' => 240,
),
'class' => 'phabricator-application-launch-attention',
),
- array($count1, $count2));
+ $numbers);
}
$classes = array();
$classes[] = 'phabricator-application-launch-icon';
$styles = array();
if ($application->getIconURI()) {
$styles[] = 'background-image: url('.$application->getIconURI().')';
} else {
$icon = $application->getIconName();
$classes[] = 'sprite-apps-large';
$classes[] = 'apps-'.$icon.'-dark-large';
}
$icon = phutil_tag(
'span',
array(
'class' => implode(' ', $classes),
'style' => nonempty(implode('; ', $styles), null),
),
'');
}
$classes = array();
$classes[] = 'phabricator-application-launch-container';
$classes[] = 'application-tile-full';
$app_button = phutil_tag(
$application ? 'a' : 'div',
array(
'class' => implode(' ', $classes),
'href' => $application ? $application->getBaseURI() : null,
),
array(
$icon,
$content,
));
return array($app_button, $create_button);
}
}
diff --git a/src/infrastructure/celerity/CelerityResourceTransformer.php b/src/infrastructure/celerity/CelerityResourceTransformer.php
index 201ea387e1..327785af39 100644
--- a/src/infrastructure/celerity/CelerityResourceTransformer.php
+++ b/src/infrastructure/celerity/CelerityResourceTransformer.php
@@ -1,294 +1,295 @@
<?php
/**
* @group celerity
*/
final class CelerityResourceTransformer {
private $minify;
private $rawURIMap;
private $celerityMap;
private $translateURICallback;
private $currentPath;
public function setTranslateURICallback($translate_uricallback) {
$this->translateURICallback = $translate_uricallback;
return $this;
}
public function setMinify($minify) {
$this->minify = $minify;
return $this;
}
public function setCelerityMap(CelerityResourceMap $celerity_map) {
$this->celerityMap = $celerity_map;
return $this;
}
public function setRawURIMap(array $raw_urimap) {
$this->rawURIMap = $raw_urimap;
return $this;
}
public function getRawURIMap() {
return $this->rawURIMap;
}
/**
* @phutil-external-symbol function jsShrink
*/
public function transformResource($path, $data) {
$type = self::getResourceType($path);
switch ($type) {
case 'css':
$data = $this->replaceCSSPrintRules($path, $data);
$data = $this->replaceCSSVariables($path, $data);
$data = preg_replace_callback(
'@url\s*\((\s*[\'"]?.*?)\)@s',
nonempty(
$this->translateURICallback,
array($this, 'translateResourceURI')),
$data);
break;
}
if (!$this->minify) {
return $data;
}
// Some resources won't survive minification (like Raphael.js), and are
// marked so as not to be minified.
if (strpos($data, '@'.'do-not-minify') !== false) {
return $data;
}
switch ($type) {
case 'css':
// Remove comments.
$data = preg_replace('@/\*.*?\*/@s', '', $data);
// Remove whitespace around symbols.
$data = preg_replace('@\s*([{}:;,])\s*@', '\1', $data);
// Remove unnecessary semicolons.
$data = preg_replace('@;}@', '}', $data);
// Replace #rrggbb with #rgb when possible.
$data = preg_replace(
'@#([a-f0-9])\1([a-f0-9])\2([a-f0-9])\3@i',
'#\1\2\3',
$data);
$data = trim($data);
break;
case 'js':
// If `jsxmin` is available, use it. jsxmin is the Javelin minifier and
// produces the smallest output, but is complicated to build.
if (Filesystem::binaryExists('jsxmin')) {
$future = new ExecFuture('jsxmin __DEV__:0');
$future->write($data);
list($err, $result) = $future->resolve();
if (!$err) {
$data = $result;
break;
}
}
// If `jsxmin` is not available, use `JsShrink`, which doesn't compress
// quite as well but is always available.
$root = dirname(phutil_get_library_root('phabricator'));
require_once $root.'/externals/JsShrink/jsShrink.php';
$data = jsShrink($data);
break;
}
return $data;
}
public static function getResourceType($path) {
return last(explode('.', $path));
}
public function translateResourceURI(array $matches) {
$uri = trim($matches[1], "'\" \r\t\n");
$tail = '';
// If the resource URI has a query string or anchor, strip it off before
// we go looking for the resource. We'll stitch it back on later. This
// primarily affects FontAwesome.
$parts = preg_split('/(?=[?#])/', $uri, 2);
if (count($parts) == 2) {
$uri = $parts[0];
$tail = $parts[1];
}
$alternatives = array_unique(
array(
$uri,
ltrim($uri, '/'),
));
foreach ($alternatives as $alternative) {
if ($this->rawURIMap !== null) {
if (isset($this->rawURIMap[$alternative])) {
$uri = $this->rawURIMap[$alternative];
break;
}
}
if ($this->celerityMap) {
$resource_uri = $this->celerityMap->getURIForName($alternative);
if ($resource_uri) {
// Check if we can use a data URI for this resource. If not, just
// use a normal Celerity URI.
$data_uri = $this->generateDataURI($alternative);
if ($data_uri) {
$uri = $data_uri;
} else {
$uri = $resource_uri;
}
break;
}
}
}
return 'url('.$uri.$tail.')';
}
private function replaceCSSVariables($path, $data) {
$this->currentPath = $path;
return preg_replace_callback(
'/{\$([^}]+)}/',
array($this, 'replaceCSSVariable'),
$data);
}
private function replaceCSSPrintRules($path, $data) {
$this->currentPath = $path;
return preg_replace_callback(
'/!print\s+(.+?{.+?})/s',
array($this, 'replaceCSSPrintRule'),
$data);
}
public static function getCSSVariableMap() {
return array(
// Base Colors
'red' => '#c0392b',
'lightred' => '#f4dddb',
'orange' => '#e67e22',
'lightorange' => '#f7e2d4',
'yellow' => '#f1c40f',
'lightyellow' => '#fdf5d4',
'green' => '#139543',
'lightgreen' => '#d7eddf',
'blue' => '#2980b9',
'lightblue' => '#daeaf3',
'sky' => '#3498db',
'lightsky' => '#ddeef9',
'indigo' => '#c6539d',
'lightindigo' => '#f5e2ef',
'violet' => '#8e44ad',
'lightviolet' => '#ecdff1',
'charcoal' => '#4b4d51',
'backdrop' => '#c4cde0',
+ 'hovergrey' => '#c5cbcf',
// Base Greys
'lightgreyborder' => '#C7CCD9',
'greyborder' => '#A1A6B0',
'darkgreyborder' => '#676A70',
'lightgreytext' => '#92969D',
'greytext' => '#74777D',
'darkgreytext' => '#4B4D51',
'lightgreybackground' => '#F7F7F7',
'greybackground' => '#EBECEE',
'darkgreybackground' => '#DFE0E2',
// Base Blues
'thinblueborder' => '#DDE8EF',
'lightblueborder' => '#BFCFDA',
'blueborder' => '#8C98B8',
'darkblueborder' => '#626E82',
'lightbluebackground' => '#F8F9FC',
'bluebackground' => '#DAE7FF',
'lightbluetext' => '#8C98B8',
'bluetext' => '#6B748C',
'darkbluetext' => '#464C5C',
);
}
public function replaceCSSVariable($matches) {
static $map;
if (!$map) {
$map = self::getCSSVariableMap();
}
$var_name = $matches[1];
if (empty($map[$var_name])) {
$path = $this->currentPath;
throw new Exception(
"CSS file '{$path}' has unknown variable '{$var_name}'.");
}
return $map[$var_name];
}
public function replaceCSSPrintRule($matches) {
$rule = $matches[1];
$rules = array();
$rules[] = '.printable '.$rule;
$rules[] = "@media print {\n ".str_replace("\n", "\n ", $rule)."\n}\n";
return implode("\n\n", $rules);
}
/**
* Attempt to generate a data URI for a resource. We'll generate a data URI
* if the resource is a valid resource of an appropriate type, and is
* small enough. Otherwise, this method will return `null` and we'll end up
* using a normal URI instead.
*
* @param string Resource name to attempt to generate a data URI for.
* @return string|null Data URI, or null if we declined to generate one.
*/
private function generateDataURI($resource_name) {
$ext = last(explode('.', $resource_name));
switch ($ext) {
case 'png':
$type = 'image/png';
break;
case 'gif':
$type = 'image/gif';
break;
case 'jpg':
$type = 'image/jpeg';
break;
default:
return null;
}
// In IE8, 32KB is the maximum supported URI length.
$maximum_data_size = (1024 * 32);
$data = $this->celerityMap->getResourceDataForName($resource_name);
if (strlen($data) >= $maximum_data_size) {
// If the data is already too large on its own, just bail before
// encoding it.
return null;
}
$uri = 'data:'.$type.';base64,'.base64_encode($data);
if (strlen($uri) >= $maximum_data_size) {
return null;
}
return $uri;
}
}
diff --git a/webroot/rsrc/css/application/base/phabricator-application-launch-view.css b/webroot/rsrc/css/application/base/phabricator-application-launch-view.css
index 28d82b1a86..b2bbcc9db0 100644
--- a/webroot/rsrc/css/application/base/phabricator-application-launch-view.css
+++ b/webroot/rsrc/css/application/base/phabricator-application-launch-view.css
@@ -1,110 +1,91 @@
/**
* @provides phabricator-application-launch-view-css
*/
/* - Application List ----------------------------------------------------------
Spacing container for the list of large application buttons.
*/
.application-tile-group {
overflow: hidden;
}
/* - Application Launch Button -------------------------------------------------
Spacing container for the list of large application buttons.
*/
a.phabricator-application-launch-container,
div.phabricator-application-launch-container {
display: block;
float: left;
overflow: hidden;
position: relative;
text-decoration: none;
-webkit-font-smoothing: antialiased;
width: 100%;
height: 46px;
}
.device-phone div.phabricator-application-launch-container {
display: none;
}
.phabricator-application-launch-icon {
display: block;
position: absolute;
width: 28px;
height: 28px;
top: 8px;
left: 8px;
}
.device-desktop a.phabricator-application-launch-container:hover {
- background-color: #C5C8CF;
+ background-color: {$hovergrey};
text-decoration: none;
}
.phabricator-application-launch-name {
display: block;
font-weight: bold;
color: {$darkbluetext};
font-size: 13px;
margin-top: 7px;
margin-left: 44px;
- text-shadow: 0 1px 2px rgba(255, 255, 255, 0.9);
+ text-shadow: 0 1px 1px rgba(255, 255, 255, 0.9);
}
.phabricator-application-launch-description {
color: {$darkbluetext};
font-size: 11px;
margin-top: 24px;
margin-left: 44px;
- text-shadow: 0 1px 2px rgba(255, 255, 255, 0.9);
+ text-shadow: 0 1px 1px rgba(255, 255, 255, 0.9);
}
.phabricator-application-beta {
position: absolute;
top: 4px;
left: 4px;
color: {$bluetext};
font-size: 11px;
}
.phabricator-application-launch-attention {
position: absolute;
- top: 6px;
- right: 4px;
+ top: 17px;
+ right: 8px;
color: {$darkbluetext};
font-weight: bold;
- font-size: 11px;
+ font-size: 12px;
}
.phabricator-application-attention-count {
- background-color: rgba(0,0,0,.1);
- color: {$orange};
- border-radius: 2px;
- padding: 1px 6px 2px;
-}
-
-.phabricator-application-warning-count {
- background-color: rgba(0,0,0,.1);
- border-radius: 2px;
- padding: 1px 6px 2px;
-}
-
-.phabricator-application-attention-count + .phabricator-application-warning-count {
- margin-left: 2px;
- top: 8px;
-}
-
-.application-tile-full .phabricator-application-launch-attention {
- top: 17px;
- right: 8px;
+ color: {$sky};
}
diff --git a/webroot/rsrc/css/application/conpherence/menu.css b/webroot/rsrc/css/application/conpherence/menu.css
index 9a3b858e45..3cc6c3e4ff 100644
--- a/webroot/rsrc/css/application/conpherence/menu.css
+++ b/webroot/rsrc/css/application/conpherence/menu.css
@@ -1,185 +1,181 @@
/**
* @provides conpherence-menu-css
*/
.conpherence-layout {
position: fixed;
bottom: 0;
left: 0;
right: 0;
top: 44px;
background: #fff;
}
.conpherence-layout .conpherence-no-threads {
text-align: center;
position: fixed;
- left: 280px;
+ left: 240px;
right: 241px;
top: 76px;
bottom: 0px;
min-width: 300px;
width: auto;
}
.device .conpherence-layout .conpherence-no-threads {
left: 0;
right: 0;
width: 100%;
}
.conpherence-layout .conpherence-no-threads .text {
margin: 0px 0px 16px 0px;
}
.conpherence-menu-pane {
width: 100%;
position: absolute;
overflow-x: hidden;
overflow-y: auto;
top: 0;
bottom: 0;
}
.device-desktop .conpherence-layout .conpherence-menu-pane,
.device-desktop .conpherence-layout .phabricator-nav-column-background {
- width: 280px;
+ width: 239px;
}
.device .conpherence-menu-pane {
top: 41px;
}
.device .conpherence-role-list .conpherence-menu-pane {
top: 0px;
}
.device-phone .conpherence-menu-pane {
-webkit-overflow-scrolling: touch;
}
.conpherence-layout .phabricator-nav-column-background {
display: block;
width: 100%;
}
.device .phabricator-nav-column-background {
top: 44px;
}
.device .conpherence-role-thread .conpherence-menu-pane,
.device .conpherence-role-thread .phabricator-nav-column-background {
display: none;
}
.device-desktop .conpherence-content-pane {
- margin-left: 280px;
+ margin-left: 240px;
}
.conpherence-content-pane {
display: none;
margin-left: 0px;
position: relative;
}
.device-desktop .conpherence-content-pane,
.device .conpherence-role-thread .conpherence-content-pane {
display: block;
}
.conpherence-menu .conpherence-menu-item-view {
display: block;
- height: 55px;
+ height: 46px;
width: 100%;
overflow: hidden;
position: relative;
text-decoration: none;
- border-top: solid 1px #3B3D3E;
- border-bottom: solid 1px #1C1F21;
- border-right: 0;
- border-left: 2px solid transparent;
+ border-left: 4px solid transparent;
}
.conpherence-menu .conpherence-selected {
- background: rgba(0, 0, 0, .6);
- border-left: 2px solid #66CCFF;
+ background: {$hovergrey};
+ border-left: 4px solid {$blue};
}
.conpherence-menu .loading {
font-style: italic;
}
.device-desktop .conpherence-menu .conpherence-menu-item-view:hover {
- background-image: url('/rsrc/image/texture/dark-menu-hover.png');
+ background-color: {$hovergrey};
}
.conpherence-menu .conpherence-menu-item-view .conpherence-menu-item-image {
top: 6px;
- left: 6px;
+ left: 8px;
display: block;
position: absolute;
- width: 35px;
- height: 35px;
- background-size: 35px;
- border: 4px solid rgb(29, 32, 34);
- border-radius: 3px;
+ width: 30px;
+ height: 30px;
+ background-size: 30px;
+ border: 2px solid #fff;
+ border-radius: 2px;
}
.conpherence-menu .conpherence-menu-item-view .conpherence-menu-item-title {
display: block;
- margin-top: 12px;
- margin-left: 58px;
+ margin-top: 8px;
+ margin-left: 50px;
text-align: left;
font-weight: bold;
font-size: 13px;
- color: #ffffff;
- text-shadow: 0px 1px 1px #000000;
+ color: {$darkbluetext};
+ text-shadow: 0px 1px 1px #fff;
overflow: hidden;
- width: 140px;
+ width: 180px;
text-overflow: ellipsis;
}
.conpherence-menu .conpherence-menu-item-view .conpherence-menu-item-subtitle {
display: block;
- color: #a1a5a9;
+ color: {$bluetext};
font-size: 11px;
margin-top: 2px;
- margin-left: 58px;
- font-style: italic;
+ margin-left: 50px;
}
.conpherence-menu .conpherence-menu-item-view
.conpherence-menu-item-unread-count {
position: absolute;
left: 35px;
top: 3px;
background: {$red};
border-radius: 10px;
color: #FFF;
font-weight: bold;
padding: 1px 5px 2px;
border: 1px solid #333;
font-size: 11px;
}
.conpherence-menu .hide-unread-count .conpherence-menu-item-unread-count,
.conpherence-menu .conpherence-selected .conpherence-menu-item-unread-count {
display: none;
}
.conpherence-menu .conpherence-menu-item-view .conpherence-menu-item-date {
position: absolute;
top: 15px;
right: 16px;
- color: #a1a5a9;
+ color: {$bluetext};
font-size: 11px;
}
.no-conpherences-menu-item {
color: #a1a5a9;
border-top: solid 1px #3B3D3E;
padding: 20px 0;
margin: 0px auto;
width: 280px;
text-align: center;
}
diff --git a/webroot/rsrc/css/application/conpherence/message-pane.css b/webroot/rsrc/css/application/conpherence/message-pane.css
index bd4e5323de..a42d8ef4c2 100644
--- a/webroot/rsrc/css/application/conpherence/message-pane.css
+++ b/webroot/rsrc/css/application/conpherence/message-pane.css
@@ -1,239 +1,238 @@
/**
* @provides conpherence-message-pane-css
*/
.conpherence-message-pane,
.loading .messages-loading-mask,
.loading .messages-loading-icon,
.conpherence-layout .conpherence-no-threads {
position: fixed;
- left: 280px;
+ left: 240px;
right: 241px;
top: 76px;
bottom: 0px;
min-width: 300px;
width: auto;
}
.device .conpherence-message-pane,
.device .loading .messages-loading-mask,
.device .loading .messages-loading-icon,
.device .conpherence-layout .conpherence-no-threads {
left: 0;
right: 0;
width: 100%;
}
.conpherence-layout .conpherence-no-threads {
text-align: center;
}
.conpherence-layout .conpherence-no-threads .text {
margin: 16px 0px 16px 0px;
}
.conpherence-show-older-messages {
display: block;
background: #e0e3ec;
margin: 10px;
text-align: center;
padding: 10px;
color: {$bluetext};
}
.conpherence-show-older-messages-loading {
font-style: italic;
}
.conpherence-message-pane .conpherence-messages {
position: fixed;
- left: 280px;
+ left: 240px;
right: 241px;
top: 76px;
bottom: 185px;
overflow-y: auto;
- box-shadow: inset 1px 4px 5px rgba(0,0,0,0.1);
-webkit-overflow-scrolling: touch;
}
.device .conpherence-message-pane .conpherence-messages {
left: 0;
right: 0;
bottom: 3em;
width: 100%;
box-shadow: none;
}
.conpherence-message-pane .messages-loading-mask {
opacity: .6;
background: #fff;
display: none;
}
.loading .messages-loading-mask {
display: block;
}
.conpherence-message-pane .phui-form-view {
border-width: 0;
background-color: {$lightgreybackground};
height: 185px;
padding: 0;
position: fixed;
bottom: 0;
- left: 280px;
+ left: 240px;
right: 241px;
}
/**
* When entering "Fullscreen Mode" in the remarkup control, we need to drop
* all of the "position: fixed" on parent elements or Chrome doesn't put the
* textarea on top.
*/
.remarkup-fullscreen-mode .conpherence-message-pane,
.remarkup-fullscreen-mode .conpherence-message-pane .conpherence-messages,
.remarkup-fullscreen-mode .conpherence-message-pane .phui-form-view,
.remarkup-fullscreen-mode .conpherence-layout {
position: static;
}
.device .conpherence-message-pane .remarkup-assist-bar {
height: 0px;
}
.device .conpherence-message-pane .phui-form-view {
left: 0;
right: 0;
background-color: #d8dce2;
height: 38px;
width: 100%;
}
.conpherence-layout .conpherence-message-pane .phui-form-view
div.aphront-form-input {
margin: 0;
width: 100%;
}
.conpherence-message-pane .phabricator-transaction-view {
margin: 5px 15px;
background-size: 35px;
min-height: auto;
}
.device-phone .conpherence-message-pane .phabricator-transaction-view {
margin: 0 10px 0 0;
}
.conpherence-message-pane .phabricator-transaction-detail {
border-width: 0;
margin-left: 45px;
}
.conpherence-message-pane .date-marker {
border-top: 1px solid #d7d7d7;
margin: 5px 15px;
min-height: auto;
}
.device-phone .conpherence-message-pane .date-marker {
margin: 5px 0;
}
.conpherence-message-pane .date-marker .date {
position: relative;
top: -8px;
left: 40px;
background-color: #FFF;
color: #bfbfbf;
font-size: 11px;
padding: 0px 5px;
}
.device-phone .conpherence-message-pane .phabricator-transaction-detail {
min-height: auto;
}
.conpherence-message-pane .conpherence-edited {
color: {$lightgreytext};
margin: 0;
}
.device-phone .conpherence-message-pane .conpherence-edited {
color: {$lightgreytext};
margin: 0 10px;
}
.conpherence-message-pane .conpherence-edited .phabricator-transaction-content {
padding: 0 0 5px 45px;
font-style: italic;
}
.device-phone .conpherence-message-pane .conpherence-edited .phabricator-transaction-content {
padding: 0 0 5px 35px;
}
.conpherence-message-pane .phabricator-transaction-info,
.conpherence-message-pane .phabricator-content-source-view {
color: #b7b7b7;
line-height: 16px;
}
.conpherence-message-pane .phabricator-transaction-header,
.conpherence-message-pane .phabricator-transaction-info,
.conpherence-message-pane .phabricator-transaction-content {
background: none;
padding: 0;
}
.conpherence-message-pane .phabricator-transaction-content {
padding: 2px 0 8px 0;
}
.conpherence-message-pane .aphront-form-control {
padding: 0;
}
.conpherence-message-pane .aphront-form-control-submit {
margin: 0 8px 0 0;
}
.conpherence-message-pane .remarkup-assist-bar {
border-width: 1px 0 0;
- border-color: #CCC;
+ border-color: {$hovergrey};
border-bottom: transparent;
}
.conpherence-message-pane .remarkup-assist-textarea {
height: 124px;
padding: 6px;
border-width: 1px 0;
border-color: {$lightblueborder};
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
resize: none;
}
.device .conpherence-message-pane .remarkup-assist-textarea {
margin: 4px 8px;
padding: 6px 6px;
width: 97%;
height: 28px;
resize: none;
}
.conpherence-message-pane .remarkup-assist-textarea:focus {
outline: none;
}
.device .conpherence-message-pane .aphront-form-control-textarea {
float: left;
height: 2em;
}
.device-tablet .conpherence-message-pane .aphront-form-control-textarea {
width: 76%;
}
.device-phone .conpherence-message-pane .aphront-form-control-textarea {
width: 60%;
}
.device .conpherence-message-pane .aphront-form-control-submit button {
margin: 7px 0 0 0;
}
diff --git a/webroot/rsrc/css/layout/phabricator-crumbs-view.css b/webroot/rsrc/css/layout/phabricator-crumbs-view.css
index 4b8a6d7faf..718cd14831 100644
--- a/webroot/rsrc/css/layout/phabricator-crumbs-view.css
+++ b/webroot/rsrc/css/layout/phabricator-crumbs-view.css
@@ -1,112 +1,118 @@
/**
* @provides phabricator-crumbs-view-css
*/
.phabricator-crumbs-view {
background-color: #ebecee;
background-image: none !important;
height: 31px;
overflow: hidden;
vertical-align: top;
border-bottom: 1px solid rgba(205, 207, 211, 1);
/* TODO: Position this over the slider for Differential's file tree view.
Remove this once that gets sorted out. */
position: relative;
+ -webkit-font-smoothing: antialiased;
}
.phabricator-crumbs-view,
.phabricator-crumbs-view a.phabricator-crumb-view,
.phabricator-crumbs-view a.phabricator-crumbs-action {
color: {$darkgreytext};
font-weight: bold;
text-decoration: none;
- text-shadow: 0 1px 2px rgba(255, 255, 255, 0.9);
+ text-shadow: 0 1px 1px rgba(255, 255, 255, 0.9);
}
.phabricator-crumbs-view a.phabricator-crumbs-action-disabled {
color: {$lightgreytext};
}
.phabricator-crumbs-action.phabricator-crumbs-action-menu {
display: none;
}
.device .phabricator-crumbs-action.phabricator-crumbs-action-menu {
display: inline-block;
}
.device .phabricator-crumbs-action-menu-open {
background: rgba(0,0,0,.1);
}
.phabricator-crumbs-view + .phui-header-shell {
border-top: none;
}
-.phabricator-crumbs-view a:hover {
+.device-desktop .phabricator-crumbs-view a:hover {
text-decoration: underline;
}
.phabricator-crumb-view {
display: inline-block;
height: 31px;
line-height: 31px;
}
.device-phone .phabricator-crumb-view {
display: none;
}
.device-phone .phabricator-crumb-view.phabricator-last-crumb,
.device-phone .phabricator-crumb-view.phabricator-crumb-has-icon {
display: inline-block;
}
.phabricator-crumb-icon {
display: inline-block;
width: 28px;
height: 28px;
margin: 2px 2px 0 13px;
vertical-align: top;
}
.device-phone .phabricator-crumb-icon {
margin-left: 7px;
}
.phabricator-crumbs-actions {
float: right;
white-space: nowrap;
}
.phabricator-crumbs-action {
display: inline-block;
height: 17px;
- padding: 8px 14px 8px 24px;
+ padding: 8px 12px;
position: relative;
}
.device-phone a.phabricator-crumbs-action {
padding: 7px;
- border-left: 1px solid #ccc;
+ border-left: 1px solid {$hovergrey};
+}
+
+.device-desktop a.phabricator-crumbs-action:hover {
+ background: rgba(205, 207, 211, .5);
+ text-decoration: none;
}
.device-phone .phabricator-crumbs-action-name {
display: none;
}
a.phabricator-crumbs-action .phui-icon-view {
margin-right: 5px;
}
.device-phone a.phabricator-crumbs-action .phui-icon-view {
margin-left: 5px;
}
.phabricator-crumb-divider {
display: inline-block;
width: 9px;
height: 31px;
vertical-align: top;
margin: 0 9px;
}
diff --git a/webroot/rsrc/css/layout/phabricator-side-menu-view.css b/webroot/rsrc/css/layout/phabricator-side-menu-view.css
index d369d7abde..097432a806 100644
--- a/webroot/rsrc/css/layout/phabricator-side-menu-view.css
+++ b/webroot/rsrc/css/layout/phabricator-side-menu-view.css
@@ -1,42 +1,42 @@
/**
* @provides phabricator-side-menu-view-css
*/
.phabricator-side-menu .phui-list-item-view {
display: block;
white-space: nowrap;
text-decoration: none;
font-size: 13px;
-webkit-font-smoothing: antialiased;
}
.phabricator-side-menu .phui-list-item-href {
display: block;
padding: 6px 8px 6px 24px;
color: {$darkbluetext};
}
.phabricator-side-menu .phui-list-item-selected,
.device-desktop .phui-side-menu
.phui-list-item-selected.phui-list-item-href:hover {
- background-color: #C5C8CF;
+ background-color: {$hovergrey};
border-left: 4px solid {$blue};
}
.phabricator-side-menu .phui-list-item-selected .phui-list-item-href {
padding-left: 20px;
}
.phabricator-side-menu .phui-list-item-type-label {
padding: 6px 8px 4px 12px;
color: {$darkbluetext};
text-transform: uppercase;
font-size: 12px;
font-weight: bold;
border-style: solid;
}
.device-desktop .phabricator-side-menu a.phui-list-item-href:hover {
text-decoration: none;
- background-color: #C5C8CF;
+ background-color: {$hovergrey};
}

File Metadata

Mime Type
text/x-diff
Expires
Sun, Jul 27, 6:30 PM (1 w, 9 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
186065
Default Alt Text
(33 KB)

Event Timeline