Fix media file serving in production and update ALLOWED_HOSTS

This commit is contained in:
CPABONG 2025-08-03 13:13:13 +09:00
parent f0ce6090fb
commit 6722bba792
53 changed files with 394 additions and 376 deletions

View File

@ -23,9 +23,9 @@ BASE_DIR = Path(__file__).resolve().parent.parent
SECRET_KEY = 'django-insecure-kst@+h&50%!m$(d!l*qbb0l7f@z#@#me__yye^$5kg%0m%1=im' SECRET_KEY = 'django-insecure-kst@+h&50%!m$(d!l*qbb0l7f@z#@#me__yye^$5kg%0m%1=im'
# SECURITY WARNING: don't run with debug turned on in production! # SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True DEBUG = False
ALLOWED_HOSTS = [] ALLOWED_HOSTS = ['www.sillaamp.com', 'sillaamp.com', '192.168.1.119', 'localhost', '127.0.0.1', '*']
# Application definition # Application definition

View File

@ -17,6 +17,8 @@ Including another URLconf
from django.contrib import admin from django.contrib import admin
from django.urls import path, include from django.urls import path, include
from django.views.generic import RedirectView from django.views.generic import RedirectView
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [ urlpatterns = [
@ -27,3 +29,11 @@ urlpatterns = [
path('accounts/', include('C_accounts.urls')), # 커스텀 계정 URL path('accounts/', include('C_accounts.urls')), # 커스텀 계정 URL
path('', include('B_main.urls')), path('', include('B_main.urls')),
] ]
# 미디어 파일 서빙 (개발 환경에서만)
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
else:
# 프로덕션 환경에서도 미디어 파일 서빙 (임시 해결책)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Binary file not shown.

9
run Normal file
View File

@ -0,0 +1,9 @@
rm -rf /volume1/docker/Python/bongsite_django/sillaAMP_contact_V2/staticfiles
python /volume1/docker/Python/bongsite_django/sillaAMP_contact_V2/manage.py collectstatic
gunicorn A_core.wsgi:application --chdir /volume1/docker/Python/bongsite_django/sillaAMP_contact_V2 --bind=192.168.1.119:4271 --daemon
ssh qhdtn6412@kmobsk.synology.me -p 6422
ps aux |grep 192.168.1.119:4271

View File

@ -273,3 +273,7 @@ select.admin-autocomplete {
display: block; display: block;
padding: 6px; padding: 6px;
} }
.errors .select2-selection {
border: 1px solid var(--error-fg);
}

View File

