From 9dac66207148cb6412e82887a86584742a603074 Mon Sep 17 00:00:00 2001 From: Yuval Nativ Date: Mon, 29 Aug 2016 11:26:59 +0300 Subject: [PATCH] Create gh-pages branch via GitHub --- index.html | 162 +++++++------ javascripts/scale.fix.js | 37 ++- params.json | 8 +- stylesheets/github-light.css | 124 ++++++++++ stylesheets/styles.css | 455 ++++++++++++++--------------------- 5 files changed, 421 insertions(+), 365 deletions(-) create mode 100644 stylesheets/github-light.css diff --git a/index.html b/index.html index 86f823e..203a86a 100644 --- a/index.html +++ b/index.html @@ -6,59 +6,51 @@ theZoo aka Malware DB by ytisf - - - + + -
-

theZoo aka Malware DB

-

A repository of LIVE malwares for your own joy and pleasure

+

theZoo aka Malware DB

+

A repository of LIVE malwares for your own joy and pleasure

+ +

View the Project on GitHub ytisf/theZoo

+ - -

This project is maintained by ytisf

- -

-About

+About -

Malware DB is a project created to make the possibility of malware analysis open and available to the public. Since we have found out that almost all versions of malware are very hard to come by in a way which will allow analysis we have decided to gather all of them for you in an available and safe way. +

theZoo is a project created to make the possibility of malware analysis open and available to the public. Since we have found out that almost all versions of malware are very hard to come by in a way which will allow analysis we have decided to gather all of them for you in an available and safe way. +theZoo was born by Yuval tisf Nativ and is now maintained by Shahak Shalev.

+

theZoo is open and welcoming visitors!

+

-Disclaimer

+Disclaimer -

Malware DB's purpose is to allow the study of malware and enable people who are interested in malware analysis or maybe even as a part of their job to have access to live malware, analyse the ways they operate and maybe even enable advanced and savvy people to block specific malwares within their own environment.

+

theZoo's purpose is to allow the study of malware and enable people who are interested in malware analysis or maybe even as a part of their job to have access to live malware, analyse the ways they operate and maybe even enable advanced and savvy people to block specific malwares within their own environment.

-

Please remember that there are live and dangerous malwares! They come encrypted and locked for a reason! Do NOT run them unless you are absolutely sure of what you are doing! They are to be used only for educational purposes (and we mean that!) !!!

+

Please remember that these are live and dangerous malware! They come encrypted and locked for a reason! Do NOT run them unless you are absolutely sure of what you are doing! They are to be used only for educational purposes (and we mean that!) !!!

We recommend running them in a VM which has no internet connection (or an internal virtual network if you must) and without guest additions or any equivalents. Some of them are worms and will automatically try to spread out. Running them unconstrained meaning the you will infect yourself or others with vicious and dangerous malwares!!!

-GPL 3

+GPL 3 -

Malware DB - the most awesome free malware database on the air -Copyright (C) 2014, Yuval Nativ, Lahad Ludar, 5fingers

+

theZoo - the most awesome free malware database on the air +Copyright (C) 2015, Yuval Nativ, Lahad Ludar, 5fingers

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -74,63 +66,64 @@ GNU General Public License for more details.

along with this program. If not, see http://www.gnu.org/licenses/.

-Documentation and Notes

+Documentation and Notes

-Background:

+Background: -

The idea behind Malware DB it to allow it to be modular and let you enter more malwares of your own. Each malware should have a directory of it's own.

+

theZoo's objective is to offer a fast and easy way of retrieving malware samples and source code in an organized fashion in hopes of promoting malware research.

-Root Files:

+Root Files: -

Since version 0.42 theZoo have been going dramatic changes. It now runs in both CLI and ARGVS mode. You can all the program with the same command line agreements as before. -The current default state of theZoo at runtime is the CLI which is inspired by MSF. The following files and directories are responsible for the application's behaviour.

+

Since version 0.42 theZoo have been going dramatic changes. It now runs both CLI and ARGVS modes. You can call the program with the same command line arguments as before. +The current default state of theZoo runtime is the CLI. The following files and directories are responsible for the application's behaviour.

-/conf

+/conf -

The conf folder hold files relevant to the particular running of the program but are not part of the application. You can find the EULA file in the conf, the current database version, the CSV indexed file and more.

+

The conf folder holds files relevant to the particular running of the program but are not part of the application. You can find the EULA file in the conf and more.

-/imports

+/imports

Contains .py and .pyc import files used by the rest of the application

-/malwares

+/malwares/Binaries -

The actual malwares - be careful!

+

The actual malwares samples - be careful!

