Jonas Havelka
4 weeks ago
490 changed files with 53889 additions and 98175 deletions
@ -1,16 +0,0 @@ |
|||
git hooks |
|||
========= |
|||
|
|||
Kontrola stylu pythoních zdrojáků pomocí flake8. Kontrolujeme jen změny, |
|||
abychom nenutili lidi dělat nesouvisející úpravy, které by rozbíjely historii |
|||
(git blame). |
|||
|
|||
pre-commit |
|||
---------- |
|||
* kontrola změn před commitnutím |
|||
* instalace: lokálně zkopírovat do .git/hooks (musí být spustitelný) |
|||
|
|||
update |
|||
------ |
|||
* kontrola změn přicházejících s pushem |
|||
* instalace: na atreyi zkopírovat do /akce/MaM/MaMweb/mamweb.git/hooks |
@ -1,30 +0,0 @@ |
|||
#!/bin/sh |
|||
# |
|||
# Git hook script to verify what is about to be committed. |
|||
# Checks that the changes don't introduce new flake8 errors. |
|||
|
|||
TMPDIFF=`tempfile` |
|||
FLAKE8="`git rev-parse --show-toplevel`/bin/flake8" |
|||
|
|||
status=0 |
|||
|
|||
# select only changed python files which are not migrations |
|||
changed=`git diff --cached --name-only | grep 'py$' | grep -v 'migrations/[0-9]'` |
|||
if [ -z $changed ] ; then |
|||
# Nothing to check. Note the exit is necessary -- we would not pass any |
|||
# paths to git diff below and it would output the diff unfiltered. |
|||
exit 0 |
|||
fi |
|||
|
|||
git diff --unified=1 --cached HEAD -- $changed > $TMPDIFF |
|||
|
|||
# only do the check when there are some changes to be commited |
|||
# otherwise flake8 would hang waiting for input |
|||
if [ -s $TMPDIFF ] ; then |
|||
cat $TMPDIFF | $FLAKE8 --diff |
|||
status=$? |
|||
fi |
|||
|
|||
rm -f $TMPDIFF |
|||
|
|||
exit $status |
@ -1,61 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
# git update hook to check that pushed changes don't introduce new flake8 |
|||
# errors |
|||
|
|||
# --- Command line |
|||
refname="$1" |
|||
oldrev="$2" |
|||
newrev="$3" |
|||
|
|||
# --- Safety check |
|||
if [ -z "$GIT_DIR" ]; then |
|||
echo "Don't run this script from the command line." >&2 |
|||
echo " (if you want, you could supply GIT_DIR then run" >&2 |
|||
echo " $0 <ref> <oldrev> <newrev>)" >&2 |
|||
exit 1 |
|||
fi |
|||
|
|||
if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then |
|||
echo "usage: $0 <ref> <oldrev> <newrev>" >&2 |
|||
exit 1 |
|||
fi |
|||
|
|||
|
|||
TMPDIR=`mktemp -d` |
|||
TMPDIFF=`tempfile` |
|||
|
|||
[ $refname != "refs/heads/master" -a $refname != "refs/heads/stable" ] && exit 0 |
|||
|
|||
# select only changed python files which are not migrations |
|||
changed=`git diff --name-only $oldrev $newrev | grep 'py$' | grep -v 'migrations/[0-9]'` |
|||
if [ -z $changed ] ; then |
|||
# Nothing to check. Note the exit is necessary -- we would not pass any |
|||
# paths to git diff below and it would output the diff unfiltered. |
|||
exit 0 |
|||
fi |
|||
|
|||
git diff --unified=1 $oldrev $newrev -- $changed >${TMPDIFF} |
|||
|
|||
# there is no working tree in bare git repository, so we recreate it for flake8 |
|||
git archive $newrev | tar -x -C ${TMPDIR} |
|||
|
|||
cd ${TMPDIR} |
|||
# report only errors on lines in diff |
|||
# (if threre was flake8 installed on atrey, we could just call flake8) |
|||
/akce/MaM/WWW/mamweb-test/bin/flake8 --diff <${TMPDIFF} |
|||
status=$? |
|||
if [ $status != 0 ] ; then |
|||
echo |
|||
echo -n "Změny, které se snažíte pushnout, obsahují kód v pythonu " |
|||
echo -n "nevyhovující flake8 (viz výše). Opravte je a zkuste to znovu. " |
|||
echo -n "Nezapomeňte, že můžete editovat historii (git commit --amend, " |
|||
echo -n "git rebase -i). Pokud byste chybu příště raději odhalili už při " |
|||
echo "commitu, zkopírujte si pre-commit hook z _git_hooks do .git/hooks." |
|||
echo |
|||
fi |
|||
|
|||
rm -rf ${TMPDIR} |
|||
rm -f ${TMPDIFF} |
|||
|
|||
exit $status |
@ -1,8 +1,5 @@ |
|||
""" |
|||
Soubor sloužící k pojmenování a jiným nastavením djangovské aplikace. |
|||
""" |
|||
from django.apps import AppConfig |
|||
|
|||
|
|||
class AesopConfig(AppConfig): |
|||
name = 'aesop' |
|||
verbose_name = 'Export do AESOPa' |
|||
|
@ -1,8 +1,6 @@ |
|||
""" |
|||
Soubor sloužící k pojmenování a jiným nastavením djangovské aplikace. |
|||
""" |
|||
from django.apps import AppConfig |
|||
|
|||
|
|||
class ApiConfig(AppConfig): |
|||
name = 'api' |
|||
verbose_name = 'Různá webová API' |
|||
|
@ -1,7 +1,2 @@ |
|||
""" |
|||
Soubory sloužící k deklaraci jednotlivých „views“ (nejčastěji funkce beroucí request |
|||
a vracející :func:`django.shortcuts.render` respektive nějakou response, nebo |
|||
třídy většinou rozšiřující nějakou třídu z :mod:`django.views.generic`) |
|||
""" |
|||
from .autocomplete import * |
|||
from .exports import * |
|||
|
@ -0,0 +1,27 @@ |
|||
CSS (a další styly na webu) |
|||
=========================== |
|||
|
|||
Inspirován `css-trick článkem <https://css-tricks.com/methods-organize-css/>`_ jsem se rozhodl rozdělit |
|||
CSSka do |
|||
|
|||
- Konstant (``constants.css``), které jsou využívány na mnoha místech CSSek |
|||
- Nastylování html tagů (``base.css``) |
|||
- Layoutu (``layout.css``), což je to, co určuje celkové rozložení stránky |
|||
- Jednotlivých prvků (``modules.css``) |
|||
|
|||
Dále jsem separoval CSSka pro **galerii** (potřebuje hodně specifických stylů). Stejně tak **korekturovátko** má styly separátně. |
|||
|
|||
Dále web (asi) používá externí frameworky (v separátních složkách – mají k sobě i JS a podobné věci): |
|||
|
|||
- bootstrap: dělá nějaké basic stylování, *web je na něm hodně závislý* (například jsem zjistil, že bootstrap kdysi přidával ``font-size:14px``, bez čehož se web úplně rozpadnul) (také na něm běží mobilní meníčko, které navíc vyžaduje Popper, tedy bootstrap.bundle.js místo bootstrap.js) |
|||
|
|||
Pak jsou tu ``mamweb-dev.css`` a ``printtable.css``, co jsem si ještě nerozmyslel, co s tím. |
|||
|
|||
Pár myšlenek |
|||
------------ |
|||
|
|||
- Až na pár výjimek (galerii a korekturovátko) bych styly držel v jedné složce a málo souborech, |
|||
protože CSS šíleně dědí všechno možné |
|||
- Chce to dobře pojmenovávat třídy (speciálně aby bylo vidět, co ta třída dělá nebo kde se používá) |
|||
- Chce to hodně komentovat kód (speciálně tam, kde není splněn předchozí bod) |
|||
|
@ -1,3 +1,4 @@ |
|||
FIXME přepsat do rst, přidat i další věci a případně přesunout na wiki |
|||
Přidání obrázků do odměn: |
|||
admin -> flatpage odměn -> ikona přidat obrázek |
|||
záložka odeslat, vybrat obrázek, odeslat |
@ -1,25 +0,0 @@ |
|||
.. Není odkázaná z menu, je to záměr |
|||
|
|||
Tabulka prerekvizit v různých distribucích |
|||
========= |
|||
|
|||
.. admonition:: Metodika |
|||
|
|||
Na čistém repozitáři (``git clean -fxd``) a čistém systému spouštíme |
|||
``make/init_local``. Když to spadne, tak do tabulky zapíšeme, co jsme |
|||
přiinstalovali. Protože větev ``makefiles`` aktuálně není mergenutá do |
|||
masteru, nefunguje synchronizace flatpages (a stejně nemáme SSH klíč), takže |
|||
tam ``make/init_local`` sestřelíme a vyzkoušíme, že ``make/test`` spustí |
|||
testy. |
|||
|
|||
.. Grafické tabulky (grid-tables, simple-tables) jsou strašný porod vyrábět, dlabu na to a cpu to do CSV… |
|||
|
|||
.. csv-table:: Prerekvizity v jednotlivých distribucích |
|||
:header: Distribuce / OS, Repozitář s Py3.9, venv, py knihovny, PostgreSQL knihovna, poznámky |
|||
|
|||
Ubuntu 22.10, ??, ``python3-venv``, ``python3-dev``, ``libpq-dev``, "Je potřeba zapnout zdroj ``universe`` a nainstalovat kompilátor C (``gcc``)?" |
|||
Linux Mint 21, ??, ``python3-venv``, ``python3-dev``, ``libpq-dev``, "" |
|||
Archlinux 2022.11.01, AUR, vestavěný, vestavěné, ``postgresql-libs``, "Je potřeba céčkový kompilátor (``gcc``)" |
|||
openSUSE Leap 15.4, oficiální (``python39``), předinstalovaný?, ``python39-devel``, ??FIXME!!, "Výchozí verze pythonu je 3.6 a ta je moc stará, potřeba instalovat ``gcc``. Nevím jak sehnat pg_config." |
|||
Debian 11, "oficiální, výchozí", ??, ??, ??, "Určitě to tam rozběhat jde, protože Gimli. Nejspíš bude relativně podobné Ubuntu." |
|||
|
@ -0,0 +1,97 @@ |
|||
Závislosti webu |
|||
@@@@@@@@@@@@@@@ |
|||
|
|||
Web ke svému běhu potřebuje různé další programy. Tahle stránka se snaží je pokrýt. |
|||
|
|||
Stránka je koncipována jako odrážkový seznam balíčků pro Ubuntu s případnými |
|||
komentáři, na konci stránky jsou uvedena :ref:`jména balíčků <Alternativní jména |
|||
balíčků>` v různých dalších distribucích. (Seznam mj. cílí na lokální |
|||
rozchození, proto popisuji Ubuntu a ne Debian. I tak se ale snažíme popsat web |
|||
v úplnosti.) |
|||
|
|||
.. I use Arch, btw. |
|||
|
|||
|
|||
Základ webu |
|||
=========== |
|||
|
|||
- ``python3`` – Ideálně Python 3.9, jenž je na Gimlim |
|||
- ``python3-pip`` pro instalaci dalších Pythoních balíčků podle ``requirements.txt`` |
|||
- ``python3-venv`` |
|||
- ``gcc`` – kompilace Pythoních knihoven ze zdrojových distribucí (sdist), možná (neotestováno) jde jako alternativu použít ``python3-wheel`` a stahovat bdists |
|||
- ``python3-dev`` – taktéž |
|||
- ``libpq-dev`` do třetice… |
|||
- ``ghostscript`` TODO konverze PDF v korekturovátku |
|||
- ``pdflatex`` FIXME! generování obálek a stvrzenek |
|||
- ``git`` – používán :ref:`Make skripty` |
|||
- ``locales`` pro české formáty |
|||
|
|||
Nasazení na produkci / testweb |
|||
============================== |
|||
|
|||
(nejsou nutně potřeba k provozu lokální instance) |
|||
|
|||
- ``rsync`` |
|||
- ``pg_utils`` FIXME |
|||
- ``htpasswd`` FIXME – aby testweb nepoužívali náhodní kolemjdoucí |
|||
- ``postgresql-server`` TODO |
|||
- ``acl`` pro nastavování práv přes ``setfacl`` |
|||
|
|||
Pro testweb je potřeba i všechno pro :ref:`dokumentaci <Dokumentace>`, vizte níž. |
|||
|
|||
Předpokládá se nasazení v uWSGI pod Nginxem a služba běžící pod systemd, nicméně to už je spíš záležitost infrastruktury a ne specifikum mamwebu. |
|||
|
|||
Dokumentace |
|||
=========== |
|||
|
|||
- ``make`` pro zbuildění |
|||
- Pythoní balíčky podle příslušné části ``requirements.txt`` |
|||
|
|||
Vývojové nástroje |
|||
================= |
|||
|
|||
(Nejsou nezbytně nutné, ale předpokládáme jejich užitečnost. Mohou se hodit i na produkci.) |
|||
|
|||
- ``psql`` TODO pro manuální dotazy do PostgreSQL |
|||
- ``sqlite3`` TODO totéž pro SQLite3 |
|||
- ``ssh`` |
|||
- ``graphviz`` pro vygenerování schématu |
|||
- ``rsync`` |
|||
- ``ipython3`` – hezčí interaktivní shell (stačí z ``requirements.txt``) |
|||
|
|||
Potenciální usnadnění života |
|||
============================ |
|||
|
|||
(Úplně zbytečné, ale sdílíme pozitivní zkušenosti :-)) |
|||
|
|||
- ``tea`` – CLI klient pro Giteu, aby člověk nepotřeboval otevírat web pro založení PR |
|||
|
|||
|
|||
Alternativní jména balíčků |
|||
========================== |
|||
|
|||
Různé distribuce balí SW různě, takže to, co je v jedné distribuci jeden |
|||
balíček může být v jiné rozděleno do víc. Pro usnadnění nasazení je tady |
|||
přehled známých alternativních jmen. |
|||
|
|||
TODO: tabulka není úplná. Pokud na něco narazíte, tak ji prosím doplňte. |
|||
|
|||
.. admonition:: Jak se pozná, že web funguje, pro účely tabulky? |
|||
|
|||
Na čistém repozitáři (``git clean -fxd``) a čistém systému spouštíme |
|||
``make/init_local``. Když to spadne, tak do tabulky zapíšeme, co jsme |
|||
přiinstalovali. Protože nefunguje synchronizace flatpages (nemáme SSH klíč), |
|||
``make/init_local`` sestřelíme při pokusu o synchronizaci a vyzkoušíme, že |
|||
``make/test`` spustí testy. |
|||
|
|||
.. Grafické tabulky (grid-tables, simple-tables) jsou strašný porod vyrábět, dlabu na to a cpu to do CSV… |
|||
|
|||
.. csv-table:: Prerekvizity v jednotlivých distribucích |
|||
:header: Distribuce / OS, Repozitář s Py3.9, venv, py knihovny, PostgreSQL knihovna, poznámky |
|||
|
|||
Ubuntu 22.10, ??, ``python3-venv``, ``python3-dev``, ``libpq-dev``, "Je potřeba zapnout zdroj ``universe`` a nainstalovat kompilátor C (``gcc``)?" |
|||
Linux Mint 21, ??, ``python3-venv``, ``python3-dev``, ``libpq-dev``, "" |
|||
Archlinux 2022.11.01, AUR, vestavěný, vestavěné, ``postgresql-libs``, "Je potřeba céčkový kompilátor (``gcc``)" |
|||
openSUSE Leap 15.4, oficiální (``python39``), předinstalovaný?, ``python39-devel``, ??FIXME!!, "Výchozí verze pythonu je 3.6 a ta je moc stará, potřeba instalovat ``gcc``. Nevím jak sehnat pg_config." |
|||
Debian 11, "oficiální, výchozí", ??, ??, ??, "Určitě to tam rozběhat jde, protože Gimli. Nejspíš bude relativně podobné Ubuntu." |
|||
|
@ -1,25 +0,0 @@ |
|||
======== |
|||
| TODO | |
|||
|======| |
|||
|
|||
Aktualni |
|||
* co s titulni fotkou |
|||
* do CSS |
|||
* nahledy |
|||
* nastylovat tabulku s nahledy |
|||
* komentare uz na nahledy? |
|||
* detail |
|||
* nahledy pred a po |
|||
* opravit prechodove sipky |
|||
* vyrobit prechodove sipky ve M&M-stylu |
|||
|
|||
Dlouhodobe |
|||
* sipky na prechazeni mezi fotkami |
|||
* hromadne PRIDANI fotek do jiz existujici galerie |
|||
|
|||
Fylozoficke |
|||
* zvolit velikosti velke a male fotky |
|||
* je potreba i jine razeni nez automaticky podle casu nebo staci podgalerie? |
|||
* napr. dve hry na dvou ruznych mistech ve stejny cas |
|||
* fotky od ucastniku ze hry (skupinky se pohybuji ve stejny cas, ale maji sled fotek) -- nestaci to pripadne vrazit do podgalerii? |
|||
|
@ -1,47 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
from autocomplete_light import shortcuts as autocomplete_light |
|||
|
|||
from .models import Obrazek, Galerie |
|||
from .views import cesta_od_korene |
|||
|
|||
|
|||
class ObrazekAutocomplete(autocomplete_light.AutocompleteModelBase): |
|||
|
|||
model = Obrazek |
|||
search_fields = ['nazev', 'popis'] |
|||
split_words = True |
|||
limit_choices = 15 |
|||
attrs = { |
|||
# This will set the input placeholder attribute: |
|||
'placeholder': u'Obrázek', |
|||
# This will set the yourlabs.Autocomplete.minimumCharacters |
|||
# options, the naming conversion is handled by jQuery |
|||
'data-autocomplete-minimum-characters': 1, |
|||
} |
|||
|
|||
choice_html_format = ''' |
|||
<span class="block" data-value="{}"> |
|||
<span class="block"> |
|||
{} |
|||
<span class="block">{}</span> |
|||
</span> |
|||
</span> |
|||
''' |
|||
|
|||
def choice_label(self, obrazek): |
|||
cesta = "/".join(g.nazev for g in cesta_od_korene(obrazek.galerie)) |
|||
popis = "{}<br>".format(obrazek.popis) if obrazek.popis else "" |
|||
return '{}<br>{}{}'.format(obrazek.nazev, popis, cesta) |
|||
|
|||
def choice_html(self, obrazek): |
|||
"""Vrátí kus html i s obrázkem, které se pak ukazuje v nabídce""" |
|||
return self.choice_html_format.format(self.choice_value(obrazek), |
|||
obrazek.obrazek_maly_tag(), self.choice_label(obrazek)) |
|||
|
|||
widget_attrs={ |
|||
'data-widget-maximum-values': 15, |
|||
'class': 'modern-style', |
|||
} |
|||
|
|||
autocomplete_light.register(ObrazekAutocomplete) |
@ -0,0 +1,13 @@ |
|||
# Generated by Django 4.2.11 on 2024-04-30 21:53 |
|||
|
|||
from django.db import migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('galerie', '0010_auto_20200819_0947'), |
|||
] |
|||
|
|||
operations = [ |
|||
] |
@ -0,0 +1,20 @@ |
|||
# Generated by Django 4.2.11 on 2024-05-01 13:07 |
|||
|
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('soustredeni', '0001_split_from_seminar'), |
|||
('galerie', '0011_pre_split_soustredeni'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='galerie', |
|||
name='soustredeni', |
|||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='soustredeni.soustredeni'), |
|||
), |
|||
] |
@ -0,0 +1,14 @@ |
|||
# Generated by Django 4.2.11 on 2024-05-01 13:35 |
|||
|
|||
from django.db import migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('galerie', '0012_soustredeni_relink'), |
|||
('soustredeni', '0003_post_split_soustredeni'), |
|||
] |
|||
|
|||
operations = [ |
|||
] |
@ -0,0 +1,186 @@ |
|||
@charset "utf-8"; /* vynuť utf-8 */ |
|||
|
|||
/* Galerie */ |
|||
|
|||
|
|||
/* velká fotka */ |
|||
/* zmenšování spolu s oknem prohlížeče */ |
|||
.galerie .obrazek, .titulni_obrazek { |
|||
max-width: 100%; |
|||
height: auto; |
|||
width: auto\9; /* ie8 */ |
|||
} |
|||
|
|||
.predchozi_obrazek{ |
|||
position: absolute; |
|||
z-index: 1; |
|||
width: 33%; |
|||
height: 100%; |
|||
left: 0; |
|||
top: 0; |
|||
} |
|||
.predchozi_obrazek:hover{ |
|||
background-image: url("/static/galerie/prvky/predchozi.svg"); |
|||
filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); |
|||
background-position: left center; |
|||
background-repeat: no-repeat; |
|||
} |
|||
.dalsi_obrazek{ |
|||
position: absolute; |
|||
z-index: 1; |
|||
width: 33%; |
|||
height: 100%; |
|||
left: 67%; |
|||
top: 0; |
|||
} |
|||
.dalsi_obrazek:hover{ |
|||
background-image: url("/static/galerie/prvky/dalsi.svg"); |
|||
filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); |
|||
background-position: right center; |
|||
background-repeat: no-repeat; |
|||
} |
|||
|
|||
.galerie { |
|||
position: relative; |
|||
text-align: center; |
|||
margin: 20px auto 0 auto; |
|||
} |
|||
|
|||
.galerie h1 { |
|||
text-align: center; |
|||
} |
|||
|
|||
.galerie_hlavicka { |
|||
margin: 30px auto 30px auto; |
|||
} |
|||
|
|||
.popis { |
|||
margin: 10px 10px 30px 0px; |
|||
text-align: center; |
|||
} |
|||
|
|||
#nahoru { |
|||
text-align: center; |
|||
} |
|||
|
|||
/* titulní obrázek hlavní galerie soustředění */ |
|||
|
|||
.galerie_nahledy{ |
|||
/*margin: 1em 0;*/ |
|||
margin: auto; |
|||
padding: 10px; |
|||
text-align: center; |
|||
overflow: auto; |
|||
} |
|||
|
|||
.galerie_nahledy img { |
|||
margin: 10px; |
|||
} |
|||
|
|||
.galerie_nahledy div.navigace { |
|||
display: inline-block; |
|||
} |
|||
|
|||
.galerie_nahled, .podgalerie_nahled { /* frame */ |
|||
display: block; |
|||
position: relative; |
|||
float: left; |
|||
width: 200px; |
|||
height: 200px; |
|||
text-align: center; |
|||
border: solid; |
|||
border-width: 1px; |
|||
border-radius: 4px; |
|||
border-color: var(--svetla-oranzova); |
|||
background-color: var(--barva-pozadi); |
|||
white-space: nowrap; |
|||
margin: 10px; |
|||
font-weight: bold; |
|||
} |
|||
|
|||
.galerie_nahled:hover, .podgalerie_nahled:hover { |
|||
background-color: var(--svetla-oranzova); |
|||
filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); |
|||
color: var(--tmava-oranzova); |
|||
} |
|||
|
|||
.vystredeno{ /* helper */ |
|||
display: inline-block; |
|||
height: 100%; |
|||
vertical-align: middle; |
|||
} |
|||
|
|||
.galerie_nahled img { |
|||
vertical-align: middle; |
|||
max-height: 180px; |
|||
max-width: 180px; |
|||
} |
|||
|
|||
.galerie_nahled div { |
|||
position: absolute; |
|||
bottom: 0px; |
|||
width: 100%; |
|||
text-align: center; |
|||
} |
|||
|
|||
.podgalerie_nahled img { |
|||
margin-top: 20px; |
|||
margin-bottom: 15px; |
|||
max-height: 125px; |
|||
max-width: 167px; |
|||
} |
|||
|
|||
.podgalerie_nahled .nazev_galerie { |
|||
position: absolute; |
|||
width: 100%; |
|||
top: 160px; |
|||
} |
|||
|
|||
|
|||
/* Odkazy na předchozí a následující podgalerii */ |
|||
.galerie_predchozi_nasledujici { |
|||
overflow: auto; |
|||
margin: 10px auto 10px auto; |
|||
} |
|||
|
|||
.galerie_predchozi_nasledujici .predchozi { |
|||
float: left; |
|||
} |
|||
|
|||
.galerie_predchozi_nasledujici .nasledujici { |
|||
float: right; |
|||
} |
|||
|
|||
/* posune kotvu obrázku v galerii o oranžový pruh dolu, aby se pod ním obrázek neschovával */ |
|||
/* https://stackoverflow.com/questions/10732690/offsetting-an-html-anchor-to-adjust-for-fixed-header */ |
|||
.kotva_obrazku { |
|||
position: absolute; |
|||
width: 0; |
|||
height: 55px; /* viz #title */ |
|||
margin-top: -55px; /* viz #title */ |
|||
} |
|||
@media(max-width: 860px) { |
|||
.kotva_obrazku { |
|||
height: 3em; /* #FIXME nemám páru, jak zjistit výšku toho elementu */ |
|||
margin-top: -3em; /* #FIXME */ |
|||
} |
|||
} |
|||
|
|||
|
|||
/* plus a minus tlacitka */ |
|||
.mam-org-only-galerie { |
|||
background: var(--orgovska-svetla-fialova); |
|||
padding: 10px; |
|||
margin: 10px 10px 10px -20px; |
|||
border: #333 2px dashed; |
|||
float: left; |
|||
} |
|||
|
|||
.mam-org-only-galerie a{ |
|||
padding: 3px 5px; |
|||
margin: 5px; |
|||
border-radius: 20px; |
|||
background-color: var(--tmava-oranzova);; |
|||
color: var(--barva-pozadi); |
|||
float: left; |
|||
} |
@ -0,0 +1,6 @@ |
|||
{% extends "base.html" %} |
|||
{% load static %} |
|||
|
|||
{% block custom_css %} |
|||
<link href="{% static 'css/galerie.css' %}?version=1" rel="stylesheet"> |
|||
{% endblock %} |
@ -1,8 +1,6 @@ |
|||
""" |
|||
Soubor sloužící k pojmenování a jiným nastavením djangovské aplikace. |
|||
""" |
|||
from django.apps import AppConfig |
|||
|
|||
|
|||
class HeaderFotkyConfig(AppConfig): |
|||
name = 'header_fotky' |
|||
verbose_name = 'Fotky v záhlaví' |
|||
|
@ -1,11 +0,0 @@ |
|||
- korektura potrebuje reakci |
|||
+ komentáře fixně na username |
|||
- používat skutečné jméno? |
|||
- vyžádat pozornost autora obsahu |
|||
- zvednout upload limit na 5MB |
|||
- sbalit a rozbalit korekturu |
|||
- nahrávání jiných věcí než PDF - kontrolovat? |
|||
- stylování |
|||
- seznam PDF - co zobrazovat? |
|||
|
|||
|
@ -0,0 +1,18 @@ |
|||
# Generated by Django 2.2.28 on 2023-06-19 19:38 |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('korektury', '0019_auto_20221205_2014'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='korekturovanepdf', |
|||
name='nazev', |
|||
field=models.CharField(help_text='Název (např. `22.1 | analyza v4` nebo `propagace | letacek v0`) korekturovaného PDF', max_length=50, verbose_name='název PDF'), |
|||
), |
|||
] |
@ -0,0 +1,13 @@ |
|||
# Generated by Django 4.2.8 on 2024-03-12 20:24 |
|||
|
|||
from django.db import migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('korektury', '0020_lepsi_popis_nazvu_PDF_v_adminu'), |
|||
] |
|||
|
|||
operations = [ |
|||
] |
@ -0,0 +1,30 @@ |
|||
# Generated by Django 4.2.11 on 2024-03-19 21:35 |
|||
|
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('personalni', '0003_initial'), |
|||
('korektury', '0021_auto_20240312_2124'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='komentar', |
|||
name='autor', |
|||
field=models.ForeignKey(blank=True, help_text='Autor komentáře', null=True, on_delete=django.db.models.deletion.SET_NULL, to='personalni.organizator'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='korekturovanepdf', |
|||
name='org', |
|||
field=models.ForeignKey(blank=True, default=None, help_text='Zodpovědný organizátor za obsah', null=True, on_delete=django.db.models.deletion.SET_NULL, to='personalni.organizator'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='oprava', |
|||
name='autor', |
|||
field=models.ForeignKey(blank=True, help_text='Autor opravy', null=True, on_delete=django.db.models.deletion.SET_NULL, to='personalni.organizator'), |
|||
), |
|||
] |
@ -0,0 +1,14 @@ |
|||
# Generated by Django 4.2.11 on 2024-03-26 21:25 |
|||
|
|||
from django.db import migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('korektury', '0022_alter_komentar_autor_alter_korekturovanepdf_org_and_more'), |
|||
('personalni', '0005_personalni_post_migrate'), |
|||
] |
|||
|
|||
operations = [ |
|||
] |
@ -0,0 +1,41 @@ |
|||
# Generated by Django 4.2.13 on 2024-06-11 23:53 |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
def pridej_orgy(apps, schema_editor): |
|||
PDF = apps.get_model('korektury', 'KorekturovanePDF') |
|||
for pdf in PDF.objects.all(): # Tohle by asi mělo jít udělat pomocí update, ale moc práce a rychlé hledání taky nepomohlo. |
|||
if pdf.org is not None: pdf.orgove.add(pdf.org) |
|||
pdf.save() # ig? |
|||
|
|||
def vyber_orga(apps, schema_editor): |
|||
PDF = apps.get_model('korektury', 'KorekturovanePDF') |
|||
for pdf in PDF.objects.all(): |
|||
orgove = pdf.orgove.all() |
|||
if len(orgove) > 1: |
|||
raise migrations.exceptions.IrreversibleError(f'PDF {pdf.id} má víc než jednoho zodpovědného orga, nejde odmigrovat na verzi, která umí jen jednoho.') |
|||
if len(orgove) == 0: |
|||
pdf.org = None |
|||
else: |
|||
pdf.org = orgove[0] |
|||
pdf.save() |
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('personalni', '0011_osloveni_vsechny_choices'), |
|||
('korektury', '0023_personalni_post_migrate'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AddField( |
|||
model_name='korekturovanepdf', |
|||
name='orgove', |
|||
field=models.ManyToManyField(blank=True, default=None, help_text='Zodpovědní organizátoři za obsah (chodí jim maily o nových korekturách)', to='personalni.organizator'), |
|||
), |
|||
migrations.RunPython(pridej_orgy, vyber_orga), |
|||
migrations.RemoveField( |
|||
model_name='korekturovanepdf', |
|||
name='org', |
|||
), |
|||
] |
@ -1,3 +0,0 @@ |
|||
from django.test import TestCase |
|||
|
|||
# Create your tests here. |
@ -1,88 +0,0 @@ |
|||
from datetime import datetime, date |
|||
|
|||
from django.conf import settings |
|||
from django.http import HttpResponse, HttpResponseRedirect |
|||
|
|||
|
|||
|
|||
class LoggedInHintCookieMiddleware(object): |
|||
"""Middleware to securely help with 'logged-in' detection for dual HTTP/HTTPS sites. |
|||
|
|||
On insecure requests: Checks for a (non-secure) cookie settings.LOGGED_IN_HINT_COOKIE_NAME |
|||
and if present, redirects to HTTPS (same adress). |
|||
Note this usually breaks non-GET (POST) requests. |
|||
|
|||
On secure requests: Updates cookie settings.LOGGED_IN_HINT_COOKIE_NAME to reflect |
|||
whether an user is logged in in the current session (cookie set to 'True' or cleared). |
|||
The cookie is set to expire at the same time as the sessionid cookie. |
|||
|
|||
By default, LOGGED_IN_HINT_COOKIE_NAME = 'logged_in_hint'. |
|||
""" |
|||
|
|||
def __init__(self): |
|||
if hasattr(settings, 'LOGGED_IN_HINT_COOKIE_NAME'): |
|||
self.cookie_name = settings.LOGGED_IN_HINT_COOKIE_NAME |
|||
else: self.cookie_name = 'logged_in_hint' |
|||
self.cookie_value = 'True' |
|||
|
|||
def cookie_correct(self, request): |
|||
return self.cookie_name in request.COOKIES and request.COOKIES[self.cookie_name] == self.cookie_value |
|||
|
|||
def process_request(self, request): |
|||
if not request.is_secure(): |
|||
if self.cookie_correct(request): |
|||
# redirect insecure (assuming http) requests with hint cookie to https |
|||
url = request.build_absolute_uri() |
|||
assert url[:5] == 'http:' |
|||
return HttpResponseRedirect('https:' + url[5:]) |
|||
return None |
|||
|
|||
def process_response(self, request, response): |
|||
if request.is_secure(): |
|||
# assuming full session info (as the conn. is secure) |
|||
try: |
|||
user = request.user |
|||
except AttributeError: # no user - ajax or other special request |
|||
return response |
|||
if user.is_authenticated(): |
|||
if not self.cookie_correct(request): |
|||
expiry = None if request.session.get_expire_at_browser_close() else request.session.get_expiry_date() |
|||
response.set_cookie(self.cookie_name, value=self.cookie_value, expires=expiry, secure=False) |
|||
else: |
|||
if self.cookie_name in request.COOKIES: |
|||
response.delete_cookie(self.cookie_name) |
|||
return response |
|||
|
|||
|
|||
class vzhled: |
|||
|
|||
def process_request(self, request): |
|||
return None |
|||
|
|||
def process_view(self, request, view_func, view_args, view_kwargs): |
|||
#print "====== process_request ======" |
|||
#print view_func |
|||
#print view_args |
|||
#print view_kwargs |
|||
#print "=============================" |
|||
return None |
|||
|
|||
def process_template_response(self, request, response): |
|||
hodin = datetime.now().hour |
|||
if (hodin <= 6) or (hodin >= 14): # TODO 20 |
|||
response.context_data['noc'] = True |
|||
else: |
|||
response.context_data['noc'] = False |
|||
return response |
|||
|
|||
def process_response(self, request, response): |
|||
#hodin = datetime.now().hour |
|||
#if (hodin <= 6) or (hodin >= 14): # TODO 20 |
|||
#response.context_data['noc'] = True |
|||
#else: |
|||
#response.context_data['noc'] = False |
|||
return response |
|||
|
|||
|
|||
##def process_exception(request, exception): |
|||
#pass |
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -0,0 +1,102 @@ |
|||
@charset "utf-8"; /* vynuť utf-8 */ |
|||
|
|||
/* Obecné styly pro html tagy */ |
|||
|
|||
@font-face { |
|||
font-family: 'OpenSans'; |
|||
src: url("../fonts/OpenSans/OpenSans-Regular.ttf"); |
|||
font-weight: normal; |
|||
} |
|||
|
|||
/* https://fontzone.net/font-details/qtghoulface-regular doplněný o diakritiku pomocí FontForge*/ |
|||
@font-face { |
|||
font-family: 'GhoulFace'; |
|||
src: url("../fonts/ghoul/ghoul.ttf"); |
|||
font-weight: normal; |
|||
} |
|||
|
|||
body { |
|||
font-size: 14px; |
|||
font-family: 'OpenSans'; |
|||
background-color: var(--barva-pozadi); |
|||
min-height: 100%; |
|||
} |
|||
|
|||
p { |
|||
/* zarovnání odstavců do bloku */ |
|||
text-align: justify; |
|||
} |
|||
|
|||
|
|||
/**** NADPISY ****/ |
|||
h1, h2, h3, h4 { color: var(--tmava-oranzova); } |
|||
h5, h6 { color: black; } |
|||
|
|||
h1, h2, h3, h4, h5, h6 { |
|||
font-variant: small-caps; |
|||
font-weight: bold; |
|||
} |
|||
|
|||
/* TODO: odlišit 1 a 2 */ |
|||
h1 { font-size: 200%; } |
|||
h2 { font-size: 200%; } |
|||
h3 { font-size: 160%; } |
|||
h4 { font-size: 140%; } |
|||
h5 { font-size: 140%; } |
|||
h6 { font-size: 120%; } |
|||
|
|||
h1 { |
|||
margin-top: 0; |
|||
} |
|||
/*****************/ |
|||
|
|||
|
|||
/**** TLAČÍTKA ****/ |
|||
a { |
|||
color: var(--tmava-oranzova); |
|||
text-decoration: none; |
|||
} |
|||
|
|||
a:focus, a:hover, a:active { |
|||
color: var(--hlavni-oranzova); |
|||
} |
|||
|
|||
.button { |
|||
margin: 10px 0 10px 0; |
|||
padding: 4px 0; /*vertikální centování textu*/ |
|||
text-align: center; |
|||
background-color: var(--hlavni-oranzova); |
|||
color: var(--barva-pozadi); |
|||
font-size: 150%; |
|||
font-weight: bold; |
|||
font-variant: small-caps; |
|||
filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); |
|||
|
|||
&:hover { |
|||
position: relative; |
|||
top: 2px; |
|||
left: 2px; |
|||
background-color: #df490e; |
|||
} |
|||
} |
|||
/******************/ |
|||
|
|||
/**** Další ****/ |
|||
input[type="file"] { |
|||
max-width: 250px; |
|||
text-overflow: ellipsis; |
|||
} |
|||
/***************/ |
|||
|
|||
|
|||
/**** Divné (aneb nevím, co bylo cílem) ****/ |
|||
h1 a:hover { |
|||
text-decoration: none; |
|||
} |
|||
|
|||
img { |
|||
filter: drop-shadow(0px 3px 3px rgba(0, 0, 0, 0.4)); |
|||
max-width: 100%; |
|||
height: auto; |
|||
} |
|||
/*******************************************/ |
@ -1,469 +0,0 @@ |
|||
/*! |
|||
* Bootstrap v3.3.1 (http://getbootstrap.com) |
|||
* Copyright 2011-2014 Twitter, Inc. |
|||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) |
|||
*/ |
|||
|
|||
.btn-default, |
|||
.btn-primary, |
|||
.btn-success, |
|||
.btn-info, |
|||
.btn-warning, |
|||
.btn-danger { |
|||
text-shadow: 0 -1px 0 rgba(0, 0, 0, .2); |
|||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); |
|||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); |
|||
} |
|||
.btn-default:active, |
|||
.btn-primary:active, |
|||
.btn-success:active, |
|||
.btn-info:active, |
|||
.btn-warning:active, |
|||
.btn-danger:active, |
|||
.btn-default.active, |
|||
.btn-primary.active, |
|||
.btn-success.active, |
|||
.btn-info.active, |
|||
.btn-warning.active, |
|||
.btn-danger.active { |
|||
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); |
|||
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); |
|||
} |
|||
.btn-default .badge, |
|||
.btn-primary .badge, |
|||
.btn-success .badge, |
|||
.btn-info .badge, |
|||
.btn-warning .badge, |
|||
.btn-danger .badge { |
|||
text-shadow: none; |
|||
} |
|||
.btn:active, |
|||
.btn.active { |
|||
background-image: none; |
|||
} |
|||
.btn-default { |
|||
text-shadow: 0 1px 0 #fff; |
|||
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%); |
|||
background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0)); |
|||
background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
|||
background-repeat: repeat-x; |
|||
border-color: #dbdbdb; |
|||
border-color: #ccc; |
|||
} |
|||
.btn-default:hover, |
|||
.btn-default:focus { |
|||
background-color: #e0e0e0; |
|||
background-position: 0 -15px; |
|||
} |
|||
.btn-default:active, |
|||
.btn-default.active { |
|||
background-color: #e0e0e0; |
|||
border-color: #dbdbdb; |
|||
} |
|||
.btn-default:disabled, |
|||
.btn-default[disabled] { |
|||
background-color: #e0e0e0; |
|||
background-image: none; |
|||
} |
|||
.btn-primary { |
|||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%); |
|||
background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88)); |
|||
background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
|||
background-repeat: repeat-x; |
|||
border-color: #245580; |
|||
} |
|||
.btn-primary:hover, |
|||
.btn-primary:focus { |
|||
background-color: #265a88; |
|||
background-position: 0 -15px; |
|||
} |
|||
.btn-primary:active, |
|||
.btn-primary.active { |
|||
background-color: #265a88; |
|||
border-color: #245580; |
|||
} |
|||
.btn-primary:disabled, |
|||
.btn-primary[disabled] { |
|||
background-color: #265a88; |
|||
background-image: none; |
|||
} |
|||
.btn-success { |
|||
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%); |
|||
background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641)); |
|||
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
|||
background-repeat: repeat-x; |
|||
border-color: #3e8f3e; |
|||
} |
|||
.btn-success:hover, |
|||
.btn-success:focus { |
|||
background-color: #419641; |
|||
background-position: 0 -15px; |
|||
} |
|||
.btn-success:active, |
|||
.btn-success.active { |
|||
background-color: #419641; |
|||
border-color: #3e8f3e; |
|||
} |
|||
.btn-success:disabled, |
|||
.btn-success[disabled] { |
|||
background-color: #419641; |
|||
background-image: none; |
|||
} |
|||
.btn-info { |
|||
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); |
|||
background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2)); |
|||
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
|||
background-repeat: repeat-x; |
|||
border-color: #28a4c9; |
|||
} |
|||
.btn-info:hover, |
|||
.btn-info:focus { |
|||
background-color: #2aabd2; |
|||
background-position: 0 -15px; |
|||
} |
|||
.btn-info:active, |
|||
.btn-info.active { |
|||
background-color: #2aabd2; |
|||
border-color: #28a4c9; |
|||
} |
|||
.btn-info:disabled, |
|||
.btn-info[disabled] { |
|||
background-color: #2aabd2; |
|||
background-image: none; |
|||
} |
|||
.btn-warning { |
|||
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); |
|||
background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316)); |
|||
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
|||
background-repeat: repeat-x; |
|||
border-color: #e38d13; |
|||
} |
|||
.btn-warning:hover, |
|||
.btn-warning:focus { |
|||
background-color: #eb9316; |
|||
background-position: 0 -15px; |
|||
} |
|||
.btn-warning:active, |
|||
.btn-warning.active { |
|||
background-color: #eb9316; |
|||
border-color: #e38d13; |
|||
} |
|||
.btn-warning:disabled, |
|||
.btn-warning[disabled] { |
|||
background-color: #eb9316; |
|||
background-image: none; |
|||
} |
|||
.btn-danger { |
|||
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%); |
|||
background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a)); |
|||
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
|||
background-repeat: repeat-x; |
|||
border-color: #b92c28; |
|||
} |
|||
.btn-danger:hover, |
|||
.btn-danger:focus { |
|||
background-color: #c12e2a; |
|||
background-position: 0 -15px; |
|||
} |
|||
.btn-danger:active, |
|||
.btn-danger.active { |
|||
background-color: #c12e2a; |
|||
border-color: #b92c28; |
|||
} |
|||
.btn-danger:disabled, |
|||
.btn-danger[disabled] { |
|||
background-color: #c12e2a; |
|||
background-image: none; |
|||
} |
|||
.thumbnail, |
|||
.img-thumbnail { |
|||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); |
|||
box-shadow: 0 1px 2px rgba(0, 0, 0, .075); |
|||
} |
|||
.dropdown-menu > li > a:hover, |
|||
.dropdown-menu > li > a:focus { |
|||
background-color: #e8e8e8; |
|||
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); |
|||
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); |
|||
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.dropdown-menu > .active > a, |
|||
.dropdown-menu > .active > a:hover, |
|||
.dropdown-menu > .active > a:focus { |
|||
background-color: #2e6da4; |
|||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); |
|||
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); |
|||
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.navbar-default { |
|||
background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%); |
|||
background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8)); |
|||
background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
|||
background-repeat: repeat-x; |
|||
border-radius: 4px; |
|||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); |
|||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); |
|||
} |
|||
.navbar-default .navbar-nav > .open > a, |
|||
.navbar-default .navbar-nav > .active > a { |
|||
background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); |
|||
background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2)); |
|||
background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); |
|||
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); |
|||
} |
|||
.navbar-brand, |
|||
.navbar-nav > li > a { |
|||
text-shadow: 0 1px 0 rgba(255, 255, 255, .25); |
|||
} |
|||
.navbar-inverse { |
|||
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%); |
|||
background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222)); |
|||
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.navbar-inverse .navbar-nav > .open > a, |
|||
.navbar-inverse .navbar-nav > .active > a { |
|||
background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%); |
|||
background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f)); |
|||
background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); |
|||
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); |
|||
} |
|||
.navbar-inverse .navbar-brand, |
|||
.navbar-inverse .navbar-nav > li > a { |
|||
text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); |
|||
} |
|||
.navbar-static-top, |
|||
.navbar-fixed-top, |
|||
.navbar-fixed-bottom { |
|||
border-radius: 0; |
|||
} |
|||
@media (max-width: 767px) { |
|||
.navbar .navbar-nav .open .dropdown-menu > .active > a, |
|||
.navbar .navbar-nav .open .dropdown-menu > .active > a:hover, |
|||
.navbar .navbar-nav .open .dropdown-menu > .active > a:focus { |
|||
color: #fff; |
|||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); |
|||
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); |
|||
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
} |
|||
.alert { |
|||
text-shadow: 0 1px 0 rgba(255, 255, 255, .2); |
|||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); |
|||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); |
|||
} |
|||
.alert-success { |
|||
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); |
|||
background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc)); |
|||
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
border-color: #b2dba1; |
|||
} |
|||
.alert-info { |
|||
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); |
|||
background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0)); |
|||
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
border-color: #9acfea; |
|||
} |
|||
.alert-warning { |
|||
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); |
|||
background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0)); |
|||
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
border-color: #f5e79e; |
|||
} |
|||
.alert-danger { |
|||
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); |
|||
background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3)); |
|||
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
border-color: #dca7a7; |
|||
} |
|||
.progress { |
|||
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); |
|||
background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5)); |
|||
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.progress-bar { |
|||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%); |
|||
background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090)); |
|||
background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.progress-bar-success { |
|||
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); |
|||
background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44)); |
|||
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.progress-bar-info { |
|||
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); |
|||
background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5)); |
|||
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.progress-bar-warning { |
|||
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); |
|||
background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f)); |
|||
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.progress-bar-danger { |
|||
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); |
|||
background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c)); |
|||
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.progress-bar-striped { |
|||
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); |
|||
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); |
|||
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); |
|||
} |
|||
.list-group { |
|||
border-radius: 4px; |
|||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); |
|||
box-shadow: 0 1px 2px rgba(0, 0, 0, .075); |
|||
} |
|||
.list-group-item.active, |
|||
.list-group-item.active:hover, |
|||
.list-group-item.active:focus { |
|||
text-shadow: 0 -1px 0 #286090; |
|||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%); |
|||
background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a)); |
|||
background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
border-color: #2b669a; |
|||
} |
|||
.list-group-item.active .badge, |
|||
.list-group-item.active:hover .badge, |
|||
.list-group-item.active:focus .badge { |
|||
text-shadow: none; |
|||
} |
|||
.panel { |
|||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05); |
|||
box-shadow: 0 1px 2px rgba(0, 0, 0, .05); |
|||
} |
|||
.panel-default > .panel-heading { |
|||
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); |
|||
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); |
|||
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.panel-primary > .panel-heading { |
|||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); |
|||
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); |
|||
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.panel-success > .panel-heading { |
|||
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); |
|||
background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6)); |
|||
background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.panel-info > .panel-heading { |
|||
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); |
|||
background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3)); |
|||
background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.panel-warning > .panel-heading { |
|||
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); |
|||
background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc)); |
|||
background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.panel-danger > .panel-heading { |
|||
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); |
|||
background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc)); |
|||
background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
} |
|||
.well { |
|||
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); |
|||
background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); |
|||
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5)); |
|||
background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); |
|||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); |
|||
background-repeat: repeat-x; |
|||
border-color: #dcdcdc; |
|||
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); |
|||
box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); |
|||
} |
File diff suppressed because it is too large
@ -0,0 +1,16 @@ |
|||
@charset "utf-8"; /* vynuť utf-8 */ |
|||
|
|||
/* Konstanty (převážně barvy) pro užití v dalších css */ |
|||
|
|||
:root { |
|||
--hlavni-oranzova: #e84e10; |
|||
--tmava-oranzova: #6f2509; |
|||
--svetla-oranzova: #f9d59e; |
|||
--svetlounka-oranzova: rgb(253, 237, 213); |
|||
|
|||
--orgovska-fialova: #6a0043; |
|||
--orgovska-svetla-fialova: #eee4ec; |
|||
|
|||
--barva-pozadi: #fffbf6; |
|||
} |
|||
|
@ -0,0 +1,581 @@ |
|||
@charset "utf-8"; /* vynuť utf-8 */ |
|||
|
|||
/* Rozložení webu a jeho prvky (hlavička, menu, footer) */ |
|||
|
|||
:root { |
|||
--footer-height: 200px; |
|||
--login-bar-height: 20px; |
|||
} |
|||
|
|||
/**** KONTEJNER ****/ |
|||
div.kontejner {/* Ne container, aby se to netlouklo s bootstrapem. */ |
|||
width: 970px; |
|||
margin: auto; |
|||
min-height: 100vh; |
|||
position: relative; |
|||
padding: 0; |
|||
|
|||
.org-logged-in & { |
|||
margin-top: var(--login-bar-height); |
|||
} |
|||
|
|||
div.kontent-wrapper { |
|||
padding-bottom: var(--footer-height); |
|||
|
|||
div.kontent { |
|||
padding: 15px 30px; |
|||
} |
|||
} |
|||
} |
|||
|
|||
/* Roztáhne obsah z containeru na celou šířku obrazovky: */ |
|||
.full_width { |
|||
width: 100vw; |
|||
margin-left: calc(-50vw + 485px); |
|||
|
|||
/* Na úzkém displeji nechceme nic dělat. */ |
|||
@media(max-width: 860px) { |
|||
margin-left: 0; |
|||
width: unset; |
|||
} |
|||
} |
|||
/*******************/ |
|||
|
|||
|
|||
/**** HLAVIČKA ****/ |
|||
#title { /*dělá blbosti šířka, je to kvůli fixed pozici, zatím natvrdo, vyřešit*/ |
|||
height: 55px; |
|||
width: 970px; |
|||
position: fixed; |
|||
z-index: 2048; |
|||
background-color: var(--hlavni-oranzova); |
|||
filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); |
|||
|
|||
font-size: 28px; |
|||
color: var(--barva-pozadi); |
|||
font-weight: 400; |
|||
font-variant: small-caps; |
|||
text-align: center; |
|||
text-decoration: none; |
|||
padding-top: 8px; |
|||
text-shadow: none; |
|||
} |
|||
|
|||
#header { |
|||
position: relative; |
|||
background: url("../images/header/vikendovka.jpg") no-repeat center top; /* poměr 350:970, TODO: aby to nemuselo být přesně na pixely */ |
|||
background-size: 100%; |
|||
top: 58px; |
|||
|
|||
img.logo { |
|||
width: 100%; |
|||
filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); |
|||
} |
|||
|
|||
img.logo-mobile { |
|||
display: none; |
|||
} |
|||
|
|||
.no-mobile { |
|||
background-size: contain; |
|||
} |
|||
} |
|||
/******************/ |
|||
|
|||
|
|||
/**** Footer ****/ |
|||
#footer { |
|||
position: absolute; |
|||
bottom: 0; |
|||
width: 100%; |
|||
background: url("../images/mozaika-footer.svg") no-repeat top center; |
|||
height: var(--footer-height); |
|||
background-size: 100%; |
|||
filter: drop-shadow(5px 0px 5px rgba(0, 0, 0, 0.4)); |
|||
padding-top: 3.5%; |
|||
|
|||
p.license { |
|||
text-align: center; |
|||
font-weight: 400; |
|||
bottom: 0; |
|||
|
|||
a { |
|||
color: #333; |
|||
} |
|||
} |
|||
|
|||
@media (max-width: 650px) { |
|||
display: none; |
|||
} |
|||
} |
|||
|
|||
p.license-mobile { |
|||
display: none; |
|||
margin-bottom: 0; |
|||
|
|||
@media (max-width: 650px) { |
|||
position: relative; |
|||
display: block; |
|||
font-size: 90%; |
|||
background-color: var(--hlavni-oranzova); |
|||
padding: 5%; |
|||
text-align: justify; |
|||
} |
|||
} |
|||
/****************/ |
|||
|
|||
|
|||
/**** LOGIN BAR ****/ |
|||
div.login-bar { |
|||
background: var(--orgovska-fialova); |
|||
color: var(--svetla-oranzova); |
|||
width: 100%; |
|||
|
|||
position: fixed; |
|||
margin-top: calc(-1 * var(--login-bar-height)); |
|||
min-height: var(--login-bar-height); |
|||
z-index: 4086; |
|||
|
|||
padding-left: 5px; |
|||
padding-right: 5px; |
|||
|
|||
div { |
|||
display: inline; |
|||
} |
|||
|
|||
a.LOGIN-ref-admin { |
|||
display: inline; |
|||
color: var(--barva-pozadi); |
|||
} |
|||
|
|||
.LOGIN_napis-webarum { |
|||
display: inline; |
|||
color: var(--barva-pozadi); |
|||
float: right; |
|||
|
|||
a { |
|||
color: var(--svetla-oranzova); |
|||
text-decoration: underline; |
|||
} |
|||
} |
|||
} |
|||
/*******************/ |
|||
|
|||
|
|||
/* stránka přes celý displej */ |
|||
@media (max-width: 970px) { |
|||
div.kontejner { |
|||
width: 100%; |
|||
} |
|||
|
|||
#title { |
|||
width: 100%; |
|||
text-align: center; |
|||
} |
|||
|
|||
#header { |
|||
background-size: 100%; |
|||
|
|||
img.logo { |
|||
width: 100%; |
|||
} |
|||
} |
|||
|
|||
#footer { |
|||
width: 100%; |
|||
} |
|||
} |
|||
|
|||
/* malý tablet, mobil */ |
|||
@media (max-width: 650px) { |
|||
|
|||
#hide-if-small.login-bar-flatpage { |
|||
display: none; |
|||
} |
|||
|
|||
#title { |
|||
display: none; |
|||
} |
|||
|
|||
#header { |
|||
width: 100%; |
|||
top: 0; |
|||
background-image: none; |
|||
|
|||
img.logo { |
|||
display: none; |
|||
} |
|||
|
|||
img.logo-mobile { |
|||
display: block; |
|||
top: 0; |
|||
left: 0; |
|||
width: 100%; |
|||
filter: drop-shadow(0px 0 5px rgba(0, 0, 0, 0.4)); |
|||
margin-bottom: 3px; |
|||
} |
|||
|
|||
.no-mobile{ |
|||
display: none; |
|||
} |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
/**** MENU ****/ |
|||
ul.menu_mobile { |
|||
display: none; |
|||
} |
|||
|
|||
nav.nav-button { |
|||
display: none; |
|||
} |
|||
|
|||
ul.menu { |
|||
width: 100%; |
|||
padding: 0; |
|||
margin-top: -5px; /* posune celé menu nahoru (pak potřeba zvětšit mezeru mezi menu a submenu) */ |
|||
|
|||
font-variant: small-caps; |
|||
|
|||
a { |
|||
text-decoration: none; |
|||
font-weight: bold; |
|||
font-size: 105%; |
|||
} |
|||
|
|||
li { |
|||
margin: 0; |
|||
display: inline-block; |
|||
width: 16.666667%; |
|||
text-align: center; |
|||
|
|||
font-size: 140%; |
|||
font-weight: 400; |
|||
|
|||
>a:hover, >a:active { |
|||
color: black; |
|||
} |
|||
|
|||
&.active>a { |
|||
color: var(--svetla-oranzova); |
|||
} |
|||
} |
|||
|
|||
ul.submenu { |
|||
|
|||
background-color: var(--hlavni-oranzova); |
|||
margin-top: 10px; /* mezera mezi hlavním menu a submenu */ |
|||
margin-bottom: 10px; |
|||
padding-top: 10px; |
|||
padding-bottom: 5px; |
|||
filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); |
|||
|
|||
z-index: 50; |
|||
font-weight: 400; |
|||
|
|||
li { |
|||
width: auto; |
|||
padding: 0 20px 0 20px; |
|||
display: inline-block; |
|||
|
|||
>a { |
|||
color: var(--svetla-oranzova); |
|||
text-decoration: none; |
|||
text-shadow: none; |
|||
|
|||
:hover { |
|||
color: black; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
ul.submenu li.active>a, .parentactive ul li:first-child>a { |
|||
color: black; |
|||
} |
|||
} |
|||
|
|||
@media (max-width: 970px) { |
|||
ul.menu { |
|||
font-size: 90%; |
|||
margin-top: -7px; |
|||
|
|||
li { |
|||
margin-top: 10px; /* posunutí textu hlavního menu níže */ |
|||
} |
|||
} |
|||
|
|||
ul.submenu { |
|||
margin-top: 8px; /* mezera mezi hlavním menu a submenu */ |
|||
|
|||
li { |
|||
margin-top: 0; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ |
|||
} |
|||
} |
|||
} |
|||
|
|||
@media(max-width: 800px) { |
|||
ul.menu { |
|||
font-size: 80%; |
|||
margin-top: -2px; |
|||
|
|||
li { |
|||
margin-top: 10px; /* posunutí textu hlavního menu níže */ |
|||
} |
|||
} |
|||
|
|||
ul.submenu { |
|||
margin-top: 8px; /* mezera mezi hlavním menu a submenu */ |
|||
|
|||
li { |
|||
margin-top: 0; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ |
|||
} |
|||
} |
|||
} |
|||
|
|||
@media (max-width: 650px) { |
|||
ul.menu { |
|||
display: none; |
|||
} |
|||
|
|||
ul.menu_mobile { |
|||
display: block; |
|||
z-index: 10; |
|||
position: sticky; |
|||
font-variant: small-caps; |
|||
font-size: 150%; |
|||
font-weight: bold; |
|||
list-style-type: none; |
|||
padding-top: 3px; |
|||
padding-bottom: 3px; |
|||
padding-left: 12px; |
|||
|
|||
a { |
|||
&:active, &:hover, &:focus { |
|||
text-decoration: none; |
|||
color: black; |
|||
} |
|||
} |
|||
|
|||
ul { |
|||
list-style-type: none; |
|||
font-size: 90%; |
|||
color: black; /*černé šipky submenu*/ |
|||
|
|||
li { |
|||
> a { |
|||
color: black; |
|||
} |
|||
|
|||
&::before { |
|||
content: ' \276D '; /*https://www.w3schools.com/cssref/css_entities.asp*/ |
|||
} |
|||
} |
|||
} |
|||
|
|||
br { |
|||
display: none; |
|||
} |
|||
} |
|||
|
|||
nav.nav-button { |
|||
display: block; |
|||
position: sticky; |
|||
position: -webkit-sticky; |
|||
top: 0; |
|||
z-index: 10; |
|||
} |
|||
|
|||
#navbar-content { |
|||
background-color: var(--hlavni-oranzova); |
|||
} |
|||
|
|||
button.navbar-button { |
|||
color: #f9d59e; |
|||
background-color: var(--hlavni-oranzova); |
|||
font-variant: small-caps; |
|||
font-size: 160%; |
|||
border-radius: 0; |
|||
border-width: 0; |
|||
width: 100%; |
|||
text-align: right; |
|||
} |
|||
|
|||
button.navbar-button span::after { |
|||
content: ' \2261 '; |
|||
font-size: 120%; |
|||
} |
|||
|
|||
li.dropdown div.submenu_mobile { |
|||
display: none; |
|||
--bs-dropdown-bg: var(--hlavni-oranzova); |
|||
} |
|||
|
|||
li.dropdown div.submenu_mobile.show { |
|||
display: block; |
|||
} |
|||
} /* konec @media */ |
|||
/**************/ |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
/**** ROZLIŠENÍ MEZI LOKÁLNÍM, TESTOVACÍM A PRODUKČNÍM WEBEM ****/ |
|||
body.localweb, body.testweb, body.suprodweb { |
|||
&:before, &:after { |
|||
content: ""; |
|||
position: fixed; |
|||
width: 20px; |
|||
height: 100%; |
|||
top: 0; |
|||
z-index: -1000; |
|||
} |
|||
|
|||
&:before { left: 0; } |
|||
&:after { right: 0; } |
|||
} |
|||
|
|||
body.localweb { &:before, &:after { background: greenyellow; } } |
|||
body.testweb { &:before, &:after { background: darkorange; } } |
|||
body.suprodweb { &:before, &:after { background: red; } } |
|||
/****************************************************************/ |
|||
|
|||
|
|||
/**** ZBYTEK ****/ |
|||
/* (konkrétní stránky) */ |
|||
|
|||
/* Titulní stránka */ |
|||
.titulnistrana { |
|||
display: flex; |
|||
text-align: justify; |
|||
|
|||
@media(max-width: 800px){ |
|||
display: block; |
|||
} |
|||
|
|||
h1 { text-align: center; } |
|||
|
|||
.TITULNI_STRANA_zjistit_vic{ |
|||
text-align: center; |
|||
margin-bottom: 30px; |
|||
|
|||
hr { |
|||
display: none; |
|||
|
|||
@media(max-width: 800px){ |
|||
display: flex; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.TITULNI_STRANA_graf { |
|||
@media(max-width: 800px) { |
|||
padding-top: 40px; |
|||
} |
|||
|
|||
.TITULNI_STRANA_graf-svg { |
|||
display: flex; |
|||
|
|||
#svg-graf { |
|||
width: 100%; |
|||
height: auto; |
|||
margin: 30px; |
|||
|
|||
@media(max-width: 800px){ |
|||
max-width: 500px; |
|||
padding: 10px; |
|||
margin: auto; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
.TITULNI_STRANA_obsah { |
|||
width: 66%; |
|||
|
|||
@media(max-width: 800px){ |
|||
width: 100%; |
|||
} |
|||
} |
|||
|
|||
.TITULNI_STRANA_vitej_titulka, .TITULNI_STRANA_temata_titulka { |
|||
width: 49%; |
|||
padding: 10px; |
|||
display: table-cell; |
|||
|
|||
@media (max-width: 650px) { |
|||
width: 100%; |
|||
display: block; |
|||
} |
|||
} |
|||
|
|||
.TITULNI_STRANA_novinky { |
|||
width: 33%; |
|||
padding: 10px; |
|||
|
|||
@media(max-width: 800px){ |
|||
width: 100%; |
|||
max-width: 500px; |
|||
margin: auto; |
|||
} |
|||
} |
|||
} |
|||
|
|||
div.org-text { |
|||
font-style: italic; |
|||
} |
|||
|
|||
div.odpocet { |
|||
margin: 20px; |
|||
text-align: center; |
|||
} |
|||
|
|||
/* Stránky Aktuální ročník */ |
|||
.stranka_aktualni_zadani { |
|||
text-align: center; |
|||
|
|||
#AKTUALNI_ZADADNI_obrazek { |
|||
margin-top: 15px; |
|||
} |
|||
|
|||
div.AKTUALNI_ZADANI_termin { |
|||
text-align: center; |
|||
font-size: large; |
|||
font-weight: bold; |
|||
|
|||
@media (max-width: 420px) { |
|||
font-size: small; |
|||
} |
|||
|
|||
.AKTUALNI_ZADANI_datum { |
|||
color: var(--hlavni-oranzova); |
|||
margin: 0; |
|||
} |
|||
} |
|||
} |
|||
|
|||
#obrazek_cisla_archiv { |
|||
text-align: center; |
|||
margin: 10px; |
|||
} |
|||
|
|||
|
|||
/* Stránka Jak řešit */ |
|||
.jakresit svg { |
|||
width: 33%; |
|||
padding: 10px; |
|||
filter: none; |
|||
|
|||
@media(max-width: 860px) { |
|||
margin: auto; |
|||
display: grid; |
|||
width: 100%; |
|||
max-width: 360px; |
|||
} |
|||
} |
@ -1,38 +0,0 @@ |
|||
/* |
|||
.pink { |
|||
background-color: #ffc0cb; |
|||
} |
|||
|
|||
div.borderized { |
|||
border-style: solid; |
|||
border-radius: 5px; |
|||
padding: 5px; |
|||
padding-right: 20px; |
|||
} |
|||
|
|||
div.tnmenu { |
|||
float: right; |
|||
margin-right: 0px; |
|||
} |
|||
|
|||
|
|||
div.parent { |
|||
border-width: 2px; |
|||
} |
|||
|
|||
div.children { |
|||
border-width: 1px; |
|||
} |
|||
|
|||
div.node_type { |
|||
background-color: #d4d4d4; |
|||
} |
|||
|
|||
.hidden-tn { |
|||
display: none; |
|||
} |
|||
|
|||
/*test*/ |
|||
h1 { |
|||
color: chartreuse; |
|||
} |
File diff suppressed because it is too large
@ -0,0 +1,488 @@ |
|||
@charset "utf-8"; /* vynuť utf-8 */ |
|||
|
|||
/* Bloky použité na webu */ |
|||
|
|||
|
|||
.horizonatlni_scrollovani { overflow-x: auto; } |
|||
|
|||
/* Používá se pro podproblémy ve výsledkovkách -- zesvětlí se daný sloupec */ |
|||
.zesvetleni { color: gray; } |
|||
|
|||
|
|||
/**** OZNAČENÍ NE-PUBLIC ČÁSTÍ ****/ |
|||
.mam-org-only { |
|||
background: var(--orgovska-svetla-fialova); |
|||
padding: 10px; |
|||
margin: 10px -10px; |
|||
border: var(--orgovska-fialova) 2px dashed; |
|||
|
|||
& .mam-org-only { |
|||
border: 0; |
|||
} |
|||
|
|||
&li { |
|||
padding: 3px 0; |
|||
margin: -2px 0; |
|||
} |
|||
} |
|||
/**********************************/ |
|||
|
|||
|
|||
/**** ZAŠKRTÁVÁTKO ****/ |
|||
/* Select2 používaný hlavně multiple selectem. Přidání checkboxů a změna barvy. */ |
|||
/* Podle https://stackoverflow.com/a/48290544 */ |
|||
/* U autocomplete.ModelSelect2Multiple vyžaduje 'data-dropdown-css-class': 's2m-se-zaskrtavatky' */ |
|||
.s2m-se-zaskrtavatky .select2-results__option[aria-selected=true]:before { |
|||
content: '☑ '; |
|||
padding: 0 0 0 8px; |
|||
} |
|||
|
|||
.s2m-se-zaskrtavatky .select2-results__option[aria-selected=false]:before { |
|||
content: '◻ '; |
|||
padding: 0 0 0 8px; |
|||
} |
|||
|
|||
/* Oranžové zvýraznění v Select2 */ |
|||
.select2-results__option--highlighted { |
|||
background-color: var(--hlavni-oranzova) !important; |
|||
} |
|||
/**********************/ |
|||
|
|||
|
|||
/**** OTÁČECÍ KARTY ****/ |
|||
/* (orgové, archiv) */ |
|||
.flip-card { |
|||
perspective: 1000px; /* Remove this if you don't want the 3D effect */ |
|||
margin-left: auto; |
|||
margin-right: auto; |
|||
|
|||
/* This container is needed to position the front and back side */ |
|||
.flip-card-inner { |
|||
position: relative; |
|||
width: 100%; |
|||
height: 100%; |
|||
transition: transform 0.8s; |
|||
transform-style: preserve-3d; |
|||
} |
|||
|
|||
/* Do an horizontal flip when you move the mouse over the flip box container */ |
|||
&:hover .flip-card-inner { |
|||
transform: rotateY(180deg); |
|||
} |
|||
|
|||
/* Position the front and back side */ |
|||
.flip-card-front, .flip-card-back { |
|||
position: absolute; |
|||
width: 100%; |
|||
height: 100%; |
|||
-webkit-backface-visibility: hidden; /* Safari */ |
|||
backface-visibility: hidden; |
|||
} |
|||
|
|||
div.flip-card-foto, div.flip-card-foto img { |
|||
width: 100%; |
|||
height: 100%; |
|||
|
|||
/* Pokud je na přední straně něco proklikávacího (třeba celá fotka), tak na dotykových zařízeních nemůže proklikávat, aby se dalo otáčet */ |
|||
@media(hover: none) { |
|||
a { pointer-events: none; } |
|||
} |
|||
} |
|||
|
|||
/* Style the back side */ |
|||
.flip-card-back { |
|||
transform: rotateY(180deg); |
|||
padding: 10px; |
|||
padding-top: 20px; |
|||
} |
|||
} |
|||
|
|||
.flip-card-back { |
|||
background-color: var(--svetla-oranzova); |
|||
color: black; |
|||
} |
|||
|
|||
.otaceci_cisla .flip-card-back { |
|||
background-color: white; |
|||
color: unset; |
|||
} |
|||
|
|||
/* Otáčecí karta musí mít kolem sebe nějaké místo a mívá nějaký nadpis */ |
|||
.flip_card_container { |
|||
display: inline-block; |
|||
width: 30%; |
|||
min-width: 300px; |
|||
text-align: center; |
|||
} |
|||
|
|||
|
|||
/** Jednotlivá použití **/ |
|||
.seznam_orgu, .seznam_archiv, .rozcestnik_temat { |
|||
text-align: center; /* zarovná karty na střed */ |
|||
} |
|||
|
|||
.seznam_orgu .flip-card { |
|||
width: 200px; |
|||
height: 250px; |
|||
} |
|||
|
|||
.seznam_orgu .flip_card_container h3 { |
|||
margin-bottom: 0; |
|||
} |
|||
|
|||
|
|||
.seznam_archiv .flip-card { |
|||
width: 210px; |
|||
height: 298px; |
|||
} |
|||
|
|||
|
|||
.cisla-v-rocniku .flip-card { |
|||
width: 144px; |
|||
height: 205px; |
|||
} |
|||
|
|||
.cisla-v-rocniku .flip_card_container { |
|||
width: 15%; |
|||
min-width: 165px; |
|||
padding: 10px; |
|||
} |
|||
|
|||
|
|||
.rozcestnik_temat .flip-card { |
|||
width: 300px; |
|||
height: 300px; |
|||
} |
|||
|
|||
.rozcestnik_temat .flip_card_container { |
|||
width: 40%; |
|||
min-width: 350px; |
|||
padding-bottom: 20px; |
|||
} |
|||
/************************/ |
|||
|
|||
|
|||
|
|||
/* karty archiv */ |
|||
|
|||
div.popis_rocniku { |
|||
text-align: left; |
|||
font-weight: bold; |
|||
margin: 20px; |
|||
} |
|||
|
|||
|
|||
div.popis_rocniku a, div.cislo_odkazy a { |
|||
font-weight: bold; |
|||
color: unset; |
|||
} |
|||
|
|||
div.popis_rocniku a:hover, |
|||
div.cislo_odkazy a:hover { |
|||
color: var(--tmava-oranzova); |
|||
} |
|||
|
|||
div.cislo_odkazy ul { |
|||
margin: 0; |
|||
padding: 0; |
|||
} |
|||
|
|||
/* karty orgů */ |
|||
div.org_email { |
|||
margin-bottom: 10px; |
|||
font-weight: bold; |
|||
} |
|||
/***********************/ |
|||
|
|||
|
|||
/**** TABULKY ****/ |
|||
|
|||
/** Tabulka s čárami mezi sloupci **/ |
|||
/* Např. výsledkovky */ |
|||
|
|||
.tabulka_oramovane_sloupce { |
|||
border: solid 2px; |
|||
|
|||
td, th { |
|||
&:first-child, &:first-child { |
|||
border-left: none; |
|||
border-right: solid 1px; |
|||
} |
|||
|
|||
&:nth-child(2), &:nth-child(2) { |
|||
border-left: none; |
|||
} |
|||
|
|||
padding: 0.1em 0.3em; |
|||
border-left: solid 1px; |
|||
} |
|||
|
|||
thead { th, td { |
|||
border-bottom: solid 1px; |
|||
} } |
|||
} |
|||
/***********************************/ |
|||
|
|||
|
|||
/** Tabulka se střídajícími se barvami řádků **/ |
|||
/* Skoro jakákoliv tabulka kromě výsledkovek */ |
|||
|
|||
.barevna_tabulka { |
|||
td th { |
|||
padding: 1px 10px 1px 10px; |
|||
} |
|||
|
|||
tbody tr:nth-child(even), thead tr { |
|||
background: var(--svetlounka-oranzova); |
|||
} |
|||
|
|||
tbody tr:nth-child(odd) { |
|||
background: var(--barva-pozadi); |
|||
} |
|||
} |
|||
/**********************************************/ |
|||
|
|||
|
|||
/** Tabulka, kde první řádek a sloupec je pořád vidět **/ |
|||
/* Např. tabulka odevzdaných řešení, nebo výsledkovky */ |
|||
.tabulka_s_uchycenym_radkem_a_sloupcem { |
|||
/* Omezí výšku a šířku, aby bylo příjemné na scrollování a zapne scrollování */ |
|||
display: block; |
|||
width: fit-content; /* display: block; roztahuje na celou šířku */ |
|||
max-height: 80vh; |
|||
overflow: auto; |
|||
max-width: 90%; /* (FIXME asi není potřeba u tabulek, co nejsou na celou obrazovku) */ |
|||
margin-left: 5%; /* Vystředování (FIXME není potřeba u tabulek, co nejsou na celou obrazovku) */ |
|||
|
|||
border-collapse: separate; /* Pokud má tabulka orámování, je potřeba ho separovat, aby dodrželo position: sticky; */ |
|||
border-spacing: 0; |
|||
|
|||
/* Uchytí první řádek */ |
|||
thead tr { |
|||
position: sticky; |
|||
top: 0; |
|||
z-index: 2; |
|||
} |
|||
|
|||
/* Uchytí první sloupec */ |
|||
td, th { &:first-child { |
|||
position: sticky; |
|||
left: 0; |
|||
background: inherit; /* (Snad) zneprůhlední první sloupec */ |
|||
z-index: 1; |
|||
} } |
|||
} |
|||
|
|||
/* (Snad) zneprůhlednění prvního řádku (a sloupce) FIXME: tohle je trochu hack a potenciálně může něco rozbít */ |
|||
.tabulka_s_uchycenym_radkem_a_sloupcem, |
|||
.tabulka_s_uchycenym_radkem_a_sloupcem thead, |
|||
.tabulka_s_uchycenym_radkem_a_sloupcem tbody, |
|||
.tabulka_s_uchycenym_radkem_a_sloupcem tr, |
|||
.kontejner, |
|||
.kontent-wrapper, |
|||
.kontent |
|||
{ |
|||
background: inherit; |
|||
} |
|||
/*******************************************************/ |
|||
|
|||
/** Tabulka mající všechna ohraničení **/ |
|||
.plne_ohranicena_tabulka { |
|||
border-collapse: collapse; |
|||
|
|||
tr { th, td { |
|||
border: 1px solid black; |
|||
padding: 1px 10px 1px 10px; |
|||
} } |
|||
} |
|||
/***************************************/ |
|||
|
|||
/** Tabulka odevzdaných a došlých řešení **/ |
|||
.tabulka_doslych_reseni td { |
|||
min-width: 8em; /* Nastřeleno, aby se řádky s řešeními nezalamovaly. */ |
|||
} |
|||
/******************************************/ |
|||
|
|||
/** Výsledkovky **/ |
|||
.vysledkovka, .tabulka_oramovane_sloupce { |
|||
td, th { |
|||
&:first-child { position: unset; } |
|||
|
|||
&:nth-child(2) { |
|||
border-right: solid 1px; |
|||
|
|||
position: sticky; |
|||
left: 0; |
|||
background: inherit; /* (Snad) zneprůhlední druhý sloupec */ |
|||
z-index: 1; |
|||
} |
|||
|
|||
&:nth-child(3) { |
|||
border-left: none; |
|||
} |
|||
} |
|||
} |
|||
/*****************/ |
|||
|
|||
|
|||
/** Tabulka mých (řešitelových) řešení **/ |
|||
.moje_reseni tr { |
|||
th, td { |
|||
text-align: center; |
|||
} |
|||
|
|||
td.problem { text-align: left; } |
|||
} |
|||
|
|||
/* Různá šířka problému */ |
|||
.odevzdanareseni_mid, .odevzdanareseni_small, .odevzdanareseni_mini { display: none; } |
|||
|
|||
@media (max-width: 970px) { |
|||
.odevzdanareseni_big { display: none; } |
|||
.odevzdanareseni_mid { display: table-cell; } |
|||
} |
|||
|
|||
@media(max-width: 800px) { |
|||
.odevzdanareseni_mid { display: none; } |
|||
.odevzdanareseni_small { display: table-cell; } |
|||
} |
|||
|
|||
@media (max-width: 650px) { |
|||
.odevzdanareseni_small { display: none; } |
|||
.odevzdanareseni_mini { display: table-cell; } |
|||
} |
|||
/****************************************/ |
|||
|
|||
|
|||
/** Detail řešení **/ |
|||
.bodovani>input { |
|||
width: 4em; |
|||
|
|||
&::placeholder { |
|||
color: lightgray; |
|||
opacity: 1; |
|||
} |
|||
|
|||
&::-webkit-input-placeholder { /* Edge */ |
|||
color: lightgray; |
|||
} |
|||
} |
|||
|
|||
/* td obsahující křížek v detailu řešení se nesmí smrštit na 0 */ |
|||
.td:has(.smazat_hodnoceni) { |
|||
min-width: 20px; |
|||
padding: 3px; |
|||
} |
|||
/*******************/ |
|||
/*****************/ |
|||
|
|||
|
|||
.novinka { |
|||
.novinka_obrazek { |
|||
margin: 10px 0 10px 0; |
|||
width: 100%; |
|||
} |
|||
|
|||
.novinka_datum { |
|||
font-weight: bold; |
|||
} |
|||
|
|||
.novinka_autor { |
|||
text-align: right; |
|||
font-style: italic; |
|||
} |
|||
} |
|||
|
|||
/**** FORMULÁŘE ****/ |
|||
/* přihláška a další formuláře */ |
|||
|
|||
table.form td, table.form tr { |
|||
table-layout: fixed; |
|||
word-wrap: break-word; |
|||
padding: 5px; |
|||
} |
|||
|
|||
table#reseni.form td, table#reseni.form tr { |
|||
display: inline-table; |
|||
} |
|||
|
|||
@media (max-width: 650px) { |
|||
table.form td, table.form tr { |
|||
display: inherit; |
|||
} |
|||
} |
|||
|
|||
@media(max-width: 800px) { |
|||
|
|||
table#reseni.form td, table#reseni.form tr { |
|||
display: inline-grid; |
|||
max-width: 300px; |
|||
} |
|||
} |
|||
|
|||
.field-with-comment{ |
|||
position:relative; |
|||
} |
|||
|
|||
.field-comment{ |
|||
display:none; |
|||
text-shadow: 0 1px 0 #fff; |
|||
background-color: #f0f0f0 ; |
|||
position:absolute; |
|||
z-index:100; |
|||
border-width:1px; |
|||
border-color: #dbdbdb; |
|||
border-style:solid; |
|||
border-radius: 5px; |
|||
padding:3px; |
|||
top:50px; |
|||
left:10px; |
|||
} |
|||
|
|||
.field-with-comment:hover span.field-comment{ |
|||
display: block; |
|||
} |
|||
|
|||
input { |
|||
margin: 5px; |
|||
} |
|||
|
|||
textarea.feedback { |
|||
margin: 5px; |
|||
} |
|||
|
|||
|
|||
|
|||
ul.form { |
|||
list-style-type: none; |
|||
padding-left: 0; |
|||
} |
|||
label.field-label { |
|||
font-weight: normal; |
|||
} |
|||
label.field-required { |
|||
font-weight: bold; |
|||
} |
|||
.field-error { |
|||
font-size: 14px; |
|||
color: red; |
|||
} |
|||
ul.form li{ |
|||
margin-bottom: 3px; |
|||
} |
|||
div.gdpr { |
|||
font-size: 6pt; |
|||
|
|||
p { |
|||
font-size: 6pt; |
|||
margin-bottom: .66em; |
|||
} |
|||
} |
|||
|
|||
/* registrace */ |
|||
label[for=id_skola] { |
|||
font-weight: bold; |
|||
} |
|||
|
|||
/*******************/ |
|||
|
@ -1,525 +0,0 @@ |
|||
/* ------------------------------------------------------------------------ |
|||
This you can edit. |
|||
------------------------------------------------------------------------- */ |
|||
|
|||
/* ---------------------------------- |
|||
Default Theme |
|||
----------------------------------- */ |
|||
|
|||
div.pp_default .pp_top, |
|||
div.pp_default .pp_top .pp_middle, |
|||
div.pp_default .pp_top .pp_left, |
|||
div.pp_default .pp_top .pp_right, |
|||
div.pp_default .pp_bottom, |
|||
div.pp_default .pp_bottom .pp_left, |
|||
div.pp_default .pp_bottom .pp_middle, |
|||
div.pp_default .pp_bottom .pp_right { height: 13px; } |
|||
|
|||
div.pp_default .pp_top .pp_left { background: url(../images/prettyPhoto/default/sprite.png) -78px -93px no-repeat; } /* Top left corner */ |
|||
div.pp_default .pp_top .pp_middle { background: url(../images/prettyPhoto/default/sprite_x.png) top left repeat-x; } /* Top pattern/color */ |
|||
div.pp_default .pp_top .pp_right { background: url(../images/prettyPhoto/default/sprite.png) -112px -93px no-repeat; } /* Top right corner */ |
|||
|
|||
div.pp_default .pp_content .ppt { color: #f8f8f8; } |
|||
div.pp_default .pp_content_container .pp_left { background: url(../images/prettyPhoto/default/sprite_y.png) -7px 0 repeat-y; padding-left: 13px; } |
|||
div.pp_default .pp_content_container .pp_right { background: url(../images/prettyPhoto/default/sprite_y.png) top right repeat-y; padding-right: 13px; } |
|||
div.pp_default .pp_content { background-color: #fff; } /* Content background */ |
|||
div.pp_default .pp_next:hover { background: url(../images/prettyPhoto/default/sprite_next.png) center right no-repeat; cursor: pointer; } /* Next button */ |
|||
div.pp_default .pp_previous:hover { background: url(../images/prettyPhoto/default/sprite_prev.png) center left no-repeat; cursor: pointer; } /* Previous button */ |
|||
div.pp_default .pp_expand { background: url(../images/prettyPhoto/default/sprite.png) 0 -29px no-repeat; cursor: pointer; width: 28px; height: 28px; } /* Expand button */ |
|||
div.pp_default .pp_expand:hover { background: url(../images/prettyPhoto/default/sprite.png) 0 -56px no-repeat; cursor: pointer; } /* Expand button hover */ |
|||
div.pp_default .pp_contract { background: url(../images/prettyPhoto/default/sprite.png) 0 -84px no-repeat; cursor: pointer; width: 28px; height: 28px; } /* Contract button */ |
|||
div.pp_default .pp_contract:hover { background: url(../images/prettyPhoto/default/sprite.png) 0 -113px no-repeat; cursor: pointer; } /* Contract button hover */ |
|||
div.pp_default .pp_close { width: 30px; height: 30px; background: url(../images/prettyPhoto/default/sprite.png) 2px 1px no-repeat; cursor: pointer; } /* Close button */ |
|||
div.pp_default #pp_full_res .pp_inline { color: #000; } |
|||
div.pp_default .pp_gallery ul li a { background: url(../images/prettyPhoto/default/default_thumb.png) center center #f8f8f8; border:1px solid #aaa; } |
|||
div.pp_default .pp_gallery ul li a:hover, |
|||
div.pp_default .pp_gallery ul li.selected a { border-color: #fff; } |
|||
div.pp_default .pp_social { margin-top: 7px; } |
|||
|
|||
div.pp_default .pp_gallery a.pp_arrow_previous, |
|||
div.pp_default .pp_gallery a.pp_arrow_next { position: static; left: auto; } |
|||
div.pp_default .pp_nav .pp_play, |
|||
div.pp_default .pp_nav .pp_pause { background: url(../images/prettyPhoto/default/sprite.png) -51px 1px no-repeat; height:30px; width:30px; } |
|||
div.pp_default .pp_nav .pp_pause { background-position: -51px -29px; } |
|||
div.pp_default .pp_details { position: relative; } |
|||
div.pp_default a.pp_arrow_previous, |
|||
div.pp_default a.pp_arrow_next { background: url(../images/prettyPhoto/default/sprite.png) -31px -3px no-repeat; height: 20px; margin: 4px 0 0 0; width: 20px; } |
|||
div.pp_default a.pp_arrow_next { left: 52px; background-position: -82px -3px; } /* The next arrow in the bottom nav */ |
|||
div.pp_default .pp_content_container .pp_details { margin-top: 5px; } |
|||
div.pp_default .pp_nav { clear: none; height: 30px; width: 110px; position: relative; } |
|||
div.pp_default .pp_nav .currentTextHolder{ font-family: Georgia; font-style: italic; color:#999; font-size: 11px; left: 75px; line-height: 25px; margin: 0; padding: 0 0 0 10px; position: absolute; top: 2px; } |
|||
|
|||
div.pp_default .pp_close:hover, div.pp_default .pp_nav .pp_play:hover, div.pp_default .pp_nav .pp_pause:hover, div.pp_default .pp_arrow_next:hover, div.pp_default .pp_arrow_previous:hover { opacity:0.7; } |
|||
|
|||
div.pp_default .pp_description{ font-size: 11px; font-weight: bold; line-height: 14px; margin: 5px 50px 5px 0; } |
|||
|
|||
div.pp_default .pp_bottom .pp_left { background: url(../images/prettyPhoto/default/sprite.png) -78px -127px no-repeat; } /* Bottom left corner */ |
|||
div.pp_default .pp_bottom .pp_middle { background: url(../images/prettyPhoto/default/sprite_x.png) bottom left repeat-x; } /* Bottom pattern/color */ |
|||
div.pp_default .pp_bottom .pp_right { background: url(../images/prettyPhoto/default/sprite.png) -112px -127px no-repeat; } /* Bottom right corner */ |
|||
|
|||
div.pp_default .pp_loaderIcon { background: url(../images/prettyPhoto/default/loader.gif) center center no-repeat; } /* Loader icon */ |
|||
|
|||
|
|||
/* ---------------------------------- |
|||
Light Rounded Theme |
|||
----------------------------------- */ |
|||
|
|||
|
|||
div.light_rounded .pp_top .pp_left { background: url(../images/prettyPhoto/light_rounded/sprite.png) -88px -53px no-repeat; } /* Top left corner */ |
|||
div.light_rounded .pp_top .pp_middle { background: #fff; } /* Top pattern/color */ |
|||
div.light_rounded .pp_top .pp_right { background: url(../images/prettyPhoto/light_rounded/sprite.png) -110px -53px no-repeat; } /* Top right corner */ |
|||
|
|||
div.light_rounded .pp_content .ppt { color: #000; } |
|||
div.light_rounded .pp_content_container .pp_left, |
|||
div.light_rounded .pp_content_container .pp_right { background: #fff; } |
|||
div.light_rounded .pp_content { background-color: #fff; } /* Content background */ |
|||
div.light_rounded .pp_next:hover { background: url(../images/prettyPhoto/light_rounded/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ |
|||
div.light_rounded .pp_previous:hover { background: url(../images/prettyPhoto/light_rounded/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ |
|||
div.light_rounded .pp_expand { background: url(../images/prettyPhoto/light_rounded/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ |
|||
div.light_rounded .pp_expand:hover { background: url(../images/prettyPhoto/light_rounded/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ |
|||
div.light_rounded .pp_contract { background: url(../images/prettyPhoto/light_rounded/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ |
|||
div.light_rounded .pp_contract:hover { background: url(../images/prettyPhoto/light_rounded/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ |
|||
div.light_rounded .pp_close { width: 75px; height: 22px; background: url(../images/prettyPhoto/light_rounded/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ |
|||
div.light_rounded .pp_details { position: relative; } |
|||
div.light_rounded .pp_description { margin-right: 85px; } |
|||
div.light_rounded #pp_full_res .pp_inline { color: #000; } |
|||
div.light_rounded .pp_gallery a.pp_arrow_previous, |
|||
div.light_rounded .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } |
|||
div.light_rounded .pp_nav .pp_play { background: url(../images/prettyPhoto/light_rounded/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } |
|||
div.light_rounded .pp_nav .pp_pause { background: url(../images/prettyPhoto/light_rounded/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } |
|||
|
|||
div.light_rounded .pp_arrow_previous { background: url(../images/prettyPhoto/light_rounded/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ |
|||
div.light_rounded .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } |
|||
div.light_rounded .pp_arrow_next { background: url(../images/prettyPhoto/light_rounded/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ |
|||
div.light_rounded .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } |
|||
|
|||
div.light_rounded .pp_bottom .pp_left { background: url(../images/prettyPhoto/light_rounded/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ |
|||
div.light_rounded .pp_bottom .pp_middle { background: #fff; } /* Bottom pattern/color */ |
|||
div.light_rounded .pp_bottom .pp_right { background: url(../images/prettyPhoto/light_rounded/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ |
|||
|
|||
div.light_rounded .pp_loaderIcon { background: url(../images/prettyPhoto/light_rounded/loader.gif) center center no-repeat; } /* Loader icon */ |
|||
|
|||
/* ---------------------------------- |
|||
Dark Rounded Theme |
|||
----------------------------------- */ |
|||
|
|||
div.dark_rounded .pp_top .pp_left { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -53px no-repeat; } /* Top left corner */ |
|||
div.dark_rounded .pp_top .pp_middle { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat; } /* Top pattern/color */ |
|||
div.dark_rounded .pp_top .pp_right { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -53px no-repeat; } /* Top right corner */ |
|||
|
|||
div.dark_rounded .pp_content_container .pp_left { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat-y; } /* Left Content background */ |
|||
div.dark_rounded .pp_content_container .pp_right { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top right repeat-y; } /* Right Content background */ |
|||
div.dark_rounded .pp_content { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat; } /* Content background */ |
|||
div.dark_rounded .pp_next:hover { background: url(../images/prettyPhoto/dark_rounded/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ |
|||
div.dark_rounded .pp_previous:hover { background: url(../images/prettyPhoto/dark_rounded/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ |
|||
div.dark_rounded .pp_expand { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ |
|||
div.dark_rounded .pp_expand:hover { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ |
|||
div.dark_rounded .pp_contract { background: url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ |
|||
div.dark_rounded .pp_contract:hover { background: url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ |
|||
div.dark_rounded .pp_close { width: 75px; height: 22px; background: url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ |
|||
div.dark_rounded .pp_details { position: relative; } |
|||
div.dark_rounded .pp_description { margin-right: 85px; } |
|||
div.dark_rounded .currentTextHolder { color: #c4c4c4; } |
|||
div.dark_rounded .pp_description { color: #fff; } |
|||
div.dark_rounded #pp_full_res .pp_inline { color: #fff; } |
|||
div.dark_rounded .pp_gallery a.pp_arrow_previous, |
|||
div.dark_rounded .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } |
|||
div.dark_rounded .pp_nav .pp_play { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } |
|||
div.dark_rounded .pp_nav .pp_pause { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } |
|||
|
|||
div.dark_rounded .pp_arrow_previous { background: url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ |
|||
div.dark_rounded .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } |
|||
div.dark_rounded .pp_arrow_next { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ |
|||
div.dark_rounded .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } |
|||
|
|||
div.dark_rounded .pp_bottom .pp_left { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ |
|||
div.dark_rounded .pp_bottom .pp_middle { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat; } /* Bottom pattern/color */ |
|||
div.dark_rounded .pp_bottom .pp_right { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ |
|||
|
|||
div.dark_rounded .pp_loaderIcon { background: url(../images/prettyPhoto/dark_rounded/loader.gif) center center no-repeat; } /* Loader icon */ |
|||
|
|||
|
|||
/* ---------------------------------- |
|||
Dark Square Theme |
|||
----------------------------------- */ |
|||
|
|||
div.dark_square .pp_left , |
|||
div.dark_square .pp_middle, |
|||
div.dark_square .pp_right, |
|||
div.dark_square .pp_content { background: #000; } |
|||
|
|||
div.dark_square .currentTextHolder { color: #c4c4c4; } |
|||
div.dark_square .pp_description { color: #fff; } |
|||
div.dark_square .pp_loaderIcon { background: url(../images/prettyPhoto/dark_square/loader.gif) center center no-repeat; } /* Loader icon */ |
|||
|
|||
div.dark_square .pp_expand { background: url(../images/prettyPhoto/dark_square/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ |
|||
div.dark_square .pp_expand:hover { background: url(../images/prettyPhoto/dark_square/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ |
|||
div.dark_square .pp_contract { background: url(../images/prettyPhoto/dark_square/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ |
|||
div.dark_square .pp_contract:hover { background: url(../images/prettyPhoto/dark_square/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ |
|||
div.dark_square .pp_close { width: 75px; height: 22px; background: url(../images/prettyPhoto/dark_square/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ |
|||
div.dark_square .pp_details { position: relative; } |
|||
div.dark_square .pp_description { margin: 0 85px 0 0; } |
|||
div.dark_square #pp_full_res .pp_inline { color: #fff; } |
|||
div.dark_square .pp_gallery a.pp_arrow_previous, |
|||
div.dark_square .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } |
|||
div.dark_square .pp_nav { clear: none; } |
|||
div.dark_square .pp_nav .pp_play { background: url(../images/prettyPhoto/dark_square/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } |
|||
div.dark_square .pp_nav .pp_pause { background: url(../images/prettyPhoto/dark_square/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } |
|||
|
|||
div.dark_square .pp_arrow_previous { background: url(../images/prettyPhoto/dark_square/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ |
|||
div.dark_square .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } |
|||
div.dark_square .pp_arrow_next { background: url(../images/prettyPhoto/dark_square/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ |
|||
div.dark_square .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } |
|||
|
|||
div.dark_square .pp_next:hover { background: url(../images/prettyPhoto/dark_square/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ |
|||
div.dark_square .pp_previous:hover { background: url(../images/prettyPhoto/dark_square/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ |
|||
|
|||
|
|||
/* ---------------------------------- |
|||
Light Square Theme |
|||
----------------------------------- */ |
|||
|
|||
div.light_square .pp_left , |
|||
div.light_square .pp_middle, |
|||
div.light_square .pp_right, |
|||
div.light_square .pp_content { background: #fff; } |
|||
|
|||
div.light_square .pp_content .ppt { color: #000; } |
|||
div.light_square .pp_expand { background: url(../images/prettyPhoto/light_square/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ |
|||
div.light_square .pp_expand:hover { background: url(../images/prettyPhoto/light_square/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ |
|||
div.light_square .pp_contract { background: url(../images/prettyPhoto/light_square/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ |
|||
div.light_square .pp_contract:hover { background: url(../images/prettyPhoto/light_square/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ |
|||
div.light_square .pp_close { width: 75px; height: 22px; background: url(../images/prettyPhoto/light_square/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ |
|||
div.light_square .pp_details { position: relative; } |
|||
div.light_square .pp_description { margin-right: 85px; } |
|||
div.light_square #pp_full_res .pp_inline { color: #000; } |
|||
div.light_square .pp_gallery a.pp_arrow_previous, |
|||
div.light_square .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } |
|||
div.light_square .pp_nav .pp_play { background: url(../images/prettyPhoto/light_square/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } |
|||
div.light_square .pp_nav .pp_pause { background: url(../images/prettyPhoto/light_square/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } |
|||
|
|||
div.light_square .pp_arrow_previous { background: url(../images/prettyPhoto/light_square/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ |
|||
div.light_square .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } |
|||
div.light_square .pp_arrow_next { background: url(../images/prettyPhoto/light_square/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ |
|||
div.light_square .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } |
|||
|
|||
div.light_square .pp_next:hover { background: url(../images/prettyPhoto/light_square/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ |
|||
div.light_square .pp_previous:hover { background: url(../images/prettyPhoto/light_square/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ |
|||
|
|||
div.light_square .pp_loaderIcon { background: url(../images/prettyPhoto/light_rounded/loader.gif) center center no-repeat; } /* Loader icon */ |
|||
|
|||
|
|||
/* ---------------------------------- |
|||
Facebook style Theme |
|||
----------------------------------- */ |
|||
|
|||
div.facebook .pp_top .pp_left { background: url(../images/prettyPhoto/facebook/sprite.png) -88px -53px no-repeat; } /* Top left corner */ |
|||
div.facebook .pp_top .pp_middle { background: url(../images/prettyPhoto/facebook/contentPatternTop.png) top left repeat-x; } /* Top pattern/color */ |
|||
div.facebook .pp_top .pp_right { background: url(../images/prettyPhoto/facebook/sprite.png) -110px -53px no-repeat; } /* Top right corner */ |
|||
|
|||
div.facebook .pp_content .ppt { color: #000; } |
|||
div.facebook .pp_content_container .pp_left { background: url(../images/prettyPhoto/facebook/contentPatternLeft.png) top left repeat-y; } /* Content background */ |
|||
div.facebook .pp_content_container .pp_right { background: url(../images/prettyPhoto/facebook/contentPatternRight.png) top right repeat-y; } /* Content background */ |
|||
div.facebook .pp_content { background: #fff; } /* Content background */ |
|||
div.facebook .pp_expand { background: url(../images/prettyPhoto/facebook/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ |
|||
div.facebook .pp_expand:hover { background: url(../images/prettyPhoto/facebook/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ |
|||
div.facebook .pp_contract { background: url(../images/prettyPhoto/facebook/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ |
|||
div.facebook .pp_contract:hover { background: url(../images/prettyPhoto/facebook/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ |
|||
div.facebook .pp_close { width: 22px; height: 22px; background: url(../images/prettyPhoto/facebook/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ |
|||
div.facebook .pp_details { position: relative; } |
|||
div.facebook .pp_description { margin: 0 37px 0 0; } |
|||
div.facebook #pp_full_res .pp_inline { color: #000; } |
|||
div.facebook .pp_loaderIcon { background: url(../images/prettyPhoto/facebook/loader.gif) center center no-repeat; } /* Loader icon */ |
|||
|
|||
div.facebook .pp_arrow_previous { background: url(../images/prettyPhoto/facebook/sprite.png) 0 -71px no-repeat; height: 22px; margin-top: 0; width: 22px; } /* The previous arrow in the bottom nav */ |
|||
div.facebook .pp_arrow_previous.disabled { background-position: 0 -96px; cursor: default; } |
|||
div.facebook .pp_arrow_next { background: url(../images/prettyPhoto/facebook/sprite.png) -32px -71px no-repeat; height: 22px; margin-top: 0; width: 22px; } /* The next arrow in the bottom nav */ |
|||
div.facebook .pp_arrow_next.disabled { background-position: -32px -96px; cursor: default; } |
|||
div.facebook .pp_nav { margin-top: 0; } |
|||
div.facebook .pp_nav p { font-size: 15px; padding: 0 3px 0 4px; } |
|||
div.facebook .pp_nav .pp_play { background: url(../images/prettyPhoto/facebook/sprite.png) -1px -123px no-repeat; height: 22px; width: 22px; } |
|||
div.facebook .pp_nav .pp_pause { background: url(../images/prettyPhoto/facebook/sprite.png) -32px -123px no-repeat; height: 22px; width: 22px; } |
|||
|
|||
div.facebook .pp_next:hover { background: url(../images/prettyPhoto/facebook/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ |
|||
div.facebook .pp_previous:hover { background: url(../images/prettyPhoto/facebook/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ |
|||
|
|||
div.facebook .pp_bottom .pp_left { background: url(../images/prettyPhoto/facebook/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ |
|||
div.facebook .pp_bottom .pp_middle { background: url(../images/prettyPhoto/facebook/contentPatternBottom.png) top left repeat-x; } /* Bottom pattern/color */ |
|||
div.facebook .pp_bottom .pp_right { background: url(../images/prettyPhoto/facebook/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ |
|||
|
|||
|
|||
/* ------------------------------------------------------------------------ |
|||
DO NOT CHANGE |
|||
------------------------------------------------------------------------- */ |
|||
|
|||
div.pp_pic_holder a:focus { outline:none; } |
|||
|
|||
div.pp_overlay { |
|||
background: #000; |
|||
display: none; |
|||
left: 0; |
|||
position: absolute; |
|||
top: 0; |
|||
width: 100%; |
|||
z-index: 9500; |
|||
} |
|||
|
|||
div.pp_pic_holder { |
|||
display: none; |
|||
position: absolute; |
|||
width: 100px; |
|||
z-index: 10000; |
|||
} |
|||
|
|||
|
|||
.pp_top { |
|||
height: 20px; |
|||
position: relative; |
|||
} |
|||
* html .pp_top { padding: 0 20px; } |
|||
|
|||
.pp_top .pp_left { |
|||
height: 20px; |
|||
left: 0; |
|||
position: absolute; |
|||
width: 20px; |
|||
} |
|||
.pp_top .pp_middle { |
|||
height: 20px; |
|||
left: 20px; |
|||
position: absolute; |
|||
right: 20px; |
|||
} |
|||
* html .pp_top .pp_middle { |
|||
left: 0; |
|||
position: static; |
|||
} |
|||
|
|||
.pp_top .pp_right { |
|||
height: 20px; |
|||
left: auto; |
|||
position: absolute; |
|||
right: 0; |
|||
top: 0; |
|||
width: 20px; |
|||
} |
|||
|
|||
.pp_content { height: 40px; min-width: 40px; } |
|||
* html .pp_content { width: 40px; } |
|||
|
|||
.pp_fade { display: none; } |
|||
|
|||
.pp_content_container { |
|||
position: relative; |
|||
text-align: left; |
|||
width: 100%; |
|||
} |
|||
|
|||
.pp_content_container .pp_left { padding-left: 20px; } |
|||
.pp_content_container .pp_right { padding-right: 20px; } |
|||
|
|||
.pp_content_container .pp_details { |
|||
float: left; |
|||
margin: 10px 0 2px 0; |
|||
} |
|||
.pp_description { |
|||
display: none; |
|||
margin: 0; |
|||
} |
|||
|
|||
.pp_social { float: left; margin: 0; } |
|||
.pp_social .facebook { float: left; margin-left: 5px; width: 55px; overflow: hidden; } |
|||
.pp_social .twitter { float: left; } |
|||
|
|||
.pp_nav { |
|||
clear: right; |
|||
float: left; |
|||
margin: 3px 10px 0 0; |
|||
} |
|||
|
|||
.pp_nav p { |
|||
float: left; |
|||
margin: 2px 4px; |
|||
white-space: nowrap; |
|||
} |
|||
|
|||
.pp_nav .pp_play, |
|||
.pp_nav .pp_pause { |
|||
float: left; |
|||
margin-right: 4px; |
|||
text-indent: -10000px; |
|||
} |
|||
|
|||
a.pp_arrow_previous, |
|||
a.pp_arrow_next { |
|||
display: block; |
|||
float: left; |
|||
height: 15px; |
|||
margin-top: 3px; |
|||
overflow: hidden; |
|||
text-indent: -10000px; |
|||
width: 14px; |
|||
} |
|||
|
|||
.pp_hoverContainer { |
|||
position: absolute; |
|||
top: 0; |
|||
width: 100%; |
|||
z-index: 2000; |
|||
} |
|||
|
|||
.pp_gallery { |
|||
display: none; |
|||
left: 50%; |
|||
margin-top: -50px; |
|||
position: absolute; |
|||
z-index: 10000; |
|||
} |
|||
|
|||
.pp_gallery div { |
|||
float: left; |
|||
overflow: hidden; |
|||
position: relative; |
|||
} |
|||
|
|||
.pp_gallery ul { |
|||
float: left; |
|||
height: 35px; |
|||
margin: 0 0 0 5px; |
|||
padding: 0; |
|||
position: relative; |
|||
white-space: nowrap; |
|||
} |
|||
|
|||
.pp_gallery ul a { |
|||
border: 1px #000 solid; |
|||
border: 1px rgba(0,0,0,0.5) solid; |
|||
display: block; |
|||
float: left; |
|||
height: 33px; |
|||
overflow: hidden; |
|||
} |
|||
|
|||
.pp_gallery ul a:hover, |
|||
.pp_gallery li.selected a { border-color: #fff; } |
|||
|
|||
.pp_gallery ul a img { border: 0; } |
|||
|
|||
.pp_gallery li { |
|||
display: block; |
|||
float: left; |
|||
margin: 0 5px 0 0; |
|||
padding: 0; |
|||
} |
|||
|
|||
.pp_gallery li.default a { |
|||
background: url(../images/prettyPhoto/facebook/default_thumbnail.gif) 0 0 no-repeat; |
|||
display: block; |
|||
height: 33px; |
|||
width: 50px; |
|||
} |
|||
|
|||
.pp_gallery li.default a img { display: none; } |
|||
|
|||
.pp_gallery .pp_arrow_previous, |
|||
.pp_gallery .pp_arrow_next { |
|||
margin-top: 7px !important; |
|||
} |
|||
|
|||
a.pp_next { |
|||
background: url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat; |
|||
display: block; |
|||
float: right; |
|||
height: 100%; |
|||
text-indent: -10000px; |
|||
width: 49%; |
|||
} |
|||
|
|||
a.pp_previous { |
|||
background: url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat; |
|||
display: block; |
|||
float: left; |
|||
height: 100%; |
|||
text-indent: -10000px; |
|||
width: 49%; |
|||
} |
|||
|
|||
a.pp_expand, |
|||
a.pp_contract { |
|||
cursor: pointer; |
|||
display: none; |
|||
height: 20px; |
|||
position: absolute; |
|||
right: 30px; |
|||
text-indent: -10000px; |
|||
top: 10px; |
|||
width: 20px; |
|||
z-index: 20000; |
|||
} |
|||
|
|||
a.pp_close { |
|||
position: absolute; right: 0; top: 0; |
|||
display: block; |
|||
line-height:22px; |
|||
text-indent: -10000px; |
|||
} |
|||
|
|||
.pp_bottom { |
|||
height: 20px; |
|||
position: relative; |
|||
} |
|||
* html .pp_bottom { padding: 0 20px; } |
|||
|
|||
.pp_bottom .pp_left { |
|||
height: 20px; |
|||
left: 0; |
|||
position: absolute; |
|||
width: 20px; |
|||
} |
|||
.pp_bottom .pp_middle { |
|||
height: 20px; |
|||
left: 20px; |
|||
position: absolute; |
|||
right: 20px; |
|||
} |
|||
* html .pp_bottom .pp_middle { |
|||
left: 0; |
|||
position: static; |
|||
} |
|||
|
|||
.pp_bottom .pp_right { |
|||
height: 20px; |
|||
left: auto; |
|||
position: absolute; |
|||
right: 0; |
|||
top: 0; |
|||
width: 20px; |
|||
} |
|||
|
|||
.pp_loaderIcon { |
|||
display: block; |
|||
height: 24px; |
|||
left: 50%; |
|||
margin: -12px 0 0 -12px; |
|||
position: absolute; |
|||
top: 50%; |
|||
width: 24px; |
|||
} |
|||
|
|||
#pp_full_res { |
|||
line-height: 1 !important; |
|||
} |
|||
|
|||
#pp_full_res .pp_inline { |
|||
text-align: left; |
|||
} |
|||
|
|||
#pp_full_res .pp_inline p { margin: 0 0 15px 0; } |
|||
|
|||
div.ppt { |
|||
color: #fff; |
|||
display: none; |
|||
font-size: 17px; |
|||
margin: 0 0 5px 15px; |
|||
z-index: 9999; |
|||
} |
@ -1,29 +0,0 @@ |
|||
/* Rozlišení mezi lokálním, test a produkčním webem */ |
|||
|
|||
.localweb { |
|||
border-left: 20px solid greenyellow; |
|||
border-right: 20px solid greenyellow; |
|||
} |
|||
|
|||
.localweb .login-bar { |
|||
margin-left: -20px; |
|||
} |
|||
|
|||
.testweb { |
|||
border-left: 20px solid darkorange; |
|||
border-right: 20px solid darkorange; |
|||
} |
|||
|
|||
.testweb .login-bar { |
|||
margin-left: -20px; |
|||
} |
|||
|
|||
/* Produkční web z pohledu superuživatele */ |
|||
.suprodweb { |
|||
border-left: 20px solid red; |
|||
border-right: 20px solid red; |
|||
} |
|||
|
|||
.suprodweb .login-bar { |
|||
margin-left: -20px; |
|||
} |
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue