mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-07-29 12:09:37 +00:00
Apply new card based design
Signed-off-by: Manish Tripathy <manisht@thougtworks.com> Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org> Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
This commit is contained in:
parent
e11fcd8f53
commit
0932a07785
@ -23,7 +23,7 @@ from plinth.utils import format_lazy
|
||||
class Menu(object):
|
||||
"""One menu item."""
|
||||
|
||||
def __init__(self, label="", icon="", url="#", order=50):
|
||||
def __init__(self, name="",short_description="", label="", icon="", url="#", order=50):
|
||||
"""label is the text that is displayed on the menu.
|
||||
|
||||
icon is the icon to be displayed next to the label.
|
||||
@ -41,6 +41,8 @@ class Menu(object):
|
||||
use fractional orders.
|
||||
|
||||
"""
|
||||
self.name = name
|
||||
self.short_description = short_description
|
||||
self.label = label
|
||||
self.icon = icon
|
||||
self.url = url
|
||||
@ -61,7 +63,7 @@ class Menu(object):
|
||||
|
||||
def sorted_items(self):
|
||||
"""Return menu items in sorted order according to current locale."""
|
||||
return sorted(self.items, key=lambda x: (x.order, x.label))
|
||||
return sorted(self.items, key=lambda x: (x.order, x.name.lower()))
|
||||
|
||||
def add_urlname(self, name, icon, urlname, short_description="", order=50,
|
||||
url_args=None, url_kwargs=None):
|
||||
@ -75,14 +77,14 @@ class Menu(object):
|
||||
else:
|
||||
label = name
|
||||
url = reverse_lazy(urlname, args=url_args, kwargs=url_kwargs)
|
||||
return self.add_item(label, icon, url, order)
|
||||
return self.add_item(name, short_description, label, icon, url, order)
|
||||
|
||||
def add_item(self, label, icon, url, order=50):
|
||||
def add_item(self, name, short_description, label, icon, url, order=50):
|
||||
"""Create a new menu item with given parameters, add it to this menu and
|
||||
return it.
|
||||
|
||||
"""
|
||||
item = Menu(label=label, icon=icon, url=url, order=order)
|
||||
item = Menu(name=name, short_description=short_description, label=label, icon=icon, url=url, order=order)
|
||||
self.items.append(item)
|
||||
return item
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
{% extends 'base.html' %}
|
||||
{% extends 'cards.html' %}
|
||||
{% comment %}
|
||||
#
|
||||
# This file is part of FreedomBox.
|
||||
@ -18,35 +18,13 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block submenu %}
|
||||
{% if submenu %}
|
||||
<div class="sidebar">
|
||||
{% include "submenu.html" with menu=submenu %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>{% trans "Services and Applications" %}</h2>
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
You can install and run various services and applications on
|
||||
your {{ box_name }}. Click on any app page link on the left to
|
||||
read a description of the application and choose to install it.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
This box can be your photo sharing site, your instant messaging
|
||||
site, your social networking site, your news site. Remember web
|
||||
portals? We can be one of those too. Many of the services you
|
||||
use on the web could soon be on site and under your control!
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
{% block page_head %}
|
||||
<style type="text/css">
|
||||
body {
|
||||
background-image: url({% static 'theme/img/apps-background.svg' %});
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
||||
@ -77,7 +77,7 @@
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<!--[if lt IE 7]><p class=chromeframe>Your browser is <em>ancient!</em> <a href="http://mozilla.org/firefox">Upgrade to a modern version of Firefox</a> to experience this site.</p><![endif]-->
|
||||
<div class="navbar navbar-fixed-top navbar-default" role="navigation">
|
||||
<div class="navbar navbar-fixed-top navbar-default main-header" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse"
|
||||
@ -90,7 +90,7 @@
|
||||
{% block mainmenu_left %}
|
||||
<a href="{% url 'index' %}" class="navbar-brand"
|
||||
title="{{ box_name }}">
|
||||
<img src="{% static 'theme/img/freedombox-logo-32px.png' %}"
|
||||
<img src="{% static 'theme/img/FreedomBox-logo-32px-white.png' %}"
|
||||
alt="{{ box_name }}" />
|
||||
</a>
|
||||
{% endblock %}
|
||||
@ -99,18 +99,27 @@
|
||||
<ul class="nav navbar-nav">
|
||||
{% if user.is_authenticated and user_is_admin %}
|
||||
<li>
|
||||
<a href="{% url 'index' %}" title="{% trans "Home" %}">
|
||||
{% url 'index' as index_url %}
|
||||
<a href="{{ index_url }}" title='{% trans " Home" %}'
|
||||
class="{% if not submenu.url %}
|
||||
menu_link_active {% else %} menu_link {% endif %}">
|
||||
{% trans "Home" %}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{% url 'apps' %}" title="{% trans "Apps" %}">
|
||||
{% url 'apps' as apps_url %}
|
||||
<a href="{{ apps_url }}" title='{% trans " Apps" %}'
|
||||
class="{% if apps_url == submenu.url %}
|
||||
menu_link_active {% else %} menu_link {% endif %}">
|
||||
<span class="glyphicon glyphicon-th"></span>
|
||||
{% trans "Apps" %}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{% url 'system' %}" title="{% trans "System" %}">
|
||||
{% url 'system' as system_url %}
|
||||
<a href="{{ system_url }}" title='{% trans " System" %}'
|
||||
class="{% if system_url == submenu.url %}
|
||||
menu_link_active {% else %} menu_link {% endif %}">
|
||||
<span class="glyphicon glyphicon-cog nav-icon"></span>
|
||||
{% trans "System" %}
|
||||
</a>
|
||||
@ -199,52 +208,27 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="container-wrapper" class="container">
|
||||
<div class="row">
|
||||
{% block content_row %}
|
||||
<div class="col-md-3">
|
||||
{% block submenu %}
|
||||
{% if submenu %}
|
||||
<div class="sidebar visible-lg-block">
|
||||
{% include "submenu.html" with menu=submenu %}
|
||||
</div><!--/.sidebar -->
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% block container %}
|
||||
<div id="container-wrapper" class="container">
|
||||
<div class="row">
|
||||
{% block content_row %}
|
||||
<div class="col-md-6">
|
||||
{% block subsubmenu %}
|
||||
{% if subsubmenu %}
|
||||
{% show_subsubmenu subsubmenu %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block sidebar %}
|
||||
{# this sidebar should contain help texts but no menus #}
|
||||
{% endblock %}
|
||||
</div><!--/col-->
|
||||
{% include 'messages.html' %}
|
||||
|
||||
<div class="col-md-9">
|
||||
{% block subsubmenu %}
|
||||
{% if subsubmenu %}
|
||||
{% show_subsubmenu subsubmenu %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% include 'messages.html' %}
|
||||
|
||||
{% block content %}
|
||||
{# main content goes here #}
|
||||
{% endblock %}
|
||||
</div><!--/col-->
|
||||
|
||||
<div class="col-md-12">
|
||||
{% block icons %}
|
||||
{# icons go here #}
|
||||
{% endblock %}
|
||||
</div><!--/col-->
|
||||
|
||||
{% endblock %}
|
||||
</div><!--/row-->
|
||||
|
||||
<div class="text-center">
|
||||
{% block center-info %}
|
||||
{# this center-info should contain help texts but no menus #}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
{# main content goes here #}
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/.fluid-container-->
|
||||
{% endblock %}
|
||||
|
||||
<footer>
|
||||
<hr>
|
||||
|
||||
52
plinth/templates/cards.html
Normal file
52
plinth/templates/cards.html
Normal file
@ -0,0 +1,52 @@
|
||||
{% extends 'base.html' %}
|
||||
{% comment %}
|
||||
#
|
||||
# This file is part of FreedomBox.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
{% load static %}
|
||||
|
||||
{% block container %}
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
{% include 'messages.html' %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="container-wrapper" class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="card-list">
|
||||
|
||||
{% for item in submenu.sorted_items %}
|
||||
<div class="card thumbnail">
|
||||
<a href="{{ item.url }}" class="nav-link">
|
||||
<div class="card-icon">
|
||||
<span class="{{ item.icon }} glyphicon"></span>
|
||||
</div>
|
||||
<div class="card-title">{{ item.name }}</div>
|
||||
<div class="card-description">{{ item.short_description}}</div>
|
||||
</a>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@ -21,72 +21,88 @@
|
||||
{% load i18n %}
|
||||
{% load static %}
|
||||
|
||||
{% block icons %}
|
||||
{% block page_head %}
|
||||
<style type="text/css">
|
||||
body {
|
||||
background-image: url({% static 'theme/img/freedombox-logo-background.svg' %});
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
||||
<div class="row">
|
||||
{% if shortcuts %}
|
||||
{% block container %}
|
||||
|
||||
{% for shortcut in shortcuts %}
|
||||
{% if not shortcut.hidden %}
|
||||
{% if user.is_authenticated or not shortcut.login_required %}
|
||||
<div class="col-sm-3">
|
||||
<ul class="nav nav-pills nav-stacked">
|
||||
{% if selected_id == shortcut.id %}
|
||||
<li class="active">
|
||||
<a href="{{ shortcut.url }}" class="active">
|
||||
{% else %}
|
||||
<li>
|
||||
<a href="{{ shortcut.url }}">
|
||||
{% endif %}
|
||||
<center>
|
||||
<img src="{% static 'theme/icons/' %}{{ shortcut.icon }}.png" style="max-width: 100px; height: 100px" />
|
||||
<br>
|
||||
<div class="shortcut-label">
|
||||
{{ shortcut.label|linebreaks }}
|
||||
</div>
|
||||
</center>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
|
||||
{% include 'messages.html' %}
|
||||
|
||||
{% if not shortcuts %}
|
||||
<h4>
|
||||
{% url 'apps' as apps_url %}
|
||||
{% blocktrans trimmed %}
|
||||
Enable some <a href="{{ apps_url }}">applications</a> to add
|
||||
shortcuts to this page.
|
||||
{% endblocktrans %}
|
||||
</h4>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% else %}
|
||||
{% if details %}
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">{{ details_label }}</h3>
|
||||
</div>
|
||||
|
||||
<h4>
|
||||
{% url 'apps' as apps_url %}
|
||||
{% blocktrans trimmed %}
|
||||
Enable some <a href="{{ apps_url }}">applications</a> to add
|
||||
shortcuts to this page.
|
||||
{% endblocktrans %}
|
||||
</h4>
|
||||
{% for paragraph in details %}
|
||||
<div class="panel-body">
|
||||
{{ paragraph|safe }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
<br>
|
||||
|
||||
{% endif %}
|
||||
{% if user.is_authenticated and user_is_admin and configure_url %}
|
||||
<a class="btn btn-primary btn-sm"
|
||||
style="margin-left : 10px; margin-bottom : 5px"
|
||||
href="{{ configure_url }}">
|
||||
{% trans "Configure »" %}</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
{% if details %}
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">{{ details_label }}</h3>
|
||||
</div>
|
||||
|
||||
{% for paragraph in details %}
|
||||
<div class="panel-body">
|
||||
{{ paragraph|safe }}
|
||||
{% if shortcuts %}
|
||||
<div id="container-wrapper" class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="card-list">
|
||||
{% for shortcut in shortcuts %}
|
||||
{% if not shortcut.hidden %}
|
||||
{% if user.is_authenticated or not shortcut.login_required %}
|
||||
<div class="card thumbnail">
|
||||
{% if selected_id == shortcut.id %}
|
||||
<a href="{{ shortcut.url }}" class="active">
|
||||
{% else %}
|
||||
<a href="{{ shortcut.url }}">
|
||||
{% endif %}
|
||||
<div class="card-icon">
|
||||
<img src="{% static 'theme/icons/' %}{{ shortcut.icon }}.png"
|
||||
style="max-width: 100px; height: 100px; font-size: 80px"/>
|
||||
</div>
|
||||
<div class="card-title">
|
||||
{{ shortcut.name }}
|
||||
</div>
|
||||
<div class="card-description">
|
||||
{{ shortcut.short_description }}
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
<br>
|
||||
|
||||
{% if user.is_authenticated and user_is_admin and configure_url %}
|
||||
<a class="btn btn-primary btn-sm"
|
||||
style="margin-left : 10px; margin-bottom : 5px"
|
||||
href="{{ configure_url }}">
|
||||
{% trans "Configure »" %}</a>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
{% extends 'base.html' %}
|
||||
{% extends 'cards.html' %}
|
||||
{% comment %}
|
||||
#
|
||||
# This file is part of FreedomBox.
|
||||
@ -18,30 +18,13 @@
|
||||
#
|
||||
{% endcomment %}
|
||||
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block submenu %}
|
||||
{% if submenu %}
|
||||
<div class="sidebar">
|
||||
{% include "submenu.html" with menu=submenu %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>{% trans "System Configuration" %}</h2>
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Here you can administrate the underlying system of your {{ box_name }}.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
The options affect the {{ box_name }} at its most general level,
|
||||
so be careful!
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
{% block page_head %}
|
||||
<style type="text/css">
|
||||
body {
|
||||
background-image: url({% static 'theme/img/system-background.svg' %});
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
||||
@ -38,14 +38,16 @@ def build_menu(size=5):
|
||||
random.seed()
|
||||
item_data = []
|
||||
for index in range(1, size + 1):
|
||||
item_data.append(['Item' + str(index),
|
||||
item_data.append(['Name' + str(index),
|
||||
'ShortDescription' + str(index),
|
||||
'Item' + str(index),
|
||||
'Icon' + str(index),
|
||||
URL_TEMPLATE.format(index, index, index),
|
||||
random.randint(0, 1000)])
|
||||
|
||||
menu = Menu()
|
||||
for data in item_data:
|
||||
menu.add_item(data[0], data[1], data[2], data[3])
|
||||
menu.add_item(data[0], data[1], data[2], data[3], data[4], data[5])
|
||||
|
||||
return menu
|
||||
|
||||
@ -90,13 +92,17 @@ class MenuTestCase(TestCase):
|
||||
|
||||
def test_menu_creation_with_arguments(self):
|
||||
"""Verify the Menu state with initialization parameters."""
|
||||
expected_name = 'Name'
|
||||
expected_short_description = 'ShortDescription'
|
||||
expected_label = 'Label'
|
||||
expected_icon = 'Icon'
|
||||
expected_url = '/aaa/bbb/ccc/'
|
||||
expected_order = 42
|
||||
menu = Menu(expected_label, expected_icon, expected_url,
|
||||
menu = Menu(expected_name, expected_short_description, expected_label, expected_icon, expected_url,
|
||||
expected_order)
|
||||
|
||||
self.assertEqual(expected_name, menu.name)
|
||||
self.assertEqual(expected_short_description, menu.short_description)
|
||||
self.assertEqual(expected_label, menu.label)
|
||||
self.assertEqual(expected_icon, menu.icon)
|
||||
self.assertEqual(expected_url, menu.url)
|
||||
@ -105,17 +111,21 @@ class MenuTestCase(TestCase):
|
||||
|
||||
def test_get(self):
|
||||
"""Verify that a menu item can be correctly retrieved."""
|
||||
expected_name = 'Name2'
|
||||
expected_short_description = 'ShortDescription2'
|
||||
expected_label = 'Label2'
|
||||
expected_icon = 'Icon2'
|
||||
expected_url = 'index'
|
||||
reversed_url = reverse(expected_url)
|
||||
expected_order = 2
|
||||
menu = Menu()
|
||||
menu.add_item(expected_label, expected_icon, reversed_url,
|
||||
menu.add_item(expected_name, expected_short_description, expected_label, expected_icon, reversed_url,
|
||||
expected_order)
|
||||
actual_item = menu.get(expected_url)
|
||||
|
||||
self.assertIsNotNone(actual_item)
|
||||
self.assertEqual(expected_name, actual_item.name)
|
||||
self.assertEqual(expected_short_description, actual_item.short_description)
|
||||
self.assertEqual(expected_label, actual_item.label)
|
||||
self.assertEqual(expected_icon, actual_item.icon)
|
||||
self.assertEqual(reversed_url, actual_item.url)
|
||||
@ -124,12 +134,14 @@ class MenuTestCase(TestCase):
|
||||
|
||||
def test_get_with_item_not_found(self):
|
||||
"""Verify that a KeyError is raised if a menu item is not found."""
|
||||
expected_name = 'Name3'
|
||||
expected_short_description = 'ShortDescription3'
|
||||
expected_label = 'Label3'
|
||||
expected_icon = 'Icon3'
|
||||
expected_url = 'index'
|
||||
expected_order = 3
|
||||
menu = Menu()
|
||||
menu.add_item(expected_label, expected_icon, expected_url,
|
||||
menu.add_item(expected_name, expected_short_description, expected_label, expected_icon, expected_url,
|
||||
expected_order)
|
||||
|
||||
self.assertRaises(KeyError, menu.get, expected_url)
|
||||
@ -175,17 +187,21 @@ class MenuTestCase(TestCase):
|
||||
|
||||
def test_add_item(self):
|
||||
"""Verify that a menu item can be correctly added."""
|
||||
expected_name = 'Name5'
|
||||
expected_short_description = 'ShortDescription5'
|
||||
expected_label = 'Label5'
|
||||
expected_icon = 'Icon5'
|
||||
expected_url = '/jjj/kkk/lll/'
|
||||
expected_order = 5
|
||||
menu = Menu()
|
||||
actual_item = menu.add_item(expected_label, expected_icon,
|
||||
actual_item = menu.add_item(expected_name, expected_short_description, expected_label, expected_icon,
|
||||
expected_url, expected_order)
|
||||
|
||||
self.assertEqual(1, len(menu.items))
|
||||
self.assertIsNotNone(actual_item)
|
||||
self.assertEqual(actual_item, menu.items[0])
|
||||
self.assertEqual(expected_name, actual_item.name)
|
||||
self.assertEqual(expected_short_description, actual_item.short_description)
|
||||
self.assertEqual(expected_label, actual_item.label)
|
||||
self.assertEqual(expected_icon, actual_item.icon)
|
||||
self.assertEqual(expected_url, actual_item.url)
|
||||
|
||||
@ -4,10 +4,12 @@
|
||||
}
|
||||
|
||||
body {
|
||||
padding-top: 70px;
|
||||
padding-top: 6em;
|
||||
position: relative;
|
||||
font-family: LatoRegular, sans-serif;
|
||||
font-size: 15px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 22.5px 75px;
|
||||
}
|
||||
|
||||
.multiple-checkbox li {
|
||||
@ -21,7 +23,7 @@ body {
|
||||
|
||||
.navbar-brand img {
|
||||
float: left;
|
||||
margin-top: -14px;
|
||||
margin-top: -10px;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
@ -63,6 +65,10 @@ body {
|
||||
animation: spin 1s linear infinite;
|
||||
}
|
||||
|
||||
.nav-link:hover, .nav-link:visited, .nav-link:link, .nav-link:active {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
@ -178,3 +184,99 @@ footer license-info p {
|
||||
.manual-page {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* applying styles to header - begin */
|
||||
.main-header {
|
||||
background: #4989D4;
|
||||
box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.25);
|
||||
border: none;
|
||||
}
|
||||
|
||||
.main-header .navbar-nav>li>a {
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.main-header.navbar-default .navbar-nav>li>a:focus,
|
||||
.main-header.navbar-default .navbar-nav>li>a:hover,
|
||||
.main-header.navbar-default .navbar-nav>.active>a,
|
||||
.main-header.navbar-default .navbar-nav>.active>a:hover,
|
||||
.main-header.navbar-default .navbar-nav>.active>a:focus,
|
||||
.main-header.navbar-default .navbar-nav>.open>a,
|
||||
.main-header.navbar-default .navbar-nav>.open>a:hover,
|
||||
.main-header.navbar-default .navbar-nav>.open>a:focus {
|
||||
color: #FFF;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.main-header .navbar-nav>li>a .nav-icon {
|
||||
margin-right: 0px;
|
||||
}
|
||||
/* applying styles to header - end */
|
||||
|
||||
.card-list {
|
||||
width: 100%;
|
||||
max-width: 1500px;
|
||||
margin: 0 auto;
|
||||
padding: 0 10px;
|
||||
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
a.menu_link {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a.menu_link:hover,a.menu_link:active {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a.menu_link_active {
|
||||
border-bottom: white 3px solid;
|
||||
}
|
||||
|
||||
.card {
|
||||
text-align: center;
|
||||
box-shadow: 0 3px 5px 0 rgba(0,0,0,0.08);
|
||||
transition: box-shadow 0.3s ease-in-out;
|
||||
width: 16rem;
|
||||
padding: 0;
|
||||
margin: 0 10px 20px;
|
||||
}
|
||||
|
||||
.card:hover {
|
||||
box-shadow: 0 5px 15px 2px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.card .nav-link {
|
||||
display: block;
|
||||
padding: 20px 4px 4px 4px;
|
||||
}
|
||||
|
||||
.card-title, .card-description {
|
||||
margin: 4px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.card-title {
|
||||
font-weight: bold;
|
||||
font-size: 1.75rem
|
||||
}
|
||||
|
||||
.card-description {
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
.card-icon {
|
||||
background: radial-gradient(farthest-side at bottom,#eefff0, white);
|
||||
background-position: 50% 100%;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 150% 25%;
|
||||
}
|
||||
|
||||
.card-icon span {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
font-size: 80px
|
||||
}
|
||||
|
||||
BIN
static/themes/default/img/FreedomBox-logo-32px-white.png
Normal file
BIN
static/themes/default/img/FreedomBox-logo-32px-white.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 684 B |
127
static/themes/default/img/FreedomBox-logo-white.svg
Normal file
127
static/themes/default/img/FreedomBox-logo-white.svg
Normal file
@ -0,0 +1,127 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="1500"
|
||||
height="1115"
|
||||
id="svg14507"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="FreedomBox-logo-white.svg">
|
||||
<defs
|
||||
id="defs14509">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10958-4"
|
||||
id="linearGradient14441"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-1834.4685,224.95153)"
|
||||
x1="2677.0659"
|
||||
y1="-1001.1581"
|
||||
x2="2677.0659"
|
||||
y2="-1126.5048" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient10958-4">
|
||||
<stop
|
||||
style="stop-color:#646464;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop10960-1" />
|
||||
<stop
|
||||
style="stop-color:#969696;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop10962-1" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient12651"
|
||||
id="radialGradient14443"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-7.2244231,7.2244502,-7.2148432,-7.214843,5889.8349,216.70132)"
|
||||
cx="245.80219"
|
||||
cy="466.2821"
|
||||
fx="245.80219"
|
||||
fy="466.2821"
|
||||
r="34.49239" />
|
||||
<linearGradient
|
||||
id="linearGradient12651">
|
||||
<stop
|
||||
id="stop12653"
|
||||
offset="0"
|
||||
style="stop-color:#61a6ed;stop-opacity:1" />
|
||||
<stop
|
||||
id="stop12657"
|
||||
offset="1"
|
||||
style="stop-color:#257edb;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient13380">
|
||||
<stop
|
||||
style="stop-color:#868686;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop13382" />
|
||||
<stop
|
||||
style="stop-color:#4d4d4d;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop13384" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.29166667"
|
||||
inkscape:cx="1022.6857"
|
||||
inkscape:cy="357.34281"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="g13600"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:window-width="1440"
|
||||
inkscape:window-height="805"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="1"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata14512">
|
||||
<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>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(1170,216.56643)">
|
||||
<g
|
||||
id="g13600"
|
||||
transform="translate(-2672.219,1449.2669)">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path13366"
|
||||
d="m 2040.3438,-1422.0805 c -12.2944,0.3444 -23.1688,4.1084 -30.1875,12.1562 -21.9405,25.1615 2.2109,48.5609 10.5937,80.375 11.1932,42.4518 -1.5363,87.6244 32.4375,117.3438 11.7012,10.2333 25.8307,12.9293 39.4063,14.1875 -17.8481,21.0296 -28.6094,50.1918 -22.75,80.1562 10.2556,52.4474 62.0982,87.3643 113.5,78.5938 29.3208,-5.0046 52.9132,-22.9697 65.75,-47.5 0.4673,-0.8094 1.5618,-0.8131 2.0312,0 12.8381,24.5246 36.4336,42.4961 65.75,47.5 51.4018,8.7705 103.0255,-26.1464 113.2813,-78.5938 5.8592,-29.9644 -4.6832,-59.1266 -22.5313,-80.1562 13.5756,-1.2582 27.4862,-3.9542 39.1875,-14.1875 33.9738,-29.7194 21.2443,-74.892 32.4375,-117.3438 8.3828,-31.8141 32.5029,-55.2135 10.5625,-80.375 -7.0187,-8.0478 -17.6432,-11.8117 -29.9375,-12.1562 -27.0502,-0.7631 -55.2287,10.0899 -83.7812,23.625 -28.5526,13.5351 -60.0552,36.7754 -79.875,61.6562 l 73.1562,42.5 -115.7187,67.1875 -10.125,127.4688 -2.625,-133.3438 -13.6875,-7.9375 -10.0625,126.3125 -2.625,-133.6875 -13.7188,-7.9687 -10.0312,126.7188 -2.6875,-134.0938 -13.625,-7.9062 -10.0938,127.0312 -2.6562,-134.4687 -13.5938,-7.875 -10.125,127.4062 -2.6562,-134.8437 70.0625,-40.6875 c -20.0559,-25.7166 -52.7714,-49.9356 -81.2813,-63.4688 -28.5099,-13.5332 -56.2117,-24.2288 -83.7812,-23.625 z"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||
sodipodi:nodetypes="cccccsccccsccccczcccccccccccccccccczc" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.8 KiB |
160
static/themes/default/img/apps-background.svg
Normal file
160
static/themes/default/img/apps-background.svg
Normal file
@ -0,0 +1,160 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="111.50169mm"
|
||||
height="111.5124mm"
|
||||
viewBox="0 0 395.08471 395.12267"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||
sodipodi:docname="apps-background.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.49497475"
|
||||
inkscape:cx="-401.04489"
|
||||
inkscape:cy="-100.15367"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="g3807"
|
||||
showgrid="false"
|
||||
inkscape:snap-page="false"
|
||||
showguides="true"
|
||||
inkscape:window-width="1509"
|
||||
inkscape:window-height="1010"
|
||||
inkscape:window-x="92"
|
||||
inkscape:window-y="33"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:measure-start="166.17,406.586"
|
||||
inkscape:measure-end="115.662,389.414"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<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>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-48.218843,-45.219296)">
|
||||
<g
|
||||
id="g3807"
|
||||
transform="translate(1.6503903e-6,-359.08813)">
|
||||
<g
|
||||
id="g5380"
|
||||
style="fill:#000000;fill-opacity:0.03137255">
|
||||
<g
|
||||
id="g3777"
|
||||
style="fill:#000000;fill-opacity:0.03137255">
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:0.03137255;fill-rule:evenodd;stroke:none;stroke-width:1.11995912px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="rect20"
|
||||
width="112.5"
|
||||
height="112.5"
|
||||
x="48.218842"
|
||||
y="404.30743"
|
||||
ry="30.226379" />
|
||||
<rect
|
||||
ry="30.226379"
|
||||
y="404.30743"
|
||||
x="189.5112"
|
||||
height="112.5"
|
||||
width="112.5"
|
||||
id="rect67"
|
||||
style="fill:#000000;fill-opacity:0.03137255;fill-rule:evenodd;stroke:none;stroke-width:1.11995912px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:0.03137255;fill-rule:evenodd;stroke:none;stroke-width:1.11995912px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="rect69"
|
||||
width="112.5"
|
||||
height="112.5"
|
||||
x="330.80356"
|
||||
y="404.30743"
|
||||
ry="30.226379" />
|
||||
</g>
|
||||
<g
|
||||
id="g3785"
|
||||
transform="translate(-5.5273489e-7,141.10568)"
|
||||
style="fill:#000000;fill-opacity:0.03137255">
|
||||
<rect
|
||||
ry="30.226379"
|
||||
y="404.30743"
|
||||
x="48.218842"
|
||||
height="112.5"
|
||||
width="112.5"
|
||||
id="rect3779"
|
||||
style="fill:#000000;fill-opacity:0.03137255;fill-rule:evenodd;stroke:none;stroke-width:1.11995912px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:0.03137255;fill-rule:evenodd;stroke:none;stroke-width:1.11995912px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="rect3781"
|
||||
width="112.5"
|
||||
height="112.5"
|
||||
x="189.5112"
|
||||
y="404.30743"
|
||||
ry="30.226379" />
|
||||
<rect
|
||||
ry="30.226379"
|
||||
y="404.30743"
|
||||
x="330.80356"
|
||||
height="112.5"
|
||||
width="112.5"
|
||||
id="rect3783"
|
||||
style="fill:#000000;fill-opacity:0.03137255;fill-rule:evenodd;stroke:none;stroke-width:1.11995912px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(-5.5273489e-7,282.62267)"
|
||||
id="g3793"
|
||||
style="fill:#000000;fill-opacity:0.03137255">
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:0.03137255;fill-rule:evenodd;stroke:none;stroke-width:1.11995912px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="rect3787"
|
||||
width="112.5"
|
||||
height="112.5"
|
||||
x="48.218842"
|
||||
y="404.30743"
|
||||
ry="30.226379" />
|
||||
<rect
|
||||
ry="30.226379"
|
||||
y="404.30743"
|
||||
x="189.5112"
|
||||
height="112.5"
|
||||
width="112.5"
|
||||
id="rect3789"
|
||||
style="fill:#000000;fill-opacity:0.03137255;fill-rule:evenodd;stroke:none;stroke-width:1.11995912px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:0.03137255;fill-rule:evenodd;stroke:none;stroke-width:1.11995912px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="rect3791"
|
||||
width="112.5"
|
||||
height="112.5"
|
||||
x="330.80356"
|
||||
y="404.30743"
|
||||
ry="30.226379" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.6 KiB |
72
static/themes/default/img/freedombox-logo-background.svg
Normal file
72
static/themes/default/img/freedombox-logo-background.svg
Normal file
@ -0,0 +1,72 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="111.48425mm"
|
||||
height="86.076721mm"
|
||||
viewBox="0 0 395.02288 304.99626"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||
sodipodi:docname="freedombox-logo-background.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.7"
|
||||
inkscape:cx="253.51181"
|
||||
inkscape:cy="-88.105928"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:snap-page="false"
|
||||
showguides="true"
|
||||
inkscape:window-width="1509"
|
||||
inkscape:window-height="1010"
|
||||
inkscape:window-x="1911"
|
||||
inkscape:window-y="108"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:measure-start="166.17,406.586"
|
||||
inkscape:measure-end="115.662,389.414"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<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>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-48.207506,-45.194866)">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:0.03137255;stroke:none;stroke-width:0.79384387"
|
||||
d="m 81.328607,45.19699 c -0.682706,-0.008 -1.363109,0.008 -2.034146,0.02461 -9.759911,0.273399 -18.392412,3.261428 -23.964239,9.650126 -17.417333,19.974303 1.755187,38.549772 8.409817,63.805204 8.885659,33.7001 -1.219581,69.56009 25.750316,93.15265 9.288925,8.12364 20.505545,10.26385 31.282455,11.26267 -14.16868,16.69421 -22.711402,39.84445 -18.05995,63.63151 7.37807,37.73179 41.86685,64.03994 78.64008,63.45789 1.26809,-0.0198 2.548,-0.089 3.82046,-0.17361 2.54482,-0.16925 5.09036,-0.45789 7.64074,-0.89308 21.82134,-3.72455 39.64631,-16.48369 50.18578,-34.11051 0.35136,-0.58753 0.68207,-1.18791 1.01715,-1.78615 0.33501,-0.59817 0.67382,-1.20236 0.99231,-1.81092 0.37089,-0.64254 1.23982,-0.64548 1.61246,0 0.31848,0.6084 0.6573,1.21284 0.9923,1.81092 7.70592,13.75588 19.74075,24.73331 34.65621,31.05914 0.64856,0.27507 1.30063,0.53664 1.95984,0.79385 4.61437,1.80083 9.49596,3.17474 14.58688,4.04367 3.82546,0.65271 7.65972,1.00652 11.46112,1.06669 0.63357,0.0103 1.2534,0.008 1.88538,0 1.26404,-0.0119 2.53927,-0.0492 3.7956,-0.12399 24.49787,-1.45091 47.31707,-14.71287 61.02675,-35.05321 0.35152,-0.52148 0.70248,-1.03208 1.04185,-1.56285 0.67882,-1.0616 1.33112,-2.15219 1.95984,-3.24984 1.88625,-3.29294 3.56182,-6.75013 4.96152,-10.34474 1.63302,-4.19371 2.90507,-8.56938 3.79553,-13.12326 4.65129,-23.78706 -3.71765,-46.9373 -17.88625,-63.63151 10.7769,-0.99882 21.81975,-3.13903 31.10875,-11.26267 26.96989,-23.59256 16.86466,-59.45255 25.75031,-93.15265 6.65464,-25.255432 25.80223,-43.830901 8.38498,-63.805204 -5.57175,-6.388698 -14.00594,-9.376647 -23.7657,-9.650126 -0.67914,-0.01905 -1.36787,-0.02858 -2.05908,-0.02461 -20.8411,-0.02223 -42.50954,8.378546 -64.45012,18.77933 -26.28012,12.456919 -45.1817,27.227814 -60.40659,45.29872 -0.51076,0.59379 -0.99374,1.21426 -1.48847,1.81099 -0.50321,0.6142 -1.01794,1.21395 -1.51322,1.83577 l 58.07461,33.73836 -91.86266,53.33639 -8.03768,101.19025 -2.08384,-105.85408 -10.86566,-6.30114 -7.98813,100.27241 -2.08384,-106.12701 -10.89051,-6.32598 -7.96328,100.59494 -2.13338,-106.44954 -10.81612,-6.27629 -8.01291,100.84294 -2.1086,-106.74716 -10.79136,-6.25151 -8.03767,101.14063 -2.1086,-107.04485 55.6186,-32.29952 c -0.50147,-0.64309 -1.00365,-1.27515 -1.51322,-1.91023 -0.18703,-0.22989 -0.38112,-0.46495 -0.57061,-0.69461 -14.74454,-18.182675 -32.94135,-33.086224 -58.14908,-45.670792 -1.43732,-0.735973 -2.87712,-1.437176 -4.29167,-2.108688 -1.04748,-0.49655 -2.12957,-0.99818 -3.24984,-1.513226 -20.09878,-9.360451 -39.71474,-16.679851 -59.215759,-17.216489 -0.671427,-0.02382 -1.348028,-0.04605 -2.009454,-0.04921 z"
|
||||
id="path13394"
|
||||
sodipodi:nodetypes="cccccccccccccccscccccccccsccccccccccccccccccccccccccccccccccc" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.7 KiB |
62
static/themes/default/img/system-background.svg
Normal file
62
static/themes/default/img/system-background.svg
Normal file
@ -0,0 +1,62 @@
|
||||
<?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"
|
||||
version="1.1"
|
||||
viewBox="0 -240 421.42371 421.46419"
|
||||
id="svg5455"
|
||||
sodipodi:docname="system-background.svg"
|
||||
width="111.50169mm"
|
||||
height="111.5124mm"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)">
|
||||
<metadata
|
||||
id="metadata5461">
|
||||
<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="defs5459" />
|
||||
<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="1053"
|
||||
id="namedview5457"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.1125147"
|
||||
inkscape:cx="252.43968"
|
||||
inkscape:cy="139.00361"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg5455"
|
||||
units="mm" />
|
||||
<g
|
||||
transform="matrix(0.3670157,0,0,-0.3670157,-9.5494289,190.93977)"
|
||||
id="g5453"
|
||||
style="fill:#000000;fill-opacity:0.03137255">
|
||||
<path
|
||||
d="m 600,1174 q 33,0 74,-5 l 38,-152 5,-1 q 49,-14 94,-39 l 5,-2 134,80 q 61,-48 104,-105 l -80,-134 3,-5 q 25,-44 39,-93 l 1,-6 152,-38 q 5,-43 5,-73 0,-34 -5,-74 l -152,-38 -1,-6 q -15,-49 -39,-93 l -3,-5 80,-134 Q 1006,190 950,146 l -134,81 -5,-3 q -44,-25 -94,-39 l -5,-2 -38,-151 q -43,-5 -74,-5 -33,0 -74,5 l -38,151 -5,2 q -49,14 -94,39 l -5,3 -134,-81 q -60,48 -104,105 l 80,134 -3,5 q -25,45 -38,93 l -2,6 -151,38 q -6,42 -6,74 0,33 6,73 l 151,38 2,6 q 13,48 38,93 l 3,5 -80,134 q 47,61 105,105 l 133,-80 5,2 q 45,25 94,39 l 5,1 38,152 q 43,5 74,5 z m 0,-359 q -89,0 -152,-63 -63,-63 -63,-151.5 0,-88.5 63,-151.5 63,-63 152,-63 89,0 152,63 63,63 63,151.5 0,88.5 -63,151.5 -63,63 -152,63 z"
|
||||
id="path5451"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:0.03137255" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
Loading…
x
Reference in New Issue
Block a user