mirror of
https://github.com/kanidm/kanidm.git
synced 2025-02-24 04:57:00 +01:00
* Instead of wasm_bindgen creating a JS snippet to externalize code, we're now loading pure-JS util functions from wasmloader.js (#[wasm_bindgen(raw_module = "/pkg/wasmloader.js")]) * Sign out is now a confirmation box instead of "oh no I have to log back in because I'm clumsy and clicked a thing" * Now using the urlencoding crate for encoding the TOTP URLs because string replacing encoded characters felt like writing our own crypto (and now you can call yourself whatever arbitrary string you want) * This fixed an issue in the web UI where the "Add a TOTP" interface would show URL-encoded things, but also made things easier for consistency. * Moved the other web middleware objects into the middleware module because the main module was getting a bit unwieldy. * Started auto-generating the integrity hashes in a different way on start up, which removes a middleware doing random string replacements to inject them, and means we can update modules without having to manually update the string values in the HTML.
159 lines
2.3 KiB
CSS
159 lines
2.3 KiB
CSS
html,
|
|
body {
|
|
height: 100%;
|
|
}
|
|
|
|
.form-cred-reset-body {
|
|
width: 100%;
|
|
max-width: 500px;
|
|
padding: 15px;
|
|
margin: auto;
|
|
}
|
|
|
|
.form-signin-body {
|
|
display: flex;
|
|
align-items: center;
|
|
padding-top: 40px;
|
|
padding-bottom: 40px;
|
|
background-color: #f5f5f5;
|
|
}
|
|
|
|
.form-signin {
|
|
max-width: 680px;
|
|
margin: auto;
|
|
}
|
|
|
|
.form-signin .checkbox {
|
|
font-weight: 400;
|
|
}
|
|
|
|
.form-signin .form-floating:focus-within {
|
|
z-index: 2;
|
|
}
|
|
|
|
.form-signin input[type="email"] {
|
|
margin-bottom: -1px;
|
|
border-bottom-right-radius: 0;
|
|
border-bottom-left-radius: 0;
|
|
}
|
|
|
|
.form-signin input[type="password"] {
|
|
margin-bottom: 10px;
|
|
border-top-left-radius: 0;
|
|
border-top-right-radius: 0;
|
|
}
|
|
|
|
/* DASHBOARD */
|
|
|
|
.dash-body {
|
|
font-size: .875rem;
|
|
}
|
|
|
|
.feather {
|
|
width: 16px;
|
|
height: 16px;
|
|
vertical-align: text-bottom;
|
|
}
|
|
|
|
/*
|
|
* Sidebar
|
|
*/
|
|
|
|
.sidebar {
|
|
position: fixed;
|
|
top: 0;
|
|
/* rtl:raw:
|
|
right: 0;
|
|
*/
|
|
bottom: 0;
|
|
/* rtl:remove */
|
|
left: 0;
|
|
z-index: 100; /* Behind the navbar */
|
|
padding: 48px 0 0; /* Height of navbar */
|
|
box-shadow: inset -1px 0 0 rgba(0, 0, 0, .1);
|
|
}
|
|
|
|
@media (max-width: 767.98px) {
|
|
.sidebar {
|
|
top: 5rem;
|
|
}
|
|
}
|
|
|
|
.sidebar-sticky {
|
|
position: relative;
|
|
top: 0;
|
|
height: calc(100vh - 48px);
|
|
padding-top: .5rem;
|
|
overflow-x: hidden;
|
|
overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */
|
|
}
|
|
|
|
.sidebar .nav-link {
|
|
font-weight: 500;
|
|
color: #333;
|
|
}
|
|
|
|
.sidebar .nav-link .feather {
|
|
margin-right: 4px;
|
|
color: #727272;
|
|
}
|
|
|
|
.sidebar .nav-link.active {
|
|
color: #2470dc;
|
|
}
|
|
|
|
.sidebar .nav-link:hover .feather,
|
|
.sidebar .nav-link.active .feather {
|
|
color: inherit;
|
|
}
|
|
|
|
.sidebar-heading {
|
|
font-size: .75rem;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
/*
|
|
* Navbar
|
|
*/
|
|
|
|
.navbar-brand {
|
|
padding-top: .75rem;
|
|
padding-bottom: .75rem;
|
|
font-size: 1rem;
|
|
background-color: rgba(0, 0, 0, .25);
|
|
box-shadow: inset -1px 0 0 rgba(0, 0, 0, .25);
|
|
}
|
|
|
|
.navbar .navbar-toggler {
|
|
top: .25rem;
|
|
right: 1rem;
|
|
}
|
|
|
|
.navbar .form-control {
|
|
padding: .75rem 1rem;
|
|
border-width: 0;
|
|
border-radius: 0;
|
|
}
|
|
|
|
.form-control-dark {
|
|
color: #fff;
|
|
background-color: rgba(255, 255, 255, .1);
|
|
border-color: rgba(255, 255, 255, .1);
|
|
}
|
|
|
|
.form-control-dark:focus {
|
|
border-color: transparent;
|
|
box-shadow: 0 0 0 3px rgba(255, 255, 255, .25);
|
|
}
|
|
|
|
.vert-center {
|
|
height: 80%;
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.kanidm_logo {
|
|
|
|
width: 12.0em;
|
|
height: 12.0em;
|
|
} |