roundabout,
created on Tuesday, 7 May 2024, 13:09:01 (1715087341),
received on Wednesday, 31 July 2024, 06:54:48 (1722408888)
Author identity: vlad <vlad.muntoiu@gmail.com>
904caa49ad3e88a44eb96b7b2d85bc8625a14faf
static/efficient-ui/THEME.css
@@ -340,6 +340,7 @@
/* LAYOUT */
--gap-buttonbox: 4px;
--gap-label-checkbox: 4px;
--gap-label-input: 4px;
--gap-box: 16px;
/* NAVBAR */
static/efficient-ui/inputs.css
@@ -113,3 +113,18 @@ select {
position: relative;
appearance: none;
}
label:has(input:not([type=checkbox], [type=radio]), select) {
display: inline-flex;
flex-direction: column;
gap: var(--gap-label-input);
align-items: stretch;
}
label:has(input:not([type=checkbox], [type=radio]), select).horizontal-label {
flex-direction: row;
}
input:not(:is(:user-invalid, [aria-invalid="true"])) ~ .input-error-text {
display: none;
}
static/efficient-ui/layout.css
@@ -24,21 +24,21 @@ x-rows {
gap: var(--gap-box);
}
x-buttonbox {
x-buttonbox, .buttonbox {
display: flex;
flex-flow: row wrap;
gap: var(--gap-buttonbox);
}
x-buttonbox.buttonbox-right {
:is(x-buttonbox, .buttonbox).buttonbox-right {
justify-content: flex-end;
}
x-buttonbox :is(button, .button, input[type="button"], input[type="submit"]) {
:is(x-buttonbox, .buttonbox) :is(button, .button, input[type="button"], input[type="submit"]) {
margin: 0;
}
:is(x-hbox, x-vbox, x-buttonbox, x-rows).nopad {
.nopad {
gap: 0;
}
templates/home.html
@@ -12,11 +12,9 @@
<x-frame style="--width: 896px;">
<h1>{{ config.site_name }}</h1>
<h2>{% trans %}Search{% endtrans %}</h2>
<form action="/search" method="get">
<x-buttonbox>
<input type="text" name="q" placeholder="{% trans %}Search repositories...{% endtrans %}" required>
<button type="submit">{% trans %}Search{% endtrans %}</button>
</x-buttonbox>
<form action="/search" method="get" role="search" class="buttonbox">
<input type="text" name="q" placeholder="{% trans %}Search repositories...{% endtrans %}" required>
<button type="submit">{% trans %}Search{% endtrans %}</button>
</form>
</x-frame>
{% endblock %}
templates/login.html
@@ -6,85 +6,93 @@
{% endblock %}
{% block content %}
<style>
#login-forms {
justify-content: center;
}
@media screen and (max-width: 640px) {
<style>
#login-forms {
flex-direction: column;
justify-content: center;
}
@media screen and (max-width: 640px) {
#login-forms {
flex-direction: column;
}
}
}
</style>
<x-frame style="--width: 384px;">
<x-hbox id="login-forms">
<x-vbox>
<h2>{% trans %}Log in{% endtrans %}</h2>
<form method="post" id="login">
<input type="hidden" name="login" value="login">
<div class="card">
<section>
<x-vbox>
<x-vbox class="nopad">
<label for="login-username">{% trans %}Username{% endtrans %}</label>
<input id="login-username" name="username" required>
</style>
<x-frame style="--width: 384px;">
<x-hbox id="login-forms">
<x-vbox>
<h2>{% trans %}Log in{% endtrans %}</h2>
<form method="post" id="login">
<input type="hidden" name="login" value="login">
<div class="card">
<section>
<x-vbox>
<label>
{% trans %}Username{% endtrans %}
<input id="login-username" name="username" required>
</label>
<label>
{% trans %}Password{% endtrans %}
<input id="login-password" name="password" type="password"
required>
</label>
<button style="width: 100%;" id="login-submit" type="submit">
{% trans %}Log in{% endtrans %}</button>
</x-vbox>
<x-vbox class="nopad">
<label for="login-password">{% trans %}Password{% endtrans %}</label>
<input id="login-password" name="password" type="password" required>
</section>
</div>
</form>
</x-vbox>
<x-vbox>
<h2>{% trans %}Sign up{% endtrans %}</h2>
<form method="post" id="signup">
<input type="hidden" name="signup" value="signup">
<div class="card">
<section>
<x-vbox>
<label>
{% trans %}Wanted username{% endtrans %}
<input id="signup-username" name="username" required>
{% trans %}Only letters, numbers or hyphens, cannot be
changed later{% endtrans %}
</label>
<label>
{% trans %}Password{% endtrans %}
<input id="signup-password" name="password" type="password"
required>
{% trans %}Stored only hashed, so we can't recover it for
you{% endtrans %}
</label>
<label>
{% trans %}Repeat password{% endtrans %}
<input id="signup-password-2" name="password2"
type="password" required>
</label>
<label>
{% trans %}Email (recommended){% endtrans %}
<input id="signup-email" name="email" type="email">
{% trans %}Used for notifications, only displayed if you'd
like to{% endtrans %}
</label>
<label>
{% trans %}Display name (optional){% endtrans %}
<input id="signup-name" name="name">
{% trans %}Doesn't have username restrictions, can be
changed later{% endtrans %}
</label>
<label>
<input id="signup-terms" type="checkbox" name="tos"
required>
<span>{% trans %}I accept the{% endtrans %} <a
href="/help/policies">{% trans %}policies listed
here{% endtrans %}</a></span>
</label>
<button style="width: 100%;" id="signup-submit" type="submit">
{% trans %}Sign up{% endtrans %}</button>
</x-vbox>
<button style="width: 100%;" id="login-submit" type="submit">{% trans %}Log in{% endtrans %}</button>
</x-vbox>
</section>
</div>
</form>
</x-vbox>
<x-vbox>
<h2>{% trans %}Sign up{% endtrans %}</h2>
<form method="post" id="signup">
<input type="hidden" name="signup" value="signup">
<div class="card">
<section>
<x-vbox>
<x-vbox class="nopad">
<label for="signup-username">{% trans %}Wanted username{% endtrans %}</label>
<input id="signup-username" name="username" required>
{% trans %}Only letters, numbers or hyphens, cannot be changed later{% endtrans %}
</x-vbox>
<x-vbox class="nopad">
<label for="signup-password">{% trans %}Password{% endtrans %}</label>
<input id="signup-password" name="password" type="password" required>
{% trans %}Stored only hashed, so we can't recover it for you{% endtrans %}
</x-vbox>
<x-vbox class="nopad">
<label for="signup-password-2">{% trans %}Repeat password{% endtrans %}</label>
<input id="signup-password-2" name="password2" type="password" required>
</x-vbox>
<x-vbox class="nopad">
<label for="signup-email">{% trans %}Email (recommended){% endtrans %}</label>
<input id="signup-email" name="email" type="email">
{% trans %}Used for notifications, only displayed if you'd like to{% endtrans %}
</x-vbox>
<x-vbox class="nopad" style="display: none;">
<label for="signup-email-2">{% trans %}Repeat email (recommended){% endtrans %}</label>
<input id="signup-email-2" name="email2" type="email">
</x-vbox>
<x-vbox class="nopad">
<label for="signup-name">{% trans %}Display name (optional){% endtrans %}</label>
<input id="signup-name" name="name">
{% trans %}Doesn't have username restrictions, can be changed later{% endtrans %}
</x-vbox>
<label>
<input id="signup-terms" type="checkbox" name="tos" required>
<span>{% trans %}I accept the{% endtrans %} <a href="/help/policies">{% trans %}policies listed here{% endtrans %}</a></span>
</label>
<button style="width: 100%;" id="signup-submit" type="submit">{% trans %}Sign up{% endtrans %}</button>
</x-vbox>
</section>
</div>
</form>
</x-vbox>
</x-hbox>
</x-frame>
</section>
</div>
</form>
</x-vbox>
</x-hbox>
</x-frame>
{% endblock %}
templates/new-repo.html
@@ -13,10 +13,10 @@
<div class="card">
<section>
<x-vbox>
<x-vbox class="nopad">
<label for="name">{% trans %}Name{% endtrans %}</label>
<label for="name">
{% trans %}Name{% endtrans %}
<input id="name" name="name" required>
</x-vbox>
</label>
<x-hbox>
<label><input type="radio" name="visibility" value="2" checked>{% trans %}Public{% endtrans %}</label>
<label><input type="radio" name="visibility" value="1">{% trans %}Unlisted{% endtrans %}</label>
templates/repository/repo-settings.html
@@ -27,29 +27,29 @@
{% trans %}Private{% endtrans %}
</label>
</x-hbox>
<x-vbox class="nopad">
<label for="description">{% trans %}Description{% endtrans %}</label>
<label for="description">
{% trans %}Description{% endtrans %}
<textarea id="description" name="description" rows="4">{% if repo_data.info %}{{ repo_data.info }}{% endif %}</textarea>
</x-vbox>
<x-vbox class="nopad">
<label for="default-branch">{% trans %}Default branch{% endtrans %}</label>
</label>
<label for="default-branch">
{% trans %}Default branch{% endtrans %}
<select id="default-branch" name="default_branch">
{% for branch in branches %}
<option value="{{ branch }}" {% if branch == repo_data.default_branch %}selected{% endif %}>{{ branch }}</option>
{% endfor %}
</select>
{% trans %}This is the branch the application will redirect to automatically if one is not specified.
Note that only branch names are supported, not other references like tags or commit hashes.{% endtrans %}
</x-vbox>
<x-vbox class="nopad">
<label for="site-branch">{% trans %}Site branch{% endtrans %}</label>
Note that only branch names are supported, not other references like tags or commit hashes.{% endtrans %}
</label>
<label for="site-branch">
{% trans %}Site branch{% endtrans %}
<select id="site-branch" name="site_branch">
<option value="">{% trans %}No sites{% endtrans %}</option>
{% for branch in branches %}
<option value="{{ branch }}" {% if branch == repo_data.site_branch %}selected{% endif %}>{{ branch }}</option>
{% endfor %}
</select>
</x-vbox>
</label>
<label>
<input type="checkbox" name="primary_site" {% if repo_data.has_site == 2 %}checked{% endif %}>
{% trans %}Make this the primary site{% endtrans %}