Browse Source

Fix issue #86 : possibilité de changer de thème

Désormais il est possible de créer des thèmes. Le thème peut être changé
sur la page de configuration. Les thèmes sont détectés grâce à un
fichier metadata.json détaillant le nom du thème, son auteur, une petite
description et une version.

Un nouveau thème "Flat design" a été ajouté et est pleinement
fonctionnel
Marien Fressinaud 12 years ago
parent
commit
abb25a58dc
100 changed files with 1727 additions and 4 deletions
  1. 0 0
      .gitignore
  2. 3 3
      app/App_FrontController.php
  3. 7 0
      app/controllers/configureController.php
  4. 2 0
      app/i18n/en.php
  5. 2 0
      app/i18n/fr.php
  6. 38 0
      app/models/RSSThemes.php
  7. 13 0
      app/views/configure/display.phtml
  8. 2 1
      public/data/.gitignore
  9. BIN
      public/data/grey.gif
  10. 0 0
      public/themes/default/fallback.css
  11. 0 0
      public/themes/default/fonts/openSans.woff
  12. 3 0
      public/themes/default/freshrss.css
  13. 0 0
      public/themes/default/global.css
  14. 0 0
      public/themes/default/icons/add.png
  15. 0 0
      public/themes/default/icons/add.svg
  16. 0 0
      public/themes/default/icons/all.png
  17. 0 0
      public/themes/default/icons/all.svg
  18. 0 0
      public/themes/default/icons/category.png
  19. 0 0
      public/themes/default/icons/category.svg
  20. 0 0
      public/themes/default/icons/close.png
  21. 0 0
      public/themes/default/icons/close.svg
  22. 0 0
      public/themes/default/icons/configure.png
  23. 0 0
      public/themes/default/icons/configure.svg
  24. 0 0
      public/themes/default/icons/down.png
  25. 0 0
      public/themes/default/icons/down.svg
  26. 0 0
      public/themes/default/icons/help.png
  27. 0 0
      public/themes/default/icons/help.svg
  28. 0 0
      public/themes/default/icons/link.png
  29. 0 0
      public/themes/default/icons/link.svg
  30. 0 0
      public/themes/default/icons/login.png
  31. 0 0
      public/themes/default/icons/login.svg
  32. 0 0
      public/themes/default/icons/logout.png
  33. 0 0
      public/themes/default/icons/logout.svg
  34. 0 0
      public/themes/default/icons/next.png
  35. 0 0
      public/themes/default/icons/next.svg
  36. 0 0
      public/themes/default/icons/non-starred.png
  37. 0 0
      public/themes/default/icons/non-starred.svg
  38. 0 0
      public/themes/default/icons/note.png
  39. 0 0
      public/themes/default/icons/note.svg
  40. 0 0
      public/themes/default/icons/note_empty.png
  41. 0 0
      public/themes/default/icons/note_empty.svg
  42. 0 0
      public/themes/default/icons/previous.png
  43. 0 0
      public/themes/default/icons/previous.svg
  44. 0 0
      public/themes/default/icons/read.png
  45. 0 0
      public/themes/default/icons/read.svg
  46. 0 0
      public/themes/default/icons/refresh.png
  47. 0 0
      public/themes/default/icons/refresh.svg
  48. 0 0
      public/themes/default/icons/rss.png
  49. 0 0
      public/themes/default/icons/rss.svg
  50. 0 0
      public/themes/default/icons/search.png
  51. 0 0
      public/themes/default/icons/search.svg
  52. 0 0
      public/themes/default/icons/share.png
  53. 0 0
      public/themes/default/icons/share.svg
  54. 0 0
      public/themes/default/icons/starred.png
  55. 0 0
      public/themes/default/icons/starred.svg
  56. 0 0
      public/themes/default/icons/tag.png
  57. 0 0
      public/themes/default/icons/tag.svg
  58. 0 0
      public/themes/default/icons/unread.png
  59. 0 0
      public/themes/default/icons/unread.svg
  60. 0 0
      public/themes/default/icons/up.png
  61. 0 0
      public/themes/default/icons/up.svg
  62. 0 0
      public/themes/default/loader.gif
  63. 6 0
      public/themes/default/metadata.json
  64. 3 0
      public/themes/default/style.css
  65. BIN
      public/themes/flat-design/fonts/openSans.woff
  66. 625 0
      public/themes/flat-design/freshrss.css
  67. 543 0
      public/themes/flat-design/global.css
  68. BIN
      public/themes/flat-design/icons/add.png
  69. 30 0
      public/themes/flat-design/icons/add.svg
  70. BIN
      public/themes/flat-design/icons/all.png
  71. 32 0
      public/themes/flat-design/icons/all.svg
  72. BIN
      public/themes/flat-design/icons/category.png
  73. 31 0
      public/themes/flat-design/icons/category.svg
  74. BIN
      public/themes/flat-design/icons/close.png
  75. 28 0
      public/themes/flat-design/icons/close.svg
  76. BIN
      public/themes/flat-design/icons/configure.png
  77. 31 0
      public/themes/flat-design/icons/configure.svg
  78. BIN
      public/themes/flat-design/icons/down.png
  79. 31 0
      public/themes/flat-design/icons/down.svg
  80. BIN
      public/themes/flat-design/icons/help.png
  81. 32 0
      public/themes/flat-design/icons/help.svg
  82. BIN
      public/themes/flat-design/icons/link.png
  83. 24 0
      public/themes/flat-design/icons/link.svg
  84. BIN
      public/themes/flat-design/icons/login.png
  85. 33 0
      public/themes/flat-design/icons/login.svg
  86. BIN
      public/themes/flat-design/icons/logout.png
  87. 33 0
      public/themes/flat-design/icons/logout.svg
  88. BIN
      public/themes/flat-design/icons/next.png
  89. 31 0
      public/themes/flat-design/icons/next.svg
  90. BIN
      public/themes/flat-design/icons/non-starred.png
  91. 22 0
      public/themes/flat-design/icons/non-starred.svg
  92. BIN
      public/themes/flat-design/icons/note.png
  93. 30 0
      public/themes/flat-design/icons/note.svg
  94. BIN
      public/themes/flat-design/icons/note_empty.png
  95. 30 0
      public/themes/flat-design/icons/note_empty.svg
  96. BIN
      public/themes/flat-design/icons/previous.png
  97. 31 0
      public/themes/flat-design/icons/previous.svg
  98. BIN
      public/themes/flat-design/icons/read.png
  99. 31 0
      public/themes/flat-design/icons/read.svg
  100. BIN
      public/themes/flat-design/icons/refresh.png

+ 0 - 0
.gitignore


+ 3 - 3
app/App_FrontController.php

