@ -0,0 +1,129 @@ |
||||
<?php |
||||
|
||||
class FreshRSS_update_Controller extends Minz_ActionController { |
||||
public function firstAction() { |
||||
$current_user = Minz_Session::param('currentUser', ''); |
||||
if (!$this->view->loginOk && Minz_Configuration::isAdmin($current_user)) { |
||||
Minz_Error::error( |
||||
403, |
||||
array('error' => array(_t('access_denied'))) |
||||
); |
||||
} |
||||
|
||||
invalidateHttpCache(); |
||||
|
||||
Minz_View::prependTitle(_t('update_system') . ' · '); |
||||
$this->view->update_to_apply = false; |
||||
$this->view->last_update_time = 'unknown'; |
||||
$this->view->check_last_hour = false; |
||||
$timestamp = (int)@file_get_contents(DATA_PATH . '/last_update.txt'); |
||||
if (is_numeric($timestamp) && $timestamp > 0) { |
||||
$this->view->last_update_time = timestamptodate($timestamp); |
||||
$this->view->check_last_hour = (time() - 3600) <= $timestamp; |
||||
} |
||||
} |
||||
|
||||
public function indexAction() { |
||||
if (file_exists(UPDATE_FILENAME) && !is_writable(FRESHRSS_PATH)) { |
||||
$this->view->message = array( |
||||
'status' => 'bad', |
||||
'title' => _t('damn'), |
||||
'body' => _t('file_is_nok', FRESHRSS_PATH) |
||||
); |
||||
} elseif (file_exists(UPDATE_FILENAME)) { |
||||
// There is an update file to apply! |
||||
$this->view->update_to_apply = true; |
||||
$this->view->message = array( |
||||
'status' => 'good', |
||||
'title' => _t('ok'), |
||||
'body' => _t('update_can_apply') |
||||
); |
||||
} |
||||
} |
||||
|
||||
public function checkAction() { |
||||
$this->view->change_view('update', 'index'); |
||||
|
||||
if (file_exists(UPDATE_FILENAME) || $this->view->check_last_hour) { |
||||
// There is already an update file to apply: we don't need to check |
||||
// the webserver! |
||||
// Or if already check during the last hour, do nothing. |
||||
Minz_Request::forward(array('c' => 'update')); |
||||
|
||||
return; |
||||
} |
||||
|
||||
$c = curl_init(FRESHRSS_UPDATE_WEBSITE); |
||||
curl_setopt($c, CURLOPT_RETURNTRANSFER, true); |
||||
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, true); |
||||
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 2); |
||||
$result = curl_exec($c); |
||||
$c_status = curl_getinfo($c, CURLINFO_HTTP_CODE); |
||||
$c_error = curl_error($c); |
||||
curl_close($c); |
||||
|
||||
if ($c_status !== 200) { |
||||
Minz_Log::error( |
||||
'Error during update (HTTP code ' . $c_status . '): ' . $c_error |
||||
); |
||||
|
||||
$this->view->message = array( |
||||
'status' => 'bad', |
||||
'title' => _t('damn'), |
||||
'body' => _t('update_server_not_found', FRESHRSS_UPDATE_WEBSITE) |
||||
); |
||||
return; |
||||
} |
||||
|
||||
$res_array = explode("\n", $result, 2); |
||||
$status = $res_array[0]; |
||||
if (strpos($status, 'UPDATE') !== 0) { |
||||
$this->view->message = array( |
||||
'status' => 'bad', |
||||
'title' => _t('damn'), |
||||
'body' => _t('no_update') |
||||
); |
||||
|
||||
@file_put_contents(DATA_PATH . '/last_update.txt', time()); |
||||
|
||||
return; |
||||
} |
||||
|
||||
$script = $res_array[1]; |
||||
if (file_put_contents(UPDATE_FILENAME, $script) !== false) { |
||||
Minz_Request::forward(array('c' => 'update')); |
||||
} else { |
||||
$this->view->message = array( |
||||
'status' => 'bad', |
||||
'title' => _t('damn'), |
||||
'body' => _t('update_problem', 'Cannot save the update script') |
||||
); |
||||
} |
||||
} |
||||
|
||||
public function applyAction() { |
||||
if (!file_exists(UPDATE_FILENAME) || !is_writable(FRESHRSS_PATH)) { |
||||
Minz_Request::forward(array('c' => 'update'), true); |
||||
} |
||||
|
||||
require(UPDATE_FILENAME); |
||||
|
||||
if (Minz_Request::isPost()) { |
||||
save_info_update(); |
||||
} |
||||
|
||||
if (!need_info_update()) { |
||||
$res = apply_update(); |
||||
|
||||
if ($res === true) { |
||||
@unlink(UPDATE_FILENAME); |
||||
@file_put_contents(DATA_PATH . '/last_update.txt', time()); |
||||
|
||||
Minz_Request::good(_t('update_finished')); |
||||
} else { |
||||
Minz_Request::bad(_t('update_problem', $res), |
||||
array('c' => 'update', 'a' => 'index')); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -1,25 +1,33 @@ |
||||
<ul class="nav nav-list aside"> |
||||
<li class="nav-header"><?php echo Minz_Translate::t ('configuration'); ?></li>
|
||||
<li class="item<?php echo Minz_Request::actionName () == 'display' ? ' active' : ''; ?>">
|
||||
<a href="<?php echo _url ('configure', 'display'); ?>"><?php echo Minz_Translate::t ('display_configuration'); ?></a>
|
||||
<li class="nav-header"><?php echo _t('configuration'); ?></li>
|
||||
<li class="item<?php echo Minz_Request::actionName() === 'display' ? ' active' : ''; ?>">
|
||||
<a href="<?php echo _url('configure', 'display'); ?>"><?php echo _t('display_configuration'); ?></a>
|
||||
</li> |
||||
<li class="item<?php echo Minz_Request::actionName () == 'reading' ? ' active' : ''; ?>">
|
||||
<a href="<?php echo _url ('configure', 'reading'); ?>"><?php echo Minz_Translate::t ('reading_configuration'); ?></a>
|
||||
<li class="item<?php echo Minz_Request::actionName() === 'reading' ? ' active' : ''; ?>">
|
||||
<a href="<?php echo _url('configure', 'reading'); ?>"><?php echo _t('reading_configuration'); ?></a>
|
||||
</li> |
||||
<li class="item<?php echo Minz_Request::actionName () == 'archiving' ? ' active' : ''; ?>">
|
||||
<a href="<?php echo _url ('configure', 'archiving'); ?>"><?php echo Minz_Translate::t ('archiving_configuration'); ?></a>
|
||||
<li class="item<?php echo Minz_Request::actionName() === 'archiving' ? ' active' : ''; ?>">
|
||||
<a href="<?php echo _url('configure', 'archiving'); ?>"><?php echo _t('archiving_configuration'); ?></a>
|
||||
</li> |
||||
<li class="item<?php echo Minz_Request::actionName () == 'sharing' ? ' active' : ''; ?>">
|
||||
<a href="<?php echo _url ('configure', 'sharing'); ?>"><?php echo Minz_Translate::t ('sharing'); ?></a>
|
||||
<li class="item<?php echo Minz_Request::actionName() === 'sharing' ? ' active' : ''; ?>">
|
||||
<a href="<?php echo _url('configure', 'sharing'); ?>"><?php echo _t('sharing'); ?></a>
|
||||
</li> |
||||
<li class="item<?php echo Minz_Request::actionName () == 'shortcut' ? ' active' : ''; ?>">
|
||||
<a href="<?php echo _url ('configure', 'shortcut'); ?>"><?php echo Minz_Translate::t ('shortcuts'); ?></a>
|
||||
<li class="item<?php echo Minz_Request::actionName() === 'shortcut' ? ' active' : ''; ?>">
|
||||
<a href="<?php echo _url('configure', 'shortcut'); ?>"><?php echo _t('shortcuts'); ?></a>
|
||||
</li> |
||||
<li class="item<?php echo Minz_Request::actionName () == 'queries' ? ' active' : ''; ?>">
|
||||
<a href="<?php echo _url ('configure', 'queries'); ?>"><?php echo Minz_Translate::t ('queries'); ?></a>
|
||||
<li class="item<?php echo Minz_Request::actionName() === 'queries' ? ' active' : ''; ?>">
|
||||
<a href="<?php echo _url('configure', 'queries'); ?>"><?php echo _t('queries'); ?></a>
|
||||
</li> |
||||
<li class="separator"></li> |
||||
<li class="item<?php echo Minz_Request::actionName () == 'users' ? ' active' : ''; ?>">
|
||||
<a href="<?php echo _url ('configure', 'users'); ?>"><?php echo Minz_Translate::t ('users'); ?></a>
|
||||
<li class="item<?php echo Minz_Request::actionName() === 'users' ? ' active' : ''; ?>">
|
||||
<a href="<?php echo _url('configure', 'users'); ?>"><?php echo _t('users'); ?></a>
|
||||
</li> |
||||
<?php |
||||
$current_user = Minz_Session::param('currentUser', ''); |
||||
if (Minz_Configuration::isAdmin($current_user)) { |
||||
?> |
||||
<li class="item<?php echo Minz_Request::controllerName() === 'update' ? ' active' : ''; ?>">
|
||||
<a href="<?php echo _url('update', 'index'); ?>"><?php echo _t('update'); ?></a>
|
||||
</li> |
||||
<?php } ?> |
||||
</ul> |
||||
|
@ -0,0 +1,33 @@ |
||||
<div class="prompt"> |
||||
<h1><?php echo _t('auth_reset'); ?></h1>
|
||||
|
||||
<?php if (!empty($this->message)) { ?> |
||||
<p class="alert <?php echo $this->message['status'] === 'bad' ? 'alert-error' : 'alert-warn'; ?>">
|
||||
<span class="alert-head"><?php echo $this->message['title']; ?></span><br />
|
||||
<?php echo $this->message['body']; ?> |
||||
</p> |
||||
<?php } ?> |
||||
|
||||
<?php if (!$this->no_form) { ?> |
||||
<form id="crypto-form" method="post" action="<?php echo _url('index', 'resetAuth'); ?>">
|
||||
<p class="alert alert-warn"> |
||||
<span class="alert-head"><?php echo _t('attention'); ?></span><br />
|
||||
<?php echo _t('auth_will_reset'); ?> |
||||
</p> |
||||
|
||||
<div> |
||||
<label for="username"><?php echo _t('username_admin'); ?></label>
|
||||
<input type="text" id="username" name="username" size="16" required="required" maxlength="16" pattern="[0-9a-zA-Z]{1,16}" autofocus="autofocus" /> |
||||
</div> |
||||
<div> |
||||
<label for="passwordPlain"><?php echo _t('password'); ?></label>
|
||||
<input type="password" id="passwordPlain" required="required" /> |
||||
<input type="hidden" id="challenge" name="challenge" /><br /> |
||||
<noscript><strong><?php echo _t('javascript_should_be_activated'); ?></strong></noscript>
|
||||
</div> |
||||
<div> |
||||
<button id="loginButton" type="submit" class="btn btn-important"><?php echo _t('submit'); ?></button>
|
||||
</div> |
||||
</form> |
||||
<?php } ?> |
||||
</div> |
@ -1,25 +1,48 @@ |
||||
<?php $this->partial('aside_stats'); ?> |
||||
|
||||
<div class="post content"> |
||||
<div class="post"> |
||||
<a href="<?php echo _url('index', 'index'); ?>"><?php echo _t('back_to_rss_feeds'); ?></a>
|
||||
|
||||
<h1><?php echo _t('stats_idle'); ?></h1>
|
||||
|
||||
<?php |
||||
$current_url = urlencode(Minz_Url::display( |
||||
array('c' => 'stats', 'a' => 'idle'), |
||||
'php', true |
||||
)); |
||||
$nothing = true; |
||||
foreach ($this->idleFeeds as $period => $feeds) { |
||||
if (!empty($feeds)) { |
||||
$nothing = false; |
||||
?> |
||||
<div class="stat"> |
||||
<h2><?php echo _t($period); ?></h2>
|
||||
|
||||
<ul> |
||||
<form id="form-delete" method="post" style="display: none"></form> |
||||
|
||||
<?php foreach ($feeds as $feed) { ?> |
||||
<li><a href="<?php echo _url('configure', 'feed', 'id', $feed['id']); ?>" title="<?php echo date('Y-m-d', $feed['last_date']); ?>"><?php echo $feed['name']; ?></a></li>
|
||||
<?php } ?> |
||||
<ul class="horizontal-list"> |
||||
<li class="item"> |
||||
<div class="stick"> |
||||
<a class="btn" href="<?php echo _url('index', 'index', 'get', 'f_' . $feed['id']); ?>"><?php echo _i('link'); ?> <?php echo _t('filter'); ?></a>
|
||||
<a class="btn" href="<?php echo _url('configure', 'feed', 'id', $feed['id']); ?>"><?php echo _i('configure'); ?> <?php echo _t('administration'); ?></a>
|
||||
<button class="btn btn-attention confirm" form="form-delete" formaction="<?php echo _url('feed', 'delete', 'id', $feed['id'], 'r', $current_url); ?>"><?php echo _t('delete'); ?></button>
|
||||
</div> |
||||
</li> |
||||
<li class="item"> |
||||
<span title="<?php echo timestamptodate($feed['last_date'], false); ?>"><?php echo $feed['name']; ?> (<?php echo _t('number_articles', $feed['nb_articles']); ?>)</span>
|
||||
</li> |
||||
</ul> |
||||
<?php } ?> |
||||
</div> |
||||
<?php |
||||
} |
||||
} |
||||
|
||||
if ($nothing) { |
||||
?> |
||||
<p class="alert alert-warn"> |
||||
<span class="alert-head"><?php echo _t('stats_no_idle'); ?></span>
|
||||
</p> |
||||
<?php } ?> |
||||
</div> |
||||
|
@ -0,0 +1,9 @@ |
||||
<?php $this->partial('aside_configure'); ?> |
||||
|
||||
<div class="post"> |
||||
<a href="<?php echo _url('index', 'index'); ?>"><?php echo _t('back_to_rss_feeds'); ?></a>
|
||||
|
||||
<h1><?php echo _t('update_system'); ?></h1>
|
||||
|
||||
<?php ask_info_update(); ?> |
||||
</div> |
@ -0,0 +1,36 @@ |
||||
<?php $this->partial('aside_configure'); ?> |
||||
|
||||
<div class="post"> |
||||
<a href="<?php echo _url('index', 'index'); ?>"><?php echo _t('back_to_rss_feeds'); ?></a>
|
||||
|
||||
<h1><?php echo _t('update_system'); ?></h1>
|
||||
|
||||
<p> |
||||
<?php echo _i('help'); ?> <?php echo _t('update_last', $this->last_update_time); ?> |
||||
</p> |
||||
|
||||
<?php if (!empty($this->message)) { ?> |
||||
<p class="alert <?php echo $this->message['status'] === 'bad' ? 'alert-error' : 'alert-warn'; ?>">
|
||||
<span class="alert-head"><?php echo $this->message['title']; ?></span>
|
||||
<?php echo $this->message['body']; ?> |
||||
</p> |
||||
<?php } elseif ($this->check_last_hour) { ?> |
||||
<p class="alert alert-warn"> |
||||
<span class="alert-head"><?php echo _t('damn'); ?></span>
|
||||
<?php echo _t('no_update'); ?> |
||||
</p> |
||||
<?php } ?> |
||||
|
||||
<?php |
||||
if (!$this->check_last_hour && |
||||
(empty($this->message) || $this->message['status'] !== 'good')) { |
||||
?> |
||||
<p> |
||||
<a href="<?php echo _url('update', 'check'); ?>" class="btn"><?php echo _t('update_check'); ?></a>
|
||||
</p> |
||||
<?php } ?> |
||||
|
||||
<?php if ($this->update_to_apply) { ?> |
||||
<a class="btn btn-important" href="<?php echo _url('update', 'apply'); ?>"><?php echo _t('update_apply'); ?></a>
|
||||
<?php } ?> |
||||
</div> |
@ -1,698 +0,0 @@ |
||||
@charset "UTF-8"; |
||||
|
||||
/*=== GENERAL */ |
||||
/*============*/ |
||||
html, body { |
||||
margin: 0; |
||||
padding: 0; |
||||
font-size: 100%; |
||||
} |
||||
|
||||
/*=== Links */ |
||||
a { |
||||
text-decoration: none; |
||||
} |
||||
a:hover { |
||||
text-decoration: underline; |
||||
} |
||||
|
||||
/*=== Lists */ |
||||
ul, ol, dd { |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
|
||||
/*=== Titles */ |
||||
h1 { |
||||
margin: 0.6em 0 0.3em; |
||||
font-size: 1.5em; |
||||
line-height: 1.6em; |
||||
} |
||||
h2 { |
||||
margin: 0.5em 0 0.25em; |
||||
font-size: 1.3em; |
||||
line-height: 2em; |
||||
} |
||||
h3 { |
||||
margin: 0.5em 0 0.25em; |
||||
font-size: 1.1em; |
||||
line-height: 2em; |
||||
} |
||||
|
||||
/*=== Paragraphs */ |
||||
p { |
||||
margin: 1em 0 0.5em; |
||||
font-size: 1em; |
||||
} |
||||
|
||||
/*=== Images */ |
||||
img { |
||||
height: auto; |
||||
max-width: 100%; |
||||
} |
||||
img.favicon { |
||||
height: 16px; |
||||
width: 16px; |
||||
vertical-align: middle; |
||||
} |
||||
|
||||
/*=== Videos */ |
||||
iframe, embed, object, video { |
||||
max-width: 100%; |
||||
} |
||||
|
||||
/*=== Forms */ |
||||
legend { |
||||
display: block; |
||||
width: 100%; |
||||
clear: both; |
||||
} |
||||
label { |
||||
display: block; |
||||
} |
||||
input { |
||||
width: 180px; |
||||
} |
||||
textarea { |
||||
width: 300px; |
||||
} |
||||
input, select, textarea { |
||||
display: inline-block; |
||||
max-width: 100%; |
||||
} |
||||
input[type="radio"], |
||||
input[type="checkbox"] { |
||||
width: 15px !important; |
||||
min-height: 15px !important; |
||||
} |
||||
input.extend:focus { |
||||
width: 300px; |
||||
} |
||||
|
||||
/*=== COMPONENTS */ |
||||
/*===============*/ |
||||
/*=== Forms */ |
||||
.form-group:after { |
||||
content: ""; |
||||
display: block; |
||||
clear: both; |
||||
} |
||||
.form-group.form-actions { |
||||
min-width: 250px; |
||||
} |
||||
.form-group .group-name { |
||||
display: block; |
||||
float: left; |
||||
width: 200px; |
||||
} |
||||
.form-group .group-controls { |
||||
min-width: 250px; |
||||
margin: 0 0 0 220px; |
||||
} |
||||
.form-group .group-controls .control { |
||||
display: block; |
||||
} |
||||
|
||||
/*=== Buttons */ |
||||
.stick { |
||||
display: inline-block; |
||||
white-space: nowrap; |
||||
} |
||||
.btn, |
||||
a.btn { |
||||
display: inline-block; |
||||
cursor: pointer; |
||||
overflow: hidden; |
||||
} |
||||
.btn-important { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
/*=== Navigation */ |
||||
.nav-list .nav-header, |
||||
.nav-list .item { |
||||
display: block; |
||||
} |
||||
.nav-list .item, |
||||
.nav-list .item > a { |
||||
display: block; |
||||
overflow: hidden; |
||||
white-space: nowrap; |
||||
text-overflow: ellipsis; |
||||
} |
||||
.nav-head { |
||||
display: block; |
||||
} |
||||
.nav-head .item { |
||||
display: inline-block; |
||||
} |
||||
|
||||
/*=== Horizontal-list */ |
||||
.horizontal-list { |
||||
display: table; |
||||
table-layout: fixed; |
||||
width: 100%; |
||||
} |
||||
.horizontal-list .item { |
||||
display: table-cell; |
||||
} |
||||
|
||||
/*=== Dropdown */ |
||||
.dropdown { |
||||
position: relative; |
||||
display: inline-block; |
||||
} |
||||
.dropdown-target { |
||||
display: none; |
||||
} |
||||
.dropdown-menu { |
||||
display: none; |
||||
min-width: 200px; |
||||
margin: 0; |
||||
position: absolute; |
||||
right: 0; |
||||
background: #fff; |
||||
border: 1px solid #aaa; |
||||
} |
||||
.dropdown-header { |
||||
display: block; |
||||
} |
||||
.dropdown-menu > .item { |
||||
display: block; |
||||
} |
||||
.dropdown-menu > .item > a, |
||||
.dropdown-menu > .item > span { |
||||
display: block; |
||||
} |
||||
.dropdown-menu > .item[aria-checked="true"] > a:before { |
||||
content: '✓'; |
||||
} |
||||
.dropdown-menu .input { |
||||
display: block; |
||||
} |
||||
.dropdown-menu .input select, |
||||
.dropdown-menu .input input { |
||||
display: block; |
||||
max-width: 95%; |
||||
} |
||||
.dropdown-target:target ~ .dropdown-menu { |
||||
display: block; |
||||
z-index: 10; |
||||
} |
||||
.dropdown-close { |
||||
display: inline; |
||||
} |
||||
.dropdown-close a { |
||||
font-size: 0; |
||||
position: fixed; |
||||
top: 0; bottom: 0; |
||||
left: 0; right: 0; |
||||
display: block; |
||||
z-index: -10; |
||||
} |
||||
.separator { |
||||
display: block; |
||||
height: 0; |
||||
border-bottom: 1px solid #aaa; |
||||
} |
||||
|
||||
/*=== Alerts */ |
||||
.alert { |
||||
display: block; |
||||
width: 90%; |
||||
} |
||||
.group-controls .alert { |
||||
width: 100% |
||||
} |
||||
.alert-head { |
||||
margin: 0; |
||||
font-weight: bold; |
||||
} |
||||
.alert ul { |
||||
margin: 5px 20px; |
||||
} |
||||
|
||||
/*=== Icons */ |
||||
.icon { |
||||
display: inline-block; |
||||
width: 16px; |
||||
height: 16px; |
||||
vertical-align: middle; |
||||
line-height: 16px; |
||||
} |
||||
|
||||
/*=== Pagination */ |
||||
.pagination { |
||||
display: table; |
||||
width: 100%; |
||||
margin: 0; |
||||
padding: 0; |
||||
table-layout: fixed; |
||||
} |
||||
.pagination .item { |
||||
display: table-cell; |
||||
} |
||||
.pagination .pager-first, |
||||
.pagination .pager-previous, |
||||
.pagination .pager-next, |
||||
.pagination .pager-last { |
||||
width: 100px; |
||||
} |
||||
|
||||
/*=== STRUCTURE */ |
||||
/*===============*/ |
||||
/*=== Header */ |
||||
.header { |
||||
display: table; |
||||
width: 100%; |
||||
table-layout: fixed; |
||||
} |
||||
.header > .item { |
||||
display: table-cell; |
||||
} |
||||
.header > .item.title { |
||||
width: 250px; |
||||
white-space: nowrap; |
||||
} |
||||
.header > .item.title h1 { |
||||
display: inline-block; |
||||
} |
||||
.header > .item.title .logo { |
||||
display: inline-block; |
||||
height: 32px; |
||||
width: 32px; |
||||
vertical-align: middle; |
||||
} |
||||
.header > .item.configure { |
||||
width: 100px; |
||||
} |
||||
|
||||
/*=== Body */ |
||||
#global { |
||||
display: table; |
||||
width: 100%; |
||||
height: 100%; |
||||
table-layout: fixed; |
||||
} |
||||
.aside { |
||||
display: table-cell; |
||||
height: 100%; |
||||
width: 250px; |
||||
vertical-align: top; |
||||
} |
||||
.aside.aside_flux { |
||||
background: #fff; |
||||
} |
||||
|
||||
/*=== Aside main page (categories) */ |
||||
.categories { |
||||
list-style: none; |
||||
margin: 0; |
||||
} |
||||
.state_unread li:not(.active)[data-unread="0"] { |
||||
display: none; |
||||
} |
||||
.category { |
||||
display: block; |
||||
overflow: hidden; |
||||
white-space: nowrap; |
||||
text-overflow: ellipsis; |
||||
} |
||||
.category .btn:not([data-unread="0"]):after { |
||||
content: attr(data-unread); |
||||
} |
||||
|
||||
/*=== Aside main page (feeds) */ |
||||
.categories .feeds { |
||||
width: 100%; |
||||
list-style: none; |
||||
} |
||||
.categories .feeds:not(.active) { |
||||
display: none; |
||||
} |
||||
.categories .feeds .feed { |
||||
display: inline-block; |
||||
overflow: hidden; |
||||
white-space: nowrap; |
||||
text-overflow: ellipsis; |
||||
vertical-align: middle; |
||||
} |
||||
.categories .feeds .feed:not([data-unread="0"]):before { |
||||
content: "(" attr(data-unread) ") "; |
||||
} |
||||
.categories .feeds .dropdown-menu { |
||||
left: 0; |
||||
} |
||||
.categories .feeds .item .dropdown-toggle > .icon { |
||||
visibility: hidden; |
||||
cursor: pointer; |
||||
vertical-align: top; |
||||
} |
||||
.categories .feeds .item .dropdown-target:target ~ .dropdown-toggle > .icon, |
||||
.categories .feeds .item:hover .dropdown-toggle > .icon, |
||||
.categories .feeds .item.active .dropdown-toggle > .icon { |
||||
visibility: visible; |
||||
} |
||||
|
||||
/*=== New article notification */ |
||||
#new-article { |
||||
display: none; |
||||
} |
||||
#new-article > a { |
||||
display: block; |
||||
} |
||||
|
||||
/*=== Day indication */ |
||||
.day .name { |
||||
position: absolute; |
||||
right: 0; |
||||
width: 50%; |
||||
overflow: hidden; |
||||
white-space: nowrap; |
||||
text-overflow: ellipsis; |
||||
} |
||||
|
||||
/*=== Feed article header and footer */ |
||||
.flux_header { |
||||
position: relative; |
||||
} |
||||
.flux .item { |
||||
line-height: 40px; |
||||
white-space: nowrap; |
||||
} |
||||
.flux .item.manage, |
||||
.flux .item.link { |
||||
width: 40px; |
||||
text-align: center; |
||||
} |
||||
.flux .item.website { |
||||
width: 200px; |
||||
} |
||||
.flux.not_read .item.title, |
||||
.flux.current .item.title { |
||||
font-weight: bold; |
||||
} |
||||
.flux:not(.current):hover .item.title { |
||||
position: absolute; |
||||
max-width: calc(100% - 320px); |
||||
background: #fff; |
||||
} |
||||
.flux .item.title a { |
||||
color: #000; |
||||
text-decoration: none; |
||||
} |
||||
.flux .item.date { |
||||
width: 145px; |
||||
text-align: right; |
||||
} |
||||
.flux .item > a { |
||||
display: block; |
||||
} |
||||
.flux .item > a { |
||||
display: block; |
||||
text-decoration: none; |
||||
white-space: nowrap; |
||||
text-overflow: ellipsis; |
||||
overflow: hidden; |
||||
} |
||||
.flux .item.share > a { |
||||
display: list-item; |
||||
list-style-position: inside; |
||||
list-style-type: decimal; |
||||
} |
||||
|
||||
/*=== Feed article content */ |
||||
.hide_posts > .flux:not(.active) > .flux_content { |
||||
display: none; |
||||
} |
||||
.content { |
||||
min-height: 20em; |
||||
margin: auto; |
||||
line-height: 1.7em; |
||||
word-wrap: break-word; |
||||
} |
||||
.content.large { |
||||
max-width: 1000px; |
||||
} |
||||
.content.medium { |
||||
max-width: 800px; |
||||
} |
||||
.content.thin { |
||||
max-width: 550px; |
||||
} |
||||
.content ul, |
||||
.content ol, |
||||
.content dd { |
||||
margin: 0 0 0 15px; |
||||
padding: 0 0 5px 15px; |
||||
} |
||||
.content pre { |
||||
overflow: auto; |
||||
} |
||||
|
||||
/*=== Notification and actualize notification */ |
||||
.notification { |
||||
position: absolute; |
||||
top: 1em; |
||||
left: 25%; right: 25%; |
||||
z-index: 10; |
||||
background: #fff; |
||||
border: 1px solid #aaa; |
||||
} |
||||
.notification.closed { |
||||
display: none; |
||||
} |
||||
.notification a.close { |
||||
position: absolute; |
||||
top: 0; bottom: 0; |
||||
right: 0; |
||||
display: inline-block; |
||||
} |
||||
|
||||
#actualizeProgress { |
||||
position: fixed; |
||||
} |
||||
#actualizeProgress progress { |
||||
max-width: 100%; |
||||
vertical-align: middle; |
||||
} |
||||
#actualizeProgress .progress { |
||||
vertical-align: middle; |
||||
} |
||||
|
||||
/*=== Navigation menu (for articles) */ |
||||
#nav_entries { |
||||
position: fixed; |
||||
bottom: 0; left: 0; |
||||
display: table; |
||||
width: 250px; |
||||
background: #fff; |
||||
table-layout: fixed; |
||||
} |
||||
#nav_entries .item { |
||||
display: table-cell; |
||||
width: 30%; |
||||
} |
||||
#nav_entries a { |
||||
display: block; |
||||
} |
||||
|
||||
/*=== "Load more" part */ |
||||
#load_more { |
||||
min-height: 40px; |
||||
} |
||||
.loading { |
||||
background: url("loader.gif") center center no-repeat; |
||||
font-size: 0; |
||||
} |
||||
#bigMarkAsRead { |
||||
display: block; |
||||
padding: 3em 0; |
||||
text-align: center; |
||||
} |
||||
.bigTick { |
||||
font-size: 7em; |
||||
line-height: 1.6em; |
||||
} |
||||
|
||||
/*=== Statistiques */ |
||||
.stat > table { |
||||
width: 100%; |
||||
} |
||||
|
||||
/*=== GLOBAL VIEW */ |
||||
/*================*/ |
||||
/*=== Category boxes */ |
||||
#stream.global .box-category { |
||||
display: inline-block; |
||||
width: 19em; |
||||
max-width: 95%; |
||||
margin: 20px 10px; |
||||
border: 1px solid #ccc; |
||||
vertical-align: top; |
||||
} |
||||
#stream.global .category { |
||||
width: 100%; |
||||
} |
||||
#stream.global .btn { |
||||
display: block; |
||||
} |
||||
#stream.global .box-category .feeds { |
||||
display: block; |
||||
overflow: auto; |
||||
} |
||||
#stream.global .box-category .feed { |
||||
width: 19em; |
||||
max-width: 90%; |
||||
} |
||||
|
||||
/*=== Panel */ |
||||
#overlay { |
||||
display: none; |
||||
position: fixed; |
||||
top: 0; bottom: 0; |
||||
left: 0; right: 0; |
||||
background: rgba(0, 0, 0, 0.9); |
||||
} |
||||
#panel { |
||||
display: none; |
||||
position: fixed; |
||||
top: 1em; bottom: 1em; |
||||
left: 2em; right: 2em; |
||||
overflow: auto; |
||||
background: #fff; |
||||
} |
||||
#panel .close { |
||||
position: fixed; |
||||
top: 0; bottom: 0; |
||||
left: 0; right: 0; |
||||
display: block; |
||||
} |
||||
#panel .close img { |
||||
display: none; |
||||
} |
||||
|
||||
/*=== DIVERS */ |
||||
/*===========*/ |
||||
.nav-login, |
||||
.nav_menu .search, |
||||
.nav_menu .toggle_aside { |
||||
display: none; |
||||
} |
||||
|
||||
.aside .toggle_aside { |
||||
position: absolute; |
||||
right: 0; |
||||
display: none; |
||||
width: 30px; |
||||
height: 30px; |
||||
line-height: 30px; |
||||
text-align: center; |
||||
} |
||||
|
||||
/*=== MOBILE */ |
||||
/*===========*/ |
||||
@media(max-width: 840px) { |
||||
.header, |
||||
.aside .btn-important, |
||||
.aside .feeds .dropdown, |
||||
.flux_header .item.website span, |
||||
.item.date, .day .date, |
||||
.dropdown-menu > .no-mobile, |
||||
.no-mobile { |
||||
display: none; |
||||
} |
||||
.nav-login { |
||||
display: block; |
||||
} |
||||
.nav_menu .toggle_aside, |
||||
.aside .toggle_aside, |
||||
.nav_menu .search, |
||||
#panel .close img { |
||||
display: inline-block; |
||||
} |
||||
|
||||
.aside { |
||||
position: fixed; |
||||
top: 0; bottom: 0; |
||||
left: 0; |
||||
width: 0; |
||||
overflow: hidden; |
||||
z-index: 100; |
||||
} |
||||
.aside:target { |
||||
width: 90%; |
||||
overflow: auto; |
||||
} |
||||
.aside .categories { |
||||
margin: 10px 0 75px; |
||||
} |
||||
|
||||
.flux_header .item.website { |
||||
width: 40px; |
||||
} |
||||
|
||||
.flux:not(.current):hover .item.title { |
||||
position: relative; |
||||
width: auto; |
||||
white-space: nowrap; |
||||
} |
||||
|
||||
.notification { |
||||
top: 0; |
||||
left: 0; |
||||
right: 0; |
||||
} |
||||
|
||||
#nav_entries { |
||||
width: 100%; |
||||
} |
||||
|
||||
#stream.global .box-category { |
||||
margin: 10px 0; |
||||
} |
||||
|
||||
#panel { |
||||
top: 0; bottom: 0; |
||||
left: 0; right: 0; |
||||
} |
||||
#panel .close { |
||||
top: 0; right: 0; |
||||
left: auto; bottom: auto; |
||||
display: inline-block; |
||||
width: 30px; |
||||
height: 30px; |
||||
} |
||||
} |
||||
|
||||
/*=== PRINTER */ |
||||
/*============*/ |
||||
@media print { |
||||
.header, .aside, |
||||
.nav_menu, .day, |
||||
.flux_header, |
||||
.flux_content .bottom, |
||||
.pagination, |
||||
#nav_entries { |
||||
display: none; |
||||
} |
||||
html, body { |
||||
background: #fff; |
||||
color: #000; |
||||
font-family: Serif; |
||||
} |
||||
#global, |
||||
.flux_content { |
||||
display: block !important; |
||||
} |
||||
.flux_content .content { |
||||
width: 100% !important; |
||||
} |
||||
.flux_content .content a { |
||||
color: #000; |
||||
} |
||||
.flux_content .content a:after { |
||||
content: " [" attr(href) "] "; |
||||
font-style: italic; |
||||
} |
||||
} |
@ -1,698 +0,0 @@ |
||||
@charset "UTF-8"; |
||||
|
||||
/*=== GENERAL */ |
||||
/*============*/ |
||||
html, body { |
||||
margin: 0; |
||||
padding: 0; |
||||
font-size: 100%; |
||||
} |
||||
|
||||
/*=== Links */ |
||||
a { |
||||
text-decoration: none; |
||||
} |
||||
a:hover { |
||||
text-decoration: underline; |
||||
} |
||||
|
||||
/*=== Lists */ |
||||
ul, ol, dd { |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
|
||||
/*=== Titles */ |
||||
h1 { |
||||
margin: 0.6em 0 0.3em; |
||||
font-size: 1.5em; |
||||
line-height: 1.6em; |
||||
} |
||||
h2 { |
||||
margin: 0.5em 0 0.25em; |
||||
font-size: 1.3em; |
||||
line-height: 2em; |
||||
} |
||||
h3 { |
||||
margin: 0.5em 0 0.25em; |
||||
font-size: 1.1em; |
||||
line-height: 2em; |
||||
} |
||||
|
||||
/*=== Paragraphs */ |
||||
p { |
||||
margin: 1em 0 0.5em; |
||||
font-size: 1em; |
||||
} |
||||
|
||||
/*=== Images */ |
||||
img { |
||||
height: auto; |
||||
max-width: 100%; |
||||
} |
||||
img.favicon { |
||||
height: 16px; |
||||
width: 16px; |
||||
vertical-align: middle; |
||||
} |
||||
|
||||
/*=== Videos */ |
||||
iframe, embed, object, video { |
||||
max-width: 100%; |
||||
} |
||||
|
||||
/*=== Forms */ |
||||
legend { |
||||
display: block; |
||||
width: 100%; |
||||
clear: both; |
||||
} |
||||
label { |
||||
display: block; |
||||
} |
||||
input { |
||||
width: 180px; |
||||
} |
||||
textarea { |
||||
width: 300px; |
||||
} |
||||
input, select, textarea { |
||||
display: inline-block; |
||||
max-width: 100%; |
||||
} |
||||
input[type="radio"], |
||||
input[type="checkbox"] { |
||||
width: 15px !important; |
||||
min-height: 15px !important; |
||||
} |
||||
input.extend:focus { |
||||
width: 300px; |
||||
} |
||||
|
||||
/*=== COMPONENTS */ |
||||
/*===============*/ |
||||
/*=== Forms */ |
||||
.form-group:after { |
||||
content: ""; |
||||
display: block; |
||||
clear: both; |
||||
} |
||||
.form-group.form-actions { |
||||
min-width: 250px; |
||||
} |
||||
.form-group .group-name { |
||||
display: block; |
||||
float: left; |
||||
width: 200px; |
||||
} |
||||
.form-group .group-controls { |
||||
min-width: 250px; |
||||
margin: 0 0 0 220px; |
||||
} |
||||
.form-group .group-controls .control { |
||||
display: block; |
||||
} |
||||
|
||||
/*=== Buttons */ |
||||
.stick { |
||||
display: inline-block; |
||||
white-space: nowrap; |
||||
} |
||||
.btn, |
||||
a.btn { |
||||
display: inline-block; |
||||
cursor: pointer; |
||||
overflow: hidden; |
||||
} |
||||
.btn-important { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
/*=== Navigation */ |
||||
.nav-list .nav-header, |
||||
.nav-list .item { |
||||
display: block; |
||||
} |
||||
.nav-list .item, |
||||
.nav-list .item > a { |
||||
display: block; |
||||
overflow: hidden; |
||||
white-space: nowrap; |
||||
text-overflow: ellipsis; |
||||
} |
||||
.nav-head { |
||||
display: block; |
||||
} |
||||
.nav-head .item { |
||||
display: inline-block; |
||||
} |
||||
|
||||
/*=== Horizontal-list */ |
||||
.horizontal-list { |
||||
display: table; |
||||
table-layout: fixed; |
||||
width: 100%; |
||||
} |
||||
.horizontal-list .item { |
||||
display: table-cell; |
||||
} |
||||
|
||||
/*=== Dropdown */ |
||||
.dropdown { |
||||
position: relative; |
||||
display: inline-block; |
||||
} |
||||
.dropdown-target { |
||||
display: none; |
||||
} |
||||
.dropdown-menu { |
||||
display: none; |
||||
min-width: 200px; |
||||
margin: 0; |
||||
position: absolute; |
||||
right: 0; |
||||
background: #fff; |
||||
border: 1px solid #aaa; |
||||
} |
||||
.dropdown-header { |
||||
display: block; |
||||
} |
||||
.dropdown-menu > .item { |
||||
display: block; |
||||
} |
||||
.dropdown-menu > .item > a, |
||||
.dropdown-menu > .item > span { |
||||
display: block; |
||||
} |
||||
.dropdown-menu > .item[aria-checked="true"] > a:before { |
||||
content: '✓'; |
||||
} |
||||
.dropdown-menu .input { |
||||
display: block; |
||||
} |
||||
.dropdown-menu .input select, |
||||
.dropdown-menu .input input { |
||||
display: block; |
||||
max-width: 95%; |
||||
} |
||||
.dropdown-target:target ~ .dropdown-menu { |
||||
display: block; |
||||
z-index: 10; |
||||
} |
||||
.dropdown-close { |
||||
display: inline; |
||||
} |
||||
.dropdown-close a { |
||||
font-size: 0; |
||||
position: fixed; |
||||
top: 0; bottom: 0; |
||||
left: 0; right: 0; |
||||
display: block; |
||||
z-index: -10; |
||||
} |
||||
.separator { |
||||
display: block; |
||||
height: 0; |
||||
border-bottom: 1px solid #aaa; |
||||
} |
||||
|
||||
/*=== Alerts */ |
||||
.alert { |
||||
display: block; |
||||
width: 90%; |
||||
} |
||||
.group-controls .alert { |
||||
width: 100% |
||||
} |
||||
.alert-head { |
||||
margin: 0; |
||||
font-weight: bold; |
||||
} |
||||
.alert ul { |
||||
margin: 5px 20px; |
||||
} |
||||
|
||||
/*=== Icons */ |
||||
.icon { |
||||
display: inline-block; |
||||
width: 16px; |
||||
height: 16px; |
||||
vertical-align: middle; |
||||
line-height: 16px; |
||||
} |
||||
|
||||
/*=== Pagination */ |
||||
.pagination { |
||||
display: table; |
||||
width: 100%; |
||||
margin: 0; |
||||
padding: 0; |
||||
table-layout: fixed; |
||||
} |
||||
.pagination .item { |
||||
display: table-cell; |
||||
} |
||||
.pagination .pager-first, |
||||
.pagination .pager-previous, |
||||
.pagination .pager-next, |
||||
.pagination .pager-last { |
||||
width: 100px; |
||||
} |
||||
|
||||
/*=== STRUCTURE */ |
||||
/*===============*/ |
||||
/*=== Header */ |
||||
.header { |
||||
display: table; |
||||
width: 100%; |
||||
table-layout: fixed; |
||||
} |
||||
.header > .item { |
||||
display: table-cell; |
||||
} |
||||
.header > .item.title { |
||||
width: 250px; |
||||
white-space: nowrap; |
||||
} |
||||
.header > .item.title h1 { |
||||
display: inline-block; |
||||
} |
||||
.header > .item.title .logo { |
||||
display: inline-block; |
||||
height: 32px; |
||||
width: 32px; |
||||
vertical-align: middle; |
||||
} |
||||
.header > .item.configure { |
||||
width: 100px; |
||||
} |
||||
|
||||
/*=== Body */ |
||||
#global { |
||||
display: table; |
||||
width: 100%; |
||||
height: 100%; |
||||
table-layout: fixed; |
||||
} |
||||
.aside { |
||||
display: table-cell; |
||||
height: 100%; |
||||
width: 250px; |
||||
vertical-align: top; |
||||
} |
||||
.aside.aside_flux { |
||||
background: #fff; |
||||
} |
||||
|
||||
/*=== Aside main page (categories) */ |
||||
.categories { |
||||
list-style: none; |
||||
margin: 0; |
||||
} |
||||
.state_unread li:not(.active)[data-unread="0"] { |
||||
display: none; |
||||
} |
||||
.category { |
||||
display: block; |
||||
overflow: hidden; |
||||
white-space: nowrap; |
||||
text-overflow: ellipsis; |
||||
} |
||||
.category .btn:not([data-unread="0"]):after { |
||||
content: attr(data-unread); |
||||
} |
||||
|
||||
/*=== Aside main page (feeds) */ |
||||
.categories .feeds { |
||||
width: 100%; |
||||
list-style: none; |
||||
} |
||||
.categories .feeds:not(.active) { |
||||
display: none; |
||||
} |
||||
.categories .feeds .feed { |
||||
display: inline-block; |
||||
overflow: hidden; |
||||
white-space: nowrap; |
||||
text-overflow: ellipsis; |
||||
vertical-align: middle; |
||||
} |
||||
.categories .feeds .feed:not([data-unread="0"]):before { |
||||
content: "(" attr(data-unread) ") "; |
||||
} |
||||
.categories .feeds .dropdown-menu { |
||||
left: 0; |
||||
} |
||||
.categories .feeds .item .dropdown-toggle > .icon { |
||||
visibility: hidden; |
||||
cursor: pointer; |
||||
vertical-align: top; |
||||
} |
||||
.categories .feeds .item .dropdown-target:target ~ .dropdown-toggle > .icon, |
||||
.categories .feeds .item:hover .dropdown-toggle > .icon, |
||||
.categories .feeds .item.active .dropdown-toggle > .icon { |
||||
visibility: visible; |
||||
} |
||||
|
||||
/*=== New article notification */ |
||||
#new-article { |
||||
display: none; |
||||
} |
||||
#new-article > a { |
||||
display: block; |
||||
} |
||||
|
||||
/*=== Day indication */ |
||||
.day .name { |
||||
position: absolute; |
||||
right: 0; |
||||
width: 50%; |
||||
overflow: hidden; |
||||
white-space: nowrap; |
||||
text-overflow: ellipsis; |
||||
} |
||||
|
||||
/*=== Feed article header and footer */ |
||||
.flux_header { |
||||
position: relative; |
||||
} |
||||
.flux .item { |
||||
line-height: 40px; |
||||
white-space: nowrap; |
||||
} |
||||
.flux .item.manage, |
||||
.flux .item.link { |
||||
width: 40px; |
||||
text-align: center; |
||||
} |
||||
.flux .item.website { |
||||
width: 200px; |
||||
} |
||||
.flux.not_read .item.title, |
||||
.flux.current .item.title { |
||||
font-weight: bold; |
||||
} |
||||
.flux:not(.current):hover .item.title { |
||||
position: absolute; |
||||
max-width: calc(100% - 320px); |
||||
background: #fff; |
||||
} |
||||
.flux .item.title a { |
||||
color: #000; |
||||
text-decoration: none; |
||||
} |
||||
.flux .item.date { |
||||
width: 145px; |
||||
text-align: right; |
||||
} |
||||
.flux .item > a { |
||||
display: block; |
||||
} |
||||
.flux .item > a { |
||||
display: block; |
||||
text-decoration: none; |
||||
white-space: nowrap; |
||||
text-overflow: ellipsis; |
||||
overflow: hidden; |
||||
} |
||||
.flux .item.share > a { |
||||
display: list-item; |
||||
list-style-position: inside; |
||||
list-style-type: decimal; |
||||
} |
||||
|
||||
/*=== Feed article content */ |
||||
.hide_posts > .flux:not(.active) > .flux_content { |
||||
display: none; |
||||
} |
||||
.content { |
||||
min-height: 20em; |
||||
margin: auto; |
||||
line-height: 1.7em; |
||||
word-wrap: break-word; |
||||
} |
||||
.content.large { |
||||
max-width: 1000px; |
||||
} |
||||
.content.medium { |
||||
max-width: 800px; |
||||
} |
||||
.content.thin { |
||||
max-width: 550px; |
||||
} |
||||
.content ul, |
||||
.content ol, |
||||
.content dd { |
||||
margin: 0 0 0 15px; |
||||
padding: 0 0 5px 15px; |
||||
} |
||||
.content pre { |
||||
overflow: auto; |
||||
} |
||||
|
||||
/*=== Notification and actualize notification */ |
||||
.notification { |
||||
position: absolute; |
||||
top: 1em; |
||||
left: 25%; right: 25%; |
||||
z-index: 10; |
||||
background: #fff; |
||||
border: 1px solid #aaa; |
||||
} |
||||
.notification.closed { |
||||
display: none; |
||||
} |
||||
.notification a.close { |
||||
position: absolute; |
||||
top: 0; bottom: 0; |
||||
right: 0; |
||||
display: inline-block; |
||||
} |
||||
|
||||
#actualizeProgress { |
||||
position: fixed; |
||||
} |
||||
#actualizeProgress progress { |
||||
max-width: 100%; |
||||
vertical-align: middle; |
||||
} |
||||
#actualizeProgress .progress { |
||||
vertical-align: middle; |
||||
} |
||||
|
||||
/*=== Navigation menu (for articles) */ |
||||
#nav_entries { |
||||
position: fixed; |
||||
bottom: 0; left: 0; |
||||
display: table; |
||||
width: 250px; |
||||
background: #fff; |
||||
table-layout: fixed; |
||||
} |
||||
#nav_entries .item { |
||||
display: table-cell; |
||||
width: 30%; |
||||
} |
||||
#nav_entries a { |
||||
display: block; |
||||
} |
||||
|
||||
/*=== "Load more" part */ |
||||
#load_more { |
||||
min-height: 40px; |
||||
} |
||||
.loading { |
||||
background: url("loader.gif") center center no-repeat; |
||||
font-size: 0; |
||||
} |
||||
#bigMarkAsRead { |
||||
display: block; |
||||
padding: 3em 0; |
||||
text-align: center; |
||||
} |
||||
.bigTick { |
||||
font-size: 7em; |
||||
line-height: 1.6em; |
||||
} |
||||
|
||||
/*=== Statistiques */ |
||||
.stat > table { |
||||
width: 100%; |
||||
} |
||||
|
||||
/*=== GLOBAL VIEW */ |
||||
/*================*/ |
||||
/*=== Category boxes */ |
||||
#stream.global .box-category { |
||||
display: inline-block; |
||||
width: 19em; |
||||
max-width: 95%; |
||||
margin: 20px 10px; |
||||
border: 1px solid #ccc; |
||||
vertical-align: top; |
||||
} |
||||
#stream.global .category { |
||||
width: 100%; |
||||
} |
||||
#stream.global .btn { |
||||
display: block; |
||||
} |
||||
#stream.global .box-category .feeds { |
||||
display: block; |
||||
overflow: auto; |
||||
} |
||||
#stream.global .box-category .feed { |
||||
width: 19em; |
||||
max-width: 90%; |
||||
} |
||||
|
||||
/*=== Panel */ |
||||
#overlay { |
||||
display: none; |
||||
position: fixed; |
||||
top: 0; bottom: 0; |
||||
left: 0; right: 0; |
||||
background: rgba(0, 0, 0, 0.9); |
||||
} |
||||
#panel { |
||||
display: none; |
||||
position: fixed; |
||||
top: 1em; bottom: 1em; |
||||
left: 2em; right: 2em; |
||||
overflow: auto; |
||||
background: #fff; |
||||
} |
||||
#panel .close { |
||||
position: fixed; |
||||
top: 0; bottom: 0; |
||||
left: 0; right: 0; |
||||
display: block; |
||||
} |
||||
#panel .close img { |
||||
display: none; |
||||
} |
||||
|
||||
/*=== DIVERS */ |
||||
/*===========*/ |
||||
.nav-login, |
||||
.nav_menu .search, |
||||
.nav_menu .toggle_aside { |
||||
display: none; |
||||
} |
||||
|
||||
.aside .toggle_aside { |
||||
position: absolute; |
||||
right: 0; |
||||
display: none; |
||||
width: 30px; |
||||
height: 30px; |
||||
line-height: 30px; |
||||
text-align: center; |
||||
} |
||||
|
||||
/*=== MOBILE */ |
||||
/*===========*/ |
||||
@media(max-width: 840px) { |
||||
.header, |
||||
.aside .btn-important, |
||||
.aside .feeds .dropdown, |
||||
.flux_header .item.website span, |
||||
.item.date, .day .date, |
||||
.dropdown-menu > .no-mobile, |
||||
.no-mobile { |
||||
display: none; |
||||
} |
||||
.nav-login { |
||||
display: block; |
||||
} |
||||
.nav_menu .toggle_aside, |
||||
.aside .toggle_aside, |
||||
.nav_menu .search, |
||||
#panel .close img { |
||||
display: inline-block; |
||||
} |
||||
|
||||
.aside { |
||||
position: fixed; |
||||
top: 0; bottom: 0; |
||||
left: 0; |
||||
width: 0; |
||||
overflow: hidden; |
||||
z-index: 100; |
||||
} |
||||
.aside:target { |
||||
width: 90%; |
||||
overflow: auto; |
||||
} |
||||
.aside .categories { |
||||
margin: 10px 0 75px; |
||||
} |
||||
|
||||
.flux_header .item.website { |
||||
width: 40px; |
||||
} |
||||
|
||||
.flux:not(.current):hover .item.title { |
||||
position: relative; |
||||
width: auto; |
||||
white-space: nowrap; |
||||
} |
||||
|
||||
.notification { |
||||
top: 0; |
||||
left: 0; |
||||
right: 0; |
||||
} |
||||
|
||||
#nav_entries { |
||||
width: 100%; |
||||
} |
||||
|
||||
#stream.global .box-category { |
||||
margin: 10px 0; |
||||
} |
||||
|
||||
#panel { |
||||
top: 0; bottom: 0; |
||||
left: 0; right: 0; |
||||
} |
||||
#panel .close { |
||||
top: 0; right: 0; |
||||
left: auto; bottom: auto; |
||||
display: inline-block; |
||||
width: 30px; |
||||
height: 30px; |
||||
} |
||||
} |
||||
|
||||
/*=== PRINTER */ |
||||
/*============*/ |
||||
@media print { |
||||
.header, .aside, |
||||
.nav_menu, .day, |
||||
.flux_header, |
||||
.flux_content .bottom, |
||||
.pagination, |
||||
#nav_entries { |
||||
display: none; |
||||
} |
||||
html, body { |
||||
background: #fff; |
||||
color: #000; |
||||
font-family: Serif; |
||||
} |
||||
#global, |
||||
.flux_content { |
||||
display: block !important; |
||||
} |
||||
.flux_content .content { |
||||
width: 100% !important; |
||||
} |
||||
.flux_content .content a { |
||||
color: #000; |
||||
} |
||||
.flux_content .content a:after { |
||||
content: " [" attr(href) "] "; |
||||
font-style: italic; |
||||
} |
||||
} |
@ -1,698 +0,0 @@ |
||||
@charset "UTF-8"; |
||||
|
||||
/*=== GENERAL */ |
||||
/*============*/ |
||||
html, body { |
||||
margin: 0; |
||||
padding: 0; |
||||
font-size: 100%; |
||||
} |
||||
|
||||
/*=== Links */ |
||||
a { |
||||
text-decoration: none; |
||||
} |
||||
a:hover { |
||||
text-decoration: underline; |
||||
} |
||||
|
||||
/*=== Lists */ |
||||
ul, ol, dd { |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
|
||||
/*=== Titles */ |
||||
h1 { |
||||
margin: 0.6em 0 0.3em; |
||||
font-size: 1.5em; |
||||
line-height: 1.6em; |
||||
} |
||||
h2 { |
||||
margin: 0.5em 0 0.25em; |
||||
font-size: 1.3em; |
||||
line-height: 2em; |
||||
} |
||||
h3 { |
||||
margin: 0.5em 0 0.25em; |
||||
font-size: 1.1em; |
||||
line-height: 2em; |
||||
} |
||||
|
||||
/*=== Paragraphs */ |
||||
p { |
||||
margin: 1em 0 0.5em; |
||||
font-size: 1em; |
||||
} |
||||
|
||||
/*=== Images */ |
||||
img { |
||||
height: auto; |
||||
max-width: 100%; |
||||
} |
||||
img.favicon { |
||||
height: 16px; |
||||
width: 16px; |
||||
vertical-align: middle; |
||||
} |
||||
|
||||
/*=== Videos */ |
||||
iframe, embed, object, video { |
||||
max-width: 100%; |
||||
} |
||||
|
||||
/*=== Forms */ |
||||
legend { |
||||
display: block; |
||||
width: 100%; |
||||
clear: both; |
||||
} |
||||
label { |
||||
display: block; |
||||
} |
||||
input { |
||||
width: 180px; |
||||
} |
||||
textarea { |
||||
width: 300px; |
||||
} |
||||
input, select, textarea { |
||||
display: inline-block; |
||||
max-width: 100%; |
||||
} |
||||
input[type="radio"], |
||||
input[type="checkbox"] { |
||||
width: 15px !important; |
||||
min-height: 15px !important; |
||||
} |
||||
input.extend:focus { |
||||
width: 300px; |
||||
} |
||||
|
||||
/*=== COMPONENTS */ |
||||
/*===============*/ |
||||
/*=== Forms */ |
||||
.form-group:after { |
||||
content: ""; |
||||
display: block; |
||||
clear: both; |
||||
} |
||||
.form-group.form-actions { |
||||
min-width: 250px; |
||||
} |
||||
.form-group .group-name { |
||||
display: block; |
||||
float: left; |
||||
width: 200px; |
||||
} |
||||
.form-group .group-controls { |
||||
min-width: 250px; |
||||
margin: 0 0 0 220px; |
||||
} |
||||
.form-group .group-controls .control { |
||||
display: block; |
||||
} |
||||
|
||||
/*=== Buttons */ |
||||
.stick { |
||||
display: inline-block; |
||||
white-space: nowrap; |
||||
} |
||||
.btn, |
||||
a.btn { |
||||
display: inline-block; |
||||
cursor: pointer; |
||||
overflow: hidden; |
||||
} |
||||
.btn-important { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
/*=== Navigation */ |
||||
.nav-list .nav-header, |
||||
.nav-list .item { |
||||
display: block; |
||||
} |
||||
.nav-list .item, |
||||
.nav-list .item > a { |
||||
display: block; |
||||
overflow: hidden; |
||||
white-space: nowrap; |
||||
text-overflow: ellipsis; |
||||
} |
||||
.nav-head { |
||||
display: block; |
||||
} |
||||
.nav-head .item { |
||||
display: inline-block; |
||||
} |
||||
|
||||
/*=== Horizontal-list */ |
||||
.horizontal-list { |
||||
display: table; |
||||
table-layout: fixed; |
||||
width: 100%; |
||||
} |
||||
.horizontal-list .item { |
||||
display: table-cell; |
||||
} |
||||
|
||||
/*=== Dropdown */ |
||||
.dropdown { |
||||
position: relative; |
||||
display: inline-block; |
||||
} |
||||
.dropdown-target { |
||||
display: none; |
||||
} |
||||
.dropdown-menu { |
||||
display: none; |
||||
min-width: 200px; |
||||
margin: 0; |
||||
position: absolute; |
||||
right: 0; |
||||
background: #fff; |
||||
border: 1px solid #aaa; |
||||
} |
||||
.dropdown-header { |
||||
display: block; |
||||
} |
||||
.dropdown-menu > .item { |
||||
display: block; |
||||
} |
||||
.dropdown-menu > .item > a, |
||||
.dropdown-menu > .item > span { |
||||
display: block; |
||||
} |
||||
.dropdown-menu > .item[aria-checked="true"] > a:before { |
||||
content: '✓'; |
||||
} |
||||
.dropdown-menu .input { |
||||
display: block; |
||||
} |
||||
.dropdown-menu .input select, |
||||
.dropdown-menu .input input { |
||||
display: block; |
||||
max-width: 95%; |
||||
} |
||||
.dropdown-target:target ~ .dropdown-menu { |
||||
display: block; |
||||
z-index: 10; |
||||
} |
||||
.dropdown-close { |
||||
display: inline; |
||||
} |
||||
.dropdown-close a { |
||||
font-size: 0; |
||||
position: fixed; |
||||
top: 0; bottom: 0; |
||||
left: 0; right: 0; |
||||
display: block; |
||||
z-index: -10; |
||||
} |
||||
.separator { |
||||
display: block; |
||||
height: 0; |
||||
border-bottom: 1px solid #aaa; |
||||
} |
||||
|
||||
/*=== Alerts */ |
||||
.alert { |
||||
display: block; |
||||
width: 90%; |
||||
} |
||||
.group-controls .alert { |
||||
width: 100% |
||||
} |
||||
.alert-head { |
||||
margin: 0; |
||||
font-weight: bold; |
||||
} |
||||
.alert ul { |
||||
margin: 5px 20px; |
||||
} |
||||
|
||||
/*=== Icons */ |
||||
.icon { |
||||
display: inline-block; |
||||
width: 16px; |
||||
height: 16px; |
||||
vertical-align: middle; |
||||
line-height: 16px; |
||||
} |
||||
|
||||
/*=== Pagination */ |
||||
.pagination { |
||||
display: table; |
||||
width: 100%; |
||||
margin: 0; |
||||
padding: 0; |
||||
table-layout: fixed; |
||||
} |
||||
.pagination .item { |
||||
display: table-cell; |
||||
} |
||||
.pagination .pager-first, |
||||
.pagination .pager-previous, |
||||
.pagination .pager-next, |
||||
.pagination .pager-last { |
||||
width: 100px; |
||||
} |
||||
|
||||
/*=== STRUCTURE */ |
||||
/*===============*/ |
||||
/*=== Header */ |
||||
.header { |
||||
display: table; |
||||
width: 100%; |
||||
table-layout: fixed; |
||||
} |
||||
.header > .item { |
||||
display: table-cell; |
||||
} |
||||
.header > .item.title { |
||||
width: 250px; |
||||
white-space: nowrap; |
||||
} |
||||
.header > .item.title h1 { |
||||
display: inline-block; |
||||
} |
||||
.header > .item.title .logo { |
||||
display: inline-block; |
||||
height: 32px; |
||||
width: 32px; |
||||
vertical-align: middle; |
||||
} |
||||
.header > .item.configure { |
||||
width: 100px; |
||||
} |
||||
|
||||
/*=== Body */ |
||||
#global { |
||||
display: table; |
||||
width: 100%; |
||||
height: 100%; |
||||
table-layout: fixed; |
||||
} |
||||
.aside { |
||||
display: table-cell; |
||||
height: 100%; |
||||
width: 250px; |
||||
vertical-align: top; |
||||
} |
||||
.aside.aside_flux { |
||||
background: #fff; |
||||
} |
||||
|
||||
/*=== Aside main page (categories) */ |
||||
.categories { |
||||
list-style: none; |
||||
margin: 0; |
||||
} |
||||
.state_unread li:not(.active)[data-unread="0"] { |
||||
display: none; |
||||
} |
||||
.category { |
||||
display: block; |
||||
overflow: hidden; |
||||
white-space: nowrap; |
||||
text-overflow: ellipsis; |
||||
} |
||||
.category .btn:not([data-unread="0"]):after { |
||||
content: attr(data-unread); |
||||
} |
||||
|
||||
/*=== Aside main page (feeds) */ |
||||
.categories .feeds { |
||||
width: 100%; |
||||
list-style: none; |
||||
} |
||||
.categories .feeds:not(.active) { |
||||
display: none; |
||||
} |
||||
.categories .feeds .feed { |
||||
display: inline-block; |
||||
overflow: hidden; |
||||
white-space: nowrap; |
||||
text-overflow: ellipsis; |
||||
vertical-align: middle; |
||||
} |
||||
.categories .feeds .feed:not([data-unread="0"]):before { |
||||
content: "(" attr(data-unread) ") "; |
||||
} |
||||
.categories .feeds .dropdown-menu { |
||||
left: 0; |
||||
} |
||||
.categories .feeds .item .dropdown-toggle > .icon { |
||||
visibility: hidden; |
||||
cursor: pointer; |
||||
vertical-align: top; |
||||
} |
||||
.categories .feeds .item .dropdown-target:target ~ .dropdown-toggle > .icon, |
||||
.categories .feeds .item:hover .dropdown-toggle > .icon, |
||||
.categories .feeds .item.active .dropdown-toggle > .icon { |
||||
visibility: visible; |
||||
} |
||||
|
||||
/*=== New article notification */ |
||||
#new-article { |
||||
display: none; |
||||
} |
||||
#new-article > a { |
||||
display: block; |
||||
} |
||||
|
||||
/*=== Day indication */ |
||||
.day .name { |
||||
position: absolute; |
||||
right: 0; |
||||
width: 50%; |
||||
overflow: hidden; |
||||
white-space: nowrap; |
||||
text-overflow: ellipsis; |
||||
} |
||||
|
||||
/*=== Feed article header and footer */ |
||||
.flux_header { |
||||
position: relative; |
||||
} |
||||
.flux .item { |
||||
line-height: 40px; |
||||
white-space: nowrap; |
||||
} |
||||
.flux .item.manage, |
||||
.flux .item.link { |
||||
width: 40px; |
||||
text-align: center; |
||||
} |
||||
.flux .item.website { |
||||
width: 200px; |
||||
} |
||||
.flux.not_read .item.title, |
||||
.flux.current .item.title { |
||||
font-weight: bold; |
||||
} |
||||
.flux:not(.current):hover .item.title { |
||||
position: absolute; |
||||
max-width: calc(100% - 320px); |
||||
background: #fff; |
||||
} |
||||
.flux .item.title a { |
||||
color: #000; |
||||
text-decoration: none; |
||||
} |
||||
.flux .item.date { |
||||
width: 145px; |
||||
text-align: right; |
||||
} |
||||
.flux .item > a { |
||||
display: block; |
||||
} |
||||
.flux .item > a { |
||||
display: block; |
||||
text-decoration: none; |
||||
white-space: nowrap; |
||||
text-overflow: ellipsis; |
||||
overflow: hidden; |
||||
} |
||||
.flux .item.share > a { |
||||
display: list-item; |
||||
list-style-position: inside; |
||||
list-style-type: decimal; |
||||
} |
||||
|
||||
/*=== Feed article content */ |
||||
.hide_posts > .flux:not(.active) > .flux_content { |
||||
display: none; |
||||
} |
||||
.content { |
||||
min-height: 20em; |
||||
margin: auto; |
||||
line-height: 1.7em; |
||||
word-wrap: break-word; |
||||
} |
||||
.content.large { |
||||
max-width: 1000px; |
||||
} |
||||
.content.medium { |
||||
max-width: 800px; |
||||
} |
||||
.content.thin { |
||||
max-width: 550px; |
||||
} |
||||
.content ul, |
||||
.content ol, |
||||
.content dd { |
||||
margin: 0 0 0 15px; |
||||
padding: 0 0 5px 15px; |
||||
} |
||||
.content pre { |
||||
overflow: auto; |
||||
} |
||||
|
||||
/*=== Notification and actualize notification */ |
||||
.notification { |
||||
position: absolute; |
||||
top: 1em; |
||||
left: 25%; right: 25%; |
||||
z-index: 10; |
||||
background: #fff; |
||||
border: 1px solid #aaa; |
||||
} |
||||
.notification.closed { |
||||
display: none; |
||||
} |
||||
.notification a.close { |
||||
position: absolute; |
||||
top: 0; bottom: 0; |
||||
right: 0; |
||||
display: inline-block; |
||||
} |
||||
|
||||
#actualizeProgress { |
||||
position: fixed; |
||||
} |
||||
#actualizeProgress progress { |
||||
max-width: 100%; |
||||
vertical-align: middle; |
||||
} |
||||
#actualizeProgress .progress { |
||||
vertical-align: middle; |
||||
} |
||||
|
||||
/*=== Navigation menu (for articles) */ |
||||
#nav_entries { |
||||
position: fixed; |
||||
bottom: 0; left: 0; |
||||
display: table; |
||||
width: 250px; |
||||
background: #fff; |
||||
table-layout: fixed; |
||||
} |
||||
#nav_entries .item { |
||||
display: table-cell; |
||||
width: 30%; |
||||
} |
||||
#nav_entries a { |
||||
display: block; |
||||
} |
||||
|
||||
/*=== "Load more" part */ |
||||
#load_more { |
||||
min-height: 40px; |
||||
} |
||||
.loading { |
||||
background: url("loader.gif") center center no-repeat; |
||||
font-size: 0; |
||||
} |
||||
#bigMarkAsRead { |
||||
display: block; |
||||
padding: 3em 0; |
||||
text-align: center; |
||||
} |
||||
.bigTick { |
||||
font-size: 7em; |
||||
line-height: 1.6em; |
||||
} |
||||
|
||||
/*=== Statistiques */ |
||||
.stat > table { |
||||
width: 100%; |
||||
} |
||||
|
||||
/*=== GLOBAL VIEW */ |
||||
/*================*/ |
||||
/*=== Category boxes */ |
||||
#stream.global .box-category { |
||||
display: inline-block; |
||||
width: 19em; |
||||
max-width: 95%; |
||||
margin: 20px 10px; |
||||
border: 1px solid #ccc; |
||||
vertical-align: top; |
||||
} |
||||
#stream.global .category { |
||||
width: 100%; |
||||
} |
||||
#stream.global .btn { |
||||
display: block; |
||||
} |
||||
#stream.global .box-category .feeds { |
||||
display: block; |
||||
overflow: auto; |
||||
} |
||||
#stream.global .box-category .feed { |
||||
width: 19em; |
||||
max-width: 90%; |
||||
} |
||||
|
||||
/*=== Panel */ |
||||
#overlay { |
||||
display: none; |
||||
position: fixed; |
||||
top: 0; bottom: 0; |
||||
left: 0; right: 0; |
||||
background: rgba(0, 0, 0, 0.9); |
||||
} |
||||
#panel { |
||||
display: none; |
||||
position: fixed; |
||||
top: 1em; bottom: 1em; |
||||
left: 2em; right: 2em; |
||||
overflow: auto; |
||||
background: #fff; |
||||
} |
||||
#panel .close { |
||||
position: fixed; |
||||
top: 0; bottom: 0; |
||||
left: 0; right: 0; |
||||
display: block; |
||||
} |
||||
#panel .close img { |
||||
display: none; |
||||
} |
||||
|
||||
/*=== DIVERS */ |
||||
/*===========*/ |
||||
.nav-login, |
||||
.nav_menu .search, |
||||
.nav_menu .toggle_aside { |
||||
display: none; |
||||
} |
||||
|
||||
.aside .toggle_aside { |
||||
position: absolute; |
||||
right: 0; |
||||
display: none; |
||||
width: 30px; |
||||
height: 30px; |
||||
line-height: 30px; |
||||
text-align: center; |
||||
} |
||||
|
||||
/*=== MOBILE */ |
||||
/*===========*/ |
||||
@media(max-width: 840px) { |
||||
.header, |
||||
.aside .btn-important, |
||||
.aside .feeds .dropdown, |
||||
.flux_header .item.website span, |
||||
.item.date, .day .date, |
||||
.dropdown-menu > .no-mobile, |
||||
.no-mobile { |
||||
display: none; |
||||
} |
||||
.nav-login { |
||||
display: block; |
||||
} |
||||
.nav_menu .toggle_aside, |
||||
.aside .toggle_aside, |
||||
.nav_menu .search, |
||||
#panel .close img { |
||||
display: inline-block; |
||||
} |
||||
|
||||
.aside { |
||||
position: fixed; |
||||
top: 0; bottom: 0; |
||||
left: 0; |
||||
width: 0; |
||||
overflow: hidden; |
||||
z-index: 100; |
||||
} |
||||
.aside:target { |
||||
width: 90%; |
||||
overflow: auto; |
||||
} |
||||
.aside .categories { |
||||
margin: 10px 0 75px; |
||||
} |
||||
|
||||
.flux_header .item.website { |
||||
width: 40px; |
||||
} |
||||
|
||||
.flux:not(.current):hover .item.title { |
||||
position: relative; |
||||
width: auto; |
||||
white-space: nowrap; |
||||
} |
||||
|
||||
.notification { |
||||
top: 0; |
||||
left: 0; |
||||
right: 0; |
||||
} |
||||
|
||||
#nav_entries { |
||||
width: 100%; |
||||
} |
||||
|
||||
#stream.global .box-category { |
||||
margin: 10px 0; |
||||
} |
||||
|
||||
#panel { |
||||
top: 0; bottom: 0; |
||||
left: 0; right: 0; |
||||
} |
||||
#panel .close { |
||||
top: 0; right: 0; |
||||
left: auto; bottom: auto; |
||||
display: inline-block; |
||||
width: 30px; |
||||
height: 30px; |
||||
} |
||||
} |
||||
|
||||
/*=== PRINTER */ |
||||
/*============*/ |
||||
@media print { |
||||
.header, .aside, |
||||
.nav_menu, .day, |
||||
.flux_header, |
||||
.flux_content .bottom, |
||||
.pagination, |
||||
#nav_entries { |
||||
display: none; |
||||
} |
||||
html, body { |
||||
background: #fff; |
||||
color: #000; |
||||
font-family: Serif; |
||||
} |
||||
#global, |
||||
.flux_content { |
||||
display: block !important; |
||||
} |
||||
.flux_content .content { |
||||
width: 100% !important; |
||||
} |
||||
.flux_content .content a { |
||||
color: #000; |
||||
} |
||||
.flux_content .content a:after { |
||||
content: " [" attr(href) "] "; |
||||
font-style: italic; |
||||
} |
||||
} |
@ -0,0 +1,4 @@ |
||||
Pafat |
||||
===== |
||||
|
||||
Thème Pafat pour FreshRSS |
After Width: | Height: | Size: 350 B |
After Width: | Height: | Size: 747 B |
Before Width: | Height: | Size: 605 B After Width: | Height: | Size: 602 B |
Before Width: | Height: | Size: 421 B After Width: | Height: | Size: 421 B |
After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 662 B After Width: | Height: | Size: 656 B |
Before Width: | Height: | Size: 569 B After Width: | Height: | Size: 563 B |
Before Width: | Height: | Size: 589 B After Width: | Height: | Size: 586 B |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 586 B |
After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 747 B |
Before Width: | Height: | Size: 200 B After Width: | Height: | Size: 197 B |
After Width: | Height: | Size: 775 B |
After Width: | Height: | Size: 598 B |
After Width: | Height: | Size: 2.5 KiB |
@ -0,0 +1,7 @@ |
||||
{ |
||||
"name": "Pafat", |
||||
"author": "Plopoyop", |
||||
"description": "Un thème pour FreshRSS", |
||||
"version": 0.2, |
||||
"files": ["_template.css", "pafat.css"] |
||||
} |
Before Width: | Height: | Size: 220 B |
Before Width: | Height: | Size: 362 B |
Before Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 261 B |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 750 B |
Before Width: | Height: | Size: 567 B |
Before Width: | Height: | Size: 567 B |
Before Width: | Height: | Size: 805 B |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 470 B |
Before Width: | Height: | Size: 56 B |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 910 B |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 592 B |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 949 B |