Skip to content

Commit 8cff6ea

Browse files
author
epriestley
committedDec 7, 2012
Add eye icon to left menu button
Summary: Do we have an icon with 2x for the right menu? Test Plan: {F26590} Reviewers: chad Reviewed By: chad CC: aran Maniphest Tasks: T1960 Differential Revision: https://secure.phabricator.com/D4101
1 parent 1c9d1d6 commit 8cff6ea

File tree

15 files changed

+134
-23
lines changed

15 files changed

+134
-23
lines changed
 

‎resources/sprite/manifest/gradient.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
},
2929
"gradient-dark-menu-label" : {
3030
"name" : "gradient-dark-menu-label",
31-
"rule" : ".gradient-dark-menu-label",
31+
"rule" : ".gradient-dark-menu-label, .phabricator-dark-menu .phabricator-menu-item-type-label",
3232
"hash" : "89a908596142d38fbe61a706694cd321"
3333
},
3434
"gradient-green-dark" : {
@@ -55,6 +55,6 @@
5555
"scales" : [
5656
1
5757
],
58-
"header" : "\/**\n * @provides sprite-gradient-css\n * @generated\n *\/\n\n.sprite-gradient, button, a.button, a.button:visited, input.inputsubmit {\n background-image: url(\/rsrc\/image\/sprite-gradient.png);\n background-repeat: repeat-x;\n}\n\n@media\nonly screen and (min-device-pixel-ratio: 1.5),\nonly screen and (-webkit-min-device-pixel-ratio: 1.5) {\n .sprite-gradient, button, a.button, a.button:visited, input.inputsubmit {\n background-image: url(\/rsrc\/image\/sprite-gradient-X2.png);\n background-size: {X}px {Y}px;\n }\n}",
58+
"header" : "\/**\n * @provides sprite-gradient-css\n * @generated\n *\/\n\n.sprite-gradient, button, a.button, a.button:visited, input.inputsubmit, .phabricator-dark-menu .phabricator-menu-item-type-label {\n background-image: url(\/rsrc\/image\/sprite-gradient.png);\n background-repeat: repeat-x;\n}\n\n@media\nonly screen and (min-device-pixel-ratio: 1.5),\nonly screen and (-webkit-min-device-pixel-ratio: 1.5) {\n .sprite-gradient, button, a.button, a.button:visited, input.inputsubmit, .phabricator-dark-menu .phabricator-menu-item-type-label {\n background-image: url(\/rsrc\/image\/sprite-gradient-X2.png);\n background-size: {X}px {Y}px;\n }\n}",
5959
"type" : "repeat-x"
6060
}

‎resources/sprite/manifest/menu.json

