aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2013-08-07 11:46:55 +0200
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2013-08-07 11:46:55 +0200
commitabb25a58dc8668c6716c419c99b215536861057a (patch)
tree37be666df9383f447e84cfc29fa840e60678bebb
parentf6d730f9d1ce7957001bd981f04b32d67ebb44e6 (diff)
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
-rw-r--r--.gitignore0
-rw-r--r--app/App_FrontController.php6
-rwxr-xr-xapp/controllers/configureController.php7
-rw-r--r--app/i18n/en.php2
-rw-r--r--app/i18n/fr.php2
-rw-r--r--app/models/RSSThemes.php38
-rw-r--r--app/views/configure/display.phtml13
-rw-r--r--public/data/.gitignore3
-rw-r--r--public/data/grey.gifbin0 -> 56 bytes
-rw-r--r--public/themes/default/fallback.css (renamed from public/theme/fallback.css)0
-rw-r--r--public/themes/default/fonts/openSans.woff (renamed from public/theme/fonts/openSans.woff)bin21956 -> 21956 bytes
-rw-r--r--public/themes/default/freshrss.css (renamed from public/theme/freshrss.css)3
-rw-r--r--public/themes/default/global.css (renamed from public/theme/global.css)0
-rw-r--r--public/themes/default/icons/add.png (renamed from public/theme/icons/add.png)bin246 -> 246 bytes
-rw-r--r--public/themes/default/icons/add.svg (renamed from public/theme/icons/add.svg)0
-rw-r--r--public/themes/default/icons/all.png (renamed from public/theme/icons/all.png)bin223 -> 223 bytes
-rw-r--r--public/themes/default/icons/all.svg (renamed from public/theme/icons/all.svg)0
-rw-r--r--public/themes/default/icons/category.png (renamed from public/theme/icons/category.png)bin294 -> 294 bytes
-rw-r--r--public/themes/default/icons/category.svg (renamed from public/theme/icons/category.svg)0
-rw-r--r--public/themes/default/icons/close.png (renamed from public/theme/icons/close.png)bin405 -> 405 bytes
-rw-r--r--public/themes/default/icons/close.svg (renamed from public/theme/icons/close.svg)0
-rw-r--r--public/themes/default/icons/configure.png (renamed from public/theme/icons/configure.png)bin526 -> 526 bytes
-rw-r--r--public/themes/default/icons/configure.svg (renamed from public/theme/icons/configure.svg)0
-rw-r--r--public/themes/default/icons/down.png (renamed from public/theme/icons/down.png)bin460 -> 460 bytes
-rw-r--r--public/themes/default/icons/down.svg (renamed from public/theme/icons/down.svg)0
-rw-r--r--public/themes/default/icons/help.png (renamed from public/theme/icons/help.png)bin687 -> 687 bytes
-rw-r--r--public/themes/default/icons/help.svg (renamed from public/theme/icons/help.svg)0
-rw-r--r--public/themes/default/icons/link.png (renamed from public/theme/icons/link.png)bin719 -> 719 bytes
-rw-r--r--public/themes/default/icons/link.svg (renamed from public/theme/icons/link.svg)0
-rw-r--r--public/themes/default/icons/login.png (renamed from public/theme/icons/login.png)bin333 -> 333 bytes
-rw-r--r--public/themes/default/icons/login.svg (renamed from public/theme/icons/login.svg)0
-rw-r--r--public/themes/default/icons/logout.png (renamed from public/theme/icons/logout.png)bin339 -> 339 bytes
-rw-r--r--public/themes/default/icons/logout.svg (renamed from public/theme/icons/logout.svg)0
-rw-r--r--public/themes/default/icons/next.png (renamed from public/theme/icons/next.png)bin373 -> 373 bytes
-rw-r--r--public/themes/default/icons/next.svg (renamed from public/theme/icons/next.svg)0
-rw-r--r--public/themes/default/icons/non-starred.png (renamed from public/theme/icons/non-starred.png)bin600 -> 600 bytes
-rw-r--r--public/themes/default/icons/non-starred.svg (renamed from public/theme/icons/non-starred.svg)0
-rw-r--r--public/themes/default/icons/note.png (renamed from public/theme/icons/note.png)bin427 -> 427 bytes
-rw-r--r--public/themes/default/icons/note.svg (renamed from public/theme/icons/note.svg)0
-rw-r--r--public/themes/default/icons/note_empty.png (renamed from public/theme/icons/note_empty.png)bin517 -> 517 bytes
-rw-r--r--public/themes/default/icons/note_empty.svg (renamed from public/theme/icons/note_empty.svg)0
-rw-r--r--public/themes/default/icons/previous.png (renamed from public/theme/icons/previous.png)bin395 -> 395 bytes
-rw-r--r--public/themes/default/icons/previous.svg (renamed from public/theme/icons/previous.svg)0
-rw-r--r--public/themes/default/icons/read.png (renamed from public/theme/icons/read.png)bin656 -> 656 bytes
-rw-r--r--public/themes/default/icons/read.svg (renamed from public/theme/icons/read.svg)0
-rw-r--r--public/themes/default/icons/refresh.png (renamed from public/theme/icons/refresh.png)bin577 -> 577 bytes
-rw-r--r--public/themes/default/icons/refresh.svg (renamed from public/theme/icons/refresh.svg)0
-rw-r--r--public/themes/default/icons/rss.png (renamed from public/theme/icons/rss.png)bin483 -> 483 bytes
-rw-r--r--public/themes/default/icons/rss.svg (renamed from public/theme/icons/rss.svg)0
-rw-r--r--public/themes/default/icons/search.png (renamed from public/theme/icons/search.png)bin571 -> 571 bytes
-rw-r--r--public/themes/default/icons/search.svg (renamed from public/theme/icons/search.svg)0
-rw-r--r--public/themes/default/icons/share.png (renamed from public/theme/icons/share.png)bin541 -> 541 bytes
-rw-r--r--public/themes/default/icons/share.svg (renamed from public/theme/icons/share.svg)0
-rw-r--r--public/themes/default/icons/starred.png (renamed from public/theme/icons/starred.png)bin528 -> 528 bytes
-rw-r--r--public/themes/default/icons/starred.svg (renamed from public/theme/icons/starred.svg)0
-rw-r--r--public/themes/default/icons/tag.png (renamed from public/theme/icons/tag.png)bin196 -> 196 bytes
-rw-r--r--public/themes/default/icons/tag.svg (renamed from public/theme/icons/tag.svg)0
-rw-r--r--public/themes/default/icons/unread.png (renamed from public/theme/icons/unread.png)bin434 -> 434 bytes
-rw-r--r--public/themes/default/icons/unread.svg (renamed from public/theme/icons/unread.svg)0
-rw-r--r--public/themes/default/icons/up.png (renamed from public/theme/icons/up.png)bin411 -> 411 bytes
-rw-r--r--public/themes/default/icons/up.svg (renamed from public/theme/icons/up.svg)0
-rw-r--r--public/themes/default/loader.gif (renamed from public/theme/loader.gif)bin4167 -> 4167 bytes
-rw-r--r--public/themes/default/metadata.json6
-rw-r--r--public/themes/default/style.css3
-rw-r--r--public/themes/flat-design/fonts/openSans.woffbin0 -> 21956 bytes
-rw-r--r--public/themes/flat-design/freshrss.css625
-rw-r--r--public/themes/flat-design/global.css543
-rw-r--r--public/themes/flat-design/icons/add.pngbin0 -> 154 bytes
-rw-r--r--public/themes/flat-design/icons/add.svg30
-rw-r--r--public/themes/flat-design/icons/all.pngbin0 -> 152 bytes
-rw-r--r--public/themes/flat-design/icons/all.svg32
-rw-r--r--public/themes/flat-design/icons/category.pngbin0 -> 203 bytes
-rw-r--r--public/themes/flat-design/icons/category.svg31
-rw-r--r--public/themes/flat-design/icons/close.pngbin0 -> 243 bytes
-rw-r--r--public/themes/flat-design/icons/close.svg28
-rw-r--r--public/themes/flat-design/icons/configure.pngbin0 -> 358 bytes
-rw-r--r--public/themes/flat-design/icons/configure.svg31
-rw-r--r--public/themes/flat-design/icons/down.pngbin0 -> 271 bytes
-rw-r--r--public/themes/flat-design/icons/down.svg31
-rw-r--r--public/themes/flat-design/icons/help.pngbin0 -> 687 bytes
-rw-r--r--public/themes/flat-design/icons/help.svg32
-rw-r--r--public/themes/flat-design/icons/link.pngbin0 -> 719 bytes
-rw-r--r--public/themes/flat-design/icons/link.svg33
-rw-r--r--public/themes/flat-design/icons/login.pngbin0 -> 213 bytes
-rw-r--r--public/themes/flat-design/icons/login.svg33
-rw-r--r--public/themes/flat-design/icons/logout.pngbin0 -> 220 bytes
-rw-r--r--public/themes/flat-design/icons/logout.svg33
-rw-r--r--public/themes/flat-design/icons/next.pngbin0 -> 265 bytes
-rw-r--r--public/themes/flat-design/icons/next.svg31
-rw-r--r--public/themes/flat-design/icons/non-starred.pngbin0 -> 600 bytes
-rw-r--r--public/themes/flat-design/icons/non-starred.svg32
-rw-r--r--public/themes/flat-design/icons/note.pngbin0 -> 427 bytes
-rw-r--r--public/themes/flat-design/icons/note.svg30
-rw-r--r--public/themes/flat-design/icons/note_empty.pngbin0 -> 517 bytes
-rw-r--r--public/themes/flat-design/icons/note_empty.svg30
-rw-r--r--public/themes/flat-design/icons/previous.pngbin0 -> 266 bytes
-rw-r--r--public/themes/flat-design/icons/previous.svg31
-rw-r--r--public/themes/flat-design/icons/read.pngbin0 -> 656 bytes
-rw-r--r--public/themes/flat-design/icons/read.svg31
-rw-r--r--public/themes/flat-design/icons/refresh.pngbin0 -> 319 bytes
-rw-r--r--public/themes/flat-design/icons/refresh.svg31
-rw-r--r--public/themes/flat-design/icons/rss.pngbin0 -> 483 bytes
-rw-r--r--public/themes/flat-design/icons/rss.svg32
-rw-r--r--public/themes/flat-design/icons/search.pngbin0 -> 305 bytes
-rw-r--r--public/themes/flat-design/icons/search.svg32
-rw-r--r--public/themes/flat-design/icons/share.pngbin0 -> 541 bytes
-rw-r--r--public/themes/flat-design/icons/share.svg34
-rw-r--r--public/themes/flat-design/icons/starred.pngbin0 -> 429 bytes
-rw-r--r--public/themes/flat-design/icons/starred.svg32
-rw-r--r--public/themes/flat-design/icons/tag.pngbin0 -> 196 bytes
-rw-r--r--public/themes/flat-design/icons/tag.svg134
-rw-r--r--public/themes/flat-design/icons/unread.pngbin0 -> 386 bytes
-rw-r--r--public/themes/flat-design/icons/unread.svg30
-rw-r--r--public/themes/flat-design/icons/up.pngbin0 -> 260 bytes
-rw-r--r--public/themes/flat-design/icons/up.svg31
-rw-r--r--public/themes/flat-design/loader.gifbin0 -> 4251 bytes
-rw-r--r--public/themes/flat-design/metadata.json6
-rw-r--r--public/themes/flat-design/style.css2
118 files changed, 2110 insertions, 4 deletions
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index e69de29bb..000000000
--- a/.gitignore
+++ /dev/null
diff --git a/app/App_FrontController.php b/app/App_FrontController.php
index 637d61206..50313522f 100644
--- a/app/App_FrontController.php
+++ b/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');
}
diff --git a/app/controllers/configureController.php b/app/controllers/configureController.php
index abd546504..6b582fde6 100755
--- a/app/controllers/configureController.php
+++ b/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') . ' - ');
}
diff --git a/app/i18n/en.php b/app/i18n/en.php
index 3287e3a15..9afc0182c 100644
--- a/app/i18n/en.php
+++ b/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',
diff --git a/app/i18n/fr.php b/app/i18n/fr.php
index d5a7f8fa0..57e288166 100644
--- a/app/i18n/fr.php
+++ b/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',
diff --git a/app/models/RSSThemes.php b/app/models/RSSThemes.php
new file mode 100644
index 000000000..291b295e3
--- /dev/null
+++ b/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;
+ }
+} \ No newline at end of file
diff --git a/app/views/configure/display.phtml b/app/views/configure/display.phtml
index f8e94c0f2..2516f2692 100644
--- a/app/views/configure/display.phtml
+++ b/app/views/configure/display.phtml
@@ -41,6 +41,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">
<input type="number" id="posts_per_page" name="posts_per_page" value="<?php echo $this->conf->postsPerPage (); ?>" />
diff --git a/public/data/.gitignore b/public/data/.gitignore
index 72e8ffc0d..81154d14f 100644
--- a/public/data/.gitignore
+++ b/public/data/.gitignore
@@ -1 +1,2 @@
-*
+favicons
+Configuration.array.php
diff --git a/public/data/grey.gif b/public/data/grey.gif
new file mode 100644
index 000000000..c7212bc1f
--- /dev/null
+++ b/public/data/grey.gif
Binary files differ
diff --git a/public/theme/fallback.css b/public/themes/default/fallback.css
index 579b2eaa8..579b2eaa8 100644
--- a/public/theme/fallback.css
+++ b/public/themes/default/fallback.css
diff --git a/public/theme/fonts/openSans.woff b/public/themes/default/fonts/openSans.woff
index 55b25f867..55b25f867 100644
--- a/public/theme/fonts/openSans.woff
+++ b/public/themes/default/fonts/openSans.woff
Binary files differ
diff --git a/public/theme/freshrss.css b/public/themes/default/freshrss.css
index 25b75f1f5..ca034412b 100644
--- a/public/theme/freshrss.css
+++ b/public/themes/default/freshrss.css
@@ -1,3 +1,6 @@
+@import url('global.css');
+@import url('fallback.css');
+
/* STRUCTURE */
.header {
display: table;
diff --git a/public/theme/global.css b/public/themes/default/global.css
index 3000bfe45..3000bfe45 100644
--- a/public/theme/global.css
+++ b/public/themes/default/global.css
diff --git a/public/theme/icons/add.png b/public/themes/default/icons/add.png
index 90cdf4830..90cdf4830 100644
--- a/public/theme/icons/add.png
+++ b/public/themes/default/icons/add.png
Binary files differ
diff --git a/public/theme/icons/add.svg b/public/themes/default/icons/add.svg
index 425c9b4aa..425c9b4aa 100644
--- a/public/theme/icons/add.svg
+++ b/public/themes/default/icons/add.svg
diff --git a/public/theme/icons/all.png b/public/themes/default/icons/all.png
index b0dbe5483..b0dbe5483 100644
--- a/public/theme/icons/all.png
+++ b/public/themes/default/icons/all.png
Binary files differ
diff --git a/public/theme/icons/all.svg b/public/themes/default/icons/all.svg
index 2180f7a4b..2180f7a4b 100644
--- a/public/theme/icons/all.svg
+++ b/public/themes/default/icons/all.svg
diff --git a/public/theme/icons/category.png b/public/themes/default/icons/category.png
index e3a9bf34b..e3a9bf34b 100644
--- a/public/theme/icons/category.png
+++ b/public/themes/default/icons/category.png
Binary files differ
diff --git a/public/theme/icons/category.svg b/public/themes/default/icons/category.svg
index 71f95490e..71f95490e 100644
--- a/public/theme/icons/category.svg
+++ b/public/themes/default/icons/category.svg
diff --git a/public/theme/icons/close.png b/public/themes/default/icons/close.png
index 452f1d1cf..452f1d1cf 100644
--- a/public/theme/icons/close.png
+++ b/public/themes/default/icons/close.png
Binary files differ
diff --git a/public/theme/icons/close.svg b/public/themes/default/icons/close.svg
index c0c786fd6..c0c786fd6 100644
--- a/public/theme/icons/close.svg
+++ b/public/themes/default/icons/close.svg
diff --git a/public/theme/icons/configure.png b/public/themes/default/icons/configure.png
index 8c6fb531c..8c6fb531c 100644
--- a/public/theme/icons/configure.png
+++ b/public/themes/default/icons/configure.png
Binary files differ
diff --git a/public/theme/icons/configure.svg b/public/themes/default/icons/configure.svg
index 52df8bca7..52df8bca7 100644
--- a/public/theme/icons/configure.svg
+++ b/public/themes/default/icons/configure.svg
diff --git a/public/theme/icons/down.png b/public/themes/default/icons/down.png
index 5a647245f..5a647245f 100644
--- a/public/theme/icons/down.png
+++ b/public/themes/default/icons/down.png
Binary files differ
diff --git a/public/theme/icons/down.svg b/public/themes/default/icons/down.svg
index 06d031fae..06d031fae 100644
--- a/public/theme/icons/down.svg
+++ b/public/themes/default/icons/down.svg
diff --git a/public/theme/icons/help.png b/public/themes/default/icons/help.png
index aa63c5411..aa63c5411 100644
--- a/public/theme/icons/help.png
+++ b/public/themes/default/icons/help.png
Binary files differ
diff --git a/public/theme/icons/help.svg b/public/themes/default/icons/help.svg
index b103ec46d..b103ec46d 100644
--- a/public/theme/icons/help.svg
+++ b/public/themes/default/icons/help.svg
diff --git a/public/theme/icons/link.png b/public/themes/default/icons/link.png
index de2b187d7..de2b187d7 100644
--- a/public/theme/icons/link.png
+++ b/public/themes/default/icons/link.png
Binary files differ
diff --git a/public/theme/icons/link.svg b/public/themes/default/icons/link.svg
index ddc8e0706..ddc8e0706 100644
--- a/public/theme/icons/link.svg
+++ b/public/themes/default/icons/link.svg
diff --git a/public/theme/icons/login.png b/public/themes/default/icons/login.png
index cebe0cf7d..cebe0cf7d 100644
--- a/public/theme/icons/login.png
+++ b/public/themes/default/icons/login.png
Binary files differ
diff --git a/public/theme/icons/login.svg b/public/themes/default/icons/login.svg
index 0a8af162f..0a8af162f 100644
--- a/public/theme/icons/login.svg
+++ b/public/themes/default/icons/login.svg
diff --git a/public/theme/icons/logout.png b/public/themes/default/icons/logout.png
index 49255fccd..49255fccd 100644
--- a/public/theme/icons/logout.png
+++ b/public/themes/default/icons/logout.png
Binary files differ
diff --git a/public/theme/icons/logout.svg b/public/themes/default/icons/logout.svg
index 284a67578..284a67578 100644
--- a/public/theme/icons/logout.svg
+++ b/public/themes/default/icons/logout.svg
diff --git a/public/theme/icons/next.png b/public/themes/default/icons/next.png
index ab3490c3b..ab3490c3b 100644
--- a/public/theme/icons/next.png
+++ b/public/themes/default/icons/next.png
Binary files differ
diff --git a/public/theme/icons/next.svg b/public/themes/default/icons/next.svg
index 72637b4e6..72637b4e6 100644
--- a/public/theme/icons/next.svg
+++ b/public/themes/default/icons/next.svg
diff --git a/public/theme/icons/non-starred.png b/public/themes/default/icons/non-starred.png
index 4aafb6d8a..4aafb6d8a 100644
--- a/public/theme/icons/non-starred.png
+++ b/public/themes/default/icons/non-starred.png
Binary files differ
diff --git a/public/theme/icons/non-starred.svg b/public/themes/default/icons/non-starred.svg
index 346717f78..346717f78 100644
--- a/public/theme/icons/non-starred.svg
+++ b/public/themes/default/icons/non-starred.svg
diff --git a/public/theme/icons/note.png b/public/themes/default/icons/note.png
index d819ebd02..d819ebd02 100644
--- a/public/theme/icons/note.png
+++ b/public/themes/default/icons/note.png
Binary files differ
diff --git a/public/theme/icons/note.svg b/public/themes/default/icons/note.svg
index 117b999f7..117b999f7 100644
--- a/public/theme/icons/note.svg
+++ b/public/themes/default/icons/note.svg
diff --git a/public/theme/icons/note_empty.png b/public/themes/default/icons/note_empty.png
index c26ad2b16..c26ad2b16 100644
--- a/public/theme/icons/note_empty.png
+++ b/public/themes/default/icons/note_empty.png
Binary files differ
diff --git a/public/theme/icons/note_empty.svg b/public/themes/default/icons/note_empty.svg
index 93092f4a4..93092f4a4 100644
--- a/public/theme/icons/note_empty.svg
+++ b/public/themes/default/icons/note_empty.svg
diff --git a/public/theme/icons/previous.png b/public/themes/default/icons/previous.png
index 10e40669e..10e40669e 100644
--- a/public/theme/icons/previous.png
+++ b/public/themes/default/icons/previous.png
Binary files differ
diff --git a/public/theme/icons/previous.svg b/public/themes/default/icons/previous.svg
index 67685c50c..67685c50c 100644
--- a/public/theme/icons/previous.svg
+++ b/public/themes/default/icons/previous.svg
diff --git a/public/theme/icons/read.png b/public/themes/default/icons/read.png
index a402689c7..a402689c7 100644
--- a/public/theme/icons/read.png
+++ b/public/themes/default/icons/read.png
Binary files differ
diff --git a/public/theme/icons/read.svg b/public/themes/default/icons/read.svg
index 932bfd860..932bfd860 100644
--- a/public/theme/icons/read.svg
+++ b/public/themes/default/icons/read.svg
diff --git a/public/theme/icons/refresh.png b/public/themes/default/icons/refresh.png
index dba399981..dba399981 100644
--- a/public/theme/icons/refresh.png
+++ b/public/themes/default/icons/refresh.png
Binary files differ
diff --git a/public/theme/icons/refresh.svg b/public/themes/default/icons/refresh.svg
index 11728fc5d..11728fc5d 100644
--- a/public/theme/icons/refresh.svg
+++ b/public/themes/default/icons/refresh.svg
diff --git a/public/theme/icons/rss.png b/public/themes/default/icons/rss.png
index c20455af0..c20455af0 100644
--- a/public/theme/icons/rss.png
+++ b/public/themes/default/icons/rss.png
Binary files differ
diff --git a/public/theme/icons/rss.svg b/public/themes/default/icons/rss.svg
index ceaddceee..ceaddceee 100644
--- a/public/theme/icons/rss.svg
+++ b/public/themes/default/icons/rss.svg
diff --git a/public/theme/icons/search.png b/public/themes/default/icons/search.png
index 48e7373c4..48e7373c4 100644
--- a/public/theme/icons/search.png
+++ b/public/themes/default/icons/search.png
Binary files differ
diff --git a/public/theme/icons/search.svg b/public/themes/default/icons/search.svg
index acfb364cc..acfb364cc 100644
--- a/public/theme/icons/search.svg
+++ b/public/themes/default/icons/search.svg
diff --git a/public/theme/icons/share.png b/public/themes/default/icons/share.png
index 74c4c5dda..74c4c5dda 100644
--- a/public/theme/icons/share.png
+++ b/public/themes/default/icons/share.png
Binary files differ
diff --git a/public/theme/icons/share.svg b/public/themes/default/icons/share.svg
index 443321882..443321882 100644
--- a/public/theme/icons/share.svg
+++ b/public/themes/default/icons/share.svg
diff --git a/public/theme/icons/starred.png b/public/themes/default/icons/starred.png
index a6c076358..a6c076358 100644
--- a/public/theme/icons/starred.png
+++ b/public/themes/default/icons/starred.png
Binary files differ
diff --git a/public/theme/icons/starred.svg b/public/themes/default/icons/starred.svg
index 0944a7726..0944a7726 100644
--- a/public/theme/icons/starred.svg
+++ b/public/themes/default/icons/starred.svg
diff --git a/public/theme/icons/tag.png b/public/themes/default/icons/tag.png
index cb1a13833..cb1a13833 100644
--- a/public/theme/icons/tag.png
+++ b/public/themes/default/icons/tag.png
Binary files differ
diff --git a/public/theme/icons/tag.svg b/public/themes/default/icons/tag.svg
index 688aca7a4..688aca7a4 100644
--- a/public/theme/icons/tag.svg
+++ b/public/themes/default/icons/tag.svg
diff --git a/public/theme/icons/unread.png b/public/themes/default/icons/unread.png
index ab6e3fb39..ab6e3fb39 100644
--- a/public/theme/icons/unread.png
+++ b/public/themes/default/icons/unread.png
Binary files differ
diff --git a/public/theme/icons/unread.svg b/public/themes/default/icons/unread.svg
index 9219b5083..9219b5083 100644
--- a/public/theme/icons/unread.svg
+++ b/public/themes/default/icons/unread.svg
diff --git a/public/theme/icons/up.png b/public/themes/default/icons/up.png
index 8bfc2fb13..8bfc2fb13 100644
--- a/public/theme/icons/up.png
+++ b/public/themes/default/icons/up.png
Binary files differ
diff --git a/public/theme/icons/up.svg b/public/themes/default/icons/up.svg
index dab31a20d..dab31a20d 100644
--- a/public/theme/icons/up.svg
+++ b/public/themes/default/icons/up.svg
diff --git a/public/theme/loader.gif b/public/themes/default/loader.gif
index 5ff26f0e3..5ff26f0e3 100644
--- a/public/theme/loader.gif
+++ b/public/themes/default/loader.gif
Binary files differ
diff --git a/public/themes/default/metadata.json b/public/themes/default/metadata.json
new file mode 100644
index 000000000..0fe31fd90
--- /dev/null
+++ b/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
+} \ No newline at end of file
diff --git a/public/themes/default/style.css b/public/themes/default/style.css
new file mode 100644
index 000000000..7e4f386d9
--- /dev/null
+++ b/public/themes/default/style.css
@@ -0,0 +1,3 @@
+@import url('global.css');
+@import url('freshrss.css');
+@import url('fallback.css');
diff --git a/public/themes/flat-design/fonts/openSans.woff b/public/themes/flat-design/fonts/openSans.woff
new file mode 100644
index 000000000..55b25f867
--- /dev/null
+++ b/public/themes/flat-design/fonts/openSans.woff
Binary files differ
diff --git a/public/themes/flat-design/freshrss.css b/public/themes/flat-design/freshrss.css
new file mode 100644
index 000000000..6885fec61
--- /dev/null
+++ b/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;
+ }
+}
diff --git a/public/themes/flat-design/global.css b/public/themes/flat-design/global.css
new file mode 100644
index 000000000..8be9d38e0
--- /dev/null
+++ b/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");
+ }
diff --git a/public/themes/flat-design/icons/add.png b/public/themes/flat-design/icons/add.png
new file mode 100644
index 000000000..237de3e15
--- /dev/null
+++ b/public/themes/flat-design/icons/add.png
Binary files differ
diff --git a/public/themes/flat-design/icons/add.svg b/public/themes/flat-design/icons/add.svg
new file mode 100644
index 000000000..15767a3ad
--- /dev/null
+++ b/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>
diff --git a/public/themes/flat-design/icons/all.png b/public/themes/flat-design/icons/all.png
new file mode 100644
index 000000000..6d8338ac7
--- /dev/null
+++ b/public/themes/flat-design/icons/all.png
Binary files differ
diff --git a/public/themes/flat-design/icons/all.svg b/public/themes/flat-design/icons/all.svg
new file mode 100644
index 000000000..d20e0f5bf
--- /dev/null
+++ b/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>
diff --git a/public/themes/flat-design/icons/category.png b/public/themes/flat-design/icons/category.png
new file mode 100644
index 000000000..9243650da
--- /dev/null
+++ b/public/themes/flat-design/icons/category.png
Binary files differ
diff --git a/public/themes/flat-design/icons/category.svg b/public/themes/flat-design/icons/category.svg
new file mode 100644
index 000000000..5e61aeea5
--- /dev/null
+++ b/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>
diff --git a/public/themes/flat-design/icons/close.png b/public/themes/flat-design/icons/close.png
new file mode 100644
index 000000000..1f91a4f4e
--- /dev/null
+++ b/public/themes/flat-design/icons/close.png
Binary files differ
diff --git a/public/themes/flat-design/icons/close.svg b/public/themes/flat-design/icons/close.svg
new file mode 100644
index 000000000..629fda7ff
--- /dev/null
+++ b/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>
diff --git a/public/themes/flat-design/icons/configure.png b/public/themes/flat-design/icons/configure.png
new file mode 100644
index 000000000..982c24619
--- /dev/null
+++ b/public/themes/flat-design/icons/configure.png
Binary files differ
diff --git a/public/themes/flat-design/icons/configure.svg b/public/themes/flat-design/icons/configure.svg
new file mode 100644
index 000000000..969c5719f
--- /dev/null
+++ b/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>
diff --git a/public/themes/flat-design/icons/down.png b/public/themes/flat-design/icons/down.png
new file mode 100644
index 000000000..4603976ac
--- /dev/null
+++ b/public/themes/flat-design/icons/down.png
Binary files differ
diff --git a/public/themes/flat-design/icons/down.svg b/public/themes/flat-design/icons/down.svg
new file mode 100644
index 000000000..31730626f
--- /dev/null
+++ b/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>
diff --git a/public/themes/flat-design/icons/help.png b/public/themes/flat-design/icons/help.png
new file mode 100644
index 000000000..aa63c5411
--- /dev/null
+++ b/public/themes/flat-design/icons/help.png
Binary files differ
diff --git a/public/themes/flat-design/icons/help.svg b/public/themes/flat-design/icons/help.svg
new file mode 100644
index 000000000..b103ec46d
--- /dev/null
+++ b/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>
diff --git a/public/themes/flat-design/icons/link.png b/public/themes/flat-design/icons/link.png
new file mode 100644
index 000000000..de2b187d7
--- /dev/null
+++ b/public/themes/flat-design/icons/link.png
Binary files differ
diff --git a/public/themes/flat-design/icons/link.svg b/public/themes/flat-design/icons/link.svg
new file mode 100644
index 000000000..ddc8e0706
--- /dev/null
+++ b/public/themes/flat-design/icons/link.svg
@@ -0,0 +1,33 @@
+<?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:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' id='svg7384' sodipodi:docname='web-browser-symbolic.svg' version='1.1' inkscape:version='0.48.1 r9760' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:cc='http://creativecommons.org/ns#' xmlns:svg='http://www.w3.org/2000/svg' width='16' xmlns='http://www.w3.org/2000/svg' height='16.00366'>
+ <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='false' inkscape:current-layer='layer11' inkscape:bbox-paths='false' inkscape:pageshadow='2' inkscape:snap-bbox='true' inkscape:pageopacity='1' inkscape:guide-bbox='true' pagecolor='#555753' bordercolor='#666666' showguides='true' inkscape:snap-bbox-midpoints='false' inkscape:window-maximized='0' inkscape:snap-grids='true' inkscape:window-width='1595' id='namedview88' inkscape:window-x='2191' inkscape:window-y='111' gridtolerance='10' borderopacity='1' showgrid='false' inkscape:cx='21.026784' inkscape:cy='2.9913602' inkscape:snap-nodes='false' inkscape:window-height='1162' inkscape:snap-global='true' inkscape:object-nodes='false' objecttolerance='10' inkscape:snap-others='false' inkscape:zoom='1' guidetolerance='10' inkscape:snap-to-guides='true' showborder='false'>
+ <inkscape:grid enabled='true' type='xygrid' id='grid4866' visible='true' snapvisiblegridlinesonly='true' empspacing='2' spacingx='1px' spacingy='1px'/>
+ </sodipodi:namedview>
+ <title id='title9167'>Gnome Symbolic Icon Theme</title>
+ <defs id='defs7386'/>
+ <g style='display:inline' inkscape:groupmode='layer' id='layer9' inkscape:label='status' transform='translate(-183,-529)'/>
+ <g inkscape:groupmode='layer' id='layer10' inkscape:label='devices' transform='translate(-183,-529)'/>
+ <g inkscape:groupmode='layer' id='layer11' inkscape:label='apps' transform='translate(-183,-529)'>
+
+ <path style='color:#000000;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible;enable-background:accumulate' sodipodi:nodetypes='cccccccc' id='path6242' inkscape:connector-curvature='0' d='m 191.0002,533.84553 0,10.38049 -2.34399,-2.28818 -1.33941,2.73465 c -0.32808,0.73962 -2.03368,0.14492 -1.5487,-0.84412 l 1.32547,-2.83928 -2.95789,0 6.86452,-7.14356 z'/>
+ <path 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:#000000;fill:#bebebe;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' sodipodi:nodetypes='csccssccsssc' id='path23405' inkscape:connector-curvature='0' d='m 190.15645,530.0625 c -3.82659,0.46006 -6.57883,3.95775 -6.09375,7.78125 0.13127,1.03473 0.29377,1.38184 0.29377,1.38184 l 1.67498,-1.63184 c -0.33104,-2.75343 1.62156,-5.23146 4.375,-5.5625 2.75344,-0.33104 5.23146,1.62156 5.5625,4.375 0.31355,2.60795 -1.39127,5.02493 -3.96875,5.53125 l 0.0312,2 c 0,0 0.52086,-0.1059 0.62354,-0.13097 3.41561,-0.83385 5.70627,-4.1273 5.28271,-7.65028 -0.46006,-3.8266 -3.95466,-6.55381 -7.78125,-6.09375 z'/>
+ <path style='opacity:0.3;color:#000000;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate' id='path11289' inkscape:connector-curvature='0' d='m 187.11293,536.81497 0,-0.20574 -0.19826,0.0186 c 0.0165,-0.13095 0.0329,-0.26167 0.0496,-0.3926 l -0.11578,0 -0.11556,0.14959 -0.11578,0.0559 -0.1653,-0.0932 -0.0165,-0.20575 0.0331,-0.22438 0.24798,-0.18688 0.19826,0 0.0329,-0.11229 0.24786,0.0559 0.18183,0.2246 0.0331,-0.37419 0.31401,-0.26167 0.11567,-0.28055 0.23133,-0.0934 0.1322,-0.18688 0.29738,-0.0564 0.14885,-0.22415 c -0.14874,0 -0.29749,0 -0.44623,0 l 0.28094,-0.13095 0.19814,0 0.28106,-0.0937 0.0331,-0.11186 -0.0992,-0.0937 -0.11567,-0.0375 0.0331,-0.11208 -0.0826,-0.16822 -0.19837,0.0746 0.0331,-0.14947 -0.23134,-0.13096 -0.18171,0.3177 0.0165,0.11229 -0.18171,0.075 -0.11578,0.24302 -0.0495,-0.22438 -0.31402,-0.13095 -0.0496,-0.16822 0.41315,-0.24325 0.18182,-0.16822 0.0165,-0.20563 -0.0991,-0.0562 -0.13219,-0.0188 -0.0826,0.20575 c 0,0 -0.1382,0.0271 -0.17373,0.0358 -0.45378,0.41804 -1.37066,1.32044 -1.58368,3.02405 0.008,0.0395 0.15441,0.26854 0.15441,0.26854 l 0.347,0.20552 0.347,0.0937 m 3.96609,-4.30034 -0.4298,-0.16833 -0.49552,0.0561 -0.61161,0.16822 -0.11567,0.11229 0.38008,0.26167 0,0.14959 -0.14875,0.14959 0.19846,0.39294 0.13188,-0.075 0.16561,-0.26168 c 0.2553,-0.0789 0.4842,-0.16833 0.72686,-0.28053 l 0.19846,-0.5048 m 2.52925,0.34192 -0.375,0.0937 -0.21875,0.15625 0,0.125 -0.375,0.25 0.0937,0.34375 0.21875,-0.15625 0.125,0.15625 0.15625,0.0937 0.0937,-0.28125 -0.0625,-0.15625 0.0625,-0.0937 0.21875,-0.1875 0.0937,0 -0.0937,0.21875 0,0.1875 c 0.0892,-0.0242 0.1588,-0.051 0.25,-0.0625 l -0.25,0.1875 0,0.125 -0.3125,0.21875 -0.28125,-0.0625 0,-0.15625 -0.125,0.0625 0.0625,0.15625 -0.21875,0 -0.125,0.21875 -0.15625,0.15625 -0.0937,0.0312 0,0.1875 0.0312,0.15625 -0.0312,0 0,0.53125 0.0625,-0.0312 0.0937,-0.21875 0.1875,-0.125 0.0312,-0.0937 0.28125,-0.0625 0.15625,0.1875 0.1875,0.0937 -0.0937,0.1875 0.15625,-0.0312 0.0625,-0.21875 -0.1875,-0.21875 0.0625,0 0.21875,0.15625 0.0312,0.21875 0.15625,0.21875 0.0625,-0.3125 0.0937,-0.0312 c 0.0959,0.0996 0.1692,0.23163 0.25,0.34375 l 0.28125,0 0.1875,0.125 -0.0937,0.0937 -0.15625,0.15625 -0.25,0 -0.34375,-0.0937 -0.1875,0 -0.125,0.15625 -0.34375,-0.375 -0.25,-0.0625 -0.375,0.0625 -0.15625,0.0937 0,2.40625 0.0312,0.0312 0.25,-0.15625 0.0937,0.0937 0.28125,0 0.125,0.15625 -0.0937,0.3125 0.1875,0.1875 0,0.375 0.125,0.25 -0.0937,0.25 c -0.009,0.16159 0,0.30714 0,0.46875 0.0795,0.21894 0.14355,0.43575 0.21875,0.65625 l 0.0625,0.34375 0,0.1875 0.125,0 0.21875,-0.125 0.25,0 0.375,-0.4375 -0.0312,-0.15625 0.25,-0.21875 -0.1875,-0.1875 0.21875,-0.1875 0.21875,-0.125 0.0937,-0.125 -0.0625,-0.25 0,-0.59375 0.1875,-0.375 0.1875,-0.25 0.25,-0.5625 0,-0.15625 c -0.11654,0.0146 -0.22972,0.0231 -0.34375,0.0312 -0.0722,0.005 -0.14446,0 -0.21875,0 -0.12359,-0.25961 -0.2183,-0.50966 -0.3125,-0.78125 l -0.15625,-0.1875 -0.0937,-0.3125 0.0625,-0.0625 0.21875,0.25 0.25,0.5625 0.15625,0.15625 -0.0625,0.21875 0.15625,0.15625 0.25,-0.25 0.3125,-0.21875 0.15625,-0.1875 0,-0.21875 c -0.0389,-0.0732 -0.0547,-0.14545 -0.0937,-0.21875 l -0.15625,0.1875 -0.125,-0.15625 -0.1875,-0.125 0,-0.28125 0.21875,0.21875 0.21875,-0.0312 c 0.10166,0.0923 0.19205,0.20751 0.28125,0.3125 l 0.15625,-0.1875 c 0,-0.17463 -0.19976,-1.02044 -0.625,-1.75 -0.42526,-0.72932 -1.15625,-1.40625 -1.15625,-1.40625 l -0.0625,0.0937 -0.21875,0.21875 -0.25,-0.25 0.25,0 0.125,-0.125 -0.46875,-0.0937 -0.25,-0.0937 z'/>
+ </g>
+ <g inkscape:groupmode='layer' id='layer13' inkscape:label='places' transform='translate(-183,-529)'/>
+ <g inkscape:groupmode='layer' id='layer14' inkscape:label='mimetypes' transform='translate(-183,-529)'/>
+ <g style='display:inline' inkscape:groupmode='layer' id='layer15' inkscape:label='emblems' transform='translate(-183,-529)'/>
+ <g style='display:inline' inkscape:groupmode='layer' id='g71291' inkscape:label='emotes' transform='translate(-183,-529)'/>
+ <g style='display:inline' inkscape:groupmode='layer' id='g4953' inkscape:label='categories' transform='translate(-183,-529)'/>
+ <g style='display:inline' inkscape:groupmode='layer' id='layer12' inkscape:label='actions' transform='translate(-183,-529)'/>
+</svg>
diff --git a/public/themes/flat-design/icons/login.png b/public/themes/flat-design/icons/login.png
new file mode 100644
index 000000000..9d436b8d0
--- /dev/null
+++ b/public/themes/flat-design/icons/login.png
Binary files differ
diff --git a/public/themes/flat-design/icons/login.svg b/public/themes/flat-design/icons/login.svg
new file mode 100644
index 000000000..0ac148a06
--- /dev/null
+++ b/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>
diff --git a/public/themes/flat-design/icons/logout.png b/public/themes/flat-design/icons/logout.png
new file mode 100644
index 000000000..84917499d
--- /dev/null
+++ b/public/themes/flat-design/icons/logout.png
Binary files differ
diff --git a/public/themes/flat-design/icons/logout.svg b/public/themes/flat-design/icons/logout.svg
new file mode 100644
index 000000000..c573700bf
--- /dev/null
+++ b/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>
diff --git a/public/themes/flat-design/icons/next.png b/public/themes/flat-design/icons/next.png
new file mode 100644
index 000000000..d240ac6eb
--- /dev/null
+++ b/public/themes/flat-design/icons/next.png
Binary files differ
diff --git a/public/themes/flat-design/icons/next.svg b/public/themes/flat-design/icons/next.svg
new file mode 100644
index 000000000..d75cc40f5
--- /dev/null
+++ b/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>
diff --git a/public/themes/flat-design/icons/non-starred.png b/public/themes/flat-design/icons/non-starred.png
new file mode 100644
index 000000000..4aafb6d8a
--- /dev/null
+++ b/public/themes/flat-design/icons/non-starred.png
Binary files differ
diff --git a/public/themes/flat-design/icons/non-starred.svg b/public/themes/flat-design/icons/non-starred.svg
new file mode 100644
index 000000000..346717f78
--- /dev/null
+++ b/public/themes/flat-design/icons/non-starred.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='non-starred-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='0.50817' pagecolor='#555753' borderopacity='1' showborder='false' inkscape:bbox-paths='false' guidetolerance='10' inkscape:object-paths='true' inkscape:window-width='1457' 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='86' inkscape:snap-global='true' inkscape:window-y='51' gridtolerance='10' inkscape:window-height='1093' inkscape:snap-to-guides='true' inkscape:current-layer='layer9' inkscape:snap-bbox-midpoints='false' inkscape:zoom='1' inkscape:cx='-0.97094164' 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(-61.000202,-397)' inkscape:groupmode='layer' id='layer9' style='display:inline'>
+ <g inkscape:label='folder-remote' transform='translate(-166.9996,-599)' id='g5516'>
+
+ </g>
+ <path inkscape:connector-curvature='0' d='m 69.002994,398.0051 c -0.2659,-9.9e-4 -0.498591,0.1006 -0.664702,0.2393 -0.166111,0.13869 -0.277415,0.32137 -0.389683,0.50028 -0.224526,0.35782 -0.392692,0.76873 -0.565462,1.20357 -0.17277,0.43483 -0.347131,0.88766 -0.504599,1.23232 -0.157468,0.34465 -0.345596,0.57871 -0.35862,0.58776 -0.01287,0.009 -0.307217,0.117 -0.695765,0.15181 -0.388547,0.0348 -0.881219,0.0492 -1.36324,0.0694 -0.482021,0.0202 -0.970296,0.0362 -1.393042,0.12817 -0.211377,0.046 -0.4154,0.10148 -0.604343,0.20956 -0.188943,0.10808 -0.366894,0.28631 -0.450041,0.53002 -0.08315,0.24371 -0.04901,0.50627 0.03636,0.70157 0.08537,0.19531 0.226562,0.36514 0.368205,0.52344 0.283296,0.31663 0.632701,0.60557 1.007899,0.89849 0.375198,0.29292 0.776711,0.55926 1.067753,0.81027 0.291042,0.25101 0.454223,0.50796 0.459122,0.52271 0.0048,0.0146 0.03119,0.33498 -0.05456,0.70231 -0.08575,0.36732 -0.223801,0.81174 -0.352819,1.26034 -0.129019,0.44861 -0.25176,0.90196 -0.291704,1.31835 -0.01997,0.20819 -0.04285,0.40729 0.0053,0.61409 0.04814,0.20679 0.184498,0.43007 0.399016,0.58168 0.214508,0.15161 0.449359,0.1881 0.668233,0.1701 0.218874,-0.018 0.435347,-0.0703 0.635153,-0.15132 0.399612,-0.16214 0.801767,-0.42851 1.206417,-0.68231 0.404649,-0.2538 0.808218,-0.52155 1.145553,-0.71107 0.337335,-0.18952 0.648398,-0.2686 0.66445,-0.26854 0.01586,6e-5 0.303381,0.0951 0.638936,0.28732 0.335555,0.19221 0.725321,0.46503 1.127607,0.72205 0.402287,0.25702 0.819957,0.49752 1.218019,0.66284 0.199027,0.0827 0.388928,0.15086 0.607623,0.17059 0.218695,0.0197 0.479784,-0.031 0.695512,-0.18105 0.215717,-0.15001 0.339276,-0.35235 0.389178,-0.55877 0.0499,-0.20642 0.04291,-0.43517 0.02476,-0.64358 -0.03632,-0.41683 -0.158989,-0.86394 -0.284099,-1.31372 -0.12511,-0.44978 -0.261649,-0.88661 -0.344206,-1.25475 -0.08256,-0.36813 -0.07169,-0.68662 -0.06666,-0.70133 0.005,-0.0145 0.187465,-0.25247 0.480599,-0.50101 0.293134,-0.24854 0.675989,-0.53755 1.053628,-0.82731 0.37764,-0.28976 0.767161,-0.57158 1.053124,-0.88579 0.142977,-0.1571 0.241796,-0.33444 0.32882,-0.52904 0.08702,-0.1946 0.135998,-0.42874 0.05481,-0.67306 -0.08119,-0.24432 -0.271084,-0.41314 -0.459122,-0.52272 -0.188037,-0.10958 -0.366789,-0.18158 -0.577821,-0.22931 -0.422064,-0.0955 -0.913586,-0.14009 -1.395564,-0.16426 -0.481977,-0.0242 -0.945835,-0.039 -1.334196,-0.077 -0.388361,-0.038 -0.715653,-0.13122 -0.728592,-0.14037 -0.01279,-0.009 -0.184019,-0.23636 -0.338404,-0.58217 -0.154385,-0.34581 -0.326584,-0.78819 -0.495481,-1.22429 -0.168896,-0.4361 -0.334766,-0.86429 -0.556091,-1.2238 -0.110668,-0.17977 -0.233352,-0.35397 -0.398259,-0.49396 -0.164907,-0.13999 -0.40309,-0.25684 -0.66899,-0.25783 z m 0.0086,0.99424 c 0.0422,0.0358 0.106711,0.13602 0.184103,0.26173 0.154773,0.25141 0.330675,0.6272 0.493967,1.04883 0.163292,0.42163 0.319052,0.88645 0.495985,1.28277 0.176933,0.39633 0.314564,0.73379 0.675296,0.98889 0.360721,0.25509 0.770187,0.29763 1.215244,0.34118 0.445058,0.0435 0.92882,0.0532 1.394807,0.0765 0.465988,0.0234 0.918236,0.0697 1.213479,0.13647 0.147627,0.0334 0.255581,0.0572 0.303811,0.0853 -0.02227,0.0498 -0.07958,0.15478 -0.179562,0.26464 -0.199968,0.21973 -0.537491,0.48746 -0.902606,0.7676 -0.365114,0.28015 -0.778037,0.57219 -1.113986,0.85704 -0.33595,0.28485 -0.639918,0.53221 -0.779871,0.94209 -0.139952,0.40986 -0.05396,0.77681 0.04065,1.19869 0.09461,0.42189 0.25406,0.87813 0.375016,1.31299 0.120956,0.43486 0.226877,0.84692 0.25228,1.13851 0.01156,0.13264 -0.01699,0.23485 -0.02778,0.29267 -0.05993,-0.008 -0.176402,-0.0324 -0.303811,-0.0853 -0.278362,-0.11561 -0.646494,-0.32808 -1.03543,-0.57657 -0.388935,-0.24849 -0.803899,-0.53053 -1.18847,-0.75081 -0.38457,-0.22028 -0.707909,-0.39837 -1.155138,-0.40015 -0.447219,-0.002 -0.792046,0.17245 -1.178633,0.38965 -0.386587,0.21719 -0.784375,0.49517 -1.175607,0.74055 -0.391232,0.24538 -0.776359,0.4507 -1.055898,0.56412 -0.139769,0.0567 -0.246155,0.0856 -0.302298,0.0902 -0.01026,-0.0578 -0.01522,-0.16008 -0.0025,-0.29243 0.02793,-0.29118 0.138178,-0.70893 0.262912,-1.14264 0.124734,-0.43372 0.254035,-0.89785 0.352315,-1.31883 0.09828,-0.42099 0.186721,-0.78846 0.05027,-1.19943 -0.136442,-0.41097 -0.43218,-0.64202 -0.765707,-0.92967 -0.333527,-0.28766 -0.705509,-0.58555 -1.068257,-0.86876 -0.362749,-0.2832 -0.717797,-0.56075 -0.915974,-0.78224 -0.09908,-0.11075 -0.162208,-0.21163 -0.184103,-0.26173 0.04834,-0.0276 0.154481,-0.058 0.302298,-0.0902 0.295625,-0.0643 0.745175,-0.10714 1.211209,-0.1267 0.466034,-0.0196 0.948238,-0.0298 1.393546,-0.0697 0.445308,-0.0399 0.846793,-0.0499 1.209695,-0.30216 0.362893,-0.25221 0.5383,-0.60511 0.718755,-1.00009 0.180456,-0.39497 0.33731,-0.84115 0.504347,-1.26156 0.167037,-0.42041 0.318485,-0.83556 0.475555,-1.08586 0.07853,-0.12515 0.167511,-0.20007 0.21012,-0.23565 z' id='path5520' 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:#000000;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:1.04970646;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(-61.000202,-397)' inkscape:groupmode='layer' id='layer10'/>
+ <g inkscape:label='apps' transform='translate(-61.000202,-397)' inkscape:groupmode='layer' id='layer11'/>
+ <g inkscape:label='actions' transform='translate(-61.000202,-397)' inkscape:groupmode='layer' id='layer12'/>
+ <g inkscape:label='places' transform='translate(-61.000202,-397)' inkscape:groupmode='layer' id='layer13'/>
+ <g inkscape:label='mimetypes' transform='translate(-61.000202,-397)' inkscape:groupmode='layer' id='layer14'/>
+ <g inkscape:label='emblems' transform='translate(-61.000202,-397)' inkscape:groupmode='layer' id='layer15' style='display:inline'/>
+ <g inkscape:label='categories' transform='translate(-61.000202,-397)' inkscape:groupmode='layer' id='g4953' style='display:inline'/>
+</svg>
diff --git a/public/themes/flat-design/icons/note.png b/public/themes/flat-design/icons/note.png
new file mode 100644
index 000000000..d819ebd02
--- /dev/null
+++ b/public/themes/flat-design/icons/note.png
Binary files differ
diff --git a/public/themes/flat-design/icons/note.svg b/public/themes/flat-design/icons/note.svg
new file mode 100644
index 000000000..117b999f7
--- /dev/null
+++ b/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>
diff --git a/public/themes/flat-design/icons/note_empty.png b/public/themes/flat-design/icons/note_empty.png
new file mode 100644
index 000000000..c26ad2b16
--- /dev/null
+++ b/public/themes/flat-design/icons/note_empty.png
Binary files differ
diff --git a/public/themes/flat-design/icons/note_empty.svg b/public/themes/flat-design/icons/note_empty.svg
new file mode 100644
index 000000000..93092f4a4
--- /dev/null
+++ b/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>
diff --git a/public/themes/flat-design/icons/previous.png b/public/themes/flat-design/icons/previous.png
new file mode 100644
index 000000000..b541f6c0c
--- /dev/null
+++ b/public/themes/flat-design/icons/previous.png
Binary files differ
diff --git a/public/themes/flat-design/icons/previous.svg b/public/themes/flat-design/icons/previous.svg
new file mode 100644
index 000000000..9ba03ceb2
--- /dev/null
+++ b/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>
diff --git a/public/themes/flat-design/icons/read.png b/public/themes/flat-design/icons/read.png
new file mode 100644
index 000000000..a402689c7
--- /dev/null
+++ b/public/themes/flat-design/icons/read.png
Binary files differ
diff --git a/public/themes/flat-design/icons/read.svg b/public/themes/flat-design/icons/read.svg
new file mode 100644
index 000000000..932bfd860
--- /dev/null
+++ b/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>
diff --git a/public/themes/flat-design/icons/refresh.png b/public/themes/flat-design/icons/refresh.png
new file mode 100644
index 000000000..2fdd1b0a5
--- /dev/null
+++ b/public/themes/flat-design/icons/refresh.png
Binary files differ
diff --git a/public/themes/flat-design/icons/refresh.svg b/public/themes/flat-design/icons/refresh.svg
new file mode 100644
index 000000000..8f95bf443
--- /dev/null
+++ b/public/themes/flat-design/icons/refresh.svg
@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:svg='http://www.w3.org/2000/svg' xmlns:cc='http://creativecommons.org/ns#' id='svg7384' sodipodi:docname='view-refresh-symbolic.svg' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns='http://www.w3.org/2000/svg' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' inkscape:version='0.48.1 r9760' version='1.1' width='16' height='16' xmlns:dc='http://purl.org/dc/elements/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:zoom='1' inkscape:bbox-paths='false' inkscape:pageopacity='1' guidetolerance='10' inkscape:snap-bbox='true' inkscape:window-height='1162' objecttolerance='10' id='namedview88' showborder='false' inkscape:window-x='2191' inkscape:window-y='111' inkscape:cx='9.3351214' inkscape:cy='10.6119' gridtolerance='10' inkscape:snap-bbox-midpoints='false' showguides='true' inkscape:pageshadow='2' pagecolor='#555753' bordercolor='#666666' inkscape:snap-global='true' inkscape:window-maximized='0' inkscape:object-nodes='false' inkscape:snap-nodes='false' inkscape:guide-bbox='true' inkscape:window-width='1595' inkscape:snap-others='false' borderopacity='1' showgrid='false' inkscape:snap-to-guides='true' inkscape:object-paths='false' inkscape:snap-grids='true' inkscape:current-layer='layer12'>
+ <inkscape:grid enabled='true' spacingx='1px' spacingy='1px' id='grid4866' visible='true' snapvisiblegridlinesonly='true' empspacing='2' type='xygrid'/>
+ </sodipodi:namedview>
+ <title id='title9167'>Gnome Symbolic Icon Theme</title>
+ <defs id='defs7386'/>
+ <g id='layer9' transform='translate(-241.0002,-627)' inkscape:label='status' style='display:inline' inkscape:groupmode='layer'/>
+ <g id='layer10' transform='translate(-241.0002,-627)' inkscape:label='devices' inkscape:groupmode='layer'/>
+ <g id='layer11' transform='translate(-241.0002,-627)' inkscape:label='apps' inkscape:groupmode='layer'/>
+ <g id='layer13' transform='translate(-241.0002,-627)' inkscape:label='places' inkscape:groupmode='layer'/>
+ <g id='layer14' transform='translate(-241.0002,-627)' inkscape:label='mimetypes' inkscape:groupmode='layer'/>
+ <g id='layer15' transform='translate(-241.0002,-627)' inkscape:label='emblems' style='display:inline' inkscape:groupmode='layer'/>
+ <g id='g71291' transform='translate(-241.0002,-627)' inkscape:label='emotes' style='display:inline' inkscape:groupmode='layer'/>
+ <g id='g4953' transform='translate(-241.0002,-627)' inkscape:label='categories' style='display:inline' inkscape:groupmode='layer'/>
+ <g id='layer12' transform='translate(-241.0002,-627)' inkscape:label='actions' style='display:inline' inkscape:groupmode='layer'>
+
+ <path id='path4597' d='m 253.90645,628.96875 a 1.0001,1.0001 0 0 0 -0.125,0.0312 1.0001,1.0001 0 0 0 -0.78125,1 l 0,1.6875 c -0.38225,-0.57796 -0.84927,-1.08223 -1.40625,-1.5 -1.15563,-0.86677 -2.53199,-1.25227 -3.875,-1.1875 -0.19186,0.009 -0.37223,0.0353 -0.5625,0.0625 -1.52218,0.21741 -2.97815,1.02304 -3.96875,2.34375 -1.98119,2.64144 -1.42267,6.42505 1.21875,8.40625 2.64147,1.98122 6.42504,1.42267 8.40625,-1.21875 A 1.0063276,1.0063276 0 0 0 253.0002,638 a 1.0063276,1.0063276 0 0 0 0,-0.15625 l 0,-0.84375 -0.8125,0 -0.0937,0 a 1.0063276,1.0063276 0 0 0 -0.0937,0 1.0063276,1.0063276 0 0 0 -0.8125,0.40625 c -1.33265,1.77674 -3.81702,2.11387 -5.59375,0.78125 -1.77674,-1.33264 -2.1139,-3.81699 -0.78125,-5.59375 1.33265,-1.77674 3.817,-2.11389 5.59375,-0.78125 0.42946,0.32212 0.76954,0.73295 1.03125,1.1875 l -1.4375,0 a 1.0001,1.0001 0 0 0 -1,1 1.0001,1.0001 0 0 0 0,0.21875 l 0,0.78125 0.84375,0 0.15625,0 4,0 1,0 0,-1 0,-4 a 1.0001,1.0001 0 0 0 0,-0.1875 l 0,-0.8125 -0.8125,0 a 1.0001,1.0001 0 0 0 -0.28125,-0.0312 z' 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' inkscape:connector-curvature='0'/>
+ </g>
+</svg>
diff --git a/public/themes/flat-design/icons/rss.png b/public/themes/flat-design/icons/rss.png
new file mode 100644
index 000000000..c20455af0
--- /dev/null
+++ b/public/themes/flat-design/icons/rss.png
Binary files differ
diff --git a/public/themes/flat-design/icons/rss.svg b/public/themes/flat-design/icons/rss.svg
new file mode 100644
index 000000000..ceaddceee
--- /dev/null
+++ b/public/themes/flat-design/icons/rss.svg
@@ -0,0 +1,32 @@
+<?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='application-rss+xml-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.3.1 r9886' 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-paths='false' bordercolor='#666666' borderopacity='1' inkscape:current-layer='layer14' inkscape:cx='27.01134' inkscape:cy='1.367038' 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='709' inkscape:window-maximized='1' inkscape:window-width='1366' inkscape:window-x='0' inkscape:window-y='27' inkscape:zoom='1'>
+ <inkscape:grid empspacing='2' enabled='true' id='grid4866' originx='-319.9998px' originy='84.00012px' 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(-561,-301.00012)'/>
+ <g inkscape:groupmode='layer' id='layer10' inkscape:label='devices' transform='translate(-561,-301.00012)'/>
+ <g inkscape:groupmode='layer' id='layer11' inkscape:label='apps' transform='translate(-561,-301.00012)'/>
+ <g inkscape:groupmode='layer' id='layer13' inkscape:label='places' transform='translate(-561,-301.00012)'/>
+ <g inkscape:groupmode='layer' id='layer14' inkscape:label='mimetypes' transform='translate(-561,-301.00012)'>
+
+ <path sodipodi:cx='323.0625' sodipodi:cy='97.1875' d='m 325.0625,97.1875 a 2,3.236068 0 1 1 -4,0 2,3.236068 0 1 1 4,0 z' id='path4983' sodipodi:rx='2' sodipodi:ry='3.236068' style='color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.69602728;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new' transform='matrix(1.0000007,0,0,0.61803426,241.93747,252.93479)' sodipodi:type='arc'/>
+ <path inkscape:connector-curvature='0' d='m 563.0002,303 0,1 c 0,0.55016 0.45347,1 1,1 4.97056,0 9,4.02944 9,9 0,0.55016 0.45347,1 1,1 l 1,0 0,-1 c 0,-6.07513 -4.92487,-11 -11,-11 l -1,0 z m 0,4 0,1 c 0,0.55016 0.45347,1 1,1 2.76143,0 5,2.23857 5,5 0,0.55016 0.45347,1 1,1 l 1,0 0,-1 c 0,-3.866 -3.134,-7 -7,-7 l -1,0 z' id='path5814' style='color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333492;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new'/>
+ </g>
+ <g inkscape:groupmode='layer' id='layer15' inkscape:label='emblems' style='display:inline' transform='translate(-561,-301.00012)'/>
+ <g inkscape:groupmode='layer' id='g71291' inkscape:label='emotes' style='display:inline' transform='translate(-561,-301.00012)'/>
+ <g inkscape:groupmode='layer' id='g4953' inkscape:label='categories' style='display:inline' transform='translate(-561,-301.00012)'/>
+ <g inkscape:groupmode='layer' id='layer12' inkscape:label='actions' style='display:inline' transform='translate(-561,-301.00012)'/>
+</svg>
diff --git a/public/themes/flat-design/icons/search.png b/public/themes/flat-design/icons/search.png
new file mode 100644
index 000000000..60e25d121
--- /dev/null
+++ b/public/themes/flat-design/icons/search.png
Binary files differ
diff --git a/public/themes/flat-design/icons/search.svg b/public/themes/flat-design/icons/search.svg
new file mode 100644
index 000000000..bca7571b4
--- /dev/null
+++ b/public/themes/flat-design/icons/search.svg
@@ -0,0 +1,32 @@
+<?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='folder-saved-search-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.2 r9819' version='1.1' width='16.000002' 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-paths='false' bordercolor='#FFFFFF' borderopacity='1' inkscape:current-layer='layer13' inkscape:cx='-151.02446' inkscape:cy='0.353386' gridtolerance='10' inkscape:guide-bbox='true' guidetolerance='10' id='namedview88' inkscape:object-nodes='false' inkscape:object-paths='false' objecttolerance='10' pagecolor='#555753' 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='1168' inkscape:window-maximized='1' inkscape:window-width='1600' inkscape:window-x='0' inkscape:window-y='0' inkscape:zoom='1'>
+ <inkscape:grid empspacing='2' enabled='true' id='grid4866' 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(-441.0004,-195)'/>
+ <g inkscape:groupmode='layer' id='layer10' inkscape:label='devices' transform='translate(-441.0004,-195)'/>
+ <g inkscape:groupmode='layer' id='layer11' inkscape:label='apps' transform='translate(-441.0004,-195)'/>
+ <g inkscape:groupmode='layer' id='layer13' inkscape:label='places' transform='translate(-441.0004,-195)'>
+ <path inkscape:connector-curvature='0' d='m 447.50781,195.99554 c -3.02886,0 -5.51073,2.47905 -5.51073,5.50447 0,3.02541 2.48187,5.50446 5.51073,5.50446 3.02885,0 5.51072,-2.47905 5.51072,-5.50446 0,-3.02542 -2.48187,-5.50447 -5.51072,-5.50447 z m 0,2.00893 c 1.94735,0 3.49951,1.55039 3.49951,3.49554 0,1.94514 -1.55216,3.49553 -3.49951,3.49553 -1.94736,0 -3.49952,-1.55039 -3.49952,-3.49553 0,-1.94515 1.55216,-3.49554 3.49952,-3.49554 z' id='path5079' 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:1.55467153;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new;font-family:Sans;-inkscape-font-specification:Sans'/>
+ <path inkscape:connector-curvature='0' d='m 450.8125,204 a 1.0001,1.0001 0 0 0 -0.5,1.71875 l 4,4 a 1.0054782,1.0054782 0 1 0 1.40625,-1.4375 l -4,-4 A 1.0001,1.0001 0 0 0 450.8125,204 z' id='path5081' 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:new;font-family:Sans;-inkscape-font-specification:Sans'/>
+
+ </g>
+ <g inkscape:groupmode='layer' id='layer14' inkscape:label='mimetypes' transform='translate(-441.0004,-195)'/>
+ <g inkscape:groupmode='layer' id='layer15' inkscape:label='emblems' style='display:inline' transform='translate(-441.0004,-195)'/>
+ <g inkscape:groupmode='layer' id='g71291' inkscape:label='emotes' style='display:inline' transform='translate(-441.0004,-195)'/>
+ <g inkscape:groupmode='layer' id='g4953' inkscape:label='categories' style='display:inline' transform='translate(-441.0004,-195)'/>
+ <g inkscape:groupmode='layer' id='layer12' inkscape:label='actions' style='display:inline' transform='translate(-441.0004,-195)'/>
+</svg>
diff --git a/public/themes/flat-design/icons/share.png b/public/themes/flat-design/icons/share.png
new file mode 100644
index 000000000..74c4c5dda
--- /dev/null
+++ b/public/themes/flat-design/icons/share.png
Binary files differ
diff --git a/public/themes/flat-design/icons/share.svg b/public/themes/flat-design/icons/share.svg
new file mode 100644
index 000000000..443321882
--- /dev/null
+++ b/public/themes/flat-design/icons/share.svg
@@ -0,0 +1,34 @@
+<?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='folder-publicshare-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.3.1 r9886' 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-paths='false' bordercolor='#666666' borderopacity='1' inkscape:current-layer='layer13' inkscape:cx='-55.50224' inkscape:cy='-178.38158' 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='1381' inkscape:window-maximized='1' inkscape:window-width='2560' inkscape:window-x='1600' inkscape:window-y='27' inkscape:zoom='1'>
+ <inkscape:grid empspacing='2' enabled='true' id='grid4866' originx='-340px' originy='-20.999999px' 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(-581.0002,-196)'/>
+ <g inkscape:groupmode='layer' id='layer10' inkscape:label='devices' transform='translate(-581.0002,-196)'/>
+ <g inkscape:groupmode='layer' id='layer11' inkscape:label='apps' transform='translate(-581.0002,-196)'/>
+ <g inkscape:groupmode='layer' id='layer13' inkscape:label='places' transform='translate(-581.0002,-196)'>
+
+ <path sodipodi:cx='289.03125' sodipodi:cy='178.03125' d='m 291,178.03125 a 1.96875,1.96875 0 1 1 -3.9375,0 1.96875,1.96875 0 1 1 3.9375,0 z' id='path8192' sodipodi:rx='1.96875' sodipodi:ry='1.96875' style='color:#000000;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new' transform='matrix(1.5079365,0,0,1.5079365,148.15963,-64.49107)' sodipodi:type='arc'/>
+ <path sodipodi:cx='289.03125' sodipodi:cy='178.03125' d='m 291,178.03125 a 1.96875,1.96875 0 1 1 -3.9375,0 1.96875,1.96875 0 1 1 3.9375,0 z' id='path8194' sodipodi:rx='1.96875' sodipodi:ry='1.96875' style='color:#000000;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new' transform='matrix(1.5079365,0,0,1.5079365,158.12818,-59.49107)' sodipodi:type='arc'/>
+ <path sodipodi:cx='289.03125' sodipodi:cy='178.03125' d='m 291,178.03125 a 1.96875,1.96875 0 1 1 -3.9375,0 1.96875,1.96875 0 1 1 3.9375,0 z' id='path8196' sodipodi:rx='1.96875' sodipodi:ry='1.96875' style='color:#000000;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new' transform='matrix(1.5079365,0,0,1.5079365,158.12818,-69.49107)' sodipodi:type='arc'/>
+ <path inkscape:connector-curvature='0' d='m 593.625,198.15625 -10.0625,4.875 -1.8125,0.90625 1.8125,0.90625 10.03125,5.0625 0.90625,-1.8125 -8.21875,-4.15625 8.21875,-4 -0.875,-1.78125 z' id='path8198' 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:#000000;fill:#bebebe;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:groupmode='layer' id='layer14' inkscape:label='mimetypes' transform='translate(-581.0002,-196)'/>
+ <g inkscape:groupmode='layer' id='layer15' inkscape:label='emblems' style='display:inline' transform='translate(-581.0002,-196)'/>
+ <g inkscape:groupmode='layer' id='g71291' inkscape:label='emotes' style='display:inline' transform='translate(-581.0002,-196)'/>
+ <g inkscape:groupmode='layer' id='g4953' inkscape:label='categories' style='display:inline' transform='translate(-581.0002,-196)'/>
+ <g inkscape:groupmode='layer' id='layer12' inkscape:label='actions' style='display:inline' transform='translate(-581.0002,-196)'/>
+</svg>
diff --git a/public/themes/flat-design/icons/starred.png b/public/themes/flat-design/icons/starred.png
new file mode 100644
index 000000000..ff2cf31a7
--- /dev/null
+++ b/public/themes/flat-design/icons/starred.png
Binary files differ
diff --git a/public/themes/flat-design/icons/starred.svg b/public/themes/flat-design/icons/starred.svg
new file mode 100644
index 000000000..d6e2cebb5
--- /dev/null
+++ b/public/themes/flat-design/icons/starred.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='starred-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='0.50817' pagecolor='#555753' borderopacity='1' showborder='false' inkscape:bbox-paths='false' guidetolerance='10' inkscape:object-paths='true' inkscape:window-width='1457' 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='86' inkscape:snap-global='true' inkscape:window-y='51' gridtolerance='10' inkscape:window-height='1093' inkscape:snap-to-guides='true' inkscape:current-layer='layer9' inkscape:snap-bbox-midpoints='false' inkscape:zoom='1' inkscape:cx='19.029058' 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(-41.000202,-397)' inkscape:groupmode='layer' id='layer9' style='display:inline'>
+ <g inkscape:label='folder-remote' transform='translate(-186.9996,-599)' id='g11910-1'>
+
+ </g>
+ <path sodipodi:cy='180.96373' sodipodi:r2='3.8276224' transform='matrix(1.0472113,-0.00871584,0.00871584,1.0472113,-504.35434,220.15425)' inkscape:rounded='0.2104596' inkscape:flatsided='false' inkscape:transform-center-x='-0.0094346789' inkscape:transform-center-y='-0.69491065' d='m 530.9488,186.70897 c -0.77941,0.55189 -3.15759,-1.90601 -4.11253,-1.9179 -0.95532,-0.0119 -3.39494,2.38585 -4.16096,1.8149 -0.76573,-0.57072 0.83698,-3.59203 0.55319,-4.50391 -0.2839,-0.91223 -3.31818,-2.49151 -3.01189,-3.39647 0.30617,-0.90461 3.67487,-0.31399 4.45442,-0.86567 0.77986,-0.5519 1.3442,-3.92569 2.29952,-3.91404 0.95494,0.0116 1.43421,3.39798 2.19979,3.9689 0.76588,0.57114 4.14893,0.0653 4.43307,0.97746 0.28402,0.9118 -2.78848,2.41405 -3.09488,3.31858 -0.30652,0.90489 1.21999,3.96605 0.44027,4.51815 z' id='path11922-0' sodipodi:type='star' sodipodi:arg1='0.95492637' sodipodi:r1='7.0383992' style='color:#000000;fill:#f1c40f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate' sodipodi:arg2='1.5829876' inkscape:randomized='0' sodipodi:cx='526.88293' sodipodi:sides='5'/>
+ </g>
+ <g inkscape:label='devices' transform='translate(-41.000202,-397)' inkscape:groupmode='layer' id='layer10'/>
+ <g inkscape:label='apps' transform='translate(-41.000202,-397)' inkscape:groupmode='layer' id='layer11'/>
+ <g inkscape:label='actions' transform='translate(-41.000202,-397)' inkscape:groupmode='layer' id='layer12'/>
+ <g inkscape:label='places' transform='translate(-41.000202,-397)' inkscape:groupmode='layer' id='layer13'/>
+ <g inkscape:label='mimetypes' transform='translate(-41.000202,-397)' inkscape:groupmode='layer' id='layer14'/>
+ <g inkscape:label='emblems' transform='translate(-41.000202,-397)' inkscape:groupmode='layer' id='layer15' style='display:inline'/>
+ <g inkscape:label='categories' transform='translate(-41.000202,-397)' inkscape:groupmode='layer' id='g4953' style='display:inline'/>
+</svg>
diff --git a/public/themes/flat-design/icons/tag.png b/public/themes/flat-design/icons/tag.png
new file mode 100644
index 000000000..cb1a13833
--- /dev/null
+++ b/public/themes/flat-design/icons/tag.png
Binary files differ
diff --git a/public/themes/flat-design/icons/tag.svg b/public/themes/flat-design/icons/tag.svg
new file mode 100644
index 000000000..688aca7a4
--- /dev/null
+++ b/public/themes/flat-design/icons/tag.svg
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="tag.svg"
+ height="16"
+ id="svg7384"
+ inkscape:version="0.48.4 r9939"
+ version="1.1"
+ 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:bbox-paths="false"
+ bordercolor="#666666"
+ borderopacity="1"
+ inkscape:current-layer="layer12"
+ inkscape:cx="63.620645"
+ inkscape:cy="27.761176"
+ gridtolerance="10"
+ inkscape:guide-bbox="true"
+ guidetolerance="10"
+ id="namedview88"
+ inkscape:object-nodes="false"
+ inkscape:object-paths="false"
+ objecttolerance="10"
+ pagecolor="#555753"
+ 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="709"
+ inkscape:window-maximized="1"
+ inkscape:window-width="1366"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:zoom="4">
+ <inkscape:grid
+ empspacing="2"
+ enabled="true"
+ id="grid4866"
+ 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(-141.0002,-807)" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer10"
+ inkscape:label="devices"
+ transform="translate(-141.0002,-807)" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer11"
+ inkscape:label="apps"
+ transform="translate(-141.0002,-807)" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer13"
+ inkscape:label="places"
+ transform="translate(-141.0002,-807)" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer14"
+ inkscape:label="mimetypes"
+ transform="translate(-141.0002,-807)" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer15"
+ inkscape:label="emblems"
+ style="display:inline"
+ transform="translate(-141.0002,-807)" />
+ <g
+ inkscape:groupmode="layer"
+ id="g71291"
+ inkscape:label="emotes"
+ style="display:inline"
+ transform="translate(-141.0002,-807)" />
+ <g
+ inkscape:groupmode="layer"
+ id="g4953"
+ inkscape:label="categories"
+ style="display:inline"
+ transform="translate(-141.0002,-807)" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer12"
+ inkscape:label="actions"
+ style="display:inline"
+ transform="translate(-141.0002,-807)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 149.0002,809 0,13 4,-4 4,4 c 0.0525,-6.84943 -0.0285,-10.58353 0,-13 z"
+ id="path12292"
+ sodipodi:nodetypes="cccccc"
+ style="fill:#bebebe;fill-opacity:1;stroke:none" />
+ </g>
+</svg>
diff --git a/public/themes/flat-design/icons/unread.png b/public/themes/flat-design/icons/unread.png
new file mode 100644
index 000000000..ffcd323b1
--- /dev/null
+++ b/public/themes/flat-design/icons/unread.png
Binary files differ
diff --git a/public/themes/flat-design/icons/unread.svg b/public/themes/flat-design/icons/unread.svg
new file mode 100644
index 000000000..f541fb25b
--- /dev/null
+++ b/public/themes/flat-design/icons/unread.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='mail-unread-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='-166.8292' inkscape:current-layer='layer9' inkscape:window-width='1310' pagecolor='#555753' showborder='false' showguides='true' inkscape:snap-nodes='true' 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='25' gridtolerance='10' inkscape:zoom='1' inkscape:window-height='690' borderopacity='1' guidetolerance='10' inkscape:cx='315.82499' 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(-40.99995,-297)' inkscape:groupmode='layer' id='layer9' inkscape:label='status' style='display:inline'>
+
+ <path d='m 43.78125,301 a 1.0000999,1.0000999 0 0 0 -0.40625,1.78125 l 5,4 0.625,0.5 0.625,-0.5 5,-4 a 1.0004882,1.0004882 0 1 0 -1.25,-1.5625 l -4.375,3.5 -4.375,-3.5 A 1.0000999,1.0000999 0 0 0 43.78125,301 z' id='path35600' 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:#000000;fill:#e74c3c;fill-opacity:1;stroke:none;stroke-width:1.99999976;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 42.90625,300 A 1.0001,1.0001 0 0 0 42,301 l 0,9 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,-9 a 1.0001,1.0001 0 0 0 -1,-1 l -12,0 a 1.0001,1.0001 0 0 0 -0.09375,0 z M 44,302 l 10,0 0,7 -10,0 0,-7 z' id='rect35604' 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:#000000;fill:#e74c3c;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(-40.99995,-297)' inkscape:groupmode='layer' id='layer10' inkscape:label='devices'/>
+ <g transform='translate(-40.99995,-297)' inkscape:groupmode='layer' id='layer11' inkscape:label='apps'/>
+ <g transform='translate(-40.99995,-297)' inkscape:groupmode='layer' id='layer12' inkscape:label='actions'/>
+ <g transform='translate(-40.99995,-297)' inkscape:groupmode='layer' id='layer13' inkscape:label='places'/>
+ <g transform='translate(-40.99995,-297)' inkscape:groupmode='layer' id='layer14' inkscape:label='mimetypes'/>
+ <g transform='translate(-40.99995,-297)' inkscape:groupmode='layer' id='layer15' inkscape:label='emblems' style='display:inline'/>
+</svg>
diff --git a/public/themes/flat-design/icons/up.png b/public/themes/flat-design/icons/up.png
new file mode 100644
index 000000000..3a6fcd898
--- /dev/null
+++ b/public/themes/flat-design/icons/up.png
Binary files differ
diff --git a/public/themes/flat-design/icons/up.svg b/public/themes/flat-design/icons/up.svg
new file mode 100644
index 000000000..3ab11b168
--- /dev/null
+++ b/public/themes/flat-design/icons/up.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-up-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='-1.351226' 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='40px' 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(-201.0002,-747)'/>
+ <g inkscape:groupmode='layer' id='layer10' inkscape:label='devices' transform='translate(-201.0002,-747)'/>
+ <g inkscape:groupmode='layer' id='layer11' inkscape:label='apps' transform='translate(-201.0002,-747)'/>
+ <g inkscape:groupmode='layer' id='layer13' inkscape:label='places' transform='translate(-201.0002,-747)'/>
+ <g inkscape:groupmode='layer' id='layer14' inkscape:label='mimetypes' transform='translate(-201.0002,-747)'/>
+ <g inkscape:groupmode='layer' id='layer15' inkscape:label='emblems' style='display:inline' transform='translate(-201.0002,-747)'/>
+ <g inkscape:groupmode='layer' id='g71291' inkscape:label='emotes' style='display:inline' transform='translate(-201.0002,-747)'/>
+ <g inkscape:groupmode='layer' id='g4953' inkscape:label='categories' style='display:inline' transform='translate(-201.0002,-747)'/>
+ <g inkscape:groupmode='layer' id='layer12' inkscape:label='actions' style='display:inline' transform='translate(-201.0002,-747)'>
+
+ <path inkscape:connector-curvature='0' d='m 215.03152,758.99677 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-0' 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>
diff --git a/public/themes/flat-design/loader.gif b/public/themes/flat-design/loader.gif
new file mode 100644
index 000000000..ce36565b3
--- /dev/null
+++ b/public/themes/flat-design/loader.gif
Binary files differ
diff --git a/public/themes/flat-design/metadata.json b/public/themes/flat-design/metadata.json
new file mode 100644
index 000000000..3147ea53b
--- /dev/null
+++ b/public/themes/flat-design/metadata.json
@@ -0,0 +1,6 @@
+{
+ "name": "Flat design",
+ "author": "Marien Fressinaud",
+ "description": "Thème plat pour FreshRSS",
+ "version": 0.1
+} \ No newline at end of file
diff --git a/public/themes/flat-design/style.css b/public/themes/flat-design/style.css
new file mode 100644
index 000000000..c9d8551f4
--- /dev/null
+++ b/public/themes/flat-design/style.css
@@ -0,0 +1,2 @@
+@import url('global.css');
+@import url('freshrss.css'); \ No newline at end of file