Login icons
Summary: Took a stab at some login icons for buttons. Test Plan: photoshop Reviewers: epriestley, btrahan Reviewed By: epriestley CC: aran, Korvin Differential Revision: https://secure.phabricator.com/D6174
BIN
resources/sprite/login_1x/Amazon.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
resources/sprite/login_1x/Asana.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
resources/sprite/login_1x/Disqus.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
resources/sprite/login_1x/Dropbox.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
resources/sprite/login_1x/Facebook.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
resources/sprite/login_1x/Generic.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
resources/sprite/login_1x/Github.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
resources/sprite/login_1x/Google.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
resources/sprite/login_1x/HTTP.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
resources/sprite/login_1x/LDAP.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
resources/sprite/login_1x/Linkedin.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
resources/sprite/login_1x/Openid.png
Normal file
After Width: | Height: | Size: 2 KiB |
BIN
resources/sprite/login_1x/Phabricator.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
resources/sprite/login_1x/Twitter.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
resources/sprite/login_1x/Yahoo.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
resources/sprite/login_2x/Amazon.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
resources/sprite/login_2x/Asana.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
BIN
resources/sprite/login_2x/Disqus.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
resources/sprite/login_2x/Dropbox.png
Normal file
After Width: | Height: | Size: 9.3 KiB |
BIN
resources/sprite/login_2x/Facebook.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
resources/sprite/login_2x/Generic.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
resources/sprite/login_2x/Github.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
resources/sprite/login_2x/Google.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
resources/sprite/login_2x/HTTP.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
resources/sprite/login_2x/LDAP.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
resources/sprite/login_2x/Linkedin.png
Normal file
After Width: | Height: | Size: 8 KiB |
BIN
resources/sprite/login_2x/Openid.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
resources/sprite/login_2x/Phabricator.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
resources/sprite/login_2x/Twitter.png
Normal file
After Width: | Height: | Size: 7.9 KiB |
BIN
resources/sprite/login_2x/Yahoo.png
Normal file
After Width: | Height: | Size: 8 KiB |
86
resources/sprite/manifest/login.json
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
{
|
||||||
|
"version" : 1,
|
||||||
|
"sprites" : {
|
||||||
|
"login_Amazon" : {
|
||||||
|
"name" : "login_Amazon",
|
||||||
|
"rule" : ".login_Amazon",
|
||||||
|
"hash" : "5961e41c525ef46c88558616fcf23272"
|
||||||
|
},
|
||||||
|
"login_Asana" : {
|
||||||
|
"name" : "login_Asana",
|
||||||
|
"rule" : ".login_Asana",
|
||||||
|
"hash" : "30df492eab339fa64c9ae9b21bb46a18"
|
||||||
|
},
|
||||||
|
"login_Disqus" : {
|
||||||
|
"name" : "login_Disqus",
|
||||||
|
"rule" : ".login_Disqus",
|
||||||
|
"hash" : "5f46ac50a5d9d13245971c298f49e13b"
|
||||||
|
},
|
||||||
|
"login_Dropbox" : {
|
||||||
|
"name" : "login_Dropbox",
|
||||||
|
"rule" : ".login_Dropbox",
|
||||||
|
"hash" : "572ab36301762414365b68c0bc185ac5"
|
||||||
|
},
|
||||||
|
"login_Facebook" : {
|
||||||
|
"name" : "login_Facebook",
|
||||||
|
"rule" : ".login_Facebook",
|
||||||
|
"hash" : "2b1511f5b4d12076dd9086d1bb187b28"
|
||||||
|
},
|
||||||
|
"login_Generic" : {
|
||||||
|
"name" : "login_Generic",
|
||||||
|
"rule" : ".login_Generic",
|
||||||
|
"hash" : "60d75c38668ffd6eea91a40e66186601"
|
||||||
|
},
|
||||||
|
"login_Github" : {
|
||||||
|
"name" : "login_Github",
|
||||||
|
"rule" : ".login_Github",
|
||||||
|
"hash" : "633696beb8c1eaac642ce4955be917d8"
|
||||||
|
},
|
||||||
|
"login_Google" : {
|
||||||
|
"name" : "login_Google",
|
||||||
|
"rule" : ".login_Google",
|
||||||
|
"hash" : "b7d3962a31df1e6c13e0a3c97c08f11d"
|
||||||
|
},
|
||||||
|
"login_HTTP" : {
|
||||||
|
"name" : "login_HTTP",
|
||||||
|
"rule" : ".login_HTTP",
|
||||||
|
"hash" : "6fcf0f666c0f6f1e1cd8f397b41ed176"
|
||||||
|
},
|
||||||
|
"login_LDAP" : {
|
||||||
|
"name" : "login_LDAP",
|
||||||
|
"rule" : ".login_LDAP",
|
||||||
|
"hash" : "5b4e01ddf35cd40c8f061c90abc89b6c"
|
||||||
|
},
|
||||||
|
"login_Linkedin" : {
|
||||||
|
"name" : "login_Linkedin",
|
||||||
|
"rule" : ".login_Linkedin",
|
||||||
|
"hash" : "0dd89825046fa4fd0fe402aa2cd55fd1"
|
||||||
|
},
|
||||||
|
"login_Openid" : {
|
||||||
|
"name" : "login_Openid",
|
||||||
|
"rule" : ".login_Openid",
|
||||||
|
"hash" : "9267ffbb8d4e6dee409c4d8fa2d50c0a"
|
||||||
|
},
|
||||||
|
"login_Phabricator" : {
|
||||||
|
"name" : "login_Phabricator",
|
||||||
|
"rule" : ".login_Phabricator",
|
||||||
|
"hash" : "fad258eb347a1ccf5800b0ee2d8e6e49"
|
||||||
|
},
|
||||||
|
"login_Twitter" : {
|
||||||
|
"name" : "login_Twitter",
|
||||||
|
"rule" : ".login_Twitter",
|
||||||
|
"hash" : "0b64983507a720b365474b778a966bab"
|
||||||
|
},
|
||||||
|
"login_Yahoo" : {
|
||||||
|
"name" : "login_Yahoo",
|
||||||
|
"rule" : ".login_Yahoo",
|
||||||
|
"hash" : "1cc6fceee294045fe6d1c1d3aa31d2c1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"scales" : [
|
||||||
|
1,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
"header" : "\/**\n * @provides sprite-login-css\n * @generated\n *\/\n\n.sprite-login {\n background-image: url(\/rsrc\/image\/sprite-login.png);\n background-repeat: no-repeat;\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-login {\n background-image: url(\/rsrc\/image\/sprite-login-X2.png);\n background-size: {X}px {Y}px;\n }\n}\n",
|
||||||
|
"type" : "standard"
|
||||||
|
}
|
|
@ -38,6 +38,7 @@ $sheets = array(
|
||||||
'tokens' => $generator->buildTokenSheet(),
|
'tokens' => $generator->buildTokenSheet(),
|
||||||
'docs' => $generator->buildDocsSheet(),
|
'docs' => $generator->buildDocsSheet(),
|
||||||
'gradient' => $generator->buildGradientSheet(),
|
'gradient' => $generator->buildGradientSheet(),
|
||||||
|
'login' => $generator->buildLoginSheet(),
|
||||||
);
|
);
|
||||||
|
|
||||||
list($err) = exec_manual('optipng');
|
list($err) = exec_manual('optipng');
|
||||||
|
|
|
@ -623,6 +623,20 @@ celerity_register_resource_map(array(
|
||||||
'disk' => '/rsrc/image/sprite-icons.png',
|
'disk' => '/rsrc/image/sprite-icons.png',
|
||||||
'type' => 'png',
|
'type' => 'png',
|
||||||
),
|
),
|
||||||
|
'/rsrc/image/sprite-login-X2.png' =>
|
||||||
|
array(
|
||||||
|
'hash' => '0836f6f5ae0f181d32814811998c84ce',
|
||||||
|
'uri' => '/res/0836f6f5/rsrc/image/sprite-login-X2.png',
|
||||||
|
'disk' => '/rsrc/image/sprite-login-X2.png',
|
||||||
|
'type' => 'png',
|
||||||
|
),
|
||||||
|
'/rsrc/image/sprite-login.png' =>
|
||||||
|
array(
|
||||||
|
'hash' => 'e11c22448d143e85e6be034894e138c5',
|
||||||
|
'uri' => '/res/e11c2244/rsrc/image/sprite-login.png',
|
||||||
|
'disk' => '/rsrc/image/sprite-login.png',
|
||||||
|
'type' => 'png',
|
||||||
|
),
|
||||||
'/rsrc/image/sprite-menu-X2.png' =>
|
'/rsrc/image/sprite-menu-X2.png' =>
|
||||||
array(
|
array(
|
||||||
'hash' => '867092041ce0a62b7e50136213ca7be1',
|
'hash' => '867092041ce0a62b7e50136213ca7be1',
|
||||||
|
@ -3968,6 +3982,15 @@ celerity_register_resource_map(array(
|
||||||
),
|
),
|
||||||
'disk' => '/rsrc/css/sprite-icons.css',
|
'disk' => '/rsrc/css/sprite-icons.css',
|
||||||
),
|
),
|
||||||
|
'sprite-login-css' =>
|
||||||
|
array(
|
||||||
|
'uri' => '/res/7294661a/rsrc/css/sprite-login.css',
|
||||||
|
'type' => 'css',
|
||||||
|
'requires' =>
|
||||||
|
array(
|
||||||
|
),
|
||||||
|
'disk' => '/rsrc/css/sprite-login.css',
|
||||||
|
),
|
||||||
'sprite-menu-css' =>
|
'sprite-menu-css' =>
|
||||||
array(
|
array(
|
||||||
'uri' => '/res/e4e428f9/rsrc/css/sprite-menu.css',
|
'uri' => '/res/e4e428f9/rsrc/css/sprite-menu.css',
|
||||||
|
|
|
@ -442,6 +442,38 @@ final class CeleritySpriteGenerator {
|
||||||
return $sheet;
|
return $sheet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function buildLoginSheet() {
|
||||||
|
$icons = $this->getDirectoryList('login_1x');
|
||||||
|
$scales = array(
|
||||||
|
'1x' => 1,
|
||||||
|
'2x' => 2,
|
||||||
|
);
|
||||||
|
$template = id(new PhutilSprite())
|
||||||
|
->setSourceSize(34, 34);
|
||||||
|
|
||||||
|
$sprites = array();
|
||||||
|
$prefix = 'login_';
|
||||||
|
foreach ($icons as $icon) {
|
||||||
|
$sprite = id(clone $template)
|
||||||
|
->setName($prefix.$icon)
|
||||||
|
->setTargetCSS('.'.$prefix.$icon);
|
||||||
|
|
||||||
|
foreach ($scales as $scale_key => $scale) {
|
||||||
|
$path = $this->getPath($prefix.$scale_key.'/'.$icon.'.png');
|
||||||
|
$sprite->setSourceFile($path, $scale);
|
||||||
|
}
|
||||||
|
$sprites[] = $sprite;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sheet = $this->buildSheet('login', true);
|
||||||
|
$sheet->setScales($scales);
|
||||||
|
foreach ($sprites as $sprite) {
|
||||||
|
$sheet->addSprite($sprite);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $sheet;
|
||||||
|
}
|
||||||
|
|
||||||
public function buildGradientSheet() {
|
public function buildGradientSheet() {
|
||||||
$gradients = $this->getDirectoryList('gradients');
|
$gradients = $this->getDirectoryList('gradients');
|
||||||
|
|
||||||
|
|
79
webroot/rsrc/css/sprite-login.css
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
/**
|
||||||
|
* @provides sprite-login-css
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
|
||||||
|
.sprite-login {
|
||||||
|
background-image: url(/rsrc/image/sprite-login.png);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-webkit-min-device-pixel-ratio: 1.5) {
|
||||||
|
.sprite-login {
|
||||||
|
background-image: url(/rsrc/image/sprite-login-X2.png);
|
||||||
|
background-size: 140px 140px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.login_Amazon {
|
||||||
|
background-position: 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login_Asana {
|
||||||
|
background-position: -35px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login_Disqus {
|
||||||
|
background-position: -70px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login_Dropbox {
|
||||||
|
background-position: -105px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login_Facebook {
|
||||||
|
background-position: 0px -35px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login_Generic {
|
||||||
|
background-position: -35px -35px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login_Github {
|
||||||
|
background-position: -70px -35px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login_Google {
|
||||||
|
background-position: -105px -35px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login_HTTP {
|
||||||
|
background-position: 0px -70px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login_LDAP {
|
||||||
|
background-position: -35px -70px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login_Linkedin {
|
||||||
|
background-position: -70px -70px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login_Openid {
|
||||||
|
background-position: -105px -70px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login_Phabricator {
|
||||||
|
background-position: 0px -105px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login_Twitter {
|
||||||
|
background-position: -35px -105px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login_Yahoo {
|
||||||
|
background-position: -70px -105px;
|
||||||
|
}
|
BIN
webroot/rsrc/image/sprite-login-X2.png
Normal file
After Width: | Height: | Size: 88 KiB |
BIN
webroot/rsrc/image/sprite-login.png
Normal file
After Width: | Height: | Size: 30 KiB |