Index: resources/sprite/manifest/projects.json =================================================================== --- /dev/null +++ resources/sprite/manifest/projects.json @@ -0,0 +1,220 @@ +{ + "version" : 1, + "sprites" : { + "projects-8ball" : { + "name" : "projects-8ball", + "rule" : ".projects-8ball", + "hash" : "566c9799f2c3bb402d2a2abcc8a88c48" + }, + "projects-art" : { + "name" : "projects-art", + "rule" : ".projects-art", + "hash" : "5af9341f258d830884ac70184fef1d29" + }, + "projects-award" : { + "name" : "projects-award", + "rule" : ".projects-award", + "hash" : "8fd0c37696329edc6c3ba4b039f17060" + }, + "projects-bacon" : { + "name" : "projects-bacon", + "rule" : ".projects-bacon", + "hash" : "52544a420549ee80126565d2dfcd55ef" + }, + "projects-bandaid" : { + "name" : "projects-bandaid", + "rule" : ".projects-bandaid", + "hash" : "94831e556e313c01a1bf94a9dfaf7656" + }, + "projects-beer" : { + "name" : "projects-beer", + "rule" : ".projects-beer", + "hash" : "d4f4be0ce272b76267f26fb7e7ef3404" + }, + "projects-briefcase" : { + "name" : "projects-briefcase", + "rule" : ".projects-briefcase", + "hash" : "1ed9c860f3b0d09af01ec72bdecbb8cd" + }, + "projects-bug" : { + "name" : "projects-bug", + "rule" : ".projects-bug", + "hash" : "e6911637120a707364deac056baf4dcb" + }, + "projects-cloud" : { + "name" : "projects-cloud", + "rule" : ".projects-cloud", + "hash" : "7d8333ecdd3910d55b4faaa9ec32af0a" + }, + "projects-coffee" : { + "name" : "projects-coffee", + "rule" : ".projects-coffee", + "hash" : "8995aa2777c4c569265a1cf5f0fb6a14" + }, + "projects-creditcard" : { + "name" : "projects-creditcard", + "rule" : ".projects-creditcard", + "hash" : "f47085d22166165e3109026c90569a28" + }, + "projects-death" : { + "name" : "projects-death", + "rule" : ".projects-death", + "hash" : "f37fb72bdbeb83bd4d20abf3e61903e4" + }, + "projects-dropbox" : { + "name" : "projects-dropbox", + "rule" : ".projects-dropbox", + "hash" : "57bc4808f977c090cb01bac5207b1c04" + }, + "projects-education" : { + "name" : "projects-education", + "rule" : ".projects-education", + "hash" : "fe6fff67fa67f2ff34cad5e257f29eae" + }, + "projects-experimental" : { + "name" : "projects-experimental", + "rule" : ".projects-experimental", + "hash" : "fe9643136f857772e482c8f08b385b46" + }, + "projects-facebook" : { + "name" : "projects-facebook", + "rule" : ".projects-facebook", + "hash" : "ee056c299ff1cae3b7271195d2073d29" + }, + "projects-facility" : { + "name" : "projects-facility", + "rule" : ".projects-facility", + "hash" : "f51ff2bb3e6615200d5ab3d65d84463e" + }, + "projects-film" : { + "name" : "projects-film", + "rule" : ".projects-film", + "hash" : "58bbbedfa336a7ec16a48c5c77ebef2f" + }, + "projects-forked" : { + "name" : "projects-forked", + "rule" : ".projects-forked", + "hash" : "877ab28bee826f436822fc4311632555" + }, + "projects-games" : { + "name" : "projects-games", + "rule" : ".projects-games", + "hash" : "37caa2d5b72dd09f928495267fdf7523" + }, + "projects-ghost" : { + "name" : "projects-ghost", + "rule" : ".projects-ghost", + "hash" : "e83defde183dd4ee26c5baf47c27d3ed" + }, + "projects-gift" : { + "name" : "projects-gift", + "rule" : ".projects-gift", + "hash" : "b41ce0d679519ea6819a56185835ed9f" + }, + "projects-golf" : { + "name" : "projects-golf", + "rule" : ".projects-golf", + "hash" : "3159706c21c3d70dca3f34cffce7f933" + }, + "projects-heart" : { + "name" : "projects-heart", + "rule" : ".projects-heart", + "hash" : "15d52a74cf0083d425885377c9b96927" + }, + "projects-intergalactic" : { + "name" : "projects-intergalactic", + "rule" : ".projects-intergalactic", + "hash" : "95a4490ae5be93e7aeea4d2f61ccc028" + }, + "projects-lock" : { + "name" : "projects-lock", + "rule" : ".projects-lock", + "hash" : "5764fe922706181be99ffe55fde60e76" + }, + "projects-martini" : { + "name" : "projects-martini", + "rule" : ".projects-martini", + "hash" : "12ef52e1c1ada0ef410335cf57a63d6f" + }, + "projects-medical" : { + "name" : "projects-medical", + "rule" : ".projects-medical", + "hash" : "01e5a2a47bd445812780016c79f84e24" + }, + "projects-music" : { + "name" : "projects-music", + "rule" : ".projects-music", + "hash" : "ed028b8bba45bb148e34abf70b3dbae1" + }, + "projects-news" : { + "name" : "projects-news", + "rule" : ".projects-news", + "hash" : "be3c0cc4c6987d3f78ac371257d40f7e" + }, + "projects-orgchart" : { + "name" : "projects-orgchart", + "rule" : ".projects-orgchart", + "hash" : "105ebca88f48ae41d0db7ff4c7ed23f6" + }, + "projects-peoples" : { + "name" : "projects-peoples", + "rule" : ".projects-peoples", + "hash" : "e5e22573cec10b80b311cc3e0bdf5159" + }, + "projects-piechart" : { + "name" : "projects-piechart", + "rule" : ".projects-piechart", + "hash" : "b0ab63f8a07af0de53ed8af9223a7bed" + }, + "projects-radiate" : { + "name" : "projects-radiate", + "rule" : ".projects-radiate", + "hash" : "58c1bda5280227aa593c2c0d074ba8ed" + }, + "projects-savings" : { + "name" : "projects-savings", + "rule" : ".projects-savings", + "hash" : "17c9ef9b5d43f74f0c1e8a7ac22a7148" + }, + "projects-search" : { + "name" : "projects-search", + "rule" : ".projects-search", + "hash" : "a63ea4246252317daade40a5212bbcd1" + }, + "projects-shield" : { + "name" : "projects-shield", + "rule" : ".projects-shield", + "hash" : "75b906802b9418eb0d1bdffd1b411393" + }, + "projects-star" : { + "name" : "projects-star", + "rule" : ".projects-star", + "hash" : "dd9471a8f6093002ab2ef5a41c1e271e" + }, + "projects-travel" : { + "name" : "projects-travel", + "rule" : ".projects-travel", + "hash" : "dce9928ae59ebea50648a967b7aca978" + }, + "projects-twitter" : { + "name" : "projects-twitter", + "rule" : ".projects-twitter", + "hash" : "317b1f77c7b87745c61f5dd85ef82278" + }, + "projects-warning" : { + "name" : "projects-warning", + "rule" : ".projects-warning", + "hash" : "bf36bc010d0ad6aeec90572e17d69bee" + }, + "projects-whale" : { + "name" : "projects-whale", + "rule" : ".projects-whale", + "hash" : "12e81038b15b030c231a76fecb09a613" + } + }, + "scales" : [ + 1 + ], + "header" : "\/**\n * @provides sprite-tokens-css\n * @generated\n *\/\n\n.sprite-tokens {\n background-image: url(\/rsrc\/image\/sprite-tokens.png);\n background-repeat: no-repeat;\n}\n\n\n", + "type" : "standard" +} Index: scripts/celerity/generate_sprites.php =================================================================== --- scripts/celerity/generate_sprites.php +++ scripts/celerity/generate_sprites.php @@ -40,6 +40,7 @@ 'gradient' => $generator->buildGradientSheet(), 'login' => $generator->buildLoginSheet(), 'status' => $generator->buildStatusSheet(), + 'projects' => $generator->buildProjectsSheet(), ); list($err) = exec_manual('optipng'); Index: src/__celerity_resource_map__.php =================================================================== --- src/__celerity_resource_map__.php +++ src/__celerity_resource_map__.php @@ -700,6 +700,13 @@ 'disk' => '/rsrc/image/sprite-payments.png', 'type' => 'png', ), + '/rsrc/image/sprite-projects.png' => + array( + 'hash' => '5ce3e7acd723fbf1726b8c37f64af316', + 'uri' => '/res/5ce3e7ac/rsrc/image/sprite-projects.png', + 'disk' => '/rsrc/image/sprite-projects.png', + 'type' => 'png', + ), '/rsrc/image/sprite-status-X2.png' => array( 'hash' => 'ba4921c45c4de3e624e549bef9465fd9', Index: src/infrastructure/celerity/CeleritySpriteGenerator.php =================================================================== --- src/infrastructure/celerity/CeleritySpriteGenerator.php +++ src/infrastructure/celerity/CeleritySpriteGenerator.php @@ -337,6 +337,32 @@ return $sheet; } + public function buildProjectsSheet() { + $projects = $this->getDirectoryList('projects'); + + $template = id(new PhutilSprite()) + ->setSourceSize(50, 50); + + $sprites = array(); + foreach ($projects as $project) { + $path = $this->getPath('projects/'.$project.'.png'); + + $sprite = id(clone $template) + ->setName('projects-'.$project) + ->setTargetCSS('.projects-'.$project) + ->setSourceFile($path, 1); + + $sprites[] = $sprite; + } + + $sheet = $this->buildSheet('tokens', false); + foreach ($sprites as $sprite) { + $sheet->addSprite($sprite); + } + + return $sheet; + } + public function buildPaymentsSheet() { $icons = $this->getDirectoryList('payments_2x'); $scales = array( Index: webroot/rsrc/css/sprite-projects.css =================================================================== --- /dev/null +++ webroot/rsrc/css/sprite-projects.css @@ -0,0 +1,180 @@ +/** + * @provides sprite-tokens-css + * @generated + */ + +.sprite-tokens { + background-image: url(/rsrc/image/sprite-tokens.png); + background-repeat: no-repeat; +} + + + + +.projects-8ball { + background-position: 0px 0px; +} + +.projects-art { + background-position: -51px 0px; +} + +.projects-award { + background-position: -102px 0px; +} + +.projects-bacon { + background-position: -153px 0px; +} + +.projects-bandaid { + background-position: -204px 0px; +} + +.projects-beer { + background-position: -255px 0px; +} + +.projects-briefcase { + background-position: 0px -51px; +} + +.projects-bug { + background-position: -51px -51px; +} + +.projects-cloud { + background-position: -102px -51px; +} + +.projects-coffee { + background-position: -153px -51px; +} + +.projects-creditcard { + background-position: -204px -51px; +} + +.projects-death { + background-position: -255px -51px; +} + +.projects-dropbox { + background-position: 0px -102px; +} + +.projects-education { + background-position: -51px -102px; +} + +.projects-experimental { + background-position: -102px -102px; +} + +.projects-facebook { + background-position: -153px -102px; +} + +.projects-facility { + background-position: -204px -102px; +} + +.projects-film { + background-position: -255px -102px; +} + +.projects-forked { + background-position: 0px -153px; +} + +.projects-games { + background-position: -51px -153px; +} + +.projects-ghost { + background-position: -102px -153px; +} + +.projects-gift { + background-position: -153px -153px; +} + +.projects-golf { + background-position: -204px -153px; +} + +.projects-heart { + background-position: -255px -153px; +} + +.projects-intergalactic { + background-position: 0px -204px; +} + +.projects-lock { + background-position: -51px -204px; +} + +.projects-martini { + background-position: -102px -204px; +} + +.projects-medical { + background-position: -153px -204px; +} + +.projects-music { + background-position: -204px -204px; +} + +.projects-news { + background-position: -255px -204px; +} + +.projects-orgchart { + background-position: 0px -255px; +} + +.projects-peoples { + background-position: -51px -255px; +} + +.projects-piechart { + background-position: -102px -255px; +} + +.projects-radiate { + background-position: -153px -255px; +} + +.projects-savings { + background-position: -204px -255px; +} + +.projects-search { + background-position: -255px -255px; +} + +.projects-shield { + background-position: 0px -306px; +} + +.projects-star { + background-position: -51px -306px; +} + +.projects-travel { + background-position: -102px -306px; +} + +.projects-twitter { + background-position: -153px -306px; +} + +.projects-warning { + background-position: -204px -306px; +} + +.projects-whale { + background-position: -255px -306px; +}