From 05b93288885f085c04bc1fcfeb67f98fffafa7c9 Mon Sep 17 00:00:00 2001 From: Lephe Date: Sat, 30 Mar 2019 22:37:57 +0100 Subject: [PATCH 1/3] minor code and style edits --- app/forms/account.py | 14 +++++++------- app/routes/admin.py | 11 ++++++++--- app/static/css/container.css | 2 +- app/static/css/form.css | 16 +++++++++------- app/static/css/global.css | 3 ++- app/static/css/light.css | 5 +++-- app/static/css/navbar.css | 2 +- app/static/css/responsive.css | 18 +++++------------- app/static/css/table.css | 2 +- app/templates/base/footer.html | 3 +-- app/utils/validators.py | 5 +++-- 11 files changed, 41 insertions(+), 40 deletions(-) diff --git a/app/forms/account.py b/app/forms/account.py index f965237..8e7671e 100644 --- a/app/forms/account.py +++ b/app/forms/account.py @@ -6,7 +6,7 @@ from flask_wtf.file import FileField # Cuz' wtforms' FileField is shitty import app.utils.validators as vd class RegistrationForm(FlaskForm): - username = StringField('Pseudonyme', validators=[DataRequired(), vd.name]) + username = StringField('Pseudonyme', validators=[DataRequired(), vd.name_valid, vd.name_available]) email = StringField('Adresse Email', validators=[DataRequired(), Email(), vd.email]) password = PasswordField('Mot de passe', validators=[DataRequired(), vd.password]) password2 = PasswordField('Répéter le mot de passe', validators=[DataRequired(), EqualTo('password')]) @@ -16,8 +16,8 @@ class RegistrationForm(FlaskForm): class UpdateAccountForm(FlaskForm): avatar = FileField('Avatar', validators=[Optional(), vd.avatar]) - email = StringField('Adresse Email', validators=[Optional(), Email(), vd.email, vd.old_password]) - password = PasswordField('Mot de passe :', validators=[Optional(), vd.password, vd.old_password]) + email = StringField('Adresse email', validators=[Optional(), Email(), vd.email, vd.old_password]) + password = PasswordField('Mot de passe', validators=[Optional(), vd.password, vd.old_password]) password2 = PasswordField('Répéter le mot de passe', validators=[Optional(), EqualTo('password')]) old_password = PasswordField('Mot de passe actuel', validators=[Optional()]) birthday = DateField('Anniversaire', validators=[Optional()]) @@ -33,10 +33,10 @@ class DeleteAccountForm(FlaskForm): class AdminUpdateAccountForm(FlaskForm): - username = StringField('Pseudonyme', validators=[DataRequired(), vd.name]) + username = StringField('Pseudonyme', validators=[Optional(), vd.name_valid]) avatar = FileField('Avatar', validators=[Optional(), vd.avatar]) - email = StringField('Adresse Email', validators=[Optional(), Email(), vd.email]) - password = PasswordField('Mot de passe :', validators=[Optional(), vd.password]) + email = StringField('Adresse email', validators=[Optional(), Email(), vd.email]) + password = PasswordField('Mot de passe', validators=[Optional(), vd.password]) xp = DecimalField('XP', validators=[Optional()]) innovation = DecimalField('Innovation', validators=[Optional()]) birthday = DateField('Anniversaire', validators=[Optional()]) @@ -47,4 +47,4 @@ class AdminUpdateAccountForm(FlaskForm): class AdminDeleteAccountForm(FlaskForm): delete = BooleanField('Confirmer la suppression', validators=[DataRequired()], description='Attention, cette opération est irréversible !') - submit = SubmitField('Supprimer le compte') \ No newline at end of file + submit = SubmitField('Supprimer le compte') diff --git a/app/routes/admin.py b/app/routes/admin.py index 24a8b1f..f21b8a6 100644 --- a/app/routes/admin.py +++ b/app/routes/admin.py @@ -73,21 +73,26 @@ def adm_groups(): users = Member.query.all() groups = Group.query.all() + return render('admin/groups_privileges.html', users=users, groups=groups, form=form) @app.route('/admin/edit-account/', methods=['GET', 'POST']) @priv_required('edit-account') def adm_edit_account(user_id): - user = Member.query.filter_by(id=user_id).first() - if not user: - abort(404) + user = Member.query.filter_by(id=user_id).first_or_404() + form = AdminUpdateAccountForm() if request.method == "POST": if form.validate_on_submit(): if form.avatar.data: f = form.avatar.data f.save("./app/static/"+user.avatar) + + newname = form.username.data + names = list(Member.query.filter(Member.id != user.id).values(Member.name)) + if newname in names: + raise Exception(f'{data["name"]} is not available') user.update( name = form.username.data or None, email = form.email.data or None, diff --git a/app/static/css/container.css b/app/static/css/container.css index ac88958..cc03686 100644 --- a/app/static/css/container.css +++ b/app/static/css/container.css @@ -24,6 +24,6 @@ section h2 { section .avatar { display: block; - border-radius: 100%; + border-radius: 2px; width: 150px; height: 150px; } diff --git a/app/static/css/form.css b/app/static/css/form.css index 1915d99..e39ebb2 100644 --- a/app/static/css/form.css +++ b/app/static/css/form.css @@ -1,11 +1,9 @@ .form .avatar { - display: inline-block; vertical-align: middle; - border-radius: 100%; width: 150px; height: 150px; } .form .avatar + input[type="file"] { - display: inline-block; margin-left: 20px; + margin: 16px 0 0 0; vertical-align: middle; } @@ -28,15 +26,19 @@ .form input[type='password'], .form textarea { display: block; - width: 100%; padding: 6px 2.5%; - border: 1px solid #abcdef; + width: 100%; padding: 6px 8px; + border: 1px solid #c0c0c0; + + /* Transitions when resizing with the mouse produces apparent lag */ + transition: all .15s ease, width 0s, height 0s; } .form input[type='text']:focus, .form input[type='email']:focus, .form input[type='date']:focus, .form input[type='password']:focus, .form textarea:focus { - box-shadow: 0 0 4px rgba(0, 102, 255, .9); + border-color: #91bfef; + box-shadow: 0 0 0 3px rgba(87, 143, 228, 0.42); } .form input[type="submit"] { @@ -47,4 +49,4 @@ color: red; font-weight: 400; margin-top: 5px; -} \ No newline at end of file +} diff --git a/app/static/css/global.css b/app/static/css/global.css index 7912e14..fc8fbe7 100644 --- a/app/static/css/global.css +++ b/app/static/css/global.css @@ -10,6 +10,8 @@ * { box-sizing: border-box; + /* This transition value is replicated everywhere transitions are customized, + make sure to track them when editing */ transition: .15s ease; } @@ -71,7 +73,6 @@ input[type="submit"] { padding: 6px 10px; border-radius: 2px; cursor: pointer; font-family: 'DejaVu Sans', sans-serif; font-weight: 400; - cursor: pointer; } input[type="button"]:hover, input[type="submit"]:hover, diff --git a/app/static/css/light.css b/app/static/css/light.css index 3ff5693..05a073f 100644 --- a/app/static/css/light.css +++ b/app/static/css/light.css @@ -134,7 +134,7 @@ margin: 5px 0; } -@media all and (max-width: 550px) { +@media all and (max-width: 549px) { #light-menu, #spacer-menu { height: 40px; } @@ -188,7 +188,8 @@ header { } section { - margin: 10px; + width: unset; + margin: 16px; } .home-title { padding: 10px; diff --git a/app/static/css/navbar.css b/app/static/css/navbar.css index e039c6a..a6c878c 100644 --- a/app/static/css/navbar.css +++ b/app/static/css/navbar.css @@ -143,7 +143,7 @@ nav a:focus { width: 42px; vertical-align: middle; } #menu h2 img { - width: 64px; border-radius: 50%; vertical-align: middle; margin-right: 10px; + width: 64px; border-radius: 2px; vertical-align: middle; margin-right: 10px; } #menu h2 a:hover, #menu h2 a:focus { diff --git a/app/static/css/responsive.css b/app/static/css/responsive.css index 016960e..e30cd45 100644 --- a/app/static/css/responsive.css +++ b/app/static/css/responsive.css @@ -1,28 +1,20 @@ -/* - Responsives rules -*/ - @media all and (max-width: 1399px) { - body { + body, input { font-size: 13px; } - /*header form { - border-bottom: 1px solid #adb0b4; - }*/ header input[type="search"] { font-size: 14px; } #menu li { - font-size: 10px; + font-size: 10px; } #menu a { font-size: 13px; } } - @media all and (min-width: 1400px) { body, input { font-size: 13px; @@ -40,13 +32,13 @@ } } - -@media screen and (max-width: 1100px) { +@media screen and (max-width: 1099px) { .home-pinned-content article:nth-child(5) { display: none; } } -@media screen and (max-width: 800px) { + +@media screen and (max-width: 799px) { .home-pinned-content article:nth-child(4) { display: none; } diff --git a/app/static/css/table.css b/app/static/css/table.css index 5deaa26..56016ac 100644 --- a/app/static/css/table.css +++ b/app/static/css/table.css @@ -12,7 +12,7 @@ table th { border-color: #d0d0d0; border-style: solid; border-width: 1px 0; - padding: 2px; + padding: 2px 6px; } table td { padding: 4px 6px; diff --git a/app/templates/base/footer.html b/app/templates/base/footer.html index c7cb38d..d7a8eb1 100644 --- a/app/templates/base/footer.html +++ b/app/templates/base/footer.html @@ -1,5 +1,4 @@
-

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.

