aboutsummaryrefslogtreecommitdiff
path: root/p
diff options
context:
space:
mode:
Diffstat (limited to 'p')
-rw-r--r--p/api/.htaccess2
-rw-r--r--p/api/fever.php14
-rw-r--r--p/scripts/category.js178
-rw-r--r--p/scripts/extra.js241
-rw-r--r--p/scripts/global_view.js128
-rw-r--r--p/scripts/main.js2060
-rw-r--r--p/scripts/repartition.js4
-rw-r--r--p/scripts/shortcut.js225
-rw-r--r--p/scripts/stats.js8
-rw-r--r--p/themes/Ansum/_components.scss352
-rw-r--r--p/themes/Ansum/_configuration.scss90
-rw-r--r--p/themes/Ansum/_divers.scss12
-rw-r--r--p/themes/Ansum/_fonts.scss56
-rw-r--r--p/themes/Ansum/_forms.scss153
-rw-r--r--p/themes/Ansum/_global-view.scss80
-rw-r--r--p/themes/Ansum/_layout.scss462
-rw-r--r--p/themes/Ansum/_list-view.scss92
-rw-r--r--p/themes/Ansum/_logs.scss34
-rw-r--r--p/themes/Ansum/_mixins.scss57
-rw-r--r--p/themes/Ansum/_mobile.scss170
-rw-r--r--p/themes/Ansum/_reader-view.scss13
-rw-r--r--p/themes/Ansum/_sidebar.scss299
-rw-r--r--p/themes/Ansum/_stats.scss27
-rw-r--r--p/themes/Ansum/_tables.scss17
-rw-r--r--p/themes/Ansum/_variables.scss53
-rw-r--r--p/themes/Ansum/ansum.css1299
-rw-r--r--p/themes/Ansum/ansum.css.map7
-rw-r--r--p/themes/Ansum/ansum.scss51
-rw-r--r--p/themes/Ansum/icons/cog-white.svg5
-rw-r--r--p/themes/Ansum/icons/cog.svg59
-rw-r--r--p/themes/Ansum/icons/down-white.svg59
-rw-r--r--p/themes/Ansum/icons/down.svg59
-rw-r--r--p/themes/Ansum/icons/icon.svg75
-rw-r--r--p/themes/Ansum/icons/link-white.svg59
-rw-r--r--p/themes/Ansum/icons/link.svg5
-rw-r--r--p/themes/Ansum/icons/magnifier.svg5
-rw-r--r--p/themes/Ansum/icons/more.svg59
-rw-r--r--p/themes/Ansum/icons/non-starred-white.svg61
-rw-r--r--p/themes/Ansum/icons/non-starred.svg60
-rw-r--r--p/themes/Ansum/icons/read-grey.svg5
-rw-r--r--p/themes/Ansum/icons/read-white.svg59
-rw-r--r--p/themes/Ansum/icons/read.svg59
-rw-r--r--p/themes/Ansum/icons/refresh.svg59
-rw-r--r--p/themes/Ansum/icons/rss-white.svg60
-rw-r--r--p/themes/Ansum/icons/rss.svg60
-rw-r--r--p/themes/Ansum/icons/starred-white.svg59
-rw-r--r--p/themes/Ansum/icons/starred.svg5
-rw-r--r--p/themes/Ansum/icons/tick-color.svg57
-rw-r--r--p/themes/Ansum/icons/tick-white.svg5
-rw-r--r--p/themes/Ansum/icons/tick.svg5
-rw-r--r--p/themes/Ansum/icons/unread-grey.svg59
-rw-r--r--p/themes/Ansum/icons/unread-white.svg5
-rw-r--r--p/themes/Ansum/icons/unread.svg59
-rw-r--r--p/themes/Ansum/icons/up-white.svg59
-rw-r--r--p/themes/Ansum/icons/up.svg59
-rw-r--r--p/themes/Ansum/icons/view-global-white.svg5
-rw-r--r--p/themes/Ansum/icons/view-global.svg59
-rw-r--r--p/themes/Ansum/icons/view-list-white.svg5
-rw-r--r--p/themes/Ansum/icons/view-list.svg60
-rw-r--r--p/themes/Ansum/icons/view-reader-white.svg59
-rw-r--r--p/themes/Ansum/icons/view-reader.svg59
-rw-r--r--p/themes/Ansum/loader.gifbin0 -> 4251 bytes
-rw-r--r--p/themes/Ansum/metadata.json7
-rw-r--r--p/themes/Ansum/sass.sh1
-rw-r--r--p/themes/Ansum/thumbs/original.pngbin0 -> 182930 bytes
-rw-r--r--p/themes/Mapco/_components.scss352
-rw-r--r--p/themes/Mapco/_configuration.scss90
-rw-r--r--p/themes/Mapco/_divers.scss12
-rw-r--r--p/themes/Mapco/_fonts.scss56
-rw-r--r--p/themes/Mapco/_forms.scss153
-rw-r--r--p/themes/Mapco/_global-view.scss80
-rw-r--r--p/themes/Mapco/_layout.scss462
-rw-r--r--p/themes/Mapco/_list-view.scss92
-rw-r--r--p/themes/Mapco/_logs.scss34
-rw-r--r--p/themes/Mapco/_mixins.scss59
-rw-r--r--p/themes/Mapco/_mobile.scss169
-rw-r--r--p/themes/Mapco/_reader-view.scss13
-rw-r--r--p/themes/Mapco/_sidebar.scss291
-rw-r--r--p/themes/Mapco/_stats.scss27
-rw-r--r--p/themes/Mapco/_tables.scss17
-rw-r--r--p/themes/Mapco/_variables.scss53
-rw-r--r--p/themes/Mapco/icons/cog-white.svg5
-rw-r--r--p/themes/Mapco/icons/cog.svg59
-rw-r--r--p/themes/Mapco/icons/down-white.svg59
-rw-r--r--p/themes/Mapco/icons/down.svg59
-rw-r--r--p/themes/Mapco/icons/icon.svg9
-rw-r--r--p/themes/Mapco/icons/link-white.svg59
-rw-r--r--p/themes/Mapco/icons/link.svg5
-rw-r--r--p/themes/Mapco/icons/magnifier.svg5
-rw-r--r--p/themes/Mapco/icons/more.svg59
-rw-r--r--p/themes/Mapco/icons/non-starred-white.svg61
-rw-r--r--p/themes/Mapco/icons/non-starred.svg60
-rw-r--r--p/themes/Mapco/icons/read-grey.svg5
-rw-r--r--p/themes/Mapco/icons/read-white.svg59
-rw-r--r--p/themes/Mapco/icons/read.svg59
-rw-r--r--p/themes/Mapco/icons/refresh.svg59
-rw-r--r--p/themes/Mapco/icons/rss-white.svg60
-rw-r--r--p/themes/Mapco/icons/rss.svg60
-rw-r--r--p/themes/Mapco/icons/starred-white.svg59
-rw-r--r--p/themes/Mapco/icons/starred.svg5
-rw-r--r--p/themes/Mapco/icons/tick-color.svg5
-rw-r--r--p/themes/Mapco/icons/tick-white.svg5
-rw-r--r--p/themes/Mapco/icons/tick.svg5
-rw-r--r--p/themes/Mapco/icons/unread-grey.svg59
-rw-r--r--p/themes/Mapco/icons/unread-white.svg5
-rw-r--r--p/themes/Mapco/icons/unread.svg59
-rw-r--r--p/themes/Mapco/icons/up-white.svg59
-rw-r--r--p/themes/Mapco/icons/up.svg59
-rw-r--r--p/themes/Mapco/icons/view-global-white.svg5
-rw-r--r--p/themes/Mapco/icons/view-global.svg59
-rw-r--r--p/themes/Mapco/icons/view-list-white.svg5
-rw-r--r--p/themes/Mapco/icons/view-list.svg60
-rw-r--r--p/themes/Mapco/icons/view-reader-white.svg59
-rw-r--r--p/themes/Mapco/icons/view-reader.svg59
-rw-r--r--p/themes/Mapco/loader.gifbin0 -> 4251 bytes
-rw-r--r--p/themes/Mapco/mapco.css1306
-rw-r--r--p/themes/Mapco/mapco.css.map7
-rw-r--r--p/themes/Mapco/mapco.scss51
-rw-r--r--p/themes/Mapco/metadata.json7
-rw-r--r--p/themes/Mapco/sass.sh1
-rw-r--r--p/themes/Mapco/thumbs/original.pngbin0 -> 171346 bytes
-rw-r--r--p/themes/base-theme/template.css43
-rw-r--r--p/themes/fonts/LatoLatin-Bold.woffbin0 -> 72376 bytes
-rw-r--r--p/themes/fonts/LatoLatin-BoldItalic.woffbin0 -> 73700 bytes
-rw-r--r--p/themes/fonts/LatoLatin-Italic.woffbin0 -> 74708 bytes
-rw-r--r--p/themes/fonts/LatoLatin-Regular.woffbin0 -> 72456 bytes
-rw-r--r--p/themes/fonts/Spectral-Bold.woffbin0 -> 80168 bytes
-rw-r--r--p/themes/fonts/Spectral-BoldItalic.woffbin0 -> 81240 bytes
-rw-r--r--p/themes/fonts/Spectral-Italic.woffbin0 -> 77436 bytes
-rw-r--r--p/themes/fonts/Spectral-Regular.woffbin0 -> 76188 bytes
130 files changed, 10825 insertions, 1478 deletions
diff --git a/p/api/.htaccess b/p/api/.htaccess
index 937983ec9..2bd6b1d14 100644
--- a/p/api/.htaccess
+++ b/p/api/.htaccess
@@ -1,5 +1,5 @@
<IfModule mod_setenvif.c>
- SetEnvIf "^Authorization$" "(.*)" HTTP_AUTHORIZATION=$1
+ SetEnvIfNoCase "^Authorization$" "(.*)" HTTP_AUTHORIZATION=$1
</IfModule>
<IfModule !mod_setenvif.c>
<IfModule mod_rewrite.c>
diff --git a/p/api/fever.php b/p/api/fever.php
index dd54a372b..b81646928 100644
--- a/p/api/fever.php
+++ b/p/api/fever.php
@@ -324,9 +324,9 @@ class FeverAPI
$feeds[] = array(
'id' => $feed->id(),
'favicon_id' => $feed->id(),
- 'title' => $feed->name(),
- 'url' => $feed->url(),
- 'site_url' => $feed->website(),
+ 'title' => escapeToUnicodeAlternative($feed->name(), true),
+ 'url' => htmlspecialchars_decode($feed->url(), ENT_QUOTES),
+ 'site_url' => htmlspecialchars_decode($feed->website(), ENT_QUOTES),
'is_spark' => 0, // unsupported
'last_updated_on_time' => $feed->lastUpdate(),
);
@@ -349,7 +349,7 @@ class FeverAPI
foreach ($categories as $category) {
$groups[] = array(
'id' => $category->id(),
- 'title' => $category->name(),
+ 'title' => escapeToUnicodeAlternative($category->name(), true),
);
}
@@ -535,10 +535,10 @@ class FeverAPI
$items[] = array(
'id' => $entry->id(),
'feed_id' => $entry->feed(false),
- 'title' => $entry->title(),
- 'author' => $entry->authors(true),
+ 'title' => escapeToUnicodeAlternative($entry->title(), false),
+ 'author' => escapeToUnicodeAlternative(trim($entry->authors(true), '; '), false),
'html' => $entry->content(),
- 'url' => $entry->link(),
+ 'url' => htmlspecialchars_decode($entry->link(), ENT_QUOTES),
'is_saved' => $entry->isFavorite() ? 1 : 0,
'is_read' => $entry->isRead() ? 1 : 0,
'created_on_time' => $entry->date(true),
diff --git a/p/scripts/category.js b/p/scripts/category.js
index caa4fa22f..86d8542f1 100644
--- a/p/scripts/category.js
+++ b/p/scripts/category.js
@@ -1,6 +1,6 @@
"use strict";
-/* globals i18n */
-/* jshint globalstrict: true */
+/* globals context */
+/* jshint esversion:6, strict:global */
var loading = false,
dnd_successful = false;
@@ -9,7 +9,7 @@ function dragend_process(t) {
t.setAttribute('draggable', 'false');
if (loading) {
- window.setTimeout(function() {
+ setTimeout(function() {
dragend_process(t);
}, 50);
return;
@@ -20,11 +20,11 @@ function dragend_process(t) {
t.style.opacity = '';
t.setAttribute('draggable', 'true');
} else {
- var parent = $(t.parentNode);
- $(t).remove();
+ const p = t.parentElement;
+ t.remove();
- if (parent.children().length <= 0) {
- parent.append('<li class="item disabled" dropzone="move">' + i18n.category_empty + '</li>');
+ if (p.childElementCount <= 0) {
+ p.insertAdjacentHTML('beforeend', '<li class="item disabled" dropzone="move">' + context.i18n.category_empty + '</li>');
}
}
}
@@ -33,89 +33,109 @@ var dragFeedId = '',
dragHtml = '';
function init_draggable() {
- if (!(window.$ && window.i18n)) {
+ if (!window.context) {
if (window.console) {
- console.log('FreshRSS waiting for JS…');
+ console.log('FreshRSS category waiting for JS…');
}
- window.setTimeout(init_draggable, 50);
+ setTimeout(init_draggable, 50);
return;
}
- var draggable = '[draggable="true"]',
- dropzone = '[dropzone="move"]';
-
- $('.drop-section').on('dragstart', draggable, function(e) {
- var drag = $(e.target).closest('[draggable]')[0];
- e.originalEvent.dataTransfer.effectAllowed = 'move';
- dragHtml = drag.outerHTML;
- dragFeedId = drag.getAttribute('data-feed-id');
- e.originalEvent.dataTransfer.setData('text', dragFeedId);
- drag.style.opacity = 0.3;
-
- dnd_successful = false;
- });
- $('.drop-section').on('dragend', draggable, function(e) {
- dragend_process(e.target);
- });
-
- $('.drop-section').on('dragenter', dropzone, function(e) {
- $(this).addClass('drag-hover');
-
- e.preventDefault();
- });
- $('.drop-section').on('dragleave', dropzone, function(e) {
- var pos_this = $(this).position(),
- scroll_top = $(document).scrollTop(),
- top = pos_this.top,
- left = pos_this.left,
- right = left + $(this).width(),
- bottom = top + $(this).height(),
- mouse_x = e.originalEvent.screenX,
- mouse_y = e.originalEvent.clientY + scroll_top;
-
- if (left <= mouse_x && mouse_x <= right &&
- top <= mouse_y && mouse_y <= bottom) {
- // HACK because dragleave is triggered when hovering children!
- return;
- }
- $(this).removeClass('drag-hover');
- });
- $('.drop-section').on('dragover', dropzone, function(e) {
- e.originalEvent.dataTransfer.dropEffect = "move";
-
- e.preventDefault();
- return false;
- });
- $('.drop-section').on('drop', dropzone, function(e) {
- loading = true;
-
- $.ajax({
- type: 'POST',
- url: './?c=feed&a=move',
- data: {
- f_id: dragFeedId,
- c_id: e.target.parentNode.getAttribute('data-cat-id'),
- _csrf: context.csrf,
+ const draggable = '[draggable="true"]',
+ dropzone = '[dropzone="move"]',
+ dropSection = document.querySelector('.drop-section');
+
+ dropSection.ondragstart = function(ev) {
+ const li = ev.target.closest ? ev.target.closest(draggable) : null;
+ if (li) {
+ const drag = ev.target.closest('[draggable]');
+ ev.dataTransfer.effectAllowed = 'move';
+ dragHtml = drag.outerHTML;
+ dragFeedId = drag.getAttribute('data-feed-id');
+ ev.dataTransfer.setData('text', dragFeedId);
+ drag.style.opacity = 0.3;
+ dnd_successful = false;
}
- }).done(function() {
- $(e.target).after(dragHtml);
- if ($(e.target).hasClass('disabled')) {
- $(e.target).remove();
+ };
+
+ dropSection.ondragend = function(ev) {
+ const li = ev.target.closest ? ev.target.closest(draggable) : null;
+ if (li) {
+ dragend_process(li);
}
- dnd_successful = true;
- }).always(function() {
- loading = false;
- dragFeedId = '';
- dragHtml = '';
- });
+ };
- $(this).removeClass('drag-hover');
+ dropSection.ondragenter = function(ev) {
+ const li = ev.target.closest ? ev.target.closest(dropzone) : null;
+ if (li) {
+ li.classList.add('drag-hover');
+ return false;
+ }
+ };
+
+ dropSection.onddragleave = function(ev) {
+ const li = ev.target.closest ? ev.target.closest(dropzone) : null;
+ if (li) {
+ const scroll_top = document.documentElement.scrollTop,
+ top = li.offsetTop,
+ left = li.offsetLeft,
+ right = left + li.clientWidth,
+ bottom = top + li.clientHeight,
+ mouse_x = ev.screenX,
+ mouse_y = ev.clientY + scroll_top;
+
+ if (left <= mouse_x && mouse_x <= right &&
+ top <= mouse_y && mouse_y <= bottom) {
+ // HACK because dragleave is triggered when hovering children!
+ return;
+ }
+ li.classList.remove('drag-hover');
+ }
+ };
- e.preventDefault();
- });
+ dropSection.ondragover = function(ev) {
+ const li = ev.target.closest ? ev.target.closest(dropzone) : null;
+ if (li) {
+ ev.dataTransfer.dropEffect = "move";
+ return false;
+ }
+ };
+
+ dropSection.ondrop = function(ev) {
+ const li = ev.target.closest ? ev.target.closest(dropzone) : null;
+ if (li) {
+ loading = true;
+
+ const req = new XMLHttpRequest();
+ req.open('POST', './?c=feed&a=move', true);
+ req.responseType = 'json';
+ req.onload = function (e) {
+ if (this.status == 200) {
+ li.insertAdjacentHTML('afterend', dragHtml);
+ if (li.classList.contains('disabled')) {
+ li.remove();
+ }
+ dnd_successful = true;
+ }
+ };
+ req.onloadend = function (e) {
+ loading = false;
+ dragFeedId = '';
+ dragHtml = '';
+ };
+ req.setRequestHeader('Content-Type', 'application/json');
+ req.send(JSON.stringify({
+ f_id: dragFeedId,
+ c_id: li.parentElement.getAttribute('data-cat-id'),
+ _csrf: context.csrf,
+ }));
+
+ li.classList.remove('drag-hover');
+ return false;
+ }
+ };
}
-
if (document.readyState && document.readyState !== 'loading') {
init_draggable();
} else if (document.addEventListener) {
diff --git a/p/scripts/extra.js b/p/scripts/extra.js
new file mode 100644
index 000000000..c0d0c89e1
--- /dev/null
+++ b/p/scripts/extra.js
@@ -0,0 +1,241 @@
+"use strict";
+/* globals context, openNotification, xmlHttpRequestJson */
+/* jshint esversion:6, strict:global */
+
+//<crypto form (Web login)>
+function poormanSalt() { //If crypto.getRandomValues is not available
+ const base = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ.0123456789/abcdefghijklmnopqrstuvwxyz';
+ let text = '$2a$04$';
+ for (let i = 22; i > 0; i--) {
+ text += base.charAt(Math.floor(Math.random() * 64));
+ }
+ return text;
+}
+
+function init_crypto_form() {
+ /* globals dcodeIO */
+ const crypto_form = document.getElementById('crypto-form');
+ if (!crypto_form) {
+ return;
+ }
+
+ if (!(window.dcodeIO)) {
+ if (window.console) {
+ console.log('FreshRSS waiting for bcrypt.js…');
+ }
+ setTimeout(init_crypto_form, 100);
+ return;
+ }
+
+ crypto_form.onsubmit = function (e) {
+ const submit_button = this.querySelector('button[type="submit"]');
+ submit_button.disabled = true;
+ let success = false;
+
+ const req = new XMLHttpRequest();
+ req.open('GET', './?c=javascript&a=nonce&user=' + document.getElementById('username').value, false);
+ req.onerror = function () {
+ openNotification('Communication error!', 'bad');
+ };
+ req.send();
+ if (req.status == 200) {
+ const json = xmlHttpRequestJson(req);
+ if (!json.salt1 || !json.nonce) {
+ openNotification('Invalid user!', 'bad');
+ } else {
+ try {
+ const strong = window.Uint32Array && window.crypto && (typeof window.crypto.getRandomValues === 'function'),
+ s = dcodeIO.bcrypt.hashSync(document.getElementById('passwordPlain').value, json.salt1),
+ c = dcodeIO.bcrypt.hashSync(json.nonce + s, strong ? dcodeIO.bcrypt.genSaltSync(4) : poormanSalt());
+ document.getElementById('challenge').value = c;
+ if (!s || !c) {
+ openNotification('Crypto error!', 'bad');
+ } else {
+ success = true;
+ }
+ } catch (ex) {
+ openNotification('Crypto exception! ' + ex, 'bad');
+ }
+ }
+ } else {
+ req.onerror();
+ }
+
+ submit_button.disabled = false;
+ return success;
+ };
+}
+//</crypto form (Web login)>
+
+function init_share_observers() {
+ let shares = document.querySelectorAll('.group-share').length;
+ const shareAdd = document.querySelector('.share.add');
+ if (shareAdd) {
+ shareAdd.onclick = function (ev) {
+ const s = this.parentElement.querySelector('select'),
+ opt = s.options[s.selectedIndex];
+ let row = this.closest('form').getAttribute('data-' + opt.getAttribute('data-form'));
+ row = row.replace(/##label##/g, opt.text);
+ row = row.replace(/##type##/g, opt.value);
+ row = row.replace(/##help##/g, opt.getAttribute('data-help'));
+ row = row.replace(/##key##/g, shares);
+ row = row.replace(/##method##/g, opt.getAttribute('data-method'));
+ row = row.replace(/##field##/g, opt.getAttribute('data-field'));
+ this.closest('.form-group').insertAdjacentHTML('beforebegin', row);
+ shares++;
+ return false;
+ };
+ }
+}
+
+
+function init_remove_observers() {
+ document.querySelectorAll('.post').forEach(function (div) {
+ div.onclick = function (ev) {
+ const a = ev.target.closest('a.remove');
+ if (a) {
+ const remove_what = a.getAttribute('data-remove');
+ if (remove_what !== undefined) {
+ const d = document.getElementById(remove_what);
+ if (d) {
+ d.remove();
+ }
+ }
+ return false;
+ }
+ };
+ });
+}
+
+function init_feed_observers() {
+ const s = document.getElementById('category');
+ if (s && s.matches('select')) {
+ s.onchange = function (ev) {
+ const detail = document.getElementById('new_category_name').parentElement;
+ if (this.value === 'nc') {
+ detail.setAttribute('aria-hidden', 'false');
+ detail.querySelector('input').focus();
+ } else {
+ detail.setAttribute('aria-hidden', 'true');
+ }
+ };
+ }
+}
+
+function init_password_observers() {
+ document.querySelectorAll('.toggle-password').forEach(function (a) {
+ a.onmousedown = function (ev) {
+ const passwordField = document.getElementById(this.getAttribute('data-toggle'));
+ passwordField.setAttribute('type', 'text');
+ this.classList.add('active');
+ return false;
+ };
+ a.onmouseup = function (ev) {
+ const passwordField = document.getElementById(this.getAttribute('data-toggle'));
+ passwordField.setAttribute('type', 'password');
+ this.classList.remove('active');
+ return false;
+ };
+ });
+}
+
+function init_select_observers() {
+ document.querySelectorAll('.select-change').forEach(function (s) {
+ s.onchange = function (ev) {
+ const opt = s.options[s.selectedIndex],
+ url = opt.getAttribute('data-url');
+ if (url) {
+ s.form.querySelectorAll('[type=submit]').forEach(function (b) {
+ b.disabled = true;
+ });
+ location.href = url;
+ }
+ };
+ });
+}
+
+function init_slider_observers() {
+ const slider = document.getElementById('slider'),
+ closer = document.getElementById('close-slider');
+ if (!slider) {
+ return;
+ }
+
+ document.querySelector('.post').onclick = function (ev) {
+ const a = ev.target.closest('.open-slider');
+ if (a) {
+ if (!context.ajax_loading) {
+ context.ajax_loading = true;
+
+ const req = new XMLHttpRequest();
+ req.open('GET', a.href + '&ajax=1', true);
+ req.responseType = 'document';
+ req.onload = function (e) {
+ slider.innerHTML = this.response.body.innerHTML;
+ slider.classList.add('active');
+ closer.classList.add('active');
+ context.ajax_loading = false;
+ };
+ req.send();
+ return false;
+ }
+ }
+ };
+
+ closer.onclick = function (ev) {
+ closer.classList.remove('active');
+ slider.classList.remove('active');
+ return false;
+ };
+}
+
+function init_configuration_alert() {
+ window.onsubmit = function (e) {
+ window.hasSubmit = true;
+ };
+ window.onbeforeunload = function (e) {
+ if (window.hasSubmit) {
+ return;
+ }
+ const ds = document.querySelectorAll('[data-leave-validation]');
+ for (let i = ds.length - 1; i >= 0; i--) {
+ const input = ds[i];
+ if (input.type === 'checkbox' || input.type === 'radio') {
+ if (input.checked != input.getAttribute('data-leave-validation')) {
+ return false;
+ }
+ } else if (input.value != input.getAttribute('data-leave-validation')) {
+ return false;
+ }
+ }
+ };
+}
+
+function init_extra() {
+ if (!window.context) {
+ if (window.console) {
+ console.log('FreshRSS extra waiting for JS…');
+ }
+ window.setTimeout(init_extra, 50); //Wait for all js to be loaded
+ return;
+ }
+ init_crypto_form();
+ init_share_observers();
+ init_remove_observers();
+ init_feed_observers();
+ init_password_observers();
+ init_select_observers();
+ init_slider_observers();
+ init_configuration_alert();
+}
+
+if (document.readyState && document.readyState !== 'loading') {
+ init_extra();
+} else {
+ document.addEventListener('DOMContentLoaded', function () {
+ if (window.console) {
+ console.log('FreshRSS extra waiting for DOMContentLoaded…');
+ }
+ init_extra();
+ }, false);
+}
diff --git a/p/scripts/global_view.js b/p/scripts/global_view.js
index c5aaa48b1..b1581614a 100644
--- a/p/scripts/global_view.js
+++ b/p/scripts/global_view.js
@@ -1,6 +1,6 @@
"use strict";
-/* globals init_load_more, init_posts, init_stream */
-/* jshint globalstrict: true */
+/* globals context, init_load_more, init_posts, init_stream */
+/* jshint esversion:6, strict:global */
var panel_loading = false;
@@ -11,68 +11,88 @@ function load_panel(link) {
panel_loading = true;
- $.get(link, function (data) {
- $("#panel").append($(".nav_menu, #stream .day, #stream .flux, #stream .pagination, #stream.prompt", data));
-
- $("#panel .nav_menu").children().not("#nav_menu_read_all").remove();
-
- init_load_more($("#panel"));
- init_posts();
-
- $("#overlay").fadeIn();
- $("#panel").slideToggle();
-
- // force le démarrage du scroll en haut.
- // Sans ça, si l'on scroll en lisant une catégorie par exemple,
- // en en ouvrant une autre ensuite, on se retrouve au même point de scroll
- $("#panel").scrollTop(0);
- $(window).scrollTop(0);
-
- $('#panel').on('click', '#nav_menu_read_all button, #bigMarkAsRead', function () {
- console.log($(this).attr("formaction"));
- $.ajax({
- type: "POST",
- url: $(this).attr("formaction"),
- data: {
- _csrf: context.csrf,
- },
- async: false
- });
- window.location.reload(false);
- return false;
- });
-
- panel_loading = false;
- });
+ const req = new XMLHttpRequest();
+ req.open('GET', link, true);
+ req.responseType = 'document';
+ req.onload = function (e) {
+ if (this.status != 200) {
+ return;
+ }
+ const html = this.response,
+ foreign = html.querySelectorAll('.nav_menu, #stream .day, #stream .flux, #stream .pagination, #stream.prompt'),
+ panel = document.getElementById('panel');
+ foreign.forEach(function (el) {
+ panel.appendChild(document.adoptNode(el));
+ });
+ panel.querySelectorAll('.nav_menu > :not([id="nav_menu_read_all"])').forEach(function (el) {
+ el.remove();
+ });
+
+ init_load_more(panel);
+ init_posts();
+
+ document.getElementById('overlay').classList.add('visible');
+ panel.classList.add('visible');
+
+ // force le démarrage du scroll en haut.
+ // Sans ça, si l'on scroll en lisant une catégorie par exemple,
+ // en en ouvrant une autre ensuite, on se retrouve au même point de scroll
+ panel.scrollTop = 0;
+ document.documentElement.scrollTop = 0;
+
+ //We already have a click listener in main.js
+ panel.addEventListener('click', function (ev) {
+ const b = ev.target.closest('#nav_menu_read_all button, #bigMarkAsRead');
+ if (b) {
+ console.log(b.formAction);
+
+ const req2 = new XMLHttpRequest();
+ req2.open('POST', b.formAction, false);
+ req2.setRequestHeader('Content-Type', 'application/json');
+ req2.send(JSON.stringify({
+ _csrf: context.csrf,
+ }));
+ if (req2.status == 200) {
+ location.reload(false);
+ return false;
+ }
+ }
+ });
+
+ panel_loading = false;
+ };
+ req.send();
}
function init_close_panel() {
- $("#overlay .close").click(function () {
- $("#panel").html('');
- $("#panel").slideToggle();
- $("#overlay").fadeOut();
-
- return false;
- });
+ const panel = document.getElementById('panel');
+ document.querySelector('#overlay .close').onclick = function (ev) {
+ panel.innerHTML = '';
+ panel.classList.remove('visible');
+ document.getElementById('overlay').classList.remove('visible');
+ return false;
+ };
}
function init_global_view() {
- // TODO: should be based on generic classes.
- $(".box a").click(function () {
- var link = $(this).attr("href");
-
- load_panel(link);
-
- return false;
- });
+ // TODO: should be based on generic classes
+ document.querySelectorAll('.box a').forEach(function (a) {
+ a.onclick = function (ev) {
+ load_panel(a.href);
+ return false;
+ };
+ });
- $(".nav_menu #nav_menu_read_all, .nav_menu .toggle_aside").remove();
+ document.querySelectorAll('.nav_menu #nav_menu_read_all, .nav_menu .toggle_aside').forEach(function (el) {
+ el.remove();
+ });
- init_stream($("#panel"));
+ const panel = document.getElementById('panel');
+ init_stream(panel);
}
function init_all_global_view() {
- if (!(window.$ && window.init_stream)) {
+ if (!window.context) {
if (window.console) {
console.log('FreshRSS Global view waiting for JS…');
}
@@ -85,7 +105,7 @@ function init_all_global_view() {
if (document.readyState && document.readyState !== 'loading') {
init_all_global_view();
-} else if (document.addEventListener) {
+} else {
document.addEventListener('DOMContentLoaded', function () {
init_all_global_view();
}, false);
diff --git a/p/scripts/main.js b/p/scripts/main.js
index 6cab2e55a..f59976b39 100644
--- a/p/scripts/main.js
+++ b/p/scripts/main.js
@@ -1,30 +1,61 @@
"use strict";
-/* globals $, jQuery, context, i18n, shortcut, shortcuts, url */
-/* jshint strict:global */
-
-var $stream = null,
- isCollapsed = true,
- shares = 0,
- ajax_loading = false;
-
-function redirect(url, new_tab) {
- if (url) {
- if (new_tab) {
- window.open(url);
- } else {
- location.href = url;
- }
+/* jshint esversion:6, strict:global */
+
+//<Polyfills>
+if (!NodeList.prototype.forEach) NodeList.prototype.forEach = Array.prototype.forEach;
+if (!Element.prototype.matches) Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.webkitMatchesSelector;
+if (!Element.prototype.closest) Element.prototype.closest = function (s) {
+ let el = this;
+ do {
+ if (el.matches(s)) return el;
+ el = el.parentElement;
+ } while (el);
+ return null;
+ };
+if (!Element.prototype.remove) Element.prototype.remove = function () { if (this.parentNode) this.parentNode.removeChild(this); };
+//</Polyfills>
+
+//<Utils>
+function xmlHttpRequestJson(req) {
+ let json = req.response;
+ if (req.responseType !== 'json') { //IE11
+ try { json = JSON.parse(req.responseText); }
+ catch (ex) { json = null; }
}
+ return json;
}
+//</Utils>
+
+//<Global context>
+var context;
-function needsScroll($elem) {
- var $win = $(window),
- winTop = $win.scrollTop(),
- winHeight = $win.height(),
- winBottom = winTop + winHeight,
- elemTop = $elem.offset().top,
- elemBottom = elemTop + $elem.outerHeight();
- return (elemTop < winTop || elemBottom > winBottom) ? elemTop - (winHeight / 2) : 0;
+(function parseJsonVars() {
+ const jsonVars = document.getElementById('jsonVars'),
+ json = JSON.parse(jsonVars.innerHTML);
+ jsonVars.outerHTML = '';
+ context = json.context;
+ context.ajax_loading = false;
+ context.i18n = json.i18n;
+ context.shortcuts = json.shortcuts;
+ context.urls = json.urls;
+ context.icons = json.icons;
+ context.icons.read = decodeURIComponent(context.icons.read);
+ context.icons.unread = decodeURIComponent(context.icons.unread);
+}());
+//</Global context>
+
+function badAjax() {
+ openNotification(context.i18n.notif_request_failed, 'bad');
+ location.reload();
+ return true;
+}
+
+function needsScroll(elem) {
+ const winBottom = document.documentElement.scrollTop + document.documentElement.clientHeight,
+ elemTop = elem.offsetParent.offsetTop + elem.offsetTop,
+ elemBottom = elemTop + elem.offsetHeight;
+ return (elemTop < document.documentElement.scrollTop || elemBottom > winBottom) ?
+ elemTop - (document.documentElement.clientHeight / 2) : 0;
}
function str2int(str) {
@@ -40,10 +71,10 @@ function numberFormat(nStr) {
}
// http://www.mredkj.com/javascript/numberFormat.html
nStr += '';
- var x = nStr.split('.'),
- x1 = x[0],
+ const x = nStr.split('.'),
x2 = x.length > 1 ? '.' + x[1] : '',
rgx = /(\d+)(\d{3})/;
+ let x1 = x[0];
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ' ' + '$2');
}
@@ -51,29 +82,29 @@ function numberFormat(nStr) {
}
function incLabel(p, inc, spaceAfter) {
- var i = str2int(p) + inc;
+ const i = str2int(p) + inc;
return i > 0 ? ((spaceAfter ? '' : ' ') + '(' + numberFormat(i) + ')' + (spaceAfter ? ' ' : '')) : '';
}
function incUnreadsFeed(article, feed_id, nb) {
//Update unread: feed
- var elem = $('#' + feed_id).get(0),
+ let elem = document.getElementById(feed_id),
feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0,
feed_priority = elem ? str2int(elem.getAttribute('data-priority')) : 0;
if (elem) {
elem.setAttribute('data-unread', feed_unreads + nb);
- elem = $(elem).children('.item-title').get(0);
+ elem = elem.querySelector('.item-title');
if (elem) {
elem.setAttribute('data-unread', numberFormat(feed_unreads + nb));
}
}
//Update unread: category
- elem = $('#' + feed_id).parents('.category').get(0);
+ elem = document.getElementById(feed_id).closest('.category');
feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0;
if (elem) {
elem.setAttribute('data-unread', feed_unreads + nb);
- elem = $(elem).find('.title').get(0);
+ elem = elem.querySelector('.title');
if (elem) {
elem.setAttribute('data-unread', numberFormat(feed_unreads + nb));
}
@@ -81,7 +112,7 @@ function incUnreadsFeed(article, feed_id, nb) {
//Update unread: all
if (feed_priority > 0) {
- elem = $('#aside_feed .all .title').get(0);
+ elem = document.querySelector('#aside_feed .all .title');
if (elem) {
feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0;
elem.setAttribute('data-unread', numberFormat(feed_unreads + nb));
@@ -89,22 +120,22 @@ function incUnreadsFeed(article, feed_id, nb) {
}
//Update unread: favourites
- if (article && article.closest('div').hasClass('favorite')) {
- elem = $('#aside_feed .favorites .title').get(0);
+ if (article && article.closest('div').classList.contains('favorite')) {
+ elem = document.querySelector('#aside_feed .favorites .title');
if (elem) {
feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0;
elem.setAttribute('data-unread', numberFormat(feed_unreads + nb));
}
}
- var isCurrentView = false;
+ let isCurrentView = false;
// Update unread: title
document.title = document.title.replace(/^((?:\([ 0-9]+\) )?)/, function (m, p1) {
- var $feed = $('#' + feed_id);
- if (article || ($feed.closest('.active').length > 0 && $feed.siblings('.active').length === 0)) {
+ const feed = document.getElementById(feed_id);
+ if (article || feed.closest('.active')) {
isCurrentView = true;
return incLabel(p1, nb, true);
- } else if ($('.all.active').length > 0) {
+ } else if (document.querySelector('.all.active')) {
isCurrentView = feed_priority > 0;
return incLabel(p1, feed_priority > 0 ? nb : 0, true);
} else {
@@ -115,126 +146,191 @@ function incUnreadsFeed(article, feed_id, nb) {
}
function incUnreadsTag(tag_id, nb) {
- var $t = $('#t_' + tag_id);
- var unreads = str2int($t.attr('data-unread'));
- $t.attr('data-unread', unreads + nb)
- .children('.item-title').attr('data-unread', numberFormat(unreads + nb));
-
- $t = $('.category.tags').find('.title');
- unreads = str2int($t.attr('data-unread'));
- $t.attr('data-unread', numberFormat(unreads + nb));
-}
-
-var pending_entries = {};
-function mark_read(active, only_not_read) {
- if ((active.length === 0) || (!active.attr('id')) ||
- context.anonymous ||
- (only_not_read && !active.hasClass("not_read"))) {
- return false;
+ let t = document.getElementById(tag_id);
+ if (t) {
+ let unreads = str2int(t.getAttribute('data-unread'));
+ t.setAttribute('data-unread', unreads + nb);
+ t.querySelector('.item-title').setAttribute('data-unread', numberFormat(unreads + nb));
}
-
- if (pending_entries[active.attr('id')]) {
- return false;
+ t = document.querySelector('.category.tags .title');
+ if (t) {
+ let unreads = str2int(t.getAttribute('data-unread'));
+ t.setAttribute('data-unread', numberFormat(unreads + nb));
}
- pending_entries[active.attr('id')] = true;
+}
- var url = '.?c=entry&a=read&id=' + active.attr('id').replace(/^flux_/, '') +
- (active.hasClass('not_read') ? '' : '&is_read=0');
+var pending_entries = {},
+ mark_read_queue = [];
- $.ajax({
- type: 'POST',
- url: url,
- data: {
+function send_mark_read_queue(queue, asRead, callback) {
+ const req = new XMLHttpRequest();
+ req.open('POST', '.?c=entry&a=read' + (asRead ? '' : '&is_read=0'), true);
+ req.responseType = 'json';
+ req.onerror = function (e) {
+ openNotification(context.i18n.notif_request_failed, 'bad');
+ for (let i = queue.length - 1; i >= 0; i--) {
+ delete pending_entries['flux_' + queue[i]];
+ }
+ if (this.status == 403) {
+ badAjax();
+ }
+ };
+ req.onload = function (e) {
+ if (this.status != 200) {
+ return req.onerror(e);
+ }
+ const json = xmlHttpRequestJson(this);
+ for (let i = queue.length - 1; i >= 0; i--) {
+ const div = document.getElementById('flux_' + queue[i]),
+ myIcons = context.icons;
+ let inc = 0;
+ if (div.classList.contains('not_read')) {
+ div.classList.remove('not_read');
+ div.querySelectorAll('a.read').forEach(function (a) {
+ a.href = a.href.replace('&is_read=0', '') + '&is_read=1';
+ });
+ div.querySelectorAll('a.read > .icon').forEach(function (img) { img.outerHTML = myIcons.read; });
+ inc--;
+ } else {
+ div.classList.add('not_read');
+ div.classList.add('keep_unread'); //Split for IE11
+ div.querySelectorAll('a.read').forEach(function (a) {
+ a.href = a.href.replace('&is_read=1', '');
+ });
+ div.querySelectorAll('a.read > .icon').forEach(function (img) { img.outerHTML = myIcons.unread; });
+ inc++;
+ }
+ let feed_link = div.querySelector('.website > a, a.website');
+ if (feed_link) {
+ const feed_url = feed_link.href,
+ feed_id = feed_url.substr(feed_url.lastIndexOf('f_'));
+ incUnreadsFeed(div, feed_id, inc);
+ }
+ delete pending_entries['flux_' + queue[i]];
+ }
+ faviconNbUnread();
+ if (json.tags) {
+ const tagIds = Object.keys(json.tags);
+ for (let i = tagIds.length - 1; i >= 0; i--) {
+ let tagId = tagIds[i];
+ incUnreadsTag(tagId, (asRead ? -1 : 1) * json.tags[tagId].length);
+ }
+ }
+ onScroll();
+ if (callback) {
+ callback();
+ }
+ };
+ req.setRequestHeader('Content-Type', 'application/json');
+ req.send(JSON.stringify({
ajax: true,
_csrf: context.csrf,
- },
- }).done(function (data) {
- var $r = active.find("a.read").attr("href", data.url),
- inc = 0;
- if (active.hasClass("not_read")) {
- active.removeClass("not_read");
- inc--;
- } else {
- active.addClass("not_read");
- active.addClass("keep_unread");
- inc++;
- }
- $r.find('.icon').replaceWith(data.icon);
+ id: queue,
+ }));
+}
- var feed_url = active.find(".website>a").attr("href");
- if (feed_url) {
- var feed_id = feed_url.substr(feed_url.lastIndexOf('f_'));
- incUnreadsFeed(active, feed_id, inc);
- }
- faviconNbUnread();
+var send_mark_read_queue_timeout = 0;
- if (data.tags) {
- for (var i = data.tags.length - 1; i >= 0; i--) {
- incUnreadsTag(data.tags[i], inc);
- }
- }
+function send_mark_queue_tick(callback) {
+ send_mark_read_queue_timeout = 0;
+ const queue = mark_read_queue.slice(0);
+ mark_read_queue = [];
+ send_mark_read_queue(queue, true, callback);
+}
- delete pending_entries[active.attr('id')];
- }).fail(function (data) {
- openNotification(i18n.notif_request_failed, 'bad');
- delete pending_entries[active.attr('id')];
- });
+function delayedClick(a) {
+ if (a) {
+ send_mark_queue_tick(function () { a.click(); });
+ }
}
-function mark_favorite(active) {
- if (active.length === 0) {
+function mark_read(div, only_not_read) {
+ if (!div || !div.id || context.anonymous ||
+ (only_not_read && !div.classList.contains('not_read'))) {
+ return false;
+ }
+ if (pending_entries[div.id]) {
return false;
}
+ pending_entries[div.id] = true;
+
+ const asRead = div.classList.contains('not_read'),
+ entryId = div.id.replace(/^flux_/, '');
+ if (asRead) {
+ mark_read_queue.push(entryId);
+ if (send_mark_read_queue_timeout == 0) {
+ send_mark_read_queue_timeout = setTimeout(function () { send_mark_queue_tick(null); }, 1000);
+ }
+ } else {
+ const queue = [ entryId ];
+ send_mark_read_queue(queue, asRead);
+ }
+}
- var url = active.find("a.bookmark").attr("href");
- if (url === undefined) {
+function mark_favorite(div) {
+ if (!div) {
return false;
}
- if (pending_entries[active.attr('id')]) {
+ let a = div.querySelector('a.bookmark'),
+ url = a ? a.href : '';
+ if (!url) {
return false;
}
- pending_entries[active.attr('id')] = true;
- $.ajax({
- type: 'POST',
- url: url,
- data: {
- ajax: true,
- _csrf: context.csrf,
- },
- }).done(function (data) {
- var $b = active.find("a.bookmark").attr("href", data.url),
- inc = 0;
- if (active.hasClass("favorite")) {
- active.removeClass("favorite");
- inc--;
- } else {
- active.addClass("favorite").find('.bookmark');
- inc++;
- }
- $b.find('.icon').replaceWith(data.icon);
+ if (pending_entries[div.id]) {
+ return false;
+ }
+ pending_entries[div.id] = true;
+
+ const req = new XMLHttpRequest();
+ req.open('POST', url, true);
+ req.responseType = 'json';
+ req.onerror = function (e) {
+ openNotification(context.i18n.notif_request_failed, 'bad');
+ delete pending_entries[div.id];
+ if (this.status == 403) {
+ badAjax();
+ }
+ };
+ req.onload = function (e) {
+ if (this.status != 200) {
+ return req.onerror(e);
+ }
+ const json = xmlHttpRequestJson(this);
+ let inc = 0;
+ if (div.classList.contains('favorite')) {
+ div.classList.remove('favorite');
+ inc--;
+ } else {
+ div.classList.add('favorite');
+ inc++;
+ }
+ div.querySelectorAll('a.bookmark').forEach(function (a) { a.href = json.url; });
+ div.querySelectorAll('a.bookmark > .icon').forEach(function (img) { img.outerHTML = json.icon; });
- var favourites = $('#aside_feed .favorites .title').contents().last().get(0);
- if (favourites && favourites.textContent) {
- favourites.textContent = favourites.textContent.replace(/((?: \([ 0-9]+\))?\s*)$/, function (m, p1) {
- return incLabel(p1, inc, false);
- });
- }
+ const favourites = document.querySelector('#aside_feed .favorites .title');
+ if (favourites) {
+ favourites.textContent = favourites.textContent.replace(/((?: \([ 0-9]+\))?\s*)$/, function (m, p1) {
+ return incLabel(p1, inc, false);
+ });
+ }
- if (active.closest('div').hasClass('not_read')) {
- var elem = $('#aside_feed .favorites .title').get(0),
- feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0;
- if (elem) {
- elem.setAttribute('data-unread', numberFormat(feed_unreads + inc));
+ if (div.classList.contains('not_read')) {
+ const elem = document.querySelector('#aside_feed .favorites .title'),
+ feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0;
+ if (elem) {
+ elem.setAttribute('data-unread', numberFormat(feed_unreads + inc));
+ }
}
- }
- delete pending_entries[active.attr('id')];
- }).fail(function (data) {
- openNotification(i18n.notif_request_failed, 'bad');
- delete pending_entries[active.attr('id')];
- });
+ delete pending_entries[div.id];
+ };
+ req.setRequestHeader('Content-Type', 'application/json');
+ req.send(JSON.stringify({
+ ajax: true,
+ _csrf: context.csrf,
+ }));
}
var freshrssOpenArticleEvent = document.createEvent('Event');
@@ -242,208 +338,198 @@ freshrssOpenArticleEvent.initEvent('freshrss:openArticle', true, true);
function toggleContent(new_active, old_active, skipping) {
// If skipping, move current without activating or marking as read
- if (new_active.length === 0) {
+ if (!new_active) {
return;
}
if (context.does_lazyload && !skipping) {
- new_active.find('img[data-original], iframe[data-original]').each(function () {
- this.setAttribute('src', this.getAttribute('data-original'));
- this.removeAttribute('data-original');
+ new_active.querySelectorAll('img[data-original], iframe[data-original]').forEach(function (el) {
+ el.src = el.getAttribute('data-original');
+ el.removeAttribute('data-original');
});
}
- if (old_active[0] !== new_active[0]) {
- if (isCollapsed && !skipping) { // BUG?: isCollapsed can only ever be true
- new_active.addClass("active");
+ if (old_active !== new_active) {
+ if (!skipping) {
+ new_active.classList.add('active');
}
- old_active.removeClass("active current");
- new_active.addClass("current");
- if (context.auto_remove_article && !old_active.hasClass('not_read') && !skipping) {
- auto_remove(old_active);
+ new_active.classList.add('current');
+ if (old_active) {
+ old_active.classList.remove('active');
+ old_active.classList.remove('current'); //Split for IE11
}
- } else { // collapse_entry calls toggleContent(flux_current, flux_current, false)
- new_active.toggleClass('active');
+ } else {
+ new_active.classList.toggle('active');
}
- var relative_move = context.current_view === 'global',
- box_to_move = $(relative_move ? "#panel" : "html,body");
+ const relative_move = context.current_view === 'global',
+ box_to_move = relative_move ? document.getElementById('panel') : document.documentElement;
if (context.sticky_post) {
- var prev_article = new_active.prevAll('.flux'),
- new_pos = new_active.offset().top,
- old_scroll = box_to_move.scrollTop();
+ let prev_article = new_active.previousElementSibling,
+ new_pos = new_active.offsetTop + document.documentElement.scrollTop,
+ old_scroll = box_to_move.scrollTop;
- if (prev_article.length > 0 && new_pos - prev_article.offset().top <= 150) {
- new_pos = prev_article.offset().top;
+ if (prev_article && new_active.offsetTop - prev_article.offsetTop <= 150) {
+ new_pos = prev_article.offsetTop;
if (relative_move) {
- new_pos -= box_to_move.offset().top;
+ new_pos -= box_to_move.offsetTop;
}
}
if (skipping) {
// when skipping, this feels more natural if it's not so near the top
- new_pos -= $(window).height() / 4;
+ new_pos -= document.body.clientHeight / 4;
}
- if (context.hide_posts) {
- if (relative_move) {
- new_pos += old_scroll;
- }
-
- new_active.children(".flux_content").first().each(function () {
- box_to_move.scrollTop(new_pos).scrollTop();
- });
- } else {
- if (relative_move) {
- new_pos += old_scroll;
- }
-
- box_to_move.scrollTop(new_pos).scrollTop();
+ if (relative_move) {
+ new_pos += old_scroll;
}
+ box_to_move.scrollTop = new_pos;
}
- if (new_active.hasClass('active') && !skipping) {
+ if (new_active.classList.contains('active') && !skipping) {
if (context.auto_mark_article) {
mark_read(new_active, true);
}
- new_active[0].dispatchEvent(freshrssOpenArticleEvent);
+ new_active.dispatchEvent(freshrssOpenArticleEvent);
}
+ onScroll();
}
-function auto_remove(element) {
- var p = element.prev();
- var n = element.next();
- if (p.hasClass('day') && n.hasClass('day')) {
- p.remove();
- }
- element.remove();
- $('#stream > .flux:not(.not_read):not(.active)').remove();
-}
-
-function prev_entry() {
- var old_active = $(".flux.current"),
- new_active = old_active.length === 0 ? $(".flux:last") : old_active.prevAll(".flux:first");
- toggleContent(new_active, old_active, false);
-}
-
-function next_entry() {
- var old_active = $(".flux.current"),
- new_active = old_active.length === 0 ? $(".flux:first") : old_active.nextAll(".flux:first");
- toggleContent(new_active, old_active, false);
-
- if (new_active.nextAll().length < 3) {
- load_more_posts();
+function prev_entry(skipping) {
+ const old_active = document.querySelector('.flux.current');
+ let new_active = old_active;
+ if (new_active) {
+ do new_active = new_active.previousElementSibling;
+ while (new_active && !new_active.classList.contains('flux'));
+ if (!new_active) {
+ prev_feed();
+ }
+ } else {
+ new_active = document.querySelector('.flux');
}
+ toggleContent(new_active, old_active, skipping);
}
-function skip_prev_entry() {
- var old_active = $(".flux.current"),
- new_active = old_active.length === 0 ? $(".flux:last") : old_active.prevAll(".flux:first");
- toggleContent(new_active, old_active, true);
-}
-
-function skip_next_entry() {
- var old_active = $(".flux.current"),
- new_active = old_active.length === 0 ? $(".flux:first") : old_active.nextAll(".flux:first");
- toggleContent(new_active, old_active, true);
-
- if (new_active.nextAll().length < 3) {
- load_more_posts();
+function next_entry(skipping) {
+ const old_active = document.querySelector('.flux.current');
+ let new_active = old_active;
+ if (new_active) {
+ do new_active = new_active.nextElementSibling;
+ while (new_active && !new_active.classList.contains('flux'));
+ if (!new_active) {
+ next_feed();
+ }
+ } else {
+ new_active = document.querySelector('.flux');
}
+ toggleContent(new_active, old_active, skipping);
}
function prev_feed() {
- var active_feed = $("#aside_feed .tree-folder-items .item.active");
- if (active_feed.length > 0) {
- active_feed.prevAll(':visible:first').find('a').each(function(){this.click();});
- } else {
+ let found = false;
+ const feeds = document.querySelectorAll('#aside_feed .feed');
+ for (let i = feeds.length - 1; i >= 0; i--) {
+ const feed = feeds[i];
+ if (found && getComputedStyle(feed).display !== 'none') {
+ delayedClick(feed.querySelector('a.item-title'));
+ break;
+ } else if (feed.classList.contains('active')) {
+ found = true;
+ }
+ }
+ if (!found) {
last_feed();
}
}
function next_feed() {
- var active_feed = $("#aside_feed .tree-folder-items .item.active");
- if (active_feed.length > 0) {
- active_feed.nextAll(':visible:first').find('a').each(function(){this.click();});
- } else {
+ let found = false;
+ const feeds = document.querySelectorAll('#aside_feed .feed');
+ for (let i = 0; i < feeds.length; i++) {
+ const feed = feeds[i];
+ if (found && getComputedStyle(feed).display !== 'none') {
+ delayedClick(feed.querySelector('a.item-title'));
+ break;
+ } else if (feed.classList.contains('active')) {
+ found = true;
+ }
+ }
+ if (!found) {
first_feed();
}
}
function first_feed() {
- var feed = $("#aside_feed .tree-folder-items.active .item:visible:first");
- if (feed.length > 0) {
- feed.find('a')[1].click();
- }
+ const a = document.querySelector('#aside_feed .category.active .feed:not([data-unread="0"]) a.item-title');
+ delayedClick(a);
}
function last_feed() {
- var feed = $("#aside_feed .tree-folder-items.active .item:visible:last");
- if (feed.length > 0) {
- feed.find('a')[1].click();
+ const links = document.querySelectorAll('#aside_feed .category.active .feed:not([data-unread="0"]) a.item-title');
+ if (links && links.length > 0) {
+ delayedClick(links[links.length - 1]);
}
}
function prev_category() {
- var active_cat = $("#aside_feed .tree-folder.active");
-
- if (active_cat.length > 0) {
- var prev_cat = active_cat.prevAll(':visible:first').find('.tree-folder-title .title');
- if (prev_cat.length > 0) {
- prev_cat[0].click();
+ const active_cat = document.querySelector('#aside_feed .category.active');
+ if (active_cat) {
+ let cat = active_cat;
+ do cat = cat.previousElementSibling;
+ while (cat && getComputedStyle(cat).display === 'none');
+ if (cat) {
+ delayedClick(cat.querySelector('a.title'));
}
} else {
last_category();
}
- return;
}
function next_category() {
- var active_cat = $("#aside_feed .tree-folder.active");
-
- if (active_cat.length > 0) {
- var next_cat = active_cat.nextAll(':visible:first').find('.tree-folder-title .title');
- if (next_cat.length > 0) {
- next_cat[0].click();
+ const active_cat = document.querySelector('#aside_feed .category.active');
+ if (active_cat) {
+ let cat = active_cat;
+ do cat = cat.nextElementSibling;
+ while (cat && getComputedStyle(cat).display === 'none');
+ if (cat) {
+ delayedClick(cat.querySelector('a.title'));
}
} else {
first_category();
}
- return;
}
function first_category() {
- var cat = $("#aside_feed .tree-folder:visible:first");
- if (cat.length > 0) {
- cat.find('.tree-folder-title .title')[0].click();
- }
+ const a = document.querySelector('#aside_feed .category:not([data-unread="0"]) a.title');
+ delayedClick(a);
}
function last_category() {
- var cat = $("#aside_feed .tree-folder:visible:last");
- if (cat.length > 0) {
- cat.find('.tree-folder-title .title')[0].click();
+ const links = document.querySelectorAll('#aside_feed .category:not([data-unread="0"]) a.title');
+ if (links && links.length > 0) {
+ delayedClick(links[links.length - 1]);
}
}
function collapse_entry() {
- var flux_current = $(".flux.current");
+ const flux_current = document.querySelector('.flux.current');
toggleContent(flux_current, flux_current, false);
}
function user_filter(key) {
- var filter = $('#dropdown-query');
- var filters = filter.siblings('.dropdown-menu').find('.item.query a');
- if (typeof key === "undefined") {
- if (!filter.length) {
+ const filter = document.getElementById('dropdown-query'),
+ filters = filter.parentElement.querySelectorAll('.dropdown-menu > .query > a');
+ if (typeof key === 'undefined') {
+ if (!filters.length) {
return;
}
// Display the filter div
- window.location.hash = filter.attr('id');
+ location.hash = filter.id;
// Force scrolling to the filter div
- var scroll = needsScroll($('.header'));
+ const scroll = needsScroll(document.querySelector('.header'));
if (scroll !== 0) {
- $('html,body').scrollTop(scroll);
+ document.documentElement.scrollTop = scroll;
}
// Force the key value if there is only one action, so we can trigger it automatically
if (filters.length === 1) {
@@ -460,18 +546,18 @@ function user_filter(key) {
}
function auto_share(key) {
- var share = $(".flux.current.active").find('.dropdown-target[id^="dropdown-share"]');
- var shares = share.siblings('.dropdown-menu').find('.item a');
- if (typeof key === "undefined") {
- if (!share.length) {
- return;
- }
+ const share = document.querySelector('.flux.current.active .dropdown-target[id^="dropdown-share"]');
+ if (!share) {
+ return;
+ }
+ const shares = share.parentElement.querySelectorAll('.dropdown-menu .item a');
+ if (typeof key === 'undefined') {
// Display the share div
- window.location.hash = share.attr('id');
+ location.hash = share.id;
// Force scrolling to the share div
- var scroll = needsScroll(share.closest('.bottom'));
- if (scroll !== 0) {
- $('html,body').scrollTop(scroll);
+ const scrollTop = needsScroll(share.closest('.bottom'));
+ if (scrollTop !== 0) {
+ document.documentElement.scrollTop = scrollTop;
}
// Force the key value if there is only one action, so we can trigger it automatically
if (shares.length === 1) {
@@ -484,52 +570,70 @@ function auto_share(key) {
key = parseInt(key);
if (key <= shares.length) {
shares[key - 1].click();
- share.siblings('.dropdown-menu').find('.dropdown-close a')[0].click();
+ share.parentElement.querySelector('.dropdown-menu .dropdown-close a').click();
}
}
-function scrollAsRead(box_to_follow) {
- var minTop = 40 + (context.current_view === 'global' ? box_to_follow.offset().top : box_to_follow.scrollTop());
- $('.not_read:not(.keep_unread):visible').each(function () {
- var $this = $(this);
- if ($this.offset().top + $this.height() < minTop) {
- mark_read($this, true);
- }
- });
+var box_to_follow;
+
+function onScroll() {
+ if (!box_to_follow) {
+ return;
+ }
+ if (context.auto_mark_scroll) {
+ const minTop = 40 + box_to_follow.scrollTop;
+ document.querySelectorAll('.not_read:not(.keep_unread)').forEach(function (div) {
+ if (div.offsetHeight > 0 &&
+ div.offsetParent.offsetTop + div.offsetTop + div.offsetHeight < minTop) {
+ mark_read(div, true);
+ }
+ });
+ }
+ if (context.auto_remove_article) {
+ let maxTop = box_to_follow.scrollTop,
+ scrollOffset = 0;
+ document.querySelectorAll('.flux:not(.active):not(.keep_unread)').forEach(function (div) {
+ if (!pending_entries[div.id] && div.offsetHeight > 0 &&
+ div.offsetParent.offsetTop + div.offsetTop + div.offsetHeight < maxTop) {
+ const p = div.previousElementSibling,
+ n = div.nextElementSibling;
+ if (p && p.classList.contains('day') && n && n.classList.contains('day')) {
+ p.remove();
+ }
+ maxTop -= div.offsetHeight;
+ scrollOffset -= div.offsetHeight;
+ div.remove();
+ }
+ });
+ if (scrollOffset != 0) {
+ box_to_follow.scrollTop += scrollOffset;
+ return; //onscroll will be called again
+ }
+ }
+ if (context.auto_load_more) {
+ const pagination = document.getElementById('mark-read-pagination');
+ if (pagination && box_to_follow.offsetHeight > 0 &&
+ box_to_follow.scrollTop + box_to_follow.offsetHeight + (window.innerHeight / 2) >= pagination.offsetTop) {
+ load_more_posts();
+ }
+ }
}
function init_posts() {
- var box_to_follow = context.current_view === 'global' ? $("#panel") : $(window);
-
- if (context.auto_mark_scroll) {
- var lastScroll = 0, //Throttle
+ if (context.auto_load_more || context.auto_mark_scroll || context.auto_remove_article) {
+ box_to_follow = context.current_view === 'global' ? document.getElementById('panel') : document.documentElement;
+ let lastScroll = 0, //Throttle
timerId = 0;
- box_to_follow.scroll(function () {
- window.clearTimeout(timerId);
+ (box_to_follow === document.documentElement ? window : box_to_follow).onscroll = function () {
+ clearTimeout(timerId);
if (lastScroll + 500 < Date.now()) {
lastScroll = Date.now();
- scrollAsRead(box_to_follow);
+ onScroll();
} else {
- timerId = window.setTimeout(function() {
- scrollAsRead(box_to_follow);
- }, 500);
+ timerId = setTimeout(onScroll, 500);
}
- });
- }
-
- if (context.auto_load_more) {
- box_to_follow.scroll(function () {
- var load_more = $("#load_more");
- if (!load_more.is(':visible')) {
- return;
- }
- var boxBot = box_to_follow.scrollTop() + box_to_follow.height(),
- load_more_top = load_more.offset().top;
- if (boxBot >= load_more_top) {
- load_more_posts();
- }
- });
- box_to_follow.scroll();
+ };
+ onScroll();
}
}
@@ -538,482 +642,481 @@ function init_column_categories() {
return;
}
- $('#aside_feed').on('click', '.tree-folder>.tree-folder-title>a.dropdown-toggle', function () {
- $(this).children().each(function() {
- if (this.alt === 'â–½') {
- this.src = this.src.replace('/icons/down.', '/icons/up.');
- this.alt = 'â–³';
+ document.getElementById('aside_feed').onclick = function (ev) {
+ let a = ev.target.closest('.tree-folder > .tree-folder-title > a.dropdown-toggle');
+ if (a) {
+ const img = a.querySelector('img');
+ if (img.alt === 'â–½') {
+ img.src = img.src.replace('/icons/down.', '/icons/up.');
+ img.alt = 'â–³';
} else {
- this.src = this.src.replace('/icons/up.', '/icons/down.');
- this.alt = 'â–½';
+ img.src = img.src.replace('/icons/up.', '/icons/down.');
+ img.alt = 'â–½';
}
- });
- $(this).parent().next(".tree-folder-items").slideToggle(300, function () {
- //Workaround for Gecko bug 1514498 in Firefox 64
- var sidebar = document.getElementById('sidebar');
- if (sidebar && sidebar.scrollHeight > sidebar.clientHeight && //if needs scrollbar
- sidebar.scrollWidth >= sidebar.offsetWidth) { //but no scrollbar
- sidebar.style['overflow-y'] = 'scroll'; //then force scrollbar
- setTimeout(function () { sidebar.style['overflow-y'] = ''; }, 0);
+
+ const ul = a.closest('li').querySelector('.tree-folder-items');
+ let nbVisibleItems = 0;
+ for (let i = ul.children.length - 1; i >= 0; i--) {
+ if (ul.children[i].offsetHeight) {
+ nbVisibleItems++;
+ }
}
- });
- return false;
- });
+ ul.classList.toggle('active');
+ //CSS transition does not work on max-height:auto
+ ul.style.maxHeight = ul.classList.contains('active') ? (nbVisibleItems * 4) + 'em' : 0;
+ return false;
+ }
- $('#aside_feed').on('click', '.tree-folder-items .feed .dropdown-toggle', function () {
- var itemId = $(this).closest('.item').attr('id'),
- templateId = itemId.substring(0, 2) === 't_' ? 'tag_config_template' : 'feed_config_template',
- id = itemId.substr(2),
- feed_web = $(this).data('fweb'),
- template = $('#' + templateId)
- .html().replace(/------/g, id).replace('http://example.net/', feed_web);
- if ($(this).next('.dropdown-menu').length === 0) {
- $(this).attr('href', '#dropdown-' + id).prev('.dropdown-target').attr('id', 'dropdown-' + id).parent()
- .append(template).find('button.confirm').removeAttr('disabled');
- } else {
- if ($(this).next('.dropdown-menu').css('display') === 'none') {
- id = $(this).closest('.item').attr('id').substr(2);
- $(this).attr('href', '#dropdown-' + id);
+ a = ev.target.closest('.tree-folder-items > .feed .dropdown-toggle');
+ if (a) {
+ const itemId = a.closest('.item').id,
+ templateId = itemId.substring(0, 2) === 't_' ? 'tag_config_template' : 'feed_config_template',
+ id = itemId.substr(2),
+ feed_web = a.getAttribute('data-fweb'),
+ div = a.parentElement,
+ dropdownMenu = div.querySelector('.dropdown-menu'),
+ template = document.getElementById(templateId)
+ .innerHTML.replace(/------/g, id).replace('http://example.net/', feed_web);
+ if (!dropdownMenu) {
+ a.href = '#dropdown-' + id;
+ div.querySelector('.dropdown-target').id = 'dropdown-' + id;
+ div.insertAdjacentHTML('beforeend', template);
+ div.querySelector('button.confirm').disabled = false;
+ } else if (getComputedStyle(dropdownMenu).display === 'none') {
+ const id2 = div.closest('.item').id.substr(2);
+ a.href = '#dropdown-' + id2;
} else {
- $(this).attr('href', "#close");
+ a.href = '#close';
}
+ return true;
}
- });
+
+ return true;
+ };
}
function init_shortcuts() {
- if (!(window.shortcut && window.shortcuts)) {
- if (window.console) {
- console.log('FreshRSS waiting for shortcut.js…');
- }
- window.setTimeout(init_shortcuts, 200);
- return;
- }
- // Manipulation shortcuts
- shortcut.add(shortcuts.mark_read, function () {
- // Toggle the read state
- var active = $(".flux.current");
- mark_read(active, false);
- }, {
- 'disable_in_input': true
- });
- shortcut.add("shift+" + shortcuts.mark_read, function () {
- // Mark everything as read
- $(".nav_menu .read_all").click();
- }, {
- 'disable_in_input': true
- });
- shortcut.add(shortcuts.mark_favorite, function () {
- // Toggle the favorite state
- var active = $(".flux.current");
- mark_favorite(active);
- }, {
- 'disable_in_input': true
- });
- shortcut.add(shortcuts.collapse_entry, function () {
- // Toggle the collapse state
- collapse_entry();
- }, {
- 'disable_in_input': true
- });
- shortcut.add(shortcuts.auto_share, function () {
- // Display the share options
- auto_share();
- }, {
- 'disable_in_input': true
- });
+ Object.keys(context.shortcuts).forEach(function (k) {
+ context.shortcuts[k] = (context.shortcuts[k] || '').toUpperCase();
+ });
- shortcut.add(shortcuts.user_filter, function () {
- // Display the user filters
- user_filter();
- }, {
- 'disable_in_input': true
- });
+ document.body.onkeydown = function (ev) {
+ if (ev.target.closest('input, textarea') ||
+ ev.ctrlKey || ev.metaKey || (ev.altKey && ev.shiftKey)) {
+ return true;
+ }
- function addShortcut(evt) {
- if ($('#dropdown-query').siblings('.dropdown-menu').is(':visible')) {
- user_filter(String.fromCharCode(evt.keyCode));
- } else {
- auto_share(String.fromCharCode(evt.keyCode));
- }
- }
- for (var i = 1; i < 10; i++) {
- shortcut.add(i.toString(), addShortcut, {
- 'disable_in_input': true
- });
- }
+ const s = context.shortcuts,
+ k = (ev.key.trim() || ev.code).toUpperCase();
+ if (location.hash.match(/^#dropdown-/)) {
+ const n = parseInt(k);
+ if (n) {
+ if (location.hash === '#dropdown-query') {
+ user_filter(n);
+ } else {
+ auto_share(n);
+ }
+ return false;
+ }
+ }
+ if (k === s.next_entry) {
+ if (ev.altKey) {
+ next_category();
+ } else if (ev.shiftKey) {
+ next_feed();
+ } else {
+ next_entry(false);
+ }
+ return false;
+ }
+ if (k === s.prev_entry) {
+ if (ev.altKey) {
+ prev_category();
+ } else if (ev.shiftKey) {
+ prev_feed();
+ } else {
+ prev_entry(false);
+ }
+ return false;
+ }
+ if (k === s.mark_read) {
+ if (ev.altKey) {
+ return true;
+ } else if (ev.shiftKey) { // Mark everything as read
+ document.querySelector('.nav_menu .read_all').click();
+ } else { // Toggle the read state
+ mark_read(document.querySelector('.flux.current'), false);
+ }
+ return false;
+ }
+ if (k === s.first_entry) {
+ if (ev.altKey) {
+ first_category();
+ } else if (ev.shiftKey) {
+ first_feed();
+ } else {
+ const old_active = document.querySelector('.flux.current'),
+ first = document.querySelector('.flux');
+ if (first.classList.contains('flux')) {
+ toggleContent(first, old_active, false);
+ }
+ }
+ return false;
+ }
+ if (k === s.last_entry) {
+ if (ev.altKey) {
+ last_category();
+ } else if (ev.shiftKey) {
+ last_feed();
+ } else {
+ const old_active = document.querySelector('.flux.current'),
+ last = document.querySelector('.flux:last-of-type');
+ if (last.classList.contains('flux')) {
+ toggleContent(last, old_active, false);
+ }
+ }
+ return false;
+ }
- // Entry navigation shortcuts
- shortcut.add(shortcuts.prev_entry, prev_entry, {
- 'disable_in_input': true
- });
- shortcut.add(shortcuts.skip_prev_entry, skip_prev_entry, {
- 'disable_in_input': true
- });
- shortcut.add(shortcuts.first_entry, function () {
- var old_active = $(".flux.current"),
- first = $(".flux:first");
+ if (ev.altKey || ev.shiftKey) {
+ return true;
+ }
+ if (k === s.mark_favorite) { // Toggle the favorite state
+ mark_favorite(document.querySelector('.flux.current'));
+ return false;
+ }
+ if (k === s.go_website) {
+ if (context.auto_mark_site) {
+ mark_read(document.querySelector('.flux.current'), true);
+ }
+ window.open(document.querySelector('.flux.current a.go_website').href);
+ return false;
+ }
+ if (k === s.skip_next_entry) { next_entry(true); return false; }
+ if (k === s.skip_prev_entry) { prev_entry(true); return false; }
+ if (k === s.collapse_entry) { collapse_entry(); return false; }
+ if (k === s.auto_share) { auto_share(); return false; }
+ if (k === s.user_filter) { user_filter(); return false; }
+ if (k === s.load_more) { load_more_posts(); return false; }
+ if (k === s.close_dropdown) { location.hash = null; return false; }
+ if (k === s.help) { window.open(context.urls.help); return false; }
+ if (k === s.focus_search) { document.getElementById('search').focus(); return false; }
+ if (k === s.normal_view) { delayedClick(document.querySelector('#nav_menu_views .view-normal')); return false; }
+ if (k === s.reading_view) { delayedClick(document.querySelector('#nav_menu_views .view-reader')); return false; }
+ if (k === s.global_view) { delayedClick(document.querySelector('#nav_menu_views .view-global')); return false; }
+ if (k === s.rss_view) { delayedClick(document.querySelector('#nav_menu_views .view-rss')); return false; }
+ return true;
+ };
+}
- if (first.hasClass("flux")) {
- toggleContent(first, old_active, false);
+function init_stream(stream) {
+ stream.onclick = function (ev) {
+ let el = ev.target.closest('.flux a.read');
+ if (el) {
+ mark_read(el.closest('.flux'), false);
+ return false;
}
- }, {
- 'disable_in_input': true
- });
- shortcut.add(shortcuts.next_entry, next_entry, {
- 'disable_in_input': true
- });
- shortcut.add(shortcuts.skip_next_entry, skip_next_entry, {
- 'disable_in_input': true
- });
- shortcut.add(shortcuts.last_entry, function () {
- var old_active = $(".flux.current"),
- last = $(".flux:last");
- if (last.hasClass("flux")) {
- toggleContent(last, old_active, false);
+ el = ev.target.closest('.flux a.bookmark');
+ if (el) {
+ mark_favorite(el.closest('.flux'));
+ return false;
}
- }, {
- 'disable_in_input': true
- });
- // Feed navigation shortcuts
- shortcut.add("shift+" + shortcuts.prev_entry, prev_feed, {
- 'disable_in_input': true
- });
- shortcut.add("shift+" + shortcuts.next_entry, next_feed, {
- 'disable_in_input': true
- });
- shortcut.add("shift+" + shortcuts.first_entry, first_feed, {
- 'disable_in_input': true
- });
- shortcut.add("shift+" + shortcuts.last_entry, last_feed, {
- 'disable_in_input': true
- });
- // Category navigation shortcuts
- shortcut.add("alt+" + shortcuts.prev_entry, prev_category, {
- 'disable_in_input': true
- });
- shortcut.add("alt+" + shortcuts.next_entry, next_category, {
- 'disable_in_input': true
- });
- shortcut.add("alt+" + shortcuts.first_entry, first_category, {
- 'disable_in_input': true
- });
- shortcut.add("alt+" + shortcuts.last_entry, last_category, {
- 'disable_in_input': true
- });
-
- shortcut.add(shortcuts.go_website, function () {
- var url_website = $('.flux.current a.go_website').attr("href");
- if (context.auto_mark_site) {
- $(".flux.current").each(function () {
- mark_read($(this), true);
- });
+ el = ev.target.closest('.dynamictags');
+ if (el) {
+ loadDynamicTags(el);
+ return true;
}
- redirect(url_website, true);
- }, {
- 'disable_in_input': true
- });
-
- shortcut.add(shortcuts.load_more, function () {
- load_more_posts();
- }, {
- 'disable_in_input': true
- });
-
- shortcut.add(shortcuts.focus_search, function () {
- focus_search();
- }, {
- 'disable_in_input': true
- });
-
- shortcut.add(shortcuts.help, function () {
- redirect(url.help, true);
- }, {
- 'disable_in_input': true
- });
-
- shortcut.add(shortcuts.close_dropdown, function () {
- window.location.hash = null;
- }, {
- 'disable_in_input': true
- });
-
- shortcut.add(shortcuts.normal_view, function () {
- $('#nav_menu_views .view-normal').get(0).click();
- }, {
- 'disable_in_input': true
- });
-
- shortcut.add(shortcuts.global_view, function () {
- $('#nav_menu_views .view-global').get(0).click();
- }, {
- 'disable_in_input': true
- });
-
- shortcut.add(shortcuts.reading_view, function () {
- $('#nav_menu_views .view-reader').get(0).click();
- }, {
- 'disable_in_input': true
- });
-
- shortcut.add(shortcuts.rss_view, function () {
- $('#nav_menu_views .view-rss').get(0).click();
- }, {
- 'disable_in_input': true
- });
-}
-
-function init_stream(divStream) {
- divStream.on('click', '.flux_header,.flux_content', function (e) { //flux_toggle
- if ($(e.target).closest('.content, .item.website, .item.link, .dropdown-menu').length > 0) {
- return;
+ el = ev.target.closest('.item.title > a');
+ if (el) { // Allow default control-click behaviour such as open in backround-tab
+ return ev.ctrlKey;
}
- if (!context.sides_close_article && $(e.target).is('div.flux_content')) {
- // setting for not-closing after clicking outside article area
- return;
- }
- var old_active = $(".flux.current"),
- new_active = $(this).parent();
- isCollapsed = true;
- if (e.target.tagName.toUpperCase() === 'A') { //Leave real links alone
- if (context.auto_mark_article) {
- mark_read(new_active, true);
+
+ el = ev.target.closest('.flux .content a');
+ if (el) {
+ if (!el.closest('div').classList.contains('author')) {
+ el.target = '_blank';
+ el.rel = 'noreferrer';
}
return true;
}
- toggleContent(new_active, old_active, false);
- });
- divStream.on('click', '.flux a.read', function () {
- var active = $(this).parents(".flux");
- if (context.auto_remove_article && active.hasClass('not_read')) {
- auto_remove(active);
+ el = ev.target.closest('.item.share > a[href="#"]');
+ if (el) { //Print
+ const content = '<html><head><style>' +
+ 'body { font-family: Serif; text-align: justify; }' +
+ 'a { color: #000; text-decoration: none; }' +
+ 'a:after { content: " [" attr(href) "]"}' +
+ '</style></head><body>' +
+ el.closest('.flux_content').querySelector('.content').innerHTML +
+ '</body></html>';
+ const tmp_window = window.open();
+ tmp_window.document.writeln(content);
+ tmp_window.document.close();
+ tmp_window.focus();
+ tmp_window.print();
+ tmp_window.close();
+ return false;
}
- mark_read(active, false);
- return false;
- });
-
- divStream.on('click', '.flux a.bookmark', function () {
- var active = $(this).parents(".flux");
- mark_favorite(active);
- return false;
- });
- divStream.on('click', '.item.title > a', function (e) {
- // Allow default control-click behaviour such as open in backround-tab.
- return e.ctrlKey;
- });
- divStream.on('mouseup', '.item.title > a', function (e) {
- // Mouseup enables us to catch middle click.
- if (e.ctrlKey) {
- // CTRL+click, it will be manage by previous rule.
- return;
+ el = ev.target.closest('.item.share > a[href="POST"]');
+ if (el) { //Share by POST
+ const f = el.parentElement.querySelector('form');
+ f.disabled = false;
+ f.submit();
+ return false;
}
- if (e.which == 2) {
- // If middle click, we want same behaviour as CTRL+click.
- var ev = jQuery.Event("click");
- ev.ctrlKey = true;
- $(this).trigger(ev);
- } else if(e.which == 1) {
- // Normal click, just toggle article.
- $(this).parent().click();
+ el = ev.target.closest('.flux_header, .flux_content');
+ if (el) { //flux_toggle
+ if (ev.target.closest('.content, .item.website, .item.link, .dropdown-menu')) {
+ return true;
+ }
+ if (!context.sides_close_article && ev.target.matches('div.flux_content')) {
+ // setting for not-closing after clicking outside article area
+ return false;
+ }
+ const old_active = document.querySelector('.flux.current'),
+ new_active = el.parentNode;
+ if (ev.target.tagName.toUpperCase() === 'A') { //Leave real links alone
+ if (context.auto_mark_article) {
+ mark_read(new_active, true);
+ }
+ return true;
+ }
+ toggleContent(new_active, old_active, false);
+ return false;
}
- });
+ };
- divStream.on('click', '.flux .content a', function () {
- if (!$(this).closest('div').hasClass('author')) {
- $(this).attr('target', '_blank').attr('rel', 'noreferrer');
+ stream.onmouseup = function (ev) { // Mouseup enables us to catch middle click
+ let el = ev.target.closest('.item.title > a');
+ if (el) {
+ if (ev.ctrlKey) {
+ return; // CTRL+click, it will be manage by previous rule.
+ }
+ if (ev.which == 2) {
+ // If middle click, we want same behaviour as CTRL+click.
+ const evc = document.createEvent('click');
+ evc.ctrlKey = true;
+ el.dispatchEvent(evc);
+ } else if (ev.which == 1) {
+ // Normal click, just toggle article.
+ el.parentElement.click();
+ }
}
- });
- if (context.auto_mark_site) {
- // catch mouseup instead of click so we can have the correct behaviour
- // with middle button click (scroll button).
- divStream.on('mouseup', '.flux .link > a', function (e) {
- if (e.which == 3) {
- return;
+ if (context.auto_mark_site) {
+ // catch mouseup instead of click so we can have the correct behaviour
+ // with middle button click (scroll button).
+ el = ev.target.closest('.flux .link > a');
+ if (el) {
+ if (ev.which == 3) {
+ return;
+ }
+ mark_read(el.closest('.flux'), true);
}
+ }
+ };
- mark_read($(this).parents(".flux"), true);
- });
- }
+ stream.onchange = function (ev) {
+ const checkboxTag = ev.target.closest('.checkboxTag');
+ if (checkboxTag) { //Dynamic tags
+ ev.stopPropagation();
+ const isChecked = checkboxTag.checked,
+ tagId = checkboxTag.name.replace(/^t_/, ''),
+ tagName = checkboxTag.nextElementSibling ? checkboxTag.nextElementSibling.value : '',
+ entry = checkboxTag.closest('div.flux'),
+ entryId = entry.id.replace(/^flux_/, '');
+ checkboxTag.disabled = true;
+
+ const req = new XMLHttpRequest();
+ req.open('POST', './?c=tag&a=tagEntry', true);
+ req.responseType = 'json';
+ req.onerror = function (e) {
+ checkboxTag.checked = !isChecked;
+ if (this.status == 403) {
+ badAjax();
+ }
+ };
+ req.onload = function (e) {
+ if (this.status != 200) {
+ return req.onerror(e);
+ }
+ if (entry.classList.contains('not_read')) {
+ incUnreadsTag('t_' + tagId, isChecked ? 1 : -1);
+ }
+ };
+ req.onloadend = function (e) {
+ checkboxTag.disabled = false;
+ if (tagId == 0) {
+ loadDynamicTags(checkboxTag.closest('div.dropdown'));
+ }
+ };
+ req.setRequestHeader('Content-Type', 'application/json');
+ req.send(JSON.stringify({
+ _csrf: context.csrf,
+ id_tag: tagId,
+ name_tag: tagId == 0 ? tagName : '',
+ id_entry: entryId,
+ checked: isChecked,
+ }));
+ }
+ };
}
-var $nav_entries = null;
-
function init_nav_entries() {
- $nav_entries = $('#nav_entries');
- $nav_entries.find('.previous_entry').click(function () {
- prev_entry();
- return false;
- });
- $nav_entries.find('.next_entry').click(function () {
- next_entry();
- return false;
- });
- $nav_entries.find('.up').click(function () {
- var active_item = $(".flux.current"),
- windowTop = $(window).scrollTop(),
- item_top = active_item.offset().top;
-
- if (windowTop > item_top) {
- $("html,body").scrollTop(item_top);
- } else {
- $("html,body").scrollTop(0);
- }
- return false;
- });
-}
+ const nav_entries = document.getElementById('nav_entries');
+ if (nav_entries) {
+ nav_entries.querySelector('.previous_entry').onclick = function (e) {
+ prev_entry(false);
+ return false;
+ };
+ nav_entries.querySelector('.next_entry').onclick = function (e) {
+ next_entry(false);
+ return false;
+ };
+ nav_entries.querySelector('.up').onclick = function (e) {
+ const active_item = document.querySelector('.flux.current'),
+ windowTop = document.documentElement.scrollTop,
+ item_top = active_item.offsetParent.offsetTop + active_item.offsetTop;
-function loadDynamicTags($div) {
- $div.removeClass('dynamictags');
- $div.find('li.item').remove();
- var entryId = $div.closest('div.flux').attr('id').replace(/^flux_/, '');
- $.getJSON('./?c=tag&a=getTagsForEntry&id_entry=' + entryId)
- .done(function (data) {
- var $ul = $div.find('.dropdown-menu');
- $ul.append('<li class="item"><label><input class="checkboxTag" name="t_0" type="checkbox" /> <input type="text" name="newTag" /></label></li>');
- if (data && data.length) {
- for (var i = 0; i < data.length; i++) {
- var tag = data[i];
- $ul.append('<li class="item"><label><input class="checkboxTag" name="t_' + tag.id + '" type="checkbox"' +
- (tag.checked ? ' checked="checked"' : '') + '> ' + tag.name + '</label></li>');
- }
- }
- })
- .fail(function () {
- $div.find('li.item').remove();
- $div.addClass('dynamictags');
- });
+ document.documentElement.scrollTop = windowTop > item_top ? item_top : 0;
+ return false;
+ };
+ }
}
-function init_dynamic_tags() {
- $stream.on('click', '.dynamictags', function () {
- loadDynamicTags($(this));
- });
+function loadDynamicTags(div) {
+ div.classList.remove('dynamictags');
+ div.querySelectorAll('li.item').forEach(function (li) { li.remove(); });
+ const entryId = div.closest('div.flux').id.replace(/^flux_/, '');
- $stream.on('change', '.checkboxTag', function (ev) {
- var $checkbox = $(this);
- $checkbox.prop('disabled', true);
- var isChecked = $checkbox.prop('checked');
- var tagId = $checkbox.attr('name').replace(/^t_/, '');
- var tagName = $checkbox.siblings('input[name]').val();
- var $entry = $checkbox.closest('div.flux');
- var entryId = $entry.attr('id').replace(/^flux_/, '');
- $.ajax({
- type: 'POST',
- url: './?c=tag&a=tagEntry',
- data: {
- _csrf: context.csrf,
- id_tag: tagId,
- name_tag: tagId == 0 ? tagName : '',
- id_entry: entryId,
- checked: isChecked,
- },
- })
- .done(function () {
- if ($entry.hasClass('not_read')) {
- incUnreadsTag(tagId, isChecked ? 1 : -1);
- }
- })
- .fail(function () {
- $checkbox.prop('checked', !isChecked);
- })
- .always(function () {
- $checkbox.prop('disabled', false);
- if (tagId == 0) {
- loadDynamicTags($checkbox.closest('div.dropdown'));
+ const req = new XMLHttpRequest();
+ req.open('GET', './?c=tag&a=getTagsForEntry&id_entry=' + entryId, true);
+ req.responseType = 'json';
+ req.onerror = function (e) {
+ div.querySelectorAll('li.item').forEach(function (li) { li.remove(); });
+ div.classList.add('dynamictags');
+ };
+ req.onload = function (e) {
+ if (this.status != 200) {
+ return req.onerror(e);
+ }
+ const json = xmlHttpRequestJson(this);
+ let html = '<li class="item"><label><input class="checkboxTag" name="t_0" type="checkbox" /> <input type="text" name="newTag" /></label></li>';
+ if (json && json.length) {
+ for (let i = 0; i < json.length; i++) {
+ const tag = json[i];
+ html += '<li class="item"><label><input class="checkboxTag" name="t_' + tag.id + '" type="checkbox"' +
+ (tag.checked ? ' checked="checked"' : '') + '> ' + tag.name + '</label></li>';
}
- });
- });
+ }
+ div.querySelector('.dropdown-menu').insertAdjacentHTML('beforeend', html);
+ };
+ req.send();
}
// <actualize>
var feed_processed = 0;
function updateFeed(feeds, feeds_count) {
- var feed = feeds.pop();
+ const feed = feeds.pop();
if (!feed) {
return;
}
- $.ajax({
- type: 'POST',
- url: feed.url,
- data: {
- _csrf: context.csrf,
- noCommit: 1,
- },
- }).always(function (data) {
- feed_processed++;
- $("#actualizeProgress .progress").html(feed_processed + " / " + feeds_count);
- $("#actualizeProgress .title").html(feed.title);
-
- if (feed_processed === feeds_count) {
- $.ajax({ //Empty request to commit new articles
- type: 'POST',
- url: './?c=feed&a=actualize&id=-1&ajax=1',
- data: {
+ const req = new XMLHttpRequest();
+ req.open('POST', feed.url, true);
+ req.onloadend = function (e) {
+ if (this.status != 200) {
+ return badAjax();
+ }
+ feed_processed++;
+ const div = document.getElementById('actualizeProgress');
+ div.querySelector('.progress').innerHTML = feed_processed + ' / ' + feeds_count;
+ div.querySelector('.title').innerHTML = feed.title;
+ if (feed_processed === feeds_count) {
+ //Empty request to commit new articles
+ const req2 = new XMLHttpRequest();
+ req2.open('POST', './?c=feed&a=actualize&id=-1&ajax=1', true);
+ req2.onloadend = function (e) {
+ location.reload();
+ };
+ req2.setRequestHeader('Content-Type', 'application/json');
+ req2.send(JSON.stringify({
_csrf: context.csrf,
noCommit: 0,
- },
- }).always(function (data) {
- window.location.reload();
- });
- } else {
- updateFeed(feeds, feeds_count);
- }
- });
+ }));
+ } else {
+ updateFeed(feeds, feeds_count);
+ }
+ };
+ req.setRequestHeader('Content-Type', 'application/json');
+ req.send(JSON.stringify({
+ _csrf: context.csrf,
+ noCommit: 1,
+ }));
}
function init_actualize() {
- var auto = false;
+ let auto = false;
- $("#actualize").click(function () {
- if (ajax_loading) {
+ document.getElementById('actualize').onclick = function () {
+ if (context.ajax_loading) {
return false;
}
- ajax_loading = true;
-
- $.getJSON('./?c=javascript&a=actualize').done(function (data) {
- if (auto && data.feeds.length < 1) {
- auto = false;
- ajax_loading = false;
- return false;
- }
- if (data.feeds.length === 0) {
- openNotification(data.feedback_no_refresh, "good");
- $.ajax({ //Empty request to force refresh server database cache
- type: 'POST',
- url: './?c=feed&a=actualize&id=-1&ajax=1',
- data: {
- _csrf: context.csrf,
- noCommit: 0,
- },
- }).always(function (data) {
- ajax_loading = false;
- });
- return;
- }
- //Progress bar
- var feeds_count = data.feeds.length;
- $('body').after('<div id="actualizeProgress" class="notification good">' + data.feedback_actualize +
- '<br /><span class="title">/</span><br /><span class="progress">0 / ' + feeds_count +
- '</span></div>');
- for (var i = 10; i > 0; i--) {
- updateFeed(data.feeds, feeds_count);
- }
- });
+ context.ajax_loading = true;
+
+ const req = new XMLHttpRequest();
+ req.open('POST', './?c=javascript&a=actualize', true);
+ req.responseType = 'json';
+ req.onload = function (e) {
+ if (this.status != 200) {
+ return badAjax();
+ }
+ const json = xmlHttpRequestJson(this);
+ if (auto && json.feeds.length < 1) {
+ auto = false;
+ context.ajax_loading = false;
+ return false;
+ }
+ if (json.feeds.length === 0) {
+ openNotification(json.feedback_no_refresh, 'good');
+ //Empty request to commit new articles
+ const req2 = new XMLHttpRequest();
+ req2.open('POST', './?c=feed&a=actualize&id=-1&ajax=1', true);
+ req2.onloadend = function (e) {
+ context.ajax_loading = false;
+ };
+ req2.setRequestHeader('Content-Type', 'application/json');
+ req2.send(JSON.stringify({
+ _csrf: context.csrf,
+ noCommit: 0,
+ }));
+ return;
+ }
+ //Progress bar
+ const feeds_count = json.feeds.length;
+ document.body.insertAdjacentHTML('beforeend', '<div id="actualizeProgress" class="notification good">' +
+ json.feedback_actualize + '<br /><span class="title">/</span><br /><span class="progress">0 / ' +
+ feeds_count + '</span></div>');
+ for (let i = 10; i > 0; i--) {
+ updateFeed(json.feeds, feeds_count);
+ }
+ };
+ req.setRequestHeader('Content-Type', 'application/json');
+ req.send(JSON.stringify({
+ _csrf: context.csrf,
+ }));
return false;
- });
+ };
if (context.auto_actualize_feeds) {
auto = true;
- $("#actualize").click();
+ document.getElementById('actualize').click();
}
}
// </actualize>
@@ -1027,39 +1130,31 @@ function openNotification(msg, status) {
if (notification_working === true) {
return false;
}
-
notification_working = true;
+ notification.querySelector('.msg').innerHTML = msg;
+ notification.className = 'notification';
+ notification.classList.add(status);
- notification.removeClass();
- notification.addClass("notification");
- notification.addClass(status);
- notification.find(".msg").html(msg);
- notification.fadeIn(300);
-
- notification_interval = window.setTimeout(closeNotification, 4000);
+ notification_interval = setTimeout(closeNotification, 4000);
}
function closeNotification() {
- notification.fadeOut(600, function() {
- notification.removeClass();
- notification.addClass('closed');
-
- window.clearInterval(notification_interval);
- notification_working = false;
- });
+ notification.classList.add('closed');
+ clearInterval(notification_interval);
+ notification_working = false;
}
function init_notifications() {
- notification = $("#notification");
+ notification = document.getElementById('notification');
- notification.find("a.close").click(function () {
- closeNotification();
- return false;
- });
+ notification.querySelector('a.close').onclick = function () {
+ closeNotification();
+ return false;
+ };
- if (notification.find(".msg").html().length > 0) {
+ if (notification.querySelector('.msg').innerHTML.length > 0) {
notification_working = true;
- notification_interval = window.setTimeout(closeNotification, 4000);
+ notification_interval = setTimeout(closeNotification, 4000);
}
}
// </notification>
@@ -1078,24 +1173,24 @@ function notifs_html5_ask_permission() {
}
function notifs_html5_show(nb) {
- if (notifs_html5_permission !== "granted") {
+ if (notifs_html5_permission !== 'granted') {
return;
}
- var notification = new window.Notification(i18n.notif_title_articles, {
- icon: "../themes/icons/favicon-256.png",
- body: i18n.notif_body_articles.replace('%d', nb),
- tag: "freshRssNewArticles"
+ const notification = new window.Notification(context.i18n.notif_title_articles, {
+ icon: '../themes/icons/favicon-256.png',
+ body: context.i18n.notif_body_articles.replace('%d', nb),
+ tag: 'freshRssNewArticles',
});
- notification.onclick = function() {
- window.location.reload();
+ notification.onclick = function () {
+ location.reload();
window.focus();
notification.close();
};
if (context.html5_notif_timeout !== 0) {
- setTimeout(function() {
+ setTimeout(function () {
notification.close();
}, context.html5_notif_timeout * 1000);
}
@@ -1111,84 +1206,117 @@ function init_notifs_html5() {
// </notifs html5>
function refreshUnreads() {
- $.getJSON('./?c=javascript&a=nbUnreadsPerFeed').done(function (data) {
- var isAll = $('.category.all.active').length > 0,
- new_articles = false;
-
- $.each(data.feeds, function(feed_id, nbUnreads) {
- feed_id = 'f_' + feed_id;
- var elem = $('#' + feed_id).get(0),
- feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0;
-
- if ((incUnreadsFeed(null, feed_id, nbUnreads - feed_unreads) || isAll) && //Update of current view?
- (nbUnreads - feed_unreads > 0)) {
- $('#new-article').attr('aria-hidden', 'false').show();
- new_articles = true;
- }
- });
+ const req = new XMLHttpRequest();
+ req.open('GET', './?c=javascript&a=nbUnreadsPerFeed', true);
+ req.responseType = 'json';
+ req.onload = function (e) {
+ const json = xmlHttpRequestJson(this);
+ const isAll = document.querySelector('.category.all.active');
+ let new_articles = false;
+
+ Object.keys(json.feeds).forEach(function (feed_id) {
+ const nbUnreads = json.feeds[feed_id];
+ feed_id = 'f_' + feed_id;
+ const elem = document.getElementById(feed_id),
+ feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0;
+
+ if ((incUnreadsFeed(null, feed_id, nbUnreads - feed_unreads) || isAll) && //Update of current view?
+ (nbUnreads - feed_unreads > 0)) {
+ const newArticle = document.getElementById('new-article');
+ newArticle.setAttribute('aria-hidden', 'false');
+ newArticle.style.display = 'block';
+ new_articles = true;
+ }
+ });
- var nbUnreadTags = 0;
+ let nbUnreadTags = 0;
- $.each(data.tags, function(tag_id, nbUnreads) {
- nbUnreadTags += nbUnreads;
- $('#t_' + tag_id).attr('data-unread', nbUnreads)
- .children('.item-title').attr('data-unread', numberFormat(nbUnreads));
- });
+ Object.keys(json.tags).forEach(function (tag_id) {
+ const nbUnreads = json.tags[tag_id];
+ nbUnreadTags += nbUnreads;
+ const tag = document.getElementById('t_' + tag_id);
+ if (tag) {
+ tag.setAttribute('data-unread', nbUnreads);
+ tag.querySelector('.item-title').setAttribute('data-unread', numberFormat(nbUnreads));
+ }
+ });
- $('.category.tags').attr('data-unread', nbUnreadTags)
- .find('.title').attr('data-unread', numberFormat(nbUnreadTags));
+ const tags = document.querySelector('.category.tags');
+ if (tags) {
+ tags.setAttribute('data-unread', nbUnreadTags);
+ tags.querySelector('.title').setAttribute('data-unread', numberFormat(nbUnreadTags));
+ }
- var nb_unreads = str2int($('.category.all .title').attr('data-unread'));
+ const title = document.querySelector('.category.all .title'),
+ nb_unreads = title ? str2int(title.getAttribute('data-unread')) : 0;
- if (nb_unreads > 0 && new_articles) {
- faviconNbUnread(nb_unreads);
- notifs_html5_show(nb_unreads);
- }
- });
+ if (nb_unreads > 0 && new_articles) {
+ faviconNbUnread(nb_unreads);
+ notifs_html5_show(nb_unreads);
+ }
+ };
+ req.send();
}
//<endless_mode>
-var url_load_more = "",
+var url_load_more = '',
load_more = false,
box_load_more = null;
function load_more_posts() {
- if (load_more || url_load_more === '' || box_load_more === null) {
+ if (load_more || !url_load_more || !box_load_more) {
return;
}
-
load_more = true;
- $('#load_more').addClass('loading');
- $.get(url_load_more, function (data) {
- box_load_more.children('.flux:last').after($('#stream', data).children('.flux, .day'));
- $('.pagination').replaceWith($('.pagination', data));
- if (context.display_order === 'ASC') {
- $('#nav_menu_read_all .read_all').attr(
- 'formaction', $('#bigMarkAsRead').attr('formaction')
- );
- } else {
- $('#bigMarkAsRead').attr(
- 'formaction', $('#nav_menu_read_all .read_all').attr('formaction')
- );
- }
+ document.getElementById('load_more').classList.add('loading');
+
+ const req = new XMLHttpRequest();
+ req.open('GET', url_load_more, true);
+ req.responseType = 'document';
+ req.onload = function (e) {
+ const html = this.response,
+ formPagination = document.getElementById('mark-read-pagination');
+
+ const streamAdopted = document.adoptNode(html.getElementById('stream'));
+ streamAdopted.querySelectorAll('.flux, .day').forEach(function (div) {
+ box_load_more.insertBefore(div, formPagination);
+ });
+
+ const paginationOld = formPagination.querySelector('.pagination'),
+ paginationNew = streamAdopted.querySelector('.pagination');
+ formPagination.replaceChild(paginationNew, paginationOld);
- $('[id^=day_]').each(function (i) {
- var ids = $('[id="' + this.id + '"]');
- if (ids.length > 1) {
- $('[id="' + this.id + '"]:gt(0)').remove();
+ if (context.display_order === 'ASC') {
+ document.querySelector('#nav_menu_read_all .read_all').formAction =
+ document.getElementById('bigMarkAsRead').formAction;
+ } else {
+ const bigMarkAsRead = document.getElementById('bigMarkAsRead');
+ if (bigMarkAsRead) {
+ bigMarkAsRead.formAction = document.querySelector('#nav_menu_read_all .read_all').formAction;
+ }
}
- });
- init_load_more(box_load_more);
+ document.querySelectorAll('[id^=day_]').forEach(function (div) {
+ const ids = document.querySelectorAll('[id="' + div.id + '"]');
+ for (let i = ids.length - 1; i > 0; i--) { //Keep only the first
+ ids[i].remove();
+ }
+ });
- $('#load_more').removeClass('loading');
- $('#bigMarkAsRead').removeAttr('disabled');
- load_more = false;
- });
-}
+ init_load_more(box_load_more);
-function focus_search() {
- $('#search').focus();
+ const bigMarkAsRead = document.getElementById('bigMarkAsRead'),
+ div_load_more = document.getElementById('load_more');
+ if (bigMarkAsRead) {
+ bigMarkAsRead.removeAttribute('disabled');
+ }
+ if (div_load_more) {
+ div_load_more.classList.remove('loading');
+ }
+
+ load_more = false;
+ };
+ req.send();
}
var freshrssLoadMoreEvent = document.createEvent('Event');
@@ -1198,208 +1326,52 @@ function init_load_more(box) {
box_load_more = box;
document.body.dispatchEvent(freshrssLoadMoreEvent);
- var $next_link = $("#load_more");
- if (!$next_link.length) {
+ const next_link = document.getElementById('load_more');
+ if (!next_link) {
// no more article to load
- url_load_more = "";
+ url_load_more = '';
return;
}
- url_load_more = $next_link.attr("href");
+ url_load_more = next_link.href;
- $next_link.click(function () {
- load_more_posts();
- return false;
- });
+ next_link.onclick = function (e) {
+ load_more_posts();
+ return false;
+ };
}
//</endless_mode>
-//<crypto form (Web login)>
-function poormanSalt() { //If crypto.getRandomValues is not available
- var text = '$2a$04$',
- base = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ.0123456789/abcdefghijklmnopqrstuvwxyz';
- for (var i = 22; i > 0; i--) {
- text += base.charAt(Math.floor(Math.random() * 64));
- }
- return text;
-}
-
-function init_crypto_form() {
- /* globals dcodeIO */
- var $crypto_form = $('#crypto-form');
- if ($crypto_form.length === 0) {
- return;
- }
-
- if (!(window.dcodeIO)) {
- if (window.console) {
- console.log('FreshRSS waiting for bcrypt.js…');
- }
- window.setTimeout(init_crypto_form, 100);
- return;
- }
-
- $crypto_form.on('submit', function() {
- var $submit_button = $(this).find('button[type="submit"]');
- $submit_button.attr('disabled', '');
-
- var success = false;
- $.ajax({
- url: './?c=javascript&a=nonce&user=' + $('#username').val(),
- dataType: 'json',
- async: false
- }).done(function (data) {
- if (!data.salt1 || !data.nonce) {
- openNotification('Invalid user!', 'bad');
- } else {
- try {
- var strong = window.Uint32Array && window.crypto && (typeof window.crypto.getRandomValues === 'function'),
- s = dcodeIO.bcrypt.hashSync($('#passwordPlain').val(), data.salt1),
- c = dcodeIO.bcrypt.hashSync(data.nonce + s, strong ? dcodeIO.bcrypt.genSaltSync(4) : poormanSalt());
- $('#challenge').val(c);
- if (!s || !c) {
- openNotification('Crypto error!', 'bad');
- } else {
- success = true;
- }
- } catch (e) {
- openNotification('Crypto exception! ' + e, 'bad');
+function init_confirm_action() {
+ document.body.onclick = function (ev) {
+ const b = ev.target.closest('.confirm');
+ if (b) {
+ let str_confirmation = this.getAttribute('data-str-confirm');
+ if (!str_confirmation) {
+ str_confirmation = context.i18n.confirmation_default;
}
+ return confirm(str_confirmation);
}
- }).fail(function() {
- openNotification('Communication error!', 'bad');
- });
-
- $submit_button.removeAttr('disabled');
- return success;
- });
-}
-//</crypto form (Web login)>
-
-function init_confirm_action() {
- $('body').on('click', '.confirm', function () {
- var str_confirmation = $(this).attr('data-str-confirm');
- if (!str_confirmation) {
- str_confirmation = i18n.confirmation_default;
- }
-
- return confirm(str_confirmation);
- });
- $('button.confirm').removeAttr('disabled');
-}
-
-function init_print_action() {
- $('.item.share > a[href="#"]').click(function (e) {
- var content = "<html><head><style>" +
- "body { font-family: Serif; text-align: justify; }" +
- "a { color: #000; text-decoration: none; }" +
- "a:after { content: ' [' attr(href) ']'}" +
- "</style></head><body>" +
- $(e.target).closest('.flux_content').find('.content').html() +
- "</body></html>";
-
- var tmp_window = window.open();
- tmp_window.document.writeln(content);
- tmp_window.document.close();
- tmp_window.focus();
- tmp_window.print();
- tmp_window.close();
-
- return false;
- });
-}
-
-function init_post_action() {
- $('.item.share > a[href="POST"]').click(function (event) {
- event.preventDefault();
- var form = $(this).next('form');
- $.post(form.data('url'), form.serialize());
- });
-}
-
-function init_share_observers() {
- shares = $('.group-share').length;
-
- $('.share.add').on('click', function(e) {
- var opt = $(this).siblings('select').find(':selected');
- var row = $(this).parents('form').data(opt.data('form'));
- row = row.replace(/##label##/g, opt.html().trim());
- row = row.replace(/##type##/g, opt.val());
- row = row.replace(/##help##/g, opt.data('help'));
- row = row.replace(/##key##/g, shares);
- row = row.replace(/##method##/g, opt.data('method'));
- row = row.replace(/##field##/g, opt.data('field'));
- $(this).parents('.form-group').before(row);
- shares++;
-
- return false;
- });
-}
-
-function init_stats_observers() {
- $('.select-change').on('change', function(e) {
- redirect($(this).find(':selected').data('url'));
- });
-}
-
-function init_remove_observers() {
- $('.post').on('click', 'a.remove', function(e) {
- var remove_what = $(this).attr('data-remove');
-
- if (remove_what !== undefined) {
- var remove_obj = $('#' + remove_what);
- remove_obj.remove();
- }
-
- return false;
- });
-}
-
-function init_feed_observers() {
- $('select[id="category"]').on('change', function() {
- var detail = $('#new_category_name').parent();
- if ($(this).val() === 'nc') {
- detail.attr('aria-hidden', 'false').show();
- detail.find('input').focus();
- } else {
- detail.attr('aria-hidden', 'true').hide();
- }
- });
-}
-
-function init_password_observers() {
- $('.toggle-password').on('mousedown', function(e) {
- var button = $(this);
- var passwordField = $('#' + button.attr('data-toggle'));
- passwordField.attr('type', 'text');
- button.addClass('active');
-
- return false;
- }).on('mouseup', function(e) {
- var button = $(this);
- var passwordField = $('#' + button.attr('data-toggle'));
- passwordField.attr('type', 'password');
- button.removeClass('active');
-
- return false;
- });
+ };
+ document.querySelectorAll('button.confirm').forEach(function (b) { b.disabled = false; });
}
function faviconNbUnread(n) {
if (typeof n === 'undefined') {
- n = str2int($('.category.all .title').attr('data-unread'));
+ const t = document.querySelector('.category.all .title');
+ n = t ? str2int(t.getAttribute('data-unread')) : 0;
}
//http://remysharp.com/2010/08/24/dynamic-favicons/
- var canvas = document.createElement('canvas'),
+ const canvas = document.createElement('canvas'),
link = document.getElementById('favicon').cloneNode(true);
if (canvas.getContext && link) {
canvas.height = canvas.width = 16;
- var img = document.createElement('img');
+ const img = document.createElement('img');
img.onload = function () {
- var ctx = canvas.getContext('2d');
+ const ctx = canvas.getContext('2d');
ctx.drawImage(this, 0, 0, canvas.width, canvas.height);
if (n > 0) {
- var text = '';
+ let text = '';
if (n < 1000) {
text = n;
} else if (n < 100000) {
@@ -1414,167 +1386,61 @@ function faviconNbUnread(n) {
ctx.fillText(text, 0, canvas.height - 1);
}
link.href = canvas.toDataURL('image/png');
- $('link[rel~=icon]').remove();
+ document.querySelector('link[rel~=icon]').remove();
document.head.appendChild(link);
};
img.src = '../favicon.ico';
}
}
-function init_slider_observers() {
- var slider = $('#slider'),
- closer = $('#close-slider');
- if (slider.length < 1) {
- return;
- }
-
- $('.post').on('click', '.open-slider', function() {
- if (ajax_loading) {
- return false;
- }
-
- ajax_loading = true;
- var url_slide = $(this).attr('href');
-
- $.ajax({
- type: 'GET',
- url: url_slide,
- data: { ajax: true }
- }).done(function (data) {
- slider.html(data);
- closer.addClass('active');
- slider.addClass('active');
- ajax_loading = false;
- });
-
- return false;
- });
-
- closer.on('click', function() {
- closer.removeClass('active');
- slider.removeClass('active');
- return false;
- });
-}
-
-function init_configuration_alert() {
- $(window).on('submit', function(e) {
- window.hasSubmit = true;
- });
- $(window).on('beforeunload', function(e) {
- if (window.hasSubmit) {
- return;
- }
- var fields = $("[data-leave-validation]");
- for (var i = 0; i < fields.length; i++) {
- if ($(fields[i]).attr('type') === 'checkbox' || $(fields[i]).attr('type') === 'radio') {
- // The use of != is done on purpose to check boolean against integer
- if ($(fields[i]).is(':checked') != $(fields[i]).attr('data-leave-validation')) {
- return false;
- }
- } else {
- if ($(fields[i]).attr('data-leave-validation') !== $(fields[i]).val()) {
- return false;
- }
- }
- }
- return;
- });
-}
-
-function init_subscription() {
- $('body').on('click', '.bookmarkClick', function (e) {
- return false;
- });
-}
-
-function parseJsonVars() {
- var jsonVars = document.getElementById('jsonVars'),
- json = JSON.parse(jsonVars.innerHTML);
- jsonVars.outerHTML = '';
- window.context = json.context;
- window.shortcuts = json.shortcuts;
- window.url = json.url;
- window.i18n = json.i18n;
- window.icons = json.icons;
-}
-
function init_normal() {
- $stream = $('#stream');
- if ($stream.length < 1) {
+ const stream = document.getElementById('stream');
+ if (!stream) {
if (window.console) {
console.log('FreshRSS waiting for content…');
}
- window.setTimeout(init_normal, 100);
+ setTimeout(init_normal, 100);
return;
}
init_column_categories();
- init_stream($stream);
+ init_stream(stream);
init_shortcuts();
init_actualize();
faviconNbUnread();
}
function init_beforeDOM() {
- if (!window.$) {
- if (window.console) {
- console.log('FreshRSS waiting for jQuery…');
- }
- window.setTimeout(init_beforeDOM, 100);
- return;
- }
if (['normal', 'reader', 'global'].indexOf(context.current_view) >= 0) {
init_normal();
}
}
function init_afterDOM() {
- if (!window.$) {
- if (window.console) {
- console.log('FreshRSS waiting again for jQuery…');
- }
- window.setTimeout(init_afterDOM, 100);
- return;
- }
init_notifications();
init_confirm_action();
- $stream = $('#stream');
- if ($stream.length > 0) {
- init_load_more($stream);
+ const stream = document.getElementById('stream');
+ if (stream) {
+ init_load_more(stream);
init_posts();
init_nav_entries();
- init_dynamic_tags();
- init_print_action();
- init_post_action();
init_notifs_html5();
- window.setInterval(refreshUnreads, 120000);
- } else {
- init_subscription();
- init_crypto_form();
- init_share_observers();
- init_remove_observers();
- init_feed_observers();
- init_password_observers();
- init_stats_observers();
- init_slider_observers();
- init_configuration_alert();
+ setInterval(refreshUnreads, 120000);
}
if (window.console) {
- console.log('FreshRSS init done.');
+ console.log('FreshRSS main init done.');
}
}
-parseJsonVars();
init_beforeDOM(); //Can be called before DOM is fully loaded
if (document.readyState && document.readyState !== 'loading') {
init_afterDOM();
-} else if (document.addEventListener) {
+} else {
document.addEventListener('DOMContentLoaded', function () {
- if (window.console) {
- console.log('FreshRSS waiting for DOMContentLoaded…');
- }
- init_afterDOM();
- }, false);
+ if (window.console) {
+ console.log('FreshRSS waiting for DOMContentLoaded…');
+ }
+ init_afterDOM();
+ }, false);
}
diff --git a/p/scripts/repartition.js b/p/scripts/repartition.js
index be70456fa..e71fa71c4 100644
--- a/p/scripts/repartition.js
+++ b/p/scripts/repartition.js
@@ -1,6 +1,6 @@
"use strict";
/* globals Flotr, numberFormat */
-/* jshint globalstrict: true */
+/* jshint esversion:6, strict:global */
function initStats() {
if (!window.Flotr) {
@@ -10,7 +10,7 @@ function initStats() {
window.setTimeout(initStats, 50);
return;
}
- var jsonRepartition = document.getElementById('jsonRepartition'),
+ const jsonRepartition = document.getElementById('jsonRepartition'),
stats = JSON.parse(jsonRepartition.innerHTML);
jsonRepartition.outerHTML = '';
// Entry per hour
diff --git a/p/scripts/shortcut.js b/p/scripts/shortcut.js
deleted file mode 100644
index e78cf6f5e..000000000
--- a/p/scripts/shortcut.js
+++ /dev/null
@@ -1,225 +0,0 @@
-/**
- * http://www.openjs.com/scripts/events/keyboard_shortcuts/
- * Version : 2.01.B
- * By Binny V A
- * License : BSD
- */
-shortcut = {
- 'all_shortcuts':{},//All the shortcuts are stored in this array
- 'add': function(shortcut_combination,callback,opt) {
- //Provide a set of default options
- var default_options = {
- 'type':'keydown',
- 'propagate':false,
- 'disable_in_input':false,
- 'target':document,
- 'keycode':false
- }
- if(!opt) opt = default_options;
- else {
- for(var dfo in default_options) {
- if(typeof opt[dfo] == 'undefined') opt[dfo] = default_options[dfo];
- }
- }
-
- var ele = opt.target;
- if(typeof opt.target == 'string') ele = document.getElementById(opt.target);
- var ths = this;
- shortcut_combination = shortcut_combination.toLowerCase();
-
- //The function to be called at keypress
- var func = function(e) {
- e = e || window.event;
-
- if(opt['disable_in_input']) { //Don't enable shortcut keys in Input, Textarea fields
- var element;
- if(e.target) element=e.target;
- else if(e.srcElement) element=e.srcElement;
- if(element.nodeType==3) element=element.parentNode;
-
- if(element.tagName == 'INPUT' || element.tagName == 'TEXTAREA') return;
- }
-
- //Find Which key is pressed
- if (e.keyCode) code = e.keyCode;
- else if (e.which) code = e.which;
- if (code == 32 || (code >= 48 && code <= 90) || (code >= 96 && code <= 111) || (code >= 186 && code <= 192) || (code >= 219 && code <= 222)) { //FreshRSS
- var character = String.fromCharCode(code).toLowerCase();
- }
-
- if(code == 188) character=","; //If the user presses , when the type is onkeydown
- if(code == 190) character="."; //If the user presses , when the type is onkeydown
-
- var keys = shortcut_combination.split("+");
- //Key Pressed - counts the number of valid keypresses - if it is same as the number of keys, the shortcut function is invoked
- var kp = 0;
-
- //Work around for stupid Shift key bug created by using lowercase - as a result the shift+num combination was broken
- var shift_nums = {
- "`":"~",
- "1":"!",
- "2":"@",
- "3":"#",
- "4":"$",
- "5":"%",
- "6":"^",
- "7":"&",
- "8":"*",
- "9":"(",
- "0":")",
- "-":"_",
- "=":"+",
- ";":":",
- "'":"\"",
- ",":"<",
- ".":">",
- "/":"?",
- "\\":"|"
- }
- //Special Keys - and their codes
- var special_keys = {
- 'esc':27,
- 'escape':27,
- 'tab':9,
- 'space':32,
- 'return':13,
- 'enter':13,
- 'backspace':8,
-
- 'scrolllock':145,
- 'scroll_lock':145,
- 'scroll':145,
- 'capslock':20,
- 'caps_lock':20,
- 'caps':20,
- 'numlock':144,
- 'num_lock':144,
- 'num':144,
-
- 'pause':19,
- 'break':19,
-
- 'insert':45,
- 'home':36,
- 'delete':46,
- 'end':35,
-
- 'pageup':33,
- 'page_up':33,
- 'pu':33,
-
- 'pagedown':34,
- 'page_down':34,
- 'pd':34,
-
- 'left':37,
- 'up':38,
- 'right':39,
- 'down':40,
-
- 'f1':112,
- 'f2':113,
- 'f3':114,
- 'f4':115,
- 'f5':116,
- 'f6':117,
- 'f7':118,
- 'f8':119,
- 'f9':120,
- 'f10':121,
- 'f11':122,
- 'f12':123
- }
-
- var modifiers = {
- shift: { wanted:false, pressed:false},
- ctrl : { wanted:false, pressed:false},
- alt : { wanted:false, pressed:false},
- meta : { wanted:false, pressed:false} //Meta is Mac specific
- };
-
- if(e.ctrlKey) modifiers.ctrl.pressed = true;
- if(e.shiftKey) modifiers.shift.pressed = true;
- if(e.altKey) modifiers.alt.pressed = true;
- if(e.metaKey) modifiers.meta.pressed = true;
-
- for(var i=0; k=keys[i],i<keys.length; i++) {
- //Modifiers
- if(k == 'ctrl' || k == 'control') {
- kp++;
- modifiers.ctrl.wanted = true;
-
- } else if(k == 'shift') {
- kp++;
- modifiers.shift.wanted = true;
-
- } else if(k == 'alt') {
- kp++;
- modifiers.alt.wanted = true;
- } else if(k == 'meta') {
- kp++;
- modifiers.meta.wanted = true;
- } else if(k.length > 1) { //If it is a special key
- if(special_keys[k] == code) kp++;
-
- } else if(opt['keycode']) {
- if(opt['keycode'] == code) kp++;
-
- } else { //The special keys did not match
- if(character == k) kp++;
- else {
- if(shift_nums[character] && e.shiftKey) { //Stupid Shift key bug created by using lowercase
- character = shift_nums[character];
- if(character == k) kp++;
- }
- }
- }
- }
-
- if(kp == keys.length &&
- modifiers.ctrl.pressed == modifiers.ctrl.wanted &&
- modifiers.shift.pressed == modifiers.shift.wanted &&
- modifiers.alt.pressed == modifiers.alt.wanted &&
- modifiers.meta.pressed == modifiers.meta.wanted) {
- callback(e);
-
- if(!opt['propagate']) { //Stop the event
- //e.cancelBubble is supported by IE - this will kill the bubbling process.
- e.cancelBubble = true;
- e.returnValue = false;
-
- //e.stopPropagation works in Firefox.
- if (e.stopPropagation) {
- e.stopPropagation();
- e.preventDefault();
- }
- return false;
- }
- }
- }
- this.all_shortcuts[shortcut_combination] = {
- 'callback':func,
- 'target':ele,
- 'event': opt['type']
- };
- //Attach the function with the event
- if(ele.addEventListener) ele.addEventListener(opt['type'], func, false);
- else if(ele.attachEvent) ele.attachEvent('on'+opt['type'], func);
- else ele['on'+opt['type']] = func;
- },
-
- //Remove the shortcut - just specify the shortcut and I will remove the binding
- 'remove':function(shortcut_combination) {
- shortcut_combination = shortcut_combination.toLowerCase();
- var binding = this.all_shortcuts[shortcut_combination];
- delete(this.all_shortcuts[shortcut_combination])
- if(!binding) return;
- var type = binding['event'];
- var ele = binding['target'];
- var callback = binding['callback'];
-
- if(ele.detachEvent) ele.detachEvent('on'+type, callback);
- else if(ele.removeEventListener) ele.removeEventListener(type, callback, false);
- else ele['on'+type] = false;
- }
-} \ No newline at end of file
diff --git a/p/scripts/stats.js b/p/scripts/stats.js
index 9cd14721c..b47188d77 100644
--- a/p/scripts/stats.js
+++ b/p/scripts/stats.js
@@ -1,6 +1,6 @@
"use strict";
/* globals Flotr, numberFormat */
-/* jshint globalstrict: true */
+/* jshint esversion:6, strict:global */
function initStats() {
if (!window.Flotr) {
@@ -10,12 +10,12 @@ function initStats() {
window.setTimeout(initStats, 50);
return;
}
- var jsonStats = document.getElementById('jsonStats'),
+ const jsonStats = document.getElementById('jsonStats'),
stats = JSON.parse(jsonStats.innerHTML);
jsonStats.outerHTML = '';
// Entry per day
- var avg = [];
- for (var i = -31; i <= 0; i++) {
+ const avg = [];
+ for (let i = -31; i <= 0; i++) {
avg.push([i, stats.average]);
}
Flotr.draw(document.getElementById('statsEntryPerDay'),
diff --git a/p/themes/Ansum/_components.scss b/p/themes/Ansum/_components.scss
new file mode 100644
index 000000000..cf8cb5e91
--- /dev/null
+++ b/p/themes/Ansum/_components.scss
@@ -0,0 +1,352 @@
+/*=== COMPONENTS */
+/*===============*/
+/*=== Forms */
+// parti dans _forms.scss
+
+/*=== Horizontal-list */
+.horizontal-list {
+ margin: 0;
+ padding: 0.1rem 0;
+
+ .item{
+ vertical-align: middle;
+
+ &:first-child{
+ padding-left: 0.5rem;
+ }
+
+ }
+}
+
+/*=== Dropdown */
+.dropdown-menu {
+ background: $grey-lighter;
+ margin: 0;
+ font-size: 1rem;
+ text-align: left;
+ padding: 0.5rem 0 1rem 0;
+ border: none;
+ border-radius: 3px;
+
+ -webkit-box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35);
+ -moz-box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35);
+ box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35);
+
+ &::after {
+ content: "";
+ position: absolute;
+ top: -4px;
+ right: 13px;
+ width: 10px;
+ height: 10px;
+ z-index: -10;
+ transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ background: white;
+ // border-top: 1px solid #95a5a6;
+ // border-left: 1px solid #95a5a6;
+ }
+
+ .dropdown-header {
+ // padding: 0 5px 5px;
+ margin: 1.75rem 0 0.5rem 2rem;
+ font-weight: bold;
+ text-align: left;
+ color: $grey-dark;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+
+
+ }
+
+ .item{
+ @include transition(all, 0.075s, ease-in-out);
+ a, span, .as-link{
+ padding: 0 2rem;
+ line-height: 2.5em;
+ font-size: 1rem;
+ color: $main-font-color;
+ }
+ &:hover{
+ background: $main-first;
+ color: $white;
+
+ a, button{
+ text-decoration: none;
+ color: $white;
+ }
+ }
+ &[aria-checked="true"]{
+ a::before{
+ font-weight: bold;
+ margin: 0 0 0 -14px;
+ }
+ }
+ }
+ .input{
+ select, input{
+ margin: 0 auto 5px;
+ padding: 2px 5px;
+ border-radius: 3px;
+ }
+ }
+ .separator {
+ margin: 0.75rem 0;
+ border-bottom: 1px solid $grey-light;
+ // display: none;
+ }
+
+}
+.tree .tree-folder .tree-folder-items .dropdown-menu,
+.tree .tree-folder .tree-folder-items .dropdown-menu{
+ // tout ça sert à restaurer l'apparence du dropdown dans un contexte de sidebar sombre
+
+ .item{
+ padding: 0;
+
+ a,
+ button{
+ color: $main-font-color;
+
+ &:hover{
+ color: $white;
+ }
+ }
+ &:hover{
+ background: $main-first;
+ }
+ }
+}
+
+
+
+
+/*=== Alerts */
+.alert {
+ margin: 1rem 0;
+ // width: 100%;
+ padding: 1rem;
+ font-size: 1rem;
+ background: $grey-lighter;
+ border: 1px solid $grey-medium;
+ border-radius: 3px;
+ color: $grey-dark;
+ text-shadow: 0 0 1px $grey-light;
+}
+.alert-head {
+ font-size: 1.15em;
+}
+.alert > a {
+ text-decoration: underline;
+ color: inherit;
+}
+.alert-warn {
+ background: $warning-light;
+ border: 1px solid unquote($warning-text+'33'); // on ajoute l'opacité à la fin
+ color: $warning-text;
+}
+.alert-success {
+ background: $success-light;
+ border: 1px solid unquote($success-text+'33');
+ color: $success-text;
+}
+.alert-error {
+ background: $alert-light;
+ border: 1px solid unquote($alert-text+'33');
+ color: $alert-text;
+}
+
+/*=== Pagination */
+.pagination {
+ text-align: center;
+ font-size: 0.8em;
+ background: $grey-light;
+ color: $main-font-color;
+
+ .item{
+ &.pager-current {
+ font-weight: bold;
+ font-size: 1.5em;
+ background: $sid-bg;
+ color: $grey-light;
+ }
+ a {
+ display: block;
+ font-style: italic;
+ line-height: 3em;
+ text-decoration: none;
+ color: $main-font-color;
+
+ &:hover{
+ background: $main-font-color;
+ color: $grey-light;
+ }
+ }
+ }
+
+ .loading,
+ a:hover.loading {
+ font-size: 0;
+ background: url("loader.gif") center center no-repeat #34495e;
+ }
+}
+.content .pagination {
+ margin: 0;
+ padding: 0;
+}
+
+
+/*=== Boxes */
+.box {
+ // border: 1px solid #ddd;
+ border: none;
+ border-radius: 3px;
+ background: $white;
+
+ -webkit-box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.25);
+ -moz-box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.25);
+ box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.25);
+
+ .box-title {
+ margin: 0;
+ padding: 5px 10px;
+ background: $grey-light;
+ color: $main-font-color;
+ // border-bottom: 1px solid #ddd;
+ border-radius: 2px 2px 0 0;
+
+ form{
+ input{
+ width: 85%;
+ }
+ .dropdown{
+ float: right;
+ a.dropdown-toggle{
+ padding: 0;
+ background-image: url(icons/more.svg);
+ background-repeat: no-repeat;
+ background-position: right 8px;
+ // float: right;
+ border-radius: 0;
+ img{
+ display: none;
+ }
+ }
+ }
+ }
+ }
+ .box-content {
+ // max-height: 260px;
+
+ .item {
+ padding: 0.5rem 0.75rem;
+ font-size: 1rem;
+ color: $main-font-color;
+ line-height: 1.7em;
+ border-bottom: 1px solid $grey-light;
+
+ img{
+ margin-right: 0.75rem;
+ }
+
+ .configure {
+ visibility: hidden;
+ width: 1.75rem;
+ height: 1.75rem;
+ display: block;
+ border-radius: 2px;
+ float: left;
+ margin-right: 0.5rem;
+ background: url("icons/cog.svg") no-repeat 4px 4px;
+
+ .icon {
+ vertical-align: middle;
+ border-radius: 3px;
+ display: none;
+ }
+ &:hover{
+ // background: $main-first;
+ background: url("icons/cog-white.svg") no-repeat 4px 4px $main-first;
+ }
+ }
+ &:hover .configure {
+ visibility: visible;
+ }
+ }
+ .item:last-child{
+ border-bottom: none;
+ }
+ }
+}
+
+/*=== "Load more" part */
+#bigMarkAsRead {
+ text-align: center;
+ text-decoration: none;
+ background: $main-first-light;
+ color: $main-first;
+
+ @include transition(all, 0.15s, ease-in-out);
+
+ &:hover {
+ background: $main-first;
+ color: #fff;
+
+ .bigTick{
+ background: url(icons/tick-white.svg) center no-repeat;
+ }
+ }
+ .bigTick{
+ margin: 0.5rem 0;
+ display: inline-block;
+ text-indent: -9999px;
+ background: url(icons/tick-color.svg) center no-repeat;
+ height: 64px;
+ width: 64px;
+ white-space: nowrap;
+ }
+}
+
+// page de login
+.formLogin{
+ background: $sid-bg;
+
+ .header{
+ .configure{
+ padding-right: 1rem;
+ img{
+ margin-right: 0.5rem;
+ }
+
+ a.signin{
+ color: $white;
+ }
+ }
+ }
+
+ h1{
+ color: $white;
+ }
+ form#crypto-form{
+ div{
+ margin-bottom: 1rem;
+
+ label{
+ font-size: 1rem;
+ color: $grey-medium;
+
+
+ }
+ input{
+ background: $main-first-darker;
+
+ &:focus{
+ background: $grey-lighter;
+ color: $main-font-color;
+ }
+ }
+ }
+ }
+}
diff --git a/p/themes/Ansum/_configuration.scss b/p/themes/Ansum/_configuration.scss
new file mode 100644
index 000000000..c3c6fd417
--- /dev/null
+++ b/p/themes/Ansum/_configuration.scss
@@ -0,0 +1,90 @@
+/*=== Configuration pages */
+.post {
+ padding: 1rem 2rem;
+ font-size: 1rem;
+
+ form {
+ margin: 1rem 0;
+
+ // Gestion des extensions
+ .horizontal-list{
+ margin-bottom: 0.5rem;
+
+ .item{
+ .stick{
+ // width: 65%;
+ // margin-right: 1rem;
+ // display:flex;
+
+ }
+ .btn{
+ // width: 8rem;
+ // flex-grow: 1;
+ }
+ }
+
+ }
+ }
+ &.content {
+ max-width: 550px;
+ }
+
+ h1, h2{ // pages titles
+ font-size: 3rem;
+ margin-top: 1.75rem;
+ font-weight: 300;
+ line-height: 1.2em;
+ // font-family: "spectral";
+ color: $main-font-color;
+ }
+
+ a[href="./"]{ // C'est le bouton "Retour à vos flux"
+ display: inline-block;
+ // min-height: 38px;
+ min-width: 15px;
+ line-height: 25px;
+ margin: 0;
+ padding: 0.75rem 1.5rem;
+ font-size: 1rem;
+ vertical-align: middle;
+ cursor: pointer;
+ overflow: hidden;
+ background: $grey-lighter;
+ border: 1px solid $grey-medium-light;
+ border-radius: 5px;
+ // border: none;
+ color: $grey-dark;
+
+ &:hover{
+ text-decoration: none;
+ background: $main-first;
+ color: white;
+ border: 1px solid $main-first;
+ }
+ }
+
+}
+
+
+
+#slider{
+ border-left: none;
+
+ -webkit-box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35);
+ -moz-box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35);
+ box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35);
+}
+
+.slide-container{
+ .properties{
+ background: rgba(0, 0, 0, 0.75);
+ border: 0;
+ padding: 1rem;
+ color: white;
+
+ .page-number{
+ right: 1rem;
+ top: 1rem;
+ }
+ }
+}
diff --git a/p/themes/Ansum/_divers.scss b/p/themes/Ansum/_divers.scss
new file mode 100644
index 000000000..7d122f1b4
--- /dev/null
+++ b/p/themes/Ansum/_divers.scss
@@ -0,0 +1,12 @@
+/*=== DIVERS */
+/*===========*/
+.aside.aside_feed .nav-form input,
+.aside.aside_feed .nav-form select {
+ width: 140px;
+}
+.aside.aside_feed .nav-form .dropdown .dropdown-menu {
+ right: -20px;
+}
+.aside.aside_feed .nav-form .dropdown .dropdown-menu::after {
+ right: 33px;
+}
diff --git a/p/themes/Ansum/_fonts.scss b/p/themes/Ansum/_fonts.scss
new file mode 100644
index 000000000..5891be834
--- /dev/null
+++ b/p/themes/Ansum/_fonts.scss
@@ -0,0 +1,56 @@
+@font-face {
+ font-family: "lato";
+ font-style: normal;
+ font-stretch: normal;
+ font-weight: 400;
+ src: local("Lato"), url("../fonts/LatoLatin-Regular.woff") format("woff");
+}
+@font-face {
+ font-family: "lato";
+ font-style: italic;
+ font-stretch: normal;
+ font-weight: 400;
+ src: local("Lato"), url("../fonts/LatoLatin-Italic.woff") format("woff");
+}
+@font-face {
+ font-family: "lato";
+ font-style: normal;
+ font-stretch: normal;
+ font-weight: 700;
+ src: local("Lato"), url("../fonts/LatoLatin-Bold.woff") format("woff");
+}
+@font-face {
+ font-family: "lato";
+ font-style: italic;
+ font-stretch: normal;
+ font-weight: 700;
+ src: local("Lato"), url("../fonts/LatoLatin-BoldItalic.woff") format("woff");
+}
+@font-face {
+ font-family: "spectral";
+ font-style: normal;
+ font-stretch: normal;
+ font-weight: 400;
+ src: local("Spectral"), url("../fonts/Spectral-Regular.woff") format("woff");
+}
+@font-face {
+ font-family: "spectral";
+ font-style: italic;
+ font-stretch: normal;
+ font-weight: 400;
+ src: local("Spectral"), url("../fonts/Spectral-Italic.woff") format("woff");
+}
+@font-face {
+ font-family: "spectral";
+ font-style: normal;
+ font-stretch: normal;
+ font-weight: 700;
+ src: local("Spectral"), url("../fonts/Spectral-Bold.woff") format("woff");
+}
+@font-face {
+ font-family: "spectral";
+ font-style: italic;
+ font-stretch: normal;
+ font-weight: 700;
+ src: local("Spectral"), url("../fonts/Spectral-BoldItalic.woff") format("woff");
+}
diff --git a/p/themes/Ansum/_forms.scss b/p/themes/Ansum/_forms.scss
new file mode 100644
index 000000000..8a388aa8a
--- /dev/null
+++ b/p/themes/Ansum/_forms.scss
@@ -0,0 +1,153 @@
+/* btns */
+
+.btn {
+ display: inline-block;
+ min-height: 38px;
+ min-width: 15px;
+ line-height: 25px;
+ margin: 0;
+ padding: 0.5rem 1.5rem;
+ font-size: 1rem;
+ vertical-align: middle;
+ cursor: pointer;
+ overflow: hidden;
+ background: $grey-lighter;
+ border-radius: 5px;
+ border: none;
+ color: $grey-dark;
+
+ @include transition(all, 0.15s, ease-in-out);
+
+ &.btn-important {
+ background: $main-first;
+ color: $white;
+
+ // @include transition(all, 0.15s, ease-in-out);
+
+ &:hover,
+ &:active {
+ background: $main-first-alt;
+ }
+ }
+
+
+ &.btn-attention {
+ background: $alert-bg;
+ color: #fff;
+
+ &:hover,
+ &:active {
+ background: $alert-text;
+ }
+ }
+
+ &:hover {
+ text-decoration: none;
+ }
+}
+
+a.btn {
+ min-height: 25px;
+ line-height: 25px;
+}
+
+/*=== Forms */
+legend {
+ display: inline-block;
+ width: auto;
+ margin: 2rem 0 1rem 0;
+ padding: 0;
+ font-size: 1rem;
+ clear: both;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ font-weight: 700;
+}
+label {
+ min-height: 25px;
+ padding: 5px 0;
+ cursor: pointer;
+ color: $grey-dark;
+}
+textarea {
+ width: 360px;
+ height: 100px;
+}
+input, select, textarea, button {
+ font-family: "lato", "Helvetica", "Arial", sans-serif;
+ min-height: 25px;
+ padding: 5px 10px;
+ line-height: 25px;
+ vertical-align: middle;
+ background: $white;
+ border: 1px solid $grey-light;
+ font-size: 1rem;
+ color: $grey-dark;
+ border-radius: 2px;
+}
+option {
+ padding: 0 .5em;
+}
+input:focus, select:focus, textarea:focus {
+ color: $main-font-color;
+ border-color: $main-first;
+}
+input:invalid, select:invalid {
+ color: $alert-bg;
+ border-color: $alert-bg;
+ box-shadow: none;
+}
+input:disabled, select:disabled {
+ background: $grey-light;
+}
+input.extend {
+ transition: width 200ms linear;
+ -moz-transition: width 200ms linear;
+ -webkit-transition: width 200ms linear;
+ -o-transition: width 200ms linear;
+ -ms-transition: width 200ms linear;
+}
+
+
+.form-group {
+ padding: 5px;
+ border-radius: 3px;
+
+ &::after {
+ content: "";
+ display: block;
+ clear: both;
+ }
+ &:hover {
+ // background: #fff;
+ // border: 1px solid #eee;
+ // border-radius: 3px;
+ // border: 1px solid #eee;
+ }
+ .group-name {
+ padding: 10px 0;
+ text-align: right;
+ }
+ .group-controls {
+ min-height: 25px;
+ padding: 5px 0;
+ }
+ .group-controls .control {
+ line-height: 2.0em;
+ }
+ table {
+ margin: 10px 0 0 220px;
+ }
+
+ &.form-actions {
+ margin: 15px 0 25px;
+ padding: 5px 0;
+ // background: #333;
+ }
+ &.form-actions .btn {
+ margin: 0 0.5rem 0 0;
+ }
+}
+
+
+
diff --git a/p/themes/Ansum/_global-view.scss b/p/themes/Ansum/_global-view.scss
new file mode 100644
index 000000000..30979bd6c
--- /dev/null
+++ b/p/themes/Ansum/_global-view.scss
@@ -0,0 +1,80 @@
+/*=== GLOBAL VIEW */
+/*================*/
+
+#stream{
+ .box.category{
+
+ &:not([data-unread="0"]) .box-title {
+ // background: #3498db;
+ }
+ &:not([data-unread="0"]) .box-title:active {
+ // background: #2980b9;
+ }
+ &:not([data-unread="0"]) .box-title .title {
+ font-weight: bold;
+ // color: #fff;
+ }
+
+ .box-title{
+ background: none;
+ padding: 1.5rem;
+
+ a.title{
+ font-weight: normal;
+ text-decoration: none;
+ text-align: left;
+ font-size: 1rem;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ color: $grey-dark;
+
+ &:not([data-unread="0"])::after {
+ position: absolute;
+ top: 1.75rem;
+ right: 0;
+ line-height: 1.5rem;
+ background: $grey-light;
+ border-radius: 12px;
+ padding: 0 0.75rem;
+ margin: -0.5rem 1rem 0 0;
+ text-align: center;
+ }
+ &:hover{
+ color: $main-first;
+ }
+ }
+ }
+
+ .box-content{
+ padding-bottom: 0.5rem;
+ .item.feed {
+ // padding: 2px 10px;
+ font-size: 1rem;
+ padding: 0.5rem 1.5rem;
+
+ a{
+ color: $main-font-color;
+ font-weight: 400;
+
+ &:hover{
+ color: $main-first;
+ text-decoration: none;
+ }
+ }
+ }
+ }
+ }
+}
+
+
+// le panel qui apparait en overlay pour afficher les flux
+#overlay{
+ background: rgba(0, 0, 0, 0.65);
+}
+#panel{
+ top: 3rem;
+ right: 3rem;
+ bottom: 3rem;
+ left: 3rem;
+ border-radius: 3px;
+}
diff --git a/p/themes/Ansum/_layout.scss b/p/themes/Ansum/_layout.scss
new file mode 100644
index 000000000..de684504a
--- /dev/null
+++ b/p/themes/Ansum/_layout.scss
@@ -0,0 +1,462 @@
+/*=== STRUCTURE */
+/*===============*/
+/*=== Header */
+.header {
+ background: $sid-bg;
+ padding: 0.5rem 1.35rem;
+ display: block;
+ table-layout: none;
+ width: auto;
+
+ .item{
+ vertical-align: middle;
+ // text-align: center;
+ // display: flex;
+ // justify-content: space-between;
+ // flex-direction: row;
+
+ &.title{
+
+ font-weight: 400;
+ width: 280px;
+
+ h1{
+ a{
+ text-decoration: none;
+ color: $sid-font-color;
+ font-size: 1rem;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+
+ img{
+ margin-right: 0.5rem;
+
+ }
+ }
+ }
+ }
+ &.search{
+ // text-align: center;
+ // width: 50%;
+
+ input{
+ width: 230px;
+ border-radius: 2px 0 0 2px;
+ background-color: $sid-bg-alt;
+ color: $sid-font-color;
+ border: none;
+
+ @include transition(all, 0.15s, ease-in-out);
+
+ &:hover{
+ background-color: $sid-bg-dark;
+ }
+
+ &:focus{
+ width: 350px;
+
+ background-color: $white;
+ color: $grey-dark;
+ }
+ }
+ .btn{
+ img{display: none;}
+ border-radius: 0 2px 2px 0;
+
+ background-color: $main-first;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-image: url(icons/magnifier.svg);
+
+ border-left-width: 0;
+
+ width: 3rem;
+ min-height: 35px;
+
+ &:hover{
+ background-color: $main-first-alt;
+ }
+ }
+ }
+ &.configure{
+ width: 2rem;
+ position: absolute;
+ right: 1rem;
+ top: 1.25rem;
+ text-align: center;
+ // float: right;
+
+ .btn{
+ img{display: none;}
+ // border-radius: 0 2px 2px 0;
+
+ background-color: transparent;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-image: url(icons/cog.svg);
+
+ padding: 0 0.5rem;
+
+ // border-left-width: 0;
+
+ // width: 3rem;
+
+ &:hover{
+ // background-color: $main-first-alt;
+ }
+ }
+ }
+ }
+
+
+}
+
+/*=== Body */
+#global {
+ height: calc(100% - 85px);
+}
+
+
+
+
+/*=== Prompt (centered) */
+.prompt {
+ text-align: center;
+}
+.prompt label {
+ text-align: left;
+}
+.prompt form {
+ margin: 10px auto 20px auto;
+ width: 200px;
+}
+.prompt input {
+ margin: 5px auto;
+ width: 100%;
+}
+.prompt p {
+ margin: 20px 0;
+}
+
+/*=== New article notification */
+#new-article {
+ text-align: center;
+ font-size: 1rem;
+ background: $main-first;
+}
+#new-article:hover {
+ background: $main-first-alt;
+}
+#new-article > a {
+ line-height: 3em;
+ font-weight: bold;
+ color: $white;
+}
+#new-article > a:hover {
+ text-decoration: none;
+}
+
+/*=== Day indication */
+.day {
+ padding: 1rem 0 0 1.25rem;
+ font-weight: 700;
+ line-height: 3em;
+ letter-spacing: 1px;
+ text-transform: uppercase;
+ font-size: 0.875rem;
+ color: $light-font-color;
+ // border-left: 2px solid #ecf0f1;
+
+ .name{
+ padding: 0 1rem 0 1rem;
+ font-size: 0.875rem;
+ // font-weight: 700;
+ color: $main-font-color;
+ position: relative;
+ left: 0;
+
+ // letter-spacing: 1px;
+ text-transform: uppercase;
+ }
+}
+
+/*=== Index menu */
+.nav_menu {
+ text-align: center;
+ padding: 5px 0;
+
+ .btn{
+ border-left-width: 0;
+ padding: 0.5rem 1rem;
+ background-color: $grey-lighter;
+ background-position: center;
+ background-repeat: no-repeat;
+
+ &:hover{
+ background-color: $grey-light;
+ }
+ }
+
+ .stick{
+ background: $grey-lighter;
+
+ .btn{
+ border-left-width: 0;
+ padding: 0.5rem 1rem;
+ background-color: $grey-lighter;
+ background-position: center;
+ background-repeat: no-repeat;
+ @include transition(all, 0.15s, ease-in-out);
+
+ &:hover{
+ background-color: $grey-medium-light;
+ }
+
+ &.active{
+ background-color: $main-first;
+ }
+
+ img.icon{display: none;} // on efface pour afficher nos icones, mouhahaha !!
+
+
+ // actions
+ &#toggle-read{
+ background-image: url(icons/read.svg);
+ }
+ &#toggle-read.active{
+ background-image: url(icons/read-white.svg);
+ }
+
+ &#toggle-unread{
+ background-image: url(icons/unread.svg);
+ }
+ &#toggle-unread.active{
+ background-image: url(icons/unread-white.svg);
+ }
+
+ &#toggle-starred{
+ background-image: url(icons/starred.svg);
+ }
+ &#toggle-starred.active{
+ background-image: url(icons/starred-white.svg);
+ }
+
+ &#toggle-non-starred{
+ background-image: url(icons/non-starred.svg);
+ }
+ &#toggle-non-starred.active{
+ background-image: url(icons/non-starred-white.svg);
+ }
+
+ // read all
+ &.read_all{
+ background-color: $grey-lighter;
+ // min-height: 0;
+ color:$main-font-color;
+ padding: 5px 16px;
+ @include transition(all, 0.15s, ease-in-out);
+
+ &:hover{
+ background-color: $grey-medium-light;
+ }
+ }
+
+ // views
+ &.view-normal{
+ background-image: url(icons/view-list.svg);
+ }
+ &.view-normal.active{
+ background-image: url(icons/view-list-white.svg);
+ }
+
+ &.view-global{
+ background-image: url(icons/view-global.svg);
+ }
+ &.view-global.active{
+ background-image: url(icons/view-global-white.svg);
+ }
+
+ &.view-reader{
+ background-image: url(icons/view-reader.svg);
+ }
+ &.view-reader.active{
+ background-image: url(icons/view-reader-white.svg);
+ }
+
+ &.view-rss{
+ background-image: url(icons/rss.svg);
+ }
+
+ }
+ .dropdown {
+ a.dropdown-toggle{
+ border-left-width: 0;
+ background-image: url(icons/more.svg);
+ }
+ }
+
+ &#nav_menu_action{
+
+ }
+ &#nav_menu_read_all{
+
+ }
+ &#nav_menu_views{
+
+ }
+ }
+}
+
+
+#dropdown-query ~ .dropdown-menu .dropdown-header .icon {
+ vertical-align: middle;
+ background-color: $grey-medium-dark;
+ border-radius: 3px;
+}
+
+
+/*=== Content of feed articles */
+.content, .content.thin {
+ padding: 20px 10px;
+
+ font-size: 1.125rem;
+ line-height: 1.8rem;
+
+ h1.title, h1{
+
+ a{
+ color: $main-font-color;
+ font-family: "spectral";
+ font-size: 2rem;
+
+ &:hover{
+ color: $main-first;
+ text-decoration: none;
+ }
+ }
+ }
+ .author{
+ font-size: 1.125rem;
+ color: $light-font-color;
+ }
+ p, ul{
+ font-size: 1.125rem;
+ line-height: 1.8rem;
+ }
+ hr{
+ }
+ .content hr {
+ margin: 30px 10px;
+ height: 1px;
+ background: $grey-medium-light;
+ border: 0;
+ box-shadow: 0 2px 5px #ccc;
+ }
+
+ pre {
+ margin: 10px auto;
+ padding: 10px 20px;
+ overflow: auto;
+ background: $main-first-darker;
+ color: $white;
+ font-size: 0.9rem;
+ border-radius: 3px;
+
+ code {
+ background: transparent;
+ color: $white;
+ border: none;
+ }
+ }
+ code {
+ padding: 2px 5px;
+ color: $grey-light;
+ background: $grey-lighter;
+ border: 1px solid $grey-light;
+ border-radius: 3px;
+ }
+
+
+ blockquote {
+ display: block;
+ margin: 0;
+ padding: 5px 20px;
+ border-top: 1px solid $grey-medium-light;
+ border-bottom: 1px solid $grey-medium-light;
+ background: $grey-lighter;
+ color: $main-font-color;
+
+ p {
+ margin: 0;
+ }
+ }
+
+}
+
+
+/*=== Notification and actualize notification */
+.notification {
+ position: fixed;
+ top: auto;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ width: 100%;
+ height: 3rem;
+
+ padding: 1rem 0;
+ text-align: center;
+ // font-weight: bold;
+ font-size: 1em;
+ line-height: 3em;
+ z-index: 10;
+ vertical-align: middle;
+ background: $grey-medium-light;
+ color: $grey-dark;
+ // border-radius: 3px;
+ border: none;
+
+ .msg{
+ font-size: 1rem;
+ display: inline-block;
+ }
+
+ &.good {
+ background: $success-bg;
+ color: $white;
+ }
+ &.bad {
+ background: $alert-bg;
+ color: $white;
+ }
+ a.close {
+ padding: 0 15px;
+ line-height: 3em;
+ border-radius: 0 3px 3px 0;
+ }
+
+ &.good a.close:hover {
+ background: $success-text;
+ }
+ &.bad a.close:hover {
+ background: $alert-text;
+ }
+
+ &#actualizeProgress {
+ line-height: 2em;
+
+ br{
+ display: none;
+ }
+ }
+}
+
+
+/*=== Navigation menu (for articles) */
+#nav_entries {
+ margin: 0;
+ text-align: center;
+ line-height: 3em;
+ table-layout: fixed;
+ background: $sid-bg;
+}
diff --git a/p/themes/Ansum/_list-view.scss b/p/themes/Ansum/_list-view.scss
new file mode 100644
index 000000000..78f100203
--- /dev/null
+++ b/p/themes/Ansum/_list-view.scss
@@ -0,0 +1,92 @@
+/*=== Feed articles */
+.flux {
+ // border-left: 2px solid #ecf0f1;
+ background: $white;
+
+ @include transition(all, 0.15s, ease-in-out);
+
+ &:hover{
+ background: $grey-lighter;
+
+ &:not(.current):hover .item.title {
+ background: $grey-lighter;
+
+
+ }
+ }
+ &.current{
+ border-left-color: $main-first;
+ background: $white;
+ }
+ &.not_read{
+ background: $unread-bg; //--------------------
+ // border-left-color: #FF5300;
+
+ &:hover{
+ background: $unread-bg-light; //--------------------
+ }
+
+ &:not(.current):hover .item.title {
+ background: $unread-bg-light;
+
+
+ }
+ .item.title{
+ a{
+ color: $unread-font-color; //--------------------
+ }
+
+ }
+ .item.website{
+ a{
+ color: $unread-font-color; //--------------------
+ }
+ }
+ .item.date{
+ color: unquote($unread-font-color+"99"); //--------------------
+ }
+}
+
+ &.favorite {
+ background: $fav-light;
+ border-left-color: $fav-bg;
+
+ @include transition(all, 0.15s, ease-in-out);
+
+ &:not(.current):hover .item.title {
+ background: $fav-light;
+ }
+ }
+
+ .website{
+ a{
+ color: $main-font-color;
+ opacity: 0.75;
+ }
+
+ .favicon {
+ padding: 5px;
+ }
+ }
+ .date {
+ font-size: 0.85rem;
+ color: $main-font-color;
+ opacity: 0.75;
+ }
+
+ .bottom {
+ font-size: 1rem;
+ text-align: center;
+ }
+}
+
+.flux_header {
+ font-size: 1rem;
+ cursor: pointer;
+ border-top: 1px solid $grey-light;
+
+ .title {
+ font-size: 1rem;
+ }
+}
+
diff --git a/p/themes/Ansum/_logs.scss b/p/themes/Ansum/_logs.scss
new file mode 100644
index 000000000..ae1e24c6c
--- /dev/null
+++ b/p/themes/Ansum/_logs.scss
@@ -0,0 +1,34 @@
+/*=== LOGS */
+/*=========*/
+.loglist {
+ overflow: hidden;
+ border: 1px solid $grey-medium-dark;
+}
+.log {
+ margin: 10px 0;
+ padding: 5px 2%;
+ overflow: auto;
+ font-size: 0.8rem;
+ background: $grey-lighter;
+ color: $grey-dark;
+}
+
+.log > .date {
+ margin: 0 10px 0 0;
+ padding: 5px 10px;
+ border-radius: 20px;
+}
+.log.error > .date {
+ background: $alert-bg;
+ color: #fff;
+}
+.log.warning > .date {
+ background: $warning-bg;
+}
+.log.notice > .date {
+ background: $grey-light;
+}
+.log.debug > .date {
+ background: $main-first-darker;
+ color: $white;
+}
diff --git a/p/themes/Ansum/_mixins.scss b/p/themes/Ansum/_mixins.scss
new file mode 100644
index 000000000..4c82c438a
--- /dev/null
+++ b/p/themes/Ansum/_mixins.scss
@@ -0,0 +1,57 @@
+/* FUNCTIONS */
+
+//animation
+@mixin transition($target, $duration, $ease) {
+ -webkit-transition: $target $duration $ease;
+ -moz-transition: $target $duration $ease;
+ -o-transition: $target $duration $ease;
+ transition: $target $duration $ease;
+}
+
+//animation
+@mixin animation-delay($delay) {
+ -webkit-animation-delay: $delay;
+ /* Safari 4.0 - 8.0 */
+ animation-delay: $delay;
+}
+
+//animation
+@mixin animation($animate...) {
+ $max: length($animate);
+ $animations: '';
+ @for $i from 1 through $max {
+ $animations: #{$animations + nth($animate, $i)};
+ @if $i < $max {
+ $animations: #{$animations + ", "};
+ }
+ }
+ -webkit-animation: $animations;
+ -moz-animation: $animations;
+ -o-animation: $animations;
+ animation: $animations;
+}
+
+//keyframes
+@mixin keyframes($animationName) {
+ @-webkit-keyframes #{$animationName} {
+ @content;
+ }
+ @-moz-keyframes #{$animationName} {
+ @content;
+ }
+ @-o-keyframes #{$animationName} {
+ @content;
+ }
+ @keyframes #{$animationName} {
+ @content;
+ }
+}
+
+@mixin border-radius($radius: 4px){
+ -moz-border-radius: $radius;
+ -webkit-border-radius: $radius;
+ -ms-border-radius: $radius;
+ -o-border-radius: $radius;
+ -khtml-border-radius: $radius;
+ border-radius: $radius;
+}
diff --git a/p/themes/Ansum/_mobile.scss b/p/themes/Ansum/_mobile.scss
new file mode 100644
index 000000000..10b432241
--- /dev/null
+++ b/p/themes/Ansum/_mobile.scss
@@ -0,0 +1,170 @@
+/*=== MOBILE */
+/*===========*/
+@media(max-width: 840px) {
+ html, body{
+ // font-size: 1rem;
+ }
+ ul.nav{
+ .item{
+ width: 100%;
+
+ img{
+ display: none;
+ }
+ a{
+ display: inline-block;
+ padding: 1rem 1rem 1rem 2.5rem;
+ color: $sid-font-color;
+ width: 100%;
+
+ background: url("../../themes/icons/logout.svg") no-repeat $sid-bg-dark 3% center;
+
+ @include transition(all, 0.2s, ease-in-out);
+
+ &:hover,
+ &:active{
+ background: url("../../themes/icons/logout.svg") no-repeat $alert-bg 3% center;
+ text-decoration: none;
+ color: $white;
+ }
+ }
+
+ }
+
+ }
+ .aside {
+ @include transition(all, 0.2s, ease-in-out);
+
+ &.aside_feed {
+ padding: 0;
+ }
+
+ .tree .tree-folder .tree-folder-items .item a{
+ padding: 0.5rem 1rem;
+ }
+ }
+ .aside .toggle_aside,
+ #panel .close {
+ display: block;
+ width: 100%;
+ height: 50px;
+ line-height: 50px;
+ text-align: center;
+ background: $main-first-alt;
+ }
+
+ .header{
+ padding: 0.5rem;
+ .item{
+ &.title{
+ display: none;
+ }
+
+ &.search{
+ input{
+ width: 90%;
+ height: 3.5rem;
+
+ &:focus{
+ width: 100%;
+
+ }
+ }
+ .btn{
+ min-height: 49px;
+ padding: 0.5rem 2rem;
+ }
+ }
+ &.configure{
+ width: 2.75rem;
+ top: 3.125rem;
+ .dropdown{
+ .btn{
+ padding: 1.125rem;
+ }
+ }
+ }
+ }
+ }
+
+ .nav_menu{
+ .btn {
+ margin: 0;
+ padding: 0.85rem 1.25rem;
+ }
+ .stick {
+ margin: 0.5rem 0.5rem;
+
+ .btn{
+ margin: 0;
+ padding: 0.85rem 1.25rem;
+
+ &.read_all{
+ padding: 0.85rem 1.25rem;
+ }
+ }
+ }
+ .search {
+ display: none;
+ max-width: 97%;
+
+ .input{
+
+ max-width: 97%;
+ width: 90px;
+
+ &::focus{
+ width: 400px;
+ }
+ }
+ }
+ }
+ #stream{
+ .flux{
+ .flux_header{
+ padding: 0.5rem 0;
+ }
+ }
+ }
+
+
+
+ .day{
+ text-align: center;
+ padding: 1rem 0;
+ .name {
+ // font-size: 1.1rem;
+ display: block;
+ padding: 0;
+ width: 100%;
+ line-height: 1.5rem;
+ margin-bottom: 1rem;
+ }
+
+ }
+
+ .pagination {
+ margin: 0 0 3.5em;
+ }
+
+ #nav_entries{
+ line-height: 4.5rem;
+ }
+
+ .notification {
+ border-radius: 0;
+
+ a.close {
+ display: block;
+ left: 0;
+ background: transparent;
+ }
+ a.close:hover {
+ opacity: 0.5;
+ }
+ a.close .icon {
+ display: none;
+
+ }
+ }
+}
diff --git a/p/themes/Ansum/_reader-view.scss b/p/themes/Ansum/_reader-view.scss
new file mode 100644
index 000000000..4368908d6
--- /dev/null
+++ b/p/themes/Ansum/_reader-view.scss
@@ -0,0 +1,13 @@
+/*=== READER VIEW */
+/*================*/
+#stream.reader .flux {
+ padding: 0 0 50px;
+ background: $grey-light;
+ color: $main-font-color;
+ border: none;
+}
+#stream.reader .flux .author {
+ margin: 0 0 10px;
+ font-size: 90%;
+ color: $grey-medium-dark;
+}
diff --git a/p/themes/Ansum/_sidebar.scss b/p/themes/Ansum/_sidebar.scss
new file mode 100644
index 000000000..87d5bd1a9
--- /dev/null
+++ b/p/themes/Ansum/_sidebar.scss
@@ -0,0 +1,299 @@
+/*=== Tree */
+.tree {
+ margin: 10px 0;
+
+ &#sidebar{
+ scrollbar-color: rgba(255,255, 0, 0.1) rgba(0, 0, 0, 0.05);
+ scrollbar-color: unquote($sid-font-color+"33") unquote($sid-font-color+"22");
+
+
+ }
+
+
+ .tree-folder{
+ border-bottom: 1px solid $sid-sep;
+
+ -moz-box-shadow: inset -1px -11px 8px #00000033;
+ -webkit-box-shadow: inset -1px -11px 8px #00000033;
+ box-shadow: inset -1px -11px 8px #00000033;
+
+ .tree-folder-title {
+ position: relative;
+ background: $sid-bg;
+ font-size: 0.85rem;
+ letter-spacing: 1px;
+ padding: 12px 16px;
+ font-weight: 700;
+ text-transform: uppercase;
+
+ .title {
+ background: inherit;
+ color: $sid-font-color;
+ &:hover{
+ text-decoration: none;
+ }
+ }
+ }
+ &.active {
+ .tree-folder-title {
+ background: $sid-bg;
+ font-weight: bold;
+ }
+ }
+ .tree-folder-items {
+ background: $sid-bg-alt;
+
+ .item{
+ padding: 0 1rem;
+ line-height: 2.5rem;
+ font-size: 1rem;
+ font-weight: 400;
+ @include transition(all, 0.15s, ease-in-out);
+
+ &.active{
+ background: $sid-active;
+
+ .dropdown li a{
+ color: $main-font-color;
+
+ &:hover{
+ color: $sid-font-color;
+ }
+ }
+
+ a{
+ color: $sid-active-font;
+ }
+ }
+
+ &:hover{
+ background: $sid-bg-dark;
+ }
+
+ a{
+ text-decoration: none;
+ color: $sid-font-color;
+ }
+ }
+
+ .feed .item-title:not([data-unread="0"])::before {
+ content: attr(data-unread);
+ background: $sid-pills;
+ font-size: 0.75rem;
+ display: block;
+ float: left;
+ padding: 3px 4px;
+ text-align:center;
+ border-radius: 12px;
+ margin: 11px 6px 0 4px;
+ line-height: 0.75rem;
+ }
+ .feed .item-title:not([data-unread="0"]) {
+
+ }
+ }
+ }
+}
+
+/*=== Buttons */
+.stick {
+ vertical-align: middle;
+ font-size: 0;
+
+ input, .btn {
+ border-radius: 0;
+ }
+ .btn:first-child,
+ input:first-child {
+ border-radius: 5px 0 0 5px;
+ }
+ .btn:last-child, input:last-child, .btn + .dropdown > .btn {
+ border-radius: 0 5px 5px 0;
+ }
+ .btn + .btn,
+ .btn + input,
+ .btn + .dropdown > .btn,
+ input + .btn,
+ input + input,
+ input + .dropdown > .btn,
+ .dropdown + .btn,
+ .dropdown + input,
+ .dropdown + .dropdown > .btn {
+ border-left: 1px solid $grey-medium-light;
+ }
+
+}
+
+.aside {
+ background: $sid-bg;
+
+
+ &.aside_feed {
+ padding: 10px 0;
+ text-align: center;
+ background: $sid-bg;
+ border-right: 1px solid $sid-sep;
+ }
+ &.aside_feed .tree {
+ margin: 10px 0 50px;
+ }
+
+}
+
+
+/* Sidebar des pages de configuration */
+
+
+
+/*=== Navigation */
+
+.nav-list{
+ .nav-header,
+ .item{
+ height: 2.5em;
+ line-height: 2.5em;
+ font-size: 1rem;
+ }
+ .item{
+ background: $sid-bg;
+ @include transition(all, 0.15s, ease-in-out);
+ a{
+ padding: 0 1rem;
+ color: $sid-font-color;
+ }
+ .error{
+ a{
+ color: $alert-bg;
+ }
+ }
+ &:hover{
+ background: $sid-bg-dark;
+ color: $sid-font-color;
+
+ .error{
+ a{
+ color: $sid-font-color;
+ background: $main-first;
+ }
+ }
+ .empty{
+ a{
+ color: $sid-font-color;
+ background: $warning-bg;
+ }
+ }
+
+ a{
+ color: $sid-font-color;
+ text-decoration: none;
+ }
+ }
+ &.active{
+ background: $main-first;
+ color: $white;
+
+ .error{
+ a{
+ color: $white;
+ background: $main-first;
+ }
+ }
+
+ .empty{
+ a{
+ color: $white;
+ background: $warning-bg;
+ }
+ }
+
+ a{
+ color: $white;
+ text-decoration: none;
+ }
+ }
+
+ }
+ &.empty{
+ a{
+ color: $warning-bg;
+ }
+ }
+ .disable{
+ text-align: center;
+ background: $grey-lighter;
+ color: $grey-medium-dark;
+ }
+
+ .nav-header {
+ padding: 0 10px;
+ font-weight: bold;
+ color: $grey-dark;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ margin-top: 1rem;
+ }
+
+ .nav-form {
+ padding: 3px;
+ text-align: center;
+ }
+
+ .nav-head {
+ margin: 0;
+ text-align: right;
+ // background: #34495e;
+ color: $white;
+ a {
+ color: $white;
+ }
+ .item {
+ padding: 5px 10px;
+ font-size: 0.9rem;
+ line-height: 1.5rem;
+ }
+ }
+}
+
+/*=== Aside main page (categories) */
+.aside_feed .tree-folder-title > .title:not([data-unread="0"])::after {
+ position: absolute;
+ right: 0;
+ line-height: 1.5rem;
+ background: $sid-pills;
+ border-radius: 12px;
+ padding: 0 0.75rem;
+ margin: -0.5rem 1rem 0 0;
+ text-align: center;
+}
+
+.feed.item.empty.active {
+ background: $grey-dark;
+}
+.feed.item.error.active {
+ background: $grey-dark;
+}
+.feed.item.empty,
+.feed.item.empty > a {
+ color: $grey-dark;
+}
+.feed.item.error,
+.feed.item.error > a {
+ color: $grey-dark;
+}
+.feed.item.empty.active,
+.feed.item.error.active,
+.feed.item.empty.active > a,
+.feed.item.error.active > a {
+ color: $white;
+}
+.aside_feed .tree-folder-items .dropdown-menu::after {
+ left: 2px;
+}
+.aside_feed .tree-folder-items .item .dropdown-target:target ~ .dropdown-toggle > .icon,
+.aside_feed .tree-folder-items .item:hover .dropdown-toggle > .icon,
+.aside_feed .tree-folder-items .item.active .dropdown-toggle > .icon {
+ border-radius: 3px;
+}
+.aside_feed .stick #btn-importExport{
+ border-left-color: $sid-bg;
+}
diff --git a/p/themes/Ansum/_stats.scss b/p/themes/Ansum/_stats.scss
new file mode 100644
index 000000000..f287efa08
--- /dev/null
+++ b/p/themes/Ansum/_stats.scss
@@ -0,0 +1,27 @@
+/*=== STATISTICS */
+/*===============*/
+.stat {
+ margin: 10px 0 20px;
+}
+
+.stat th,
+.stat td,
+.stat tr {
+ border: none;
+}
+.stat > table td,
+.stat > table th {
+ border-bottom: 1px solid $grey-medium-light;
+}
+
+.stat > .horizontal-list {
+ margin: 0 0 5px;
+}
+.stat > .horizontal-list .item {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+.stat > .horizontal-list .item:first-child {
+ width: 270px;
+}
diff --git a/p/themes/Ansum/_tables.scss b/p/themes/Ansum/_tables.scss
new file mode 100644
index 000000000..608e19aca
--- /dev/null
+++ b/p/themes/Ansum/_tables.scss
@@ -0,0 +1,17 @@
+/*=== Tables */
+table {
+ border-collapse: collapse;
+}
+
+tr, th, td {
+ padding: 0.5em;
+ border: 1px solid $grey-medium-light;
+}
+th {
+ background: $grey-lighter;
+}
+form td,
+form th {
+ font-weight: normal;
+ text-align: center;
+}
diff --git a/p/themes/Ansum/_variables.scss b/p/themes/Ansum/_variables.scss
new file mode 100644
index 000000000..9fc4238ab
--- /dev/null
+++ b/p/themes/Ansum/_variables.scss
@@ -0,0 +1,53 @@
+// La couleur principale du thème
+$main-first: #ca7227; // couleur principale
+$main-first-alt: #b7641d; // var pour les hovers
+$main-first-light: #fdf6ef; // var light 1
+$main-first-lighter: #fefaf7; // var light 2
+$main-first-dark: #3c3835; // var pour les hovers
+$main-first-darker: #221f1d; // var pour les hovers
+
+// les couleurs de polices liées
+$main-font-color: #363330;
+$light-font-color: #6d655f;
+$white: #fff; // le blanc (des fois qu'on aurait envie de le teinter un peu)
+
+// toute la palette des gris, très utile
+// on essaiera de teinter ces gris suivant la couleur principale
+$grey-darker: #524236;
+$grey-dark: #766556;
+$grey-medium-dark: #bbaa99;
+$grey-medium: #d9ccbf;
+$grey-medium-light: #e4d8cc;
+$grey-light: #f5f0ec;
+$grey-lighter: #fcfaf8;
+
+$unread-font-color: #161a38;
+$unread-bg: #f2f6f8;
+$unread-bg-light: #fdfdfe;
+
+// les couleurs d'alertes (rouge, jaune, vert)
+$alert-bg: #f5633e; // la base
+$alert-light: #fde0d8; // +light
+$alert-text: #73341f; // +foncé
+
+$warning-bg: #f4f762;
+$warning-light: #fdfde0;
+$warning-text: #73762f;
+
+$success-bg: #10f5b2;
+$success-light: #cffdef;
+$success-text: #0c7556;
+
+// les favoris
+$fav-bg: #FFC300;
+$fav-light: #FFF6DA;
+
+// la couleur de sidebar, utile si on a envie d'un thème qui aurait une sidebar foncé, e.g.
+$sid-font-color: #363330; // la couleur de fond de la barre de gauche et du header
+$sid-bg: #fbf9f6; // le background général de la barre de gauche, et du header
+$sid-bg-alt: #f7f2ea; // le background de l'intérieur des groupes
+$sid-bg-dark: #efe3d3; // les hovers
+$sid-sep: #f0e7da; // les séparateurs
+$sid-active: $main-first; // la couleur active
+$sid-active-font: #FFFFFF; // la couleur active
+$sid-pills: rgba(35,35,0, 0.15); // les gélules
diff --git a/p/themes/Ansum/ansum.css b/p/themes/Ansum/ansum.css
new file mode 100644
index 000000000..bc4ae36b4
--- /dev/null
+++ b/p/themes/Ansum/ansum.css
@@ -0,0 +1,1299 @@
+@font-face {
+ font-family: "lato";
+ font-style: normal;
+ font-stretch: normal;
+ font-weight: 400;
+ src: local("Lato"), url("../fonts/LatoLatin-Regular.woff") format("woff"); }
+@font-face {
+ font-family: "lato";
+ font-style: italic;
+ font-stretch: normal;
+ font-weight: 400;
+ src: local("Lato"), url("../fonts/LatoLatin-Italic.woff") format("woff"); }
+@font-face {
+ font-family: "lato";
+ font-style: normal;
+ font-stretch: normal;
+ font-weight: 700;
+ src: local("Lato"), url("../fonts/LatoLatin-Bold.woff") format("woff"); }
+@font-face {
+ font-family: "lato";
+ font-style: italic;
+ font-stretch: normal;
+ font-weight: 700;
+ src: local("Lato"), url("../fonts/LatoLatin-BoldItalic.woff") format("woff"); }
+@font-face {
+ font-family: "spectral";
+ font-style: normal;
+ font-stretch: normal;
+ font-weight: 400;
+ src: local("Spectral"), url("../fonts/Spectral-Regular.woff") format("woff"); }
+@font-face {
+ font-family: "spectral";
+ font-style: italic;
+ font-stretch: normal;
+ font-weight: 400;
+ src: local("Spectral"), url("../fonts/Spectral-Italic.woff") format("woff"); }
+@font-face {
+ font-family: "spectral";
+ font-style: normal;
+ font-stretch: normal;
+ font-weight: 700;
+ src: local("Spectral"), url("../fonts/Spectral-Bold.woff") format("woff"); }
+@font-face {
+ font-family: "spectral";
+ font-style: italic;
+ font-stretch: normal;
+ font-weight: 700;
+ src: local("Spectral"), url("../fonts/Spectral-BoldItalic.woff") format("woff"); }
+/* FUNCTIONS */
+/* btns */
+.btn {
+ display: inline-block;
+ min-height: 38px;
+ min-width: 15px;
+ line-height: 25px;
+ margin: 0;
+ padding: 0.5rem 1.5rem;
+ font-size: 1rem;
+ vertical-align: middle;
+ cursor: pointer;
+ overflow: hidden;
+ background: #fcfaf8;
+ border-radius: 5px;
+ border: none;
+ color: #766556;
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ -o-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out; }
+ .btn.btn-important {
+ background: #ca7227;
+ color: #fff; }
+ .btn.btn-important:hover, .btn.btn-important:active {
+ background: #b7641d; }
+ .btn.btn-attention {
+ background: #f5633e;
+ color: #fff; }
+ .btn.btn-attention:hover, .btn.btn-attention:active {
+ background: #73341f; }
+ .btn:hover {
+ text-decoration: none; }
+
+a.btn {
+ min-height: 25px;
+ line-height: 25px; }
+
+/*=== Forms */
+legend {
+ display: inline-block;
+ width: auto;
+ margin: 2rem 0 1rem 0;
+ padding: 0;
+ font-size: 1rem;
+ clear: both;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ font-weight: 700; }
+
+label {
+ min-height: 25px;
+ padding: 5px 0;
+ cursor: pointer;
+ color: #766556; }
+
+textarea {
+ width: 360px;
+ height: 100px; }
+
+input, select, textarea, button {
+ font-family: "lato", "Helvetica", "Arial", sans-serif;
+ min-height: 25px;
+ padding: 5px 10px;
+ line-height: 25px;
+ vertical-align: middle;
+ background: #fff;
+ border: 1px solid #f5f0ec;
+ font-size: 1rem;
+ color: #766556;
+ border-radius: 2px; }
+
+option {
+ padding: 0 .5em; }
+
+input:focus, select:focus, textarea:focus {
+ color: #363330;
+ border-color: #ca7227; }
+
+input:invalid, select:invalid {
+ color: #f5633e;
+ border-color: #f5633e;
+ box-shadow: none; }
+
+input:disabled, select:disabled {
+ background: #f5f0ec; }
+
+input.extend {
+ transition: width 200ms linear;
+ -moz-transition: width 200ms linear;
+ -webkit-transition: width 200ms linear;
+ -o-transition: width 200ms linear;
+ -ms-transition: width 200ms linear; }
+
+.form-group {
+ padding: 5px;
+ border-radius: 3px; }
+ .form-group::after {
+ content: "";
+ display: block;
+ clear: both; }
+ .form-group .group-name {
+ padding: 10px 0;
+ text-align: right; }
+ .form-group .group-controls {
+ min-height: 25px;
+ padding: 5px 0; }
+ .form-group .group-controls .control {
+ line-height: 2.0em; }
+ .form-group table {
+ margin: 10px 0 0 220px; }
+ .form-group.form-actions {
+ margin: 15px 0 25px;
+ padding: 5px 0; }
+ .form-group.form-actions .btn {
+ margin: 0 0.5rem 0 0; }
+
+/*=== Tables */
+table {
+ border-collapse: collapse; }
+
+tr, th, td {
+ padding: 0.5em;
+ border: 1px solid #e4d8cc; }
+
+th {
+ background: #fcfaf8; }
+
+form td,
+form th {
+ font-weight: normal;
+ text-align: center; }
+
+/*=== COMPONENTS */
+/*===============*/
+/*=== Forms */
+/*=== Horizontal-list */
+.horizontal-list {
+ margin: 0;
+ padding: 0.1rem 0; }
+ .horizontal-list .item {
+ vertical-align: middle; }
+ .horizontal-list .item:first-child {
+ padding-left: 0.5rem; }
+
+/*=== Dropdown */
+.dropdown-menu {
+ background: #fcfaf8;
+ margin: 0;
+ font-size: 1rem;
+ text-align: left;
+ padding: 0.5rem 0 1rem 0;
+ border: none;
+ border-radius: 3px;
+ -webkit-box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35);
+ -moz-box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35);
+ box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35); }
+ .dropdown-menu::after {
+ content: "";
+ position: absolute;
+ top: -4px;
+ right: 13px;
+ width: 10px;
+ height: 10px;
+ z-index: -10;
+ transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ background: white; }
+ .dropdown-menu .dropdown-header {
+ margin: 1.75rem 0 0.5rem 2rem;
+ font-weight: bold;
+ text-align: left;
+ color: #766556;
+ text-transform: uppercase;
+ letter-spacing: 1px; }
+ .dropdown-menu .item {
+ -webkit-transition: all 0.075s ease-in-out;
+ -moz-transition: all 0.075s ease-in-out;
+ -o-transition: all 0.075s ease-in-out;
+ transition: all 0.075s ease-in-out; }
+ .dropdown-menu .item a, .dropdown-menu .item span, .dropdown-menu .item .as-link {
+ padding: 0 2rem;
+ line-height: 2.5em;
+ font-size: 1rem;
+ color: #363330; }
+ .dropdown-menu .item:hover {
+ background: #ca7227;
+ color: #fff; }
+ .dropdown-menu .item:hover a, .dropdown-menu .item:hover button {
+ text-decoration: none;
+ color: #fff; }
+ .dropdown-menu .item[aria-checked="true"] a::before {
+ font-weight: bold;
+ margin: 0 0 0 -14px; }
+ .dropdown-menu .input select, .dropdown-menu .input input {
+ margin: 0 auto 5px;
+ padding: 2px 5px;
+ border-radius: 3px; }
+ .dropdown-menu .separator {
+ margin: 0.75rem 0;
+ border-bottom: 1px solid #f5f0ec; }
+
+.tree .tree-folder .tree-folder-items .dropdown-menu .item,
+.tree .tree-folder .tree-folder-items .dropdown-menu .item {
+ padding: 0; }
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item a,
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item button,
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item a,
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item button {
+ color: #363330; }
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item a:hover,
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item button:hover,
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item a:hover,
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item button:hover {
+ color: #fff; }
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item:hover,
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item:hover {
+ background: #ca7227; }
+
+/*=== Alerts */
+.alert {
+ margin: 1rem 0;
+ padding: 1rem;
+ font-size: 1rem;
+ background: #fcfaf8;
+ border: 1px solid #d9ccbf;
+ border-radius: 3px;
+ color: #766556;
+ text-shadow: 0 0 1px #f5f0ec; }
+
+.alert-head {
+ font-size: 1.15em; }
+
+.alert > a {
+ text-decoration: underline;
+ color: inherit; }
+
+.alert-warn {
+ background: #fdfde0;
+ border: 1px solid #73762f33;
+ color: #73762f; }
+
+.alert-success {
+ background: #cffdef;
+ border: 1px solid #0c755633;
+ color: #0c7556; }
+
+.alert-error {
+ background: #fde0d8;
+ border: 1px solid #73341f33;
+ color: #73341f; }
+
+/*=== Pagination */
+.pagination {
+ text-align: center;
+ font-size: 0.8em;
+ background: #f5f0ec;
+ color: #363330; }
+ .pagination .item.pager-current {
+ font-weight: bold;
+ font-size: 1.5em;
+ background: #fbf9f6;
+ color: #f5f0ec; }
+ .pagination .item a {
+ display: block;
+ font-style: italic;
+ line-height: 3em;
+ text-decoration: none;
+ color: #363330; }
+ .pagination .item a:hover {
+ background: #363330;
+ color: #f5f0ec; }
+ .pagination .loading,
+ .pagination a:hover.loading {
+ font-size: 0;
+ background: url("loader.gif") center center no-repeat #34495e; }
+
+.content .pagination {
+ margin: 0;
+ padding: 0; }
+
+/*=== Boxes */
+.box {
+ border: none;
+ border-radius: 3px;
+ background: #fff;
+ -webkit-box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25);
+ -moz-box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25);
+ box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25); }
+ .box .box-title {
+ margin: 0;
+ padding: 5px 10px;
+ background: #f5f0ec;
+ color: #363330;
+ border-radius: 2px 2px 0 0; }
+ .box .box-title form input {
+ width: 85%; }
+ .box .box-title form .dropdown {
+ float: right; }
+ .box .box-title form .dropdown a.dropdown-toggle {
+ padding: 0;
+ background-image: url(icons/more.svg);
+ background-repeat: no-repeat;
+ background-position: right 8px;
+ border-radius: 0; }
+ .box .box-title form .dropdown a.dropdown-toggle img {
+ display: none; }
+ .box .box-content .item {
+ padding: 0.5rem 0.75rem;
+ font-size: 1rem;
+ color: #363330;
+ line-height: 1.7em;
+ border-bottom: 1px solid #f5f0ec; }
+ .box .box-content .item img {
+ margin-right: 0.75rem; }
+ .box .box-content .item .configure {
+ visibility: hidden;
+ width: 1.75rem;
+ height: 1.75rem;
+ display: block;
+ border-radius: 2px;
+ float: left;
+ margin-right: 0.5rem;
+ background: url("icons/cog.svg") no-repeat 4px 4px; }
+ .box .box-content .item .configure .icon {
+ vertical-align: middle;
+ border-radius: 3px;
+ display: none; }
+ .box .box-content .item .configure:hover {
+ background: url("icons/cog-white.svg") no-repeat 4px 4px #ca7227; }
+ .box .box-content .item:hover .configure {
+ visibility: visible; }
+ .box .box-content .item:last-child {
+ border-bottom: none; }
+
+/*=== "Load more" part */
+#bigMarkAsRead {
+ text-align: center;
+ text-decoration: none;
+ background: #fdf6ef;
+ color: #ca7227;
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ -o-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out; }
+ #bigMarkAsRead:hover {
+ background: #ca7227;
+ color: #fff; }
+ #bigMarkAsRead:hover .bigTick {
+ background: url(icons/tick-white.svg) center no-repeat; }
+ #bigMarkAsRead .bigTick {
+ margin: 0.5rem 0;
+ display: inline-block;
+ text-indent: -9999px;
+ background: url(icons/tick-color.svg) center no-repeat;
+ height: 64px;
+ width: 64px;
+ white-space: nowrap; }
+
+.formLogin {
+ background: #fbf9f6; }
+ .formLogin .header .configure {
+ padding-right: 1rem; }
+ .formLogin .header .configure img {
+ margin-right: 0.5rem; }
+ .formLogin .header .configure a.signin {
+ color: #fff; }
+ .formLogin h1 {
+ color: #fff; }
+ .formLogin form#crypto-form div {
+ margin-bottom: 1rem; }
+ .formLogin form#crypto-form div label {
+ font-size: 1rem;
+ color: #d9ccbf; }
+ .formLogin form#crypto-form div input {
+ background: #221f1d; }
+ .formLogin form#crypto-form div input:focus {
+ background: #fcfaf8;
+ color: #363330; }
+
+/*=== DIVERS */
+/*===========*/
+.aside.aside_feed .nav-form input,
+.aside.aside_feed .nav-form select {
+ width: 140px; }
+
+.aside.aside_feed .nav-form .dropdown .dropdown-menu {
+ right: -20px; }
+
+.aside.aside_feed .nav-form .dropdown .dropdown-menu::after {
+ right: 33px; }
+
+/*=== Tree */
+.tree {
+ margin: 10px 0; }
+ .tree#sidebar {
+ scrollbar-color: rgba(255, 255, 0, 0.1) rgba(0, 0, 0, 0.05);
+ scrollbar-color: #36333033 #36333022; }
+ .tree .tree-folder {
+ border-bottom: 1px solid #f0e7da;
+ -moz-box-shadow: inset -1px -11px 8px #00000033;
+ -webkit-box-shadow: inset -1px -11px 8px #00000033;
+ box-shadow: inset -1px -11px 8px #00000033; }
+ .tree .tree-folder .tree-folder-title {
+ position: relative;
+ background: #fbf9f6;
+ font-size: 0.85rem;
+ letter-spacing: 1px;
+ padding: 12px 16px;
+ font-weight: 700;
+ text-transform: uppercase; }
+ .tree .tree-folder .tree-folder-title .title {
+ background: inherit;
+ color: #363330; }
+ .tree .tree-folder .tree-folder-title .title:hover {
+ text-decoration: none; }
+ .tree .tree-folder.active .tree-folder-title {
+ background: #fbf9f6;
+ font-weight: bold; }
+ .tree .tree-folder .tree-folder-items {
+ background: #f7f2ea; }
+ .tree .tree-folder .tree-folder-items .item {
+ padding: 0 1rem;
+ line-height: 2.5rem;
+ font-size: 1rem;
+ font-weight: 400;
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ -o-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out; }
+ .tree .tree-folder .tree-folder-items .item.active {
+ background: #ca7227; }
+ .tree .tree-folder .tree-folder-items .item.active .dropdown li a {
+ color: #363330; }
+ .tree .tree-folder .tree-folder-items .item.active .dropdown li a:hover {
+ color: #363330; }
+ .tree .tree-folder .tree-folder-items .item.active a {
+ color: #FFFFFF; }
+ .tree .tree-folder .tree-folder-items .item:hover {
+ background: #efe3d3; }
+ .tree .tree-folder .tree-folder-items .item a {
+ text-decoration: none;
+ color: #363330; }
+ .tree .tree-folder .tree-folder-items .feed .item-title:not([data-unread="0"])::before {
+ content: attr(data-unread);
+ background: rgba(35, 35, 0, 0.15);
+ font-size: 0.75rem;
+ display: block;
+ float: left;
+ padding: 3px 4px;
+ text-align: center;
+ border-radius: 12px;
+ margin: 11px 6px 0 4px;
+ line-height: 0.75rem; }
+
+/*=== Buttons */
+.stick {
+ vertical-align: middle;
+ font-size: 0; }
+ .stick input, .stick .btn {
+ border-radius: 0; }
+ .stick .btn:first-child,
+ .stick input:first-child {
+ border-radius: 5px 0 0 5px; }
+ .stick .btn:last-child, .stick input:last-child, .stick .btn + .dropdown > .btn {
+ border-radius: 0 5px 5px 0; }
+ .stick .btn + .btn,
+ .stick .btn + input,
+ .stick .btn + .dropdown > .btn,
+ .stick input + .btn,
+ .stick input + input,
+ .stick input + .dropdown > .btn,
+ .stick .dropdown + .btn,
+ .stick .dropdown + input,
+ .stick .dropdown + .dropdown > .btn {
+ border-left: 1px solid #e4d8cc; }
+
+.aside {
+ background: #fbf9f6; }
+ .aside.aside_feed {
+ padding: 10px 0;
+ text-align: center;
+ background: #fbf9f6;
+ border-right: 1px solid #f0e7da; }
+ .aside.aside_feed .tree {
+ margin: 10px 0 50px; }
+
+/* Sidebar des pages de configuration */
+/*=== Navigation */
+.nav-list .nav-header,
+.nav-list .item {
+ height: 2.5em;
+ line-height: 2.5em;
+ font-size: 1rem; }
+.nav-list .item {
+ background: #fbf9f6;
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ -o-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out; }
+ .nav-list .item a {
+ padding: 0 1rem;
+ color: #363330; }
+ .nav-list .item .error a {
+ color: #f5633e; }
+ .nav-list .item:hover {
+ background: #efe3d3;
+ color: #363330; }
+ .nav-list .item:hover .error a {
+ color: #363330;
+ background: #ca7227; }
+ .nav-list .item:hover .empty a {
+ color: #363330;
+ background: #f4f762; }
+ .nav-list .item:hover a {
+ color: #363330;
+ text-decoration: none; }
+ .nav-list .item.active {
+ background: #ca7227;
+ color: #fff; }
+ .nav-list .item.active .error a {
+ color: #fff;
+ background: #ca7227; }
+ .nav-list .item.active .empty a {
+ color: #fff;
+ background: #f4f762; }
+ .nav-list .item.active a {
+ color: #fff;
+ text-decoration: none; }
+.nav-list.empty a {
+ color: #f4f762; }
+.nav-list .disable {
+ text-align: center;
+ background: #fcfaf8;
+ color: #bbaa99; }
+.nav-list .nav-header {
+ padding: 0 10px;
+ font-weight: bold;
+ color: #766556;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ margin-top: 1rem; }
+.nav-list .nav-form {
+ padding: 3px;
+ text-align: center; }
+.nav-list .nav-head {
+ margin: 0;
+ text-align: right;
+ color: #fff; }
+ .nav-list .nav-head a {
+ color: #fff; }
+ .nav-list .nav-head .item {
+ padding: 5px 10px;
+ font-size: 0.9rem;
+ line-height: 1.5rem; }
+
+/*=== Aside main page (categories) */
+.aside_feed .tree-folder-title > .title:not([data-unread="0"])::after {
+ position: absolute;
+ right: 0;
+ line-height: 1.5rem;
+ background: rgba(35, 35, 0, 0.15);
+ border-radius: 12px;
+ padding: 0 0.75rem;
+ margin: -0.5rem 1rem 0 0;
+ text-align: center; }
+
+.feed.item.empty.active {
+ background: #766556; }
+
+.feed.item.error.active {
+ background: #766556; }
+
+.feed.item.empty,
+.feed.item.empty > a {
+ color: #766556; }
+
+.feed.item.error,
+.feed.item.error > a {
+ color: #766556; }
+
+.feed.item.empty.active,
+.feed.item.error.active,
+.feed.item.empty.active > a,
+.feed.item.error.active > a {
+ color: #fff; }
+
+.aside_feed .tree-folder-items .dropdown-menu::after {
+ left: 2px; }
+
+.aside_feed .tree-folder-items .item .dropdown-target:target ~ .dropdown-toggle > .icon,
+.aside_feed .tree-folder-items .item:hover .dropdown-toggle > .icon,
+.aside_feed .tree-folder-items .item.active .dropdown-toggle > .icon {
+ border-radius: 3px; }
+
+.aside_feed .stick #btn-importExport {
+ border-left-color: #fbf9f6; }
+
+/*=== STRUCTURE */
+/*===============*/
+/*=== Header */
+.header {
+ background: #fbf9f6;
+ padding: 0.5rem 1.35rem;
+ display: block;
+ table-layout: none;
+ width: auto; }
+ .header .item {
+ vertical-align: middle; }
+ .header .item.title {
+ font-weight: 400;
+ width: 280px; }
+ .header .item.title h1 a {
+ text-decoration: none;
+ color: #363330;
+ font-size: 1rem;
+ text-transform: uppercase;
+ letter-spacing: 1px; }
+ .header .item.title h1 a img {
+ margin-right: 0.5rem; }
+ .header .item.search input {
+ width: 230px;
+ border-radius: 2px 0 0 2px;
+ background-color: #f7f2ea;
+ color: #363330;
+ border: none;
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ -o-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out; }
+ .header .item.search input:hover {
+ background-color: #efe3d3; }
+ .header .item.search input:focus {
+ width: 350px;
+ background-color: #fff;
+ color: #766556; }
+ .header .item.search .btn {
+ border-radius: 0 2px 2px 0;
+ background-color: #ca7227;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-image: url(icons/magnifier.svg);
+ border-left-width: 0;
+ width: 3rem;
+ min-height: 35px; }
+ .header .item.search .btn img {
+ display: none; }
+ .header .item.search .btn:hover {
+ background-color: #b7641d; }
+ .header .item.configure {
+ width: 2rem;
+ position: absolute;
+ right: 1rem;
+ top: 1.25rem;
+ text-align: center; }
+ .header .item.configure .btn {
+ background-color: transparent;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-image: url(icons/cog.svg);
+ padding: 0 0.5rem; }
+ .header .item.configure .btn img {
+ display: none; }
+
+/*=== Body */
+#global {
+ height: calc(100% - 85px); }
+
+/*=== Prompt (centered) */
+.prompt {
+ text-align: center; }
+
+.prompt label {
+ text-align: left; }
+
+.prompt form {
+ margin: 10px auto 20px auto;
+ width: 200px; }
+
+.prompt input {
+ margin: 5px auto;
+ width: 100%; }
+
+.prompt p {
+ margin: 20px 0; }
+
+/*=== New article notification */
+#new-article {
+ text-align: center;
+ font-size: 1rem;
+ background: #ca7227; }
+
+#new-article:hover {
+ background: #b7641d; }
+
+#new-article > a {
+ line-height: 3em;
+ font-weight: bold;
+ color: #fff; }
+
+#new-article > a:hover {
+ text-decoration: none; }
+
+/*=== Day indication */
+.day {
+ padding: 1rem 0 0 1.25rem;
+ font-weight: 700;
+ line-height: 3em;
+ letter-spacing: 1px;
+ text-transform: uppercase;
+ font-size: 0.875rem;
+ color: #6d655f; }
+ .day .name {
+ padding: 0 1rem 0 1rem;
+ font-size: 0.875rem;
+ color: #363330;
+ position: relative;
+ left: 0;
+ text-transform: uppercase; }
+
+/*=== Index menu */
+.nav_menu {
+ text-align: center;
+ padding: 5px 0; }
+ .nav_menu .btn {
+ border-left-width: 0;
+ padding: 0.5rem 1rem;
+ background-color: #fcfaf8;
+ background-position: center;
+ background-repeat: no-repeat; }
+ .nav_menu .btn:hover {
+ background-color: #f5f0ec; }
+ .nav_menu .stick {
+ background: #fcfaf8; }
+ .nav_menu .stick .btn {
+ border-left-width: 0;
+ padding: 0.5rem 1rem;
+ background-color: #fcfaf8;
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ -o-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out; }
+ .nav_menu .stick .btn:hover {
+ background-color: #e4d8cc; }
+ .nav_menu .stick .btn.active {
+ background-color: #ca7227; }
+ .nav_menu .stick .btn img.icon {
+ display: none; }
+ .nav_menu .stick .btn#toggle-read {
+ background-image: url(icons/read.svg); }
+ .nav_menu .stick .btn#toggle-read.active {
+ background-image: url(icons/read-white.svg); }
+ .nav_menu .stick .btn#toggle-unread {
+ background-image: url(icons/unread.svg); }
+ .nav_menu .stick .btn#toggle-unread.active {
+ background-image: url(icons/unread-white.svg); }
+ .nav_menu .stick .btn#toggle-starred {
+ background-image: url(icons/starred.svg); }
+ .nav_menu .stick .btn#toggle-starred.active {
+ background-image: url(icons/starred-white.svg); }
+ .nav_menu .stick .btn#toggle-non-starred {
+ background-image: url(icons/non-starred.svg); }
+ .nav_menu .stick .btn#toggle-non-starred.active {
+ background-image: url(icons/non-starred-white.svg); }
+ .nav_menu .stick .btn.read_all {
+ background-color: #fcfaf8;
+ color: #363330;
+ padding: 5px 16px;
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ -o-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out; }
+ .nav_menu .stick .btn.read_all:hover {
+ background-color: #e4d8cc; }
+ .nav_menu .stick .btn.view-normal {
+ background-image: url(icons/view-list.svg); }
+ .nav_menu .stick .btn.view-normal.active {
+ background-image: url(icons/view-list-white.svg); }
+ .nav_menu .stick .btn.view-global {
+ background-image: url(icons/view-global.svg); }
+ .nav_menu .stick .btn.view-global.active {
+ background-image: url(icons/view-global-white.svg); }
+ .nav_menu .stick .btn.view-reader {
+ background-image: url(icons/view-reader.svg); }
+ .nav_menu .stick .btn.view-reader.active {
+ background-image: url(icons/view-reader-white.svg); }
+ .nav_menu .stick .btn.view-rss {
+ background-image: url(icons/rss.svg); }
+ .nav_menu .stick .dropdown a.dropdown-toggle {
+ border-left-width: 0;
+ background-image: url(icons/more.svg); }
+
+#dropdown-query ~ .dropdown-menu .dropdown-header .icon {
+ vertical-align: middle;
+ background-color: #bbaa99;
+ border-radius: 3px; }
+
+/*=== Content of feed articles */
+.content, .content.thin {
+ padding: 20px 10px;
+ font-size: 1.125rem;
+ line-height: 1.8rem; }
+ .content h1.title a, .content h1 a, .content.thin h1.title a, .content.thin h1 a {
+ color: #363330;
+ font-family: "spectral";
+ font-size: 2rem; }
+ .content h1.title a:hover, .content h1 a:hover, .content.thin h1.title a:hover, .content.thin h1 a:hover {
+ color: #ca7227;
+ text-decoration: none; }
+ .content .author, .content.thin .author {
+ font-size: 1.125rem;
+ color: #6d655f; }
+ .content p, .content ul, .content.thin p, .content.thin ul {
+ font-size: 1.125rem;
+ line-height: 1.8rem; }
+ .content .content hr, .content.thin .content hr {
+ margin: 30px 10px;
+ height: 1px;
+ background: #e4d8cc;
+ border: 0;
+ box-shadow: 0 2px 5px #ccc; }
+ .content pre, .content.thin pre {
+ margin: 10px auto;
+ padding: 10px 20px;
+ overflow: auto;
+ background: #221f1d;
+ color: #fff;
+ font-size: 0.9rem;
+ border-radius: 3px; }
+ .content pre code, .content.thin pre code {
+ background: transparent;
+ color: #fff;
+ border: none; }
+ .content code, .content.thin code {
+ padding: 2px 5px;
+ color: #f5f0ec;
+ background: #fcfaf8;
+ border: 1px solid #f5f0ec;
+ border-radius: 3px; }
+ .content blockquote, .content.thin blockquote {
+ display: block;
+ margin: 0;
+ padding: 5px 20px;
+ border-top: 1px solid #e4d8cc;
+ border-bottom: 1px solid #e4d8cc;
+ background: #fcfaf8;
+ color: #363330; }
+ .content blockquote p, .content.thin blockquote p {
+ margin: 0; }
+
+/*=== Notification and actualize notification */
+.notification {
+ position: fixed;
+ top: auto;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ width: 100%;
+ height: 3rem;
+ padding: 1rem 0;
+ text-align: center;
+ font-size: 1em;
+ line-height: 3em;
+ z-index: 10;
+ vertical-align: middle;
+ background: #e4d8cc;
+ color: #766556;
+ border: none; }
+ .notification .msg {
+ font-size: 1rem;
+ display: inline-block; }
+ .notification.good {
+ background: #10f5b2;
+ color: #fff; }
+ .notification.bad {
+ background: #f5633e;
+ color: #fff; }
+ .notification a.close {
+ padding: 0 15px;
+ line-height: 3em;
+ border-radius: 0 3px 3px 0; }
+ .notification.good a.close:hover {
+ background: #0c7556; }
+ .notification.bad a.close:hover {
+ background: #73341f; }
+ .notification#actualizeProgress {
+ line-height: 2em; }
+ .notification#actualizeProgress br {
+ display: none; }
+
+/*=== Navigation menu (for articles) */
+#nav_entries {
+ margin: 0;
+ text-align: center;
+ line-height: 3em;
+ table-layout: fixed;
+ background: #fbf9f6; }
+
+/*=== Feed articles */
+.flux {
+ background: #fff;
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ -o-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out; }
+ .flux:hover {
+ background: #fcfaf8; }
+ .flux:hover:not(.current):hover .item.title {
+ background: #fcfaf8; }
+ .flux.current {
+ border-left-color: #ca7227;
+ background: #fff; }
+ .flux.not_read {
+ background: #f2f6f8; }
+ .flux.not_read:hover {
+ background: #fdfdfe; }
+ .flux.not_read:not(.current):hover .item.title {
+ background: #fdfdfe; }
+ .flux.not_read .item.title a {
+ color: #161a38; }
+ .flux.not_read .item.website a {
+ color: #161a38; }
+ .flux.not_read .item.date {
+ color: #161a3899; }
+ .flux.favorite {
+ background: #FFF6DA;
+ border-left-color: #FFC300;
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ -o-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out; }
+ .flux.favorite:not(.current):hover .item.title {
+ background: #FFF6DA; }
+ .flux .website a {
+ color: #363330;
+ opacity: 0.75; }
+ .flux .website .favicon {
+ padding: 5px; }
+ .flux .date {
+ font-size: 0.85rem;
+ color: #363330;
+ opacity: 0.75; }
+ .flux .bottom {
+ font-size: 1rem;
+ text-align: center; }
+
+.flux_header {
+ font-size: 1rem;
+ cursor: pointer;
+ border-top: 1px solid #f5f0ec; }
+ .flux_header .title {
+ font-size: 1rem; }
+
+/*=== GLOBAL VIEW */
+/*================*/
+#stream .box.category:not([data-unread="0"]) .box-title .title {
+ font-weight: bold; }
+#stream .box.category .box-title {
+ background: none;
+ padding: 1.5rem; }
+ #stream .box.category .box-title a.title {
+ font-weight: normal;
+ text-decoration: none;
+ text-align: left;
+ font-size: 1rem;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ color: #766556; }
+ #stream .box.category .box-title a.title:not([data-unread="0"])::after {
+ position: absolute;
+ top: 1.75rem;
+ right: 0;
+ line-height: 1.5rem;
+ background: #f5f0ec;
+ border-radius: 12px;
+ padding: 0 0.75rem;
+ margin: -0.5rem 1rem 0 0;
+ text-align: center; }
+ #stream .box.category .box-title a.title:hover {
+ color: #ca7227; }
+#stream .box.category .box-content {
+ padding-bottom: 0.5rem; }
+ #stream .box.category .box-content .item.feed {
+ font-size: 1rem;
+ padding: 0.5rem 1.5rem; }
+ #stream .box.category .box-content .item.feed a {
+ color: #363330;
+ font-weight: 400; }
+ #stream .box.category .box-content .item.feed a:hover {
+ color: #ca7227;
+ text-decoration: none; }
+
+#overlay {
+ background: rgba(0, 0, 0, 0.65); }
+
+#panel {
+ top: 3rem;
+ right: 3rem;
+ bottom: 3rem;
+ left: 3rem;
+ border-radius: 3px; }
+
+/*=== READER VIEW */
+/*================*/
+#stream.reader .flux {
+ padding: 0 0 50px;
+ background: #f5f0ec;
+ color: #363330;
+ border: none; }
+
+#stream.reader .flux .author {
+ margin: 0 0 10px;
+ font-size: 90%;
+ color: #bbaa99; }
+
+/*=== Configuration pages */
+.post {
+ padding: 1rem 2rem;
+ font-size: 1rem; }
+ .post form {
+ margin: 1rem 0; }
+ .post form .horizontal-list {
+ margin-bottom: 0.5rem; }
+ .post.content {
+ max-width: 550px; }
+ .post h1, .post h2 {
+ font-size: 3rem;
+ margin-top: 1.75rem;
+ font-weight: 300;
+ line-height: 1.2em;
+ color: #363330; }
+ .post a[href="./"] {
+ display: inline-block;
+ min-width: 15px;
+ line-height: 25px;
+ margin: 0;
+ padding: 0.75rem 1.5rem;
+ font-size: 1rem;
+ vertical-align: middle;
+ cursor: pointer;
+ overflow: hidden;
+ background: #fcfaf8;
+ border: 1px solid #e4d8cc;
+ border-radius: 5px;
+ color: #766556; }
+ .post a[href="./"]:hover {
+ text-decoration: none;
+ background: #ca7227;
+ color: white;
+ border: 1px solid #ca7227; }
+
+#slider {
+ border-left: none;
+ -webkit-box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35);
+ -moz-box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35);
+ box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35); }
+
+.slide-container .properties {
+ background: rgba(0, 0, 0, 0.75);
+ border: 0;
+ padding: 1rem;
+ color: white; }
+ .slide-container .properties .page-number {
+ right: 1rem;
+ top: 1rem; }
+
+/*=== LOGS */
+/*=========*/
+.loglist {
+ overflow: hidden;
+ border: 1px solid #bbaa99; }
+
+.log {
+ margin: 10px 0;
+ padding: 5px 2%;
+ overflow: auto;
+ font-size: 0.8rem;
+ background: #fcfaf8;
+ color: #766556; }
+
+.log > .date {
+ margin: 0 10px 0 0;
+ padding: 5px 10px;
+ border-radius: 20px; }
+
+.log.error > .date {
+ background: #f5633e;
+ color: #fff; }
+
+.log.warning > .date {
+ background: #f4f762; }
+
+.log.notice > .date {
+ background: #f5f0ec; }
+
+.log.debug > .date {
+ background: #221f1d;
+ color: #fff; }
+
+/*=== STATISTICS */
+/*===============*/
+.stat {
+ margin: 10px 0 20px; }
+
+.stat th,
+.stat td,
+.stat tr {
+ border: none; }
+
+.stat > table td,
+.stat > table th {
+ border-bottom: 1px solid #e4d8cc; }
+
+.stat > .horizontal-list {
+ margin: 0 0 5px; }
+
+.stat > .horizontal-list .item {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis; }
+
+.stat > .horizontal-list .item:first-child {
+ width: 270px; }
+
+/*=== MOBILE */
+/*===========*/
+@media (max-width: 840px) {
+ ul.nav .item {
+ width: 100%; }
+ ul.nav .item img {
+ display: none; }
+ ul.nav .item a {
+ display: inline-block;
+ padding: 1rem 1rem 1rem 2.5rem;
+ color: #363330;
+ width: 100%;
+ background: url("../../themes/icons/logout.svg") no-repeat #efe3d3 3% center;
+ -webkit-transition: all 0.2s ease-in-out;
+ -moz-transition: all 0.2s ease-in-out;
+ -o-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out; }
+ ul.nav .item a:hover, ul.nav .item a:active {
+ background: url("../../themes/icons/logout.svg") no-repeat #f5633e 3% center;
+ text-decoration: none;
+ color: #fff; }
+
+ .aside {
+ -webkit-transition: all 0.2s ease-in-out;
+ -moz-transition: all 0.2s ease-in-out;
+ -o-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out; }
+ .aside.aside_feed {
+ padding: 0; }
+ .aside .tree .tree-folder .tree-folder-items .item a {
+ padding: 0.5rem 1rem; }
+
+ .aside .toggle_aside,
+ #panel .close {
+ display: block;
+ width: 100%;
+ height: 50px;
+ line-height: 50px;
+ text-align: center;
+ background: #b7641d; }
+
+ .header {
+ padding: 0.5rem; }
+ .header .item.title {
+ display: none; }
+ .header .item.search input {
+ width: 90%;
+ height: 3.5rem; }
+ .header .item.search input:focus {
+ width: 100%; }
+ .header .item.search .btn {
+ min-height: 49px;
+ padding: 0.5rem 2rem; }
+ .header .item.configure {
+ width: 2.75rem;
+ top: 3.125rem; }
+ .header .item.configure .dropdown .btn {
+ padding: 1.125rem; }
+
+ .nav_menu .btn {
+ margin: 0;
+ padding: 0.85rem 1.25rem; }
+ .nav_menu .stick {
+ margin: 0.5rem 0.5rem; }
+ .nav_menu .stick .btn {
+ margin: 0;
+ padding: 0.85rem 1.25rem; }
+ .nav_menu .stick .btn.read_all {
+ padding: 0.85rem 1.25rem; }
+ .nav_menu .search {
+ display: none;
+ max-width: 97%; }
+ .nav_menu .search .input {
+ max-width: 97%;
+ width: 90px; }
+ .nav_menu .search .input::focus {
+ width: 400px; }
+
+ #stream .flux .flux_header {
+ padding: 0.5rem 0; }
+
+ .day {
+ text-align: center;
+ padding: 1rem 0; }
+ .day .name {
+ display: block;
+ padding: 0;
+ width: 100%;
+ line-height: 1.5rem;
+ margin-bottom: 1rem; }
+
+ .pagination {
+ margin: 0 0 3.5em; }
+
+ #nav_entries {
+ line-height: 4.5rem; }
+
+ .notification {
+ border-radius: 0; }
+ .notification a.close {
+ display: block;
+ left: 0;
+ background: transparent; }
+ .notification a.close:hover {
+ opacity: 0.5; }
+ .notification a.close .icon {
+ display: none; } }
+html, body {
+ font-family: "lato", "Helvetica", "Arial", sans-serif;
+ font-size: 0.875rem; }
+
+/*=== GENERAL */
+/*============*/
+html, body {
+ height: 100%;
+ background: #f5f0ec; }
+
+/*=== Links */
+a, button.as-link {
+ outline: none;
+ color: #ca7227; }
+
+/*# sourceMappingURL=ansum.css.map */
diff --git a/p/themes/Ansum/ansum.css.map b/p/themes/Ansum/ansum.css.map
new file mode 100644
index 000000000..7b1c15ade
--- /dev/null
+++ b/p/themes/Ansum/ansum.css.map
@@ -0,0 +1,7 @@
+{
+"version": 3,
+"mappings": "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",
+"sources": ["_fonts.scss","_mixins.scss","_forms.scss","_variables.scss","_tables.scss","_components.scss","_divers.scss","_sidebar.scss","_layout.scss","_list-view.scss","_global-view.scss","_reader-view.scss","_configuration.scss","_logs.scss","_stats.scss","_mobile.scss","ansum.scss"],
+"names": [],
+"file": "ansum.css"
+} \ No newline at end of file
diff --git a/p/themes/Ansum/ansum.scss b/p/themes/Ansum/ansum.scss
new file mode 100644
index 000000000..1a538b50a
--- /dev/null
+++ b/p/themes/Ansum/ansum.scss
@@ -0,0 +1,51 @@
+@import "fonts";
+@import "mixins";
+@import "variables";
+
+@import "forms";
+@import "tables";
+@import "components";
+
+@import "divers";
+
+@import "sidebar";
+@import "layout";
+@import "list-view";
+@import "global-view";
+@import "reader-view";
+
+@import "configuration";
+
+@import "logs";
+@import "stats";
+
+@import "mobile";
+
+html, body{
+ font-family: "lato", "Helvetica", "Arial", sans-serif;
+ font-size: 0.875rem;
+}
+
+@charset "UTF-8";
+
+/*=== GENERAL */
+/*============*/
+html, body {
+ height: 100%;
+ background: $grey-light;
+}
+
+/*=== Links */
+a, button.as-link {
+ outline: none;
+ color: $main-first;
+}
+
+
+
+
+
+
+
+
+
diff --git a/p/themes/Ansum/icons/cog-white.svg b/p/themes/Ansum/icons/cog-white.svg
new file mode 100644
index 000000000..3df8c2d70
--- /dev/null
+++ b/p/themes/Ansum/icons/cog-white.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16" version="1.1">
+<g id="surface2">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(94.901961%,94.901961%,94.901961%);fill-opacity:1;" d="M 6.667969 0 L 6.667969 2.839844 C 6.179688 2.964844 5.71875 3.160156 5.292969 3.410156 L 3.285156 1.402344 L 1.402344 3.285156 L 3.410156 5.292969 C 3.160156 5.71875 2.964844 6.179688 2.839844 6.667969 L 0 6.667969 L 0 9.332031 L 2.839844 9.332031 C 2.964844 9.820312 3.15625 10.28125 3.410156 10.707031 L 1.402344 12.714844 L 3.285156 14.597656 L 5.292969 12.589844 C 5.71875 12.839844 6.179688 13.03125 6.667969 13.15625 L 6.667969 16 L 9.332031 16 L 9.332031 13.15625 C 9.820312 13.03125 10.28125 12.839844 10.703125 12.589844 L 12.714844 14.597656 L 14.601562 12.714844 L 12.589844 10.707031 C 12.839844 10.28125 13.03125 9.820312 13.160156 9.332031 L 16 9.332031 L 16 6.667969 L 13.160156 6.667969 C 13.03125 6.179688 12.839844 5.71875 12.589844 5.292969 L 14.601562 3.285156 L 12.714844 1.398438 L 10.703125 3.410156 C 10.28125 3.15625 9.820312 2.964844 9.332031 2.839844 L 9.332031 0 Z M 8 5.332031 C 9.472656 5.332031 10.664062 6.527344 10.664062 8 C 10.664062 9.472656 9.472656 10.664062 8 10.664062 C 6.527344 10.664062 5.332031 9.472656 5.332031 8 C 5.332031 6.527344 6.527344 5.332031 8 5.332031 Z M 8 5.332031 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Ansum/icons/cog.svg b/p/themes/Ansum/icons/cog.svg
new file mode 100644
index 000000000..aa56d862b
--- /dev/null
+++ b/p/themes/Ansum/icons/cog.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="17"
+ viewBox="0 0 16 17"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="cog.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="14.75"
+ inkscape:cx="8"
+ inkscape:cy="8"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 6.667969,1 v 2.839844 c -0.488281,0.125 -0.949219,0.320312 -1.375,0.570312 L 3.285156,2.402344 1.402344,4.285156 3.410156,6.292969 C 3.160156,6.71875 2.964844,7.179688 2.839844,7.664062 H 0 v 2.667969 h 2.839844 c 0.125,0.488281 0.316406,0.949219 0.570312,1.375 l -2.007812,2.007813 1.882812,1.882812 2.007813,-2.007812 c 0.425781,0.25 0.886719,0.441406 1.375,0.566406 V 17 h 2.664062 v -2.84375 c 0.488281,-0.125 0.949219,-0.316406 1.371094,-0.566406 l 2.011719,2.007812 1.886718,-1.882812 -2.011718,-2.007813 c 0.25,-0.425781 0.441406,-0.886719 0.570312,-1.375 H 16 V 7.664062 H 13.160156 C 13.03125,7.179688 12.839844,6.71875 12.589844,6.292969 L 14.601562,4.285156 12.714844,2.398438 10.703125,4.410156 C 10.28125,4.15625 9.820312,3.964844 9.332031,3.839844 V 1 Z M 8,6.332031 c 1.472656,0 2.664062,1.195313 2.664062,2.667969 0,1.472656 -1.191406,2.664062 -2.664062,2.664062 C 6.527344,11.664062 5.332031,10.472656 5.332031,9 5.332031,7.527344 6.527344,6.332031 8,6.332031 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/down-white.svg b/p/themes/Ansum/icons/down-white.svg
new file mode 100644
index 000000000..df05a4704
--- /dev/null
+++ b/p/themes/Ansum/icons/down-white.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="10"
+ viewBox="0 0 16 10"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="down-white.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="26.222222"
+ inkscape:cx="7.5"
+ inkscape:cy="4.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 1.800781,0.347656 0.386719,1.761719 8.09375,9.46875 15.800781,1.761719 14.386719,0.347656 8.09375,6.640625 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/down.svg b/p/themes/Ansum/icons/down.svg
new file mode 100644
index 000000000..5c732e199
--- /dev/null
+++ b/p/themes/Ansum/icons/down.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="10"
+ viewBox="0 0 16 10"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="down.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="26.222222"
+ inkscape:cx="7.5"
+ inkscape:cy="4.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 1.800781,0.347656 0.386719,1.761719 8.09375,9.46875 15.800781,1.761719 14.386719,0.347656 8.09375,6.640625 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/icon.svg b/p/themes/Ansum/icons/icon.svg
new file mode 100644
index 000000000..7900c0a79
--- /dev/null
+++ b/p/themes/Ansum/icons/icon.svg
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="40"
+ height="40"
+ viewBox="0 0 40 40"
+ version="1.1"
+ id="svg13"
+ sodipodi:docname="icon-orange.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata19">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs17" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview15"
+ showgrid="false"
+ inkscape:zoom="2.085965"
+ inkscape:cx="-43.005158"
+ inkscape:cy="2.3651309"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg13" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path2"
+ d="m 25.15625,20 c 0,-2.847656 -2.308594,-5.15625 -5.15625,-5.15625 -2.847656,0 -5.15625,2.308594 -5.15625,5.15625 0,2.847656 2.308594,5.15625 5.15625,5.15625 2.847656,0 5.15625,-2.308594 5.15625,-5.15625 z m 0,0"
+ style="fill:#ca7227;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4"
+ d="M 19.558594,0.0078125 C 17.125,0.0585938 14.679688,0.554688 12.347656,1.523438 4.878906,4.617188 0,11.917969 0,20 H 3.75 C 3.75,13.421875 7.703125,7.503906 13.78125,4.988281 19.859375,2.46875 26.839844,3.859375 31.488281,8.511719 36.140625,13.160156 37.53125,20.140625 35.011719,26.21875 32.496094,32.296875 26.578125,36.25 20,36.25 V 40 c 8.082031,0 15.382812,-4.878906 18.476562,-12.347656 3.09375,-7.46875 1.382813,-16.078125 -4.335937,-21.792969 -3.929687,-3.929687 -9.226563,-5.96875 -14.582031,-5.8515625 z m 0,0"
+ style="fill:#cb7428;fill-opacity:0.25098041;fill-rule:nonzero;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path6"
+ d="M 20.683594,6.582031 C 18.726562,6.480469 16.738281,6.804688 14.859375,7.585938 9.839844,9.664062 6.5625,14.570312 6.5625,20 h 3.75 c 0,-3.921875 2.355469,-7.449219 5.980469,-8.949219 3.625,-1.503906 7.78125,-0.675781 10.558593,2.097657 2.773438,2.777343 3.601563,6.933593 2.097657,10.558593 -1.5,3.625 -5.027344,5.980469 -8.949219,5.980469 v 3.75 c 5.429688,0 10.335938,-3.277344 12.414062,-8.296875 C 34.492188,20.125 33.339844,14.335938 29.5,10.5 27.101562,8.097656 23.941406,6.75 20.683594,6.582031 Z m 0,0"
+ style="fill:#cb7428;fill-opacity:0.25098041;fill-rule:nonzero;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path8"
+ d="m 20,0 v 3.75 c 8.996094,0 16.25,7.253906 16.25,16.25 H 40 C 40,8.976562 31.023438,0 20,0 Z m 0,0"
+ style="fill:#ca7227;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path10"
+ d="m 20,6.5625 v 3.75 c 5.371094,0 9.6875,4.316406 9.6875,9.6875 h 3.75 C 33.4375,12.601562 27.398438,6.5625 20,6.5625 Z m 0,0"
+ style="fill:#ca7227;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+</svg>
diff --git a/p/themes/Ansum/icons/link-white.svg b/p/themes/Ansum/icons/link-white.svg
new file mode 100644
index 000000000..c6baadc85
--- /dev/null
+++ b/p/themes/Ansum/icons/link-white.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="17"
+ height="17"
+ viewBox="0 0 17 17"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="link-white.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="13.882353"
+ inkscape:cx="8.5"
+ inkscape:cy="8.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2"
+ transform="translate(0,-1)">
+ <path
+ style="fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 8.5,1 C 3.816406,1 0,4.816406 0,9.5 0,14.183594 3.816406,18 8.5,18 13.183594,18 17,14.183594 17,9.5 17,4.816406 13.183594,1 8.5,1 Z M 5.480469,3.742188 C 4.609375,4.957031 3.78125,6.570312 3.558594,8.5 H 2.082031 C 2.402344,6.421875 3.691406,4.679688 5.480469,3.742188 Z m 6.035156,0 C 13.308594,4.679688 14.597656,6.421875 14.914062,8.5 H 13.4375 C 13.21875,6.570312 12.390625,4.957031 11.515625,3.742188 Z M 7.5,4.4375 V 8.5 H 5.578125 C 5.839844,6.835938 6.695312,5.4375 7.5,4.4375 Z m 2,0 c 0.804688,1 1.660156,2.398438 1.921875,4.0625 H 9.5 Z M 2.082031,10.5 h 1.472657 c 0.1875,1.828125 0.863281,3.371094 1.589843,4.566406 C 3.53125,14.09375 2.382812,12.441406 2.082031,10.5 Z m 3.488281,0 H 7.5 v 4.460938 C 6.734375,13.957031 5.820312,12.40625 5.570312,10.5 Z M 9.5,10.5 h 1.917969 C 11.160156,12.171875 10.304688,13.570312 9.5,14.5625 Z m 3.9375,0 h 1.476562 c -0.316406,2.078125 -1.605468,3.824219 -3.398437,4.757812 0.875,-1.214843 1.703125,-2.828124 1.921875,-4.757812 z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/link.svg b/p/themes/Ansum/icons/link.svg
new file mode 100644
index 000000000..44ee847b0
--- /dev/null
+++ b/p/themes/Ansum/icons/link.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="17" height="17" viewBox="0 0 17 17" version="1.1">
+<g id="surface2">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(32.54902%,32.54902%,32.54902%);fill-opacity:1;" d="M 8.5 0 C 3.816406 0 0 3.816406 0 8.5 C 0 13.183594 3.816406 17 8.5 17 C 13.183594 17 17 13.183594 17 8.5 C 17 3.816406 13.183594 0 8.5 0 Z M 5.480469 2.742188 C 4.609375 3.957031 3.78125 5.570312 3.558594 7.5 L 2.082031 7.5 C 2.402344 5.421875 3.691406 3.679688 5.480469 2.742188 Z M 11.515625 2.742188 C 13.308594 3.679688 14.597656 5.421875 14.914062 7.5 L 13.4375 7.5 C 13.21875 5.570312 12.390625 3.957031 11.515625 2.742188 Z M 7.5 3.4375 L 7.5 7.5 L 5.578125 7.5 C 5.839844 5.835938 6.695312 4.4375 7.5 3.4375 Z M 9.5 3.4375 C 10.304688 4.4375 11.160156 5.835938 11.421875 7.5 L 9.5 7.5 Z M 2.082031 9.5 L 3.554688 9.5 C 3.742188 11.328125 4.417969 12.871094 5.144531 14.066406 C 3.53125 13.09375 2.382812 11.441406 2.082031 9.5 Z M 5.570312 9.5 L 7.5 9.5 L 7.5 13.960938 C 6.734375 12.957031 5.820312 11.40625 5.570312 9.5 Z M 9.5 9.5 L 11.417969 9.5 C 11.160156 11.171875 10.304688 12.570312 9.5 13.5625 Z M 13.4375 9.5 L 14.914062 9.5 C 14.597656 11.578125 13.308594 13.324219 11.515625 14.257812 C 12.390625 13.042969 13.21875 11.429688 13.4375 9.5 Z M 13.4375 9.5 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Ansum/icons/magnifier.svg b/p/themes/Ansum/icons/magnifier.svg
new file mode 100644
index 000000000..ae3732c69
--- /dev/null
+++ b/p/themes/Ansum/icons/magnifier.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16" version="1.1">
+<g id="surface2">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(94.901961%,94.901961%,94.901961%);fill-opacity:1;" d="M 9.464844 0 C 5.867188 0 2.929688 2.9375 2.929688 6.535156 C 2.929688 7.972656 3.40625 9.300781 4.199219 10.382812 L 0.710938 13.867188 L 0 14.578125 L 1.421875 16 L 2.132812 15.289062 L 5.617188 11.800781 C 6.699219 12.59375 8.027344 13.070312 9.464844 13.070312 C 13.0625 13.070312 16 10.132812 16 6.535156 C 16 2.9375 13.0625 0 9.464844 0 Z M 9.464844 2.011719 C 11.976562 2.011719 13.988281 4.023438 13.988281 6.535156 C 13.988281 9.046875 11.976562 11.058594 9.464844 11.058594 C 6.953125 11.058594 4.941406 9.046875 4.941406 6.535156 C 4.941406 4.023438 6.953125 2.011719 9.464844 2.011719 Z M 9.464844 2.011719 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Ansum/icons/more.svg b/p/themes/Ansum/icons/more.svg
new file mode 100644
index 000000000..6e505e71b
--- /dev/null
+++ b/p/themes/Ansum/icons/more.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="3"
+ height="15"
+ viewBox="0 0 3 15"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="more.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="16.857143"
+ inkscape:cx="1.5"
+ inkscape:cy="7"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 0,0 H 3 V 3 H 0 Z M 0,6 H 3 V 9 H 0 Z m 0,6 h 3 v 3 H 0 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/non-starred-white.svg b/p/themes/Ansum/icons/non-starred-white.svg
new file mode 100644
index 000000000..9bd48c801
--- /dev/null
+++ b/p/themes/Ansum/icons/non-starred-white.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="18"
+ height="16"
+ viewBox="0 0 18 16"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="non-starred-white.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="15.733333"
+ inkscape:cx="8.5"
+ inkscape:cy="7.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2"
+ transform="translate(0,-1)">
+ <path
+ style="fill:none;stroke:#ffffff;stroke-width:0.26879001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+ d="m 107.00018,143.49705 1.62575,-0.0138 0.49783,-1.54754 0.51657,1.54119 1.62575,-0.004 -1.30706,0.96642 0.50616,1.54542 -1.32372,-0.94419 -1.31226,0.95901 0.48845,-1.55072 z m 0,0"
+ transform="matrix(3.750673,0,0,3.690326,-399.91249,-522.49621)"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/non-starred.svg b/p/themes/Ansum/icons/non-starred.svg
new file mode 100644
index 000000000..9d49930c0
--- /dev/null
+++ b/p/themes/Ansum/icons/non-starred.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="18"
+ height="16"
+ viewBox="0 0 18 16"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="non-starred.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="15.733333"
+ inkscape:cx="8.5"
+ inkscape:cy="7.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:none;stroke:#515151;stroke-width:0.26879001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+ d="m 107.00018,150.49714 1.62575,-0.0138 0.49783,-1.5486 0.51657,1.54225 1.62575,-0.004 -1.30706,0.96642 0.50616,1.54542 -1.32372,-0.94419 -1.31226,0.95901 0.48845,-1.55072 z m 0,0"
+ transform="matrix(3.750673,0,0,3.690326,-399.91249,-548.8718)"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/read-grey.svg b/p/themes/Ansum/icons/read-grey.svg
new file mode 100644
index 000000000..4857aca02
--- /dev/null
+++ b/p/themes/Ansum/icons/read-grey.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="18" viewBox="0 0 16 18" version="1.1">
+<g id="surface2">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(80.784314%,80.784314%,80.784314%);fill-opacity:1;" d="M 8 0 L 0.460938 4.933594 L 0 5.234375 L 0 18 L 16 18 L 16 5.234375 Z M 8 2.417969 L 13.625 6.101562 L 8 10.601562 L 2.371094 6.101562 Z M 2 8.390625 L 8 13.1875 L 14 8.390625 L 14 15.964844 L 2 15.964844 Z M 2 8.390625 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Ansum/icons/read-white.svg b/p/themes/Ansum/icons/read-white.svg
new file mode 100644
index 000000000..578facdc7
--- /dev/null
+++ b/p/themes/Ansum/icons/read-white.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="18"
+ viewBox="0 0 16 18"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="read-white.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="13.882353"
+ inkscape:cx="8"
+ inkscape:cy="8.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 8,0 0.460938,4.933594 0,5.234375 V 18 H 16 V 5.234375 Z m 0,2.417969 5.628906,3.683593 -5.628906,4.5 -5.628906,-4.5 z M 2,8.390625 8,13.1875 14,8.390625 v 7.574219 H 2 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/read.svg b/p/themes/Ansum/icons/read.svg
new file mode 100644
index 000000000..d583cce03
--- /dev/null
+++ b/p/themes/Ansum/icons/read.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="18"
+ viewBox="0 0 16 18"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="read.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="13.882353"
+ inkscape:cx="8"
+ inkscape:cy="8.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 8,0 0.460938,4.933594 0,5.234375 V 18 H 16 V 5.234375 Z m 0,2.417969 5.628906,3.683593 -5.628906,4.5 -5.628906,-4.5 z M 2,8.390625 8,13.1875 14,8.390625 v 7.574219 H 2 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/refresh.svg b/p/themes/Ansum/icons/refresh.svg
new file mode 100644
index 000000000..f23fbf4a2
--- /dev/null
+++ b/p/themes/Ansum/icons/refresh.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="17"
+ height="17"
+ viewBox="0 0 17 17"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="refresh.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="14.75"
+ inkscape:cx="8"
+ inkscape:cy="8"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface3">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 15,0 V 3.042969 C 12.386719,-0.0820312 7.859375,-0.945312 4.25,1.132812 0.1875,3.480469 -1.207031,8.679688 1.140625,12.746094 3.488281,16.8125 8.683594,18.207031 12.75,15.859375 c 0.140625,-0.08594 0.28125,-0.179687 0.417969,-0.273437 L 12.171875,13.859375 C 12.035156,13.953125 11.894531,14.042969 11.75,14.125 8.640625,15.921875 4.667969,14.855469 2.871094,11.746094 1.078125,8.636719 2.140625,4.660156 5.25,2.863281 8.191406,1.167969 11.941406,2.019531 13.859375,4.820312 L 14.035156,5 H 10 v 2 h 7 V 0 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/rss-white.svg b/p/themes/Ansum/icons/rss-white.svg
new file mode 100644
index 000000000..b7fbf9987
--- /dev/null
+++ b/p/themes/Ansum/icons/rss-white.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="17"
+ height="17"
+ viewBox="0 0 17 17"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="rss-white.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="8"
+ inkscape:cx="-5.9380772"
+ inkscape:cy="10.889349"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2"
+ transform="translate(0,-1)">
+ <path
+ style="fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 4.246094,15.433594 c 0,1.101562 -0.898438,2 -2,2 -1.105469,0 -2,-0.898438 -2,-2 0,-1.105469 0.894531,-2 2,-2 1.101562,0 2,0.894531 2,2 m 5,2 c 0,-4.984375 -4.019532,-9 -9,-9 v -2 c 6.0625,0 11,4.933594 11,11 z m 5.5,0 c 0,-8.019532 -6.480469,-14.5 -14.5,-14.5 v -2 c 9.097656,0 16.5,7.398437 16.5,16.5 z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/rss.svg b/p/themes/Ansum/icons/rss.svg
new file mode 100644
index 000000000..7044bbaa4
--- /dev/null
+++ b/p/themes/Ansum/icons/rss.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="17"
+ height="17"
+ viewBox="0 0 17 17"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="rss.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="14.75"
+ inkscape:cx="8"
+ inkscape:cy="8"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2"
+ transform="translate(0,-1)">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 4.246094,15.433594 c 0,1.101562 -0.898438,2 -2,2 -1.105469,0 -2,-0.898438 -2,-2 0,-1.105469 0.894531,-2 2,-2 1.101562,0 2,0.894531 2,2 m 5,2 c 0,-4.984375 -4.019532,-9 -9,-9 v -2 c 6.0625,0 11,4.933594 11,11 z m 5.5,0 c 0,-8.019532 -6.480469,-14.5 -14.5,-14.5 v -2 c 9.097656,0 16.5,7.398437 16.5,16.5 z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/starred-white.svg b/p/themes/Ansum/icons/starred-white.svg
new file mode 100644
index 000000000..896dd1eeb
--- /dev/null
+++ b/p/themes/Ansum/icons/starred-white.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="15"
+ viewBox="0 0 16 15"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="starred-white.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="16.857143"
+ inkscape:cx="7.5"
+ inkscape:cy="7"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 0.410156,6.054688 6.507812,6.003906 8.375,0.292969 10.3125,5.980469 16.410156,5.964844 11.507812,9.53125 13.40625,15.234375 8.441406,11.75 3.519531,15.289062 5.351562,9.566406 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/starred.svg b/p/themes/Ansum/icons/starred.svg
new file mode 100644
index 000000000..3b0bf8cb8
--- /dev/null
+++ b/p/themes/Ansum/icons/starred.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="15" viewBox="0 0 16 15" version="1.1">
+<g id="surface2">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(32.54902%,32.54902%,32.54902%);fill-opacity:1;" d="M 0 5.765625 L 6.097656 5.710938 L 7.964844 0 L 9.902344 5.691406 L 16 5.671875 L 11.097656 9.242188 L 13 14.941406 L 8.035156 11.457031 L 3.109375 15 L 4.945312 9.277344 Z M 0 5.765625 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Ansum/icons/tick-color.svg b/p/themes/Ansum/icons/tick-color.svg
new file mode 100644
index 000000000..fe0c28a84
--- /dev/null
+++ b/p/themes/Ansum/icons/tick-color.svg
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="48"
+ height="48"
+ viewBox="0 0 48 48"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="tick-color.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="4.9166667"
+ inkscape:cx="24"
+ inkscape:cy="24"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="surface3" />
+ <g
+ id="surface3">
+ <path
+ style="stroke:none;fill-rule:nonzero;fill:#ca7227;fill-opacity:1"
+ d="M 24 0 C 10.746094 0 0 10.746094 0 24 C 0 37.253906 10.746094 48 24 48 C 37.253906 48 48 37.253906 48 24 C 48 10.746094 37.253906 0 24 0 Z M 36.96875 14.488281 C 37.585938 14.472656 38.148438 14.835938 38.386719 15.402344 C 38.628906 15.96875 38.5 16.625 38.0625 17.054688 L 22.058594 33.058594 C 21.472656 33.644531 20.523438 33.644531 19.941406 33.058594 L 12.941406 26.0625 C 12.386719 25.472656 12.402344 24.550781 12.972656 23.976562 C 13.542969 23.402344 14.464844 23.386719 15.058594 23.9375 L 21.003906 29.878906 L 35.945312 14.9375 C 36.214844 14.664062 36.582031 14.5 36.96875 14.488281 Z M 36.96875 14.488281 "
+ id="path2" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/tick-white.svg b/p/themes/Ansum/icons/tick-white.svg
new file mode 100644
index 000000000..0bcc26f47
--- /dev/null
+++ b/p/themes/Ansum/icons/tick-white.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48" viewBox="0 0 48 48" version="1.1">
+<g id="surface3">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 24 0 C 10.746094 0 0 10.746094 0 24 C 0 37.253906 10.746094 48 24 48 C 37.253906 48 48 37.253906 48 24 C 48 10.746094 37.253906 0 24 0 Z M 36.96875 14.488281 C 37.585938 14.472656 38.148438 14.835938 38.386719 15.402344 C 38.628906 15.96875 38.5 16.625 38.0625 17.054688 L 22.058594 33.058594 C 21.472656 33.644531 20.523438 33.644531 19.941406 33.058594 L 12.941406 26.0625 C 12.386719 25.472656 12.402344 24.550781 12.972656 23.976562 C 13.542969 23.402344 14.464844 23.386719 15.058594 23.9375 L 21.003906 29.878906 L 35.945312 14.9375 C 36.214844 14.664062 36.582031 14.5 36.96875 14.488281 Z M 36.96875 14.488281 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Ansum/icons/tick.svg b/p/themes/Ansum/icons/tick.svg
new file mode 100644
index 000000000..9c436e7a0
--- /dev/null
+++ b/p/themes/Ansum/icons/tick.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="47" viewBox="0 0 48 47" version="1.1">
+<g id="surface3">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(18.823529%,19.215686%,21.176471%);fill-opacity:1;" d="M 24 0 C 10.746094 0 0 10.746094 0 24 C 0 37.253906 10.746094 48 24 48 C 37.253906 48 48 37.253906 48 24 C 48 10.746094 37.253906 0 24 0 Z M 36.96875 14.488281 C 37.585938 14.472656 38.148438 14.835938 38.386719 15.402344 C 38.628906 15.96875 38.5 16.625 38.0625 17.054688 L 22.058594 33.058594 C 21.472656 33.644531 20.523438 33.644531 19.941406 33.058594 L 12.941406 26.0625 C 12.386719 25.472656 12.402344 24.550781 12.972656 23.976562 C 13.542969 23.402344 14.464844 23.386719 15.058594 23.9375 L 21.003906 29.878906 L 35.945312 14.9375 C 36.214844 14.664062 36.582031 14.5 36.96875 14.488281 Z M 36.96875 14.488281 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Ansum/icons/unread-grey.svg b/p/themes/Ansum/icons/unread-grey.svg
new file mode 100644
index 000000000..1981cf92c
--- /dev/null
+++ b/p/themes/Ansum/icons/unread-grey.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="13"
+ viewBox="0 0 16 13"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="unread.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="19.666667"
+ inkscape:cx="8"
+ inkscape:cy="6"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 0,0 V 13 H 16 V 0 Z m 3.257812,2 h 9.484376 L 8,5.726562 Z M 2,3.554688 8,8.269531 14,3.554688 V 11 H 2 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/unread-white.svg b/p/themes/Ansum/icons/unread-white.svg
new file mode 100644
index 000000000..6623924ab
--- /dev/null
+++ b/p/themes/Ansum/icons/unread-white.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="13" viewBox="0 0 16 13" version="1.1">
+<g id="surface2">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(94.901961%,94.901961%,94.901961%);fill-opacity:1;" d="M 0 0 L 0 13 L 16 13 L 16 0 Z M 3.257812 2 L 12.742188 2 L 8 5.726562 Z M 2 3.558594 L 8 8.273438 L 14 3.558594 L 14 11 L 2 11 Z M 2 3.558594 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Ansum/icons/unread.svg b/p/themes/Ansum/icons/unread.svg
new file mode 100644
index 000000000..5c6c3ac8e
--- /dev/null
+++ b/p/themes/Ansum/icons/unread.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="13"
+ viewBox="0 0 16 13"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="unread-main-color.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="19.666667"
+ inkscape:cx="8"
+ inkscape:cy="6"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#3366cc;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 0,0 V 13 H 16 V 0 Z m 3.257812,2 h 9.484376 L 8,5.726562 Z M 2,3.554688 8,8.273438 14,3.554688 V 11 H 2 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/up-white.svg b/p/themes/Ansum/icons/up-white.svg
new file mode 100644
index 000000000..e19d1e1d9
--- /dev/null
+++ b/p/themes/Ansum/icons/up-white.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="10"
+ viewBox="0 0 16 10"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="up-white.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="26.222222"
+ inkscape:cx="7.5"
+ inkscape:cy="4.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 14.386719,9.46875 15.800781,8.054688 8.09375,0.347656 0.386719,8.054688 1.800781,9.46875 8.09375,3.175781 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/up.svg b/p/themes/Ansum/icons/up.svg
new file mode 100644
index 000000000..306b076e9
--- /dev/null
+++ b/p/themes/Ansum/icons/up.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="10"
+ viewBox="0 0 16 10"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="up.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="26.222222"
+ inkscape:cx="7.5"
+ inkscape:cy="4.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 14.386719,9.46875 15.800781,8.054688 8.09375,0.347656 0.386719,8.054688 1.800781,9.46875 8.09375,3.175781 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/view-global-white.svg b/p/themes/Ansum/icons/view-global-white.svg
new file mode 100644
index 000000000..950267f6a
--- /dev/null
+++ b/p/themes/Ansum/icons/view-global-white.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15" height="15" viewBox="0 0 15 15" version="1.1">
+<g id="surface2">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(94.901961%,94.901961%,94.901961%);fill-opacity:1;" d="M 6 12 L 9 12 L 9 15 L 6 15 Z M 12 12 L 15 12 L 15 15 L 12 15 Z M 0 12 L 3 12 L 3 15 L 0 15 Z M 6 6 L 9 6 L 9 9 L 6 9 Z M 12 6 L 15 6 L 15 9 L 12 9 Z M 0 6 L 3 6 L 3 9 L 0 9 Z M 6 0 L 9 0 L 9 3 L 6 3 Z M 12 0 L 15 0 L 15 3 L 12 3 Z M 0 0 L 3 0 L 3 3 L 0 3 Z M 0 0 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Ansum/icons/view-global.svg b/p/themes/Ansum/icons/view-global.svg
new file mode 100644
index 000000000..08632a190
--- /dev/null
+++ b/p/themes/Ansum/icons/view-global.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="15"
+ height="15"
+ viewBox="0 0 15 15"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="view-global.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="16.857143"
+ inkscape:cx="7.5"
+ inkscape:cy="7"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 6,12 h 3 v 3 H 6 Z m 6,0 h 3 v 3 H 12 Z M 0,12 h 3 v 3 H 0 Z M 6,6 H 9 V 9 H 6 Z m 6,0 h 3 V 9 H 12 Z M 0,6 H 3 V 9 H 0 Z M 6,0 H 9 V 3 H 6 Z m 6,0 h 3 V 3 H 12 Z M 0,0 H 3 V 3 H 0 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/view-list-white.svg b/p/themes/Ansum/icons/view-list-white.svg
new file mode 100644
index 000000000..c76fc298b
--- /dev/null
+++ b/p/themes/Ansum/icons/view-list-white.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15" height="14" viewBox="0 0 15 14" version="1.1">
+<g id="surface2">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(94.901961%,94.901961%,94.901961%);fill-opacity:1;" d="M 0 12 L 15 12 L 15 14 L 0 14 Z M 0 6 L 15 6 L 15 8 L 0 8 Z M 0 0 L 15 0 L 15 2 L 0 2 Z M 0 0 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Ansum/icons/view-list.svg b/p/themes/Ansum/icons/view-list.svg
new file mode 100644
index 000000000..bcea01055
--- /dev/null
+++ b/p/themes/Ansum/icons/view-list.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="15"
+ height="14"
+ viewBox="0 0 15 14"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="view-list.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="16.857143"
+ inkscape:cx="7.5"
+ inkscape:cy="7"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2"
+ transform="translate(0,-1)">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 0,13 h 15 v 2 H 0 Z M 0,7 H 15 V 9 H 0 Z M 0,1 H 15 V 3 H 0 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/view-reader-white.svg b/p/themes/Ansum/icons/view-reader-white.svg
new file mode 100644
index 000000000..70175c623
--- /dev/null
+++ b/p/themes/Ansum/icons/view-reader-white.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="14"
+ height="16"
+ viewBox="0 0 14 16"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="view-reader-white.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="15.733333"
+ inkscape:cx="7"
+ inkscape:cy="7.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 3.5,10 H 8 v 1.5 H 3.5 Z m 0,-3 h 7 v 1.5 h -7 z m 0,-3 h 7 v 1.5 h -7 z M 0,16 V 0 H 14 V 16 Z M 2,14 H 12 V 2 H 2 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/icons/view-reader.svg b/p/themes/Ansum/icons/view-reader.svg
new file mode 100644
index 000000000..7471037d9
--- /dev/null
+++ b/p/themes/Ansum/icons/view-reader.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="14"
+ height="16"
+ viewBox="0 0 14 16"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="view-reader.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="8"
+ inkscape:cx="-1.7138348"
+ inkscape:cy="3.5263348"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 3.5,10 H 8 v 1.5 H 3.5 Z m 0,-3 h 7 v 1.5 h -7 z m 0,-3 h 7 v 1.5 h -7 z M 0,16 V 0 H 14 V 16 Z M 2,14 H 12 V 2 H 2 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Ansum/loader.gif b/p/themes/Ansum/loader.gif
new file mode 100644
index 000000000..ce36565b3
--- /dev/null
+++ b/p/themes/Ansum/loader.gif
Binary files differ
diff --git a/p/themes/Ansum/metadata.json b/p/themes/Ansum/metadata.json
new file mode 100644
index 000000000..c76c3fa9c
--- /dev/null
+++ b/p/themes/Ansum/metadata.json
@@ -0,0 +1,7 @@
+{
+ "name": "Ansum",
+ "author": "Thomas Guesnon",
+ "description": "Thème sablonneux",
+ "version": 0.1,
+ "files": ["_template.css", "ansum.css"]
+}
diff --git a/p/themes/Ansum/sass.sh b/p/themes/Ansum/sass.sh
new file mode 100644
index 000000000..a653acace
--- /dev/null
+++ b/p/themes/Ansum/sass.sh
@@ -0,0 +1 @@
+sass --watch ansum.scss:ansum.css
diff --git a/p/themes/Ansum/thumbs/original.png b/p/themes/Ansum/thumbs/original.png
new file mode 100644
index 000000000..6351ee51e
--- /dev/null
+++ b/p/themes/Ansum/thumbs/original.png
Binary files differ
diff --git a/p/themes/Mapco/_components.scss b/p/themes/Mapco/_components.scss
new file mode 100644
index 000000000..cf8cb5e91
--- /dev/null
+++ b/p/themes/Mapco/_components.scss
@@ -0,0 +1,352 @@
+/*=== COMPONENTS */
+/*===============*/
+/*=== Forms */
+// parti dans _forms.scss
+
+/*=== Horizontal-list */
+.horizontal-list {
+ margin: 0;
+ padding: 0.1rem 0;
+
+ .item{
+ vertical-align: middle;
+
+ &:first-child{
+ padding-left: 0.5rem;
+ }
+
+ }
+}
+
+/*=== Dropdown */
+.dropdown-menu {
+ background: $grey-lighter;
+ margin: 0;
+ font-size: 1rem;
+ text-align: left;
+ padding: 0.5rem 0 1rem 0;
+ border: none;
+ border-radius: 3px;
+
+ -webkit-box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35);
+ -moz-box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35);
+ box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35);
+
+ &::after {
+ content: "";
+ position: absolute;
+ top: -4px;
+ right: 13px;
+ width: 10px;
+ height: 10px;
+ z-index: -10;
+ transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ background: white;
+ // border-top: 1px solid #95a5a6;
+ // border-left: 1px solid #95a5a6;
+ }
+
+ .dropdown-header {
+ // padding: 0 5px 5px;
+ margin: 1.75rem 0 0.5rem 2rem;
+ font-weight: bold;
+ text-align: left;
+ color: $grey-dark;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+
+
+ }
+
+ .item{
+ @include transition(all, 0.075s, ease-in-out);
+ a, span, .as-link{
+ padding: 0 2rem;
+ line-height: 2.5em;
+ font-size: 1rem;
+ color: $main-font-color;
+ }
+ &:hover{
+ background: $main-first;
+ color: $white;
+
+ a, button{
+ text-decoration: none;
+ color: $white;
+ }
+ }
+ &[aria-checked="true"]{
+ a::before{
+ font-weight: bold;
+ margin: 0 0 0 -14px;
+ }
+ }
+ }
+ .input{
+ select, input{
+ margin: 0 auto 5px;
+ padding: 2px 5px;
+ border-radius: 3px;
+ }
+ }
+ .separator {
+ margin: 0.75rem 0;
+ border-bottom: 1px solid $grey-light;
+ // display: none;
+ }
+
+}
+.tree .tree-folder .tree-folder-items .dropdown-menu,
+.tree .tree-folder .tree-folder-items .dropdown-menu{
+ // tout ça sert à restaurer l'apparence du dropdown dans un contexte de sidebar sombre
+
+ .item{
+ padding: 0;
+
+ a,
+ button{
+ color: $main-font-color;
+
+ &:hover{
+ color: $white;
+ }
+ }
+ &:hover{
+ background: $main-first;
+ }
+ }
+}
+
+
+
+
+/*=== Alerts */
+.alert {
+ margin: 1rem 0;
+ // width: 100%;
+ padding: 1rem;
+ font-size: 1rem;
+ background: $grey-lighter;
+ border: 1px solid $grey-medium;
+ border-radius: 3px;
+ color: $grey-dark;
+ text-shadow: 0 0 1px $grey-light;
+}
+.alert-head {
+ font-size: 1.15em;
+}
+.alert > a {
+ text-decoration: underline;
+ color: inherit;
+}
+.alert-warn {
+ background: $warning-light;
+ border: 1px solid unquote($warning-text+'33'); // on ajoute l'opacité à la fin
+ color: $warning-text;
+}
+.alert-success {
+ background: $success-light;
+ border: 1px solid unquote($success-text+'33');
+ color: $success-text;
+}
+.alert-error {
+ background: $alert-light;
+ border: 1px solid unquote($alert-text+'33');
+ color: $alert-text;
+}
+
+/*=== Pagination */
+.pagination {
+ text-align: center;
+ font-size: 0.8em;
+ background: $grey-light;
+ color: $main-font-color;
+
+ .item{
+ &.pager-current {
+ font-weight: bold;
+ font-size: 1.5em;
+ background: $sid-bg;
+ color: $grey-light;
+ }
+ a {
+ display: block;
+ font-style: italic;
+ line-height: 3em;
+ text-decoration: none;
+ color: $main-font-color;
+
+ &:hover{
+ background: $main-font-color;
+ color: $grey-light;
+ }
+ }
+ }
+
+ .loading,
+ a:hover.loading {
+ font-size: 0;
+ background: url("loader.gif") center center no-repeat #34495e;
+ }
+}
+.content .pagination {
+ margin: 0;
+ padding: 0;
+}
+
+
+/*=== Boxes */
+.box {
+ // border: 1px solid #ddd;
+ border: none;
+ border-radius: 3px;
+ background: $white;
+
+ -webkit-box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.25);
+ -moz-box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.25);
+ box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.25);
+
+ .box-title {
+ margin: 0;
+ padding: 5px 10px;
+ background: $grey-light;
+ color: $main-font-color;
+ // border-bottom: 1px solid #ddd;
+ border-radius: 2px 2px 0 0;
+
+ form{
+ input{
+ width: 85%;
+ }
+ .dropdown{
+ float: right;
+ a.dropdown-toggle{
+ padding: 0;
+ background-image: url(icons/more.svg);
+ background-repeat: no-repeat;
+ background-position: right 8px;
+ // float: right;
+ border-radius: 0;
+ img{
+ display: none;
+ }
+ }
+ }
+ }
+ }
+ .box-content {
+ // max-height: 260px;
+
+ .item {
+ padding: 0.5rem 0.75rem;
+ font-size: 1rem;
+ color: $main-font-color;
+ line-height: 1.7em;
+ border-bottom: 1px solid $grey-light;
+
+ img{
+ margin-right: 0.75rem;
+ }
+
+ .configure {
+ visibility: hidden;
+ width: 1.75rem;
+ height: 1.75rem;
+ display: block;
+ border-radius: 2px;
+ float: left;
+ margin-right: 0.5rem;
+ background: url("icons/cog.svg") no-repeat 4px 4px;
+
+ .icon {
+ vertical-align: middle;
+ border-radius: 3px;
+ display: none;
+ }
+ &:hover{
+ // background: $main-first;
+ background: url("icons/cog-white.svg") no-repeat 4px 4px $main-first;
+ }
+ }
+ &:hover .configure {
+ visibility: visible;
+ }
+ }
+ .item:last-child{
+ border-bottom: none;
+ }
+ }
+}
+
+/*=== "Load more" part */
+#bigMarkAsRead {
+ text-align: center;
+ text-decoration: none;
+ background: $main-first-light;
+ color: $main-first;
+
+ @include transition(all, 0.15s, ease-in-out);
+
+ &:hover {
+ background: $main-first;
+ color: #fff;
+
+ .bigTick{
+ background: url(icons/tick-white.svg) center no-repeat;
+ }
+ }
+ .bigTick{
+ margin: 0.5rem 0;
+ display: inline-block;
+ text-indent: -9999px;
+ background: url(icons/tick-color.svg) center no-repeat;
+ height: 64px;
+ width: 64px;
+ white-space: nowrap;
+ }
+}
+
+// page de login
+.formLogin{
+ background: $sid-bg;
+
+ .header{
+ .configure{
+ padding-right: 1rem;
+ img{
+ margin-right: 0.5rem;
+ }
+
+ a.signin{
+ color: $white;
+ }
+ }
+ }
+
+ h1{
+ color: $white;
+ }
+ form#crypto-form{
+ div{
+ margin-bottom: 1rem;
+
+ label{
+ font-size: 1rem;
+ color: $grey-medium;
+
+
+ }
+ input{
+ background: $main-first-darker;
+
+ &:focus{
+ background: $grey-lighter;
+ color: $main-font-color;
+ }
+ }
+ }
+ }
+}
diff --git a/p/themes/Mapco/_configuration.scss b/p/themes/Mapco/_configuration.scss
new file mode 100644
index 000000000..c3c6fd417
--- /dev/null
+++ b/p/themes/Mapco/_configuration.scss
@@ -0,0 +1,90 @@
+/*=== Configuration pages */
+.post {
+ padding: 1rem 2rem;
+ font-size: 1rem;
+
+ form {
+ margin: 1rem 0;
+
+ // Gestion des extensions
+ .horizontal-list{
+ margin-bottom: 0.5rem;
+
+ .item{
+ .stick{
+ // width: 65%;
+ // margin-right: 1rem;
+ // display:flex;
+
+ }
+ .btn{
+ // width: 8rem;
+ // flex-grow: 1;
+ }
+ }
+
+ }
+ }
+ &.content {
+ max-width: 550px;
+ }
+
+ h1, h2{ // pages titles
+ font-size: 3rem;
+ margin-top: 1.75rem;
+ font-weight: 300;
+ line-height: 1.2em;
+ // font-family: "spectral";
+ color: $main-font-color;
+ }
+
+ a[href="./"]{ // C'est le bouton "Retour à vos flux"
+ display: inline-block;
+ // min-height: 38px;
+ min-width: 15px;
+ line-height: 25px;
+ margin: 0;
+ padding: 0.75rem 1.5rem;
+ font-size: 1rem;
+ vertical-align: middle;
+ cursor: pointer;
+ overflow: hidden;
+ background: $grey-lighter;
+ border: 1px solid $grey-medium-light;
+ border-radius: 5px;
+ // border: none;
+ color: $grey-dark;
+
+ &:hover{
+ text-decoration: none;
+ background: $main-first;
+ color: white;
+ border: 1px solid $main-first;
+ }
+ }
+
+}
+
+
+
+#slider{
+ border-left: none;
+
+ -webkit-box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35);
+ -moz-box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35);
+ box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35);
+}
+
+.slide-container{
+ .properties{
+ background: rgba(0, 0, 0, 0.75);
+ border: 0;
+ padding: 1rem;
+ color: white;
+
+ .page-number{
+ right: 1rem;
+ top: 1rem;
+ }
+ }
+}
diff --git a/p/themes/Mapco/_divers.scss b/p/themes/Mapco/_divers.scss
new file mode 100644
index 000000000..7d122f1b4
--- /dev/null
+++ b/p/themes/Mapco/_divers.scss
@@ -0,0 +1,12 @@
+/*=== DIVERS */
+/*===========*/
+.aside.aside_feed .nav-form input,
+.aside.aside_feed .nav-form select {
+ width: 140px;
+}
+.aside.aside_feed .nav-form .dropdown .dropdown-menu {
+ right: -20px;
+}
+.aside.aside_feed .nav-form .dropdown .dropdown-menu::after {
+ right: 33px;
+}
diff --git a/p/themes/Mapco/_fonts.scss b/p/themes/Mapco/_fonts.scss
new file mode 100644
index 000000000..5891be834
--- /dev/null
+++ b/p/themes/Mapco/_fonts.scss
@@ -0,0 +1,56 @@
+@font-face {
+ font-family: "lato";
+ font-style: normal;
+ font-stretch: normal;
+ font-weight: 400;
+ src: local("Lato"), url("../fonts/LatoLatin-Regular.woff") format("woff");
+}
+@font-face {
+ font-family: "lato";
+ font-style: italic;
+ font-stretch: normal;
+ font-weight: 400;
+ src: local("Lato"), url("../fonts/LatoLatin-Italic.woff") format("woff");
+}
+@font-face {
+ font-family: "lato";
+ font-style: normal;
+ font-stretch: normal;
+ font-weight: 700;
+ src: local("Lato"), url("../fonts/LatoLatin-Bold.woff") format("woff");
+}
+@font-face {
+ font-family: "lato";
+ font-style: italic;
+ font-stretch: normal;
+ font-weight: 700;
+ src: local("Lato"), url("../fonts/LatoLatin-BoldItalic.woff") format("woff");
+}
+@font-face {
+ font-family: "spectral";
+ font-style: normal;
+ font-stretch: normal;
+ font-weight: 400;
+ src: local("Spectral"), url("../fonts/Spectral-Regular.woff") format("woff");
+}
+@font-face {
+ font-family: "spectral";
+ font-style: italic;
+ font-stretch: normal;
+ font-weight: 400;
+ src: local("Spectral"), url("../fonts/Spectral-Italic.woff") format("woff");
+}
+@font-face {
+ font-family: "spectral";
+ font-style: normal;
+ font-stretch: normal;
+ font-weight: 700;
+ src: local("Spectral"), url("../fonts/Spectral-Bold.woff") format("woff");
+}
+@font-face {
+ font-family: "spectral";
+ font-style: italic;
+ font-stretch: normal;
+ font-weight: 700;
+ src: local("Spectral"), url("../fonts/Spectral-BoldItalic.woff") format("woff");
+}
diff --git a/p/themes/Mapco/_forms.scss b/p/themes/Mapco/_forms.scss
new file mode 100644
index 000000000..8a388aa8a
--- /dev/null
+++ b/p/themes/Mapco/_forms.scss
@@ -0,0 +1,153 @@
+/* btns */
+
+.btn {
+ display: inline-block;
+ min-height: 38px;
+ min-width: 15px;
+ line-height: 25px;
+ margin: 0;
+ padding: 0.5rem 1.5rem;
+ font-size: 1rem;
+ vertical-align: middle;
+ cursor: pointer;
+ overflow: hidden;
+ background: $grey-lighter;
+ border-radius: 5px;
+ border: none;
+ color: $grey-dark;
+
+ @include transition(all, 0.15s, ease-in-out);
+
+ &.btn-important {
+ background: $main-first;
+ color: $white;
+
+ // @include transition(all, 0.15s, ease-in-out);
+
+ &:hover,
+ &:active {
+ background: $main-first-alt;
+ }
+ }
+
+
+ &.btn-attention {
+ background: $alert-bg;
+ color: #fff;
+
+ &:hover,
+ &:active {
+ background: $alert-text;
+ }
+ }
+
+ &:hover {
+ text-decoration: none;
+ }
+}
+
+a.btn {
+ min-height: 25px;
+ line-height: 25px;
+}
+
+/*=== Forms */
+legend {
+ display: inline-block;
+ width: auto;
+ margin: 2rem 0 1rem 0;
+ padding: 0;
+ font-size: 1rem;
+ clear: both;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ font-weight: 700;
+}
+label {
+ min-height: 25px;
+ padding: 5px 0;
+ cursor: pointer;
+ color: $grey-dark;
+}
+textarea {
+ width: 360px;
+ height: 100px;
+}
+input, select, textarea, button {
+ font-family: "lato", "Helvetica", "Arial", sans-serif;
+ min-height: 25px;
+ padding: 5px 10px;
+ line-height: 25px;
+ vertical-align: middle;
+ background: $white;
+ border: 1px solid $grey-light;
+ font-size: 1rem;
+ color: $grey-dark;
+ border-radius: 2px;
+}
+option {
+ padding: 0 .5em;
+}
+input:focus, select:focus, textarea:focus {
+ color: $main-font-color;
+ border-color: $main-first;
+}
+input:invalid, select:invalid {
+ color: $alert-bg;
+ border-color: $alert-bg;
+ box-shadow: none;
+}
+input:disabled, select:disabled {
+ background: $grey-light;
+}
+input.extend {
+ transition: width 200ms linear;
+ -moz-transition: width 200ms linear;
+ -webkit-transition: width 200ms linear;
+ -o-transition: width 200ms linear;
+ -ms-transition: width 200ms linear;
+}
+
+
+.form-group {
+ padding: 5px;
+ border-radius: 3px;
+
+ &::after {
+ content: "";
+ display: block;
+ clear: both;
+ }
+ &:hover {
+ // background: #fff;
+ // border: 1px solid #eee;
+ // border-radius: 3px;
+ // border: 1px solid #eee;
+ }
+ .group-name {
+ padding: 10px 0;
+ text-align: right;
+ }
+ .group-controls {
+ min-height: 25px;
+ padding: 5px 0;
+ }
+ .group-controls .control {
+ line-height: 2.0em;
+ }
+ table {
+ margin: 10px 0 0 220px;
+ }
+
+ &.form-actions {
+ margin: 15px 0 25px;
+ padding: 5px 0;
+ // background: #333;
+ }
+ &.form-actions .btn {
+ margin: 0 0.5rem 0 0;
+ }
+}
+
+
+
diff --git a/p/themes/Mapco/_global-view.scss b/p/themes/Mapco/_global-view.scss
new file mode 100644
index 000000000..30979bd6c
--- /dev/null
+++ b/p/themes/Mapco/_global-view.scss
@@ -0,0 +1,80 @@
+/*=== GLOBAL VIEW */
+/*================*/
+
+#stream{
+ .box.category{
+
+ &:not([data-unread="0"]) .box-title {
+ // background: #3498db;
+ }
+ &:not([data-unread="0"]) .box-title:active {
+ // background: #2980b9;
+ }
+ &:not([data-unread="0"]) .box-title .title {
+ font-weight: bold;
+ // color: #fff;
+ }
+
+ .box-title{
+ background: none;
+ padding: 1.5rem;
+
+ a.title{
+ font-weight: normal;
+ text-decoration: none;
+ text-align: left;
+ font-size: 1rem;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ color: $grey-dark;
+
+ &:not([data-unread="0"])::after {
+ position: absolute;
+ top: 1.75rem;
+ right: 0;
+ line-height: 1.5rem;
+ background: $grey-light;
+ border-radius: 12px;
+ padding: 0 0.75rem;
+ margin: -0.5rem 1rem 0 0;
+ text-align: center;
+ }
+ &:hover{
+ color: $main-first;
+ }
+ }
+ }
+
+ .box-content{
+ padding-bottom: 0.5rem;
+ .item.feed {
+ // padding: 2px 10px;
+ font-size: 1rem;
+ padding: 0.5rem 1.5rem;
+
+ a{
+ color: $main-font-color;
+ font-weight: 400;
+
+ &:hover{
+ color: $main-first;
+ text-decoration: none;
+ }
+ }
+ }
+ }
+ }
+}
+
+
+// le panel qui apparait en overlay pour afficher les flux
+#overlay{
+ background: rgba(0, 0, 0, 0.65);
+}
+#panel{
+ top: 3rem;
+ right: 3rem;
+ bottom: 3rem;
+ left: 3rem;
+ border-radius: 3px;
+}
diff --git a/p/themes/Mapco/_layout.scss b/p/themes/Mapco/_layout.scss
new file mode 100644
index 000000000..b62618d81
--- /dev/null
+++ b/p/themes/Mapco/_layout.scss
@@ -0,0 +1,462 @@
+/*=== STRUCTURE */
+/*===============*/
+/*=== Header */
+.header {
+ background: $sid-bg;
+ padding: 0.5rem 1.35rem;
+ display: block;
+ table-layout: none;
+ width: auto;
+
+ .item{
+ vertical-align: middle;
+ // text-align: center;
+ // display: flex;
+ // justify-content: space-between;
+ // flex-direction: row;
+
+ &.title{
+
+ font-weight: 400;
+ width: 280px;
+
+ h1{
+ a{
+ text-decoration: none;
+ color: $sid-font-color;
+ font-size: 1rem;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+
+ img{
+ margin-right: 0.5rem;
+
+ }
+ }
+ }
+ }
+ &.search{
+ // text-align: center;
+ // width: 50%;
+
+ input{
+ width: 230px;
+ border-radius: 2px 0 0 2px;
+ background-color: $sid-bg-alt;
+ color: $sid-font-color;
+ border: none;
+
+ @include transition(all, 0.15s, ease-in-out);
+
+ &:hover{
+ background-color: $sid-bg-dark;
+ }
+
+ &:focus{
+ width: 350px;
+
+ background-color: $white;
+ color: $grey-dark;
+ }
+ }
+ .btn{
+ img{display: none;}
+ border-radius: 0 2px 2px 0;
+
+ background-color: $main-first;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-image: url(icons/magnifier.svg);
+
+ border-left-width: 0;
+
+ width: 3rem;
+ min-height: 35px;
+
+ &:hover{
+ background-color: $main-first-alt;
+ }
+ }
+ }
+ &.configure{
+ width: 2rem;
+ position: absolute;
+ right: 1rem;
+ top: 1.25rem;
+ text-align: center;
+ // float: right;
+
+ .btn{
+ img{display: none;}
+ // border-radius: 0 2px 2px 0;
+
+ background-color: transparent;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-image: url(icons/cog-white.svg);
+
+ padding: 0 0.5rem;
+
+ // border-left-width: 0;
+
+ // width: 3rem;
+
+ &:hover{
+ // background-color: $main-first-alt;
+ }
+ }
+ }
+ }
+
+
+}
+
+/*=== Body */
+#global {
+ height: calc(100% - 85px);
+}
+
+
+
+
+/*=== Prompt (centered) */
+.prompt {
+ text-align: center;
+}
+.prompt label {
+ text-align: left;
+}
+.prompt form {
+ margin: 10px auto 20px auto;
+ width: 200px;
+}
+.prompt input {
+ margin: 5px auto;
+ width: 100%;
+}
+.prompt p {
+ margin: 20px 0;
+}
+
+/*=== New article notification */
+#new-article {
+ text-align: center;
+ font-size: 1rem;
+ background: $main-first;
+}
+#new-article:hover {
+ background: $main-first-alt;
+}
+#new-article > a {
+ line-height: 3em;
+ font-weight: bold;
+ color: $white;
+}
+#new-article > a:hover {
+ text-decoration: none;
+}
+
+/*=== Day indication */
+.day {
+ padding: 1rem 0 0 1.25rem;
+ font-weight: 700;
+ line-height: 3em;
+ letter-spacing: 1px;
+ text-transform: uppercase;
+ font-size: 0.875rem;
+ color: $light-font-color;
+ // border-left: 2px solid #ecf0f1;
+
+ .name{
+ padding: 0 1rem 0 1rem;
+ font-size: 0.875rem;
+ // font-weight: 700;
+ color: $main-font-color;
+ position: relative;
+ left: 0;
+
+ // letter-spacing: 1px;
+ text-transform: uppercase;
+ }
+}
+
+/*=== Index menu */
+.nav_menu {
+ text-align: center;
+ padding: 5px 0;
+
+ .btn{
+ border-left-width: 0;
+ padding: 0.5rem 1rem;
+ background-color: $grey-lighter;
+ background-position: center;
+ background-repeat: no-repeat;
+
+ &:hover{
+ background-color: $grey-light;
+ }
+ }
+
+ .stick{
+ background: $grey-lighter;
+
+ .btn{
+ border-left-width: 0;
+ padding: 0.5rem 1rem;
+ background-color: $grey-lighter;
+ background-position: center;
+ background-repeat: no-repeat;
+ @include transition(all, 0.15s, ease-in-out);
+
+ &:hover{
+ background-color: $grey-medium-light;
+ }
+
+ &.active{
+ background-color: $main-first;
+ }
+
+ img.icon{display: none;} // on efface pour afficher nos icones, mouhahaha !!
+
+
+ // actions
+ &#toggle-read{
+ background-image: url(icons/read.svg);
+ }
+ &#toggle-read.active{
+ background-image: url(icons/read-white.svg);
+ }
+
+ &#toggle-unread{
+ background-image: url(icons/unread.svg);
+ }
+ &#toggle-unread.active{
+ background-image: url(icons/unread-white.svg);
+ }
+
+ &#toggle-starred{
+ background-image: url(icons/starred.svg);
+ }
+ &#toggle-starred.active{
+ background-image: url(icons/starred-white.svg);
+ }
+
+ &#toggle-non-starred{
+ background-image: url(icons/non-starred.svg);
+ }
+ &#toggle-non-starred.active{
+ background-image: url(icons/non-starred-white.svg);
+ }
+
+ // read all
+ &.read_all{
+ background-color: $grey-lighter;
+ // min-height: 0;
+ color:$main-font-color;
+ padding: 5px 16px;
+ @include transition(all, 0.15s, ease-in-out);
+
+ &:hover{
+ background-color: $grey-medium-light;
+ }
+ }
+
+ // views
+ &.view-normal{
+ background-image: url(icons/view-list.svg);
+ }
+ &.view-normal.active{
+ background-image: url(icons/view-list-white.svg);
+ }
+
+ &.view-global{
+ background-image: url(icons/view-global.svg);
+ }
+ &.view-global.active{
+ background-image: url(icons/view-global-white.svg);
+ }
+
+ &.view-reader{
+ background-image: url(icons/view-reader.svg);
+ }
+ &.view-reader.active{
+ background-image: url(icons/view-reader-white.svg);
+ }
+
+ &.view-rss{
+ background-image: url(icons/rss.svg);
+ }
+
+ }
+ .dropdown {
+ a.dropdown-toggle{
+ border-left-width: 0;
+ background-image: url(icons/more.svg);
+ }
+ }
+
+ &#nav_menu_action{
+
+ }
+ &#nav_menu_read_all{
+
+ }
+ &#nav_menu_views{
+
+ }
+ }
+}
+
+
+#dropdown-query ~ .dropdown-menu .dropdown-header .icon {
+ vertical-align: middle;
+ background-color: $grey-medium-dark;
+ border-radius: 3px;
+}
+
+
+/*=== Content of feed articles */
+.content, .content.thin {
+ padding: 20px 10px;
+
+ font-size: 1.125rem;
+ line-height: 1.8rem;
+
+ h1.title, h1{
+
+ a{
+ color: $main-font-color;
+ font-family: "spectral";
+ font-size: 2rem;
+
+ &:hover{
+ color: $main-first;
+ text-decoration: none;
+ }
+ }
+ }
+ .author{
+ font-size: 1.125rem;
+ color: $light-font-color;
+ }
+ p, ul{
+ font-size: 1.125rem;
+ line-height: 1.8rem;
+ }
+ hr{
+ }
+ .content hr {
+ margin: 30px 10px;
+ height: 1px;
+ background: $grey-medium-light;
+ border: 0;
+ box-shadow: 0 2px 5px #ccc;
+ }
+
+ pre {
+ margin: 10px auto;
+ padding: 10px 20px;
+ overflow: auto;
+ background: $main-first-darker;
+ color: $white;
+ font-size: 0.9rem;
+ border-radius: 3px;
+
+ code {
+ background: transparent;
+ color: $white;
+ border: none;
+ }
+ }
+ code {
+ padding: 2px 5px;
+ color: $grey-light;
+ background: $grey-lighter;
+ border: 1px solid $grey-light;
+ border-radius: 3px;
+ }
+
+
+ blockquote {
+ display: block;
+ margin: 0;
+ padding: 5px 20px;
+ border-top: 1px solid $grey-medium-light;
+ border-bottom: 1px solid $grey-medium-light;
+ background: $grey-lighter;
+ color: $main-font-color;
+
+ p {
+ margin: 0;
+ }
+ }
+
+}
+
+
+/*=== Notification and actualize notification */
+.notification {
+ position: fixed;
+ top: auto;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ width: 100%;
+ height: 3rem;
+
+ padding: 1rem 0;
+ text-align: center;
+ // font-weight: bold;
+ font-size: 1em;
+ line-height: 3em;
+ z-index: 10;
+ vertical-align: middle;
+ background: $grey-medium-light;
+ color: $grey-dark;
+ // border-radius: 3px;
+ border: none;
+
+ .msg{
+ font-size: 1rem;
+ display: inline-block;
+ }
+
+ &.good {
+ background: $success-bg;
+ color: $white;
+ }
+ &.bad {
+ background: $alert-bg;
+ color: $white;
+ }
+ a.close {
+ padding: 0 15px;
+ line-height: 3em;
+ border-radius: 0 3px 3px 0;
+ }
+
+ &.good a.close:hover {
+ background: $success-text;
+ }
+ &.bad a.close:hover {
+ background: $alert-text;
+ }
+
+ &#actualizeProgress {
+ line-height: 2em;
+
+ br{
+ display: none;
+ }
+ }
+}
+
+
+/*=== Navigation menu (for articles) */
+#nav_entries {
+ margin: 0;
+ text-align: center;
+ line-height: 3em;
+ table-layout: fixed;
+ background: $sid-bg;
+}
diff --git a/p/themes/Mapco/_list-view.scss b/p/themes/Mapco/_list-view.scss
new file mode 100644
index 000000000..69cd8a81d
--- /dev/null
+++ b/p/themes/Mapco/_list-view.scss
@@ -0,0 +1,92 @@
+/*=== Feed articles */
+.flux {
+ // border-left: 2px solid #ecf0f1;
+ background: $white;
+
+ @include transition(all, 0.15s, ease-in-out);
+
+ &:hover{
+ background: $grey-lighter;
+
+ &:not(.current):hover .item.title {
+ background: $grey-lighter;
+
+
+ }
+ }
+ &.current{
+ border-left-color: $main-first;
+ background: $grey-lighter;
+ }
+ &.not_read{
+ background: $unread-bg; //--------------------
+ // border-left-color: #FF5300;
+
+ &:hover{
+ background: $unread-bg-light; //--------------------
+ }
+
+ &:not(.current):hover .item.title {
+ background: $unread-bg-light;
+
+
+ }
+ .item.title{
+ a{
+ color: $unread-font-color; //--------------------
+ }
+
+ }
+ .item.website{
+ a{
+ color: $unread-font-color; //--------------------
+ }
+ }
+ .item.date{
+ color: unquote($unread-font-color+"99"); //--------------------
+ }
+}
+
+ &.favorite {
+ background: $fav-light;
+ border-left-color: $fav-bg;
+
+ @include transition(all, 0.15s, ease-in-out);
+
+ &:not(.current):hover .item.title {
+ background: $fav-light;
+ }
+ }
+
+ .website{
+ a{
+ color: $main-font-color;
+ opacity: 0.75;
+ }
+
+ .favicon {
+ padding: 5px;
+ }
+ }
+ .date {
+ font-size: 0.85rem;
+ color: $main-font-color;
+ opacity: 0.75;
+ }
+
+ .bottom {
+ font-size: 1rem;
+ text-align: center;
+ }
+}
+
+.flux_header {
+ font-size: 1rem;
+ cursor: pointer;
+ border-top: 1px solid $grey-light;
+
+ .title {
+ font-size: 1rem;
+ }
+}
+
diff --git a/p/themes/Mapco/_logs.scss b/p/themes/Mapco/_logs.scss
new file mode 100644
index 000000000..ae1e24c6c
--- /dev/null
+++ b/p/themes/Mapco/_logs.scss
@@ -0,0 +1,34 @@
+/*=== LOGS */
+/*=========*/
+.loglist {
+ overflow: hidden;
+ border: 1px solid $grey-medium-dark;
+}
+.log {
+ margin: 10px 0;
+ padding: 5px 2%;
+ overflow: auto;
+ font-size: 0.8rem;
+ background: $grey-lighter;
+ color: $grey-dark;
+}
+
+.log > .date {
+ margin: 0 10px 0 0;
+ padding: 5px 10px;
+ border-radius: 20px;
+}
+.log.error > .date {
+ background: $alert-bg;
+ color: #fff;
+}
+.log.warning > .date {
+ background: $warning-bg;
+}
+.log.notice > .date {
+ background: $grey-light;
+}
+.log.debug > .date {
+ background: $main-first-darker;
+ color: $white;
+}
diff --git a/p/themes/Mapco/_mixins.scss b/p/themes/Mapco/_mixins.scss
new file mode 100644
index 000000000..3542ade6b
--- /dev/null
+++ b/p/themes/Mapco/_mixins.scss
@@ -0,0 +1,59 @@
+/* FUNCTIONS */
+
+//animation
+@mixin transition($target, $duration, $ease) {
+ -webkit-transition: $target $duration $ease;
+ -moz-transition: $target $duration $ease;
+ -o-transition: $target $duration $ease;
+ -ms-transition: $target $duration $ease;
+ transition: $target $duration $ease;
+}
+
+//animation
+@mixin animation-delay($delay) {
+ -webkit-animation-delay: $delay;
+ /* Safari 4.0 - 8.0 */
+ animation-delay: $delay;
+}
+
+//animation
+@mixin animation($animate...) {
+ $max: length($animate);
+ $animations: '';
+ @for $i from 1 through $max {
+ $animations: #{$animations + nth($animate, $i)};
+ @if $i < $max {
+ $animations: #{$animations + ", "};
+ }
+ }
+ -webkit-animation: $animations;
+ -moz-animation: $animations;
+ -o-animation: $animations;
+ -ms-transition: $animations;
+ animation: $animations;
+}
+
+//keyframes
+@mixin keyframes($animationName) {
+ @-webkit-keyframes #{$animationName} {
+ @content;
+ }
+ @-moz-keyframes #{$animationName} {
+ @content;
+ }
+ @-o-keyframes #{$animationName} {
+ @content;
+ }
+ @keyframes #{$animationName} {
+ @content;
+ }
+}
+
+@mixin border-radius($radius: 4px){
+ -moz-border-radius: $radius;
+ -webkit-border-radius: $radius;
+ -ms-border-radius: $radius;
+ -o-border-radius: $radius;
+ -khtml-border-radius: $radius;
+ border-radius: $radius;
+}
diff --git a/p/themes/Mapco/_mobile.scss b/p/themes/Mapco/_mobile.scss
new file mode 100644
index 000000000..dcf4e74f2
--- /dev/null
+++ b/p/themes/Mapco/_mobile.scss
@@ -0,0 +1,169 @@
+/*=== MOBILE */
+/*===========*/
+@media(max-width: 840px) {
+ html, body{
+ // font-size: 1rem;
+ }
+ ul.nav{
+ .item{
+ width: 100%;
+
+ img{
+ display: none;
+ }
+ a{
+ display: inline-block;
+ padding: 1rem 1rem 1rem 2.5rem;
+ color: $sid-font-color;
+ width: 100%;
+
+ background: url("../../themes/icons/logout.svg") no-repeat $sid-bg-dark 3% center;
+
+ @include transition(all, 0.2s, ease-in-out);
+
+ &:hover,
+ &:active{
+ background: url("../../themes/icons/logout.svg") no-repeat $alert-bg 3% center;
+ text-decoration: none;
+ }
+ }
+
+ }
+
+ }
+ .aside {
+ @include transition(all, 0.2s, ease-in-out);
+
+ &.aside_feed {
+ padding: 0;
+ }
+
+ .tree .tree-folder .tree-folder-items .item a{
+ padding: 0.5rem 1rem;
+ }
+ }
+ .aside .toggle_aside,
+ #panel .close {
+ display: block;
+ width: 100%;
+ height: 50px;
+ line-height: 50px;
+ text-align: center;
+ background: $main-first-alt;
+ }
+
+ .header{
+ padding: 0.5rem;
+ .item{
+ &.title{
+ display: none;
+ }
+
+ &.search{
+ input{
+ width: 90%;
+ height: 3.5rem;
+
+ &:focus{
+ width: 100%;
+
+ }
+ }
+ .btn{
+ min-height: 49px;
+ padding: 0.5rem 2rem;
+ }
+ }
+ &.configure{
+ width: 2.75rem;
+ top: 3.125rem;
+ .dropdown{
+ .btn{
+ padding: 1.125rem;
+ }
+ }
+ }
+ }
+ }
+
+ .nav_menu{
+ .btn {
+ margin: 0;
+ padding: 0.85rem 1.25rem;
+ }
+ .stick {
+ margin: 0.5rem 0.5rem;
+
+ .btn{
+ margin: 0;
+ padding: 0.85rem 1.25rem;
+
+ &.read_all{
+ padding: 0.85rem 1.25rem;
+ }
+ }
+ }
+ .search {
+ display: none;
+ max-width: 97%;
+
+ .input{
+
+ max-width: 97%;
+ width: 90px;
+
+ &::focus{
+ width: 400px;
+ }
+ }
+ }
+ }
+ #stream{
+ .flux{
+ .flux_header{
+ padding: 0.5rem 0;
+ }
+ }
+ }
+
+
+
+ .day{
+ text-align: center;
+ padding: 1rem 0;
+ .name {
+ // font-size: 1.1rem;
+ display: block;
+ padding: 0;
+ width: 100%;
+ line-height: 1.5rem;
+ margin-bottom: 1rem;
+ }
+
+ }
+
+ .pagination {
+ margin: 0 0 3.5em;
+ }
+
+ #nav_entries{
+ line-height: 4.5rem;
+ }
+
+ .notification {
+ border-radius: 0;
+
+ a.close {
+ display: block;
+ left: 0;
+ background: transparent;
+ }
+ a.close:hover {
+ opacity: 0.5;
+ }
+ a.close .icon {
+ display: none;
+
+ }
+ }
+}
diff --git a/p/themes/Mapco/_reader-view.scss b/p/themes/Mapco/_reader-view.scss
new file mode 100644
index 000000000..4368908d6
--- /dev/null
+++ b/p/themes/Mapco/_reader-view.scss
@@ -0,0 +1,13 @@
+/*=== READER VIEW */
+/*================*/
+#stream.reader .flux {
+ padding: 0 0 50px;
+ background: $grey-light;
+ color: $main-font-color;
+ border: none;
+}
+#stream.reader .flux .author {
+ margin: 0 0 10px;
+ font-size: 90%;
+ color: $grey-medium-dark;
+}
diff --git a/p/themes/Mapco/_sidebar.scss b/p/themes/Mapco/_sidebar.scss
new file mode 100644
index 000000000..62ec1c1cf
--- /dev/null
+++ b/p/themes/Mapco/_sidebar.scss
@@ -0,0 +1,291 @@
+/*=== Tree */
+.tree {
+ margin: 10px 0;
+
+ &#sidebar{
+ scrollbar-color: rgba(255,255, 0, 0.1) rgba(0, 0, 0, 0.05);
+ scrollbar-color: unquote($sid-font-color+"33") unquote($sid-font-color+"22");
+ }
+
+
+ .tree-folder{
+ border-bottom: 1px solid $sid-sep;
+
+ .tree-folder-title {
+ position: relative;
+ background: $sid-bg;
+ font-size: 0.85rem;
+ letter-spacing: 1px;
+ padding: 12px 16px;
+ font-weight: 700;
+ text-transform: uppercase;
+
+ .title {
+ background: inherit;
+ color: $sid-font-color;
+ &:hover{
+ text-decoration: none;
+ }
+ }
+ }
+ &.active {
+ .tree-folder-title {
+ background: $sid-bg;
+ font-weight: bold;
+ }
+ }
+ .tree-folder-items {
+ background: $sid-bg-alt;
+
+ .item{
+ padding: 0 1rem;
+ line-height: 2.5rem;
+ font-size: 1rem;
+ font-weight: 400;
+ @include transition(all, 0.15s, ease-in-out);
+
+ &.active{
+ background: $sid-active;
+
+ .dropdown li a{
+ color: $main-font-color;
+
+ &:hover{
+ color: $sid-font-color;
+ }
+ }
+
+ a{
+ color: $sid-active-font;
+ }
+ }
+
+ &:hover{
+ background: $sid-bg-dark;
+ }
+
+ a{
+ text-decoration: none;
+ color: $sid-font-color;
+ }
+ }
+
+ .feed .item-title:not([data-unread="0"])::before {
+ content: attr(data-unread);
+ background: $sid-pills;
+ font-size: 0.75rem;
+ display: block;
+ float: left;
+ padding: 3px 4px;
+ text-align:center;
+ border-radius: 12px;
+ margin: 11px 6px 0 4px;
+ line-height: 0.75rem;
+ }
+ .feed .item-title:not([data-unread="0"]) {
+
+ }
+ }
+ }
+}
+
+/*=== Buttons */
+.stick {
+ vertical-align: middle;
+ font-size: 0;
+
+ input, .btn {
+ border-radius: 0;
+ }
+ .btn:first-child,
+ input:first-child {
+ border-radius: 5px 0 0 5px;
+ }
+ .btn:last-child, input:last-child, .btn + .dropdown > .btn {
+ border-radius: 0 5px 5px 0;
+ }
+ .btn + .btn,
+ .btn + input,
+ .btn + .dropdown > .btn,
+ input + .btn,
+ input + input,
+ input + .dropdown > .btn,
+ .dropdown + .btn,
+ .dropdown + input,
+ .dropdown + .dropdown > .btn {
+ border-left: 1px solid $grey-medium-light;
+ }
+
+}
+
+.aside {
+ background: $sid-bg;
+
+ &.aside_feed {
+ padding: 10px 0;
+ text-align: center;
+ background: $sid-bg;
+ }
+ &.aside_feed .tree {
+ margin: 10px 0 50px;
+ }
+
+}
+
+
+/* Sidebar des pages de configuration */
+
+
+
+/*=== Navigation */
+
+.nav-list{
+ .nav-header,
+ .item{
+ height: 2.5em;
+ line-height: 2.5em;
+ font-size: 1rem;
+ }
+ .item{
+ background: $sid-bg;
+ @include transition(all, 0.15s, ease-in-out);
+ a{
+ padding: 0 1rem;
+ color: $sid-font-color;
+ }
+ .error{
+ a{
+ color: $alert-bg;
+ }
+ }
+ &:hover{
+ background: $sid-bg-dark;
+ color: $sid-font-color;
+
+ .error{
+ a{
+ color: $sid-font-color;
+ background: $main-first;
+ }
+ }
+ .empty{
+ a{
+ color: $sid-font-color;
+ background: $warning-bg;
+ }
+ }
+
+ a{
+ color: $sid-font-color;
+ text-decoration: none;
+ }
+ }
+ &.active{
+ background: $main-first;
+ color: $white;
+
+ .error{
+ a{
+ color: $white;
+ background: $main-first;
+ }
+ }
+
+ .empty{
+ a{
+ color: $white;
+ background: $warning-bg;
+ }
+ }
+
+ a{
+ color: $white;
+ text-decoration: none;
+ }
+ }
+
+ }
+ &.empty{
+ a{
+ color: $warning-bg;
+ }
+ }
+ .disable{
+ text-align: center;
+ background: $grey-lighter;
+ color: $grey-medium-dark;
+ }
+
+ .nav-header {
+ padding: 0 10px;
+ font-weight: bold;
+ color: $grey-dark;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ margin-top: 1rem;
+ }
+
+ .nav-form {
+ padding: 3px;
+ text-align: center;
+ }
+
+ .nav-head {
+ margin: 0;
+ text-align: right;
+ // background: #34495e;
+ color: $white;
+ a {
+ color: $white;
+ }
+ .item {
+ padding: 5px 10px;
+ font-size: 0.9rem;
+ line-height: 1.5rem;
+ }
+ }
+}
+
+/*=== Aside main page (categories) */
+.aside_feed .tree-folder-title > .title:not([data-unread="0"])::after {
+ position: absolute;
+ right: 0;
+ line-height: 1.5rem;
+ background: $sid-pills;
+ border-radius: 12px;
+ padding: 0 0.75rem;
+ margin: -0.5rem 1rem 0 0;
+ text-align: center;
+}
+
+.feed.item.empty.active {
+ background: $grey-dark;
+}
+.feed.item.error.active {
+ background: $grey-dark;
+}
+.feed.item.empty,
+.feed.item.empty > a {
+ color: $grey-dark;
+}
+.feed.item.error,
+.feed.item.error > a {
+ color: $grey-dark;
+}
+.feed.item.empty.active,
+.feed.item.error.active,
+.feed.item.empty.active > a,
+.feed.item.error.active > a {
+ color: $white;
+}
+.aside_feed .tree-folder-items .dropdown-menu::after {
+ left: 2px;
+}
+.aside_feed .tree-folder-items .item .dropdown-target:target ~ .dropdown-toggle > .icon,
+.aside_feed .tree-folder-items .item:hover .dropdown-toggle > .icon,
+.aside_feed .tree-folder-items .item.active .dropdown-toggle > .icon {
+ border-radius: 3px;
+}
+.aside_feed .stick #btn-importExport{
+ border-left-color: $sid-bg;
+}
diff --git a/p/themes/Mapco/_stats.scss b/p/themes/Mapco/_stats.scss
new file mode 100644
index 000000000..f287efa08
--- /dev/null
+++ b/p/themes/Mapco/_stats.scss
@@ -0,0 +1,27 @@
+/*=== STATISTICS */
+/*===============*/
+.stat {
+ margin: 10px 0 20px;
+}
+
+.stat th,
+.stat td,
+.stat tr {
+ border: none;
+}
+.stat > table td,
+.stat > table th {
+ border-bottom: 1px solid $grey-medium-light;
+}
+
+.stat > .horizontal-list {
+ margin: 0 0 5px;
+}
+.stat > .horizontal-list .item {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+.stat > .horizontal-list .item:first-child {
+ width: 270px;
+}
diff --git a/p/themes/Mapco/_tables.scss b/p/themes/Mapco/_tables.scss
new file mode 100644
index 000000000..608e19aca
--- /dev/null
+++ b/p/themes/Mapco/_tables.scss
@@ -0,0 +1,17 @@
+/*=== Tables */
+table {
+ border-collapse: collapse;
+}
+
+tr, th, td {
+ padding: 0.5em;
+ border: 1px solid $grey-medium-light;
+}
+th {
+ background: $grey-lighter;
+}
+form td,
+form th {
+ font-weight: normal;
+ text-align: center;
+}
diff --git a/p/themes/Mapco/_variables.scss b/p/themes/Mapco/_variables.scss
new file mode 100644
index 000000000..b01d9bd67
--- /dev/null
+++ b/p/themes/Mapco/_variables.scss
@@ -0,0 +1,53 @@
+// La couleur principale du thème
+$main-first: #3366cc; // couleur principale
+$main-first-alt: #2255cc; // var pour les hovers
+$main-first-light: #effcfd; // var light 1
+$main-first-lighter: #f7fdfe; // var light 2
+$main-first-dark: #35363c; // var pour les hovers
+$main-first-darker: #1d1e22; // var pour les hovers
+
+// les couleurs de polices liées
+$main-font-color: #303136;
+$light-font-color: #5b6871;
+$white: #fff; // le blanc (des fois qu'on aurait envie de le teinter un peu)
+
+// toute la palette des gris, très utile
+// on essaiera de teinter ces gris suivant la couleur principale
+$grey-darker: #3b3f4d;
+$grey-dark: #5b6871;
+$grey-medium-dark: #a6a7ae;
+$grey-medium: #c5ced3;
+$grey-medium-light: #d5d8db;
+$grey-light: #eff0f2;
+$grey-lighter: #f9fafb;
+
+$unread-font-color: $main-first;
+$unread-bg: #f2f6f8;
+$unread-bg-light: #fdfdfe;
+
+// les couleurs d'alertes (rouge, jaune, vert)
+$alert-bg: #f5633e; // la base
+$alert-light: #fde0d8; // +light
+$alert-text: #73341f; // +foncé
+
+$warning-bg: #f4f762;
+$warning-light: #fdfde0;
+$warning-text: #73762f;
+
+$success-bg: #10f587;
+$success-light: #cffde7;
+$success-text: #0c7540;
+
+// les favoris
+$fav-bg: #FFC300;
+$fav-light: #FFF6DA;
+
+// la couleur de sidebar, utile si on a envie d'un thème qui aurait une sidebar foncé, e.g.
+$sid-font-color: #FFFFFF; // la couleur de fond de la barre de gauche et du header
+$sid-bg: #303136; // le background général de la barre de gauche, et du header
+$sid-bg-alt: #26272a; // le background de l'intérieur des groupes
+$sid-bg-dark: #17181a; // les hovers
+$sid-sep: #3f3f3f; // les séparateurs
+$sid-active: $main-first; // la couleur active
+$sid-active-font: #FFFFFF; // la couleur active
+$sid-pills: rgba(0,0,0, 0.25); // les gélules
diff --git a/p/themes/Mapco/icons/cog-white.svg b/p/themes/Mapco/icons/cog-white.svg
new file mode 100644
index 000000000..3df8c2d70
--- /dev/null
+++ b/p/themes/Mapco/icons/cog-white.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16" version="1.1">
+<g id="surface2">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(94.901961%,94.901961%,94.901961%);fill-opacity:1;" d="M 6.667969 0 L 6.667969 2.839844 C 6.179688 2.964844 5.71875 3.160156 5.292969 3.410156 L 3.285156 1.402344 L 1.402344 3.285156 L 3.410156 5.292969 C 3.160156 5.71875 2.964844 6.179688 2.839844 6.667969 L 0 6.667969 L 0 9.332031 L 2.839844 9.332031 C 2.964844 9.820312 3.15625 10.28125 3.410156 10.707031 L 1.402344 12.714844 L 3.285156 14.597656 L 5.292969 12.589844 C 5.71875 12.839844 6.179688 13.03125 6.667969 13.15625 L 6.667969 16 L 9.332031 16 L 9.332031 13.15625 C 9.820312 13.03125 10.28125 12.839844 10.703125 12.589844 L 12.714844 14.597656 L 14.601562 12.714844 L 12.589844 10.707031 C 12.839844 10.28125 13.03125 9.820312 13.160156 9.332031 L 16 9.332031 L 16 6.667969 L 13.160156 6.667969 C 13.03125 6.179688 12.839844 5.71875 12.589844 5.292969 L 14.601562 3.285156 L 12.714844 1.398438 L 10.703125 3.410156 C 10.28125 3.15625 9.820312 2.964844 9.332031 2.839844 L 9.332031 0 Z M 8 5.332031 C 9.472656 5.332031 10.664062 6.527344 10.664062 8 C 10.664062 9.472656 9.472656 10.664062 8 10.664062 C 6.527344 10.664062 5.332031 9.472656 5.332031 8 C 5.332031 6.527344 6.527344 5.332031 8 5.332031 Z M 8 5.332031 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Mapco/icons/cog.svg b/p/themes/Mapco/icons/cog.svg
new file mode 100644
index 000000000..aa56d862b
--- /dev/null
+++ b/p/themes/Mapco/icons/cog.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="17"
+ viewBox="0 0 16 17"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="cog.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="14.75"
+ inkscape:cx="8"
+ inkscape:cy="8"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 6.667969,1 v 2.839844 c -0.488281,0.125 -0.949219,0.320312 -1.375,0.570312 L 3.285156,2.402344 1.402344,4.285156 3.410156,6.292969 C 3.160156,6.71875 2.964844,7.179688 2.839844,7.664062 H 0 v 2.667969 h 2.839844 c 0.125,0.488281 0.316406,0.949219 0.570312,1.375 l -2.007812,2.007813 1.882812,1.882812 2.007813,-2.007812 c 0.425781,0.25 0.886719,0.441406 1.375,0.566406 V 17 h 2.664062 v -2.84375 c 0.488281,-0.125 0.949219,-0.316406 1.371094,-0.566406 l 2.011719,2.007812 1.886718,-1.882812 -2.011718,-2.007813 c 0.25,-0.425781 0.441406,-0.886719 0.570312,-1.375 H 16 V 7.664062 H 13.160156 C 13.03125,7.179688 12.839844,6.71875 12.589844,6.292969 L 14.601562,4.285156 12.714844,2.398438 10.703125,4.410156 C 10.28125,4.15625 9.820312,3.964844 9.332031,3.839844 V 1 Z M 8,6.332031 c 1.472656,0 2.664062,1.195313 2.664062,2.667969 0,1.472656 -1.191406,2.664062 -2.664062,2.664062 C 6.527344,11.664062 5.332031,10.472656 5.332031,9 5.332031,7.527344 6.527344,6.332031 8,6.332031 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/down-white.svg b/p/themes/Mapco/icons/down-white.svg
new file mode 100644
index 000000000..df05a4704
--- /dev/null
+++ b/p/themes/Mapco/icons/down-white.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="10"
+ viewBox="0 0 16 10"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="down-white.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="26.222222"
+ inkscape:cx="7.5"
+ inkscape:cy="4.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 1.800781,0.347656 0.386719,1.761719 8.09375,9.46875 15.800781,1.761719 14.386719,0.347656 8.09375,6.640625 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/down.svg b/p/themes/Mapco/icons/down.svg
new file mode 100644
index 000000000..5c732e199
--- /dev/null
+++ b/p/themes/Mapco/icons/down.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="10"
+ viewBox="0 0 16 10"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="down.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="26.222222"
+ inkscape:cx="7.5"
+ inkscape:cy="4.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 1.800781,0.347656 0.386719,1.761719 8.09375,9.46875 15.800781,1.761719 14.386719,0.347656 8.09375,6.640625 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/icon.svg b/p/themes/Mapco/icons/icon.svg
new file mode 100644
index 000000000..594abba59
--- /dev/null
+++ b/p/themes/Mapco/icons/icon.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="40" height="40" viewBox="0 0 40 40" version="1.1">
+<g id="surface2">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 25.15625 20 C 25.15625 17.152344 22.847656 14.84375 20 14.84375 C 17.152344 14.84375 14.84375 17.152344 14.84375 20 C 14.84375 22.847656 17.152344 25.15625 20 25.15625 C 22.847656 25.15625 25.15625 22.847656 25.15625 20 Z M 25.15625 20 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(38.431373%,39.215686%,43.137255%);fill-opacity:1;" d="M 19.558594 0.0078125 C 17.125 0.0585938 14.679688 0.554688 12.347656 1.523438 C 4.878906 4.617188 0 11.917969 0 20 L 3.75 20 C 3.75 13.421875 7.703125 7.503906 13.78125 4.988281 C 19.859375 2.46875 26.839844 3.859375 31.488281 8.511719 C 36.140625 13.160156 37.53125 20.140625 35.011719 26.21875 C 32.496094 32.296875 26.578125 36.25 20 36.25 L 20 40 C 28.082031 40 35.382812 35.121094 38.476562 27.652344 C 41.570312 20.183594 39.859375 11.574219 34.140625 5.859375 C 30.210938 1.929688 24.914062 -0.109375 19.558594 0.0078125 Z M 19.558594 0.0078125 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(38.431373%,39.215686%,43.137255%);fill-opacity:1;" d="M 20.683594 6.582031 C 18.726562 6.480469 16.738281 6.804688 14.859375 7.585938 C 9.839844 9.664062 6.5625 14.570312 6.5625 20 L 10.3125 20 C 10.3125 16.078125 12.667969 12.550781 16.292969 11.050781 C 19.917969 9.546875 24.074219 10.375 26.851562 13.148438 C 29.625 15.925781 30.453125 20.082031 28.949219 23.707031 C 27.449219 27.332031 23.921875 29.6875 20 29.6875 L 20 33.4375 C 25.429688 33.4375 30.335938 30.160156 32.414062 25.140625 C 34.492188 20.125 33.339844 14.335938 29.5 10.5 C 27.101562 8.097656 23.941406 6.75 20.683594 6.582031 Z M 20.683594 6.582031 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 20 0 L 20 3.75 C 28.996094 3.75 36.25 11.003906 36.25 20 L 40 20 C 40 8.976562 31.023438 0 20 0 Z M 20 0 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 20 6.5625 L 20 10.3125 C 25.371094 10.3125 29.6875 14.628906 29.6875 20 L 33.4375 20 C 33.4375 12.601562 27.398438 6.5625 20 6.5625 Z M 20 6.5625 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Mapco/icons/link-white.svg b/p/themes/Mapco/icons/link-white.svg
new file mode 100644
index 000000000..c6baadc85
--- /dev/null
+++ b/p/themes/Mapco/icons/link-white.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="17"
+ height="17"
+ viewBox="0 0 17 17"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="link-white.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="13.882353"
+ inkscape:cx="8.5"
+ inkscape:cy="8.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2"
+ transform="translate(0,-1)">
+ <path
+ style="fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 8.5,1 C 3.816406,1 0,4.816406 0,9.5 0,14.183594 3.816406,18 8.5,18 13.183594,18 17,14.183594 17,9.5 17,4.816406 13.183594,1 8.5,1 Z M 5.480469,3.742188 C 4.609375,4.957031 3.78125,6.570312 3.558594,8.5 H 2.082031 C 2.402344,6.421875 3.691406,4.679688 5.480469,3.742188 Z m 6.035156,0 C 13.308594,4.679688 14.597656,6.421875 14.914062,8.5 H 13.4375 C 13.21875,6.570312 12.390625,4.957031 11.515625,3.742188 Z M 7.5,4.4375 V 8.5 H 5.578125 C 5.839844,6.835938 6.695312,5.4375 7.5,4.4375 Z m 2,0 c 0.804688,1 1.660156,2.398438 1.921875,4.0625 H 9.5 Z M 2.082031,10.5 h 1.472657 c 0.1875,1.828125 0.863281,3.371094 1.589843,4.566406 C 3.53125,14.09375 2.382812,12.441406 2.082031,10.5 Z m 3.488281,0 H 7.5 v 4.460938 C 6.734375,13.957031 5.820312,12.40625 5.570312,10.5 Z M 9.5,10.5 h 1.917969 C 11.160156,12.171875 10.304688,13.570312 9.5,14.5625 Z m 3.9375,0 h 1.476562 c -0.316406,2.078125 -1.605468,3.824219 -3.398437,4.757812 0.875,-1.214843 1.703125,-2.828124 1.921875,-4.757812 z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/link.svg b/p/themes/Mapco/icons/link.svg
new file mode 100644
index 000000000..44ee847b0
--- /dev/null
+++ b/p/themes/Mapco/icons/link.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="17" height="17" viewBox="0 0 17 17" version="1.1">
+<g id="surface2">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(32.54902%,32.54902%,32.54902%);fill-opacity:1;" d="M 8.5 0 C 3.816406 0 0 3.816406 0 8.5 C 0 13.183594 3.816406 17 8.5 17 C 13.183594 17 17 13.183594 17 8.5 C 17 3.816406 13.183594 0 8.5 0 Z M 5.480469 2.742188 C 4.609375 3.957031 3.78125 5.570312 3.558594 7.5 L 2.082031 7.5 C 2.402344 5.421875 3.691406 3.679688 5.480469 2.742188 Z M 11.515625 2.742188 C 13.308594 3.679688 14.597656 5.421875 14.914062 7.5 L 13.4375 7.5 C 13.21875 5.570312 12.390625 3.957031 11.515625 2.742188 Z M 7.5 3.4375 L 7.5 7.5 L 5.578125 7.5 C 5.839844 5.835938 6.695312 4.4375 7.5 3.4375 Z M 9.5 3.4375 C 10.304688 4.4375 11.160156 5.835938 11.421875 7.5 L 9.5 7.5 Z M 2.082031 9.5 L 3.554688 9.5 C 3.742188 11.328125 4.417969 12.871094 5.144531 14.066406 C 3.53125 13.09375 2.382812 11.441406 2.082031 9.5 Z M 5.570312 9.5 L 7.5 9.5 L 7.5 13.960938 C 6.734375 12.957031 5.820312 11.40625 5.570312 9.5 Z M 9.5 9.5 L 11.417969 9.5 C 11.160156 11.171875 10.304688 12.570312 9.5 13.5625 Z M 13.4375 9.5 L 14.914062 9.5 C 14.597656 11.578125 13.308594 13.324219 11.515625 14.257812 C 12.390625 13.042969 13.21875 11.429688 13.4375 9.5 Z M 13.4375 9.5 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Mapco/icons/magnifier.svg b/p/themes/Mapco/icons/magnifier.svg
new file mode 100644
index 000000000..ae3732c69
--- /dev/null
+++ b/p/themes/Mapco/icons/magnifier.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16" version="1.1">
+<g id="surface2">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(94.901961%,94.901961%,94.901961%);fill-opacity:1;" d="M 9.464844 0 C 5.867188 0 2.929688 2.9375 2.929688 6.535156 C 2.929688 7.972656 3.40625 9.300781 4.199219 10.382812 L 0.710938 13.867188 L 0 14.578125 L 1.421875 16 L 2.132812 15.289062 L 5.617188 11.800781 C 6.699219 12.59375 8.027344 13.070312 9.464844 13.070312 C 13.0625 13.070312 16 10.132812 16 6.535156 C 16 2.9375 13.0625 0 9.464844 0 Z M 9.464844 2.011719 C 11.976562 2.011719 13.988281 4.023438 13.988281 6.535156 C 13.988281 9.046875 11.976562 11.058594 9.464844 11.058594 C 6.953125 11.058594 4.941406 9.046875 4.941406 6.535156 C 4.941406 4.023438 6.953125 2.011719 9.464844 2.011719 Z M 9.464844 2.011719 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Mapco/icons/more.svg b/p/themes/Mapco/icons/more.svg
new file mode 100644
index 000000000..6e505e71b
--- /dev/null
+++ b/p/themes/Mapco/icons/more.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="3"
+ height="15"
+ viewBox="0 0 3 15"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="more.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="16.857143"
+ inkscape:cx="1.5"
+ inkscape:cy="7"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 0,0 H 3 V 3 H 0 Z M 0,6 H 3 V 9 H 0 Z m 0,6 h 3 v 3 H 0 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/non-starred-white.svg b/p/themes/Mapco/icons/non-starred-white.svg
new file mode 100644
index 000000000..9bd48c801
--- /dev/null
+++ b/p/themes/Mapco/icons/non-starred-white.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="18"
+ height="16"
+ viewBox="0 0 18 16"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="non-starred-white.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="15.733333"
+ inkscape:cx="8.5"
+ inkscape:cy="7.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2"
+ transform="translate(0,-1)">
+ <path
+ style="fill:none;stroke:#ffffff;stroke-width:0.26879001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+ d="m 107.00018,143.49705 1.62575,-0.0138 0.49783,-1.54754 0.51657,1.54119 1.62575,-0.004 -1.30706,0.96642 0.50616,1.54542 -1.32372,-0.94419 -1.31226,0.95901 0.48845,-1.55072 z m 0,0"
+ transform="matrix(3.750673,0,0,3.690326,-399.91249,-522.49621)"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/non-starred.svg b/p/themes/Mapco/icons/non-starred.svg
new file mode 100644
index 000000000..9d49930c0
--- /dev/null
+++ b/p/themes/Mapco/icons/non-starred.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="18"
+ height="16"
+ viewBox="0 0 18 16"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="non-starred.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="15.733333"
+ inkscape:cx="8.5"
+ inkscape:cy="7.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:none;stroke:#515151;stroke-width:0.26879001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+ d="m 107.00018,150.49714 1.62575,-0.0138 0.49783,-1.5486 0.51657,1.54225 1.62575,-0.004 -1.30706,0.96642 0.50616,1.54542 -1.32372,-0.94419 -1.31226,0.95901 0.48845,-1.55072 z m 0,0"
+ transform="matrix(3.750673,0,0,3.690326,-399.91249,-548.8718)"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/read-grey.svg b/p/themes/Mapco/icons/read-grey.svg
new file mode 100644
index 000000000..4857aca02
--- /dev/null
+++ b/p/themes/Mapco/icons/read-grey.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="18" viewBox="0 0 16 18" version="1.1">
+<g id="surface2">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(80.784314%,80.784314%,80.784314%);fill-opacity:1;" d="M 8 0 L 0.460938 4.933594 L 0 5.234375 L 0 18 L 16 18 L 16 5.234375 Z M 8 2.417969 L 13.625 6.101562 L 8 10.601562 L 2.371094 6.101562 Z M 2 8.390625 L 8 13.1875 L 14 8.390625 L 14 15.964844 L 2 15.964844 Z M 2 8.390625 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Mapco/icons/read-white.svg b/p/themes/Mapco/icons/read-white.svg
new file mode 100644
index 000000000..578facdc7
--- /dev/null
+++ b/p/themes/Mapco/icons/read-white.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="18"
+ viewBox="0 0 16 18"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="read-white.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="13.882353"
+ inkscape:cx="8"
+ inkscape:cy="8.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 8,0 0.460938,4.933594 0,5.234375 V 18 H 16 V 5.234375 Z m 0,2.417969 5.628906,3.683593 -5.628906,4.5 -5.628906,-4.5 z M 2,8.390625 8,13.1875 14,8.390625 v 7.574219 H 2 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/read.svg b/p/themes/Mapco/icons/read.svg
new file mode 100644
index 000000000..d583cce03
--- /dev/null
+++ b/p/themes/Mapco/icons/read.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="18"
+ viewBox="0 0 16 18"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="read.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="13.882353"
+ inkscape:cx="8"
+ inkscape:cy="8.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 8,0 0.460938,4.933594 0,5.234375 V 18 H 16 V 5.234375 Z m 0,2.417969 5.628906,3.683593 -5.628906,4.5 -5.628906,-4.5 z M 2,8.390625 8,13.1875 14,8.390625 v 7.574219 H 2 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/refresh.svg b/p/themes/Mapco/icons/refresh.svg
new file mode 100644
index 000000000..f23fbf4a2
--- /dev/null
+++ b/p/themes/Mapco/icons/refresh.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="17"
+ height="17"
+ viewBox="0 0 17 17"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="refresh.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="14.75"
+ inkscape:cx="8"
+ inkscape:cy="8"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface3">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 15,0 V 3.042969 C 12.386719,-0.0820312 7.859375,-0.945312 4.25,1.132812 0.1875,3.480469 -1.207031,8.679688 1.140625,12.746094 3.488281,16.8125 8.683594,18.207031 12.75,15.859375 c 0.140625,-0.08594 0.28125,-0.179687 0.417969,-0.273437 L 12.171875,13.859375 C 12.035156,13.953125 11.894531,14.042969 11.75,14.125 8.640625,15.921875 4.667969,14.855469 2.871094,11.746094 1.078125,8.636719 2.140625,4.660156 5.25,2.863281 8.191406,1.167969 11.941406,2.019531 13.859375,4.820312 L 14.035156,5 H 10 v 2 h 7 V 0 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/rss-white.svg b/p/themes/Mapco/icons/rss-white.svg
new file mode 100644
index 000000000..b7fbf9987
--- /dev/null
+++ b/p/themes/Mapco/icons/rss-white.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="17"
+ height="17"
+ viewBox="0 0 17 17"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="rss-white.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="8"
+ inkscape:cx="-5.9380772"
+ inkscape:cy="10.889349"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2"
+ transform="translate(0,-1)">
+ <path
+ style="fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 4.246094,15.433594 c 0,1.101562 -0.898438,2 -2,2 -1.105469,0 -2,-0.898438 -2,-2 0,-1.105469 0.894531,-2 2,-2 1.101562,0 2,0.894531 2,2 m 5,2 c 0,-4.984375 -4.019532,-9 -9,-9 v -2 c 6.0625,0 11,4.933594 11,11 z m 5.5,0 c 0,-8.019532 -6.480469,-14.5 -14.5,-14.5 v -2 c 9.097656,0 16.5,7.398437 16.5,16.5 z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/rss.svg b/p/themes/Mapco/icons/rss.svg
new file mode 100644
index 000000000..7044bbaa4
--- /dev/null
+++ b/p/themes/Mapco/icons/rss.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="17"
+ height="17"
+ viewBox="0 0 17 17"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="rss.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="14.75"
+ inkscape:cx="8"
+ inkscape:cy="8"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2"
+ transform="translate(0,-1)">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 4.246094,15.433594 c 0,1.101562 -0.898438,2 -2,2 -1.105469,0 -2,-0.898438 -2,-2 0,-1.105469 0.894531,-2 2,-2 1.101562,0 2,0.894531 2,2 m 5,2 c 0,-4.984375 -4.019532,-9 -9,-9 v -2 c 6.0625,0 11,4.933594 11,11 z m 5.5,0 c 0,-8.019532 -6.480469,-14.5 -14.5,-14.5 v -2 c 9.097656,0 16.5,7.398437 16.5,16.5 z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/starred-white.svg b/p/themes/Mapco/icons/starred-white.svg
new file mode 100644
index 000000000..896dd1eeb
--- /dev/null
+++ b/p/themes/Mapco/icons/starred-white.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="15"
+ viewBox="0 0 16 15"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="starred-white.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="16.857143"
+ inkscape:cx="7.5"
+ inkscape:cy="7"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 0.410156,6.054688 6.507812,6.003906 8.375,0.292969 10.3125,5.980469 16.410156,5.964844 11.507812,9.53125 13.40625,15.234375 8.441406,11.75 3.519531,15.289062 5.351562,9.566406 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/starred.svg b/p/themes/Mapco/icons/starred.svg
new file mode 100644
index 000000000..3b0bf8cb8
--- /dev/null
+++ b/p/themes/Mapco/icons/starred.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="15" viewBox="0 0 16 15" version="1.1">
+<g id="surface2">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(32.54902%,32.54902%,32.54902%);fill-opacity:1;" d="M 0 5.765625 L 6.097656 5.710938 L 7.964844 0 L 9.902344 5.691406 L 16 5.671875 L 11.097656 9.242188 L 13 14.941406 L 8.035156 11.457031 L 3.109375 15 L 4.945312 9.277344 Z M 0 5.765625 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Mapco/icons/tick-color.svg b/p/themes/Mapco/icons/tick-color.svg
new file mode 100644
index 000000000..302541e80
--- /dev/null
+++ b/p/themes/Mapco/icons/tick-color.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48" viewBox="0 0 48 48" version="1.1">
+<g id="surface3">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(20%,40%,80%);fill-opacity:1;" d="M 24 0 C 10.746094 0 0 10.746094 0 24 C 0 37.253906 10.746094 48 24 48 C 37.253906 48 48 37.253906 48 24 C 48 10.746094 37.253906 0 24 0 Z M 36.96875 14.488281 C 37.585938 14.472656 38.148438 14.835938 38.386719 15.402344 C 38.628906 15.96875 38.5 16.625 38.0625 17.054688 L 22.058594 33.058594 C 21.472656 33.644531 20.523438 33.644531 19.941406 33.058594 L 12.941406 26.0625 C 12.386719 25.472656 12.402344 24.550781 12.972656 23.976562 C 13.542969 23.402344 14.464844 23.386719 15.058594 23.9375 L 21.003906 29.878906 L 35.945312 14.9375 C 36.214844 14.664062 36.582031 14.5 36.96875 14.488281 Z M 36.96875 14.488281 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Mapco/icons/tick-white.svg b/p/themes/Mapco/icons/tick-white.svg
new file mode 100644
index 000000000..0bcc26f47
--- /dev/null
+++ b/p/themes/Mapco/icons/tick-white.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48" viewBox="0 0 48 48" version="1.1">
+<g id="surface3">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 24 0 C 10.746094 0 0 10.746094 0 24 C 0 37.253906 10.746094 48 24 48 C 37.253906 48 48 37.253906 48 24 C 48 10.746094 37.253906 0 24 0 Z M 36.96875 14.488281 C 37.585938 14.472656 38.148438 14.835938 38.386719 15.402344 C 38.628906 15.96875 38.5 16.625 38.0625 17.054688 L 22.058594 33.058594 C 21.472656 33.644531 20.523438 33.644531 19.941406 33.058594 L 12.941406 26.0625 C 12.386719 25.472656 12.402344 24.550781 12.972656 23.976562 C 13.542969 23.402344 14.464844 23.386719 15.058594 23.9375 L 21.003906 29.878906 L 35.945312 14.9375 C 36.214844 14.664062 36.582031 14.5 36.96875 14.488281 Z M 36.96875 14.488281 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Mapco/icons/tick.svg b/p/themes/Mapco/icons/tick.svg
new file mode 100644
index 000000000..9c436e7a0
--- /dev/null
+++ b/p/themes/Mapco/icons/tick.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="47" viewBox="0 0 48 47" version="1.1">
+<g id="surface3">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(18.823529%,19.215686%,21.176471%);fill-opacity:1;" d="M 24 0 C 10.746094 0 0 10.746094 0 24 C 0 37.253906 10.746094 48 24 48 C 37.253906 48 48 37.253906 48 24 C 48 10.746094 37.253906 0 24 0 Z M 36.96875 14.488281 C 37.585938 14.472656 38.148438 14.835938 38.386719 15.402344 C 38.628906 15.96875 38.5 16.625 38.0625 17.054688 L 22.058594 33.058594 C 21.472656 33.644531 20.523438 33.644531 19.941406 33.058594 L 12.941406 26.0625 C 12.386719 25.472656 12.402344 24.550781 12.972656 23.976562 C 13.542969 23.402344 14.464844 23.386719 15.058594 23.9375 L 21.003906 29.878906 L 35.945312 14.9375 C 36.214844 14.664062 36.582031 14.5 36.96875 14.488281 Z M 36.96875 14.488281 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Mapco/icons/unread-grey.svg b/p/themes/Mapco/icons/unread-grey.svg
new file mode 100644
index 000000000..1981cf92c
--- /dev/null
+++ b/p/themes/Mapco/icons/unread-grey.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="13"
+ viewBox="0 0 16 13"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="unread.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="19.666667"
+ inkscape:cx="8"
+ inkscape:cy="6"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 0,0 V 13 H 16 V 0 Z m 3.257812,2 h 9.484376 L 8,5.726562 Z M 2,3.554688 8,8.269531 14,3.554688 V 11 H 2 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/unread-white.svg b/p/themes/Mapco/icons/unread-white.svg
new file mode 100644
index 000000000..6623924ab
--- /dev/null
+++ b/p/themes/Mapco/icons/unread-white.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="13" viewBox="0 0 16 13" version="1.1">
+<g id="surface2">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(94.901961%,94.901961%,94.901961%);fill-opacity:1;" d="M 0 0 L 0 13 L 16 13 L 16 0 Z M 3.257812 2 L 12.742188 2 L 8 5.726562 Z M 2 3.558594 L 8 8.273438 L 14 3.558594 L 14 11 L 2 11 Z M 2 3.558594 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Mapco/icons/unread.svg b/p/themes/Mapco/icons/unread.svg
new file mode 100644
index 000000000..5c6c3ac8e
--- /dev/null
+++ b/p/themes/Mapco/icons/unread.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="13"
+ viewBox="0 0 16 13"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="unread-main-color.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="19.666667"
+ inkscape:cx="8"
+ inkscape:cy="6"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#3366cc;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 0,0 V 13 H 16 V 0 Z m 3.257812,2 h 9.484376 L 8,5.726562 Z M 2,3.554688 8,8.273438 14,3.554688 V 11 H 2 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/up-white.svg b/p/themes/Mapco/icons/up-white.svg
new file mode 100644
index 000000000..e19d1e1d9
--- /dev/null
+++ b/p/themes/Mapco/icons/up-white.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="10"
+ viewBox="0 0 16 10"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="up-white.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="26.222222"
+ inkscape:cx="7.5"
+ inkscape:cy="4.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 14.386719,9.46875 15.800781,8.054688 8.09375,0.347656 0.386719,8.054688 1.800781,9.46875 8.09375,3.175781 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/up.svg b/p/themes/Mapco/icons/up.svg
new file mode 100644
index 000000000..306b076e9
--- /dev/null
+++ b/p/themes/Mapco/icons/up.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="16"
+ height="10"
+ viewBox="0 0 16 10"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="up.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1026"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="26.222222"
+ inkscape:cx="7.5"
+ inkscape:cy="4.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 14.386719,9.46875 15.800781,8.054688 8.09375,0.347656 0.386719,8.054688 1.800781,9.46875 8.09375,3.175781 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/view-global-white.svg b/p/themes/Mapco/icons/view-global-white.svg
new file mode 100644
index 000000000..950267f6a
--- /dev/null
+++ b/p/themes/Mapco/icons/view-global-white.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15" height="15" viewBox="0 0 15 15" version="1.1">
+<g id="surface2">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(94.901961%,94.901961%,94.901961%);fill-opacity:1;" d="M 6 12 L 9 12 L 9 15 L 6 15 Z M 12 12 L 15 12 L 15 15 L 12 15 Z M 0 12 L 3 12 L 3 15 L 0 15 Z M 6 6 L 9 6 L 9 9 L 6 9 Z M 12 6 L 15 6 L 15 9 L 12 9 Z M 0 6 L 3 6 L 3 9 L 0 9 Z M 6 0 L 9 0 L 9 3 L 6 3 Z M 12 0 L 15 0 L 15 3 L 12 3 Z M 0 0 L 3 0 L 3 3 L 0 3 Z M 0 0 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Mapco/icons/view-global.svg b/p/themes/Mapco/icons/view-global.svg
new file mode 100644
index 000000000..08632a190
--- /dev/null
+++ b/p/themes/Mapco/icons/view-global.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="15"
+ height="15"
+ viewBox="0 0 15 15"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="view-global.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="16.857143"
+ inkscape:cx="7.5"
+ inkscape:cy="7"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 6,12 h 3 v 3 H 6 Z m 6,0 h 3 v 3 H 12 Z M 0,12 h 3 v 3 H 0 Z M 6,6 H 9 V 9 H 6 Z m 6,0 h 3 V 9 H 12 Z M 0,6 H 3 V 9 H 0 Z M 6,0 H 9 V 3 H 6 Z m 6,0 h 3 V 3 H 12 Z M 0,0 H 3 V 3 H 0 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/view-list-white.svg b/p/themes/Mapco/icons/view-list-white.svg
new file mode 100644
index 000000000..c76fc298b
--- /dev/null
+++ b/p/themes/Mapco/icons/view-list-white.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15" height="14" viewBox="0 0 15 14" version="1.1">
+<g id="surface2">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(94.901961%,94.901961%,94.901961%);fill-opacity:1;" d="M 0 12 L 15 12 L 15 14 L 0 14 Z M 0 6 L 15 6 L 15 8 L 0 8 Z M 0 0 L 15 0 L 15 2 L 0 2 Z M 0 0 "/>
+</g>
+</svg> \ No newline at end of file
diff --git a/p/themes/Mapco/icons/view-list.svg b/p/themes/Mapco/icons/view-list.svg
new file mode 100644
index 000000000..bcea01055
--- /dev/null
+++ b/p/themes/Mapco/icons/view-list.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="15"
+ height="14"
+ viewBox="0 0 15 14"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="view-list.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="16.857143"
+ inkscape:cx="7.5"
+ inkscape:cy="7"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2"
+ transform="translate(0,-1)">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 0,13 h 15 v 2 H 0 Z M 0,7 H 15 V 9 H 0 Z M 0,1 H 15 V 3 H 0 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/view-reader-white.svg b/p/themes/Mapco/icons/view-reader-white.svg
new file mode 100644
index 000000000..70175c623
--- /dev/null
+++ b/p/themes/Mapco/icons/view-reader-white.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="14"
+ height="16"
+ viewBox="0 0 14 16"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="view-reader-white.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="15.733333"
+ inkscape:cx="7"
+ inkscape:cy="7.5"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 3.5,10 H 8 v 1.5 H 3.5 Z m 0,-3 h 7 v 1.5 h -7 z m 0,-3 h 7 v 1.5 h -7 z M 0,16 V 0 H 14 V 16 Z M 2,14 H 12 V 2 H 2 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/icons/view-reader.svg b/p/themes/Mapco/icons/view-reader.svg
new file mode 100644
index 000000000..7471037d9
--- /dev/null
+++ b/p/themes/Mapco/icons/view-reader.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ width="14"
+ height="16"
+ viewBox="0 0 14 16"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="view-reader.svg"
+ inkscape:version="0.92.3 (unknown)">
+ <metadata
+ id="metadata11">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs9" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="841"
+ inkscape:window-height="480"
+ id="namedview7"
+ showgrid="false"
+ inkscape:zoom="8"
+ inkscape:cx="-1.7138348"
+ inkscape:cy="3.5263348"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg5" />
+ <g
+ id="surface2">
+ <path
+ style="fill:#515151;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="M 3.5,10 H 8 v 1.5 H 3.5 Z m 0,-3 h 7 v 1.5 h -7 z m 0,-3 h 7 v 1.5 h -7 z M 0,16 V 0 H 14 V 16 Z M 2,14 H 12 V 2 H 2 Z m 0,0"
+ id="path2"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/p/themes/Mapco/loader.gif b/p/themes/Mapco/loader.gif
new file mode 100644
index 000000000..ce36565b3
--- /dev/null
+++ b/p/themes/Mapco/loader.gif
Binary files differ
diff --git a/p/themes/Mapco/mapco.css b/p/themes/Mapco/mapco.css
new file mode 100644
index 000000000..90994163e
--- /dev/null
+++ b/p/themes/Mapco/mapco.css
@@ -0,0 +1,1306 @@
+@font-face {
+ font-family: "lato";
+ font-style: normal;
+ font-stretch: normal;
+ font-weight: 400;
+ src: local("Lato"), url("../fonts/LatoLatin-Regular.woff") format("woff"); }
+@font-face {
+ font-family: "lato";
+ font-style: italic;
+ font-stretch: normal;
+ font-weight: 400;
+ src: local("Lato"), url("../fonts/LatoLatin-Italic.woff") format("woff"); }
+@font-face {
+ font-family: "lato";
+ font-style: normal;
+ font-stretch: normal;
+ font-weight: 700;
+ src: local("Lato"), url("../fonts/LatoLatin-Bold.woff") format("woff"); }
+@font-face {
+ font-family: "lato";
+ font-style: italic;
+ font-stretch: normal;
+ font-weight: 700;
+ src: local("Lato"), url("../fonts/LatoLatin-BoldItalic.woff") format("woff"); }
+@font-face {
+ font-family: "spectral";
+ font-style: normal;
+ font-stretch: normal;
+ font-weight: 400;
+ src: local("Spectral"), url("../fonts/Spectral-Regular.woff") format("woff"); }
+@font-face {
+ font-family: "spectral";
+ font-style: italic;
+ font-stretch: normal;
+ font-weight: 400;
+ src: local("Spectral"), url("../fonts/Spectral-Italic.woff") format("woff"); }
+@font-face {
+ font-family: "spectral";
+ font-style: normal;
+ font-stretch: normal;
+ font-weight: 700;
+ src: local("Spectral"), url("../fonts/Spectral-Bold.woff") format("woff"); }
+@font-face {
+ font-family: "spectral";
+ font-style: italic;
+ font-stretch: normal;
+ font-weight: 700;
+ src: local("Spectral"), url("../fonts/Spectral-BoldItalic.woff") format("woff"); }
+/* FUNCTIONS */
+/* btns */
+.btn {
+ display: inline-block;
+ min-height: 38px;
+ min-width: 15px;
+ line-height: 25px;
+ margin: 0;
+ padding: 0.5rem 1.5rem;
+ font-size: 1rem;
+ vertical-align: middle;
+ cursor: pointer;
+ overflow: hidden;
+ background: #f9fafb;
+ border-radius: 5px;
+ border: none;
+ color: #5b6871;
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ -o-transition: all 0.15s ease-in-out;
+ -ms-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out; }
+ .btn.btn-important {
+ background: #3366cc;
+ color: #fff; }
+ .btn.btn-important:hover, .btn.btn-important:active {
+ background: #2255cc; }
+ .btn.btn-attention {
+ background: #f5633e;
+ color: #fff; }
+ .btn.btn-attention:hover, .btn.btn-attention:active {
+ background: #73341f; }
+ .btn:hover {
+ text-decoration: none; }
+
+a.btn {
+ min-height: 25px;
+ line-height: 25px; }
+
+/*=== Forms */
+legend {
+ display: inline-block;
+ width: auto;
+ margin: 2rem 0 1rem 0;
+ padding: 0;
+ font-size: 1rem;
+ clear: both;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ font-weight: 700; }
+
+label {
+ min-height: 25px;
+ padding: 5px 0;
+ cursor: pointer;
+ color: #5b6871; }
+
+textarea {
+ width: 360px;
+ height: 100px; }
+
+input, select, textarea, button {
+ font-family: "lato", "Helvetica", "Arial", sans-serif;
+ min-height: 25px;
+ padding: 5px 10px;
+ line-height: 25px;
+ vertical-align: middle;
+ background: #fff;
+ border: 1px solid #eff0f2;
+ font-size: 1rem;
+ color: #5b6871;
+ border-radius: 2px; }
+
+option {
+ padding: 0 .5em; }
+
+input:focus, select:focus, textarea:focus {
+ color: #303136;
+ border-color: #3366cc; }
+
+input:invalid, select:invalid {
+ color: #f5633e;
+ border-color: #f5633e;
+ box-shadow: none; }
+
+input:disabled, select:disabled {
+ background: #eff0f2; }
+
+input.extend {
+ transition: width 200ms linear;
+ -moz-transition: width 200ms linear;
+ -webkit-transition: width 200ms linear;
+ -o-transition: width 200ms linear;
+ -ms-transition: width 200ms linear; }
+
+.form-group {
+ padding: 5px;
+ border-radius: 3px; }
+ .form-group::after {
+ content: "";
+ display: block;
+ clear: both; }
+ .form-group .group-name {
+ padding: 10px 0;
+ text-align: right; }
+ .form-group .group-controls {
+ min-height: 25px;
+ padding: 5px 0; }
+ .form-group .group-controls .control {
+ line-height: 2.0em; }
+ .form-group table {
+ margin: 10px 0 0 220px; }
+ .form-group.form-actions {
+ margin: 15px 0 25px;
+ padding: 5px 0; }
+ .form-group.form-actions .btn {
+ margin: 0 0.5rem 0 0; }
+
+/*=== Tables */
+table {
+ border-collapse: collapse; }
+
+tr, th, td {
+ padding: 0.5em;
+ border: 1px solid #d5d8db; }
+
+th {
+ background: #f9fafb; }
+
+form td,
+form th {
+ font-weight: normal;
+ text-align: center; }
+
+/*=== COMPONENTS */
+/*===============*/
+/*=== Forms */
+/*=== Horizontal-list */
+.horizontal-list {
+ margin: 0;
+ padding: 0.1rem 0; }
+ .horizontal-list .item {
+ vertical-align: middle; }
+ .horizontal-list .item:first-child {
+ padding-left: 0.5rem; }
+
+/*=== Dropdown */
+.dropdown-menu {
+ background: #f9fafb;
+ margin: 0;
+ font-size: 1rem;
+ text-align: left;
+ padding: 0.5rem 0 1rem 0;
+ border: none;
+ border-radius: 3px;
+ -webkit-box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35);
+ -moz-box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35);
+ box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35); }
+ .dropdown-menu::after {
+ content: "";
+ position: absolute;
+ top: -4px;
+ right: 13px;
+ width: 10px;
+ height: 10px;
+ z-index: -10;
+ transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ background: white; }
+ .dropdown-menu .dropdown-header {
+ margin: 1.75rem 0 0.5rem 2rem;
+ font-weight: bold;
+ text-align: left;
+ color: #5b6871;
+ text-transform: uppercase;
+ letter-spacing: 1px; }
+ .dropdown-menu .item {
+ -webkit-transition: all 0.075s ease-in-out;
+ -moz-transition: all 0.075s ease-in-out;
+ -o-transition: all 0.075s ease-in-out;
+ -ms-transition: all 0.075s ease-in-out;
+ transition: all 0.075s ease-in-out; }
+ .dropdown-menu .item a, .dropdown-menu .item span, .dropdown-menu .item .as-link {
+ padding: 0 2rem;
+ line-height: 2.5em;
+ font-size: 1rem;
+ color: #303136; }
+ .dropdown-menu .item:hover {
+ background: #3366cc;
+ color: #fff; }
+ .dropdown-menu .item:hover a, .dropdown-menu .item:hover button {
+ text-decoration: none;
+ color: #fff; }
+ .dropdown-menu .item[aria-checked="true"] a::before {
+ font-weight: bold;
+ margin: 0 0 0 -14px; }
+ .dropdown-menu .input select, .dropdown-menu .input input {
+ margin: 0 auto 5px;
+ padding: 2px 5px;
+ border-radius: 3px; }
+ .dropdown-menu .separator {
+ margin: 0.75rem 0;
+ border-bottom: 1px solid #eff0f2; }
+
+.tree .tree-folder .tree-folder-items .dropdown-menu .item,
+.tree .tree-folder .tree-folder-items .dropdown-menu .item {
+ padding: 0; }
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item a,
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item button,
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item a,
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item button {
+ color: #303136; }
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item a:hover,
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item button:hover,
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item a:hover,
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item button:hover {
+ color: #fff; }
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item:hover,
+ .tree .tree-folder .tree-folder-items .dropdown-menu .item:hover {
+ background: #3366cc; }
+
+/*=== Alerts */
+.alert {
+ margin: 1rem 0;
+ padding: 1rem;
+ font-size: 1rem;
+ background: #f9fafb;
+ border: 1px solid #c5ced3;
+ border-radius: 3px;
+ color: #5b6871;
+ text-shadow: 0 0 1px #eff0f2; }
+
+.alert-head {
+ font-size: 1.15em; }
+
+.alert > a {
+ text-decoration: underline;
+ color: inherit; }
+
+.alert-warn {
+ background: #fdfde0;
+ border: 1px solid #73762f33;
+ color: #73762f; }
+
+.alert-success {
+ background: #cffde7;
+ border: 1px solid #0c754033;
+ color: #0c7540; }
+
+.alert-error {
+ background: #fde0d8;
+ border: 1px solid #73341f33;
+ color: #73341f; }
+
+/*=== Pagination */
+.pagination {
+ text-align: center;
+ font-size: 0.8em;
+ background: #eff0f2;
+ color: #303136; }
+ .pagination .item.pager-current {
+ font-weight: bold;
+ font-size: 1.5em;
+ background: #303136;
+ color: #eff0f2; }
+ .pagination .item a {
+ display: block;
+ font-style: italic;
+ line-height: 3em;
+ text-decoration: none;
+ color: #303136; }
+ .pagination .item a:hover {
+ background: #303136;
+ color: #eff0f2; }
+ .pagination .loading,
+ .pagination a:hover.loading {
+ font-size: 0;
+ background: url("loader.gif") center center no-repeat #34495e; }
+
+.content .pagination {
+ margin: 0;
+ padding: 0; }
+
+/*=== Boxes */
+.box {
+ border: none;
+ border-radius: 3px;
+ background: #fff;
+ -webkit-box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25);
+ -moz-box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25);
+ box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25); }
+ .box .box-title {
+ margin: 0;
+ padding: 5px 10px;
+ background: #eff0f2;
+ color: #303136;
+ border-radius: 2px 2px 0 0; }
+ .box .box-title form input {
+ width: 85%; }
+ .box .box-title form .dropdown {
+ float: right; }
+ .box .box-title form .dropdown a.dropdown-toggle {
+ padding: 0;
+ background-image: url(icons/more.svg);
+ background-repeat: no-repeat;
+ background-position: right 8px;
+ border-radius: 0; }
+ .box .box-title form .dropdown a.dropdown-toggle img {
+ display: none; }
+ .box .box-content .item {
+ padding: 0.5rem 0.75rem;
+ font-size: 1rem;
+ color: #303136;
+ line-height: 1.7em;
+ border-bottom: 1px solid #eff0f2; }
+ .box .box-content .item img {
+ margin-right: 0.75rem; }
+ .box .box-content .item .configure {
+ visibility: hidden;
+ width: 1.75rem;
+ height: 1.75rem;
+ display: block;
+ border-radius: 2px;
+ float: left;
+ margin-right: 0.5rem;
+ background: url("icons/cog.svg") no-repeat 4px 4px; }
+ .box .box-content .item .configure .icon {
+ vertical-align: middle;
+ border-radius: 3px;
+ display: none; }
+ .box .box-content .item .configure:hover {
+ background: url("icons/cog-white.svg") no-repeat 4px 4px #3366cc; }
+ .box .box-content .item:hover .configure {
+ visibility: visible; }
+ .box .box-content .item:last-child {
+ border-bottom: none; }
+
+/*=== "Load more" part */
+#bigMarkAsRead {
+ text-align: center;
+ text-decoration: none;
+ background: #effcfd;
+ color: #3366cc;
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ -o-transition: all 0.15s ease-in-out;
+ -ms-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out; }
+ #bigMarkAsRead:hover {
+ background: #3366cc;
+ color: #fff; }
+ #bigMarkAsRead:hover .bigTick {
+ background: url(icons/tick-white.svg) center no-repeat; }
+ #bigMarkAsRead .bigTick {
+ margin: 0.5rem 0;
+ display: inline-block;
+ text-indent: -9999px;
+ background: url(icons/tick-color.svg) center no-repeat;
+ height: 64px;
+ width: 64px;
+ white-space: nowrap; }
+
+.formLogin {
+ background: #303136; }
+ .formLogin .header .configure {
+ padding-right: 1rem; }
+ .formLogin .header .configure img {
+ margin-right: 0.5rem; }
+ .formLogin .header .configure a.signin {
+ color: #fff; }
+ .formLogin h1 {
+ color: #fff; }
+ .formLogin form#crypto-form div {
+ margin-bottom: 1rem; }
+ .formLogin form#crypto-form div label {
+ font-size: 1rem;
+ color: #c5ced3; }
+ .formLogin form#crypto-form div input {
+ background: #1d1e22; }
+ .formLogin form#crypto-form div input:focus {
+ background: #f9fafb;
+ color: #303136; }
+
+/*=== DIVERS */
+/*===========*/
+.aside.aside_feed .nav-form input,
+.aside.aside_feed .nav-form select {
+ width: 140px; }
+
+.aside.aside_feed .nav-form .dropdown .dropdown-menu {
+ right: -20px; }
+
+.aside.aside_feed .nav-form .dropdown .dropdown-menu::after {
+ right: 33px; }
+
+/*=== Tree */
+.tree {
+ margin: 10px 0; }
+ .tree#sidebar {
+ scrollbar-color: rgba(255, 255, 0, 0.1) rgba(0, 0, 0, 0.05);
+ scrollbar-color: #FFFFFF33 #FFFFFF22; }
+ .tree .tree-folder {
+ border-bottom: 1px solid #3f3f3f; }
+ .tree .tree-folder .tree-folder-title {
+ position: relative;
+ background: #303136;
+ font-size: 0.85rem;
+ letter-spacing: 1px;
+ padding: 12px 16px;
+ font-weight: 700;
+ text-transform: uppercase; }
+ .tree .tree-folder .tree-folder-title .title {
+ background: inherit;
+ color: #FFFFFF; }
+ .tree .tree-folder .tree-folder-title .title:hover {
+ text-decoration: none; }
+ .tree .tree-folder.active .tree-folder-title {
+ background: #303136;
+ font-weight: bold; }
+ .tree .tree-folder .tree-folder-items {
+ background: #26272a; }
+ .tree .tree-folder .tree-folder-items .item {
+ padding: 0 1rem;
+ line-height: 2.5rem;
+ font-size: 1rem;
+ font-weight: 400;
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ -o-transition: all 0.15s ease-in-out;
+ -ms-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out; }
+ .tree .tree-folder .tree-folder-items .item.active {
+ background: #3366cc; }
+ .tree .tree-folder .tree-folder-items .item.active .dropdown li a {
+ color: #303136; }
+ .tree .tree-folder .tree-folder-items .item.active .dropdown li a:hover {
+ color: #FFFFFF; }
+ .tree .tree-folder .tree-folder-items .item.active a {
+ color: #FFFFFF; }
+ .tree .tree-folder .tree-folder-items .item:hover {
+ background: #17181a; }
+ .tree .tree-folder .tree-folder-items .item a {
+ text-decoration: none;
+ color: #FFFFFF; }
+ .tree .tree-folder .tree-folder-items .feed .item-title:not([data-unread="0"])::before {
+ content: attr(data-unread);
+ background: rgba(0, 0, 0, 0.25);
+ font-size: 0.75rem;
+ display: block;
+ float: left;
+ padding: 3px 4px;
+ text-align: center;
+ border-radius: 12px;
+ margin: 11px 6px 0 4px;
+ line-height: 0.75rem; }
+
+/*=== Buttons */
+.stick {
+ vertical-align: middle;
+ font-size: 0; }
+ .stick input, .stick .btn {
+ border-radius: 0; }
+ .stick .btn:first-child,
+ .stick input:first-child {
+ border-radius: 5px 0 0 5px; }
+ .stick .btn:last-child, .stick input:last-child, .stick .btn + .dropdown > .btn {
+ border-radius: 0 5px 5px 0; }
+ .stick .btn + .btn,
+ .stick .btn + input,
+ .stick .btn + .dropdown > .btn,
+ .stick input + .btn,
+ .stick input + input,
+ .stick input + .dropdown > .btn,
+ .stick .dropdown + .btn,
+ .stick .dropdown + input,
+ .stick .dropdown + .dropdown > .btn {
+ border-left: 1px solid #d5d8db; }
+
+.aside {
+ background: #303136; }
+ .aside.aside_feed {
+ padding: 10px 0;
+ text-align: center;
+ background: #303136; }
+ .aside.aside_feed .tree {
+ margin: 10px 0 50px; }
+
+/* Sidebar des pages de configuration */
+/*=== Navigation */
+.nav-list .nav-header,
+.nav-list .item {
+ height: 2.5em;
+ line-height: 2.5em;
+ font-size: 1rem; }
+.nav-list .item {
+ background: #303136;
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ -o-transition: all 0.15s ease-in-out;
+ -ms-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out; }
+ .nav-list .item a {
+ padding: 0 1rem;
+ color: #FFFFFF; }
+ .nav-list .item .error a {
+ color: #f5633e; }
+ .nav-list .item:hover {
+ background: #17181a;
+ color: #FFFFFF; }
+ .nav-list .item:hover .error a {
+ color: #FFFFFF;
+ background: #3366cc; }
+ .nav-list .item:hover .empty a {
+ color: #FFFFFF;
+ background: #f4f762; }
+ .nav-list .item:hover a {
+ color: #FFFFFF;
+ text-decoration: none; }
+ .nav-list .item.active {
+ background: #3366cc;
+ color: #fff; }
+ .nav-list .item.active .error a {
+ color: #fff;
+ background: #3366cc; }
+ .nav-list .item.active .empty a {
+ color: #fff;
+ background: #f4f762; }
+ .nav-list .item.active a {
+ color: #fff;
+ text-decoration: none; }
+.nav-list.empty a {
+ color: #f4f762; }
+.nav-list .disable {
+ text-align: center;
+ background: #f9fafb;
+ color: #a6a7ae; }
+.nav-list .nav-header {
+ padding: 0 10px;
+ font-weight: bold;
+ color: #5b6871;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ margin-top: 1rem; }
+.nav-list .nav-form {
+ padding: 3px;
+ text-align: center; }
+.nav-list .nav-head {
+ margin: 0;
+ text-align: right;
+ color: #fff; }
+ .nav-list .nav-head a {
+ color: #fff; }
+ .nav-list .nav-head .item {
+ padding: 5px 10px;
+ font-size: 0.9rem;
+ line-height: 1.5rem; }
+
+/*=== Aside main page (categories) */
+.aside_feed .tree-folder-title > .title:not([data-unread="0"])::after {
+ position: absolute;
+ right: 0;
+ line-height: 1.5rem;
+ background: rgba(0, 0, 0, 0.25);
+ border-radius: 12px;
+ padding: 0 0.75rem;
+ margin: -0.5rem 1rem 0 0;
+ text-align: center; }
+
+.feed.item.empty.active {
+ background: #5b6871; }
+
+.feed.item.error.active {
+ background: #5b6871; }
+
+.feed.item.empty,
+.feed.item.empty > a {
+ color: #5b6871; }
+
+.feed.item.error,
+.feed.item.error > a {
+ color: #5b6871; }
+
+.feed.item.empty.active,
+.feed.item.error.active,
+.feed.item.empty.active > a,
+.feed.item.error.active > a {
+ color: #fff; }
+
+.aside_feed .tree-folder-items .dropdown-menu::after {
+ left: 2px; }
+
+.aside_feed .tree-folder-items .item .dropdown-target:target ~ .dropdown-toggle > .icon,
+.aside_feed .tree-folder-items .item:hover .dropdown-toggle > .icon,
+.aside_feed .tree-folder-items .item.active .dropdown-toggle > .icon {
+ border-radius: 3px; }
+
+.aside_feed .stick #btn-importExport {
+ border-left-color: #303136; }
+
+/*=== STRUCTURE */
+/*===============*/
+/*=== Header */
+.header {
+ background: #303136;
+ padding: 0.5rem 1.35rem;
+ display: block;
+ table-layout: none;
+ width: auto; }
+ .header .item {
+ vertical-align: middle; }
+ .header .item.title {
+ font-weight: 400;
+ width: 280px; }
+ .header .item.title h1 a {
+ text-decoration: none;
+ color: #FFFFFF;
+ font-size: 1rem;
+ text-transform: uppercase;
+ letter-spacing: 1px; }
+ .header .item.title h1 a img {
+ margin-right: 0.5rem; }
+ .header .item.search input {
+ width: 230px;
+ border-radius: 2px 0 0 2px;
+ background-color: #26272a;
+ color: #FFFFFF;
+ border: none;
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ -o-transition: all 0.15s ease-in-out;
+ -ms-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out; }
+ .header .item.search input:hover {
+ background-color: #17181a; }
+ .header .item.search input:focus {
+ width: 350px;
+ background-color: #fff;
+ color: #5b6871; }
+ .header .item.search .btn {
+ border-radius: 0 2px 2px 0;
+ background-color: #3366cc;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-image: url(icons/magnifier.svg);
+ border-left-width: 0;
+ width: 3rem;
+ min-height: 35px; }
+ .header .item.search .btn img {
+ display: none; }
+ .header .item.search .btn:hover {
+ background-color: #2255cc; }
+ .header .item.configure {
+ width: 2rem;
+ position: absolute;
+ right: 1rem;
+ top: 1.25rem;
+ text-align: center; }
+ .header .item.configure .btn {
+ background-color: transparent;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-image: url(icons/cog-white.svg);
+ padding: 0 0.5rem; }
+ .header .item.configure .btn img {
+ display: none; }
+
+/*=== Body */
+#global {
+ height: calc(100% - 85px); }
+
+/*=== Prompt (centered) */
+.prompt {
+ text-align: center; }
+
+.prompt label {
+ text-align: left; }
+
+.prompt form {
+ margin: 10px auto 20px auto;
+ width: 200px; }
+
+.prompt input {
+ margin: 5px auto;
+ width: 100%; }
+
+.prompt p {
+ margin: 20px 0; }
+
+/*=== New article notification */
+#new-article {
+ text-align: center;
+ font-size: 1rem;
+ background: #3366cc; }
+
+#new-article:hover {
+ background: #2255cc; }
+
+#new-article > a {
+ line-height: 3em;
+ font-weight: bold;
+ color: #fff; }
+
+#new-article > a:hover {
+ text-decoration: none; }
+
+/*=== Day indication */
+.day {
+ padding: 1rem 0 0 1.25rem;
+ font-weight: 700;
+ line-height: 3em;
+ letter-spacing: 1px;
+ text-transform: uppercase;
+ font-size: 0.875rem;
+ color: #5b6871; }
+ .day .name {
+ padding: 0 1rem 0 1rem;
+ font-size: 0.875rem;
+ color: #303136;
+ position: relative;
+ left: 0;
+ text-transform: uppercase; }
+
+/*=== Index menu */
+.nav_menu {
+ text-align: center;
+ padding: 5px 0; }
+ .nav_menu .btn {
+ border-left-width: 0;
+ padding: 0.5rem 1rem;
+ background-color: #f9fafb;
+ background-position: center;
+ background-repeat: no-repeat; }
+ .nav_menu .btn:hover {
+ background-color: #eff0f2; }
+ .nav_menu .stick {
+ background: #f9fafb; }
+ .nav_menu .stick .btn {
+ border-left-width: 0;
+ padding: 0.5rem 1rem;
+ background-color: #f9fafb;
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ -o-transition: all 0.15s ease-in-out;
+ -ms-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out; }
+ .nav_menu .stick .btn:hover {
+ background-color: #d5d8db; }
+ .nav_menu .stick .btn.active {
+ background-color: #3366cc; }
+ .nav_menu .stick .btn img.icon {
+ display: none; }
+ .nav_menu .stick .btn#toggle-read {
+ background-image: url(icons/read.svg); }
+ .nav_menu .stick .btn#toggle-read.active {
+ background-image: url(icons/read-white.svg); }
+ .nav_menu .stick .btn#toggle-unread {
+ background-image: url(icons/unread.svg); }
+ .nav_menu .stick .btn#toggle-unread.active {
+ background-image: url(icons/unread-white.svg); }
+ .nav_menu .stick .btn#toggle-starred {
+ background-image: url(icons/starred.svg); }
+ .nav_menu .stick .btn#toggle-starred.active {
+ background-image: url(icons/starred-white.svg); }
+ .nav_menu .stick .btn#toggle-non-starred {
+ background-image: url(icons/non-starred.svg); }
+ .nav_menu .stick .btn#toggle-non-starred.active {
+ background-image: url(icons/non-starred-white.svg); }
+ .nav_menu .stick .btn.read_all {
+ background-color: #f9fafb;
+ color: #303136;
+ padding: 5px 16px;
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ -o-transition: all 0.15s ease-in-out;
+ -ms-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out; }
+ .nav_menu .stick .btn.read_all:hover {
+ background-color: #d5d8db; }
+ .nav_menu .stick .btn.view-normal {
+ background-image: url(icons/view-list.svg); }
+ .nav_menu .stick .btn.view-normal.active {
+ background-image: url(icons/view-list-white.svg); }
+ .nav_menu .stick .btn.view-global {
+ background-image: url(icons/view-global.svg); }
+ .nav_menu .stick .btn.view-global.active {
+ background-image: url(icons/view-global-white.svg); }
+ .nav_menu .stick .btn.view-reader {
+ background-image: url(icons/view-reader.svg); }
+ .nav_menu .stick .btn.view-reader.active {
+ background-image: url(icons/view-reader-white.svg); }
+ .nav_menu .stick .btn.view-rss {
+ background-image: url(icons/rss.svg); }
+ .nav_menu .stick .dropdown a.dropdown-toggle {
+ border-left-width: 0;
+ background-image: url(icons/more.svg); }
+
+#dropdown-query ~ .dropdown-menu .dropdown-header .icon {
+ vertical-align: middle;
+ background-color: #a6a7ae;
+ border-radius: 3px; }
+
+/*=== Content of feed articles */
+.content, .content.thin {
+ padding: 20px 10px;
+ font-size: 1.125rem;
+ line-height: 1.8rem; }
+ .content h1.title a, .content h1 a, .content.thin h1.title a, .content.thin h1 a {
+ color: #303136;
+ font-family: "spectral";
+ font-size: 2rem; }
+ .content h1.title a:hover, .content h1 a:hover, .content.thin h1.title a:hover, .content.thin h1 a:hover {
+ color: #3366cc;
+ text-decoration: none; }
+ .content .author, .content.thin .author {
+ font-size: 1.125rem;
+ color: #5b6871; }
+ .content p, .content ul, .content.thin p, .content.thin ul {
+ font-size: 1.125rem;
+ line-height: 1.8rem; }
+ .content .content hr, .content.thin .content hr {
+ margin: 30px 10px;
+ height: 1px;
+ background: #d5d8db;
+ border: 0;
+ box-shadow: 0 2px 5px #ccc; }
+ .content pre, .content.thin pre {
+ margin: 10px auto;
+ padding: 10px 20px;
+ overflow: auto;
+ background: #1d1e22;
+ color: #fff;
+ font-size: 0.9rem;
+ border-radius: 3px; }
+ .content pre code, .content.thin pre code {
+ background: transparent;
+ color: #fff;
+ border: none; }
+ .content code, .content.thin code {
+ padding: 2px 5px;
+ color: #eff0f2;
+ background: #f9fafb;
+ border: 1px solid #eff0f2;
+ border-radius: 3px; }
+ .content blockquote, .content.thin blockquote {
+ display: block;
+ margin: 0;
+ padding: 5px 20px;
+ border-top: 1px solid #d5d8db;
+ border-bottom: 1px solid #d5d8db;
+ background: #f9fafb;
+ color: #303136; }
+ .content blockquote p, .content.thin blockquote p {
+ margin: 0; }
+
+/*=== Notification and actualize notification */
+.notification {
+ position: fixed;
+ top: auto;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ width: 100%;
+ height: 3rem;
+ padding: 1rem 0;
+ text-align: center;
+ font-size: 1em;
+ line-height: 3em;
+ z-index: 10;
+ vertical-align: middle;
+ background: #d5d8db;
+ color: #5b6871;
+ border: none; }
+ .notification .msg {
+ font-size: 1rem;
+ display: inline-block; }
+ .notification.good {
+ background: #10f587;
+ color: #fff; }
+ .notification.bad {
+ background: #f5633e;
+ color: #fff; }
+ .notification a.close {
+ padding: 0 15px;
+ line-height: 3em;
+ border-radius: 0 3px 3px 0; }
+ .notification.good a.close:hover {
+ background: #0c7540; }
+ .notification.bad a.close:hover {
+ background: #73341f; }
+ .notification#actualizeProgress {
+ line-height: 2em; }
+ .notification#actualizeProgress br {
+ display: none; }
+
+/*=== Navigation menu (for articles) */
+#nav_entries {
+ margin: 0;
+ text-align: center;
+ line-height: 3em;
+ table-layout: fixed;
+ background: #303136; }
+
+/*=== Feed articles */
+.flux {
+ background: #fff;
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ -o-transition: all 0.15s ease-in-out;
+ -ms-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out; }
+ .flux:hover {
+ background: #f9fafb; }
+ .flux:hover:not(.current):hover .item.title {
+ background: #f9fafb; }
+ .flux.current {
+ border-left-color: #3366cc;
+ background: #f9fafb; }
+ .flux.not_read {
+ background: #f2f6f8; }
+ .flux.not_read:hover {
+ background: #fdfdfe; }
+ .flux.not_read:not(.current):hover .item.title {
+ background: #fdfdfe; }
+ .flux.not_read .item.title a {
+ color: #3366cc; }
+ .flux.not_read .item.website a {
+ color: #3366cc; }
+ .flux.not_read .item.date {
+ color: #3366cc99; }
+ .flux.favorite {
+ background: #FFF6DA;
+ border-left-color: #FFC300;
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ -o-transition: all 0.15s ease-in-out;
+ -ms-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out; }
+ .flux.favorite:not(.current):hover .item.title {
+ background: #FFF6DA; }
+ .flux .website a {
+ color: #303136;
+ opacity: 0.75; }
+ .flux .website .favicon {
+ padding: 5px; }
+ .flux .date {
+ font-size: 0.85rem;
+ color: #303136;
+ opacity: 0.75; }
+ .flux .bottom {
+ font-size: 1rem;
+ text-align: center; }
+
+.flux_header {
+ font-size: 1rem;
+ cursor: pointer;
+ border-top: 1px solid #eff0f2; }
+ .flux_header .title {
+ font-size: 1rem; }
+
+/*=== GLOBAL VIEW */
+/*================*/
+#stream .box.category:not([data-unread="0"]) .box-title .title {
+ font-weight: bold; }
+#stream .box.category .box-title {
+ background: none;
+ padding: 1.5rem; }
+ #stream .box.category .box-title a.title {
+ font-weight: normal;
+ text-decoration: none;
+ text-align: left;
+ font-size: 1rem;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ color: #5b6871; }
+ #stream .box.category .box-title a.title:not([data-unread="0"])::after {
+ position: absolute;
+ top: 1.75rem;
+ right: 0;
+ line-height: 1.5rem;
+ background: #eff0f2;
+ border-radius: 12px;
+ padding: 0 0.75rem;
+ margin: -0.5rem 1rem 0 0;
+ text-align: center; }
+ #stream .box.category .box-title a.title:hover {
+ color: #3366cc; }
+#stream .box.category .box-content {
+ padding-bottom: 0.5rem; }
+ #stream .box.category .box-content .item.feed {
+ font-size: 1rem;
+ padding: 0.5rem 1.5rem; }
+ #stream .box.category .box-content .item.feed a {
+ color: #303136;
+ font-weight: 400; }
+ #stream .box.category .box-content .item.feed a:hover {
+ color: #3366cc;
+ text-decoration: none; }
+
+#overlay {
+ background: rgba(0, 0, 0, 0.65); }
+
+#panel {
+ top: 3rem;
+ right: 3rem;
+ bottom: 3rem;
+ left: 3rem;
+ border-radius: 3px; }
+
+/*=== READER VIEW */
+/*================*/
+#stream.reader .flux {
+ padding: 0 0 50px;
+ background: #eff0f2;
+ color: #303136;
+ border: none; }
+
+#stream.reader .flux .author {
+ margin: 0 0 10px;
+ font-size: 90%;
+ color: #a6a7ae; }
+
+/*=== Configuration pages */
+.post {
+ padding: 1rem 2rem;
+ font-size: 1rem; }
+ .post form {
+ margin: 1rem 0; }
+ .post form .horizontal-list {
+ margin-bottom: 0.5rem; }
+ .post.content {
+ max-width: 550px; }
+ .post h1, .post h2 {
+ font-size: 3rem;
+ margin-top: 1.75rem;
+ font-weight: 300;
+ line-height: 1.2em;
+ color: #303136; }
+ .post a[href="./"] {
+ display: inline-block;
+ min-width: 15px;
+ line-height: 25px;
+ margin: 0;
+ padding: 0.75rem 1.5rem;
+ font-size: 1rem;
+ vertical-align: middle;
+ cursor: pointer;
+ overflow: hidden;
+ background: #f9fafb;
+ border: 1px solid #d5d8db;
+ border-radius: 5px;
+ color: #5b6871; }
+ .post a[href="./"]:hover {
+ text-decoration: none;
+ background: #3366cc;
+ color: white;
+ border: 1px solid #3366cc; }
+
+#slider {
+ border-left: none;
+ -webkit-box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35);
+ -moz-box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35);
+ box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35); }
+
+.slide-container .properties {
+ background: rgba(0, 0, 0, 0.75);
+ border: 0;
+ padding: 1rem;
+ color: white; }
+ .slide-container .properties .page-number {
+ right: 1rem;
+ top: 1rem; }
+
+/*=== LOGS */
+/*=========*/
+.loglist {
+ overflow: hidden;
+ border: 1px solid #a6a7ae; }
+
+.log {
+ margin: 10px 0;
+ padding: 5px 2%;
+ overflow: auto;
+ font-size: 0.8rem;
+ background: #f9fafb;
+ color: #5b6871; }
+
+.log > .date {
+ margin: 0 10px 0 0;
+ padding: 5px 10px;
+ border-radius: 20px; }
+
+.log.error > .date {
+ background: #f5633e;
+ color: #fff; }
+
+.log.warning > .date {
+ background: #f4f762; }
+
+.log.notice > .date {
+ background: #eff0f2; }
+
+.log.debug > .date {
+ background: #1d1e22;
+ color: #fff; }
+
+/*=== STATISTICS */
+/*===============*/
+.stat {
+ margin: 10px 0 20px; }
+
+.stat th,
+.stat td,
+.stat tr {
+ border: none; }
+
+.stat > table td,
+.stat > table th {
+ border-bottom: 1px solid #d5d8db; }
+
+.stat > .horizontal-list {
+ margin: 0 0 5px; }
+
+.stat > .horizontal-list .item {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis; }
+
+.stat > .horizontal-list .item:first-child {
+ width: 270px; }
+
+/*=== MOBILE */
+/*===========*/
+@media (max-width: 840px) {
+ ul.nav .item {
+ width: 100%; }
+ ul.nav .item img {
+ display: none; }
+ ul.nav .item a {
+ display: inline-block;
+ padding: 1rem 1rem 1rem 2.5rem;
+ color: #FFFFFF;
+ width: 100%;
+ background: url("../../themes/icons/logout.svg") no-repeat #17181a 3% center;
+ -webkit-transition: all 0.2s ease-in-out;
+ -moz-transition: all 0.2s ease-in-out;
+ -o-transition: all 0.2s ease-in-out;
+ -ms-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out; }
+ ul.nav .item a:hover, ul.nav .item a:active {
+ background: url("../../themes/icons/logout.svg") no-repeat #f5633e 3% center;
+ text-decoration: none; }
+
+ .aside {
+ -webkit-transition: all 0.2s ease-in-out;
+ -moz-transition: all 0.2s ease-in-out;
+ -o-transition: all 0.2s ease-in-out;
+ -ms-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out; }
+ .aside.aside_feed {
+ padding: 0; }
+ .aside .tree .tree-folder .tree-folder-items .item a {
+ padding: 0.5rem 1rem; }
+
+ .aside .toggle_aside,
+ #panel .close {
+ display: block;
+ width: 100%;
+ height: 50px;
+ line-height: 50px;
+ text-align: center;
+ background: #2255cc; }
+
+ .header {
+ padding: 0.5rem; }
+ .header .item.title {
+ display: none; }
+ .header .item.search input {
+ width: 90%;
+ height: 3.5rem; }
+ .header .item.search input:focus {
+ width: 100%; }
+ .header .item.search .btn {
+ min-height: 49px;
+ padding: 0.5rem 2rem; }
+ .header .item.configure {
+ width: 2.75rem;
+ top: 3.125rem; }
+ .header .item.configure .dropdown .btn {
+ padding: 1.125rem; }
+
+ .nav_menu .btn {
+ margin: 0;
+ padding: 0.85rem 1.25rem; }
+ .nav_menu .stick {
+ margin: 0.5rem 0.5rem; }
+ .nav_menu .stick .btn {
+ margin: 0;
+ padding: 0.85rem 1.25rem; }
+ .nav_menu .stick .btn.read_all {
+ padding: 0.85rem 1.25rem; }
+ .nav_menu .search {
+ display: none;
+ max-width: 97%; }
+ .nav_menu .search .input {
+ max-width: 97%;
+ width: 90px; }
+ .nav_menu .search .input::focus {
+ width: 400px; }
+
+ #stream .flux .flux_header {
+ padding: 0.5rem 0; }
+
+ .day {
+ text-align: center;
+ padding: 1rem 0; }
+ .day .name {
+ display: block;
+ padding: 0;
+ width: 100%;
+ line-height: 1.5rem;
+ margin-bottom: 1rem; }
+
+ .pagination {
+ margin: 0 0 3.5em; }
+
+ #nav_entries {
+ line-height: 4.5rem; }
+
+ .notification {
+ border-radius: 0; }
+ .notification a.close {
+ display: block;
+ left: 0;
+ background: transparent; }
+ .notification a.close:hover {
+ opacity: 0.5; }
+ .notification a.close .icon {
+ display: none; } }
+html, body {
+ font-family: "lato", "Helvetica", "Arial", sans-serif;
+ font-size: 0.875rem; }
+
+/*=== GENERAL */
+/*============*/
+html, body {
+ height: 100%;
+ background: #eff0f2; }
+
+/*=== Links */
+a, button.as-link {
+ outline: none;
+ color: #3366cc; }
+
+/*# sourceMappingURL=mapco.css.map */
diff --git a/p/themes/Mapco/mapco.css.map b/p/themes/Mapco/mapco.css.map
new file mode 100644
index 000000000..9441efeb4
--- /dev/null
+++ b/p/themes/Mapco/mapco.css.map
@@ -0,0 +1,7 @@
+{
+"version": 3,
+"mappings": "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",
+"sources": ["_fonts.scss","_mixins.scss","_forms.scss","_variables.scss","_tables.scss","_components.scss","_divers.scss","_sidebar.scss","_layout.scss","_list-view.scss","_global-view.scss","_reader-view.scss","_configuration.scss","_logs.scss","_stats.scss","_mobile.scss","mapco.scss"],
+"names": [],
+"file": "mapco.css"
+} \ No newline at end of file
diff --git a/p/themes/Mapco/mapco.scss b/p/themes/Mapco/mapco.scss
new file mode 100644
index 000000000..1a538b50a
--- /dev/null
+++ b/p/themes/Mapco/mapco.scss
@@ -0,0 +1,51 @@
+@import "fonts";
+@import "mixins";
+@import "variables";
+
+@import "forms";
+@import "tables";
+@import "components";
+
+@import "divers";
+
+@import "sidebar";
+@import "layout";
+@import "list-view";
+@import "global-view";
+@import "reader-view";
+
+@import "configuration";
+
+@import "logs";
+@import "stats";
+
+@import "mobile";
+
+html, body{
+ font-family: "lato", "Helvetica", "Arial", sans-serif;
+ font-size: 0.875rem;
+}
+
+@charset "UTF-8";
+
+/*=== GENERAL */
+/*============*/
+html, body {
+ height: 100%;
+ background: $grey-light;
+}
+
+/*=== Links */
+a, button.as-link {
+ outline: none;
+ color: $main-first;
+}
+
+
+
+
+
+
+
+
+
diff --git a/p/themes/Mapco/metadata.json b/p/themes/Mapco/metadata.json
new file mode 100644
index 000000000..24bb04b87
--- /dev/null
+++ b/p/themes/Mapco/metadata.json
@@ -0,0 +1,7 @@
+{
+ "name": "Mapco",
+ "author": "Thomas Guesnon",
+ "description": "Thème pour FreshRSS",
+ "version": 0.1,
+ "files": ["_template.css", "mapco.css"]
+}
diff --git a/p/themes/Mapco/sass.sh b/p/themes/Mapco/sass.sh
new file mode 100644
index 000000000..316d04cf2
--- /dev/null
+++ b/p/themes/Mapco/sass.sh
@@ -0,0 +1 @@
+sass --watch mapco.scss:mapco.css
diff --git a/p/themes/Mapco/thumbs/original.png b/p/themes/Mapco/thumbs/original.png
new file mode 100644
index 000000000..6dd7ec72c
--- /dev/null
+++ b/p/themes/Mapco/thumbs/original.png
Binary files differ
diff --git a/p/themes/base-theme/template.css b/p/themes/base-theme/template.css
index 099aee916..fb62f8d74 100644
--- a/p/themes/base-theme/template.css
+++ b/p/themes/base-theme/template.css
@@ -280,7 +280,7 @@ a.btn {
left: 0; right: 0;
display: block;
z-index: -10;
- cursor: default;
+ cursor: default;
}
.separator {
display: block;
@@ -418,8 +418,10 @@ a.btn {
}
.tree-folder-items {
- padding: 0;
list-style: none;
+ max-height: 200em;
+ padding: 0;
+ transition: max-height .3s linear;
}
.tree-folder-title {
display: block;
@@ -502,7 +504,11 @@ a.btn {
padding: 0px 15px;
}
.aside_feed .tree-folder-items:not(.active) {
- display: none;
+ border: none;
+ margin: 0;
+ max-height: 0;
+ padding: 0;
+ overflow: hidden;
}
.aside_feed .tree-folder-items .dropdown {
vertical-align: top;
@@ -632,9 +638,13 @@ br + br + br {
z-index: 10;
background: #fff;
border: 1px solid #aaa;
+ opacity: 1;
+ visibility: visible;
+ transition: visibility 0s, opacity .3s linear;
}
.notification.closed {
- display: none;
+ opacity: 0;
+ visibility: hidden;
}
.notification a.close {
position: absolute;
@@ -710,15 +720,15 @@ br + br + br {
/*=== LOGIN VIEW */
/*================*/
.formLogin .header > .item {
- padding: 10px 30px;
+ padding: 10px 30px;
}
.formLogin .header > .item.title {
- text-align: left;
+ text-align: left;
}
.formLogin .header > .item.configure {
- text-align: right;
+ text-align: right;
}
@@ -731,14 +741,29 @@ br + br + br {
#stream.global .box {
text-align: left;
}
-
+#global > #panel {
+ bottom: 99vh;
+ display: block;
+ transition: visibility .3s, bottom .3s;
+ visibility: hidden;
+}
+#global > #panel.visible {
+ bottom: 1em;
+ visibility: visible;
+}
/*=== Panel */
#overlay {
- display: none;
position: fixed;
top: 0; bottom: 0;
left: 0; right: 0;
background: rgba(0, 0, 0, 0.9);
+ opacity: 0;
+ transition: visibility .3s, opacity .3s;
+ visibility: hidden;
+}
+#overlay.visible {
+ opacity: 1;
+ visibility: visible;
}
#panel {
display: none;
diff --git a/p/themes/fonts/LatoLatin-Bold.woff b/p/themes/fonts/LatoLatin-Bold.woff
new file mode 100644
index 000000000..cdfcbe0fb
--- /dev/null
+++ b/p/themes/fonts/LatoLatin-Bold.woff
Binary files differ
diff --git a/p/themes/fonts/LatoLatin-BoldItalic.woff b/p/themes/fonts/LatoLatin-BoldItalic.woff
new file mode 100644
index 000000000..3e683fea7
--- /dev/null
+++ b/p/themes/fonts/LatoLatin-BoldItalic.woff
Binary files differ
diff --git a/p/themes/fonts/LatoLatin-Italic.woff b/p/themes/fonts/LatoLatin-Italic.woff
new file mode 100644
index 000000000..d8cf84c8b
--- /dev/null
+++ b/p/themes/fonts/LatoLatin-Italic.woff
Binary files differ
diff --git a/p/themes/fonts/LatoLatin-Regular.woff b/p/themes/fonts/LatoLatin-Regular.woff
new file mode 100644
index 000000000..bf73a6d9f
--- /dev/null
+++ b/p/themes/fonts/LatoLatin-Regular.woff
Binary files differ
diff --git a/p/themes/fonts/Spectral-Bold.woff b/p/themes/fonts/Spectral-Bold.woff
new file mode 100644
index 000000000..10bbc7bbe
--- /dev/null
+++ b/p/themes/fonts/Spectral-Bold.woff
Binary files differ
diff --git a/p/themes/fonts/Spectral-BoldItalic.woff b/p/themes/fonts/Spectral-BoldItalic.woff
new file mode 100644
index 000000000..2486d78a1
--- /dev/null
+++ b/p/themes/fonts/Spectral-BoldItalic.woff
Binary files differ
diff --git a/p/themes/fonts/Spectral-Italic.woff b/p/themes/fonts/Spectral-Italic.woff
new file mode 100644
index 000000000..3a7d9cbed
--- /dev/null
+++ b/p/themes/fonts/Spectral-Italic.woff
Binary files differ
diff --git a/p/themes/fonts/Spectral-Regular.woff b/p/themes/fonts/Spectral-Regular.woff
new file mode 100644
index 000000000..a472c4be3
--- /dev/null
+++ b/p/themes/fonts/Spectral-Regular.woff
Binary files differ