+10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
{
22
"version" : 1,
33
"sprites" : {
4+
"app" : {
5+
"name" : "app",
6+
"rule" : ".menu-icon-app",
7+
"hash" : "a389f99d9c00f688e625da71579ee90a"
8+
},
49
"arrow-right" : {
510
"name" : "arrow-right",
611
"rule" : ".phabricator-crumb-divider",
@@ -11,6 +16,11 @@
1116
"rule" : ".phabricator-main-menu-alert-bubble.alert-unread",
1217
"hash" : "1145ac8a137a2a22517c1945fe22c517"
1318
},
19+
"eye" : {
20+
"name" : "eye",
21+
"rule" : ".menu-icon-eye",
22+
"hash" : "d598b1acb1933a86eaed3dea3347f7b0"
23+
},
1424
"round_bubble" : {
1525
"name" : "round_bubble",
1626
"rule" : ".phabricator-main-menu-alert-bubble",

‎resources/sprite/menu_1x/app.png

989 Bytes
Loading

‎resources/sprite/menu_1x/eye.png

354 Bytes
Loading

‎resources/sprite/menu_2x/app.png

1 KB
Loading

‎resources/sprite/menu_2x/eye.png

509 Bytes
Loading

‎scripts/celerity/generate_sprites.php

+18-1
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,16 @@ function gly($y) {
204204
'gradient' => $generator->buildGradientSheet(),
205205
);
206206

207+
list($err) = exec_manual('optipng');
208+
if ($err) {
209+
$have_optipng = false;
210+
echo phutil_console_format(
211+
"<bg:red> WARNING </bg> `optipng` not found in PATH.\n".
212+
"Sprites will not be optimized! Install `optipng`!\n");
213+
} else {
214+
$have_optipng = true;
215+
}
216+
207217
foreach ($sheets as $name => $sheet) {
208218
$manifest_path = $root.'/resources/sprite/manifest/'.$name.'.json';
209219
if (!$args->getArg('force')) {
@@ -226,7 +236,14 @@ function gly($y) {
226236
} else {
227237
$sheet_name = "sprite-{$name}-X{$scale}.png";
228238
}
229-
$sheet->generateImage("{$webroot}/image/{$sheet_name}", $scale);
239+
240+
$full_path = "{$webroot}/image/{$sheet_name}";
241+
$sheet->generateImage($full_path, $scale);
242+
243+
if ($have_optipng) {
244+
echo "Optimizing...\n";
245+
phutil_passthru('optipng -o7 -clobber %s', $full_path);
246+
}
230247
}
231248
}
232249

‎src/infrastructure/celerity/CeleritySpriteGenerator.php

+14-1
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,16 @@ public function buildMenuSheet() {
113113
'y' => 31,
114114
'css' => '.phabricator-crumb-divider',
115115
),
116+
'eye' => array(
117+
'x' => 24,
118+
'y' => 20,
119+
'css' => '.menu-icon-eye',
120+
),
121+
'app' => array(
122+
'x' => 24,
123+
'y' => 20,
124+
'css' => '.menu-icon-app',
125+
),
116126
);
117127

118128
$scales = array(
@@ -177,6 +187,8 @@ public function buildGradientSheet() {
177187
'button.grey_active, a.dropdown-open',
178188
'green-dark' => ', button.green, a.green, a.green:visited',
179189
'green-light' => ', button.green:active, a.green:active',
190+
'dark-menu-label'
191+
=> ', .phabricator-dark-menu .phabricator-menu-item-type-label',
180192
);
181193

182194
$sprites = array();
@@ -195,7 +207,8 @@ public function buildGradientSheet() {
195207
$sheet = $this->buildSheet(
196208
'gradient',
197209
PhutilSpriteSheet::TYPE_REPEAT_X,
198-
', button, a.button, a.button:visited, input.inputsubmit');
210+
', button, a.button, a.button:visited, input.inputsubmit, '.
211+
'.phabricator-dark-menu .phabricator-menu-item-type-label');
199212
foreach ($sprites as $sprite) {
200213
$sheet->addSprite($sprite);
201214
}

‎src/view/page/menu/PhabricatorMainMenuView.php

+32-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ final class PhabricatorMainMenuView extends AphrontView {
77
private $controller;
88
private $applicationMenu;
99

10-
1110
public function setApplicationMenu(PhabricatorMenuView $application_menu) {
1211
$this->applicationMenu = $application_menu;
1312
return $this;
@@ -110,7 +109,9 @@ public function render() {
110109
self::renderSingleView(
111110
array(
112111
$this->renderPhabricatorMenuButton($header_id),
113-
$this->renderApplicationMenuButton($header_id),
112+
$application_menu
113+
? $this->renderApplicationMenuButton($header_id)
114+
: null,
114115
$this->renderPhabricatorLogo(),
115116
$alerts,
116117
$phabricator_menu,
@@ -164,7 +165,12 @@ private function renderPhabricatorMenuButton($header_id) {
164165
),
165166
),
166167
),
167-
'');
168+
phutil_render_tag(
169+
'span',
170+
array(
171+
'class' => 'phabricator-menu-button-icon sprite-menu menu-icon-eye',
172+
),
173+
''));
168174
}
169175

170176
public function renderApplicationMenuButton($header_id) {
@@ -180,7 +186,12 @@ public function renderApplicationMenuButton($header_id) {
180186
),
181187
),
182188
),
183-
'');
189+
phutil_render_tag(
190+
'span',
191+
array(
192+
'class' => 'phabricator-menu-button-icon sprite-menu menu-icon-app',
193+
),
194+
''));
184195
}
185196