-/mdbv0.2

+/malware/Source -

Since mdbv0.2 is stable for the command line arguments (where as of 0.42 we are not yet completely sure) and since the size is relativly small we have left out the beta version for those who are interested in it or got used to it. In next version we will confirm arguments as should be.

+

Malware source code :)

-Directory Structure:

+Directory Structure: -

Each directory is composed of 5 files:

+

Each directory is composed of 4 files:

  • Malware files in an encrypted ZIP archive.
  • SHA256 sum of the 1st file.
  • MD5 sum of the 1st file.
  • Password file for the archive.
  • -
  • index.log file for the indexer.
  • -

-Structure of index.csv

+ -

The main index.csv is the DB which you will look in to find malwares indexed on your drive. We use the , charachter as the delimiter to our CSVs. -The structure is al follows:

+

+Structure of maldb.db

-
uid,location,type,name,version,author,language,date
+

maldb.db is the DB which theZoo is acting upon to find malwares indexed on your drive. +The structure is as follows:

+ +
uid,location,type,name,version,author,language,date,architecture,platform,comments,tags
 
    -
  • UID - Determined base on the indexing process.
  • +
  • UID - Determined based on the indexing process.
  • Location The location on the drive of the malware you have searched for.
  • -
  • Type - Sorts the different types of malware there are. So far we sort by: Virus, Trojans, Botnets, Ransomeware, 1Spyware
  • +
  • Type - Sorts the different types of malware there are. So far we sort by: Virus, Trojans, Botnets, Ransomeware, Spyware
  • Name - Just the name of the malware.
  • Version - Nothing to say here as well.
  • Author - ... I'm not that into documentation...
  • @@ -138,27 +131,43 @@ The structure is al follows:

  • Date - See 'Author' section.
  • Architecture - The arch the platform was build for. Can be x86, x64, arm7....
  • Platform - Win32, Win64, *nix32, *nix64, iOS, android and so on.
  • -

An example line will look as follow:

