Compare commits

..

2 commits

Author SHA1 Message Date
Halfdan 0af7ee3dd0 New login page 2023-10-04 12:26:20 +02:00
Halfdan 03d996cee9 Adding Inter font 2023-10-04 12:25:59 +02:00
48 changed files with 405 additions and 149 deletions

View file

@ -7,7 +7,7 @@
{% block content %} {% block content %}
<div class="view-list"> <div class="content-view">
<h2>Membership settings</h2> <h2>Membership settings</h2>
{% if not current_membership %} {% if not current_membership %}
<p>{% trans "You do not have an active membership!" %}</p> <p>{% trans "You do not have an active membership!" %}</p>
@ -28,7 +28,7 @@
{% endif %} {% endif %}
</div> </div>
<div class="view-list"> <div class="content-view">
<h2>Profile settings</h2> <h2>Profile settings</h2>
<form> <form>
<div> <div>

View file

@ -1,4 +1,4 @@
/* Start reset */ /* Reset */
*, *::before, *::after { *, *::before, *::after {
box-sizing: border-box; box-sizing: border-box;
} }
@ -23,16 +23,17 @@ p, h1, h2, h3, h4, h5, h6 {
} }
/* Variables */ /* Variables */
:root { :root {
/* Colors */ /* Colors */
--light : #fff; --light : #fff;
--light-dust : #fcfcfc; --light-dust : #fcfcfc;
--dust : #f1f1f1; --dust : #f1f1f1;
--dark-dust : #bfbfbf; --dark-dust : #bfbfbf;
--twilight : #404040; --fade : #878787;
--twilight : #3c3c3c;
--dark : #2a2a2a; --dark : #2a2a2a;
--custard : #f0dcac; --custard : #f0dcac;
--water : #a8f3f4;
--splash : #4b3aba; --splash : #4b3aba;
/* Sizes */ /* Sizes */
@ -49,11 +50,26 @@ p, h1, h2, h3, h4, h5, h6 {
} }
} }
html, body {
height : 100%;
}
h1, h2, h3, h4, h5, h6 {
font-weight : 600;
color : var(--twilight);
}
a {
font-weight : 500;
}
body { body {
margin : 0; margin : 0;
padding : 0; padding : 0;
background : var(--custard); background : var(--custard);
font-family : sans-serif; font-family : Inter;
font-weight : 400;
line-height : 1.6;
color : var(--dark); color : var(--dark);
} }
@ -116,7 +132,8 @@ aside > div > dl > dt {
clear : left; clear : left;
margin : 0 var(--double-space) 0 0; margin : 0 var(--double-space) 0 0;
width : 180px; width : 180px;
font-weight : bold; font-weight : 600;
color : var(--twilight);
} }
nav { nav {
@ -146,6 +163,8 @@ nav > ol > li > a {
text-decoration : none; text-decoration : none;
color : var(--dark); color : var(--dark);
cursor : pointer; cursor : pointer;
font-weight : 500;
letter-spacing : 0.04em;
} }
nav > ol > li:first-child > a { nav > ol > li:first-child > a {
@ -172,7 +191,7 @@ article > div {
margin-bottom : var(--double-space); margin-bottom : var(--double-space);
} }
div.view-list > h2 { div.content-view > h2 {
margin : 0 0 var(--double-space) 0; margin : 0 0 var(--double-space) 0;
} }
@ -183,7 +202,8 @@ div.services {
flex-wrap: wrap; flex-wrap: wrap;
} }
div.services > div { div.services > div,
div.infobox {
background : var(--light); background : var(--light);
padding : var(--double-space); padding : var(--double-space);
border-radius : 6px; border-radius : 6px;
@ -205,21 +225,29 @@ div.services > div > div.description {
margin-bottom : var(--double-space); margin-bottom : var(--double-space);
} }
div.services > div > div.description > p {
margin-top : var(--half-space);
}
div.services > div > a, div.services > div > a,
a.button,
button { button {
display : block;
color : var(--light); color : var(--light);
background : var(--splash); background : var(--splash);
padding : 6px 12px; padding : var(--space) var(--double-space);
border-radius : 3px; border-radius : 3px;
opacity : 0.9; opacity : 0.9;
cursor : pointer; cursor : pointer;
text-align : center; text-align : center;
border : 0; border : 0;
font-weight : bold; font-weight : 600;
letter-spacing : 0.03em;
text-decoration : none;
} }
div.services > div > a:hover, div.services > div > a:hover,
a.button:hover,
button:hover { button:hover {
opacity : 1.0; opacity : 1.0;
} }
@ -233,7 +261,8 @@ form > div >label {
margin : 0 0 6px; margin : 0 0 6px;
} }
form > div > input[type="text"] { form > div > input[type="text"],
form > div > input[type="password"] {
border : 1px solid var(--twilight); border : 1px solid var(--twilight);
border-radius : 3px; border-radius : 3px;
padding : 6px 12px; padding : 6px 12px;
@ -241,6 +270,68 @@ form > div > input[type="text"] {
width : 100%; width : 100%;
} }
#login {
height : 100%;
display : flex;
align-items : center;
justify-content : center;
}
#loginbox {
border-radius : var(--space);
background : var(--dust);
border : 6px solid white;
width : 800px;
height : 500px;
display : flex;
flex-flow : row;
//justify-content : space-between;
}
#loginbox > div {
padding : var(--double-space);
flex : 1;
}
#loginbox label {
color : var(--twilight);
}
#loginbox > div.login {
display: flex;
flex-flow: column;
justify-content: space-between;
}
#loginbox > div.signup {
border-radius : 0 var(--space) var(--space) 0;
background : var(--water);
display: flex;
flex-flow: column;
align-items: center;
}
#loginbox > div:last-child > * {
flex : 1;
}
#loginbox div.new_here {
margin-top : var(--double-space);
}
#loginbox div.new_here h2 {
margin: var(--double-space) 0;
}
#loginbox button {
width : 100%;
}
#loginbox img {
padding : 0 var(--double-space);
}
footer { footer {
position : fixed; position : fixed;
bottom : 0; bottom : 0;
@ -254,5 +345,5 @@ footer {
} }
span.time_remaining { span.time_remaining {
opacity : 0.6; color : var(--fade);
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,200 @@
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 100;
font-display: swap;
src: url("Inter-Thin.woff2?v=3.19") format("woff2"),
url("Inter-Thin.woff?v=3.19") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 100;
font-display: swap;
src: url("Inter-ThinItalic.woff2?v=3.19") format("woff2"),
url("Inter-ThinItalic.woff?v=3.19") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 200;
font-display: swap;
src: url("Inter-ExtraLight.woff2?v=3.19") format("woff2"),
url("Inter-ExtraLight.woff?v=3.19") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 200;
font-display: swap;
src: url("Inter-ExtraLightItalic.woff2?v=3.19") format("woff2"),
url("Inter-ExtraLightItalic.woff?v=3.19") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 300;
font-display: swap;
src: url("Inter-Light.woff2?v=3.19") format("woff2"),
url("Inter-Light.woff?v=3.19") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 300;
font-display: swap;
src: url("Inter-LightItalic.woff2?v=3.19") format("woff2"),
url("Inter-LightItalic.woff?v=3.19") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("Inter-Regular.woff2?v=3.19") format("woff2"),
url("Inter-Regular.woff?v=3.19") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 400;
font-display: swap;
src: url("Inter-Italic.woff2?v=3.19") format("woff2"),
url("Inter-Italic.woff?v=3.19") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 500;
font-display: swap;
src: url("Inter-Medium.woff2?v=3.19") format("woff2"),
url("Inter-Medium.woff?v=3.19") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 500;
font-display: swap;
src: url("Inter-MediumItalic.woff2?v=3.19") format("woff2"),
url("Inter-MediumItalic.woff?v=3.19") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url("Inter-SemiBold.woff2?v=3.19") format("woff2"),
url("Inter-SemiBold.woff?v=3.19") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 600;
font-display: swap;
src: url("Inter-SemiBoldItalic.woff2?v=3.19") format("woff2"),
url("Inter-SemiBoldItalic.woff?v=3.19") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url("Inter-Bold.woff2?v=3.19") format("woff2"),
url("Inter-Bold.woff?v=3.19") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 700;
font-display: swap;
src: url("Inter-BoldItalic.woff2?v=3.19") format("woff2"),
url("Inter-BoldItalic.woff?v=3.19") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 800;
font-display: swap;
src: url("Inter-ExtraBold.woff2?v=3.19") format("woff2"),
url("Inter-ExtraBold.woff?v=3.19") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 800;
font-display: swap;
src: url("Inter-ExtraBoldItalic.woff2?v=3.19") format("woff2"),
url("Inter-ExtraBoldItalic.woff?v=3.19") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 900;
font-display: swap;
src: url("Inter-Black.woff2?v=3.19") format("woff2"),
url("Inter-Black.woff?v=3.19") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 900;
font-display: swap;
src: url("Inter-BlackItalic.woff2?v=3.19") format("woff2"),
url("Inter-BlackItalic.woff?v=3.19") format("woff");
}
/* -------------------------------------------------------
Variable font.
Usage:
html { font-family: 'Inter', sans-serif; }
@supports (font-variation-settings: normal) {
html { font-family: 'Inter var', sans-serif; }
}
*/
@font-face {
font-family: 'Inter var';
font-weight: 100 900;
font-display: swap;
font-style: normal;
font-named-instance: 'Regular';
src: url("Inter-roman.var.woff2?v=3.19") format("woff2");
}
@font-face {
font-family: 'Inter var';
font-weight: 100 900;
font-display: swap;
font-style: italic;
font-named-instance: 'Italic';
src: url("Inter-italic.var.woff2?v=3.19") format("woff2");
}
/* --------------------------------------------------------------------------
[EXPERIMENTAL] Multi-axis, single variable font.
Slant axis is not yet widely supported (as of February 2019) and thus this
multi-axis single variable font is opt-in rather than the default.
When using this, you will probably need to set font-variation-settings
explicitly, e.g.
* { font-variation-settings: "slnt" 0deg }
.italic { font-variation-settings: "slnt" 10deg }
*/
@font-face {
font-family: 'Inter var experimental';
font-weight: 100 900;
font-display: swap;
font-style: oblique 0deg 10deg;
src: url("Inter.var.woff2?v=3.19") format("woff2");
}

View file

@ -4,55 +4,61 @@
{% block non_login_content %} {% block non_login_content %}
{% if form.non_field_errors %} <div id="loginbox">
{% for error in form.non_field_errors %} <div class="login">
<div class="alert alert-danger" role="alert"> {% if form.non_field_errors %}
{{ error }} {% for error in form.non_field_errors %}
<div class="alert alert-danger" role="alert">
{{ error }}
</div>
{% endfor %}
{% endif %}
<h2>Log in</h2>
<form method="post" action="">
{% csrf_token %}
<div>
<label for="id_username"
class="visually-hidden">
{% trans "E-mail" %}
</label>
<input type="text"
id="id_username"
name="login"
class="form-control mb-lg-2"
placeholder="{% trans "E-mail" %}"
required
autofocus>
</div>
<div>
<label for="id_password" class="visually-hidden">
{% trans "Password" %}
</label>
<input type="password"
id="id_password"
name="password"
class="form-control mb-lg-2"
placeholder="{% trans "Password" %}"
required>
</div>
<div>
<button type="submit">{% trans "Sign in" %}</button>
</div>
</form>
<div>
<a href="{% url "account_reset_password" %}"
class="w-100 btn btn-lg btn-outline-info">
{% trans "Forgot password?" %}
</a>
</div> </div>
{% endfor %} </div>
{% endif %} <div class="signup">
<img src="https://data.coop/static/img/logo_da.svg" alt="data.coop logo">
<form method="post" action=""> <div class="new_here">
{% csrf_token %} <h2> Are you new here? </h2>
<a class="button" href="{% url "account_signup" %}">{% trans "Become a member" %}</a>
<label for="id_username" </div>
class="visually-hidden"> </div>
{% trans "E-mail" %}
</label>
<input type="text"
id="id_username"
name="login"
class="form-control mb-lg-2"
placeholder="{% trans "E-mail" %}"
required
autofocus>
<label for="id_password" class="visually-hidden">
{% trans "Password" %}
</label>
<input type="password"
id="id_password"
name="password"
class="form-control mb-lg-2"
placeholder="{% trans "Password" %}"
required>
<button class="w-100 mb-lg-2 btn btn-lg btn-primary"
type="submit">{% trans "Sign in" %}</button>
</form>
<a href="{% url "account_reset_password" %}"
class="w-100 btn btn-lg btn-outline-info">
{% trans "Forgot password?" %}
</a>
<div class="hr-text">
<span>{% trans "Or"|upper %}</span>
</div> </div>
<a class="w-100 btn btn-lg btn-outline-success"
type="submit"
href="{% url "account_signup" %}">
{% trans "Become a member" %}
</a>
{% endblock %} {% endblock %}

View file

@ -5,17 +5,18 @@
{% block head_title %}{% trans "Sign Out" %}{% endblock %} {% block head_title %}{% trans "Sign Out" %}{% endblock %}
{% block content %} {% block content %}
<h1>{% trans "Sign Out" %}</h1> <div class="content-view">
<h2>{% trans "Sign Out" %}</h2>
<p>{% trans 'Are you sure you want to sign out?' %}</p> <p>{% trans 'Are you sure you want to sign out?' %}</p>
<form method="post" action="{% url 'account_logout' %}"> <form method="post" action="{% url 'account_logout' %}">
{% csrf_token %} {% csrf_token %}
{% if redirect_field_value %} {% if redirect_field_value %}
<input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}"/> <input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}"/>
{% endif %} {% endif %}
<button type="submit">{% trans 'Sign Out' %}</button> <button type="submit">{% trans 'Sign Out' %}</button>
</form> </form>
</div>
{% endblock %} {% endblock %}

View file

@ -7,76 +7,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content=""> <meta name="description" content="">
<title>Login {{ site.name }}</title> <title>Login {{ site.name }}</title>
<link rel="stylesheet" href="{% static "/fonts/inter.css" %}">
<link href="{% static "/css/bootstrap.min.css" %}" rel="stylesheet" <link rel="stylesheet" href="{% static "/css/style.css" %}">
crossorigin="anonymous">
<link href="{% static "/css/bootstrap-icons.css" %}" rel="stylesheet"
crossorigin="anonymous">
<style>
html,
body {
height: 100%;
}
body {
display: flex;
align-items: center;
padding-top: 40px;
padding-bottom: 40px;
background-color: #a8f3f4;
}
.form-signin {
width: 100%;
max-width: 330px;
padding: 15px;
margin: auto;
}
.form-signin .checkbox {
font-weight: 400;
}
.form-signin .form-control {
position: relative;
box-sizing: border-box;
height: auto;
padding: 10px;
font-size: 16px;
}
.form-signin .form-control:focus {
z-index: 2;
}
.hr-text {
width: 100%;
text-align: center;
border-bottom: 1px solid #000;
line-height: 0.1em;
margin: 20px 0 20px;
}
.hr-text span {
background: #a8f3f4;
padding: 0 10px;
}
</style>
</head> </head>
<body class="text-center"> <body>
<main id="login">
<main class="form-signin"> {% block non_login_content %}
<img class="mb-4" src="https://data.coop/static/img/logo_da.svg" alt="" {% endblock %}
width="260" height="160"> </main>
{% block non_login_content %}
{% endblock %}
</main>
</body> </body>
</html> </html>

View file

@ -8,12 +8,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content=""> <meta name="description" content="">
<title>{% block head_title %}{% endblock %} {{ site.name }}</title> <title>{% block head_title %}{% endblock %} {{ site.name }}</title>
<link rel="stylesheet" href="{% static "/fonts/inter.css" %}">
<link rel="stylesheet" href="{% static "/css/style.css" %}"> <link rel="stylesheet" href="{% static "/css/style.css" %}">
</head> </head>
<body> <body>
<header> <header>
<h1> data.coop membersystem </h1> <h1> data.coop membersystem </h1>
<a class="logout" href="/logout">Log out</a> <a class="logout" href="/accounts/logout">Log out</a>
</header </header
<main> <main>
<aside> <aside>
@ -36,7 +37,7 @@
<ol> <ol>
<li><a href="/">Dashboard</a></li> <li><a href="/">Dashboard</a></li>
<li><a href="/services" class="current">Services</a></li> <li><a href="/services" class="current">Services</a></li>
<li><a>Payment</a></li> <li><a href="#">Payment</a></li>
<li><a href="/membership">Settings</a></li> <li><a href="/membership">Settings</a></li>
</ol> </ol>
</nav> </nav>

View file

@ -3,3 +3,18 @@
{% block head_title %} {% block head_title %}
{% trans "Home" %} {% trans "Home" %}
{% endblock %} {% endblock %}
{% block content %}
<div class="content-view">
<h2>Welcome {{ user }}!</h2>
<p>
Boink?
</p>
<div class="infobox">
<p>
To get started we need you to verify your email!
</p>
<button>Verify email</button>
</div>
</div>
{% endblock %}

View file

@ -1,47 +1,52 @@
{% extends "base.html" %} {% extends "base.html" %}
{% block content %} {% block content %}
<div class="view-list"> <div class="content-view">
<h2>Services you subscribe to</h2> <h2>Services you subscribe to</h2>
<div class="services"> <div class="services">
<div> <div>
<div class="description"> <div class="description">
<h3>Passit</h3> <h3>Passit</h3>
<p>Passit is a service that blabla</p> <p>Passit is a service that blabla</p>
<a href="#">Read more &hellip;</a>
</div> </div>
<a>Unsubscribe</a> <a>Unsubscribe</a>
</div> </div>
</div> </div>
</div> </div>
<div class="view-list"> <div class="content-view">
<h2>Available services</h2> <h2>Available services</h2>
<div class="services"> <div class="services">
<div> <div>
<div class="description"> <div class="description">
<h3>Forgejo</h3> <h3>Forgejo</h3>
<p>Forgejo is a service that blabla</p> <p>Forgejo is a service that blabla</p>
<a href="#">Read more &hellip;</a>
</div> </div>
<a>Subscribe</a> <a>Subscribe</a>
</div> </div>
<div> <div>
<div class="description"> <div class="description">
<h3>Mastodon</h3> <h3>Mastodon</h3>
<p>Mastodon is a service where you can write things to people around the world.</p> <p>Mastodon is a service where you can write things to people around the world.</p>
<a href="#">Read more &hellip;</a>
</div> </div>
<a>Subscribe</a> <a>Subscribe</a>
</div> </div>
<div> <div>
<div class="description"> <div class="description">
<h3>Matrix</h3> <h3>Matrix</h3>
<p>Matrix is a service that blabla</p> <p>Matrix is a service that blabla</p>
<a href="#">Read more &hellip;</a>
</div> </div>
<a>Subscribe</a> <a>Subscribe</a>
</div> </div>
<div> <div>
<div class="description"> <div class="description">
<h3>NextCloud</h3> <h3>NextCloud</h3>
<p>NextCloud is a service that blabla</p> <p>NextCloud is a service that blabla</p>
<a href="#">Read more &hellip;</a>
</div> </div>
<a>Subscribe</a> <a>Subscribe</a>
</div> </div>