186197
private function renderPhabricatorMenu() {
@@ -221,6 +232,23 @@ private function renderPhabricatorMenu() {
221232
$search = $this->renderSearch();
222233
$view->appendChild($search);
223234

235+
$view
236+
->newLabel(pht('Home'))
237+
->addClass('phabricator-core-item-device');
238+
$view->addMenuItem(
239+
id(new PhabricatorMenuItemView())
240+
->addClass('phabricator-core-item-device')
241+
->setName(pht('Phabricator Home'))
242+
->setHref('/'));
243+
if ($controller->getCurrentApplication()) {
244+
$application = $controller->getCurrentApplication();
245+
$view->addMenuItem(
246+
id(new PhabricatorMenuItemView())
247+
->addClass('phabricator-core-item-device')
248+
->setName(pht('%s Home', $application->getName()))
249+
->setHref($controller->getApplicationURI()));
250+
}
251+
224252
if ($core) {
225253
$view->addMenuItem(
226254
id(new PhabricatorMenuItemView())

‎webroot/rsrc/css/application/base/main-menu-view.css

+46-11
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/**
1+
<<</**
22
* @provides phabricator-main-menu-view
33
*/
44

@@ -57,15 +57,22 @@
5757
display: block;
5858
width: 40px;
5959
height: 28px;
60-
text-align: center;
61-
background: #22292d url(/rsrc/image/lines.png) no-repeat 8px 6px;
60+
background-color: #22292d;
6261
border-radius: 6px;
6362

6463
border: 1px solid #111111;
6564
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1),
6665
0 1px 0 rgba(255, 255, 255, 0.075);
6766
}
6867

68+
.phabricator-menu-button-icon {
69+
position: absolute;
70+
width: 24px;
71+
height: 20px;
72+
top: 5px;
73+
left: 8px;
74+
}
75+
6976
.phabricator-expand-core-menu {
7077
left: 10px;
7178
}
@@ -224,6 +231,20 @@ a:hover .phabricator-main-search-typeahead-result .result-type {
224231
225232
*/
226233

234+
.device-desktop .phabricator-main-menu-alerts {
235+
display: inline-block;
236+
}
237+
238+
.device-tablet .phabricator-main-menu-alerts,
239+
.device-phone .phabricator-main-menu-alerts {
240+
position: absolute;
241+
left: 60px;
242+
right: 60px;
243+
top: 10px;
244+
height: 34px;
245+
text-align: center;
246+
}
247+
227248
.phabricator-main-menu-alert-bubble {
228249
display: inline-block;
229250
position: relative;
@@ -240,8 +261,8 @@ a:hover .phabricator-main-search-typeahead-result .result-type {
240261
position: absolute;
241262
width: 14px;
242263
height: 14px;
243-
top: 4px;
244-
left: 5px;
264+
top: 5px;
265+
left: 6px;
245266
}
246267

247268
.phabricator-main-menu-alert-count {
@@ -286,24 +307,38 @@ a:hover .phabricator-main-search-typeahead-result .result-type {
286307
.device-tablet .phabricator-dark-menu .phabricator-menu-item-view {
287308
display: block;
288309
padding: 4px 0;
289-
border-width: 1px 0;
290-
border-style: solid;
291-
border-color: #35383b transparent #282b2d;
292310
}
293311

294312
.device-phone .phabricator-dark-menu .phabricator-menu-item-type-label,
295313
.device-tablet .phabricator-dark-menu .phabricator-menu-item-type-label {
296314
text-transform: uppercase;
297315
font-size: 11px;
298-
background: #151719;
299-
padding-left: 12px;
316+
background-color: #151719;
317+
padding: 0 0 0 12px;
318+
height: 24px;
300319
}
301320

302321
.device-phone .phabricator-dark-menu .phabricator-menu-item-type-spacer,
303322
.device-tablet .phabricator-dark-menu .phabricator-menu-item-type-spacer {
304323
display: none;
305324
}
306325

326+
.device-phone .phabricator-dark-menu .phabricator-menu-item-type-label
327+
.phabricator-menu-item-name,
328+
.device-tablet .phabricator-dark-menu .phabricator-menu-item-type-label
329+
.phabricator-menu-item-name {
330+
display: block;
331+
padding: 6px 0 0;
332+
}
333+
334+
.device-phone .phabricator-dark-menu .phabricator-menu-item-type-link,
335+
.device-tablet .phabricator-dark-menu .phabricator-menu-item-type-link {
336+
border-width: 1px 0;
337+
border-style: solid;
338+
border-color: #34373b transparent #282c2d;
339+
background-image: url(/rsrc/image/texture/dark-menu.png);
340+
}
341+
307342

308343
/* - Core Menu -----------------------------------------------------------------
309344
@@ -343,7 +378,7 @@ a:hover .phabricator-main-search-typeahead-result .result-type {
343378
.device-tablet .phabricator-core-menu
344379
.phabricator-menu-item-type-link .phabricator-menu-item-name {
345380
margin-left: 40px;
346-
line-height: 26px;
381+
line-height: 28px;
347382
}
348383

349384
.device-desktop .phabricator-core-menu {

‎webroot/rsrc/css/sprite-gradient.css

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
* @generated
44
*/
55

6-
.sprite-gradient, button, a.button, a.button:visited, input.inputsubmit {
6+
.sprite-gradient, button, a.button, a.button:visited, input.inputsubmit, .phabricator-dark-menu .phabricator-menu-item-type-label {
77
background-image: url(/rsrc/image/sprite-gradient.png);
88
background-repeat: repeat-x;
99
}
1010

1111
@media
1212
only screen and (min-device-pixel-ratio: 1.5),
1313
only screen and (-webkit-min-device-pixel-ratio: 1.5) {
14-
.sprite-gradient, button, a.button, a.button:visited, input.inputsubmit {
14+
.sprite-gradient, button, a.button, a.button:visited, input.inputsubmit, .phabricator-dark-menu .phabricator-menu-item-type-label {
1515
background-image: url(/rsrc/image/sprite-gradient-X2.png);
1616
background-size: 4px 274px;
1717
}
@@ -37,7 +37,7 @@ only screen and (-webkit-min-device-pixel-ratio: 1.5) {
3737
background-position: 0px -242px;
3838
}
3939

40-
.gradient-dark-menu-label {
40+
.gradient-dark-menu-label, .phabricator-dark-menu .phabricator-menu-item-type-label {
4141
background-position: 0px 0px;
4242
}
4343

‎webroot/rsrc/css/sprite-menu.css

+9-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ only screen and (min-device-pixel-ratio: 1.5),
1313
only screen and (-webkit-min-device-pixel-ratio: 1.5) {
1414
.sprite-menu {
1515
background-image: url(/rsrc/image/sprite-menu-X2.png);
16-
background-size: 47px 101px;
16+
background-size: 72px 101px;
1717
}
1818
}
1919

@@ -40,3 +40,11 @@ only screen and (-webkit-min-device-pixel-ratio: 1.5) {
4040
.phabricator-crumb-divider {
4141
background-position: 0px -69px;
4242
}
43+
44+
.menu-icon-eye {
45+
background-position: -47px -15px;
46+
}
47+
48+
.menu-icon-app {
49+
background-position: -42px -42px;
50+
}

‎webroot/rsrc/image/sprite-menu-X2.png

493 Bytes
Loading

‎webroot/rsrc/image/sprite-menu.png

304 Bytes
Loading
4.26 KB
Loading

0 commit comments

Comments
 (0)
Failed to load comments.