@@ -30,6 +30,7 @@ class App_FrontController extends FrontController {
 		include (APP_PATH . '/models/Exception/FeedException.php');
 		include (APP_PATH . '/models/Exception/EntriesGetterException.php');
 		include (APP_PATH . '/models/RSSConfiguration.php');
+		include (APP_PATH . '/models/RSSThemes.php');
 		include (APP_PATH . '/models/Days.php');
 		include (APP_PATH . '/models/Category.php');
 		include (APP_PATH . '/models/Feed.php');
@@ -50,9 +51,8 @@ class App_FrontController extends FrontController {
 	}
 
 	private function loadStylesAndScripts () {
-		View::appendStyle (Url::display ('/theme/fallback.css'));
-		View::appendStyle (Url::display ('/theme/global.css'));
-		View::appendStyle (Url::display ('/theme/freshrss.css'));
+		$theme = $this->conf->theme();
+		View::appendStyle (Url::display ('/themes/' . $theme . '/style.css'));
 		if (login_is_conf ($this->conf)) {
 			View::appendScript ('https://login.persona.org/include.js');
 		}

+ 7 - 0
app/controllers/configureController.php

@@ -137,6 +137,8 @@ class configureController extends ActionController {
 	}
 
 	public function displayAction () {
+		RSSThemes::init();
+
 		if (Request::isPost ()) {
 			$language = Request::param ('language', 'en');
 			$nb = Request::param ('posts_per_page', 10);
@@ -152,6 +154,7 @@ class configureController extends ActionController {
 			$openSite = Request::param ('mark_open_site', 'no');
 			$scroll = Request::param ('mark_scroll', 'no');
 			$urlShaarli = Request::param ('shaarli', '');
+			$theme = Request::param ('theme', 'default');
 
 			$this->view->conf->_language ($language);
 			$this->view->conf->_postsPerPage (intval ($nb));
@@ -169,6 +172,7 @@ class configureController extends ActionController {
 				'scroll' => $scroll,
 			));
 			$this->view->conf->_urlShaarli ($urlShaarli);
+			$this->view->conf->_theme ($theme);
 
 			$values = array (
 				'language' => $this->view->conf->language (),
@@ -183,6 +187,7 @@ class configureController extends ActionController {
 				'anon_access' => $this->view->conf->anonAccess (),
 				'mark_when' => $this->view->conf->markWhen (),
 				'url_shaarli' => $this->view->conf->urlShaarli (),
+				'theme' => $this->view->conf->theme ()
 			);
 
 			$confDAO = new RSSConfigurationDAO ();
@@ -203,6 +208,8 @@ class configureController extends ActionController {
 			Request::forward (array ('c' => 'configure', 'a' => 'display'), true);
 		}
 
+		$this->view->themes = RSSThemes::get();
+
 		View::prependTitle (Translate::t ('general_and_reading_management') . ' - ');
 	}
 

+ 2 - 0
app/i18n/en.php

@@ -168,11 +168,13 @@ return array (
 	'on_shaarli'			=> 'On your Shaarli',
 	'optimize_bdd'			=> 'Optimize database',
 	'optimize_todo_sometimes'	=> 'To do occasionally to reduce size of database',
+	'themes'			=> 'Themes',
 
 	'article'			=> 'Article',
 	'title'				=> 'Title',
 	'author'			=> 'Author',
 	'publication_date'		=> 'Date of publication',
+	'by'				=> 'by',
 
 	'load_more'			=> 'Load more articles',
 	'nothing_to_load'		=> 'There is no more articles',

+ 2 - 0
app/i18n/fr.php

@@ -168,11 +168,13 @@ return array (
 	'on_shaarli'			=> 'Sur votre Shaarli',
 	'optimize_bdd'			=> 'Optimiser la base de données',
 	'optimize_todo_sometimes'	=> 'À faire de temps en temps pour réduire la taille de la BDD',
+	'themes'			=> 'Thèmes',
 
 	'article'			=> 'Article',
 	'title'				=> 'Titre',
 	'author'			=> 'Auteur',
 	'publication_date'		=> 'Date de publication',
+	'by'				=> 'par',
 
 	'load_more'			=> 'Charger plus d\'articles',
 	'nothing_to_load'		=> 'Il n\'y a pas plus d\'article',

+ 38 - 0
app/models/RSSThemes.php

@@ -0,0 +1,38 @@
+<?php
+
+class RSSThemes extends Model {
+	private static $themes_dir = '/themes';
+
+	private static $list = array();
+
+	public static function init() {
+		$basedir = PUBLIC_PATH . self::$themes_dir;
+
+		$themes_list = array_diff(
+			scandir($basedir),
+			array('..', '.')
+		);
+
+		foreach ($themes_list as $theme_dir) {
+			$json_filename = $basedir . '/' . $theme_dir . '/metadata.json';
+			if(file_exists($json_filename)) {
+				$content = file_get_contents($json_filename);
+				$res = json_decode($content, true);
+
+				if($res &&
+					isset($res['name']) &&
+					isset($res['author']) &&
+					isset($res['description']) &&
+					isset($res['version'])) {
+					$theme = $res;
+					$theme['path'] = $theme_dir;
+					self::$list[] = $theme;
+				}
+			}
+		}
+	}
+
+	public static function get() {
+		return self::$list;
+	}
+}

+ 13 - 0
app/views/configure/display.phtml

@@ -40,6 +40,19 @@
 	
 		<legend><?php echo Translate::t ('reading_configuration'); ?></legend>
 
+		<div class="form-group">
+			<label class="group-name" for="theme"><?php echo Translate::t ('themes'); ?></label>
+			<div class="group-controls">
+				<select name="theme" id="theme">
+				<?php foreach ($this->themes as $theme) { ?>
+				<option value="<?php echo $theme['path']; ?>"<?php echo $this->conf->theme () == $theme['path'] ? ' selected="selected"' : ''; ?>>
+					<?php echo $theme['name'] . ' ' . Translate::t ('by') . ' ' . $theme['author']; ?> 
+				</option>
+				<?php } ?>
+				</select>
+			</div>
+		</div>
+
 		<div class="form-group">
 			<label class="group-name" for="posts_per_page"><?php echo Translate::t ('articles_per_page'); ?></label>
 			<div class="group-controls">

+ 2 - 1
public/data/.gitignore

@@ -1 +1,2 @@
-*
+favicons
+Configuration.array.php

BIN
public/data/grey.gif


+ 0 - 0
public/theme/fallback.css → public/themes/default/fallback.css


+ 0 - 0
public/theme/fonts/openSans.woff → public/themes/default/fonts/openSans.woff


+ 3 - 0
public/theme/freshrss.css → public/themes/default/freshrss.css

@@ -1,3 +1,6 @@
+@import url('global.css');
+@import url('fallback.css');
+
 /* STRUCTURE */
 .header {
 	display: table;

+ 0 - 0
public/theme/global.css → public/themes/default/global.css


+ 0 - 0
public/theme/icons/add.png → public/themes/default/icons/add.png


+ 0 - 0
public/theme/icons/add.svg → public/themes/default/icons/add.svg


+ 0 - 0
public/theme/icons/all.png → public/themes/default/icons/all.png


+ 0 - 0
public/theme/icons/all.svg → public/themes/default/icons/all.svg


+ 0 - 0
public/theme/icons/category.png → public/themes/default/icons/category.png


+ 0 - 0
public/theme/icons/category.svg → public/themes/default/icons/category.svg


+ 0 - 0
public/theme/icons/close.png → public/themes/default/icons/close.png


+ 0 - 0
public/theme/icons/close.svg → public/themes/default/icons/close.svg


+ 0 - 0
public/theme/icons/configure.png → public/themes/default/icons/configure.png


+ 0 - 0
public/theme/icons/configure.svg → public/themes/default/icons/configure.svg


+ 0 - 0
public/theme/icons/down.png → public/themes/default/icons/down.png


+ 0 - 0
public/theme/icons/down.svg → public/themes/default/icons/down.svg


+ 0 - 0
public/theme/icons/help.png → public/themes/default/icons/help.png


+ 0 - 0
public/theme/icons/help.svg → public/themes/default/icons/help.svg


+ 0 - 0
public/theme/icons/link.png → public/themes/default/icons/link.png


+ 0 - 0
public/theme/icons/link.svg → public/themes/default/icons/link.svg


+ 0 - 0
public/theme/icons/login.png → public/themes/default/icons/login.png


+ 0 - 0
public/theme/icons/login.svg → public/themes/default/icons/login.svg


+ 0 - 0
public/theme/icons/logout.png → public/themes/default/icons/logout.png


+ 0 - 0
public/theme/icons/logout.svg → public/themes/default/icons/logout.svg


+ 0 - 0
public/theme/icons/next.png → public/themes/default/icons/next.png


+ 0 - 0
public/theme/icons/next.svg → public/themes/default/icons/next.svg


+ 0 - 0
public/theme/icons/non-starred.png → public/themes/default/icons/non-starred.png


+ 0 - 0
public/theme/icons/non-starred.svg → public/themes/default/icons/non-starred.svg


+ 0 - 0
public/theme/icons/note.png → public/themes/default/icons/note.png


+ 0 - 0
public/theme/icons/note.svg → public/themes/default/icons/note.svg


+ 0 - 0
public/theme/icons/note_empty.png → public/themes/default/icons/note_empty.png


+ 0 - 0
public/theme/icons/note_empty.svg → public/themes/default/icons/note_empty.svg


+ 0 - 0
public/theme/icons/previous.png → public/themes/default/icons/previous.png


+ 0 - 0
public/theme/icons/previous.svg → public/themes/default/icons/previous.svg


+ 0 - 0
public/theme/icons/read.png → public/themes/default/icons/read.png


+ 0 - 0
public/theme/icons/read.svg → public/themes/default/icons/read.svg


+ 0 - 0
public/theme/icons/refresh.png → public/themes/default/icons/refresh.png


+ 0 - 0
public/theme/icons/refresh.svg → public/themes/default/icons/refresh.svg


+ 0 - 0
public/theme/icons/rss.png → public/themes/default/icons/rss.png


+ 0 - 0
public/theme/icons/rss.svg → public/themes/default/icons/rss.svg


+ 0 - 0
public/theme/icons/search.png → public/themes/default/icons/search.png


+ 0 - 0
public/theme/icons/search.svg → public/themes/default/icons/search.svg


+ 0 - 0
public/theme/icons/share.png → public/themes/default/icons/share.png


+ 0 - 0
public/theme/icons/share.svg → public/themes/default/icons/share.svg


+ 0 - 0
public/theme/icons/starred.png → public/themes/default/icons/starred.png


+ 0 - 0
public/theme/icons/starred.svg → public/themes/default/icons/starred.svg


+ 0 - 0
public/theme/icons/tag.png → public/themes/default/icons/tag.png


+ 0 - 0
public/theme/icons/tag.svg → public/themes/default/icons/tag.svg


+ 0 - 0
public/theme/icons/unread.png → public/themes/default/icons/unread.png


+ 0 - 0
public/theme/icons/unread.svg → public/themes/default/icons/unread.svg


+ 0 - 0
public/theme/icons/up.png → public/themes/default/icons/up.png


+ 0 - 0
public/theme/icons/up.svg → public/themes/default/icons/up.svg


+ 0 - 0
public/theme/loader.gif → public/themes/default/loader.gif


+ 6 - 0
public/themes/default/metadata.json

@@ -0,0 +1,6 @@
+{
+  "name": "Default",
+  "author": "Marien Fressinaud",
+  "description": "Le thème par défaut pour FreshRSS",
+  "version": 0.1
+}

+ 3 - 0
public/themes/default/style.css

@@ -0,0 +1,3 @@
+@import url('global.css');
+@import url('freshrss.css');
+@import url('fallback.css');

BIN
public/themes/flat-design/fonts/openSans.woff


+ 625 - 0
public/themes/flat-design/freshrss.css

@@ -0,0 +1,625 @@
+/* STRUCTURE */
+body {
+	background: #fafafa;
+}
+
+.header {
+	display: table;
+	width: 100%;
+	table-layout: fixed;
+	background: #ecf0f1;
+}
+	.header > .item {
+		display: table-cell;
+		padding: 10px 0;
+		vertical-align: middle;
+		text-align: center;
+	}
+		.header > .item.title {
+			width: 250px;
+		}
+			.header > .item.title .logo {
+				display: inline-block;
+				width: 32px;
+				padding: 10px;
+			}
+			.header > .item.title h1 {
+				display: inline-block;
+				margin: 0;
+				vertical-align: bottom;
+			}
+			.header > .item.title a:hover {
+				text-decoration: none;
+			}
+		.header > .item.search input {
+			width: 250px;
+			transition: width 200ms linear;
+			border-radius: 5px 0 0 5px;
+		}
+			.header .item.search input:focus {
+				width: 300px;
+			}
+		.header > .item.configure {
+			width: 100px;
+		}
+
+#global {
+	display: table;
+	width: 100%;
+	height: 100%;
+	table-layout: fixed;
+}
+	.aside {
+		display: table-cell;
+		height: 100%;
+		width: 250px;
+		vertical-align: top;
+		background: #ecf0f1;
+	}
+		.aside .nav-form input {
+			width: 180px;
+		}
+		.aside.aside_flux {
+			padding: 10px 0 40px;
+		}
+		.aside.aside_feed .nav-form input {
+			width: 140px;
+		}
+		.aside.aside_feed .nav-form .dropdown .dropdown-menu {
+			right: -20px;
+		}
+
+	.nav_menu {
+		width: 100%;
+		text-align: center;
+		padding: 5px 0;
+	}
+
+.favicon {
+	height: 16px;
+	width: 16px;
+}
+
+.categories {
+	margin: 0;
+	padding: 0;
+	text-align: center;
+	list-style: none;
+}
+	.categories .all,
+	.categories .favorites,
+	.categories .category {
+		display: block;
+		padding: 5px 0;
+		width: 220px;
+		margin: 5px auto;
+		text-align: left;
+		overflow: hidden;
+		white-space: nowrap;
+		text-overflow: ellipsis;
+	}
+		.categories .all .btn,
+		.categories .favorites .btn,
+		.categories .category .btn:first-child {
+			width: 195px;
+			position: relative;
+		}
+	.categories .feeds {
+		width: 220px;
+		margin: 0 auto;
+		list-style: none;
+	}
+		.categories .feeds .item.active:after {
+			content: "⇢";
+			line-height: 35px;
+			float: right;
+		}
+		.categories .feeds .item.error .feed {
+			color: #BD362F;
+		}
+		.categories .feeds .item .feed {
+			display: inline-block;
+			margin: 0;
+			width: 165px;
+			line-height: 35px;
+			font-size: 90%;
+			vertical-align: middle;
+			text-align: left;
+			overflow: hidden;
+			white-space: nowrap;
+			text-overflow: ellipsis;
+		}
+		.categories .feeds .dropdown .dropdown-menu {
+			left: 0;
+		}
+		.categories .feeds .item .dropdown-toggle i {
+			background-image: none;
+		}
+			.categories .feeds .item .dropdown-target:target ~ .dropdown-toggle i,
+			.categories .feeds .item:hover .dropdown-toggle i,
+			.categories .feeds .item.active .dropdown-toggle i {
+				background-image: url("icons/configure.png");
+				background-image: url("icons/configure.svg");
+				background-color: #95a5a6;
+			}
+	.categories .notRead {
+		position: absolute;
+		top: 5px; right: 3px;
+		color: #fff;
+		font-size: 90%;
+	}
+
+.post {
+	padding: 10px 50px;
+}
+	.post form {
+		margin: 10px 0;
+	}
+
+.day {
+	display: inline;
+	min-height: 50px;
+	padding: 5px 15px;
+	font-size: 130%;
+	font-weight: bold;
+	line-height: 50px;
+	background: #ecf0f1;
+	border-radius: 0 20px 20px 0;
+}
+
+.flux {
+}
+	.flux.active {
+		border-left: 3px solid #3498db;
+		background: #fff;
+	}
+	.flux.not_read {
+		border-left: 3px solid #FF5300;
+		background: #FFF3ED;
+	}
+	.flux.favorite {
+		border-left: 3px solid #FFC300;
+		background: #FFF6DA;
+	}
+
+	.flux_header {
+		height: 25px;
+		font-size: 12px;
+		line-height: 25px;
+		border-top: 1px solid #ecf0f1;
+	}
+		.item.manage {
+			width: 80px;
+			white-space: nowrap;
+			font-size: 0px;
+			text-align: center;
+		}
+			.item.manage .read {
+				display: inline-block;
+				width: 40px;
+				height: 40px;
+				background: url("icons/read.png") center center no-repeat;
+				background: url("icons/read.svg") center center no-repeat;
+				vertical-align: middle;
+			}
+				.item.manage .read:hover {
+					text-decoration: none;
+				}
+				.flux.not_read .item.manage .read {
+					background: url("icons/unread.png") center center no-repeat;
+					background: url("icons/unread.svg") center center no-repeat;
+				}
+			.item.manage .bookmark {
+				display: inline-block;
+				width: 40px;
+				height: 40px;
+				background: url("icons/non-starred.png") center center no-repeat;
+				background: url("icons/non-starred.svg") center center no-repeat;
+				vertical-align: middle;
+			}
+				.item.manage .bookmark:hover {
+					text-decoration: none;
+				}
+				.flux.favorite .item.manage .bookmark {
+					background: url("icons/starred.png") center center no-repeat;
+					background: url("icons/starred.svg") center center no-repeat;
+				}
+		.flux_header .item.website {
+			width: 200px;
+			overflow: hidden;
+			white-space: nowrap;
+			text-overflow: ellipsis;
+			line-height: 40px;
+		}
+			.flux_header .item.website .favicon {
+				padding: 5px;
+			}
+			.flux_header .item.website a {
+				display: block;
+				height: 40px;
+			}
+		.flux_header .item.title {
+			overflow: hidden;
+			white-space: nowrap;
+			text-overflow: ellipsis;
+			cursor: pointer;
+		}
+			.flux.not_read .flux_header .item.title {
+				font-weight: bold;
+			}
+		.flux_header .item.date {
+			width: 200px;
+			overflow: hidden;
+			white-space: nowrap;
+			text-overflow: ellipsis;
+			text-align: right;
+			font-size: 10px;
+			color: #666;
+			cursor: pointer;
+		}
+		.flux_header .item.link {
+			width: 40px;
+			text-align: center;
+		}
+			.flux_header .item.link a {
+				display: inline-block;
+				width: 40px;
+				height: 40px;
+				background: url("icons/link.png") center center no-repeat;
+				background: url("icons/link.svg") center center no-repeat;
+				vertical-align: middle;
+			}
+				.flux_header .item.link a:hover {
+					text-decoration: none;
+				}
+
+#stream.reader .flux {
+	padding: 0 0 30px;
+	border: none;
+	background: #ecf0f1;
+	color: #34495e;
+	font-size: 120%;
+}
+	#stream.reader .flux a {
+	}
+	#stream.reader .flux .author {
+		margin: 0 0 10px;
+		font-size: 90%;
+		color: #aaa;
+	}
+
+#stream.global {
+	text-align: center;
+}
+	#stream.global .category {
+		display: inline-block;
+		width: 280px;
+		margin: 20px 10px;
+		vertical-align: top;
+		border: 1px solid #aaa;
+		border-radius: 5px;
+		text-align: left;
+		box-shadow: 0 0 5px #bbb;
+	}
+		#stream.global .cat_header {
+			height: 35px;
+			padding: 0 10px;
+			background: #eee;
+			border-bottom: 1px solid #aaa;
+			border-radius: 5px 5px 0 0;
+			line-height: 35px;
+			font-size: 120%;
+		}
+			#stream.global .cat_header a {
+				color: #333;
+				text-shadow: 0 -1px 0px #aaa;
+			}
+		#stream.global .category .feeds {
+			max-height: 250px;
+			margin: 0;
+			list-style: none;
+			overflow: auto;
+		}
+			#stream.global .category .feeds .item {
+				padding: 2px 10px;
+				font-size: 90%;
+			}
+
+.content {
+	min-height: 300px;
+	max-width: 550px;
+	margin: 0 auto;
+	padding: 20px 10px;
+	line-height: 170%;
+	word-wrap: break-word;
+}
+	.content .title {
+		margin: 0 0 5px;
+	}
+	.content h1, .content h2, .content h3 {
+		margin: 20px 0 5px;
+	}
+
+	.content p {
+		margin: 0 0 20px;
+	}
+	.content img.big {
+		display: block;
+		margin: 10px auto;
+	}
+	.content hr {
+		margin: 30px 0;
+		height: 1px;
+		background: #ddd;
+		border: 0;
+	}
+	.content pre {
+		margin: 10px auto;
+		padding: 10px;
+		overflow: auto;
+		background: #000;
+		color: #fff;
+		font-size: 110%;
+	}
+	.content q, .content blockquote {
+		display: block;
+		margin: 5px 0;
+		padding: 5px 20px;
+		font-style: italic;
+		border-left: 4px solid #ccc;
+		color: #666;
+	}
+		.content blockquote p {
+			margin: 0;
+		}
+
+.flux_content .bottom {
+	font-size: 90%;
+	text-align: center;
+}
+
+/*** PAGINATION ***/
+.pagination {
+	display: table;
+	width: 100%;
+	margin: 0;
+	background: #ecf0f1;
+	text-align: center;
+	color: #000;
+	font-size: 80%;
+	line-height: 200%;
+	table-layout: fixed;
+	font-weight: bold;
+}
+	.pagination .item {
+		display: table-cell;
+		line-height: 40px;
+		vertical-align: top;
+	}
+		.pagination .item.pager-current {
+			font-weight: bold;
+			font-size: 140%;
+			color: #ecf0f1;
+			background: #34495e;
+		}
+		.pagination .item.pager-first,
+		.pagination .item.pager-previous,
+		.pagination .item.pager-next,
+		.pagination .item.pager-last {
+			width: 100px;
+		}
+		.pagination .item a {
+			display: block;
+			color: #000;
+			font-weight: bold;
+			line-height: 40px;
+		}
+			.pagination .item a:hover {
+				color: #ecf0f1;
+				background: #34495e;
+				text-decoration: none;
+			}
+
+.nav_entries {
+	display: table;
+	width: 250px;
+	height: 40px;
+	position: fixed;
+	bottom: 0;
+	left: 0;
+	margin: 0;
+	background: #34495e;
+	text-align: center;
+	line-height: 40px;
+	table-layout: fixed;
+}
+	.nav_entries .item {
+		display: table-cell;
+		width: 30%;
+	}
+		.nav_entries .item a {
+			display: block;
+		}
+		.nav_entries .item .icon.i_up {
+			margin: 5px 0 0;
+			vertical-align: top;
+		}
+
+.pagination .loading,
+.pagination a:hover.loading {
+	background: url("loader.gif") center center no-repeat #34495e;
+	font-size: 0;
+}
+
+/*** NOTIFICATION ***/
+.notification {
+	position: fixed;
+	top: 10px;
+	left: 10%; right: 10%;
+	min-height: 30px;
+	padding: 10px;
+	line-height: 30px;
+	text-align: center;
+	border-radius: 3px;
+	background: #ddd;
+	color: #666;
+	font-weight: bold;
+}
+	.notification.good {
+		background: #1abc9c;
+		color: #fff;
+	}
+	.notification.bad {
+		background: #e74c3c;
+		color: #fff;
+	}
+	.notification a.close {
+		display: inline-block;
+		width: 16px;
+		height: 16px;
+		float: right;
+		margin: -16px -16px 0 0;
+		padding: 5px;
+		border-radius: 3px;
+		line-height: 16px;
+	}
+		.notification.good a.close {
+			background: #1abc9c;
+		}
+		.notification.bad a.close {
+			background: #e74c3c;
+		}
+
+.toggle_aside, .btn.toggle_aside {
+	display: none;
+}
+
+.actualizeProgress {
+	position: fixed;
+	top: 10px; left: 25%; right: 25%;
+	padding: 5px;
+	background: #3498db;
+	color: #fff;
+	text-align: center;
+	border-radius: 3px;
+	font-weight: bold;
+}
+	.actualizeProgress progress {
+		max-width: 100%;
+		width: 250px;
+		height: 15px;
+		vertical-align: middle;
+		background: #fff;
+		border: none;
+	}
+	.actualizeProgress .progress {
+		color: #ecf0f1;
+	}
+
+.logs {
+	border: 1px solid #34495e;
+}
+	.logs .log {
+		margin: 10px 0;
+		padding: 5px 2%;
+		overflow: auto;
+		background: #fafafa;
+		color: #666;
+		font-size: 90%;
+	}
+		.logs .log .date {
+			margin: 0 10px 0 0;
+			padding: 5px 10px;
+			border-radius: 20px;
+		}
+			.logs .log.error .date {
+				background: #e74c3c;
+				color: #fff;
+			}
+			.logs .log.warning .date {
+				background: #f39c12;
+			}
+			.logs .log.notice .date {
+				background: #ecf0f1;
+			}
+
+@media(max-width: 840px) {
+	.header,
+	.aside .btn-important,
+	.aside .feeds .dropdown,
+	.flux_header .item.website span,
+	.flux_header .item.date {
+		display: none;
+	}
+	.flux_header .item.website {
+		width: 40px;
+		text-align: center;
+	}
+		.flux_header .item.website .favicon {
+			padding: 12px;
+		}
+
+	.content {
+		font-size: 120%;
+	}
+
+	.pagination {
+		margin: 0 0 40px;
+	}
+	.pagination .pager-previous, .pagination .pager-next {
+		width: 100px;
+	}
+
+	.toggle_aside, .btn.toggle_aside {
+		display: inline-block;
+	}
+	.aside {
+		position: fixed;
+		top: 0; left: 0;
+		width: 0;
+		overflow: hidden;
+		z-index: 10;
+		transition: width 200ms linear;
+		background: #ecf0f1;
+	}
+		.aside.aside_flux {
+			padding: 10px 0 0;
+		}
+		.aside:target {
+			width: 80%;
+			border-right: 1px solid #aaa;
+			overflow: auto;
+		}
+		.aside .toggle_aside {
+			position: absolute;
+			right: 10px;
+			display: inline-block;
+			width: 26px;
+			height: 26px;
+			margin: 0 10px 0 0;
+			border-radius: 3px;
+			text-align: center;
+			line-height: 24px;
+			background: #95a5a6;
+		}
+			.aside .toggle_aside:hover {
+				background: #7f8c8d;
+			}
+		.aside .categories {
+			margin: 30px 0;
+		}
+
+	.nav_entries {
+		width: 100%;
+	}
+
+	.nav_menu .btn {
+		margin: 10px;
+	}
+	.nav_menu .stick {
+		margin: 0 10px;
+	}
+	.nav_menu .stick .btn {
+		margin: 10px 0;
+	}
+}