@ -13,6 +13,7 @@ html[data-theme="light"],
--body-fg: #333; --body-fg: #333;
--body-bg: #fff; --body-bg: #fff;
--body-quiet-color: #666; --body-quiet-color: #666;
--body-medium-color: #444;
--body-loud-color: #000; --body-loud-color: #000;
--header-color: #ffc; --header-color: #ffc;
@ -22,11 +23,11 @@ html[data-theme="light"],
--breadcrumbs-fg: #c4dce8; --breadcrumbs-fg: #c4dce8;
--breadcrumbs-link-fg: var(--body-bg); --breadcrumbs-link-fg: var(--body-bg);
--breadcrumbs-bg: var(--primary); --breadcrumbs-bg: #264b5d;
--link-fg: #417893; --link-fg: #417893;
--link-hover-color: #036; --link-hover-color: #036;
--link-selected-fg: #5b80b2; --link-selected-fg: var(--secondary);
--hairline-color: #e8e8e8; --hairline-color: #e8e8e8;
--border-color: #ccc; --border-color: #ccc;
@ -42,10 +43,10 @@ html[data-theme="light"],
--selected-row: #ffc; --selected-row: #ffc;
--button-fg: #fff; --button-fg: #fff;
--button-bg: var(--primary); --button-bg: var(--secondary);
--button-hover-bg: #609ab6; --button-hover-bg: #205067;
--default-button-bg: var(--secondary); --default-button-bg: #205067;
--default-button-hover-bg: #205067; --default-button-hover-bg: var(--secondary);
--close-button-bg: #747474; --close-button-bg: #747474;
--close-button-hover-bg: #333; --close-button-hover-bg: #333;
--delete-button-bg: #ba2121; --delete-button-bg: #ba2121;
@ -56,8 +57,6 @@ html[data-theme="light"],
--object-tools-hover-bg: var(--close-button-hover-bg); --object-tools-hover-bg: var(--close-button-hover-bg);
--font-family-primary: --font-family-primary:
-apple-system,
BlinkMacSystemFont,
"Segoe UI", "Segoe UI",
system-ui, system-ui,
Roboto, Roboto,
@ -86,6 +85,8 @@ html[data-theme="light"],
"Segoe UI Emoji", "Segoe UI Emoji",
"Segoe UI Symbol", "Segoe UI Symbol",
"Noto Color Emoji"; "Noto Color Emoji";
color-scheme: light;
} }
html, body { html, body {
@ -149,7 +150,6 @@ h1 {
margin: 0 0 20px; margin: 0 0 20px;
font-weight: 300; font-weight: 300;
font-size: 1.25rem; font-size: 1.25rem;
color: var(--body-quiet-color);
} }
h2 { h2 {
@ -165,7 +165,7 @@ h2.subhead {
h3 { h3 {
font-size: 0.875rem; font-size: 0.875rem;
margin: .8em 0 .3em 0; margin: .8em 0 .3em 0;
color: var(--body-quiet-color); color: var(--body-medium-color);
font-weight: bold; font-weight: bold;
} }
@ -173,6 +173,7 @@ h4 {
font-size: 0.75rem; font-size: 0.75rem;
margin: 1em 0 .8em 0; margin: 1em 0 .8em 0;
padding-bottom: 3px; padding-bottom: 3px;
color: var(--body-medium-color);
} }
h5 { h5 {
@ -219,6 +220,10 @@ fieldset {
border-top: 1px solid var(--hairline-color); border-top: 1px solid var(--hairline-color);
} }
details summary {
cursor: pointer;
}
blockquote { blockquote {
font-size: 0.6875rem; font-size: 0.6875rem;
color: #777; color: #777;
@ -315,7 +320,7 @@ td, th {
} }
th { th {
font-weight: 600; font-weight: 500;
text-align: left; text-align: left;
} }
@ -336,7 +341,7 @@ tfoot td {
} }
thead th.required { thead th.required {
color: var(--body-loud-color); font-weight: bold;
} }
tr.alt { tr.alt {
@ -484,8 +489,13 @@ textarea {
vertical-align: top; vertical-align: top;
} }
input[type=text], input[type=password], input[type=email], input[type=url], /*
input[type=number], input[type=tel], textarea, select, .vTextField { Minifiers remove the default (text) "type" attribute from "input" HTML tags.
Add input:not([type]) to make the CSS stylesheet work the same.
*/
input:not([type]), input[type=text], input[type=password], input[type=email],
input[type=url], input[type=number], input[type=tel], textarea, select,
.vTextField {
border: 1px solid var(--border-color); border: 1px solid var(--border-color);
border-radius: 4px; border-radius: 4px;
padding: 5px 6px; padding: 5px 6px;
@ -494,9 +504,13 @@ input[type=number], input[type=tel], textarea, select, .vTextField {
background-color: var(--body-bg); background-color: var(--body-bg);
} }
input[type=text]:focus, input[type=password]:focus, input[type=email]:focus, /*
input[type=url]:focus, input[type=number]:focus, input[type=tel]:focus, Minifiers remove the default (text) "type" attribute from "input" HTML tags.
textarea:focus, select:focus, .vTextField:focus { Add input:not([type]) to make the CSS stylesheet work the same.
*/
input:not([type]):focus, input[type=text]:focus, input[type=password]:focus,
input[type=email]:focus, input[type=url]:focus, input[type=number]:focus,
input[type=tel]:focus, textarea:focus, select:focus, .vTextField:focus {
border-color: var(--body-quiet-color); border-color: var(--body-quiet-color);
} }
@ -586,7 +600,7 @@ input[type=button][disabled].default {
font-weight: 400; font-weight: 400;
font-size: 0.8125rem; font-size: 0.8125rem;
text-align: left; text-align: left;
background: var(--primary); background: var(--header-bg);
color: var(--header-link-color); color: var(--header-link-color);
} }
@ -722,6 +736,11 @@ div.breadcrumbs a:focus, div.breadcrumbs a:hover {
background: url(../img/icon-viewlink.svg) 0 1px no-repeat; background: url(../img/icon-viewlink.svg) 0 1px no-repeat;
} }
.hidelink {
padding-left: 16px;
background: url(../img/icon-hidelink.svg) 0 1px no-repeat;
}
.addlink { .addlink {
padding-left: 16px; padding-left: 16px;
background: url(../img/icon-addlink.svg) 0 1px no-repeat; background: url(../img/icon-addlink.svg) 0 1px no-repeat;
@ -831,10 +850,6 @@ a.deletelink:focus, a.deletelink:hover {
height: 100%; height: 100%;
} }
#container > div {
flex-shrink: 0;
}
#container > .main { #container > .main {
display: flex; display: flex;
flex: 1 0 auto; flex: 1 0 auto;
@ -879,9 +894,10 @@ a.deletelink:focus, a.deletelink:hover {
margin-right: -300px; margin-right: -300px;
} }
#footer { @media (forced-colors: active) {
clear: both; #content-related {
padding: 10px; border: 1px solid;
}
} }
/* COLUMN TYPES */ /* COLUMN TYPES */
@ -919,7 +935,6 @@ a.deletelink:focus, a.deletelink:hover {
padding: 10px 40px; padding: 10px 40px;
background: var(--header-bg); background: var(--header-bg);
color: var(--header-color); color: var(--header-color);
overflow: hidden;
} }
#header a:link, #header a:visited, #logout-form button { #header a:link, #header a:visited, #logout-form button {
@ -930,11 +945,17 @@ a.deletelink:focus, a.deletelink:hover {
text-decoration: underline; text-decoration: underline;
} }
@media (forced-colors: active) {
#header {
border-bottom: 1px solid;
}
}
#branding { #branding {
display: flex; display: flex;
} }
#branding h1 { #site-name {
padding: 0; padding: 0;
margin: 0; margin: 0;
margin-inline-end: 20px; margin-inline-end: 20px;
@ -943,7 +964,7 @@ a.deletelink:focus, a.deletelink:hover {
color: var(--header-branding-color); color: var(--header-branding-color);
} }
#branding h1 a:link, #branding h1 a:visited { #site-name a:link, #site-name a:visited {
color: var(--accent); color: var(--accent);
} }
@ -1100,6 +1121,7 @@ a.deletelink:focus, a.deletelink:hover {
margin: 0; margin: 0;
border-top: 1px solid var(--hairline-color); border-top: 1px solid var(--hairline-color);
width: 100%; width: 100%;
box-sizing: border-box;
} }
.paginator a:link, .paginator a:visited { .paginator a:link, .paginator a:visited {
@ -1143,3 +1165,16 @@ a.deletelink:focus, a.deletelink:hover {
.base-svgs { .base-svgs {
display: none; display: none;
} }
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
overflow: hidden;
clip: rect(0,0,0,0);
white-space: nowrap;
border: 0;
color: var(--body-fg);
background-color: var(--body-bg);
}

View File

@ -139,6 +139,12 @@
margin: 0 0 0 30px; margin: 0 0 0 30px;
} }
@media (forced-colors: active) {
#changelist-filter {
border: 1px solid;
}
}
#changelist-filter h2 { #changelist-filter h2 {
font-size: 0.875rem; font-size: 0.875rem;
text-transform: uppercase; text-transform: uppercase;
@ -215,9 +221,9 @@
color: var(--link-hover-color); color: var(--link-hover-color);
} }
#changelist-filter #changelist-filter-clear a { #changelist-filter #changelist-filter-extra-actions {
font-size: 0.8125rem; font-size: 0.8125rem;
padding-bottom: 10px; margin-bottom: 10px;
border-bottom: 1px solid var(--hairline-color); border-bottom: 1px solid var(--hairline-color);
} }
@ -265,6 +271,15 @@
background-color: var(--selected-row); background-color: var(--selected-row);
} }
@media (forced-colors: active) {
#changelist tbody tr.selected {
background-color: SelectedItem;
}
#changelist tbody tr:has(.action-select:checked) {
background-color: SelectedItem;
}
}
#changelist .actions { #changelist .actions {
padding: 10px; padding: 10px;
background: var(--body-bg); background: var(--body-bg);

View File

@ -5,7 +5,8 @@
--body-fg: #eeeeee; --body-fg: #eeeeee;
--body-bg: #121212; --body-bg: #121212;
--body-quiet-color: #e0e0e0; --body-quiet-color: #d0d0d0;
--body-medium-color: #e0e0e0;
--body-loud-color: #ffffff; --body-loud-color: #ffffff;
--breadcrumbs-link-fg: #e0e0e0; --breadcrumbs-link-fg: #e0e0e0;
@ -29,6 +30,8 @@
--close-button-bg: #333333; --close-button-bg: #333333;
--close-button-hover-bg: #666666; --close-button-hover-bg: #666666;
color-scheme: dark;
} }
} }
@ -39,7 +42,8 @@ html[data-theme="dark"] {
--body-fg: #eeeeee; --body-fg: #eeeeee;
--body-bg: #121212; --body-bg: #121212;
--body-quiet-color: #e0e0e0; --body-quiet-color: #d0d0d0;
--body-medium-color: #e0e0e0;
--body-loud-color: #ffffff; --body-loud-color: #ffffff;
--breadcrumbs-link-fg: #e0e0e0; --breadcrumbs-link-fg: #e0e0e0;
@ -63,6 +67,8 @@ html[data-theme="dark"] {
--close-button-bg: #333333; --close-button-bg: #333333;
--close-button-hover-bg: #666666; --close-button-hover-bg: #666666;
color-scheme: dark;
} }
/* THEME SWITCH */ /* THEME SWITCH */
@ -78,8 +84,8 @@ html[data-theme="dark"] {
.theme-toggle svg { .theme-toggle svg {
vertical-align: middle; vertical-align: middle;
height: 1rem; height: 1.5rem;
width: 1rem; width: 1.5rem;
display: none; display: none;
} }
@ -122,16 +128,3 @@ html[data-theme="dark"] .theme-toggle svg.theme-icon-when-dark {
html[data-theme="light"] .theme-toggle svg.theme-icon-when-light { html[data-theme="light"] .theme-toggle svg.theme-icon-when-light {
display: block; display: block;
} }
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
overflow: hidden;
clip: rect(0,0,0,0);
white-space: nowrap;
border: 0;
color: var(--body-fg);
background-color: var(--body-bg);
}

View File

@ -44,7 +44,6 @@ label {
.required label, label.required { .required label, label.required {
font-weight: bold; font-weight: bold;
color: var(--body-fg);
} }
/* RADIO BUTTONS */ /* RADIO BUTTONS */
@ -76,6 +75,20 @@ form ul.inline li {
padding-right: 7px; padding-right: 7px;
} }
/* FIELDSETS */
fieldset .fieldset-heading,
fieldset .inline-heading,
:not(.inline-related) .collapse summary {
border: 1px solid var(--header-bg);
margin: 0;
padding: 8px;
font-weight: 400;
font-size: 0.8125rem;
background: var(--header-bg);
color: var(--header-link-color);
}
/* ALIGNED FIELDSETS */ /* ALIGNED FIELDSETS */
.aligned label { .aligned label {
@ -84,14 +97,12 @@ form ul.inline li {
min-width: 160px; min-width: 160px;
width: 160px; width: 160px;
word-wrap: break-word; word-wrap: break-word;
line-height: 1;
} }
.aligned label:not(.vCheckboxLabel):after { .aligned label:not(.vCheckboxLabel):after {
content: ''; content: '';
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
height: 1.625rem;
} }
.aligned label + p, .aligned .checkbox-row + div.help, .aligned label + div.readonly { .aligned label + p, .aligned .checkbox-row + div.help, .aligned label + div.readonly {
@ -158,6 +169,10 @@ form .aligned select + div.help {
padding-left: 10px; padding-left: 10px;
} }
form .aligned select option:checked {
background-color: var(--selected-row);
}
form .aligned ul li { form .aligned ul li {
list-style: none; list-style: none;
} }
@ -168,11 +183,7 @@ form .aligned table p {
} }
.aligned .vCheckboxLabel { .aligned .vCheckboxLabel {
float: none; padding: 1px 0 0 5px;
width: auto;
display: inline-block;
vertical-align: -3px;
padding: 0 0 5px 5px;
} }
.aligned .vCheckboxLabel + p.help, .aligned .vCheckboxLabel + p.help,
@ -194,14 +205,8 @@ fieldset .fieldBox {
width: 200px; width: 200px;
} }
form .wide p,
form .wide ul.errorlist,
form .wide input + p.help,
form .wide input + div.help {
margin-left: 200px;
}
form .wide p.help, form .wide p.help,
form .wide ul.errorlist,
form .wide div.help { form .wide div.help {
padding-left: 50px; padding-left: 50px;
} }
@ -215,35 +220,16 @@ form div.help ul {
width: 450px; width: 450px;
} }
/* COLLAPSED FIELDSETS */ /* COLLAPSIBLE FIELDSETS */
fieldset.collapsed * { .collapse summary .fieldset-heading,
display: none; .collapse summary .inline-heading {
}
fieldset.collapsed h2, fieldset.collapsed {
display: block;
}
fieldset.collapsed {
border: 1px solid var(--hairline-color);
border-radius: 4px;
overflow: hidden;
}
fieldset.collapsed h2 {
background: var(--darkened-bg);
color: var(--body-quiet-color);
}
fieldset .collapse-toggle {
color: var(--header-link-color);
}
fieldset.collapsed .collapse-toggle {
background: transparent; background: transparent;
border: none;
color: currentColor;
display: inline; display: inline;
color: var(--link-fg); margin: 0;
padding: 0;
} }
/* MONOSPACE TEXTAREAS */ /* MONOSPACE TEXTAREAS */
@ -395,14 +381,16 @@ body.popup .submit-row {
position: relative; position: relative;
} }
.inline-related h3 { .inline-related h4,
.inline-related:not(.tabular) .collapse summary {
margin: 0; margin: 0;
color: var(--body-quiet-color); color: var(--body-medium-color);
padding: 5px; padding: 5px;
font-size: 0.8125rem; font-size: 0.8125rem;
background: var(--darkened-bg); background: var(--darkened-bg);
border-top: 1px solid var(--hairline-color); border: 1px solid var(--hairline-color);
border-bottom: 1px solid var(--hairline-color); border-left-color: var(--darkened-bg);
border-right-color: var(--darkened-bg);
} }
.inline-related h3 span.delete { .inline-related h3 span.delete {
@ -421,16 +409,6 @@ body.popup .submit-row {
width: 100%; width: 100%;
} }
.inline-related fieldset.module h3 {
margin: 0;
padding: 2px 5px 3px 5px;
font-size: 0.6875rem;
text-align: left;
font-weight: bold;
background: #bcd;
color: var(--body-bg);
}
.inline-group .tabular fieldset.module { .inline-group .tabular fieldset.module {
border: none; border: none;
} }
@ -471,17 +449,6 @@ body.popup .submit-row {
_width: 700px; _width: 700px;
} }
.inline-group ul.tools {
padding: 0;
margin: 0;
list-style: none;
}
.inline-group ul.tools li {
display: inline;
padding: 0 5px;
}
.inline-group div.add-row, .inline-group div.add-row,
.inline-group .tabular tr.add-row td { .inline-group .tabular tr.add-row td {
color: var(--body-quiet-color); color: var(--body-quiet-color);
@ -495,11 +462,8 @@ body.popup .submit-row {
border-bottom: 1px solid var(--hairline-color); border-bottom: 1px solid var(--hairline-color);
} }
.inline-group ul.tools a.add,
.inline-group div.add-row a, .inline-group div.add-row a,
.inline-group .tabular tr.add-row td a { .inline-group .tabular tr.add-row td a {
background: url(../img/icon-addlink.svg) 0 1px no-repeat;
padding-left: 16px;
font-size: 0.75rem; font-size: 0.75rem;
} }

View File

@ -21,7 +21,7 @@
} }
.login #content { .login #content {
padding: 20px 20px 0; padding: 20px;
} }
.login #container { .login #container {