+

Planète Casio est un site communautaire non affilié à CASIO. Toute reproduction de Planète Casio, même partielle, est interdite.

Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou des copyrights.

-

CASIO est une marque déposée par CASIO Computer Co., Ltd.

diff --git a/app/utils/validators.py b/app/utils/validators.py index 7a34e5c..6341ad4 100644 --- a/app/utils/validators.py +++ b/app/utils/validators.py @@ -2,10 +2,11 @@ from flask_login import current_user from wtforms.validators import ValidationError from app.models.users import User, Member -def name(form, name): +def name_valid(form, name): if not User.valid_name(name.data): raise ValidationError("Nom d'utilisateur invalide.") - # last check: do not ask db if useless + +def name_available(form, name): member = Member.query.filter_by(name=name.data).first() if member is not None: raise ValidationError('Pseudo indisponible.') From b3ffd132f98dc189c30dac6b918b9e49d0014e8e Mon Sep 17 00:00:00 2001 From: Lephe Date: Sun, 31 Mar 2019 09:40:33 +0200 Subject: [PATCH 2/3] style: minor changes, leave Raleway --- app/static/css/container.css | 2 +- app/static/css/form.css | 2 +- app/static/css/global.css | 2 -- app/static/css/light.css | 21 ++------------------- app/static/css/navbar.css | 6 +++--- app/static/fonts/raleway_200.ttf | Bin 122400 -> 0 bytes app/static/fonts/raleway_300.ttf | Bin 64528 -> 0 bytes app/templates/base/navbar/account.html | 22 +++++++--------------- app/templates/base/navbar/programs.html | 18 ++++++------------ app/templates/base/navbar/tools.html | 12 ++++-------- app/templates/user.html | 9 +++++++-- 11 files changed, 31 insertions(+), 63 deletions(-) delete mode 100644 app/static/fonts/raleway_200.ttf delete mode 100644 app/static/fonts/raleway_300.ttf diff --git a/app/static/css/container.css b/app/static/css/container.css index cc03686..fa65d7e 100644 --- a/app/static/css/container.css +++ b/app/static/css/container.css @@ -25,5 +25,5 @@ section h2 { section .avatar { display: block; border-radius: 2px; - width: 150px; height: 150px; + width: 128px; height: 128px; } diff --git a/app/static/css/form.css b/app/static/css/form.css index e39ebb2..791cb44 100644 --- a/app/static/css/form.css +++ b/app/static/css/form.css @@ -1,5 +1,5 @@ .form .avatar { - width: 150px; height: 150px; + width: 128px; height: 128px; } .form .avatar + input[type="file"] { diff --git a/app/static/css/global.css b/app/static/css/global.css index fc8fbe7..6deb3bb 100644 --- a/app/static/css/global.css +++ b/app/static/css/global.css @@ -1,8 +1,6 @@ /* Fonts */ @font-face { font-family: NotoSans; src: url(../fonts/noto_sans.ttf); } -@font-face { font-family: Raleway; font-weight: 200; src: url(../fonts/raleway_200.ttf); } -@font-face { font-family: Raleway; font-weight: 300; src: url(../fonts/raleway_300.ttf); } @font-face { font-family: Cantarell; font-weight: normal; src: url(../fonts/Cantarell-Regular.otf); } @font-face { font-family: Cantarell; font-weight: bold; src: url(../fonts/Cantarell-Bold.otf); } diff --git a/app/static/css/light.css b/app/static/css/light.css index 05a073f..3529828 100644 --- a/app/static/css/light.css +++ b/app/static/css/light.css @@ -82,26 +82,17 @@ } #menu h2 { margin: 10px 0 10px 40px; - font-family: Raleway; font-size: 15px; - color: #ffffff; + font-size: 15px; } #menu h2 > svg { - width: 30px; vertical-align: middle; -} -#menu h2 > img { - width: 64px; margin-right: 10px; - vertical-align: middle; border-radius: 50%; + width: 30px; } #menu h3 { margin: 10px 0 10px 40px; - font-family: Raleway; font-size: 13px; - color: #ffffff; } #menu hr { margin: 10px 15px 0 15px; - border: none; - border-bottom: 1px solid rgba(0, 0, 0, .15); } #menu > div > a, @@ -117,14 +108,6 @@ margin: 0; font-style: normal; font-size: 12px; } -#menu a > img { - vertical-align: middle; - margin-right: 15px; -} -#menu a > svg { - width: 20px; height: 20px; vertical-align: middle; - margin-right: 10px; -} #menu ul { list-style: none; margin: 10px 15px; padding: 0; diff --git a/app/static/css/navbar.css b/app/static/css/navbar.css index a6c878c..7288ee0 100644 --- a/app/static/css/navbar.css +++ b/app/static/css/navbar.css @@ -129,7 +129,7 @@ nav a:focus { #menu h2 { margin: 5% 0 20px 40px; - font-family: Raleway; font-size: 18px; + font-family: Cantarell; font-weight: normal; font-size: 19px; color: #ffffff; } #menu h2 a { @@ -140,7 +140,7 @@ nav a:focus { font-size: inherit; opacity: inherit; } #menu h2 > svg { - width: 42px; vertical-align: middle; + width: 42px; vertical-align: middle; margin-right: 8px; } #menu h2 img { width: 64px; border-radius: 2px; vertical-align: middle; margin-right: 10px; @@ -152,7 +152,7 @@ nav a:focus { #menu h3 { margin: 20px 0 20px 40px; - font-family: Raleway; font-size: 14px; + font-family: Cantarell; font-weight: normal; font-size: 15px; color: #ffffff; } #menu hr { diff --git a/app/static/fonts/raleway_200.ttf b/app/static/fonts/raleway_200.ttf deleted file mode 100644 index 281a001983af7cd405be32acea233c22d3ebb00f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122400 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 diff --git a/app/static/fonts/raleway_300.ttf b/app/static/fonts/raleway_300.ttf deleted file mode 100644 index 9ff67e747834eedac9d19c3bf31ed5197a82c78e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64528 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 Y - - Notifications + Notifications - - Trophées + Trophées - - Topics favoris + Topics favoris - - Panel d'administration + Panel d'administration


