diff options
author | ng0 <ng0@n0.is> | 2019-06-27 11:28:57 +0000 |
---|---|---|
committer | ng0 <ng0@n0.is> | 2019-06-27 11:28:57 +0000 |
commit | 45d0b0364129481f518eebb0e6d97fdf82499959 (patch) | |
tree | cc3da6461058e1d87a860329575f11612e141cee | |
parent | 45a68c74b49b33830c5dc22e827e1fe02841c8c6 (diff) | |
download | www-45d0b0364129481f518eebb0e6d97fdf82499959.tar.gz www-45d0b0364129481f518eebb0e6d97fdf82499959.zip |
style change, layout fixes, start using sass.
-rw-r--r-- | Makefile | 7 | ||||
-rw-r--r-- | README | 13 | ||||
-rw-r--r-- | common/base.j2 | 2 | ||||
-rw-r--r-- | common/footer.j2.inc | 17 | ||||
-rw-r--r-- | common/navigation.j2.inc | 8 | ||||
-rw-r--r-- | static/styles.css | 432 | ||||
-rw-r--r-- | static/styles.sass | 275 | ||||
-rw-r--r-- | template/ev.html.j2 | 2 | ||||
-rw-r--r-- | template/gnurl.html.j2 | 2 | ||||
-rw-r--r-- | template/index.html.j2 | 136 | ||||
-rw-r--r-- | template/video.html.j2 | 4 |
11 files changed, 560 insertions, 338 deletions
@@ -11,8 +11,7 @@ | |||
11 | 11 | ||
12 | include config.mk | 12 | include config.mk |
13 | 13 | ||
14 | all: locale template | 14 | all: css locale template |
15 | # Consider using pax instead of cp. | ||
16 | cp -R dist rendered/ | 15 | cp -R dist rendered/ |
17 | cp -R static rendered/ | 16 | cp -R static rendered/ |
18 | cp rendered/static/robots.txt rendered/robots.txt | 17 | cp rendered/static/robots.txt rendered/robots.txt |
@@ -49,6 +48,10 @@ locale-update: locale/messages.pot | |||
49 | 48 | ||
50 | if grep -nA1 '#-#-#-#-#' locale/*/LC_MESSAGES/messages.po; then echo -e "\nERROR: Conflicts encountered in PO files.\n"; exit 1; fi | 49 | if grep -nA1 '#-#-#-#-#' locale/*/LC_MESSAGES/messages.po; then echo -e "\nERROR: Conflicts encountered in PO files.\n"; exit 1; fi |
51 | 50 | ||
51 | # sass preprocessor | ||
52 | css: | ||
53 | sassc static/styles.sass static/styles.css | ||
54 | |||
52 | # Compile translation files for use. | 55 | # Compile translation files for use. |
53 | locale-compile: | 56 | locale-compile: |
54 | $(BABEL) -v compile -d locale -l en --use-fuzzy | 57 | $(BABEL) -v compile -d locale -l en --use-fuzzy |
@@ -4,9 +4,15 @@ GNUnet Website | |||
4 | 4 | ||
5 | Sourcecode for https://gnunet.org created from the https://taler.net code base. | 5 | Sourcecode for https://gnunet.org created from the https://taler.net code base. |
6 | 6 | ||
7 | Requires python3-jinja2, python3-babel, and gettext. | 7 | Requirements |
8 | ------------ | ||
9 | - python3 modules: | ||
10 | - python3-jinja2, python3-babel | ||
11 | - python3 interpreter: | ||
12 | - python 3.7 (although any 3.x version should work) | ||
13 | - gettext | ||
14 | - sassc, to compile the stylesheets | ||
8 | 15 | ||
9 | The currently supported python3 version is python 3.7. | ||
10 | 16 | ||
11 | Run "make" to build the HTML. | 17 | Run "make" to build the HTML. |
12 | If you experience a failure related to a python module, run | 18 | If you experience a failure related to a python module, run |
@@ -14,6 +20,9 @@ If you experience a failure related to a python module, run | |||
14 | 20 | ||
15 | Expect it to show up in rendered/en/ and other language folders. | 21 | Expect it to show up in rendered/en/ and other language folders. |
16 | 22 | ||
23 | Run the following to start a python webserver: | ||
24 | BROWSER=firefox make run | ||
25 | |||
17 | Layout / how this comes to be | 26 | Layout / how this comes to be |
18 | ============================= | 27 | ============================= |
19 | 28 | ||
diff --git a/common/base.j2 b/common/base.j2 index 855956b2..70034222 100644 --- a/common/base.j2 +++ b/common/base.j2 | |||
@@ -9,7 +9,7 @@ | |||
9 | </head> | 9 | </head> |
10 | <body id="mybody"> | 10 | <body id="mybody"> |
11 | {% include "common/navigation.j2.inc" %} | 11 | {% include "common/navigation.j2.inc" %} |
12 | <div id="body_content"> | 12 | <div id="body_content" class="bg-near-white"> |
13 | {% block body_content %}{% endblock %} | 13 | {% block body_content %}{% endblock %} |
14 | </div> | 14 | </div> |
15 | {% include "common/footer.j2.inc" %} | 15 | {% include "common/footer.j2.inc" %} |
diff --git a/common/footer.j2.inc b/common/footer.j2.inc index 5afdc45e..5586adf4 100644 --- a/common/footer.j2.inc +++ b/common/footer.j2.inc | |||
@@ -1,5 +1,5 @@ | |||
1 | <footer id="footer"> | 1 | <footer id="footer" class="near-white bg-near-black"> |
2 | <div class="container-fluid cushion-below"> | 2 | <div class="container-fluid"> |
3 | <div class="container"> | 3 | <div class="container"> |
4 | <div class="row"> | 4 | <div class="row"> |
5 | <div class="col-12 col-sm-4"> | 5 | <div class="col-12 col-sm-4"> |
@@ -13,13 +13,13 @@ | |||
13 | <div class="col-12 col-sm-4"> | 13 | <div class="col-12 col-sm-4"> |
14 | <ul class="footer-list"> | 14 | <ul class="footer-list"> |
15 | <li><p><a href="https://bugs.gnunet.org/">{{ _("Bug Tracker") }}</a></p></li> | 15 | <li><p><a href="https://bugs.gnunet.org/">{{ _("Bug Tracker") }}</a></p></li> |
16 | <li><p><a href="https://irc.gnunet.org/gnunet">{{ _("IRC archive") }}</a></p></li> | 16 | <!-- <li><p><a href="https://irc.gnunet.org/gnunet">{{ _("IRC archive") }}</a></p></li> --> |
17 | </ul> | 17 | </ul> |
18 | </div> | 18 | </div> |
19 | <div class="col-12 col-sm-4"> | 19 | <div class="col-12 col-sm-4"> |
20 | <ul class="footer-list"> | 20 | <ul class="footer-list"> |
21 | <li><p><a href="copyright.html">{{ _("Copyright Assignment") }}</a></p></li> | 21 | <li><p><a href="copyright.html">{{ _("Copyright Assignment") }}</a></p></li> |
22 | <li><p><a href="https://gitlab.gnunet.org/">{{ _("Continuous Integration") }}</a></p></li> | 22 | <!-- <li><p><a href="https://gitlab.gnunet.org/">{{ _("Continuous Integration") }}</a></p></li> --> |
23 | <li><p><a href="https://bib.gnunet.org/">{{ _("Bibliography") }}</a></p></li> | 23 | <li><p><a href="https://bib.gnunet.org/">{{ _("Bibliography") }}</a></p></li> |
24 | </ul> | 24 | </ul> |
25 | </div> | 25 | </div> |
@@ -29,10 +29,11 @@ | |||
29 | <div class="container text-center"> | 29 | <div class="container text-center"> |
30 | <p> | 30 | <p> |
31 | {% trans %} | 31 | {% trans %} |
32 | Copyright © <a href="ev.html">GNUnet e.V.</a> 2015, 2016, 2017, 2018, 2019<br> | 32 | Copyright © <a href="ev.html">GNUnet e.V.</a> 2015 — 2019. |
33 | This page was created using <a href='https://www.gnu.org/'>Free Software</a> only.<br> | 33 | <!-- This just takes up space no one is interested in: --> |
34 | <a href='https://git.gnunet.org/www.git'>Source code of this site.</a><br /> | 34 | <!-- This page was created using <a href='https://www.gnu.org/'>Free Software</a> only.<br> --> |
35 | Report issues with this website to <a href='contact.html'>us</a>. | 35 | <a href='https://git.gnunet.org/www.git'>Source code of this site.</a> |
36 | <a href='contact.html'>Report issues with this website</a>. | ||
36 | {% endtrans %} | 37 | {% endtrans %} |
37 | </p> | 38 | </p> |
38 | </div> | 39 | </div> |
diff --git a/common/navigation.j2.inc b/common/navigation.j2.inc index 4243db7b..e187d1ec 100644 --- a/common/navigation.j2.inc +++ b/common/navigation.j2.inc | |||
@@ -17,14 +17,16 @@ | |||
17 | </noscript> | 17 | </noscript> |
18 | <!-- <nav class="navbar navbar-toggleable navbar-toggleable-md navbar-expand-md navbar-inverse navbar-dark fixed-top bg-dark"> --> | 18 | <!-- <nav class="navbar navbar-toggleable navbar-toggleable-md navbar-expand-md navbar-inverse navbar-dark fixed-top bg-dark"> --> |
19 | <!--<nav class="navbar navbar-expand-md navar-inverse navbar-dark bg-dark fixed-top"> --> | 19 | <!--<nav class="navbar navbar-expand-md navar-inverse navbar-dark bg-dark fixed-top"> --> |
20 | <nav class="navbar navbar-expand-md fixed-top"> | 20 | <!-- <nav class="navbar navbar-expand-md fixed-top"> --> |
21 | <nav class="navbar navbar-expand-md bg-near-black"> | ||
21 | <a class="navbar-brand" href="index.html"> | 22 | <a class="navbar-brand" href="index.html"> |
22 | <!-- | 23 | <!-- |
23 | TODO: imo this is bad in the navbar. | 24 | TODO: imo this is bad in the navbar. |
24 | a readable "gnunet" font-logo would | 25 | a readable "gnunet" font-logo would |
25 | be better for orientation. | 26 | be better for orientation. |
26 | --> | 27 | --> |
27 | <img src="{{ url('static/images/gnunet-icon.png') }}" alt="GNUnet Home Icon" /> | 28 | <!-- <img src="{{ url('static/images/gnunet-icon.png') }}" alt="GNUnet Home Icon" /> --> |
29 | <h1>GNUnet</h1> | ||
28 | </a> | 30 | </a> |
29 | 31 | ||
30 | <!-- menu button --> | 32 | <!-- menu button --> |
@@ -40,7 +42,7 @@ | |||
40 | <!-- /menu button --> | 42 | <!-- /menu button --> |
41 | 43 | ||
42 | <!-- navbar --> | 44 | <!-- navbar --> |
43 | <div class="collapse navbar-collapse" id="navbarMain"> | 45 | <div class="collapse navbar-collapse bg-near-black" id="navbarMain"> |
44 | <ul class="navbar-nav mr-auto nav"> | 46 | <ul class="navbar-nav mr-auto nav"> |
45 | <li class="nav-item dropdown"> | 47 | <li class="nav-item dropdown"> |
46 | <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" | 48 | <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" |
diff --git a/static/styles.css b/static/styles.css index a1813870..199dd9eb 100644 --- a/static/styles.css +++ b/static/styles.css | |||
@@ -1,326 +1,264 @@ | |||
1 | .static-top { | 1 | .static-top { |
2 | position: fixed; | 2 | position: fixed; |
3 | top: 0; | 3 | top: 0; |
4 | right: 0; | 4 | right: 0; |
5 | left: 0; | 5 | left: 0; |
6 | z-index: 3; | 6 | z-index: 3; } |
7 | } | ||
8 | |||
9 | .skip { | ||
10 | display:none!important; | ||
11 | } | ||
12 | 7 | ||
13 | .skip { | 8 | .skip { |
9 | display: none !important; | ||
10 | position: absolute; | ||
11 | top: 0; | ||
12 | left: 0; | ||
13 | width: 100%; | ||
14 | font-size: .857143em; } | ||
15 | .skip li { | ||
16 | position: absolute; | ||
17 | z-index: 1; | ||
18 | margin: 0; } | ||
19 | .skip a { | ||
14 | position: absolute; | 20 | position: absolute; |
15 | top: 0; | 21 | left: -9999px; } |
16 | left: 0; | 22 | .skip a:active, .skip a:focus { |
17 | width: 100%; | 23 | display: block; |
18 | font-size: .857143em; | 24 | position: static; |
19 | } | 25 | left: 0; |
20 | 26 | padding: .25em 1em; } | |
21 | .skip li { | 27 | |
22 | position:absolute; | 28 | .near-white { |
23 | z-index:1; | 29 | color: #f4f4f4; } |
24 | margin:0; | 30 | |
25 | } | 31 | .near-black { |
26 | .skip a { | 32 | color: #111; } |
27 | position:absolute; | 33 | |
28 | left:-9999px; | 34 | .dark-grey { |
29 | } | 35 | color: #333; } |
30 | .skip a:active, | 36 | |
31 | .skip a:focus { | 37 | .blue { |
32 | display:block; | 38 | color: #357edd; } |
33 | position:static; | 39 | |
34 | left:0; | 40 | .bg-near-white { |
35 | padding:.25em 1em; | 41 | background-color: #f4f4f4; } |
36 | } | 42 | |
43 | .bg-near-black { | ||
44 | background-color: #111; } | ||
37 | 45 | ||
38 | code { | 46 | code { |
39 | margin-bottom: 1em; | 47 | margin-bottom: 1em; } |
40 | } | ||
41 | 48 | ||
42 | /* hyperlinks and buttons */ | 49 | #body_content a { |
43 | #body_content a, | 50 | text-decoration: underline; |
44 | #body_content a:link, | 51 | color: #357edd; } |
45 | #body_content a:visited { | 52 | #body_content a:link, #body_content a:visited { |
46 | text-decoration: underline; | 53 | text-decoration: underline; |
47 | color: black; | 54 | color: #357edd; } |
48 | } | 55 | |
49 | a.btn, | 56 | a.btn { |
50 | a.btn:link, | 57 | text-decoration: none !important; |
51 | a.btn:visited { | 58 | color: white !important; } |
59 | a.btn:link, a.btn:visited { | ||
52 | text-decoration: none !important; | 60 | text-decoration: none !important; |
53 | color: white !important; | 61 | color: white !important; } |
54 | } | 62 | |
55 | /* For reference if bootstrap does not cover the main-Element issue in IE9-11 */ | ||
56 | /* | ||
57 | main { | ||
58 | display:block; | ||
59 | } | ||
60 | */ | ||
61 | /* There's a fixed navbar that is 3.5rem tall */ | ||
62 | body { | ||
63 | padding-top: 3.5rem; | ||
64 | } | ||
65 | |||
66 | /* | ||
67 | Hover effects with this color don't work out! | ||
68 | See https://gnunet.org/bugs/view.php?id=5570 | ||
69 | */ | ||
70 | /* | ||
71 | #body_content a:hover { | ||
72 | transition: background-color 0.7s; | ||
73 | background-color: #d00; | ||
74 | border-color: #fff; | ||
75 | color: white !important; | ||
76 | } | ||
77 | */ | ||
78 | .team { | 63 | .team { |
79 | padding: 75px 0; | 64 | padding: 75px 0; } |
80 | } | 65 | |
81 | h6.description { | 66 | h6.description { |
82 | font-weight: bold; | 67 | font-weight: bold; |
83 | letter-spacing: 2px; | 68 | letter-spacing: 2px; |
84 | color: #999; | 69 | color: #999; |
85 | border-bottom: 1px solid rgba(0, 0, 0, 0.1); | 70 | border-bottom: 1px solid rgba(0, 0, 0, 0.1); |
86 | padding-bottom: 5px; | 71 | padding-bottom: 5px; } |
87 | } | 72 | |
88 | .profile { | 73 | .profile { |
89 | margin-top: 25px; | 74 | margin-top: 25px; } |
90 | } | 75 | .profile h1 { |
91 | .profile h1{ | ||
92 | font-weight: normal; | 76 | font-weight: normal; |
93 | font-size: 20px; | 77 | font-size: 20px; |
94 | margin: 10px 0 0 0; | 78 | margin: 10px 0 0 0; } |
95 | } | 79 | .profile h2 { |
96 | .profile h2{ | ||
97 | font-size: 14px; | 80 | font-size: 14px; |
98 | font-weight: lighter; | 81 | font-weight: lighter; |
99 | margin-top: 5px; | 82 | margin-top: 5px; } |
100 | } | 83 | .profile .img-box { |
101 | .profile .img-box { | ||
102 | opacity: 1; | 84 | opacity: 1; |
103 | display: block; | 85 | display: block; |
104 | position: relative; | 86 | position: relative; |
105 | min-height: 160px; | 87 | min-height: 160px; } |
106 | } | 88 | .profile .img-box:after { |
107 | .profile .img-box:after{ | 89 | content: ""; |
108 | content:""; | 90 | opacity: 0; |
109 | opacity: 0; | 91 | background-color: rgba(0, 0, 0, 0.75); |
110 | background-color: rgba(0, 0, 0, 0.75); | 92 | position: absolute; |
111 | position: absolute; | 93 | right: 0; |
112 | right: 0; | 94 | left: 0; |
113 | left: 0; | 95 | top: 0; |
114 | top: 0; | 96 | bottom: 0; } |
115 | bottom: 0; | 97 | .profile .img-none { |
116 | } | 98 | text-align: center; } |
117 | 99 | .profile .img-none i.fa { | |
118 | .profile .img-none { | 100 | color: #eee; |
119 | text-align: center; | 101 | font-size: 8em; } |
120 | } | 102 | |
121 | 103 | .img-box ul { | |
122 | .profile .img-none i.fa { | 104 | position: absolute; |
123 | color: #eee; | 105 | z-index: 2; |
124 | font-size: 8em; | 106 | bottom: 50px; |
125 | } | 107 | text-align: center; |
126 | 108 | width: 100%; | |
127 | .img-box ul{ | 109 | padding-left: 0px; |
128 | position: absolute; | 110 | height: 0px; |
129 | z-index: 2; | 111 | margin: 0px; |
130 | bottom: 50px; | 112 | opacity: 0; } |
131 | text-align: center; | 113 | |
132 | width: 100%; | 114 | .profile .img-box:after { |
133 | padding-left: 0px; | 115 | -webkit-transition: all 0.5s ease-in-out 0s; |
134 | height: 0px; | 116 | -moz-transition: all 0.5s ease-in-out 0s; |
135 | margin: 0px; | 117 | transition: all 0.5s ease-in-out 0s; } |
136 | opacity: 0; | 118 | |
137 | } | 119 | .img-box ul { |
138 | .profile .img-box:after, .img-box ul, .img-box ul li { | 120 | -webkit-transition: all 0.5s ease-in-out 0s; |
121 | -moz-transition: all 0.5s ease-in-out 0s; | ||
122 | transition: all 0.5s ease-in-out 0s; } | ||
123 | .img-box ul li { | ||
139 | -webkit-transition: all 0.5s ease-in-out 0s; | 124 | -webkit-transition: all 0.5s ease-in-out 0s; |
140 | -moz-transition: all 0.5s ease-in-out 0s; | 125 | -moz-transition: all 0.5s ease-in-out 0s; |
141 | transition: all 0.5s ease-in-out 0s; | 126 | transition: all 0.5s ease-in-out 0s; } |
142 | } | 127 | .img-box ul i { |
143 | .img-box ul i{ | ||
144 | font-size: 20px; | 128 | font-size: 20px; |
145 | letter-spacing: 10px; | 129 | letter-spacing: 10px; } |
146 | } | 130 | .img-box ul li { |
147 | .img-box ul li{ | ||
148 | width: 30px; | 131 | width: 30px; |
149 | height: 30px; | 132 | height: 30px; |
150 | text-align: center; | 133 | text-align: center; |
151 | /*border: 1px solid #88C425;*/ | ||
152 | color: #88C425; | 134 | color: #88C425; |
153 | margin: 2px; | 135 | margin: 2px; |
154 | padding: 5px; | 136 | padding: 5px; |
155 | display: inline-block; | 137 | display: inline-block; } |
156 | } | 138 | |
157 | .img-box a { | 139 | .img-box a { |
158 | color: #fff; | 140 | color: #fff; } |
159 | } | 141 | |
160 | .img-box:hover:after{ | 142 | .img-box:hover:after, .img-box:hover ul { |
161 | opacity: 1; | 143 | opacity: 1; } |
162 | } | 144 | |
163 | .img-box:hover ul{ | ||
164 | opacity: 1; | ||
165 | } | ||
166 | .img-box ul a { | 145 | .img-box ul a { |
167 | -webkit-transition: all 0.3s ease-in-out 0s; | 146 | -webkit-transition: all 0.3s ease-in-out 0s; |
168 | -moz-transition: all 0.3s ease-in-out 0s; | 147 | -moz-transition: all 0.3s ease-in-out 0s; |
169 | transition: all 0.3s ease-in-out 0s; | 148 | transition: all 0.3s ease-in-out 0s; } |
170 | } | 149 | |
171 | .img-box a:hover li{ | 150 | .img-box a:hover li { |
172 | border-color: #fff; | 151 | border-color: #fff; |
173 | color: #88C425; | 152 | color: #88C425; } |
174 | } | 153 | |
175 | i.red { | 154 | i.red { |
176 | color: #BC0213; | 155 | color: #BC0213; } |
177 | } | 156 | |
178 | .btn-primary { | 157 | .btn-primary { |
179 | color: #fff; | 158 | color: #fff; |
180 | background-color: #678; | 159 | background-color: #678; |
181 | border-color: #68a; | 160 | border-color: #68a; } |
182 | } | ||
183 | a.btn:hover { | ||
184 | transition: background-color 0.7s; | ||
185 | background-color: #d00; | ||
186 | border-color: #fff; | ||
187 | color: white !important; | ||
188 | } | ||
189 | 161 | ||
162 | a.btn:hover { | ||
163 | transition: background-color 0.7s; | ||
164 | background-color: #d00; | ||
165 | border-color: #fff; | ||
166 | color: white !important; } | ||
190 | 167 | ||
191 | body .banner { | 168 | body .banner { |
192 | color: white; | 169 | color: white; |
193 | padding-top: 20px; | 170 | padding-top: 20px; |
194 | padding-bottom: 20px; | 171 | padding-bottom: 20px; } |
195 | } | ||
196 | #body_content .banner a { | ||
197 | color: white; | ||
198 | } | ||
199 | 172 | ||
173 | #body_content .banner a { | ||
174 | color: white; } | ||
200 | 175 | ||
201 | .lang-slector { | 176 | .lang-slector { |
202 | float: right; | 177 | float: right; |
203 | padding-top: 2mm; | 178 | padding-top: 2mm; |
204 | padding-bottom: 4mm; | 179 | padding-bottom: 4mm; |
205 | margin-left: 15px; | 180 | margin-left: 15px; |
206 | margin-right: 15px; | 181 | margin-right: 15px; } |
207 | } | ||
208 | 182 | ||
209 | html { | 183 | html { |
210 | overflow-y: scroll; | 184 | overflow-y: scroll; } |
211 | } | ||
212 | 185 | ||
213 | .dark { | 186 | .dark { |
214 | background-color: #333; | 187 | background-color: #333; |
215 | color: white; | 188 | color: white; } |
216 | } | ||
217 | 189 | ||
218 | .c_acronym { | 190 | .c_acronym { |
219 | background-color: #68a; | 191 | background-color: #68a; |
220 | color: white; | 192 | color: white; } |
221 | } | ||
222 | 193 | ||
223 | 194 | footer a { | |
224 | footer a, | 195 | text-decoration: underline; |
225 | footer a:link, | 196 | color: white; } |
226 | footer a:visited { | 197 | footer a:link, footer a:visited { |
227 | text-decoration: underline; | 198 | text-decoration: underline; |
228 | color: white; | 199 | color: white; } |
229 | } | 200 | footer a:hover { |
230 | |||
231 | footer a:hover { | ||
232 | transition: background-color 0.3s; | 201 | transition: background-color 0.3s; |
233 | background-color: rgba(100, 100, 100, 0.5); | 202 | background-color: rgba(100, 100, 100, 0.5); } |
234 | } | ||
235 | 203 | ||
236 | .c_intro { | 204 | .c_intro { |
237 | min-height: 97vh; | 205 | min-height: 97vh; } |
238 | } | ||
239 | 206 | ||
240 | /* don't show the language selector in the dropdown on mobile devices, | ||
241 | * since it's in the top bar already. | ||
242 | */ | ||
243 | .in .nav-lang { | 207 | .in .nav-lang { |
244 | display: none; | 208 | display: none; } |
245 | } | ||
246 | 209 | ||
247 | .mobile-lang { | 210 | .mobile-lang { |
248 | margin-left:5px; | 211 | margin-left: 5px; |
249 | margin-top: 8px; | 212 | margin-top: 8px; } |
250 | } | ||
251 | 213 | ||
252 | #mybody { | 214 | #mybody { |
253 | /* override ugly bootstrap defaults */ | 215 | color: black; } |
254 | color: black; | ||
255 | } | ||
256 | 216 | ||
257 | .btn-dark { | 217 | .btn-dark { |
258 | background-color: #999; | 218 | background-color: #999; } |
259 | } | ||
260 | |||
261 | 219 | ||
262 | #mybody nav { | 220 | #mybody nav { |
263 | border-radius: 0px; | 221 | border-radius: 0px; |
264 | padding: 10px; | 222 | padding: 10px; } |
265 | } | 223 | |
266 | .index-logo { | 224 | .index-logo { |
267 | text-align: center; | 225 | text-align: center; } |
268 | } | ||
269 | 226 | ||
270 | footer { | 227 | footer { |
271 | padding-top: 2em; | 228 | padding-top: 2em; |
272 | margin-top: 2em; | 229 | margin-top: 2em; } |
273 | background-color: #333; | ||
274 | color: white; | ||
275 | } | ||
276 | 230 | ||
277 | #body_content .container-wide { | 231 | #body_content { |
232 | min-height: 80vh; } | ||
233 | #body_content .container-wide { | ||
278 | margin-bottom: 2em; | 234 | margin-bottom: 2em; |
279 | padding-top: 1em; | 235 | padding-top: 1em; |
280 | padding-bottom: 1em; | 236 | padding-bottom: 1em; |
281 | padding-left: 2em; | 237 | padding-left: 2em; |
282 | padding-right: 2em; | 238 | padding-right: 2em; } |
283 | } | 239 | #body_content .container { |
284 | #body_content .container { | ||
285 | margin-bottom: 2em; | ||
286 | padding-top: 1em; | 240 | padding-top: 1em; |
287 | padding-bottom: 1em; | 241 | padding-bottom: 1em; |
288 | padding-left: 2em; | 242 | padding-left: 2em; |
289 | padding-right: 2em; | 243 | padding-right: 2em; |
290 | max-width: 80em; | 244 | max-width: 80em; } |
291 | } | 245 | #body_content .jumbotron { |
292 | 246 | margin-bottom: 0px; } | |
293 | #body_content { | ||
294 | /* push footer down */ | ||
295 | min-height: 80vh; | ||
296 | /* space for the nav */ | ||
297 | padding-top: 70px; | ||
298 | } | ||
299 | 247 | ||
300 | .adorn_h3_bracket h3::before { | 248 | .adorn_h3_bracket h3::before { |
301 | content: "⊛"; | 249 | content: "#"; |
302 | color: #333; | 250 | color: #333; |
303 | margin-right: 0.5em; | 251 | margin-right: 0.5em; } |
304 | } | ||
305 | 252 | ||
306 | .footer-list { | 253 | .footer-list { |
307 | list-style: none; | 254 | list-style: none; } |
308 | } | ||
309 | 255 | ||
310 | .cushion-above { | 256 | .cushion-above { |
311 | padding-top: 2em; | 257 | padding-top: 2em; } |
312 | } | ||
313 | 258 | ||
314 | .cushion-below { | 259 | .cushion-below { |
315 | padding-bottom: 2em; | 260 | padding-bottom: 2em; } |
316 | } | ||
317 | 261 | ||
318 | .invert { | 262 | .invert { |
319 | -webkit-filter: invert(100%); | 263 | -webkit-filter: invert(100%); |
320 | filter: invert(100%); | 264 | filter: invert(100%); } |
321 | } | ||
322 | |||
323 | #body_content .jumbotron { | ||
324 | background-color: #333; | ||
325 | margin-bottom: 0px; | ||
326 | } | ||
diff --git a/static/styles.sass b/static/styles.sass new file mode 100644 index 00000000..a281f4d0 --- /dev/null +++ b/static/styles.sass | |||
@@ -0,0 +1,275 @@ | |||
1 | .static-top | ||
2 | position: fixed | ||
3 | top: 0 | ||
4 | right: 0 | ||
5 | left: 0 | ||
6 | z-index: 3 | ||
7 | |||
8 | .skip | ||
9 | display: none !important | ||
10 | position: absolute | ||
11 | top: 0 | ||
12 | left: 0 | ||
13 | width: 100% | ||
14 | font-size: .857143em | ||
15 | li | ||
16 | position: absolute | ||
17 | z-index: 1 | ||
18 | margin: 0 | ||
19 | a | ||
20 | position: absolute | ||
21 | left: -9999px | ||
22 | &:active, &:focus | ||
23 | display: block | ||
24 | position: static | ||
25 | left: 0 | ||
26 | padding: .25em 1em | ||
27 | |||
28 | // text colors | ||
29 | |||
30 | .near-white | ||
31 | color: #f4f4f4 | ||
32 | |||
33 | .near-black | ||
34 | color: #111 | ||
35 | |||
36 | .dark-grey | ||
37 | color: #333 | ||
38 | |||
39 | .blue | ||
40 | color: #357edd | ||
41 | |||
42 | // background colors | ||
43 | |||
44 | .bg-near-white | ||
45 | background-color: #f4f4f4 | ||
46 | |||
47 | .bg-near-black | ||
48 | background-color: #111 | ||
49 | |||
50 | code | ||
51 | margin-bottom: 1em | ||
52 | |||
53 | // hyperlinks and buttons | ||
54 | |||
55 | #body_content a | ||
56 | text-decoration: underline | ||
57 | color: #357edd | ||
58 | &:link, &:visited | ||
59 | text-decoration: underline | ||
60 | color: #357edd | ||
61 | |||
62 | a.btn | ||
63 | text-decoration: none !important | ||
64 | color: white !important | ||
65 | &:link, &:visited | ||
66 | text-decoration: none !important | ||
67 | color: white !important | ||
68 | |||
69 | .team | ||
70 | padding: 75px 0 | ||
71 | |||
72 | h6.description | ||
73 | font-weight: bold | ||
74 | letter-spacing: 2px | ||
75 | color: #999 | ||
76 | border-bottom: 1px solid rgba(0, 0, 0, 0.1) | ||
77 | padding-bottom: 5px | ||
78 | |||
79 | .profile | ||
80 | margin-top: 25px | ||
81 | h1 | ||
82 | font-weight: normal | ||
83 | font-size: 20px | ||
84 | margin: 10px 0 0 0 | ||
85 | h2 | ||
86 | font-size: 14px | ||
87 | font-weight: lighter | ||
88 | margin-top: 5px | ||
89 | .img-box | ||
90 | opacity: 1 | ||
91 | display: block | ||
92 | position: relative | ||
93 | min-height: 160px | ||
94 | &:after | ||
95 | content: "" | ||
96 | opacity: 0 | ||
97 | background-color: rgba(0, 0, 0, 0.75) | ||
98 | position: absolute | ||
99 | right: 0 | ||
100 | left: 0 | ||
101 | top: 0 | ||
102 | bottom: 0 | ||
103 | .img-none | ||
104 | text-align: center | ||
105 | i.fa | ||
106 | color: #eee | ||
107 | font-size: 8em | ||
108 | |||
109 | .img-box ul | ||
110 | position: absolute | ||
111 | z-index: 2 | ||
112 | bottom: 50px | ||
113 | text-align: center | ||
114 | width: 100% | ||
115 | padding-left: 0px | ||
116 | height: 0px | ||
117 | margin: 0px | ||
118 | opacity: 0 | ||
119 | |||
120 | .profile .img-box:after | ||
121 | -webkit-transition: all 0.5s ease-in-out 0s | ||
122 | -moz-transition: all 0.5s ease-in-out 0s | ||
123 | transition: all 0.5s ease-in-out 0s | ||
124 | |||
125 | .img-box | ||
126 | ul | ||
127 | -webkit-transition: all 0.5s ease-in-out 0s | ||
128 | -moz-transition: all 0.5s ease-in-out 0s | ||
129 | transition: all 0.5s ease-in-out 0s | ||
130 | li | ||
131 | -webkit-transition: all 0.5s ease-in-out 0s | ||
132 | -moz-transition: all 0.5s ease-in-out 0s | ||
133 | transition: all 0.5s ease-in-out 0s | ||
134 | i | ||
135 | font-size: 20px | ||
136 | letter-spacing: 10px | ||
137 | li | ||
138 | width: 30px | ||
139 | height: 30px | ||
140 | text-align: center | ||
141 | color: #88C425 | ||
142 | margin: 2px | ||
143 | padding: 5px | ||
144 | display: inline-block | ||
145 | a | ||
146 | color: #fff | ||
147 | &:hover | ||
148 | &:after, ul | ||
149 | opacity: 1 | ||
150 | ul a | ||
151 | -webkit-transition: all 0.3s ease-in-out 0s | ||
152 | -moz-transition: all 0.3s ease-in-out 0s | ||
153 | transition: all 0.3s ease-in-out 0s | ||
154 | a:hover li | ||
155 | border-color: #fff | ||
156 | color: #88C425 | ||
157 | |||
158 | i.red | ||
159 | color: #BC0213 | ||
160 | |||
161 | .btn-primary | ||
162 | color: #fff | ||
163 | background-color: #678 | ||
164 | border-color: #68a | ||
165 | |||
166 | a.btn:hover | ||
167 | transition: background-color 0.7s | ||
168 | background-color: #d00 | ||
169 | border-color: #fff | ||
170 | color: white !important | ||
171 | |||
172 | body .banner | ||
173 | color: white | ||
174 | padding-top: 20px | ||
175 | padding-bottom: 20px | ||
176 | |||
177 | #body_content .banner a | ||
178 | color: white | ||
179 | |||
180 | .lang-slector | ||
181 | float: right | ||
182 | padding-top: 2mm | ||
183 | padding-bottom: 4mm | ||
184 | margin-left: 15px | ||
185 | margin-right: 15px | ||
186 | |||
187 | html | ||
188 | overflow-y: scroll | ||
189 | |||
190 | .dark | ||
191 | background-color: #333 | ||
192 | color: white | ||
193 | |||
194 | .c_acronym | ||
195 | background-color: #68a | ||
196 | color: white | ||
197 | |||
198 | footer a | ||
199 | text-decoration: underline | ||
200 | color: white | ||
201 | &:link, &:visited | ||
202 | text-decoration: underline | ||
203 | color: white | ||
204 | &:hover | ||
205 | transition: background-color 0.3s | ||
206 | background-color: rgba(100, 100, 100, 0.5) | ||
207 | |||
208 | .c_intro | ||
209 | min-height: 97vh | ||
210 | |||
211 | // don't show the language selector in the dropdown on mobile devices, | ||
212 | // since it's in the top bar already. | ||
213 | |||
214 | .in .nav-lang | ||
215 | display: none | ||
216 | |||
217 | .mobile-lang | ||
218 | margin-left: 5px | ||
219 | margin-top: 8px | ||
220 | |||
221 | #mybody | ||
222 | // override ugly bootstrap defaults | ||
223 | color: black | ||
224 | |||
225 | .btn-dark | ||
226 | background-color: #999 | ||
227 | |||
228 | #mybody nav | ||
229 | border-radius: 0px | ||
230 | padding: 10px | ||
231 | |||
232 | .index-logo | ||
233 | text-align: center | ||
234 | |||
235 | footer | ||
236 | padding-top: 2em | ||
237 | margin-top: 2em | ||
238 | |||
239 | #body_content | ||
240 | .container-wide | ||
241 | margin-bottom: 2em | ||
242 | padding-top: 1em | ||
243 | padding-bottom: 1em | ||
244 | padding-left: 2em | ||
245 | padding-right: 2em | ||
246 | .container | ||
247 | padding-top: 1em | ||
248 | padding-bottom: 1em | ||
249 | padding-left: 2em | ||
250 | padding-right: 2em | ||
251 | max-width: 80em | ||
252 | .jumbotron | ||
253 | margin-bottom: 0px | ||
254 | // push footer down | ||
255 | min-height: 80vh | ||
256 | // space for the nav | ||
257 | // padding-top: 70px; | ||
258 | |||
259 | .adorn_h3_bracket h3::before | ||
260 | content: "#" | ||
261 | color: #333 | ||
262 | margin-right: 0.5em | ||
263 | |||
264 | .footer-list | ||
265 | list-style: none | ||
266 | |||
267 | .cushion-above | ||
268 | padding-top: 2em | ||
269 | |||
270 | .cushion-below | ||
271 | padding-bottom: 2em | ||
272 | |||
273 | .invert | ||
274 | -webkit-filter: invert(100%) | ||
275 | filter: invert(100%) | ||
diff --git a/template/ev.html.j2 b/template/ev.html.j2 index e4fb802c..31c580d9 100644 --- a/template/ev.html.j2 +++ b/template/ev.html.j2 | |||
@@ -26,7 +26,7 @@ | |||
26 | </div> | 26 | </div> |
27 | </div> | 27 | </div> |
28 | 28 | ||
29 | <div class="container adorn_h3_bracket"> | 29 | <div class="container"> |
30 | <div class="row"> | 30 | <div class="row"> |
31 | <div class="col-lg-6"> | 31 | <div class="col-lg-6"> |
32 | <h3>{{ _("Governance") }}</h3> | 32 | <h3>{{ _("Governance") }}</h3> |
diff --git a/template/gnurl.html.j2 b/template/gnurl.html.j2 index 006b8623..8834e967 100644 --- a/template/gnurl.html.j2 +++ b/template/gnurl.html.j2 | |||
@@ -118,7 +118,7 @@ | |||
118 | </article> | 118 | </article> |
119 | </div> | 119 | </div> |
120 | 120 | ||
121 | <div class="container adorn_h3_bracket"> | 121 | <div class="container"> |
122 | <div class="row"> | 122 | <div class="row"> |
123 | <div class="col-lg-6"> | 123 | <div class="col-lg-6"> |
124 | <h3>{{ _("Source Code") }}</h3> | 124 | <h3>{{ _("Source Code") }}</h3> |
diff --git a/template/index.html.j2 b/template/index.html.j2 index 54b8c662..23ba1001 100644 --- a/template/index.html.j2 +++ b/template/index.html.j2 | |||
@@ -1,14 +1,14 @@ | |||
1 | {% extends "common/base.j2" %} | 1 | {% extends "common/base.j2" %} |
2 | {% block body_content %} | 2 | {% block body_content %} |
3 | <!-- Jumbotron --> | 3 | <!-- Jumbotron --> |
4 | <div class="jumbotron dark"> | 4 | <div class="jumbotron bg-near-black"> |
5 | <div class="container dark"> | 5 | <div class="container bg-near-black"> |
6 | <div class="row"> | 6 | <div class="row bg-near-black"> |
7 | <div class="col-lg-6"> | 7 | <div class="col-lg-6"> |
8 | <center><img src="{{ url('static/images/gnunet-anonymous-logo.png') }}" alt="GNUnet" /></center> | 8 | <center><img src="{{ url('static/images/gnunet-anonymous-logo.png') }}" alt="GNUnet" /></center> |
9 | </div> | 9 | </div> |
10 | <div class="col-lg-6"> | 10 | <div class="col-lg-6 near-white bg-near-black"> |
11 | <p class="dark"> | 11 | <p> |
12 | {% trans %} | 12 | {% trans %} |
13 | GNUnet is a new network protocol stack for building secure, distributed, | 13 | GNUnet is a new network protocol stack for building secure, distributed, |
14 | and privacy-preserving applications. With strong roots in academic | 14 | and privacy-preserving applications. With strong roots in academic |
@@ -66,13 +66,13 @@ | |||
66 | </div> | 66 | </div> |
67 | </div> | 67 | </div> |
68 | 68 | ||
69 | <!--<article>--> | ||
70 | 69 | ||
71 | <div class="container-fluid adorn_h3_bracket c_acronym"> | 70 | |
71 | <div class="container-fluid c_acronym"> | ||
72 | <div class="container"> | 72 | <div class="container"> |
73 | <div class="row"> | 73 | <div class="row"> |
74 | <div class="container text-center"> | 74 | <div class="container text-center"> |
75 | <h2>{% trans %}The Internet of tomorrow needs GNUnet today{% endtrans %}</h2> | 75 | <h1>{% trans %}The Internet of tomorrow needs GNUnet today{% endtrans %}</h1> |
76 | </div> | 76 | </div> |
77 | </div> | 77 | </div> |
78 | <div class="row"> | 78 | <div class="row"> |
@@ -153,7 +153,8 @@ | |||
153 | which <a | 153 | which <a |
154 | href="https://www.freehaven.net/anonbib/cache/websitefingerprinting-pets2016.pdf">enables | 154 | href="https://www.freehaven.net/anonbib/cache/websitefingerprinting-pets2016.pdf">enables |
155 | reverse-engineering pages visited via website | 155 | reverse-engineering pages visited via website |
156 | fingerprinting</a>. --> | 156 | fingerprinting</a>. |
157 | --> | ||
157 | {% endtrans %} | 158 | {% endtrans %} |
158 | <p> | 159 | <p> |
159 | {% trans %} | 160 | {% trans %} |
@@ -192,35 +193,23 @@ | |||
192 | </div> | 193 | </div> |
193 | </div> | 194 | </div> |
194 | </div> | 195 | </div> |
195 | <!-- | 196 | </div> |
197 | |||
198 | |||
199 | |||
200 | <div class="container-fluid"> | ||
196 | <div class="container"> | 201 | <div class="container"> |
197 | <div class="row"> | 202 | <div class="row"> |
198 | <div class="container text-center bg-primary"> | 203 | <div class="container text-center"> |
199 | <h3> | 204 | <h1> |
200 | {% trans %} | 205 | {% trans %} |
201 | GNUnet aims to enable a secure and ethical Internet. | 206 | Featured Applications |
202 | {% endtrans %} | 207 | {% endtrans %} |
203 | </h3> | 208 | </h1> |
204 | </div> | 209 | </div> |
205 | </div> | 210 | </div> |
206 | </div> | 211 | <div class="row"> |
207 | //--> | 212 | <div class="col-lg-4"> |
208 | </div> | ||
209 | |||
210 | |||
211 | |||
212 | <div class="container adorn_h3_bracket"> | ||
213 | <div class="row"> | ||
214 | <div class="container text-center"> | ||
215 | <h2> | ||
216 | {% trans %} | ||
217 | Featured Applications | ||
218 | {% endtrans %} | ||
219 | </h2> | ||
220 | </div> | ||
221 | </div> | ||
222 | <div class="row"> | ||
223 | <div class="col-lg-4"> | ||
224 | <section> | 213 | <section> |
225 | <h3>{{ _("GNU Taler") }}</h3> | 214 | <h3>{{ _("GNU Taler") }}</h3> |
226 | <p> | 215 | <p> |
@@ -292,51 +281,56 @@ | |||
292 | </section> | 281 | </section> |
293 | </div> | 282 | </div> |
294 | </div> | 283 | </div> |
284 | </div> | ||
295 | </div> | 285 | </div> |
296 | 286 | ||
297 | <div class="container adorn_h3_bracket"> | 287 | <div class="container-fluid bg-dark text-white"> |
298 | <div class="row"> | 288 | <div class="container"> |
299 | <div class="container text-center"> | 289 | <div class="row bg-dark"> |
300 | <h2> | 290 | <div class="container bg-dark text-center"> |
301 | {% trans %} | 291 | <h1> |
302 | Upcoming Applications | 292 | {% trans %} |
303 | {% endtrans %} | 293 | Upcoming Applications |
304 | </h2> | 294 | {% endtrans %} |
305 | </div> | 295 | </h1> |
306 | <div class="col-lg-6"> | 296 | </div> |
307 | <section> | 297 | </div> |
308 | <h3>{{ _("secushare") }}</h3> | 298 | <div class="row"> |
309 | <p> | 299 | <div class="col-lg-4"> |
310 | {% trans %} | 300 | <section> |
311 | <a href="https://secushare.org/">secushare</a> | 301 | <h3>{{ _("secushare") }}</h3> |
312 | is creating a decentralized social networking | 302 | <p> |
313 | application on top of GNUnet. Using overlay | 303 | {% trans %} |
314 | multicast and the extensible PSYC protocol, notifications are | 304 | <a href="https://secushare.org/">secushare</a> |
315 | distributed end-to-end encrypted to authorized recipients only. | 305 | is creating a decentralized social networking |
316 | {% endtrans %} | 306 | application on top of GNUnet. Using overlay |
317 | </p> | 307 | multicast and the extensible PSYC protocol, notifications are |
318 | </section> | 308 | distributed end-to-end encrypted to authorized recipients only. |
319 | </div> | 309 | {% endtrans %} |
320 | <div class="col-lg-6"> | 310 | </p> |
321 | <section> | 311 | </section> |
322 | <h3>{{ _("pretty Easy privacy") }}</h3> | 312 | </div> |
323 | <p> | 313 | <div class="col-lg-4"> |
324 | {% trans %} | 314 | <section> |
325 | <a href="https://pep.foundation/">pretty Easy privacy</a> (p≡p) | 315 | <h3>{{ _("pretty Easy privacy") }}</h3> |
326 | is creating a usable end-to-end encrypted e-mail solution using | 316 | <p> |
327 | opportunistic key exchange. | 317 | {% trans %} |
328 | p≡p will use GNUnet to protect metadata and exploit new | 318 | <a href="https://pep.foundation/">pretty Easy privacy</a> (p≡p) |
329 | cryptographic protocols to verify keys. | 319 | is creating a usable end-to-end encrypted e-mail solution using |
330 | {% endtrans %} | 320 | opportunistic key exchange. |
331 | </p> | 321 | p≡p will use GNUnet to protect metadata and exploit new |
332 | </section> | 322 | cryptographic protocols to verify keys. |
323 | {% endtrans %} | ||
324 | </p> | ||
325 | </section> | ||
326 | </div> | ||
327 | </div> | ||
333 | </div> | 328 | </div> |
334 | </div> | ||
335 | </div> | 329 | </div> |
336 | 330 | ||
337 | <!--</article>--> | ||
338 | 331 | ||
339 | <div class="container adorn_h3_bracket"> | 332 | |
333 | <div class="container"> | ||
340 | <div class="row"> | 334 | <div class="row"> |
341 | <div class="container text-center"> | 335 | <div class="container text-center"> |
342 | <h2>{{ _("News") }}</h2> | 336 | <h2>{{ _("News") }}</h2> |
diff --git a/template/video.html.j2 b/template/video.html.j2 index 8198d3d4..fbfa1b6f 100644 --- a/template/video.html.j2 +++ b/template/video.html.j2 | |||
@@ -1,7 +1,7 @@ | |||
1 | {% extends "common/base.j2" %} | 1 | {% extends "common/base.j2" %} |
2 | {% block body_content %} | 2 | {% block body_content %} |
3 | <div class="container adorn_h3_bracket"> | 3 | <div class="container"> |
4 | <div class="container adorn_h3_bracket"> | 4 | <div class="container"> |
5 | <div class="container"> | 5 | <div class="container"> |
6 | <div class="text-center"> | 6 | <div class="text-center"> |
7 | <header> | 7 | <header> |