View File

@ -102,6 +102,12 @@
background: var(--selected-row); background: var(--selected-row);
} }
@media (forced-colors: active) {
#nav-sidebar .current-model {
background-color: SelectedItem;
}
}
.main > #nav-sidebar + .content { .main > #nav-sidebar + .content {
max-width: calc(100% - 23px); max-width: calc(100% - 23px);
} }

View File

@ -43,7 +43,7 @@ input[type="submit"], button {
justify-content: flex-start; justify-content: flex-start;
} }
#branding h1 { #site-name {
margin: 0 0 8px; margin: 0 0 8px;
line-height: 1.2; line-height: 1.2;
} }
@ -171,9 +171,14 @@ input[type="submit"], button {
/* Forms */ /* Forms */
label { label {
font-size: 0.875rem; font-size: 1rem;
} }
/*
Minifiers remove the default (text) "type" attribute from "input" HTML
tags. Add input:not([type]) to make the CSS stylesheet work the same.
*/
.form-row input:not([type]),
.form-row input[type=text], .form-row input[type=text],
.form-row input[type=password], .form-row input[type=password],
.form-row input[type=email], .form-row input[type=email],
@ -187,7 +192,7 @@ input[type="submit"], button {
margin: 0; margin: 0;
padding: 6px 8px; padding: 6px 8px;
min-height: 2.25rem; min-height: 2.25rem;
font-size: 0.875rem; font-size: 1rem;
} }
.form-row select { .form-row select {
@ -237,22 +242,6 @@ input[type="submit"], button {
padding: 7px; padding: 7px;
} }
/* Related widget */
.related-widget-wrapper {
float: none;
}
.related-widget-wrapper-link + .selector {
max-width: calc(100% - 30px);
margin-right: 15px;
}
select + .related-widget-wrapper-link,
.related-widget-wrapper-link + .related-widget-wrapper-link {
margin-left: 10px;
}
/* Selector */ /* Selector */
.selector { .selector {
@ -265,12 +254,8 @@ input[type="submit"], button {
align-items: center; align-items: center;
} }
.selector .selector-filter label {
margin: 0 8px 0 0;
}
.selector .selector-filter input { .selector .selector-filter input {
width: auto; width: 100%;
min-height: 0; min-height: 0;
flex: 1 1; flex: 1 1;
} }
@ -288,30 +273,7 @@ input[type="submit"], button {
margin-bottom: 5px; margin-bottom: 5px;
} }
.selector ul.selector-chooser { .selector-chooseall, .selector-clearall {
width: 26px;
height: 52px;
padding: 2px 0;
margin: auto 15px;
border-radius: 20px;
transform: translateY(-10px);
}
.selector-add, .selector-remove {
width: 20px;
height: 20px;
background-size: 20px auto;
}
.selector-add {
background-position: 0 -120px;
}
.selector-remove {
background-position: 0 -80px;
}
a.selector-chooseall, a.selector-clearall {
align-self: center; align-self: center;
} }
@ -333,10 +295,7 @@ input[type="submit"], button {
} }
.stacked ul.selector-chooser { .stacked ul.selector-chooser {
width: 52px;
height: 26px;
padding: 0 2px; padding: 0 2px;
margin: 15px auto;
transform: none; transform: none;
} }
@ -344,42 +303,6 @@ input[type="submit"], button {
padding: 3px; padding: 3px;
} }
.stacked .selector-add, .stacked .selector-remove {
background-size: 20px auto;
}
.stacked .selector-add {
background-position: 0 -40px;
}
.stacked .active.selector-add {
background-position: 0 -40px;
}
.active.selector-add:focus, .active.selector-add:hover {
background-position: 0 -140px;
}
.stacked .active.selector-add:focus, .stacked .active.selector-add:hover {
background-position: 0 -60px;
}
.stacked .selector-remove {
background-position: 0 0;
}
.stacked .active.selector-remove {
background-position: 0 0;
}
.active.selector-remove:focus, .active.selector-remove:hover {
background-position: 0 -100px;
}
.stacked .active.selector-remove:focus, .stacked .active.selector-remove:hover {
background-position: 0 -20px;
}
.help-tooltip, .selector .help-icon { .help-tooltip, .selector .help-icon {
display: none; display: none;
} }
@ -432,7 +355,7 @@ input[type="submit"], button {
padding: 15px 20px; padding: 15px 20px;
} }
.login #branding h1 { .login #site-name {
margin: 0; margin: 0;
} }
@ -464,14 +387,10 @@ input[type="submit"], button {
@media (max-width: 767px) { @media (max-width: 767px) {
/* Layout */ /* Layout */
#header, #content, #footer { #header, #content {
padding: 15px; padding: 15px;
} }
#footer:empty {
padding: 0;
}
div.breadcrumbs { div.breadcrumbs {
padding: 10px 15px; padding: 10px 15px;
} }
@ -582,10 +501,6 @@ input[type="submit"], button {
padding-top: 15px; padding-top: 15px;
} }
fieldset.collapsed .form-row {
display: none;
}
.aligned label { .aligned label {
width: 100%; width: 100%;
min-width: auto; min-width: auto;
@ -670,6 +585,7 @@ input[type="submit"], button {
.related-widget-wrapper .selector { .related-widget-wrapper .selector {
order: 1; order: 1;
flex: 1 0 auto;
} }
.related-widget-wrapper > a { .related-widget-wrapper > a {
@ -684,23 +600,14 @@ input[type="submit"], button {
align-self: center; align-self: center;
} }
select + .related-widget-wrapper-link,
.related-widget-wrapper-link + .related-widget-wrapper-link {
margin-left: 15px;
}
/* Selector */ /* Selector */
.selector { .selector {
flex-direction: column; flex-direction: column;
} gap: 10px 0;
.selector > * {
float: none;
} }
.selector-available, .selector-chosen { .selector-available, .selector-chosen {
margin-bottom: 0;
flex: 1 1 auto; flex: 1 1 auto;
} }
@ -709,12 +616,10 @@ input[type="submit"], button {
} }
.selector ul.selector-chooser { .selector ul.selector-chooser {
display: block; display: flex;
float: none; width: 60px;
width: 52px; height: 30px;
height: 26px;
padding: 0 2px; padding: 0 2px;
margin: 15px auto 20px;
transform: none; transform: none;
} }
@ -726,16 +631,16 @@ input[type="submit"], button {
background-position: 0 0; background-position: 0 0;
} }
.active.selector-remove:focus, .active.selector-remove:hover { :enabled.selector-remove:focus, :enabled.selector-remove:hover {
background-position: 0 -20px; background-position: 0 -24px;
} }
.selector-add { .selector-add {
background-position: 0 -40px; background-position: 0 -48px;
} }
.active.selector-add:focus, .active.selector-add:hover { :enabled.selector-add:focus, :enabled.selector-add:hover {
background-position: 0 -60px; background-position: 0 -72px;
} }
/* Inlines */ /* Inlines */

View File

@ -28,23 +28,12 @@
margin-left: 0; margin-left: 0;
} }
[dir="rtl"] .inline-group ul.tools a.add,
[dir="rtl"] .inline-group div.add-row a, [dir="rtl"] .inline-group div.add-row a,
[dir="rtl"] .inline-group .tabular tr.add-row td a { [dir="rtl"] .inline-group .tabular tr.add-row td a {
padding: 8px 26px 8px 10px; padding: 8px 26px 8px 10px;
background-position: calc(100% - 8px) 9px; background-position: calc(100% - 8px) 9px;
} }
[dir="rtl"] .related-widget-wrapper-link + .selector {
margin-right: 0;
margin-left: 15px;
}
[dir="rtl"] .selector .selector-filter label {
margin-right: 0;
margin-left: 8px;
}
[dir="rtl"] .object-tools li { [dir="rtl"] .object-tools li {
float: right; float: right;
} }
@ -81,4 +70,20 @@
[dir="rtl"] .aligned .vCheckboxLabel { [dir="rtl"] .aligned .vCheckboxLabel {
padding: 1px 5px 0 0; padding: 1px 5px 0 0;
} }
[dir="rtl"] .selector-remove {
background-position: 0 0;
}
[dir="rtl"] :enabled.selector-remove:focus, :enabled.selector-remove:hover {
background-position: 0 -24px;
}
[dir="rtl"] .selector-add {
background-position: 0 -48px;
}
[dir="rtl"] :enabled.selector-add:focus, :enabled.selector-add:hover {
background-position: 0 -72px;
}
} }