@@ -36,21 +32,17 @@ - - Paramètres + Paramètres - - Déconnexion + Déconnexion {% else %}
-

- Invité -

+

Invité

diff --git a/app/templates/user.html b/app/templates/user.html index 8f01820..e1cc82a 100644 --- a/app/templates/user.html +++ b/app/templates/user.html @@ -1,9 +1,14 @@ {% extends "base/base.html" %} +{% block title %} +

Profil de '{{ user.name }}'

+{% endblock %} + {% block content %}
-

+
{{ user.name }} - Profil de {{ user.name }}

+ {{ user.name }} +
{% endblock %} From 9291855c871f63348c0fba49bbdbdb8959bc97b9 Mon Sep 17 00:00:00 2001 From: Lephe Date: Sun, 31 Mar 2019 12:17:55 +0200 Subject: [PATCH 3/3] style: improvements on forms and responsiveness --- app/forms/login.py | 8 ++--- app/static/css/container.css | 1 - app/static/css/form.css | 11 ++++-- app/static/css/global.css | 4 +-- app/static/css/header.css | 41 +++++++++++---------- app/static/css/light.css | 21 +++-------- app/static/css/navbar.css | 48 ++++++++++--------------- app/static/css/responsive.css | 11 +++--- app/templates/account.html | 6 ++-- app/templates/base/header.html | 12 +------ app/templates/base/navbar/account.html | 10 +++--- app/templates/base/navbar/programs.html | 4 --- 12 files changed, 79 insertions(+), 98 deletions(-) diff --git a/app/forms/login.py b/app/forms/login.py index 2f49f7c..d8dad8e 100644 --- a/app/forms/login.py +++ b/app/forms/login.py @@ -3,7 +3,7 @@ from wtforms import StringField, PasswordField, BooleanField, SubmitField from wtforms.validators import DataRequired class LoginForm(FlaskForm): - username = StringField('Pseudonyme :', validators=[DataRequired()]) - password = PasswordField('Mot de passe :', validators=[DataRequired()]) - remember_me = BooleanField('Se souvenir de moi :') - submit = SubmitField('Connexion') \ No newline at end of file + username = StringField('Identifiant', validators=[DataRequired()]) + password = PasswordField('Mot de passe', validators=[DataRequired()]) + remember_me = BooleanField('Se souvenir de moi') + submit = SubmitField('Connexion') diff --git a/app/static/css/container.css b/app/static/css/container.css index fa65d7e..d395d09 100644 --- a/app/static/css/container.css +++ b/app/static/css/container.css @@ -24,6 +24,5 @@ section h2 { section .avatar { display: block; - border-radius: 2px; width: 128px; height: 128px; } diff --git a/app/static/css/form.css b/app/static/css/form.css index 791cb44..f7bcb8d 100644 --- a/app/static/css/form.css +++ b/app/static/css/form.css @@ -24,10 +24,11 @@ .form input[type='email'], .form input[type='date'], .form input[type='password'], +.form input[type='search'], .form textarea { display: block; width: 100%; padding: 6px 8px; - border: 1px solid #c0c0c0; + border: 1px solid #c8c8c8; /* Transitions when resizing with the mouse produces apparent lag */ transition: all .15s ease, width 0s, height 0s; @@ -36,9 +37,15 @@ .form input[type='email']:focus, .form input[type='date']:focus, .form input[type='password']:focus, +.form input[type='search']:focus, .form textarea:focus { border-color: #91bfef; - box-shadow: 0 0 0 3px rgba(87, 143, 228, 0.42); + box-shadow: 0 0 0 3px rgba(87, 143, 228, 0.4); +} + +.form textarea { + max-width: 100%; + resize: vertical; } .form input[type="submit"] { diff --git a/app/static/css/global.css b/app/static/css/global.css index 6deb3bb..3cc059a 100644 --- a/app/static/css/global.css +++ b/app/static/css/global.css @@ -32,11 +32,11 @@ a:focus { outline: none; } -p { +section p { line-height: 20px; } -ul { +section ul { line-height: 24px; } diff --git a/app/static/css/header.css b/app/static/css/header.css index e694515..126ba0c 100644 --- a/app/static/css/header.css +++ b/app/static/css/header.css @@ -8,14 +8,24 @@ header { display: flex; align-items: center; justify-content: space-between; flex-flow: row wrap; + + /* When the search field occupies the rightmost position, the calculated + position of the svg icon (on the right) might overflow from the header and + induce horizontal scrolling. */ + overflow: hidden; } -@media screen and (max-width: 1000px) { - header { - height: 75px; - } - header .title { - page-break-after: always; - } +@media screen and (max-width: 1199px) { + #spotlight { + display: none; + } + header input[type="search"] { + width: 200px; + } +} +@media screen and (max-width: 849px) { + header .form { + display: none; + } } header .title a { @@ -46,30 +56,25 @@ header a { cursor: pointer; } -header form { +header .form { /* The search icon is draws inside the input field but its space is allocated on the right. Apply a negative margin to compensate this: -24px for the search icon -2px for the spacing between the search icon and the field */ margin-right: -26px; } -header input[type="search"] { +header .form input[type="search"] { display: inline-block; width: 250px; padding: 5px 35px 5px 10px; - border: 0; border-radius: 1px; - font-family: "Segoe UI", Helvetica, "Droid Sans", Arial,sans-serif; - box-shadow: 0 0 1px rgba(0, 0, 0, .4); transition: .15s ease; + border-color: #d8d8d8; } -header input[type="search"] ~ a { +header .form input[type="search"] ~ a { position: relative; left: -33px; } -header input[type="search"]:focus { - box-shadow: 0 0 4px rgba(0, 102, 255, .9); -} -header input[type="search"] ~ a > svg > path { +header .form input[type="search"] ~ a > svg > path { fill: #cccccc; transition: .15s ease; } -header input[type="search"]:focus ~ a > svg > path { +header .form input[type="search"]:focus ~ a > svg > path { fill: #333333; } diff --git a/app/static/css/light.css b/app/static/css/light.css index 3529828..a59aea3 100644 --- a/app/static/css/light.css +++ b/app/static/css/light.css @@ -66,7 +66,6 @@ #menu { width: 100%; height: 0; overflow-x: hidden; font-family: NotoSans; font-size: 12px; - background: #22292c; box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); transition: .1s ease; position: unset; left: unset; @@ -81,26 +80,15 @@ width: 100%; } #menu h2 { - margin: 10px 0 10px 40px; font-size: 15px; } #menu h2 > svg { - width: 30px; + width: 24px; } -#menu h3 { - margin: 10px 0 10px 40px; -} -#menu hr { - margin: 10px 15px 0 15px; -} - -#menu > div > a, #menu span { - display: block; margin: 10px 15px; -} -#menu span { - /*font-style: italic;*/ color: #b8b8b8; + display: block; + color: #b8b8b8; font-size: 10px; } #menu span > a { @@ -110,7 +98,8 @@ } #menu ul { list-style: none; - margin: 10px 15px; padding: 0; + margin: 10px 0; padding: 0; + line-height: 20px; color: #b8b8b8; } #menu li { diff --git a/app/static/css/navbar.css b/app/static/css/navbar.css index 7288ee0..51020ac 100644 --- a/app/static/css/navbar.css +++ b/app/static/css/navbar.css @@ -94,8 +94,7 @@ nav a:focus { left: -240px; width: 300px; /* left-to-right animation */ /*left: 60px; width: 0;*/ /* scroll animation */ height: 100%; overflow-x: hidden; overflow-y: auto; - font-family: NotoSans; font-size: 14px; - background: #22292c; box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); + background: #1c2124; box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); transition: .15s ease; } @@ -121,6 +120,7 @@ nav a:focus { #menu > div { width: 300px; + padding: 16px; display: none; } #menu > div.opened { @@ -128,22 +128,20 @@ nav a:focus { } #menu h2 { - margin: 5% 0 20px 40px; - font-family: Cantarell; font-weight: normal; font-size: 19px; + margin: 0 0 20px 0; + font-family: Cantarell; font-weight: bold; font-size: 18px; color: #ffffff; + display: flex; align-items: center; } #menu h2 a { margin: 0; - display: flex; - flex-direction: row; - align-items: center; font-size: inherit; opacity: inherit; } #menu h2 > svg { - width: 42px; vertical-align: middle; margin-right: 8px; + width: 32px; vertical-align: middle; margin-right: 8px; } #menu h2 img { - width: 64px; border-radius: 2px; vertical-align: middle; margin-right: 10px; + height: 48px; vertical-align: middle; margin-right: 10px; } #menu h2 a:hover, #menu h2 a:focus { @@ -151,14 +149,14 @@ nav a:focus { } #menu h3 { - margin: 20px 0 20px 40px; - font-family: Cantarell; font-weight: normal; font-size: 15px; + margin: 16px 0; + font-family: Cantarell; font-weight: bold; font-size: 15px; color: #ffffff; } #menu hr { - margin: 15px; + margin: 15px 0; border: none; - border-bottom: 1px solid rgba(0, 0, 0, .15); + border-bottom: 1px solid rgba(255, 255, 255, 0.1); } #menu ul { @@ -166,7 +164,7 @@ nav a:focus { } #menu a, #menu li { - display: block; margin: 10px 15px; + display: block; margin: 10px 0; transition: opacity .15s ease; } #menu li { @@ -175,6 +173,7 @@ nav a:focus { #menu li > a { display: inline; margin: 0; font-style: normal; + font-size: 13px; } #menu a > img { vertical-align: middle; @@ -186,32 +185,23 @@ nav a:focus { } #menu form { - padding: 0 5%; + padding: 0 8%; } #menu form input[type="text"], #menu form input[type="password"] { - display: block; width: 100%; - margin: 0; padding: 5px 2%; + margin: 3px 0 8px 0; padding: 5px 2%; font-size: 14px; color: inherit; - background: #e8e8e8; transition: background .15s ease; - border: none; + border-color: #141719; } #menu form input[type="text"]:focus, #menu form input[type="password"]:focus { background: #ffffff; -} -#menu form input[type="text"] { - border-top-left-radius: 5px; - border-top-right-radius: 5px; -} -#menu form input[type="password"] { - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; + box-shadow: 0 0 0 3px rgba(87, 143, 228, 0.6); + border-color: #2d4b5f; } #menu form input[type="submit"] { width: 100%; - margin-top: 10px; margin-bottom: 5px; - border-radius: 5px; + margin: 16px 0 5px 0; } #menu form label { font-size: 13px; color: #FFFFFF; opacity: .7; diff --git a/app/static/css/responsive.css b/app/static/css/responsive.css index e30cd45..3886763 100644 --- a/app/static/css/responsive.css +++ b/app/static/css/responsive.css @@ -27,18 +27,19 @@ #menu li { font-size: 11px; } - #menu a { - font-size: 14px; - } } -@media screen and (max-width: 1099px) { +@media screen and (max-width: 1199px) { .home-pinned-content article:nth-child(5) { display: none; } + + section { + width: 90%; + } } -@media screen and (max-width: 799px) { +@media screen and (max-width: 849px) { .home-pinned-content article:nth-child(4) { display: none; } diff --git a/app/templates/account.html b/app/templates/account.html index 4e00ae3..603ca48 100644 --- a/app/templates/account.html +++ b/app/templates/account.html @@ -1,9 +1,11 @@ {% extends "base/base.html" %} +{% block title %} +

Gestion du compte

+{% endblock %} + {% block content %}
-

Gestion du compte

- {{ form.hidden_tag() }} diff --git a/app/templates/base/header.html b/app/templates/base/header.html index 5c59cfc..9036196 100644 --- a/app/templates/base/header.html +++ b/app/templates/base/header.html @@ -1,5 +1,5 @@
- + @@ -8,16 +8,6 @@ -{% if current_user.is_authenticated %} - -{% endif %} - diff --git a/app/templates/base/navbar/account.html b/app/templates/base/navbar/account.html index 1d5bb53..50bb3ae 100644 --- a/app/templates/base/navbar/account.html +++ b/app/templates/base/navbar/account.html @@ -2,9 +2,9 @@