Publish Nerbus source snapshot and build documentation

This commit is contained in:
Nerbus Contributors committed 2026-10-17 18:56:29 +00:00
commit 76cccceca7
198 files changed
+338574

No files matched your search

+654
View File
@@ -0,0 +1,654 @@
// Materia 5.1.3
// Bootswatch
// Variables
$web-font-path: "https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" !default;
@if $web-font-path {
@import url($web-font-path);
}
// Mixins
@mixin ripple($color) {
position: relative;
&::before {
content: "";
display: block;
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
margin-left: 0;
@include gradient-radial($color 10%, transparent 10.01%);
background-size: 1000% 1000%;
background-position: 50%;
border: none;
opacity: 0;
pointer-events: none;
transition: background .5s, opacity 1s;
}
&:active::before {
background-size: 0 0;
opacity: .2;
transition: none;
}
&.disabled,
&[disabled] {
&::before {
display: none;
}
}
}
@mixin btn($class,$bg,$color) {
.btn-#{$class} {
&:focus {
background-color: $bg;
box-shadow: 0 0 0 2px rgba(204, 204, 204, .5);
}
&:hover,
&:active:hover {
background-color: shade-color($bg, 12%);
}
&:active {
box-shadow: 2px 2px 4px rgba(0, 0, 0, .4);
}
@include ripple($color);
}
.btn-outline-#{$class} {
@include ripple($color);
}
}
.dropdown-toggle::after,
.dropup .dropdown-toggle::after,
.dropstart .dropdown-toggle::after,
.dropend .dropdown-toggle::after {
border-width: 4px;
}
// Navbar
.navbar {
border: none;
box-shadow: 0 1px 2px rgba(0, 0, 0, .3);
&-brand {
font-size: 24px;
}
&-nav .nav-link {
padding-top: .9rem;
padding-bottom: .9rem;
}
&.bg-dark,
&.bg-primary {
input[type="search"],
input[type="text"],
input[type="password"],
input[type="email"],
input[type="number"],
input[type="tel"] {
color: $white;
box-shadow: inset 0 -1px 0 rgba(255, 255, 255, .5);
&:focus {
box-shadow: inset 0 -2px 0 $white;
}
&::placeholder {
color: rgba(255, 255, 255, .5);
}
}
}
}
// Buttons
@include btn(primary, $primary, $white);
@include btn(secondary, $secondary, $gray-500);
@include btn(success, $success, $white);
@include btn(info, $info, $white);
@include btn(warning, $warning, $white);
@include btn(danger, $danger, $white);
@include btn(dark, $dark, $white);
@include btn(light, $light, $white);
.btn {
text-transform: uppercase;
border: none;
box-shadow: 0 1px 4px rgba(0, 0, 0, .4);
transition: color .4s, background-color .4s, border-color .4s, box-shadow .4s;
&-link {
box-shadow: none;
color: $link-color;
&:hover,
&:focus {
box-shadow: none;
color: $link-hover-color;
text-decoration: $link-hover-decoration;
}
&.disabled, // Although btn-link is intended for buttons, which want to look like link, I include here a.disable for the sake of consistency
&[disabled],
fieldset[disabled] & {
&:hover,
&:active:hover {
color: $btn-link-disabled-color;
text-decoration: none;
}
}
}
&-secondary {
&.disabled,
&[disabled],
fieldset[disabled] & {
background-color: rgba(0, 0, 0, .1);
color: rgba(0, 0, 0, .4);
opacity: 1;
&:hover,
&:focus {
background-color: rgba(0, 0, 0, .1);
}
}
}
&-outline-secondary {
border-color: $gray-200;
color: $gray-300;
}
&-warning {
color: $white;
}
}
.btn-group {
.btn + .btn,
.btn + .btn-group,
.btn-group + .btn,
.btn-group + .btn-group {
margin-left: 0;
}
&-vertical {
> .btn + .btn,
> .btn + .btn-group,
> .btn-group + .btn,
> .btn-group + .btn-group {
margin-top: 0;
}
}
.btn + .btn,
.btn + .btn-group > .dropdown-toggle {
box-shadow: 1px 1px 4px rgba(0, 0, 0, .4);
}
}
.border-secondary {
border: 1px solid #dfdfdf !important;
}
// Typography
body,
input,
button {
letter-spacing: .1px;
}
p {
margin: 0 0 1em;
}
.text-secondary {
color: $gray-500 !important;
}
// Tables
.table-hover {
> tbody > tr,
> tbody > tr > th,
> tbody > tr > td {
transition: background-color .2s, color .2s;
}
}
.thead-inverse th {
background-color: $primary;
color: $white;
}
// Forms
.col-form-label {
font-size: 16px;
&-sm {
font-size: $font-size-sm;
}
&-lg {
font-size: $font-size-lg;
}
}
textarea,
textarea.form-control,
input.form-control,
input[type="text"],
input[type="password"],
input[type="email"],
input[type="number"],
[type="text"].form-control,
[type="password"].form-control,
[type="email"].form-control,
[type="tel"].form-control,
[contenteditable].form-control {
box-shadow: inset 0 -1px 0 #ddd;
transition: box-shadow .2s;
&:focus {
box-shadow: inset 0 -2px 0 $primary;
}
&[disabled],
&[readonly] {
box-shadow: none;
border-bottom: 1px dotted #ddd;
}
&[disabled],
&[disabled]::placeholder {
color: #ddd;
}
&::-ms-clear {
display: none;
}
}
select,
select.form-control {
appearance: none;
padding: .5rem 0;
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='4' viewBox='0 0 8 4'%3e%3cpolygon fill='%23666' points='8 0 4 4 0 0'/%3e%3c/svg%3e%0a");
background-size: 8px 4px;
background-repeat: no-repeat;
background-position: right center;
box-shadow: inset 0 -1px 0 #ddd;
&::-ms-expand {
display: none;
}
&.input {
&-sm {
font-size: $font-size-sm;
}
&-lg {
font-size: $font-size-lg;
}
}
&:focus {
box-shadow: inset 0 -2px 0 $primary;
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='4' viewBox='0 0 8 4'%3e%3cpolygon fill='%23212121' points='8 0 4 4 0 0'/%3e%3c/svg%3e%0a");
}
&[multiple] {
background: none;
}
}
.form-check-input {
width: 1.25em;
height: 1.25em;
margin-top: 1px;
border: 2px solid $gray-400;
&:checked[type="radio"] {
background-size: 1.8em;
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%232196f3' stroke='%23fff' stroke-width='1' /%3e%3c/svg%3e"), var(--bs-gradient);
}
}
.form-check.form-switch {
.form-check-input {
position: relative;
height: .8em;
border: none;
background-image: none;
background-color: $gray-400;
&:focus {
box-shadow: none;
}
&::before {
content: "";
position: absolute;
top: -.2em;
left: -.2em;
width: 1.2em;
height: 1.2em;
background-color: $white;
border-radius: 50%;
box-shadow: 0 1px 4px rgba(0, 0, 0, .3);
transition: left .15s ease-in-out;
}
&::after {
content: "";
position: absolute;
top: -.2em;
left: -.2em;
width: 1.2em;
height: 1.2em;
border-radius: 50%;
box-shadow: 0 0 0 9px rgba(0, 0, 0, .05);
transform: scale(0);
transition: left .15s ease-in-out, transform .15s ease-in-out, box-shadow .15s ease-in-out;
z-index: -1;
}
&:hover:not(.disabled),
&:focus:not(.disabled) {
&::after {
transform: scale(.9);
}
}
&:focus:not(.disabled) {
&::after {
box-shadow: 0 0 0 9px rgba(0, 0, 0, .1);
}
}
&:checked {
background-color: rgba(33, 150, 243, .3);
&::before {
background-color: rgba(33, 150, 243, 1);
left: calc(100% - .8em);
}
&::after {
left: calc(100% - .8em);
box-shadow: 0 0 0 9px rgba(33, 150, 243, .1);
}
&:hover:not(.disabled),
&:focus:not(.disabled) {
&::after {
transform: scale(.9);
}
}
&:focus:not(.disabled) {
&::after {
box-shadow: 0 0 0 9px rgba(33, 150, 243, .2);
}
}
}
}
}
.form-check:not(.form-switch) {
.form-check-input {
&:checked[type="checkbox"] {
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-width='2' d='M6 10l3 3l6-6'/%3e%3c/svg%3e"), var(--bs-gradient);
background-size: 1.6em;
}
}
}
.has-warning {
input:not([type="checkbox"]),
.form-control,
input.form-control[readonly],
input[type="text"][readonly],
[type="text"].form-control[readonly],
input:not([type="checkbox"]):focus,
.form-control:focus {
border-bottom: none;
box-shadow: inset 0 -2px 0 $warning;
}
}
.has-danger {
input:not([type="checkbox"]),
.form-control,
input.form-control[readonly],
input[type="text"][readonly],
[type="text"].form-control[readonly],
input:not([type="checkbox"]):focus,
.form-control:focus {
border-bottom: none;
box-shadow: inset 0 -2px 0 $danger;
}
}
.has-success {
input:not([type="checkbox"]),
.form-control,
input.form-control[readonly],
input[type="text"][readonly],
[type="text"].form-control[readonly],
input:not([type="checkbox"]):focus,
.form-control:focus {
border-bottom: none;
box-shadow: inset 0 -2px 0 $success;
}
}
// Remove the Bootstrap feedback styles for input addons
.input-group-addon {
.has-warning &,
.has-danger &,
.has-success & {
color: $input-color;
border-color: $input-group-addon-border-color;
background-color: $input-group-addon-bg;
}
}
.form-group-lg {
select,
select.form-control {
line-height: 1.5;
}
}
// Navs
.nav-tabs {
.nav-item + .nav-item {
margin-left: 0;
}
.nav-link,
.nav-link:focus {
margin-right: 0;
background-color: transparent;
border: none;
color: $body-color;
box-shadow: inset 0 -1px 0 #ddd;
transition: color .2s, box-shadow .2s;
&:hover {
background-color: transparent;
box-shadow: inset 0 -2px 0 $primary;
color: $primary;
}
}
.nav-link.active,
.nav-link.active:focus {
border: none;
box-shadow: inset 0 -2px 0 $primary;
color: $primary;
&:hover {
border: none;
color: $primary;
}
}
.nav-link.disabled {
box-shadow: inset 0 -1px 0 #ddd;
}
&.nav-justified {
.nav-link,
.nav-link:hover,
.nav-link:focus,
.nav-link.active,
.nav-link.active:hover,
.nav-link.active:focus {
border: none;
}
}
.dropdown-menu {
margin-top: 0;
}
}
.dropdown-menu {
margin-top: 0;
border: none;
box-shadow: 0 1px 4px rgba(0, 0, 0, .3);
}
// Indicators
.alert {
padding-right: 2.5rem;
border: none;
&,
h1,
h2,
h3,
h4,
h5,
h6 {
color: $white;
}
@each $color, $value in $theme-colors {
&-#{$color} {
@if $enable-gradients {
background: $value linear-gradient(180deg, mix($body-bg, $value, 15%), $value) repeat-x;
} @else {
background-color: $value;
}
}
}
a:not(.btn),
.alert-link {
color: $white;
font-weight: 700;
}
&-secondary,
&-light {
&,
a:not(.btn),
.alert-link {
color: $body-color;
}
}
}
.badge {
&.bg-secondary,
&.bg-light {
color: $dark;
}
}
.tag {
padding: 4px 6px;
}
// Containers
.card {
box-shadow: 0 1px 4px rgba(0, 0, 0, .4);
&.border-primary,
&.border-secondary,
&.border-success,
&.border-info,
&.border-warning,
&.border-danger,
&.border-light,
&.border-dark {
border-width: 1px;
}
}
.list-group {
&-item-action.active {
h1,
h2,
h3,
h4,
h5,
h6 {
color: $white;
}
}
}
.modal-content {
border-radius: .2rem;
box-shadow: 0 6px 36px rgba(0, 0, 0, .3);
}
.modal,
.toast {
.btn-close {
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'><path d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/></svg>");
}
}
.popover {
border: none;
box-shadow: 0 1px 4px rgba(0, 0, 0, .3);
}
.carousel {
&-caption {
h1,
h2,
h3,
h4,
h5,
h6 {
color: inherit;
}
}
}
+114
View File
@@ -0,0 +1,114 @@
// Materia 5.1.3
// Bootswatch
$theme: "materia" !default;
//
// Color system
//
$white: #fff !default;
$gray-100: #f8f9fa !default;
$gray-200: #eee !default;
$gray-300: #dee2e6 !default;
$gray-400: #ced4da !default;
$gray-500: #bbb !default;
$gray-600: #666 !default;
$gray-700: #444 !default;
$gray-800: #222 !default;
$gray-900: #212121 !default;
$black: #000 !default;
$blue: #2196f3 !default;
$indigo: #6610f2 !default;
$purple: #6f42c1 !default;
$pink: #e83e8c !default;
$red: #e51c23 !default;
$orange: #fd7e14 !default;
$yellow: #ff9800 !default;
$green: #4caf50 !default;
$teal: #20c997 !default;
$cyan: #9c27b0 !default;
$primary: $blue !default;
$secondary: $white !default;
$success: $green !default;
$info: $cyan !default;
$warning: $yellow !default;
$danger: $red !default;
$light: $gray-100 !default;
$dark: $gray-800 !default;
$min-contrast-ratio: 2.15 !default;
$enable-gradients: true !default;
// Body
$body-color: $gray-700 !default;
// Fonts
// stylelint-disable-next-line value-keyword-case
$font-family-sans-serif: Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif !default;
$font-size-base: 1rem !default;
$font-weight-base: 400 !default;
// Buttons
$input-btn-padding-y: .8rem !default;
$input-btn-padding-x: 1rem !default;
// Forms
$input-padding-y: 1rem !default;
$input-padding-x: 0 !default;
$input-padding-y-sm: 0 !default;
$input-padding-x-sm: 0 !default;
$input-padding-y-lg: ($font-size-base * 1.25) !default;
$input-padding-x-lg: 0 !default;
$input-bg: transparent !default;
$input-disabled-bg: transparent !default;
$input-color: $gray-600 !default;
$input-border-color: transparent !default;
$input-border-width: 0 !default;
$input-border-radius: 0 !default;
$input-border-radius-lg: 0 !default;
$input-border-radius-sm: 0 !default;
$input-placeholder-color: rgba(0, 0, 0, .4) !default;
$input-group-addon-bg: transparent !default;
// Navs
$nav-link-disabled-color: $gray-500 !default;
$nav-tabs-border-color: transparent !default;
// Navbar
$navbar-padding-y: 1rem !default;
$navbar-dark-color: rgba($white, .75) !default;
$navbar-dark-hover-color: $white !default;
// Cards
$card-border-width: 0 !default;
$card-border-color: transparent !default;
// Tooltips
$tooltip-bg: $gray-700 !default;
// Modals
$modal-content-border-color: transparent !default;
// Progress bars
$progress-height: .375rem !default;
$progress-border-radius: 0 !default;
// Close
$btn-close-color: $white !default;
$btn-close-opacity: .6 !default;
$btn-close-hover-opacity: 1 !default;
File diff suppressed because it is too large. Load diff
+12
View File
@@ -0,0 +1,12 @@
/*!
* Bootswatch v5.1.3
* Homepage: https://bootswatch.com
* Copyright 2012-2021 Thomas Park
* Licensed under MIT
* Based on Bootstrap
*//*!
* Bootstrap v5.1.3 (https://getbootstrap.com/)
* Copyright 2011-2021 The Bootstrap Authors
* Copyright 2011-2021 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/@import url(https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap);:root{--bs-blue:#2196f3;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#e83e8c;--bs-red:#e51c23;--bs-orange:#fd7e14;--bs-yellow:#ff9800;--bs-green:#4caf50;--bs-teal:#20c997;--bs-cyan:#9c27b0;--bs-white:#fff;--bs-gray:#666;--bs-gray-dark:#222;--bs-gray-100:#f8f9fa;--bs-gray-200:#eee;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#bbb;--bs-gray-600:#666;--bs-gray-700:#444;--bs-gray-800:#222;--bs-gray-900:#212121;--bs-primary:#2196f3;--bs-secondary:#fff;--bs-success:#4caf50;--bs-info:#9c27b0;--bs-warning:#ff9800;--bs-danger:#e51c23;--bs-light:#f8f9fa;--bs-dark:#222;--bs-primary-rgb:33,150,243;--bs-secondary-rgb:255,255,255;--bs-success-rgb:76,175,80;--bs-info-rgb:156,39,176;--bs-warning-rgb:255,152,0;--bs-danger-rgb:229,28,35;--bs-light-rgb:248,249,250;--bs-dark-rgb:34,34,34;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-color-rgb:68,68,68;--bs-body-bg-rgb:255,255,255;--bs-font-sans-serif:Roboto,-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#444;--bs-body-bg:#fff}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#2196f3;text-decoration:underline}a:hover{color:#1a78c2}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212121;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#666;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){Line truncated