View File

@ -13,7 +13,7 @@ th {
margin-right: 1.5em; margin-right: 1.5em;
} }
.viewlink, .addlink, .changelink { .viewlink, .addlink, .changelink, .hidelink {
padding-left: 0; padding-left: 0;
padding-right: 16px; padding-right: 16px;
background-position: 100% 1px; background-position: 100% 1px;
@ -151,6 +151,7 @@ form ul.inline li {
form .aligned p.help, form .aligned p.help,
form .aligned div.help { form .aligned div.help {
margin-left: 0;
margin-right: 160px; margin-right: 160px;
padding-right: 10px; padding-right: 10px;
} }
@ -164,19 +165,13 @@ form .aligned p.time div.help.timezonewarning {
padding-right: 0; padding-right: 0;
} }
form .wide p.help, form .wide div.help { form .wide p.help,
form .wide ul.errorlist,
form .wide div.help {
padding-left: 0; padding-left: 0;
padding-right: 50px; padding-right: 50px;
} }
form .wide p,
form .wide ul.errorlist,
form .wide input + p.help,
form .wide input + div.help {
margin-right: 200px;
margin-left: 0px;
}
.submit-row { .submit-row {
text-align: right; text-align: right;
} }
@ -202,12 +197,7 @@ fieldset .fieldBox {
top: 0; top: 0;
left: auto; left: auto;
right: 10px; right: 10px;
background: url(../img/calendar-icons.svg) 0 -30px no-repeat; background: url(../img/calendar-icons.svg) 0 -15px no-repeat;
}
.calendarbox .calendarnav-previous:focus,
.calendarbox .calendarnav-previous:hover {
background-position: 0 -45px;
} }
.calendarnav-next { .calendarnav-next {
@ -217,11 +207,6 @@ fieldset .fieldBox {
background: url(../img/calendar-icons.svg) 0 0 no-repeat; background: url(../img/calendar-icons.svg) 0 0 no-repeat;
} }
.calendarbox .calendarnav-next:focus,
.calendarbox .calendarnav-next:hover {
background-position: 0 -15px;
}
.calendar caption, .calendarbox h2 { .calendar caption, .calendarbox h2 {
text-align: center; text-align: center;
} }
@ -235,34 +220,36 @@ fieldset .fieldBox {
} }
.selector-add { .selector-add {
background: url(../img/selector-icons.svg) 0 -64px no-repeat; background: url(../img/selector-icons.svg) 0 -96px no-repeat;
background-size: 24px auto;
} }
.active.selector-add:focus, .active.selector-add:hover { :enabled.selector-add:focus, :enabled.selector-add:hover {
background-position: 0 -80px; background-position: 0 -120px;
} }
.selector-remove { .selector-remove {
background: url(../img/selector-icons.svg) 0 -96px no-repeat; background: url(../img/selector-icons.svg) 0 -144px no-repeat;
background-size: 24px auto;
} }
.active.selector-remove:focus, .active.selector-remove:hover { :enabled.selector-remove:focus, :enabled.selector-remove:hover {
background-position: 0 -112px; background-position: 0 -168px;
} }
a.selector-chooseall { .selector-chooseall {
background: url(../img/selector-icons.svg) right -128px no-repeat; background: url(../img/selector-icons.svg) right -128px no-repeat;
} }
a.active.selector-chooseall:focus, a.active.selector-chooseall:hover { :enabled.selector-chooseall:focus, :enabled.selector-chooseall:hover {
background-position: 100% -144px; background-position: 100% -144px;
} }
a.selector-clearall { .selector-clearall {
background: url(../img/selector-icons.svg) 0 -160px no-repeat; background: url(../img/selector-icons.svg) 0 -160px no-repeat;
} }
a.active.selector-clearall:focus, a.active.selector-clearall:hover { :enabled.selector-clearall:focus, :enabled.selector-clearall:hover {
background-position: 0 -176px; background-position: 0 -176px;
} }
@ -296,3 +283,11 @@ form .form-row p.datetime {
margin-left: inherit; margin-left: inherit;
margin-right: 2px; margin-right: 2px;
} }
.inline-group .tabular td.original p {
right: 0;
}
.selector .selector-chooser {
margin: 0;
}

View File