+
  • Comments - Any comments there may be about the item.
  • +
  • Tags - Tags matching the item.
  • + -
    4,Source/Original/rBot0.3.3_May2004/rBot0.3.3_May2004,botnet,rBot,0.3.3,unknown,cpp,00/05/2004,x86,win32
    +

    An example line will look as follow:

    + +
    104,Source/Original/Dexter,trojan,Dexter,2,unknown,c,00/05/2013,x86,win32,NULL,Source
     

    -Bugs and Reports

    +Bugs and Reports

    The repository holding all files is currently https://github.com/ytisf/theZoo

    -Change Log for v0.50:

    +Change Log for v0.60: + +
      +
    • [x] Moved DB to SQLite3.
    • +
    • [x] Searching overhaul to a freestyle fashion.
    • +
    • [x] Fixed "get" command.
    • +
    • [x] More & more malwares.
    • +
    + +

    +Change Log for v0.50:

    • [x] Better and easier UI.
    • [x] Aligned printing of malwares.
    • [x] Command line arguments are now working.
    • [x] Added 10 more malwares (cool ones) to the DB.
    • -

    -Change Log for v0.42:

    + + +

    +Change Log for v0.42:

    • [x] Fix EULA for proper disclaimer.
    • @@ -169,27 +178,44 @@ The structure is al follows:

    • [x] Enable support for platform and architecture in indexing.
    • [x] Separate between database and application.
    • [x] UI improvements.
    • -

    -Change Log for v0.43:

    + + +

    +Change Log for v0.43:

    • [X] Verify argv to be working properly. (fixes in v0.5)
    • [X] Virus-Total upload and indexing module. - Not possible due to restrictions of VT.
    • [X] Automatic reporting system for malwares which are not indexed in the framework.
    • -

    -Predicted Change Log for v1.0

    + + +

    +Change Log for v0.50:

      -
    • [ ] Fix auto-complete for malware frameworks.
    • +
    • [X] Malware analysis pack has been removed to reduce clone size.
    • +
    • [X] More documentation has been added.
    • +
    • [X] Removed debugging function which were dead in the code.
    • +
    + +

    +Predicted Change Log for v1.0

    + +
      +
    • [X] Fix auto-complete for malware frameworks. (thanks to 5fingers)
    • +
    • [X] Consider changing DB to XML or SQLite3. (Sheksa - done :))
    • +
    • [ ] Move malwares to another repo.
    • [ ] Better UI features.
    • -
    • [ ] Consider changing DB to XML or SQLite3.
    • -

    If you have any suggestions or malware that you have indexed as in the documentations please send it to us to yuval[]morirt [dot]com so we can add it for every one's enjoyment.

    + + +

    If you have any suggestions or malware that you have indexed as in the documentations please send it to us to yuval[]morirt [dot]com so we can add it for every one's enjoyment.

    - - + + diff --git a/javascripts/scale.fix.js b/javascripts/scale.fix.js index 08716c0..87a40ca 100644 --- a/javascripts/scale.fix.js +++ b/javascripts/scale.fix.js @@ -1,20 +1,17 @@ -fixScale = function(doc) { - - var addEvent = 'addEventListener', - type = 'gesturestart', - qsa = 'querySelectorAll', - scales = [1, 1], - meta = qsa in doc ? doc[qsa]('meta[name=viewport]') : []; - - function fix() { - meta.content = 'width=device-width,minimum-scale=' + scales[0] + ',maximum-scale=' + scales[1]; - doc.removeEventListener(type, fix, true); - } - - if ((meta = meta[meta.length - 1]) && addEvent in doc) { - fix(); - scales = [.25, 1.6]; - doc[addEvent](type, fix, true); - } - -}; \ No newline at end of file +var metas = document.getElementsByTagName('meta'); +var i; +if (navigator.userAgent.match(/iPhone/i)) { + for (i=0; i.\r\n\r\n\r\nDocumentation and Notes\r\n========================\r\n\r\n## Background:\r\nThe idea behind Malware DB it to allow it to be modular and let you enter more malwares of your own. Each malware should have a directory of it's own. \r\n\r\n## Root Files:\r\nSince version 0.42 theZoo have been going dramatic changes. It now runs in both CLI and ARGVS mode. You can all the program with the same command line agreements as before.\r\nThe current default state of theZoo at runtime is the CLI which is inspired by MSF. The following files and directories are responsible for the application's behaviour.\r\n\r\n### /conf\r\nThe conf folder hold files relevant to the particular running of the program but are not part of the application. You can find the EULA file in the conf, the current database version, the CSV indexed file and more.\r\n### /imports\r\nContains .py and .pyc import files used by the rest of the application\r\n### /malwares\r\nThe actual malwares - be careful!\r\n### /mdbv0.2\r\nSince mdbv0.2 is stable for the command line arguments (where as of 0.42 we are not yet completely sure) and since the size is relativly small we have left out the beta version for those who are interested in it or got used to it. In next version we will confirm arguments as should be.\r\n\r\n\r\n## Directory Structure:\r\nEach directory is composed of 5 files:\r\n- Malware files in an encrypted ZIP archive. \r\n- SHA256 sum of the 1st file. \r\n- MD5 sum of the 1st file.\r\n- Password file for the archive. \r\n- index.log file for the indexer. \r\n\r\n\r\n## Structure of index.csv\r\nThe main index.csv is the DB which you will look in to find malwares indexed on your drive. We use the , charachter as the delimiter to our CSVs. \r\nThe structure is al follows:\r\n\r\n\tuid,location,type,name,version,author,language,date\r\n\r\n- UID \t-\tDetermined base on the indexing process.\r\n- Location \tThe location on the drive of the malware you have searched for.\r\n- Type\t-\tSorts the different types of malware there are. So far we sort by:\tVirus, Trojans, Botnets, Ransomeware, 1Spyware\r\n- Name\t-\tJust the name of the malware.\r\n- Version\t-\tNothing to say here as well.\r\n- Author\t-\t... I'm not that into documentation...\r\n- Programming Language - The state of the malware as for source, bin or which type of source. c/cpp/bin...\r\n- Date\t-\tSee 'Author' section.\r\n- Architecture - The arch the platform was build for. Can be x86, x64, arm7....\r\n- Platform - Win32, Win64, *nix32, *nix64, iOS, android and so on.\r\n\r\nAn example line will look as follow:\r\n\r\n 4,Source/Original/rBot0.3.3_May2004/rBot0.3.3_May2004,botnet,rBot,0.3.3,unknown,cpp,00/05/2004,x86,win32\r\n\r\n\r\n\r\nBugs and Reports\r\n================\r\nThe repository holding all files is currently \r\n\thttps://github.com/ytisf/theZoo\r\n\r\n##Change Log for v0.50:\r\n- [x] Better and easier UI. \r\n- [x] Aligned printing of malwares. \r\n- [x] Command line arguments are now working. \r\n- [x] Added 10 more malwares (cool ones) to the DB.\r\n\r\n##Change Log for v0.42:\r\n- [x] Fix EULA for proper disclaimer.\r\n- [x] More precise searching and indexing including platform and more.\r\n- [x] Added 10 new malwares.\r\n- [x] Git update of platform and new malware.\r\n- [x] Fix display of search.\r\n- [x] Enable support for platform and architecture in indexing.\r\n- [x] Separate between database and application.\r\n- [x] UI improvements.\r\n\r\n## Change Log for v0.43:\r\n- [X] Verify argv to be working properly. (fixes in v0.5)\r\n- [X] Virus-Total upload and indexing module. - Not possible due to restrictions of VT.\r\n- [X] Automatic reporting system for malwares which are not indexed in the framework.\r\n\r\n##Predicted Change Log for v1.0\r\n- [ ] Fix auto-complete for malware frameworks.\r\n- [ ] Better UI features.\r\n- [ ] Consider changing DB to XML or SQLite3.\r\n\r\n\r\nIf you have any suggestions or malware that you have indexed as in the documentations please send it to us to yuval[]morirt [dot]com so we can add it for every one's enjoyment.","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."} \ No newline at end of file +{ + "name": "theZoo aka Malware DB", + "tagline": "A repository of LIVE malwares for your own joy and pleasure", + "body": "About\r\n======\r\ntheZoo is a project created to make the possibility of malware analysis open and available to the public. Since we have found out that almost all versions of malware are very hard to come by in a way which will allow analysis we have decided to gather all of them for you in an available and safe way.\r\ntheZoo was born by Yuval tisf Nativ and is now maintained by Shahak Shalev. \r\n![](http://hackingdefined.org/publications/MalDB-Logo-Thumb.png)\r\n\r\n**theZoo is open and welcoming visitors!**\r\nDisclaimer\r\n==========\r\ntheZoo's purpose is to allow the study of malware and enable people who are interested in malware analysis or maybe even as a part of their job to have access to live malware, analyse the ways they operate and maybe even enable advanced and savvy people to block specific malwares within their own environment.\r\n\r\n**Please remember that these are live and dangerous malware! They come encrypted and locked for a reason! Do NOT run them unless you are absolutely sure of what you are doing! They are to be used only for educational purposes (and we mean that!) !!!**\r\n\r\nWe recommend running them in a VM which has no internet connection (or an internal virtual network if you must) and without guest additions or any equivalents. Some of them are worms and will automatically try to spread out. Running them unconstrained meaning the you **will infect yourself or others with vicious and dangerous malwares!!!**\r\n\r\n\r\nGPL 3\r\n======\r\ntheZoo - the most awesome free malware database on the air \r\nCopyright (C) 2015, Yuval Nativ, Lahad Ludar, 5fingers\r\n\r\nThis program is free software: you can redistribute it and/or modify\r\nit under the terms of the GNU General Public License as published by\r\nthe Free Software Foundation, either version 3 of the License, or\r\n(at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful,\r\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\r\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\nGNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License\r\nalong with this program. If not, see .\r\n\r\n\r\nDocumentation and Notes\r\n========================\r\n\r\n## Background:\r\ntheZoo's objective is to offer a fast and easy way of retrieving malware samples and source code in an organized fashion in hopes of promoting malware research.\r\n\r\n## Root Files:\r\nSince version 0.42 theZoo have been going dramatic changes. It now runs both CLI and ARGVS modes. You can call the program with the same command line arguments as before.\r\nThe current default state of theZoo runtime is the CLI. The following files and directories are responsible for the application's behaviour.\r\n\r\n### /conf\r\nThe conf folder holds files relevant to the particular running of the program but are not part of the application. You can find the EULA file in the conf and more.\r\n### /imports\r\nContains .py and .pyc import files used by the rest of the application\r\n### /malwares/Binaries\r\nThe actual malwares samples - be careful!\r\n### /malware/Source\r\nMalware source code :)\r\n\r\n\r\n## Directory Structure:\r\nEach directory is composed of 4 files:\r\n- Malware files in an encrypted ZIP archive. \r\n- SHA256 sum of the 1st file. \r\n- MD5 sum of the 1st file.\r\n- Password file for the archive. \r\n\r\n\r\n\r\n## Structure of maldb.db\r\nmaldb.db is the DB which theZoo is acting upon to find malwares indexed on your drive.\r\nThe structure is as follows:\r\n\r\n\tuid,location,type,name,version,author,language,date,architecture,platform,comments,tags\r\n\r\n- UID \t-\tDetermined based on the indexing process.\r\n- Location \tThe location on the drive of the malware you have searched for.\r\n- Type\t-\tSorts the different types of malware there are. So far we sort by:\tVirus, Trojans, Botnets, Ransomeware, Spyware\r\n- Name\t-\tJust the name of the malware.\r\n- Version\t-\tNothing to say here as well.\r\n- Author\t-\t... I'm not that into documentation...\r\n- Programming Language - The state of the malware as for source, bin or which type of source. c/cpp/bin...\r\n- Date\t-\tSee 'Author' section.\r\n- Architecture - The arch the platform was build for. Can be x86, x64, arm7....\r\n- Platform - Win32, Win64, *nix32, *nix64, iOS, android and so on.\r\n- Comments - Any comments there may be about the item.\r\n- Tags - Tags matching the item.\r\n\r\nAn example line will look as follow:\r\n\r\n 104,Source/Original/Dexter,trojan,Dexter,2,unknown,c,00/05/2013,x86,win32,NULL,Source\r\n\r\nBugs and Reports\r\n================\r\nThe repository holding all files is currently \r\n\thttps://github.com/ytisf/theZoo\r\n\r\n## Change Log for v0.60:\r\n- [x] Moved DB to SQLite3.\r\n- [x] Searching overhaul to a freestyle fashion.\r\n- [x] Fixed \"get\" command.\r\n- [x] More & more malwares.\r\n\r\n## Change Log for v0.50:\r\n- [x] Better and easier UI. \r\n- [x] Aligned printing of malwares. \r\n- [x] Command line arguments are now working. \r\n- [x] Added 10 more malwares (cool ones) to the DB.\r\n\r\n## Change Log for v0.42:\r\n- [x] Fix EULA for proper disclaimer.\r\n- [x] More precise searching and indexing including platform and more.\r\n- [x] Added 10 new malwares.\r\n- [x] Git update of platform and new malware.\r\n- [x] Fix display of search.\r\n- [x] Enable support for platform and architecture in indexing.\r\n- [x] Separate between database and application.\r\n- [x] UI improvements.\r\n\r\n## Change Log for v0.43:\r\n- [X] Verify argv to be working properly. (fixes in v0.5)\r\n- [X] Virus-Total upload and indexing module. - Not possible due to restrictions of VT.\r\n- [X] Automatic reporting system for malwares which are not indexed in the framework.\r\n\r\n## Change Log for v0.50:\r\n- [X] Malware analysis pack has been removed to reduce clone size.\r\n- [X] More documentation has been added.\r\n- [X] Removed debugging function which were dead in the code.\r\n\r\n## Predicted Change Log for v1.0\r\n- [X] Fix auto-complete for malware frameworks. (thanks to 5fingers)\r\n- [X] Consider changing DB to XML or SQLite3. (Sheksa - done :))\r\n- [ ] Move malwares to another repo.\r\n- [ ] Better UI features.\r\n\r\nIf you have any suggestions or malware that you have indexed as in the documentations please send it to us to yuval[]morirt [dot]com so we can add it for every one's enjoyment.", + "google": "", + "note": "Don't delete this file! It's used internally to help with page regeneration." +} \ No newline at end of file diff --git a/stylesheets/github-light.css b/stylesheets/github-light.css new file mode 100644 index 0000000..0c6b24d --- /dev/null +++ b/stylesheets/github-light.css @@ -0,0 +1,124 @@ +/* +The MIT License (MIT) + +Copyright (c) 2016 GitHub, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +.pl-c /* comment */ { + color: #969896; +} + +.pl-c1 /* constant, variable.other.constant, support, meta.property-name, support.constant, support.variable, meta.module-reference, markup.raw, meta.diff.header */, +.pl-s .pl-v /* string variable */ { + color: #0086b3; +} + +.pl-e /* entity */, +.pl-en /* entity.name */ { + color: #795da3; +} + +.pl-smi /* variable.parameter.function, storage.modifier.package, storage.modifier.import, storage.type.java, variable.other */, +.pl-s .pl-s1 /* string source */ { + color: #333; +} + +.pl-ent /* entity.name.tag */ { + color: #63a35c; +} + +.pl-k /* keyword, storage, storage.type */ { + color: #a71d5d; +} + +.pl-s /* string */, +.pl-pds /* punctuation.definition.string, string.regexp.character-class */, +.pl-s .pl-pse .pl-s1 /* string punctuation.section.embedded source */, +.pl-sr /* string.regexp */, +.pl-sr .pl-cce /* string.regexp constant.character.escape */, +.pl-sr .pl-sre /* string.regexp source.ruby.embedded */, +.pl-sr .pl-sra /* string.regexp string.regexp.arbitrary-repitition */ { + color: #183691; +} + +.pl-v /* variable */ { + color: #ed6a43; +} + +.pl-id /* invalid.deprecated */ { + color: #b52a1d; +} + +.pl-ii /* invalid.illegal */ { + color: #f8f8f8; + background-color: #b52a1d; +} + +.pl-sr .pl-cce /* string.regexp constant.character.escape */ { + font-weight: bold; + color: #63a35c; +} + +.pl-ml /* markup.list */ { + color: #693a17; +} + +.pl-mh /* markup.heading */, +.pl-mh .pl-en /* markup.heading entity.name */, +.pl-ms /* meta.separator */ { + font-weight: bold; + color: #1d3e81; +} + +.pl-mq /* markup.quote */ { + color: #008080; +} + +.pl-mi /* markup.italic */ { + font-style: italic; + color: #333; +} + +.pl-mb /* markup.bold */ { + font-weight: bold; + color: #333; +} + +.pl-md /* markup.deleted, meta.diff.header.from-file */ { + color: #bd2c00; + background-color: #ffecec; +} + +.pl-mi1 /* markup.inserted, meta.diff.header.to-file */ { + color: #55a532; + background-color: #eaffea; +} + +.pl-mdr /* meta.diff.range */ { + font-weight: bold; + color: #795da3; +} + +.pl-mo /* meta.output */ { + color: #1d3e81; +} + diff --git a/stylesheets/styles.css b/stylesheets/styles.css index c2c94b4..2e1768e 100644 --- a/stylesheets/styles.css +++ b/stylesheets/styles.css @@ -1,336 +1,251 @@ -@import url(https://fonts.googleapis.com/css?family=Arvo:400,700,400italic); - -/* MeyerWeb Reset */ - -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td, -article, aside, canvas, details, embed, -figure, figcaption, footer, header, hgroup, -menu, nav, output, ruby, section, summary, -time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font: inherit; - vertical-align: baseline; +@font-face { + font-family: 'Noto Sans'; + font-weight: 400; + font-style: normal; + src: url('../fonts/Noto-Sans-regular/Noto-Sans-regular.eot'); + src: url('../fonts/Noto-Sans-regular/Noto-Sans-regular.eot?#iefix') format('embedded-opentype'), + local('Noto Sans'), + local('Noto-Sans-regular'), + url('../fonts/Noto-Sans-regular/Noto-Sans-regular.woff2') format('woff2'), + url('../fonts/Noto-Sans-regular/Noto-Sans-regular.woff') format('woff'), + url('../fonts/Noto-Sans-regular/Noto-Sans-regular.ttf') format('truetype'), + url('../fonts/Noto-Sans-regular/Noto-Sans-regular.svg#NotoSans') format('svg'); } +@font-face { + font-family: 'Noto Sans'; + font-weight: 700; + font-style: normal; + src: url('../fonts/Noto-Sans-700/Noto-Sans-700.eot'); + src: url('../fonts/Noto-Sans-700/Noto-Sans-700.eot?#iefix') format('embedded-opentype'), + local('Noto Sans Bold'), + local('Noto-Sans-700'), + url('../fonts/Noto-Sans-700/Noto-Sans-700.woff2') format('woff2'), + url('../fonts/Noto-Sans-700/Noto-Sans-700.woff') format('woff'), + url('../fonts/Noto-Sans-700/Noto-Sans-700.ttf') format('truetype'), + url('../fonts/Noto-Sans-700/Noto-Sans-700.svg#NotoSans') format('svg'); +} -/* Base text styles */ +@font-face { + font-family: 'Noto Sans'; + font-weight: 400; + font-style: italic; + src: url('../fonts/Noto-Sans-italic/Noto-Sans-italic.eot'); + src: url('../fonts/Noto-Sans-italic/Noto-Sans-italic.eot?#iefix') format('embedded-opentype'), + local('Noto Sans Italic'), + local('Noto-Sans-italic'), + url('../fonts/Noto-Sans-italic/Noto-Sans-italic.woff2') format('woff2'), + url('../fonts/Noto-Sans-italic/Noto-Sans-italic.woff') format('woff'), + url('../fonts/Noto-Sans-italic/Noto-Sans-italic.ttf') format('truetype'), + url('../fonts/Noto-Sans-italic/Noto-Sans-italic.svg#NotoSans') format('svg'); +} + +@font-face { + font-family: 'Noto Sans'; + font-weight: 700; + font-style: italic; + src: url('../fonts/Noto-Sans-700italic/Noto-Sans-700italic.eot'); + src: url('../fonts/Noto-Sans-700italic/Noto-Sans-700italic.eot?#iefix') format('embedded-opentype'), + local('Noto Sans Bold Italic'), + local('Noto-Sans-700italic'), + url('../fonts/Noto-Sans-700italic/Noto-Sans-700italic.woff2') format('woff2'), + url('../fonts/Noto-Sans-700italic/Noto-Sans-700italic.woff') format('woff'), + url('../fonts/Noto-Sans-700italic/Noto-Sans-700italic.ttf') format('truetype'), + url('../fonts/Noto-Sans-700italic/Noto-Sans-700italic.svg#NotoSans') format('svg'); +} body { - padding:10px 50px 0 0; - font-family:"Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - color: #232323; - background-color: #FBFAF7; - margin: 0; - line-height: 1.8em; - -webkit-font-smoothing: antialiased; - + background-color: #fff; + padding:50px; + font: 14px/1.5 "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; + color:#727272; + font-weight:400; } h1, h2, h3, h4, h5, h6 { - color:#232323; - margin:36px 0 10px; + color:#222; + margin:0 0 20px; } -p, ul, ol, table, dl { - margin:0 0 22px; +p, ul, ol, table, pre, dl { + margin:0 0 20px; } h1, h2, h3 { - font-family: Arvo, Monaco, serif; - line-height:1.3; - font-weight: normal; -} - -h1,h2, h3 { - display: block; - border-bottom: 1px solid #ccc; - padding-bottom: 5px; + line-height:1.1; } h1 { - font-size: 30px; + font-size:28px; } h2 { - font-size: 24px; + color:#393939; } -h3 { - font-size: 18px; -} - -h4, h5, h6 { - font-family: Arvo, Monaco, serif; - font-weight: 700; +h3, h4, h5, h6 { + color:#494949; } a { - color:#C30000; - font-weight:200; + color:#39c; text-decoration:none; } a:hover { - text-decoration: underline; + color:#069; } a small { - font-size: 12px; + font-size:11px; + color:#777; + margin-top:-0.3em; + display:block; } -em { - font-style: italic; +a:hover small { + color:#777; } -strong { - font-weight:700; -} - -ul { - list-style: inside; - padding-left: 25px; -} - -ol { - list-style: decimal inside; - padding-left: 20px; +.wrapper { + width:860px; + margin:0 auto; } blockquote { - margin: 0; - padding: 0 0 0 20px; - font-style: italic; + border-left:1px solid #e5e5e5; + margin:0; + padding:0 0 0 20px; + font-style:italic; } -dl, dt, dd, dl p { - font-color: #444; -} - -dl dt { - font-weight: bold; -} - -dl dd { - padding-left: 20px; - font-style: italic; -} - -dl p { - padding-left: 20px; - font-style: italic; -} - -hr { - border:0; - background:#ccc; - height:1px; - margin:0 0 24px; -} - -/* Images */ - -img { - position: relative; - margin: 0 auto; - max-width: 650px; - padding: 5px; - margin: 10px 0 32px 0; - border: 1px solid #ccc; -} - -p img { - display: inline; - margin: 0; - padding: 0; - vertical-align: middle; - text-align: center; - border: none; -} - -/* Code blocks */ - code, pre { - font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; - color:#000; - font-size:14px; + font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal, Consolas, Liberation Mono, DejaVu Sans Mono, Courier New, monospace; + color:#333; + font-size:12px; } pre { - padding: 4px 12px; - background: #FDFEFB; - border-radius:4px; - border:1px solid #D7D8C8; - overflow: auto; - overflow-y: hidden; - margin-bottom: 32px; + padding:8px 15px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + overflow-x: auto; } - -/* Tables */ - table { width:100%; + border-collapse:collapse; } -table { - border: 1px solid #ccc; - margin-bottom: 32px; - text-align: left; - } +th, td { + text-align:left; + padding:5px 10px; + border-bottom:1px solid #e5e5e5; +} + +dt { + color:#444; + font-weight:700; +} th { - font-family: 'Arvo', Helvetica, Arial, sans-serif; - font-size: 18px; - font-weight: normal; - padding: 10px; - background: #232323; - color: #FDFEFB; - } - -td { - padding: 10px; - background: #ccc; - } - - -/* Wrapper */ -.wrapper { - width:960px; + color:#444; } - -/* Header */ +img { + max-width:100%; +} header { - background-color: #171717; - color: #FDFDFB; - width:170px; + width:270px; float:left; position:fixed; - border: 1px solid #000; - -webkit-border-top-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -moz-border-radius-topright: 4px; - -moz-border-radius-bottomright: 4px; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - padding: 34px 25px 22px 50px; - margin: 30px 25px 0 0; - -webkit-font-smoothing: antialiased; -} - -p.header { - font-size: 16px; -} - -h1.header { - font-family: Arvo, sans-serif; - font-size: 30px; - font-weight: 300; - line-height: 1.3em; - border-bottom: none; - margin-top: 0; -} - - -h1.header, a.header, a.name, header a{ - color: #fff; -} - -a.header { - text-decoration: underline; -} - -a.name { - white-space: nowrap; + -webkit-font-smoothing:subpixel-antialiased; } header ul { list-style:none; + height:40px; padding:0; + background: #f4f4f4; + border-radius:5px; + border:1px solid #e0e0e0; + width:270px; } header li { - list-style-type: none; - width:132px; - height:15px; - margin-bottom: 12px; - line-height: 1em; - padding: 6px 6px 6px 7px; - - background: #AF0011; - background: -moz-linear-gradient(top, #AF0011 0%, #820011 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd)); - background: -webkit-linear-gradient(top, #AF0011 0%,#820011 100%); - background: -o-linear-gradient(top, #AF0011 0%,#820011 100%); - background: -ms-linear-gradient(top, #AF0011 0%,#820011 100%); - background: linear-gradient(top, #AF0011 0%,#820011 100%); - - border-radius:4px; - border:1px solid #0D0D0D; - - -webkit-box-shadow: inset 0px 1px 1px 0 rgba(233,2,38, 1); - box-shadow: inset 0px 1px 1px 0 rgba(233,2,38, 1); - + width:89px; + float:left; + border-right:1px solid #e0e0e0; + height:40px; } -header li:hover { - background: #C3001D; - background: -moz-linear-gradient(top, #C3001D 0%, #950119 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd)); - background: -webkit-linear-gradient(top, #C3001D 0%,#950119 100%); - background: -o-linear-gradient(top, #C3001D 0%,#950119 100%); - background: -ms-linear-gradient(top, #C3001D 0%,#950119 100%); - background: linear-gradient(top, #C3001D 0%,#950119 100%); +header li:first-child a { + border-radius:5px 0 0 5px; } -a.buttons { - -webkit-font-smoothing: antialiased; - background: url(../images/arrow-down.png) no-repeat; - font-weight: normal; - text-shadow: rgba(0, 0, 0, 0.4) 0 -1px 0; - padding: 2px 2px 2px 22px; - height: 30px; +header li:last-child a { + border-radius:0 5px 5px 0; } -a.github { - background: url(../images/octocat-small.png) no-repeat 1px; +header ul a { + line-height:1; + font-size:11px; + color:#999; + display:block; + text-align:center; + padding-top:6px; + height:34px; } -a.buttons:hover { - color: #fff; - text-decoration: none; +header ul a:hover { + color:#999; } +header ul a:active { + background-color:#f0f0f0; +} -/* Section - for main page content */ +strong { + color:#222; + font-weight:700; +} + +header ul li + li + li { + border-right:none; + width:89px; +} + +header ul a strong { + font-size:14px; + display:block; + color:#222; +} section { - width:650px; + width:500px; float:right; padding-bottom:50px; } +small { + font-size:11px; +} -/* Footer */ +hr { + border:0; + background:#e5e5e5; + height:1px; + margin:0 0 20px; +} footer { - width:170px; + width:270px; float:left; position:fixed; - bottom:10px; - padding-left: 50px; + bottom:50px; + -webkit-font-smoothing:subpixel-antialiased; } @media print, screen and (max-width: 960px) { @@ -346,18 +261,14 @@ footer { width:auto; } - footer { - border-top: 1px solid #ccc; - margin:0 84px 0 50px; - padding:0; - } - header { padding-right:320px; } section { - padding:20px 84px 20px 50px; + border:1px solid #e5e5e5; + border-width:1px 0; + padding:20px 0; margin:0 0 20px; } @@ -367,8 +278,8 @@ footer { header ul { position:absolute; - right:130px; - top:84px; + right:50px; + top:52px; } } @@ -378,38 +289,30 @@ footer { } header { - padding:10px 20px 0; - margin-right: 0; + padding:0; } - section { - padding:10px 0 10px 20px; - margin:0 0 30px; - } - - footer { - margin: 0 0 0 30px; - } - header ul, header p.view { position:static; } + + pre, code { + word-wrap:normal; + } } @media print, screen and (max-width: 480px) { - - header ul li.download { - display:none; + body { + padding:15px; } - footer { - margin: 0 0 0 20px; - } - - footer a{ - display:block; - } + header ul { + width:99%; + } + header li, header ul li + li + li { + width:33%; + } } @media print { @@ -418,4 +321,4 @@ footer { font-size:12pt; color:#444; } -} \ No newline at end of file +}