+ 543 - 0
public/themes/flat-design/global.css

@@ -0,0 +1,543 @@
+/* FONTS */
+@font-face {
+	font-family: "OpenSans";
+	src: url("fonts/openSans.woff") format("woff");
+}
+
+
+* {
+	margin: 0;
+	padding: 0;
+}
+html, body {
+	height: 100%;
+	font-size: 95%;
+	font-family: "OpenSans", "Cantarell", "Helvetica", "Arial", "sans-serif";
+}
+
+/* LIENS */
+a {
+	color: #2980b9;
+	text-decoration: none;
+}
+	a:hover {
+		text-decoration: underline;
+	}
+
+/* LISTES */
+ul, ol, dl {
+	margin: 10px 0 10px 30px;
+	line-height: 190%;
+}
+	dd {
+		margin: 0 0 10px 30px;
+	}
+
+/* TITRES */
+h1, h2, h3 {
+	min-height: 40px;
+	margin: 15px 0 5px;
+	line-height: 40px;
+}
+
+/* IMG */
+img {
+	height: auto;
+	max-width: 100%;
+	vertical-align: middle;
+}
+	a img {
+		border: none;
+	}
+
+/* VIDEOS */
+iframe, embed, object, video {
+	max-width: 100%;
+}
+
+/* FORMULAIRES */
+legend {
+	display: inline-block;
+	margin: 20px 0 5px;
+	padding: 5px 20px;
+	font-size: 150%;
+	clear: both;
+	background: #ecf0f1;
+	border-radius: 20px;
+}
+label {
+	display: block;
+	min-height: 25px;
+	padding: 5px 0;
+	font-size: 12px;
+	line-height: 25px;
+	cursor: pointer;
+	font-weight: bold;
+	color: #444;
+}
+input, select, textarea {
+	display: inline-block;
+	max-width: 100%;
+	min-height: 25px;
+	padding: 5px;
+	background: #FFF;
+	border: none;
+	border-bottom: 3px solid #ddd;
+	color: #666;
+	line-height: 25px;
+	vertical-align: middle;
+}
+	input[type="radio"],
+	input[type="checkbox"] {
+		width: 15px !important;
+		min-height: 15px !important;
+	}
+	input:focus, select:focus, textarea:focus {
+		color: #333;
+		border-color: #2980b9;
+	}
+
+.form-group {
+	margin: 0;
+	clear: both;
+}
+	.form-group.form-actions {
+		min-width: 250px;
+		margin: 20px 0;
+		padding: 5px 0;
+		background: #ecf0f1;
+		border-top: 3px solid #bdc3c7;
+		border-radius: 5px 5px 0 0;
+	}
+		.form-group.form-actions .btn {
+			margin: 0 10px;
+		}
+	.form-group .group-name {
+		display: block;
+		float: left;
+		width: 200px;
+		padding: 10px 0;
+		text-align: right;
+	}
+	.form-group .group-controls {
+		min-width: 250px;
+		min-height: 25px;
+		margin: 0 0 0 220px;
+		padding: 5px 0;
+	}
+		.form-group .group-controls label {
+			font-weight: normal;
+			font-size: 14px;
+			color: #000;
+		}
+		.form-group .group-controls .control {
+			display: block;
+			min-height: 30px;
+			padding: 5px 0;
+			line-height: 25px;
+			font-size: 14px;
+		}
+
+.stick {
+	display: inline-block;
+	white-space: nowrap;
+	font-size: 0px;
+	vertical-align: middle;
+}
+	.stick input {
+		font-size: 14px;
+	}
+	.stick .btn {
+		border-radius: 0;
+		font-size: 14px;
+	}
+	.stick .btn:first-child {
+		border-radius: 5px 0 0 5px;
+	}
+	.stick .btn:last-child {
+		border-radius: 0 5px 5px 0;
+	}
+	.stick .btn + .dropdown > .btn {
+		border-radius: 0 5px 5px 0;
+	}
+	.stick .btn + .dropdown a {
+		font-size: 12px;
+	}
+
+.btn {
+	display: inline-block;
+	min-height: 38px;
+	min-width: 18px;
+	padding: 5px 10px;
+	background: #3498db;
+	border-radius: 5px;
+	border: none;
+	border-bottom: 3px solid #2980b9;
+	color: #fff;
+	line-height: 20px;
+	vertical-align: middle;
+	cursor: pointer;
+	overflow: hidden;
+}
+	a.btn {
+		min-height: 25px;
+		line-height: 25px;
+	}
+	.btn:hover {
+		background: #2980b9;
+		text-decoration: none;
+	}
+	.btn.active,
+	.btn:active {
+		background: #2980b9;
+	}
+
+	.btn.btn-important {
+		background: #e67e22;
+		color: #fff;
+		border-bottom: 3px solid #d35400;
+	}
+		.btn.btn-important:hover {
+			background: #d35400;
+		}
+		.btn.btn-important:active {
+			background: #d35400;
+		}
+
+	.btn.btn-attention {
+		background: #e74c3c;
+		color: #fff;
+		border-bottom: 3px solid #c0392b;
+	}
+		.btn.btn-attention:hover {
+			background: #c0392b;
+		}
+		.btn.btn-attention:active {
+			background: #c0392b;
+		}
+
+/* NAVIGATION */
+.nav.nav-list {
+	border-right: 1px solid #ecf0f1;
+}
+.nav.nav-list .nav-header,
+.nav.nav-list .item {
+	display: block;
+	height: 35px;
+	line-height: 35px;
+	margin: 5px 0;
+}
+	.nav.nav-list .item:hover,
+	.nav.nav-list .item.active {
+		background: #2980b9;
+		color: #fff;
+	}
+		.nav.nav-list .item:hover a,
+		.nav.nav-list .item.active a {
+			color: #fff;
+		}
+	.nav.nav-list .disable {
+		color: #aaa;
+		background: #fafafa;
+		text-align: center;
+	}
+	.nav.nav-list .item > * {
+		display: block;
+		padding: 0 10px;
+		overflow: hidden;
+		white-space: nowrap;
+		text-overflow: ellipsis;
+	}
+		.nav.nav-list a:hover {
+			text-decoration: none;
+		}
+	.nav.nav-list .item.error a {
+		color: #BD362F;
+	}
+		.nav.nav-list .item.active.error a {
+			color: #fff;
+			background: #BD362F;
+		}
+
+	.nav.nav-list .nav-header {
+		padding: 0 10px;
+		margin: 0;
+		color: #fff;
+		background: #34495e;
+		font-weight: bold;
+	}
+	.nav.nav-list .separator {
+		display: block;
+		height: 0;
+		margin: 5px 0;
+		border-bottom: 1px solid #ddd;
+	}
+
+	.nav.nav-list .nav-form {
+		padding: 3px;
+		text-align: center;
+	}
+
+.nav-head {
+	display: block;
+	margin: 0;
+	background: #34495e;
+	color: #fff;
+	text-align: right;
+}
+	.nav-head a {
+		color: #fff;
+	}
+	.nav-head .item {
+		display: inline-block;
+		padding: 5px 10px;
+	}
+
+/* HORIZONTAL-LIST */
+.horizontal-list {
+	display: table;
+	table-layout: fixed;
+	margin: 0;
+	padding: 0;
+	width: 100%;
+}
+	.horizontal-list .item {
+		display: table-cell;
+		vertical-align: middle;
+	}
+
+/* DROPDOWN */
+.dropdown {
+	position: relative;
+	display: inline-block;
+}
+	.dropdown .dropdown-target {
+		display: none;
+	}
+
+	.dropdown .dropdown-menu {
+		display: none;
+		min-width: 200px;
+		margin: 5px 0 0;
+		padding: 5px 0;
+		position: absolute;
+		right: 0px;
+		background: #fff;
+		border: 1px solid #95a5a6;
+		border-radius: 3px;
+		text-align: left;
+	}
+		.dropdown .dropdown-menu .dropdown-header {
+			display: block;
+			padding: 0 5px;
+			color: #34495e;
+			font-weight: bold;
+			font-size: 14px;
+			line-height: 30px;
+		}
+		.dropdown .dropdown-menu .item {
+			display: block;
+			height: 30px;
+			font-size: 90%;
+			line-height: 30px;
+		}
+			.dropdown .dropdown-menu .item > * {
+				display: block;
+				padding: 0 25px;
+				line-height: 30px;
+			}
+			.dropdown .dropdown-menu .item:hover {
+				background: #2980b9;
+				color: #fff;
+			}
+				.dropdown .dropdown-menu .item:hover > * {
+					color: #fff;
+					text-decoration: none;
+				}
+		.dropdown .dropdown-menu .input {
+			display: block;
+			height: 40px;
+			font-size: 90%;
+			line-height: 30px;
+		}
+			.dropdown .dropdown-menu label {
+				font-weight: normal;
+			}
+			.dropdown .dropdown-menu .input input {
+				display: block;
+				height: 20px;
+				width: 95%;
+				margin: auto;
+				padding: 2px 5px;
+				border-radius: 3px;
+			}
+		.dropdown .dropdown-menu .separator {
+			display: block;
+			height: 0;
+			margin: 5px 0;
+			border-bottom: 1px solid #95a5a6;
+		}
+		.dropdown .dropdown-target:target ~ .dropdown-menu {
+			display: block;
+			z-index: 10;
+		}
+	.dropdown .dropdown-close {
+		display: inline-block;
+		position: absolute;
+		top: -10px; right: -10px;
+		width: 26px;
+		height: 26px;
+		background: #95a5a6;
+		line-height: 24px;
+		text-align: center;
+		border-radius: 3px;
+	}
+		.dropdown .dropdown-close a {
+			display: block;
+			width: 100%;
+			height: 100%;
+		}
+		.dropdown .dropdown-close:hover {
+			background: #7f8c8d;
+		}
+
+/* ALERTS */
+.alert {
+	display: block;
+	width: 90%;
+	margin: 15px auto;
+	padding: 10px 15px;
+	background: #f4f4f4;
+	border: 1px solid #ccc;
+	border-right: 1px solid #aaa;
+	border-bottom: 1px solid #aaa;
+	border-radius: 5px;
+	color: #aaa;
+	text-shadow: 0 0 1px #eee;
+}
+	.alert .alert-head {
+		margin: 0;
+		font-weight: bold;
+		font-size: 110%;
+	}
+	.alert.alert-warn {
+		background: #ffe;
+		border: 1px solid #eeb;
+		color: #c95;
+	}
+	.alert.alert-success {
+		background: #dfd;
+		border: 1px solid #cec;
+		color: #484;
+	}
+	.alert.alert-error {
+		background: #fdd;
+		border: 1px solid #ecc;
+		color: #844;
+	}
+
+/* ICONES */
+.icon {
+	display: inline-block;
+	width: 16px;
+	height: 16px;
+	vertical-align: middle;
+	line-height: 16px;
+	background: center center no-repeat;
+}
+	.icon.i_refresh {
+		background-image: url("icons/refresh.png");
+		background-image: url("icons/refresh.svg");
+	}
+	.icon.i_bookmark {
+		background-image: url("icons/starred.png");
+		background-image: url("icons/starred.svg");
+	}
+	.icon.i_not_bookmark {
+		background-image: url("icons/unstarred.png");
+		background-image: url("icons/unstarred.svg");
+	}
+	.icon.i_read {
+		background-image: url("icons/read.png");
+		background-image: url("icons/read.svg");
+	}
+	.icon.i_unread {
+		background-image: url("icons/unread.png");
+		background-image: url("icons/unread.svg");
+	}
+	.icon.i_all {
+		background-image: url("icons/all.png");
+		background-image: url("icons/all.svg");
+	}
+	.icon.i_close {
+		background-image: url("icons/close.png");
+		background-image: url("icons/close.svg");
+	}
+	.icon.i_search {
+		background-image: url("icons/search.png");
+		background-image: url("icons/search.svg");
+	}
+	.icon.i_configure {
+		background-image: url("icons/configure.png");
+		background-image: url("icons/configure.svg");
+	}
+	.icon.i_login {
+		background-image: url("icons/login.png");
+		background-image: url("icons/login.svg");
+	}
+	.icon.i_logout {
+		background-image: url("icons/logout.png");
+		background-image: url("icons/logout.svg");
+	}
+	.icon.i_add {
+		background-image: url("icons/add.png");
+		background-image: url("icons/add.svg");
+	}
+	.icon.i_link {
+		background-image: url("icons/link.png");
+		background-image: url("icons/link.svg");
+	}
+	.icon.i_down {
+		background-image: url("icons/down.png");
+		background-image: url("icons/down.svg");
+	}
+	.icon.i_up {
+		background-image: url("icons/up.png");
+		background-image: url("icons/up.svg");
+	}
+	.icon.i_next {
+		background-image: url("icons/next.png");
+		background-image: url("icons/next.svg");
+	}
+	.icon.i_prev {
+		background-image: url("icons/previous.png");
+		background-image: url("icons/previous.svg");
+	}
+	.icon.i_help {
+		background-image: url("icons/help.png");
+		background-image: url("icons/help.svg");
+	}
+	.icon.i_note {
+		background-image: url("icons/note.png");
+		background-image: url("icons/note.svg");
+	}
+	.icon.i_note_empty {
+		background-image: url("icons/note_empty.png");
+		background-image: url("icons/note_empty.svg");
+	}
+	.icon.i_category {
+		background-image: url("icons/category.png");
+		background-image: url("icons/category.svg");
+	}
+	.icon.i_rss {
+		background-image: url("icons/rss.png");
+		background-image: url("icons/rss.svg");
+	}
+	.icon.i_share {
+		background-image: url("icons/share.png");
+		background-image: url("icons/share.svg");
+	}
+	.icon.i_tag {
+		background-image: url("icons/tag.png");
+		background-image: url("icons/tag.svg");
+	}