@ -0,0 +1,19 @@
/* Hide warnings fields if usable password is selected */
form:has(#id_usable_password input[value="true"]:checked) .messagelist {
display: none;
}
/* Hide password fields if unusable password is selected */
form:has(#id_usable_password input[value="false"]:checked) .field-password1,
form:has(#id_usable_password input[value="false"]:checked) .field-password2 {
display: none;
}
/* Select appropriate submit button */
form:has(#id_usable_password input[value="true"]:checked) input[type="submit"].unset-password {
display: none;
}
form:has(#id_usable_password input[value="false"]:checked) input[type="submit"].set-password {
display: none;
}

View File

@ -1,30 +1,33 @@
/* SELECTOR (FILTER INTERFACE) */ /* SELECTOR (FILTER INTERFACE) */
.selector { .selector {
width: 800px;
float: left;
display: flex; display: flex;
flex: 1;
gap: 0 10px;
} }
.selector select { .selector select {
width: 380px;
height: 17.2em; height: 17.2em;
flex: 1 0 auto; flex: 1 0 auto;
overflow: scroll;
width: 100%;
} }
.selector-available, .selector-chosen { .selector-available, .selector-chosen {
width: 380px;
text-align: center;
margin-bottom: 5px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
flex: 1 1;
} }
.selector-available h2, .selector-chosen h2 { .selector-available-title, .selector-chosen-title {
border: 1px solid var(--border-color); border: 1px solid var(--border-color);
border-radius: 4px 4px 0 0; border-radius: 4px 4px 0 0;
} }
.selector .helptext {
font-size: 0.6875rem;
}
.selector-chosen .list-footer-display { .selector-chosen .list-footer-display {
border: 1px solid var(--border-color); border: 1px solid var(--border-color);
border-top: none; border-top: none;
@ -40,14 +43,25 @@
color: var(--breadcrumbs-fg); color: var(--breadcrumbs-fg);
} }
.selector-chosen h2 { .selector-chosen-title {
background: var(--primary); background: var(--secondary);
color: var(--header-link-color); color: var(--header-link-color);
padding: 8px;
} }
.selector .selector-available h2 { .aligned .selector-chosen-title label {
color: var(--header-link-color);
width: 100%;
}
.selector-available-title {
background: var(--darkened-bg); background: var(--darkened-bg);
color: var(--body-quiet-color); color: var(--body-quiet-color);
padding: 8px;
}
.aligned .selector-available-title label {
width: 100%;
} }
.selector .selector-filter { .selector .selector-filter {
@ -58,6 +72,8 @@
font-size: 0.625rem; font-size: 0.625rem;
margin: 0; margin: 0;
text-align: left; text-align: left;
display: flex;
gap: 8px;
} }
.selector .selector-filter label, .selector .selector-filter label,
@ -72,18 +88,16 @@
min-width: auto; min-width: auto;
} }
.selector .selector-available input, .selector-filter input {
.selector .selector-chosen input { flex-grow: 1;
width: 320px;
margin-left: 8px;
} }
.selector ul.selector-chooser { .selector ul.selector-chooser {
align-self: center; align-self: center;
width: 22px; width: 30px;
background-color: var(--selected-bg); background-color: var(--selected-bg);
border-radius: 10px; border-radius: 10px;
margin: 0 5px; margin: 0;
padding: 0; padding: 0;
transform: translateY(-17px); transform: translateY(-17px);
} }
@ -110,82 +124,86 @@
} }
.selector-add, .selector-remove { .selector-add, .selector-remove {
width: 16px; width: 24px;
height: 16px; height: 24px;
display: block; display: block;
text-indent: -3000px; text-indent: -3000px;
overflow: hidden; overflow: hidden;
cursor: default; cursor: default;
opacity: 0.55; opacity: 0.55;
border: none;
} }
.active.selector-add, .active.selector-remove { :enabled.selector-add, :enabled.selector-remove {
opacity: 1; opacity: 1;
} }
.active.selector-add:hover, .active.selector-remove:hover { :enabled.selector-add:hover, :enabled.selector-remove:hover {
cursor: pointer; cursor: pointer;
} }
.selector-add { .selector-add {
background: url(../img/selector-icons.svg) 0 -96px no-repeat; background: url(../img/selector-icons.svg) 0 -144px no-repeat;
background-size: 24px auto;
} }
.active.selector-add:focus, .active.selector-add:hover { :enabled.selector-add:focus, :enabled.selector-add:hover {
background-position: 0 -112px; background-position: 0 -168px;
} }
.selector-remove { .selector-remove {
background: url(../img/selector-icons.svg) 0 -64px no-repeat; background: url(../img/selector-icons.svg) 0 -96px no-repeat;
background-size: 24px auto;
} }
.active.selector-remove:focus, .active.selector-remove:hover { :enabled.selector-remove:focus, :enabled.selector-remove:hover {
background-position: 0 -80px; background-position: 0 -120px;
} }
a.selector-chooseall, a.selector-clearall { .selector-chooseall, .selector-clearall {
display: inline-block; display: inline-block;
height: 16px; height: 16px;
text-align: left; text-align: left;
margin: 1px auto 3px; margin: 0 auto;
overflow: hidden; overflow: hidden;
font-weight: bold; font-weight: bold;
line-height: 16px; line-height: 16px;
color: var(--body-quiet-color); color: var(--body-quiet-color);
text-decoration: none; text-decoration: none;
opacity: 0.55; opacity: 0.55;
border: none;
} }
a.active.selector-chooseall:focus, a.active.selector-clearall:focus, :enabled.selector-chooseall:focus, :enabled.selector-clearall:focus,
a.active.selector-chooseall:hover, a.active.selector-clearall:hover { :enabled.selector-chooseall:hover, :enabled.selector-clearall:hover {
color: var(--link-fg); color: var(--link-fg);
} }
a.active.selector-chooseall, a.active.selector-clearall { :enabled.selector-chooseall, :enabled.selector-clearall {
opacity: 1; opacity: 1;
} }
a.active.selector-chooseall:hover, a.active.selector-clearall:hover { :enabled.selector-chooseall:hover, :enabled.selector-clearall:hover {
cursor: pointer; cursor: pointer;
} }
a.selector-chooseall { .selector-chooseall {
padding: 0 18px 0 0; padding: 0 18px 0 0;
background: url(../img/selector-icons.svg) right -160px no-repeat; background: url(../img/selector-icons.svg) right -160px no-repeat;
cursor: default; cursor: default;
} }
a.active.selector-chooseall:focus, a.active.selector-chooseall:hover { :enabled.selector-chooseall:focus, :enabled.selector-chooseall:hover {
background-position: 100% -176px; background-position: 100% -176px;
} }
a.selector-clearall { .selector-clearall {
padding: 0 0 0 18px; padding: 0 0 0 18px;
background: url(../img/selector-icons.svg) 0 -128px no-repeat; background: url(../img/selector-icons.svg) 0 -128px no-repeat;
cursor: default; cursor: default;
} }
a.active.selector-clearall:focus, a.active.selector-clearall:hover { :enabled.selector-clearall:focus, :enabled.selector-clearall:hover {
background-position: 0 -144px; background-position: 0 -144px;
} }
@ -215,8 +233,9 @@ a.active.selector-clearall:focus, a.active.selector-clearall:hover {
} }
.stacked ul.selector-chooser { .stacked ul.selector-chooser {
height: 22px; display: flex;
width: 50px; height: 30px;
width: 64px;
margin: 0 0 10px 40%; margin: 0 0 10px 40%;
background-color: #eee; background-color: #eee;
border-radius: 10px; border-radius: 10px;
@ -233,32 +252,34 @@ a.active.selector-clearall:focus, a.active.selector-clearall:hover {
} }
.stacked .selector-add { .stacked .selector-add {
background: url(../img/selector-icons.svg) 0 -32px no-repeat; background: url(../img/selector-icons.svg) 0 -48px no-repeat;
background-size: 24px auto;
cursor: default; cursor: default;
} }
.stacked .active.selector-add { .stacked :enabled.selector-add {
background-position: 0 -32px; background-position: 0 -48px;
cursor: pointer; cursor: pointer;
} }
.stacked .active.selector-add:focus, .stacked .active.selector-add:hover { .stacked :enabled.selector-add:focus, .stacked :enabled.selector-add:hover {
background-position: 0 -48px; background-position: 0 -72px;
cursor: pointer; cursor: pointer;
} }
.stacked .selector-remove { .stacked .selector-remove {
background: url(../img/selector-icons.svg) 0 0 no-repeat; background: url(../img/selector-icons.svg) 0 0 no-repeat;
background-size: 24px auto;
cursor: default; cursor: default;
} }
.stacked .active.selector-remove { .stacked :enabled.selector-remove {
background-position: 0 0px; background-position: 0 0px;
cursor: pointer; cursor: pointer;
} }
.stacked .active.selector-remove:focus, .stacked .active.selector-remove:hover { .stacked :enabled.selector-remove:focus, .stacked :enabled.selector-remove:hover {
background-position: 0 -16px; background-position: 0 -24px;
cursor: pointer; cursor: pointer;
} }
@ -314,28 +335,30 @@ table p.datetime {
position: relative; position: relative;
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
height: 16px; height: 24px;
width: 16px; width: 24px;
overflow: hidden; overflow: hidden;
} }
.datetimeshortcuts .clock-icon { .datetimeshortcuts .clock-icon {
background: url(../img/icon-clock.svg) 0 0 no-repeat; background: url(../img/icon-clock.svg) 0 0 no-repeat;
background-size: 24px auto;
} }
.datetimeshortcuts a:focus .clock-icon, .datetimeshortcuts a:focus .clock-icon,
.datetimeshortcuts a:hover .clock-icon { .datetimeshortcuts a:hover .clock-icon {
background-position: 0 -16px; background-position: 0 -24px;
} }
.datetimeshortcuts .date-icon { .datetimeshortcuts .date-icon {
background: url(../img/icon-calendar.svg) 0 0 no-repeat; background: url(../img/icon-calendar.svg) 0 0 no-repeat;
background-size: 24px auto;
top: -1px; top: -1px;
} }
.datetimeshortcuts a:focus .date-icon, .datetimeshortcuts a:focus .date-icon,
.datetimeshortcuts a:hover .date-icon { .datetimeshortcuts a:hover .date-icon {
background-position: 0 -16px; background-position: 0 -24px;
} }
.timezonewarning { .timezonewarning {
@ -447,7 +470,7 @@ span.clearable-file-input label {
} }
.calendar td.selected a { .calendar td.selected a {
background: var(--primary); background: var(--secondary);
color: var(--button-fg); color: var(--button-fg);
} }
@ -515,36 +538,26 @@ span.clearable-file-input label {
background: url(../img/calendar-icons.svg) 0 0 no-repeat; background: url(../img/calendar-icons.svg) 0 0 no-repeat;
} }
.calendarbox .calendarnav-previous:focus,
.calendarbox .calendarnav-previous:hover {
background-position: 0 -15px;
}
.calendarnav-next { .calendarnav-next {
right: 10px; right: 10px;
background: url(../img/calendar-icons.svg) 0 -30px no-repeat; background: url(../img/calendar-icons.svg) 0 -15px no-repeat;
}
.calendarbox .calendarnav-next:focus,
.calendarbox .calendarnav-next:hover {
background-position: 0 -45px;
} }
.calendar-cancel { .calendar-cancel {
margin: 0; margin: 0;
padding: 4px 0; padding: 4px 0;
font-size: 0.75rem; font-size: 0.75rem;
background: #eee; background: var(--close-button-bg);
border-top: 1px solid var(--border-color); border-top: 1px solid var(--border-color);
color: var(--body-fg); color: var(--button-fg);
} }
.calendar-cancel:focus, .calendar-cancel:hover { .calendar-cancel:focus, .calendar-cancel:hover {
background: #ddd; background: var(--close-button-hover-bg);
} }
.calendar-cancel a { .calendar-cancel a {
color: black; color: var(--button-fg);
display: block; display: block;
} }
@ -564,9 +577,10 @@ ul.timelist, .timelist li {
float: right; float: right;
text-indent: -9999px; text-indent: -9999px;
background: url(../img/inline-delete.svg) 0 0 no-repeat; background: url(../img/inline-delete.svg) 0 0 no-repeat;
width: 16px; width: 1.5rem;
height: 16px; height: 1.5rem;
border: 0px none; border: 0px none;
margin-bottom: .25rem;
} }
.inline-deletelink:focus, .inline-deletelink:hover { .inline-deletelink:focus, .inline-deletelink:hover {
@ -575,26 +589,21 @@ ul.timelist, .timelist li {
/* RELATED WIDGET WRAPPER */ /* RELATED WIDGET WRAPPER */
.related-widget-wrapper { .related-widget-wrapper {
float: left; /* display properly in form rows with multiple fields */ display: flex;
overflow: hidden; /* clear floated contents */ gap: 0 10px;
flex-grow: 1;
flex-wrap: wrap;
margin-bottom: 5px;
} }
.related-widget-wrapper-link { .related-widget-wrapper-link {
opacity: 0.3; opacity: .6;
filter: grayscale(1);
} }
.related-widget-wrapper-link:link { .related-widget-wrapper-link:link {
opacity: .8;
}
.related-widget-wrapper-link:link:focus,
.related-widget-wrapper-link:link:hover {
opacity: 1; opacity: 1;
} filter: grayscale(0);
select + .related-widget-wrapper-link,
.related-widget-wrapper-link + .related-widget-wrapper-link {
margin-left: 7px;
} }
/* GIS MAPS */ /* GIS MAPS */

View File

@ -1,4 +1,4 @@
All icons are taken from Font Awesome (http://fontawesome.io/) project. All icons are taken from Font Awesome (https://fontawesome.com/) project.
The Font Awesome font is licensed under the SIL OFL 1.1: The Font Awesome font is licensed under the SIL OFL 1.1:
- https://scripts.sil.org/OFL - https://scripts.sil.org/OFL

View File

@ -1,14 +1,63 @@
<svg width="15" height="60" viewBox="0 0 1792 7168" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<defs> <svg
<g id="previous"> width="15"
<path d="M1037 1395l102-102q19-19 19-45t-19-45l-307-307 307-307q19-19 19-45t-19-45l-102-102q-19-19-45-19t-45 19l-454 454q-19 19-19 45t19 45l454 454q19 19 45 19t45-19zm627-499q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> height="30"
viewBox="0 0 1792 3584"
version="1.1"
id="svg5"
sodipodi:docname="calendar-icons.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview5"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="13.3"
inkscape:cx="15.526316"
inkscape:cy="20.977444"
inkscape:window-width="1920"
inkscape:window-height="1011"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg5" />
<defs
id="defs2">
<g
id="previous">
<path
d="m 1037,1395 102,-102 q 19,-19 19,-45 0,-26 -19,-45 L 832,896 1139,589 q 19,-19 19,-45 0,-26 -19,-45 L 1037,397 q -19,-19 -45,-19 -26,0 -45,19 L 493,851 q -19,19 -19,45 0,26 19,45 l 454,454 q 19,19 45,19 26,0 45,-19 z m 627,-499 q 0,209 -103,385.5 Q 1458,1458 1281.5,1561 1105,1664 896,1664 687,1664 510.5,1561 334,1458 231,1281.5 128,1105 128,896 128,687 231,510.5 334,334 510.5,231 687,128 896,128 1105,128 1281.5,231 1458,334 1561,510.5 1664,687 1664,896 Z"
id="path1" />
</g> </g>
<g id="next"> <g
<path d="M845 1395l454-454q19-19 19-45t-19-45l-454-454q-19-19-45-19t-45 19l-102 102q-19 19-19 45t19 45l307 307-307 307q-19 19-19 45t19 45l102 102q19 19 45 19t45-19zm819-499q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> id="next">
<path
d="m 845,1395 454,-454 q 19,-19 19,-45 0,-26 -19,-45 L 845,397 q -19,-19 -45,-19 -26,0 -45,19 L 653,499 q -19,19 -19,45 0,26 19,45 l 307,307 -307,307 q -19,19 -19,45 0,26 19,45 l 102,102 q 19,19 45,19 26,0 45,-19 z m 819,-499 q 0,209 -103,385.5 Q 1458,1458 1281.5,1561 1105,1664 896,1664 687,1664 510.5,1561 334,1458 231,1281.5 128,1105 128,896 128,687 231,510.5 334,334 510.5,231 687,128 896,128 1105,128 1281.5,231 1458,334 1561,510.5 1664,687 1664,896 Z"
id="path2" />
</g> </g>
</defs> </defs>
<use xlink:href="#previous" x="0" y="0" fill="#333333" /> <use
<use xlink:href="#previous" x="0" y="1792" fill="#000000" /> xlink:href="#next"
<use xlink:href="#next" x="0" y="3584" fill="#333333" /> x="0"
<use xlink:href="#next" x="0" y="5376" fill="#000000" /> y="5376"
fill="#000000"
id="use5"
transform="translate(0,-3584)" />
<use
xlink:href="#previous"
x="0"
y="0"
fill="#333333"
id="use2"
style="fill:#000000;fill-opacity:1" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -1,3 +1,3 @@
<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> <svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg">
<path fill="#70bf2b" d="M1600 796v192q0 40-28 68t-68 28h-416v416q0 40-28 68t-68 28h-192q-40 0-68-28t-28-68v-416h-416q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h416v-416q0-40 28-68t68-28h192q40 0 68 28t28 68v416h416q40 0 68 28t28 68z"/> <path fill="#5fa225" d="M1600 796v192q0 40-28 68t-68 28h-416v416q0 40-28 68t-68 28h-192q-40 0-68-28t-28-68v-416h-416q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h416v-416q0-40 28-68t68-28h192q40 0 68 28t28 68v416h416q40 0 68 28t28 68z"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 331 B

After

Width:  |  Height:  |  Size: 331 B

View File

@ -1,3 +1,3 @@
<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> <svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg">
<path fill="#efb80b" d="M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z"/> <path fill="#b48c08" d="M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 380 B

After

Width:  |  Height:  |  Size: 380 B

View File

@ -0,0 +1,3 @@
<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg">
<path fill="#2b70bf" d="m555 1335 78-141q-87-63-136-159t-49-203q0-121 61-225-229 117-381 353 167 258 427 375zm389-759q0-20-14-34t-34-14q-125 0-214.5 89.5T592 832q0 20 14 34t34 14 34-14 14-34q0-86 61-147t147-61q20 0 34-14t14-34zm363-191q0 7-1 9-105 188-315 566t-316 567l-49 89q-10 16-28 16-12 0-134-70-16-10-16-28 0-12 44-87-143-65-263.5-173T20 1029Q0 998 0 960t20-69q153-235 380-371t496-136q89 0 180 17l54-97q10-16 28-16 5 0 18 6t31 15.5 33 18.5 31.5 18.5T1291 358q16 10 16 27zm37 447q0 139-79 253.5T1056 1250l280-502q8 45 8 84zm448 128q0 35-20 69-39 64-109 145-150 172-347.5 267T896 1536l74-132q212-18 392.5-137T1664 960q-115-179-282-294l63-112q95 64 182.5 153T1772 891q20 34 20 69z"/>
</svg>

After

Width:  |  Height:  |  Size: 784 B

View File

@ -1,3 +1,3 @@
<svg width="16" height="16" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> <svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg">
<path fill="#999999" d="M1277 1122q0-26-19-45l-181-181 181-181q19-19 19-45 0-27-19-46l-90-90q-19-19-46-19-26 0-45 19l-181 181-181-181q-19-19-45-19-27 0-46 19l-90 90q-19 19-19 46 0 26 19 45l181 181-181 181q-19 19-19 45 0 27 19 46l90 90q19 19 46 19 26 0 45-19l181-181 181 181q19 19 45 19 27 0 46-19l90-90q19-19 19-46zm387-226q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/> <path fill="#999999" d="M1277 1122q0-26-19-45l-181-181 181-181q19-19 19-45 0-27-19-46l-90-90q-19-19-46-19-26 0-45 19l-181 181-181-181q-19-19-45-19-27 0-46 19l-90 90q-19 19-19 46 0 26 19 45l181 181-181 181q-19 19-19 45 0 27 19 46l90 90q19 19 46 19 26 0 45-19l181-181 181 181q19 19 45 19 27 0 46-19l90-90q19-19 19-46zm387-226q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 560 B

After

Width:  |  Height:  |  Size: 537 B

View File

@ -1,3 +0,0 @@
<svg width="15" height="15" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg">
<path fill="#555555" d="M1216 832q0-185-131.5-316.5t-316.5-131.5-316.5 131.5-131.5 316.5 131.5 316.5 316.5 131.5 316.5-131.5 131.5-316.5zm512 832q0 52-38 90t-90 38q-54 0-90-38l-343-342q-179 124-399 124-143 0-273.5-55.5t-225-150-150-225-55.5-273.5 55.5-273.5 150-225 225-150 273.5-55.5 273.5 55.5 225 150 150 225 55.5 273.5q0 220-124 399l343 343q37 37 37 90z"/>
</svg>

Before

Width:  |  Height:  |  Size: 458 B