BIN
public/themes/flat-design/icons/add.png


+ 30 - 0
public/themes/flat-design/icons/add.svg

@@ -0,0 +1,30 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:svg='http://www.w3.org/2000/svg' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' id='svg7384' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' version='1.1' inkscape:version='0.47 r22583' height='16' sodipodi:docname='list-add-symbolic.svg' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns='http://www.w3.org/2000/svg' width='16'>
+  <metadata id='metadata90'>
+    <rdf:RDF>
+      <cc:Work rdf:about=''>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
+        <dc:title>Gnome Symbolic Icon Theme</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview inkscape:object-paths='true' inkscape:cy='17.83946' inkscape:current-layer='layer12' inkscape:window-width='1920' pagecolor='#555753' showborder='false' showguides='true' inkscape:snap-nodes='false' objecttolerance='10' showgrid='true' inkscape:object-nodes='true' inkscape:pageshadow='2' inkscape:guide-bbox='true' inkscape:window-x='0' inkscape:snap-bbox='true' bordercolor='#FFFFFF' id='namedview88' inkscape:window-maximized='1' inkscape:snap-global='true' inkscape:window-y='26' gridtolerance='10' inkscape:zoom='1' inkscape:window-height='1021' borderopacity='1' guidetolerance='10' inkscape:snap-bbox-midpoints='false' inkscape:cx='-2.56708' inkscape:bbox-paths='false' inkscape:snap-grids='true' inkscape:pageopacity='1' inkscape:snap-to-guides='true'>
+    <inkscape:grid visible='true' spacingx='1px' type='xygrid' spacingy='1px' id='grid4866' empspacing='2' enabled='true' snapvisiblegridlinesonly='true'/>
+  </sodipodi:namedview>
+  <title id='title9167'>Gnome Symbolic Icon Theme</title>
+  <defs id='defs7386'/>
+  <g transform='translate(-60.0002,-726)' inkscape:groupmode='layer' id='layer9' inkscape:label='status' style='display:inline'/>
+  <g transform='translate(-60.0002,-726)' inkscape:groupmode='layer' id='layer10' inkscape:label='devices'/>
+  <g transform='translate(-60.0002,-726)' inkscape:groupmode='layer' id='layer11' inkscape:label='apps'/>
+  <g transform='translate(-60.0002,-726)' inkscape:groupmode='layer' id='layer12' inkscape:label='actions'>
+    
+    <path d='m 67.0002,729 0,4 -4,0 0,2 4,0 0,4 2,0 0,-4 4,0 0,-2 -4,0 0,-4 -2,0 z' id='rect31992' style='color:#FFFFFF;fill:#FFFFFF;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible'/>
+  </g>
+  <g transform='translate(-60.0002,-726)' inkscape:groupmode='layer' id='layer13' inkscape:label='places'/>
+  <g transform='translate(-60.0002,-726)' inkscape:groupmode='layer' id='layer14' inkscape:label='mimetypes'/>
+  <g transform='translate(-60.0002,-726)' inkscape:groupmode='layer' id='layer15' inkscape:label='emblems' style='display:inline'/>
+  <g transform='translate(-60.0002,-726)' inkscape:groupmode='layer' id='g4953' inkscape:label='categories' style='display:inline'/>
+</svg>

BIN
public/themes/flat-design/icons/all.png


+ 32 - 0
public/themes/flat-design/icons/all.svg

@@ -0,0 +1,32 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:svg='http://www.w3.org/2000/svg' id='svg7384' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' sodipodi:docname='view-list-symbolic.svg' version='1.1' inkscape:version='0.48.1 r9760' height='16' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns='http://www.w3.org/2000/svg' width='16'>
+  <metadata id='metadata90'>
+    <rdf:RDF>
+      <cc:Work rdf:about=''>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
+        <dc:title>Gnome Symbolic Icon Theme</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview inkscape:cy='71.95215' pagecolor='#555753' borderopacity='1' showborder='false' inkscape:bbox-paths='false' guidetolerance='10' inkscape:object-paths='true' inkscape:window-width='1198' showguides='true' inkscape:object-nodes='true' inkscape:snap-bbox='true' inkscape:pageshadow='2' inkscape:guide-bbox='true' inkscape:snap-nodes='false' bordercolor='#666666' objecttolerance='10' id='namedview88' showgrid='false' inkscape:window-maximized='0' inkscape:window-x='1582' inkscape:snap-global='true' inkscape:window-y='85' gridtolerance='10' inkscape:window-height='1079' inkscape:snap-to-guides='true' inkscape:current-layer='layer12' inkscape:snap-bbox-midpoints='false' inkscape:zoom='1' inkscape:cx='244.57499' inkscape:snap-grids='true' inkscape:pageopacity='1'>
+    <inkscape:grid spacingx='1px' spacingy='1px' id='grid4866' empspacing='2' enabled='true' type='xygrid' snapvisiblegridlinesonly='true' visible='true'/>
+  </sodipodi:namedview>
+  <title id='title9167'>Gnome Symbolic Icon Theme</title>
+  <defs id='defs7386'/>
+  <g inkscape:label='status' transform='translate(-40.0002,-746)' inkscape:groupmode='layer' id='layer9' style='display:inline'/>
+  <g inkscape:label='devices' transform='translate(-40.0002,-746)' inkscape:groupmode='layer' id='layer10'/>
+  <g inkscape:label='apps' transform='translate(-40.0002,-746)' inkscape:groupmode='layer' id='layer11'/>
+  <g inkscape:label='actions' transform='translate(-40.0002,-746)' inkscape:groupmode='layer' id='layer12'>
+    
+    <rect inkscape:label='a' x='43.000397' y='748.99976' id='rect7356' height='2.0002136' width='9.9996014' style='color:#FFFFFF;fill:#FFFFFF;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible'/>
+    <rect inkscape:label='a' x='43.000397' y='752.99976' id='rect7358' height='2.0002136' width='9.9996014' style='color:#FFFFFF;fill:#FFFFFF;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible'/>
+    <rect inkscape:label='a' x='43.000397' y='756.99976' id='rect7360' height='2.0002136' width='9.9996014' style='color:#FFFFFF;fill:#FFFFFF;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible'/>
+  </g>
+  <g inkscape:label='places' transform='translate(-40.0002,-746)' inkscape:groupmode='layer' id='layer13'/>
+  <g inkscape:label='mimetypes' transform='translate(-40.0002,-746)' inkscape:groupmode='layer' id='layer14'/>
+  <g inkscape:label='emblems' transform='translate(-40.0002,-746)' inkscape:groupmode='layer' id='layer15' style='display:inline'/>
+  <g inkscape:label='categories' transform='translate(-40.0002,-746)' inkscape:groupmode='layer' id='g4953' style='display:inline'/>
+</svg>

BIN
public/themes/flat-design/icons/category.png


+ 31 - 0
public/themes/flat-design/icons/category.svg

@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:svg='http://www.w3.org/2000/svg' id='svg7384' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' sodipodi:docname='folder-symbolic.svg' version='1.1' inkscape:version='0.48.0 r9654' height='16' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns='http://www.w3.org/2000/svg' width='16'>
+  <metadata id='metadata90'>
+    <rdf:RDF>
+      <cc:Work rdf:about=''>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
+        <dc:title>Gnome Symbolic Icon Theme</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview inkscape:cy='-173.07332' pagecolor='#555753' borderopacity='1' showborder='false' inkscape:bbox-paths='false' guidetolerance='10' inkscape:window-width='1310' showguides='true' inkscape:object-nodes='true' inkscape:snap-bbox='true' inkscape:pageshadow='2' inkscape:guide-bbox='true' inkscape:snap-nodes='true' bordercolor='#FFFFFF' objecttolerance='10' id='namedview88' showgrid='false' inkscape:window-maximized='0' inkscape:window-x='52' inkscape:snap-global='true' inkscape:window-y='24' gridtolerance='10' inkscape:window-height='690' inkscape:snap-to-guides='true' inkscape:current-layer='layer13' inkscape:zoom='1' inkscape:cx='-157.67647' inkscape:snap-grids='true' inkscape:pageopacity='1'>
+    <inkscape:grid spacingx='1px' spacingy='1px' id='grid4866' empspacing='2' enabled='true' type='xygrid' snapvisiblegridlinesonly='true' visible='true'/>
+  </sodipodi:namedview>
+  <title id='title9167'>Gnome Symbolic Icon Theme</title>
+  <defs id='defs7386'/>
+  <g inkscape:label='status' transform='translate(-442,-176)' inkscape:groupmode='layer' id='layer9' style='display:inline'/>
+  <g inkscape:label='devices' transform='translate(-442,-176)' inkscape:groupmode='layer' id='layer10'/>
+  <g inkscape:label='apps' transform='translate(-442,-176)' inkscape:groupmode='layer' id='layer11'/>
+  <g inkscape:label='actions' transform='translate(-442,-176)' inkscape:groupmode='layer' id='layer12'/>
+  <g inkscape:label='places' transform='translate(-442,-176)' inkscape:groupmode='layer' id='layer13'>
+    <g transform='translate(234.0002,-820)' id='g14154'>
+      <path inkscape:connector-curvature='0' d='m 208.53105,997 c -0.28913,0 -0.53125,0.24212 -0.53125,0.53125 l 0,13.93755 c 0,0.2985 0.23264,0.5312 0.53125,0.5312 l 14.9375,0 c 0.2986,0 0.53125,-0.2326 0.53125,-0.5312 l 0,-8.9376 c 0,-0.2891 -0.24212,-0.5312 -0.53125,-0.5312 l -12.46875,0 0,7.5 c 0,0.277 -0.223,0.5 -0.5,0.5 -0.277,0 -0.5,-0.223 -0.5,-0.5 l 0,-8 c 0,-0.277 0.223,-0.5 0.5,-0.5 l 2.96875,0 8.53125,0 0,-1.4062 c 0,-0.3272 -0.26666,-0.5938 -0.59375,-0.5938 l -7.40625,0 0,-1.46875 C 213.9998,997.2421 213.75768,997 213.46855,997 z' id='rect3845' sodipodi:nodetypes='ccccccccccsccccccccccc' style='fill:#FFFFFF;fill-opacity:1;stroke:none;display:inline'/>
+      
+    </g>
+  </g>
+  <g inkscape:label='mimetypes' transform='translate(-442,-176)' inkscape:groupmode='layer' id='layer14'/>
+  <g inkscape:label='emblems' transform='translate(-442,-176)' inkscape:groupmode='layer' id='layer15' style='display:inline'/>
+</svg>

BIN
public/themes/flat-design/icons/close.png


+ 28 - 0
public/themes/flat-design/icons/close.svg

@@ -0,0 +1,28 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:svg='http://www.w3.org/2000/svg' id='svg7384' version='1.1' height='16' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns='http://www.w3.org/2000/svg' width='16'>
+  <title id='title9167'>Gnome Symbolic Icon Theme</title>
+  <metadata id='metadata90'>
+    <rdf:RDF>
+      <cc:Work rdf:about=''>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
+        <dc:title>Gnome Symbolic Icon Theme</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs id='defs7386'/>
+  <g transform='translate(-60,-518)' id='layer9' style='display:inline'/>
+  <g transform='translate(-60,-518)' id='layer10'/>
+  <g transform='translate(-60,-518)' id='layer11'/>
+  <g transform='translate(-60,-518)' id='layer12'>
+    <g transform='translate(19,-242)' id='layer4-4-1' style='display:inline'>
+      
+      <path inkscape:connector-curvature='0' d='m 45,764 1,0 c 0.01037,-1.2e-4 0.02079,-4.6e-4 0.03125,0 0.254951,0.0112 0.50987,0.12858 0.6875,0.3125 L 49,766.59375 51.3125,764.3125 C 51.578125,764.082 51.759172,764.007 52,764 l 1,0 0,1 c 0,0.28647 -0.03434,0.55065 -0.25,0.75 l -2.28125,2.28125 2.25,2.25 C 52.906938,770.46942 52.999992,770.7347 53,771 l 0,1 -1,0 c -0.265301,-10e-6 -0.530586,-0.0931 -0.71875,-0.28125 L 49,769.4375 46.71875,771.71875 C 46.530586,771.90694 46.26529,772 46,772 l -1,0 0,-1 c -3e-6,-0.26529 0.09306,-0.53058 0.28125,-0.71875 l 2.28125,-2.25 L 45.28125,765.75 C 45.070508,765.55537 44.97809,765.28075 45,765 l 0,-1 z' id='path10839-9' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#FFFFFF;fill:#FFFFFF;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.78124988;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new;font-family:Andale Mono;-inkscape-font-specification:Andale Mono'/>
+    </g>
+  </g>
+  <g transform='translate(-60,-518)' id='layer13'/>
+  <g transform='translate(-60,-518)' id='layer14'/>
+  <g transform='translate(-60,-518)' id='layer15'/>
+</svg>

BIN
public/themes/flat-design/icons/configure.png


+ 31 - 0
public/themes/flat-design/icons/configure.svg

@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns='http://www.w3.org/2000/svg' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:cc='http://creativecommons.org/ns#' xmlns:svg='http://www.w3.org/2000/svg' width='16' sodipodi:docname='emblem-system-symbolic.svg' height='16' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' version='1.1' inkscape:version='0.48.1 r9760'>
+  <metadata id='metadata90'>
+    <rdf:RDF>
+      <cc:Work rdf:about=''>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
+        <dc:title>Gnome Symbolic Icon Theme</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview inkscape:window-height='967' inkscape:snap-bbox-midpoints='false' inkscape:snap-grids='true' inkscape:object-paths='false' pagecolor='#555753' inkscape:zoom='1' inkscape:current-layer='layer15' borderopacity='1' inkscape:snap-others='false' inkscape:window-x='2259' inkscape:window-y='356' inkscape:snap-to-guides='true' gridtolerance='10' id='namedview88' inkscape:snap-global='true' inkscape:cx='9.30971' inkscape:cy='-0.23089111' bordercolor='#666666' inkscape:window-width='1226' inkscape:snap-bbox='true' guidetolerance='10' showguides='true' showborder='false' inkscape:guide-bbox='true' inkscape:object-nodes='false' inkscape:pageopacity='1' inkscape:window-maximized='0' objecttolerance='10' showgrid='false' inkscape:snap-nodes='true' inkscape:bbox-paths='false' inkscape:pageshadow='2'>
+    <inkscape:grid visible='true' spacingx='1px' spacingy='1px' id='grid4866' type='xygrid' empspacing='2' enabled='true' snapvisiblegridlinesonly='true'/>
+  </sodipodi:namedview>
+  <title id='title9167'>Gnome Symbolic Icon Theme</title>
+  <defs id='defs7386'/>
+  <g inkscape:label='status' id='layer9' style='display:inline' transform='translate(-441.0002,-400.99999)' inkscape:groupmode='layer'/>
+  <g inkscape:label='devices' id='layer10' transform='translate(-441.0002,-400.99999)' inkscape:groupmode='layer'/>
+  <g inkscape:label='apps' id='layer11' transform='translate(-441.0002,-400.99999)' inkscape:groupmode='layer'/>
+  <g inkscape:label='places' id='layer13' transform='translate(-441.0002,-400.99999)' inkscape:groupmode='layer'/>
+  <g inkscape:label='mimetypes' id='layer14' transform='translate(-441.0002,-400.99999)' inkscape:groupmode='layer'/>
+  <g inkscape:label='emblems' id='layer15' style='display:inline' transform='translate(-441.0002,-400.99999)' inkscape:groupmode='layer'>
+    
+    <path id='path35543-6-4' d='m 449.0004,402.00002 c -0.22065,0 -0.44081,0.0113 -0.65625,0.0312 l -0.40625,2.09375 c -0.33446,0.0733 -0.66305,0.17589 -0.96875,0.3125 l -1.53125,-1.46875 c -0.38863,0.23011 -0.72695,0.51408 -1.0625,0.8125 l 0.90625,1.90625 c -0.22242,0.24899 -0.42425,0.5225 -0.59375,0.8125 l -2.09375,-0.28125 c -0.17772,0.40877 -0.30872,0.83637 -0.40625,1.28125 l 1.84375,1 c -0.0171,0.16809 -0.0312,0.3274 -0.0312,0.5 0,0.1726 0.0142,0.33191 0.0312,0.5 l -1.84375,1 c 0.0975,0.44488 0.22853,0.87248 0.40625,1.28125 l 2.09375,-0.28125 c 0.1695,0.29 0.37133,0.56351 0.59375,0.8125 l -0.90625,1.90625 c 0.33555,0.29842 0.67387,0.58239 1.0625,0.8125 l 1.53125,-1.46875 c 0.3057,0.13661 0.63429,0.23916 0.96875,0.3125 l 0.40625,2.09375 c 0.21544,0.02 0.4356,0.0312 0.65625,0.0312 0.22065,0 0.44081,-0.0113 0.65625,-0.0312 l 0.40625,-2.09375 c 0.33446,-0.0733 0.66305,-0.17589 0.96875,-0.3125 l 1.53125,1.46875 c 0.38863,-0.23011 0.72695,-0.51408 1.0625,-0.8125 l -0.90625,-1.90625 c 0.22242,-0.24899 0.42425,-0.5225 0.59375,-0.8125 l 2.09375,0.28125 c 0.17772,-0.40877 0.30872,-0.83637 0.40625,-1.28125 l -1.84375,-1 c 0.0171,-0.16809 0.0312,-0.3274 0.0312,-0.5 0,-0.1726 -0.0142,-0.33191 -0.0312,-0.5 l 1.84375,-1 c -0.0975,-0.44488 -0.22853,-0.87248 -0.40625,-1.28125 l -2.09375,0.28125 c -0.1695,-0.29 -0.37133,-0.56351 -0.59375,-0.8125 l 0.90625,-1.90625 c -0.33555,-0.29842 -0.67387,-0.58239 -1.0625,-0.8125 l -1.53125,1.46875 c -0.3057,-0.13661 -0.63429,-0.23916 -0.96875,-0.3125 l -0.40625,-2.09375 c -0.21544,-0.02 -0.4356,-0.0312 -0.65625,-0.0312 z m 0,4 c 1.65685,0 3,1.34315 3,3 0,1.65685 -1.34315,3 -3,3 -1.65685,0 -3,-1.34315 -3,-3 0,-1.65685 1.34315,-3 3,-3 z' style='color:#FFFFFF;fill:#FFFFFF;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate' inkscape:connector-curvature='0' sodipodi:nodetypes='sccccccccccsccccccccccsccccccccccsccccccccccssssss'/>
+  </g>
+  <g inkscape:label='emotes' id='g71291' style='display:inline' transform='translate(-441.0002,-400.99999)' inkscape:groupmode='layer'/>
+  <g inkscape:label='categories' id='g4953' style='display:inline' transform='translate(-441.0002,-400.99999)' inkscape:groupmode='layer'/>
+  <g inkscape:label='actions' id='layer12' style='display:inline' transform='translate(-441.0002,-400.99999)' inkscape:groupmode='layer'/>
+</svg>

BIN
public/themes/flat-design/icons/down.png


+ 31 - 0
public/themes/flat-design/icons/down.svg

@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' sodipodi:docname='go-down-symbolic.svg' height='16' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:svg='http://www.w3.org/2000/svg' inkscape:version='0.48.4 r9939' version='1.1' width='16' xmlns='http://www.w3.org/2000/svg'>
+  <metadata id='metadata90'>
+    <rdf:RDF>
+      <cc:Work rdf:about=''>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
+        <dc:title>Gnome Symbolic Icon Theme</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview inkscape:bbox-nodes='false' inkscape:bbox-paths='true' bordercolor='#666666' borderopacity='1' inkscape:current-layer='layer12' inkscape:cx='18.648774' inkscape:cy='9.99302' gridtolerance='10' inkscape:guide-bbox='true' guidetolerance='10' id='namedview88' inkscape:object-nodes='false' inkscape:object-paths='false' objecttolerance='10' pagecolor='#3a3b39' inkscape:pageopacity='1' inkscape:pageshadow='2' showborder='false' showgrid='false' showguides='true' inkscape:snap-bbox='true' inkscape:snap-bbox-midpoints='false' inkscape:snap-global='true' inkscape:snap-grids='true' inkscape:snap-nodes='false' inkscape:snap-others='false' inkscape:snap-to-guides='true' inkscape:window-height='1408' inkscape:window-maximized='1' inkscape:window-width='2560' inkscape:window-x='0' inkscape:window-y='0' inkscape:zoom='1'>
+    <inkscape:grid empspacing='2' enabled='true' id='grid4866' originx='60px' originy='530px' snapvisiblegridlinesonly='true' spacingx='1px' spacingy='1px' type='xygrid' visible='true'/>
+  </sodipodi:namedview>
+  <title id='title9167'>Gnome Symbolic Icon Theme</title>
+  <defs id='defs7386'/>
+  <g inkscape:groupmode='layer' id='layer9' inkscape:label='status' style='display:inline' transform='translate(-181.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='layer10' inkscape:label='devices' transform='translate(-181.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='layer11' inkscape:label='apps' transform='translate(-181.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='layer13' inkscape:label='places' transform='translate(-181.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='layer14' inkscape:label='mimetypes' transform='translate(-181.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='layer15' inkscape:label='emblems' style='display:inline' transform='translate(-181.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='g71291' inkscape:label='emotes' style='display:inline' transform='translate(-181.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='g4953' inkscape:label='categories' style='display:inline' transform='translate(-181.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='layer12' inkscape:label='actions' style='display:inline' transform='translate(-181.0002,-747)'>
+    
+    <path inkscape:connector-curvature='0' d='m 195.03152,751.00323 0,1.00001 c -9.1e-4,0.0111 5.9e-4,0.021 -9e-5,0.0312 -0.0112,0.25496 -0.12835,0.50994 -0.31251,0.6875 l -5.71875,6.29767 -5.71875,-6.29773 c -0.18821,-0.1881 -0.28121,-0.45346 -0.28122,-0.71875 l 0,-1.00001 1,0 c 0.26531,7e-5 0.53059,0.0931 0.71873,0.28131 l 4.28125,4.82896 4.28127,-4.82896 c 0.19464,-0.21073 0.46925,-0.30315 0.74998,-0.2813 z' id='path10839-9-9-5-9-1' sodipodi:nodetypes='ccsccccccccccc' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#FFFFFF;fill:#FFFFFF;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.78124988;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new;font-family:Andale Mono;-inkscape-font-specification:Andale Mono'/>
+  </g>
+</svg>

BIN
public/themes/flat-design/icons/help.png


+ 32 - 0
public/themes/flat-design/icons/help.svg

@@ -0,0 +1,32 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:svg='http://www.w3.org/2000/svg' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' id='svg7384' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' version='1.1' inkscape:version='0.47 r22583' height='16' sodipodi:docname='help-browser-symbolic.svg' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns='http://www.w3.org/2000/svg' width='16'>
+  <metadata id='metadata90'>
+    <rdf:RDF>
+      <cc:Work rdf:about=''>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
+        <dc:title>Gnome Symbolic Icon Theme</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview inkscape:object-paths='true' inkscape:cy='-218.16054' inkscape:current-layer='layer11' inkscape:window-width='1920' pagecolor='#555753' showborder='false' showguides='true' inkscape:snap-nodes='false' objecttolerance='10' showgrid='true' inkscape:object-nodes='true' inkscape:pageshadow='2' inkscape:guide-bbox='true' inkscape:window-x='0' inkscape:snap-bbox='true' bordercolor='#666666' id='namedview88' inkscape:window-maximized='1' inkscape:snap-global='true' inkscape:window-y='26' gridtolerance='10' inkscape:zoom='1' inkscape:window-height='1021' borderopacity='1' guidetolerance='10' inkscape:snap-bbox-midpoints='false' inkscape:cx='-124.56688' inkscape:bbox-paths='false' inkscape:snap-grids='true' inkscape:pageopacity='1' inkscape:snap-to-guides='true'>
+    <inkscape:grid visible='true' spacingx='1px' type='xygrid' spacingy='1px' id='grid4866' empspacing='2' enabled='true' snapvisiblegridlinesonly='true'/>
+  </sodipodi:namedview>
+  <title id='title9167'>Gnome Symbolic Icon Theme</title>
+  <defs id='defs7386'/>
+  <g transform='translate(-182,-490)' inkscape:groupmode='layer' id='layer9' inkscape:label='status' style='display:inline'/>
+  <g transform='translate(-182,-490)' inkscape:groupmode='layer' id='layer10' inkscape:label='devices'/>
+  <g transform='translate(-182,-490)' inkscape:groupmode='layer' id='layer11' inkscape:label='apps'>
+    <path d='m 190,490 c -4.4147,0 -8,3.5853 -8,8 0,4.4147 3.5853,8 8,8 4.4147,0 8,-3.5853 8,-8 0,-4.4147 -3.5853,-8 -8,-8 z m 0,2 c 3.3413,0 6,2.6587 6,6 0,3.3413 -2.6587,6 -6,6 -3.3413,0 -6,-2.6587 -6,-6 0,-3.3413 2.6587,-6 6,-6 z' id='rect11749-5-0-3' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#bebebe;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans'/>
+    
+    <path d='M 189.34375,495 C 188.05763,495 187,496.05763 187,497.34375 l 0,1.3125 c 0,1.28612 1.05763,2.34375 2.34375,2.34375 l 1.3125,0 C 191.94237,501 193,499.94237 193,498.65625 l 0,-1.3125 C 193,496.05763 191.94237,495 190.65625,495 l -1.3125,0 z m 0,1 1.3125,0 c 0.74942,0 1.34375,0.59433 1.34375,1.34375 l 0,1.3125 C 192,499.40567 191.40567,500 190.65625,500 l -1.3125,0 C 188.59433,500 188,499.40567 188,498.65625 l 0,-1.3125 C 188,496.59433 188.59433,496 189.34375,496 z' id='rect11749-5-0-3-3' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#bebebe;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans'/>
+    <path inkscape:connector-curvature='0' d='m 186.71875,491.4375 c -1.51031,0.6073 -2.6811,1.7985 -3.28125,3.3125 l 3.75,1.875 c 0.25196,-0.64029 0.74249,-1.17056 1.375,-1.4375 l -1.84375,-3.75 z m 6.5625,0 -1.84375,3.75 c 0.63251,0.26694 1.12304,0.79721 1.375,1.4375 l 3.75,-1.875 c -0.60015,-1.514 -1.77094,-2.7052 -3.28125,-3.3125 z m -6.09375,8 -3.75,1.875 c 0.60709,1.48862 1.78896,2.64995 3.28125,3.25 l 1.875,-3.75 c -0.62682,-0.25556 -1.14334,-0.75203 -1.40625,-1.375 z m 5.625,0 c -0.26291,0.62297 -0.77943,1.11944 -1.40625,1.375 l 1.875,3.75 c 1.49229,-0.60005 2.67416,-1.76138 3.28125,-3.25 l -3.75,-1.875 z' id='path4624' style='fill:#bebebe;fill-opacity:1;stroke:none'/>
+  </g>
+  <g transform='translate(-182,-490)' inkscape:groupmode='layer' id='layer12' inkscape:label='actions'/>
+  <g transform='translate(-182,-490)' inkscape:groupmode='layer' id='layer13' inkscape:label='places'/>
+  <g transform='translate(-182,-490)' inkscape:groupmode='layer' id='layer14' inkscape:label='mimetypes'/>
+  <g transform='translate(-182,-490)' inkscape:groupmode='layer' id='layer15' inkscape:label='emblems' style='display:inline'/>
+  <g transform='translate(-182,-490)' inkscape:groupmode='layer' id='g4953' inkscape:label='categories' style='display:inline'/>
+</svg>

BIN
public/themes/flat-design/icons/link.png


File diff suppressed because it is too large
+ 24 - 0
public/themes/flat-design/icons/link.svg


BIN
public/themes/flat-design/icons/login.png


+ 33 - 0
public/themes/flat-design/icons/login.svg

@@ -0,0 +1,33 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:svg='http://www.w3.org/2000/svg' id='svg7384' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' sodipodi:docname='changes-prevent-symbolic.svg' version='1.1' inkscape:version='0.48.1 r9760' height='16' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns='http://www.w3.org/2000/svg' width='16'>
+  <metadata id='metadata90'>
+    <rdf:RDF>
+      <cc:Work rdf:about=''>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
+        <dc:title>Gnome Symbolic Icon Theme</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview inkscape:cy='9.416826' pagecolor='#555753' borderopacity='1' showborder='false' inkscape:bbox-paths='false' guidetolerance='10' inkscape:object-paths='true' inkscape:window-width='1296' showguides='true' inkscape:object-nodes='true' inkscape:snap-bbox='true' inkscape:pageshadow='2' inkscape:guide-bbox='true' inkscape:snap-nodes='false' bordercolor='#666666' objecttolerance='10' id='namedview88' showgrid='false' inkscape:window-maximized='0' inkscape:window-x='1941' inkscape:snap-global='true' inkscape:window-y='81' gridtolerance='10' inkscape:window-height='1013' inkscape:snap-to-guides='true' inkscape:current-layer='layer9' inkscape:snap-bbox-midpoints='false' inkscape:zoom='1' inkscape:cx='52.563336' inkscape:snap-grids='true' inkscape:pageopacity='1'>
+    <inkscape:grid spacingx='1px' spacingy='1px' id='grid4866' empspacing='2' enabled='true' type='xygrid' snapvisiblegridlinesonly='true' visible='true'/>
+  </sodipodi:namedview>
+  <title id='title9167'>Gnome Symbolic Icon Theme</title>
+  <defs id='defs7386'/>
+  <g inkscape:label='status' transform='translate(-181.0002,-237)' inkscape:groupmode='layer' id='layer9' style='display:inline'>
+    <g inkscape:label='lock' transform='translate(161.0002,-39)' id='g4053' style='fill:#FFFFFF;fill-opacity:1'>
+      
+    </g>
+    <path inkscape:connector-curvature='0' d='m 184,244 c -0.554,0 -1,0.446 -1,1 l 0,0.53125 0,5.46875 12,0 0,-5.46875 L 195,245 c 0,-0.554 -0.446,-1 -1,-1 l -10,0 z' id='rect4063' sodipodi:nodetypes='csccccscc' style='color:#FFFFFF;fill:#FFFFFF;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible'/>
+    <path inkscape:connector-curvature='0' d='m 188,238 c -1.6447,0 -3,1.3553 -3,3 l 0,7 c 0,1.6447 1.3553,3 3,3 l 2,0 c 1.6447,0 3,-1.3553 3,-3 l 0,-7 c 0,-1.6447 -1.3553,-3 -3,-3 l -2,0 z m 0,2 2,0 c 0.5713,0 1,0.4287 1,1 l 0,7 c 0,0.5713 -0.4287,1 -1,1 l -2,0 c -0.5713,0 -1,-0.4287 -1,-1 l 0,-7 c 0,-0.5713 0.4287,-1 1,-1 z' id='rect4291' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#FFFFFF;fill:#FFFFFF;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans'/>
+  </g>
+  <g inkscape:label='devices' transform='translate(-181.0002,-237)' inkscape:groupmode='layer' id='layer10'/>
+  <g inkscape:label='apps' transform='translate(-181.0002,-237)' inkscape:groupmode='layer' id='layer11'/>
+  <g inkscape:label='actions' transform='translate(-181.0002,-237)' inkscape:groupmode='layer' id='layer12'/>
+  <g inkscape:label='places' transform='translate(-181.0002,-237)' inkscape:groupmode='layer' id='layer13'/>
+  <g inkscape:label='mimetypes' transform='translate(-181.0002,-237)' inkscape:groupmode='layer' id='layer14'/>
+  <g inkscape:label='emblems' transform='translate(-181.0002,-237)' inkscape:groupmode='layer' id='layer15' style='display:inline'/>
+  <g inkscape:label='categories' transform='translate(-181.0002,-237)' inkscape:groupmode='layer' id='g4953' style='display:inline'/>
+</svg>

BIN
public/themes/flat-design/icons/logout.png


+ 33 - 0
public/themes/flat-design/icons/logout.svg

@@ -0,0 +1,33 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:svg='http://www.w3.org/2000/svg' id='svg7384' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' sodipodi:docname='changes-allow-symbolic.svg' version='1.1' inkscape:version='0.48.1 r9760' height='16' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns='http://www.w3.org/2000/svg' width='16'>
+  <metadata id='metadata90'>
+    <rdf:RDF>
+      <cc:Work rdf:about=''>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
+        <dc:title>Gnome Symbolic Icon Theme</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview inkscape:cy='9.416826' pagecolor='#555753' borderopacity='1' showborder='false' inkscape:bbox-paths='false' guidetolerance='10' inkscape:object-paths='true' inkscape:window-width='1296' showguides='true' inkscape:object-nodes='true' inkscape:snap-bbox='true' inkscape:pageshadow='2' inkscape:guide-bbox='true' inkscape:snap-nodes='false' bordercolor='#666666' objecttolerance='10' id='namedview88' showgrid='false' inkscape:window-maximized='0' inkscape:window-x='1941' inkscape:snap-global='true' inkscape:window-y='81' gridtolerance='10' inkscape:window-height='1013' inkscape:snap-to-guides='true' inkscape:current-layer='layer9' inkscape:snap-bbox-midpoints='false' inkscape:zoom='1' inkscape:cx='32.563336' inkscape:snap-grids='true' inkscape:pageopacity='1'>
+    <inkscape:grid spacingx='1px' spacingy='1px' id='grid4866' empspacing='2' enabled='true' type='xygrid' snapvisiblegridlinesonly='true' visible='true'/>
+  </sodipodi:namedview>
+  <title id='title9167'>Gnome Symbolic Icon Theme</title>
+  <defs id='defs7386'/>
+  <g inkscape:label='status' transform='translate(-201.0002,-237)' inkscape:groupmode='layer' id='layer9' style='display:inline'>
+    <g inkscape:label='lock' transform='translate(181.0002,-39)' id='g4053-3' style='fill:#FFFFFF;fill-opacity:1'>
+      
+    </g>
+    <path inkscape:connector-curvature='0' d='m 204,246 c -0.554,0 -1,0.446 -1,1 l 0,0.53125 0,5.46875 12,0 0,-5.46875 L 215,247 c 0,-0.554 -0.446,-1 -1,-1 l -10,0 z' id='rect4063-6' sodipodi:nodetypes='csccccscc' style='color:#FFFFFF;fill:#FFFFFF;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible'/>
+    <path inkscape:connector-curvature='0' d='m 208.0002,237 c -1.64469,0 -3,1.35529 -3,3 l 0,3 2,0 0,-3 c 0,-0.57129 0.42873,-1 1,-1 l 2,0 c 0.57127,0 1,0.42871 1,1 l 0,7 2,0 0,-7 c 0,-1.64471 -1.35531,-3 -3,-3 l -2,0 z' id='rect4291-4' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#FFFFFF;fill:#FFFFFF;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans'/>
+  </g>
+  <g inkscape:label='devices' transform='translate(-201.0002,-237)' inkscape:groupmode='layer' id='layer10'/>
+  <g inkscape:label='apps' transform='translate(-201.0002,-237)' inkscape:groupmode='layer' id='layer11'/>
+  <g inkscape:label='actions' transform='translate(-201.0002,-237)' inkscape:groupmode='layer' id='layer12'/>
+  <g inkscape:label='places' transform='translate(-201.0002,-237)' inkscape:groupmode='layer' id='layer13'/>
+  <g inkscape:label='mimetypes' transform='translate(-201.0002,-237)' inkscape:groupmode='layer' id='layer14'/>
+  <g inkscape:label='emblems' transform='translate(-201.0002,-237)' inkscape:groupmode='layer' id='layer15' style='display:inline'/>
+  <g inkscape:label='categories' transform='translate(-201.0002,-237)' inkscape:groupmode='layer' id='g4953' style='display:inline'/>
+</svg>

BIN
public/themes/flat-design/icons/next.png


+ 31 - 0
public/themes/flat-design/icons/next.svg

@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' sodipodi:docname='go-next-symbolic.svg' height='16' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:svg='http://www.w3.org/2000/svg' inkscape:version='0.48.4 r9939' version='1.1' width='16' xmlns='http://www.w3.org/2000/svg'>
+  <metadata id='metadata90'>
+    <rdf:RDF>
+      <cc:Work rdf:about=''>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
+        <dc:title>Gnome Symbolic Icon Theme</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview inkscape:bbox-nodes='false' inkscape:bbox-paths='true' bordercolor='#666666' borderopacity='1' inkscape:current-layer='layer12' inkscape:cx='78.648774' inkscape:cy='9.99302' gridtolerance='10' inkscape:guide-bbox='true' guidetolerance='10' id='namedview88' inkscape:object-nodes='false' inkscape:object-paths='false' objecttolerance='10' pagecolor='#3a3b39' inkscape:pageopacity='1' inkscape:pageshadow='2' showborder='false' showgrid='false' showguides='true' inkscape:snap-bbox='true' inkscape:snap-bbox-midpoints='false' inkscape:snap-global='true' inkscape:snap-grids='true' inkscape:snap-nodes='false' inkscape:snap-others='false' inkscape:snap-to-guides='true' inkscape:window-height='1408' inkscape:window-maximized='1' inkscape:window-width='2560' inkscape:window-x='0' inkscape:window-y='0' inkscape:zoom='1'>
+    <inkscape:grid empspacing='2' enabled='true' id='grid4866' originx='120px' originy='530px' snapvisiblegridlinesonly='true' spacingx='1px' spacingy='1px' type='xygrid' visible='true'/>
+  </sodipodi:namedview>
+  <title id='title9167'>Gnome Symbolic Icon Theme</title>
+  <defs id='defs7386'/>
+  <g inkscape:groupmode='layer' id='layer9' inkscape:label='status' style='display:inline' transform='translate(-121.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='layer10' inkscape:label='devices' transform='translate(-121.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='layer11' inkscape:label='apps' transform='translate(-121.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='layer13' inkscape:label='places' transform='translate(-121.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='layer14' inkscape:label='mimetypes' transform='translate(-121.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='layer15' inkscape:label='emblems' style='display:inline' transform='translate(-121.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='g71291' inkscape:label='emotes' style='display:inline' transform='translate(-121.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='g4953' inkscape:label='categories' style='display:inline' transform='translate(-121.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='layer12' inkscape:label='actions' style='display:inline' transform='translate(-121.0002,-747)'>
+    
+    <path inkscape:connector-curvature='0' d='m 125.0004,749 1,0 c 0.0104,-1.2e-4 0.0208,-4.6e-4 0.0313,0 0.25495,0.0112 0.50987,0.12858 0.6875,0.3125 l 6.29767,5.71875 -6.29772,5.71875 c -0.18816,0.18819 -0.45346,0.28125 -0.71875,0.28125 l -1,0 0,-1 c 0,-0.26529 0.0931,-0.53058 0.28125,-0.71875 l 4.82897,-4.28125 -4.82897,-4.28125 c -0.21074,-0.19463 -0.30316,-0.46925 -0.28125,-0.75 z' id='path10839-9-9-5-9' sodipodi:nodetypes='ccsccccccccccc' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#FFFFFF;fill:#FFFFFF;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.78124988;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new;font-family:Andale Mono;-inkscape-font-specification:Andale Mono'/>
+  </g>
+</svg>

BIN
public/themes/flat-design/icons/non-starred.png


File diff suppressed because it is too large
+ 22 - 0
public/themes/flat-design/icons/non-starred.svg


BIN
public/themes/flat-design/icons/note.png


+ 30 - 0
public/themes/flat-design/icons/note.svg

@@ -0,0 +1,30 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:svg='http://www.w3.org/2000/svg' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' id='svg7384' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' version='1.1' inkscape:version='0.47 r22583' height='16' sodipodi:docname='user-available-symbolic.svg' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns='http://www.w3.org/2000/svg' width='16'>
+  <metadata id='metadata90'>
+    <rdf:RDF>
+      <cc:Work rdf:about=''>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
+        <dc:title>Gnome Symbolic Icon Theme</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview inkscape:cy='-71.46449' inkscape:current-layer='layer9' inkscape:window-width='1310' pagecolor='#555753' showborder='false' showguides='true' inkscape:snap-nodes='false' objecttolerance='10' showgrid='false' inkscape:object-nodes='true' inkscape:pageshadow='2' inkscape:guide-bbox='true' inkscape:window-x='54' inkscape:snap-bbox='true' bordercolor='#666666' id='namedview88' inkscape:window-maximized='0' inkscape:snap-global='true' inkscape:window-y='26' gridtolerance='10' inkscape:zoom='1' inkscape:window-height='690' borderopacity='1' guidetolerance='10' inkscape:cx='83.606112' inkscape:bbox-paths='false' inkscape:snap-grids='true' inkscape:pageopacity='1' inkscape:snap-to-guides='true'>
+    <inkscape:grid visible='true' spacingx='1px' type='xygrid' spacingy='1px' id='grid4866' empspacing='2' enabled='true' snapvisiblegridlinesonly='true'/>
+  </sodipodi:namedview>
+  <title id='title9167'>Gnome Symbolic Icon Theme</title>
+  <defs id='defs7386'/>
+  <g transform='translate(-41.000198,-357)' inkscape:groupmode='layer' id='layer9' inkscape:label='status' style='display:inline'>
+    
+    <path inkscape:connector-curvature='0' d='m 44.6875,358.0625 c -1.5235,0 -2.75,1.2265 -2.75,2.75 l 0,4.4375 c 0,1.5235 1.2265,2.75 2.75,2.75 l 6.305187,0 3.053347,3.98495 -0.07728,-4.0787 c 1.204532,-0.29284 2.09375,-1.35911 2.09375,-2.65625 l 0,-4.4375 c 0,-1.5235 -1.2265,-2.75 -2.75,-2.75 z' id='rect11261' sodipodi:nodetypes='sssscccssss' style='color:#bebebe;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.4000001;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate'/>
+  </g>
+  <g transform='translate(-41.000198,-357)' inkscape:groupmode='layer' id='layer10' inkscape:label='devices'/>
+  <g transform='translate(-41.000198,-357)' inkscape:groupmode='layer' id='layer11' inkscape:label='apps'/>
+  <g transform='translate(-41.000198,-357)' inkscape:groupmode='layer' id='layer12' inkscape:label='actions'/>
+  <g transform='translate(-41.000198,-357)' inkscape:groupmode='layer' id='layer13' inkscape:label='places'/>
+  <g transform='translate(-41.000198,-357)' inkscape:groupmode='layer' id='layer14' inkscape:label='mimetypes'/>
+  <g transform='translate(-41.000198,-357)' inkscape:groupmode='layer' id='layer15' inkscape:label='emblems' style='display:inline'/>
+  <g transform='translate(-41.000198,-357)' inkscape:groupmode='layer' id='g4953' inkscape:label='categories' style='display:inline'/>
+</svg>

BIN
public/themes/flat-design/icons/note_empty.png


+ 30 - 0
public/themes/flat-design/icons/note_empty.svg

@@ -0,0 +1,30 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:svg='http://www.w3.org/2000/svg' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' id='svg7384' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' version='1.1' inkscape:version='0.47 r22583' height='16' sodipodi:docname='user-invisible-symbolic.svg' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns='http://www.w3.org/2000/svg' width='16.000198'>
+  <metadata id='metadata90'>
+    <rdf:RDF>
+      <cc:Work rdf:about=''>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
+        <dc:title>Gnome Symbolic Icon Theme</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview inkscape:object-paths='true' inkscape:cy='6.91348' inkscape:current-layer='layer9' inkscape:window-width='1920' pagecolor='#555753' showborder='false' showguides='true' inkscape:snap-nodes='false' objecttolerance='10' showgrid='true' inkscape:object-nodes='true' inkscape:pageshadow='2' inkscape:guide-bbox='true' inkscape:window-x='0' inkscape:snap-bbox='true' bordercolor='#666666' id='namedview88' inkscape:window-maximized='1' inkscape:snap-global='true' inkscape:window-y='26' gridtolerance='10' inkscape:zoom='32' inkscape:window-height='1021' borderopacity='1' guidetolerance='10' inkscape:snap-bbox-midpoints='false' inkscape:cx='11.38402' inkscape:bbox-paths='false' inkscape:snap-grids='true' inkscape:pageopacity='1' inkscape:snap-to-guides='true'>
+    <inkscape:grid visible='true' spacingx='1px' type='xygrid' spacingy='1px' id='grid4866' empspacing='2' enabled='true' snapvisiblegridlinesonly='true'/>
+  </sodipodi:namedview>
+  <title id='title9167'>Gnome Symbolic Icon Theme</title>
+  <defs id='defs7386'/>
+  <g transform='translate(-101,-357)' inkscape:groupmode='layer' id='layer9' inkscape:label='status' style='display:inline'>
+    
+    <path d='m 104.75,357.0625 c -2.0602,0 -3.75,1.6898 -3.75,3.75 l 0,4.4375 c 0,2.0602 1.6898,3.75 3.75,3.75 l 4.9375,0 3.75,2.65625 1.59375,1.125 0,-1.96875 -0.0313,-2.5 c 1.11055,-0.59715 1.96875,-1.65265 1.96875,-3.0625 l 0,-4.4375 c 0,-2.0602 -1.6898,-3.75 -3.75,-3.75 l -8.46875,0 z m 0,2 8.46875,0 c 0.9868,0 1.75,0.7632 1.75,1.75 l 0,4.4375 c 0,0.86273 -0.63508,1.54099 -1.125,1.625 L 113,367 l 0,0.84375 0,1.03125 -2.40625,-1.6875 -0.25,-0.1875 -0.3125,0 -5.28125,0 c -0.9868,0 -1.75,-0.7632 -1.75,-1.75 l 0,-4.4375 c 0,-0.9868 0.7632,-1.75 1.75,-1.75 z' id='path12148' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#bebebe;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans'/>
+  </g>
+  <g transform='translate(-101,-357)' inkscape:groupmode='layer' id='layer10' inkscape:label='devices'/>
+  <g transform='translate(-101,-357)' inkscape:groupmode='layer' id='layer11' inkscape:label='apps'/>
+  <g transform='translate(-101,-357)' inkscape:groupmode='layer' id='layer12' inkscape:label='actions'/>
+  <g transform='translate(-101,-357)' inkscape:groupmode='layer' id='layer13' inkscape:label='places'/>
+  <g transform='translate(-101,-357)' inkscape:groupmode='layer' id='layer14' inkscape:label='mimetypes'/>
+  <g transform='translate(-101,-357)' inkscape:groupmode='layer' id='layer15' inkscape:label='emblems' style='display:inline'/>
+  <g transform='translate(-101,-357)' inkscape:groupmode='layer' id='g4953' inkscape:label='categories' style='display:inline'/>
+</svg>

BIN
public/themes/flat-design/icons/previous.png


+ 31 - 0
public/themes/flat-design/icons/previous.svg

@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' sodipodi:docname='go-next-rtl-symbolic.svg' height='16' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:svg='http://www.w3.org/2000/svg' inkscape:version='0.48.4 r9939' version='1.1' width='16' xmlns='http://www.w3.org/2000/svg'>
+  <metadata id='metadata90'>
+    <rdf:RDF>
+      <cc:Work rdf:about=''>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
+        <dc:title>Gnome Symbolic Icon Theme</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview inkscape:bbox-nodes='false' inkscape:bbox-paths='true' bordercolor='#666666' borderopacity='1' inkscape:current-layer='layer12' inkscape:cx='-101.35123' inkscape:cy='9.99302' gridtolerance='10' inkscape:guide-bbox='true' guidetolerance='10' id='namedview88' inkscape:object-nodes='false' inkscape:object-paths='false' objecttolerance='10' pagecolor='#3a3b39' inkscape:pageopacity='1' inkscape:pageshadow='2' showborder='false' showgrid='false' showguides='true' inkscape:snap-bbox='true' inkscape:snap-bbox-midpoints='false' inkscape:snap-global='true' inkscape:snap-grids='true' inkscape:snap-nodes='false' inkscape:snap-others='false' inkscape:snap-to-guides='true' inkscape:window-height='1408' inkscape:window-maximized='1' inkscape:window-width='2560' inkscape:window-x='0' inkscape:window-y='0' inkscape:zoom='1'>
+    <inkscape:grid empspacing='2' enabled='true' id='grid4866' originx='-60px' originy='530px' snapvisiblegridlinesonly='true' spacingx='1px' spacingy='1px' type='xygrid' visible='true'/>
+  </sodipodi:namedview>
+  <title id='title9167'>Gnome Symbolic Icon Theme</title>
+  <defs id='defs7386'/>
+  <g inkscape:groupmode='layer' id='layer9' inkscape:label='status' style='display:inline' transform='translate(-301.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='layer10' inkscape:label='devices' transform='translate(-301.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='layer11' inkscape:label='apps' transform='translate(-301.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='layer13' inkscape:label='places' transform='translate(-301.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='layer14' inkscape:label='mimetypes' transform='translate(-301.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='layer15' inkscape:label='emblems' style='display:inline' transform='translate(-301.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='g71291' inkscape:label='emotes' style='display:inline' transform='translate(-301.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='g4953' inkscape:label='categories' style='display:inline' transform='translate(-301.0002,-747)'/>
+  <g inkscape:groupmode='layer' id='layer12' inkscape:label='actions' style='display:inline' transform='translate(-301.0002,-747)'>
+    
+    <path inkscape:connector-curvature='0' d='m 313.01372,749 -1,0 c -0.0104,-1.2e-4 -0.0208,-4.6e-4 -0.0313,0 -0.25495,0.0112 -0.50987,0.12858 -0.6875,0.3125 l -6.29767,5.71875 6.29772,5.71875 c 0.18816,0.18819 0.45346,0.28125 0.71875,0.28125 l 1,0 0,-1 c 0,-0.26529 -0.0931,-0.53058 -0.28125,-0.71875 l -4.82897,-4.28125 4.82897,-4.28125 c 0.21074,-0.19463 0.30316,-0.46925 0.28125,-0.75 z' id='path5441' sodipodi:nodetypes='ccsccccccccccc' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#FFFFFF;fill:#FFFFFF;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.78124988;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new;font-family:Andale Mono;-inkscape-font-specification:Andale Mono'/>
+  </g>
+</svg>

BIN
public/themes/flat-design/icons/read.png


+ 31 - 0
public/themes/flat-design/icons/read.svg

@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg xmlns='http://www.w3.org/2000/svg' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' width='16' xmlns:cc='http://creativecommons.org/ns#' height='16.001099' sodipodi:docname='mail-read-symbolic.svg' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:svg='http://www.w3.org/2000/svg' inkscape:version='0.48.1 r9760' version='1.1'>
+  <metadata id='metadata90'>
+    <rdf:RDF>
+      <cc:Work rdf:about=''>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
+        <dc:title>Gnome Symbolic Icon Theme</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview inkscape:window-width='1226' id='namedview88' showgrid='false' objecttolerance='10' inkscape:pageopacity='1' inkscape:cx='12.92257' inkscape:cy='-1.422716' inkscape:snap-bbox='true' borderopacity='1' inkscape:object-nodes='false' inkscape:current-layer='layer9' inkscape:snap-to-guides='true' inkscape:snap-others='false' inkscape:snap-grids='true' bordercolor='#666666' inkscape:window-height='967' inkscape:snap-bbox-midpoints='false' showborder='false' inkscape:bbox-paths='false' inkscape:guide-bbox='true' inkscape:window-x='2657' inkscape:window-y='338' inkscape:snap-global='true' inkscape:snap-nodes='true' pagecolor='#555753' inkscape:object-paths='false' inkscape:pageshadow='2' inkscape:zoom='1' inkscape:window-maximized='0' gridtolerance='10' guidetolerance='10' showguides='true'>
+    <inkscape:grid id='grid4866' empspacing='2' type='xygrid' visible='true' snapvisiblegridlinesonly='true' enabled='true' spacingx='1px' spacingy='1px'/>
+  </sodipodi:namedview>
+  <title id='title9167'>Gnome Symbolic Icon Theme</title>
+  <defs id='defs7386'/>
+  <g id='layer9' inkscape:groupmode='layer' style='display:inline' transform='translate(-60.99995,-296.9989)' inkscape:label='status'>
+    
+    <path id='path35631' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.35;color:#000000;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans' d='m 68.8752,297 a 1.0001,1.0001 0 0 0 -0.5,0.25 l -4.90625,4 a 1.0001,1.0001 0 0 0 -0.0625,0.0312 c 0,0 -0.32587,0.29728 -0.65625,0.75 -0.22334,0.30605 -0.3527,0.8316 -0.5,1.3125 a 1.0001,1.0001 0 0 0 -0.03125,0.0312 1.0001,1.0001 0 0 0 -0.21875,0.5625 c -5.1e-4,0.0118 3.6e-4,0.0195 0,0.0312 a 1.0001,1.0001 0 0 0 0,0.0312 1.0001,1.0001 0 0 0 0,0.15625 l 0,7.84375 a 1.0001,1.0001 0 0 0 1,1 l 12,0 a 1.0001,1.0001 0 0 0 1,-1 l 0,-7.84375 a 1.0001,1.0001 0 0 0 0,-0.15625 1.0001,1.0001 0 0 0 -0.21875,-0.65625 1.0001,1.0001 0 0 0 -0.03125,-0.0312 c -0.32774,-1.18787 -1.125,-2 -1.125,-2 a 1.0001,1.0001 0 0 0 -0.0312,-0.0312 L 69.6252,297.25 a 1.0001,1.0001 0 0 0 -0.65625,-0.25 1.0001,1.0001 0 0 0 -0.0937,0 z m 0.125,2.28125 4.3125,3.53125 0.0312,0.0312 c 0.021,0.0255 0.18032,0.24952 0.34375,0.5 l -4.68745,3.53125 -4.6875,-3.53125 c 0.0259,-0.0394 0.0349,-0.0872 0.0625,-0.125 0.1908,-0.26146 0.31874,-0.41421 0.34375,-0.4375 l 0.03125,-0.0312 4.25,-3.46875 z m -5,5.09375 4.6875,3.53125 0.3125,0.21875 0.3125,-0.21875 4.6875,-3.53125 0,6.625 -10,0 0,-6.625 z' inkscape:connector-curvature='0'/>
+  </g>
+  <g id='layer10' inkscape:groupmode='layer' transform='translate(-60.99995,-296.9989)' inkscape:label='devices'/>
+  <g id='layer11' inkscape:groupmode='layer' transform='translate(-60.99995,-296.9989)' inkscape:label='apps'/>
+  <g id='layer13' inkscape:groupmode='layer' transform='translate(-60.99995,-296.9989)' inkscape:label='places'/>
+  <g id='layer14' inkscape:groupmode='layer' transform='translate(-60.99995,-296.9989)' inkscape:label='mimetypes'/>
+  <g id='layer15' inkscape:groupmode='layer' style='display:inline' transform='translate(-60.99995,-296.9989)' inkscape:label='emblems'/>
+  <g id='g71291' inkscape:groupmode='layer' style='display:inline' transform='translate(-60.99995,-296.9989)' inkscape:label='emotes'/>
+  <g id='g4953' inkscape:groupmode='layer' style='display:inline' transform='translate(-60.99995,-296.9989)' inkscape:label='categories'/>
+  <g id='layer12' inkscape:groupmode='layer' style='display:inline' transform='translate(-60.99995,-296.9989)' inkscape:label='actions'/>
+</svg>

BIN
public/themes/flat-design/icons/refresh.png


Some files were not shown because too many files changed in this diff