Version 5.0.0 beta 1
This commit is contained in:
1 parent
25ddeb65d6
commit
15c7beabc5
6736 files changed
+627902
-497943
No files matched your search
@@ -0,0 +1,71 @@
|
||||
.ipsButtons{
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: .5em;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* Base button style */
|
||||
.ipsButton {
|
||||
--_co: currentcolor;
|
||||
background: #c0ccdb;
|
||||
background: color-mix(in srgb, var(--_co) 15%, transparent);
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: .8em;
|
||||
vertical-align: middle;
|
||||
padding: .8em 1.7em;
|
||||
font-weight: 600;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
color: inherit;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.ipsButton:hover {
|
||||
background: color-mix(in srgb, var(--_co) 22%, transparent);
|
||||
}
|
||||
|
||||
.ipsButton:active {
|
||||
top: 1px;
|
||||
}
|
||||
|
||||
/* BUTTON STYLES */
|
||||
.ipsButton--primary {
|
||||
background: var(--i-primary);
|
||||
color: var(--i-primary-contrast);
|
||||
}
|
||||
|
||||
.ipsButton--primary:hover {
|
||||
background: color-mix(in srgb, var(--i-primary), #fff 15%);
|
||||
}
|
||||
|
||||
/* Link button - works like a button, but looks like text */
|
||||
.ipsButton--text {
|
||||
background: transparent;
|
||||
color: inherit;
|
||||
border: 1px solid transparent;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.ipsButton--text:active {
|
||||
border: 0;
|
||||
box-shadow: none;
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
/* BUTTON STATES */
|
||||
.ipsButton:disabled {
|
||||
opacity: .6;
|
||||
font-style: italic;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.ipsButton svg{
|
||||
height: .9em;
|
||||
width: auto;
|
||||
fill: currentColor;
|
||||
opacity: .8;
|
||||
}
|
||||
@@ -0,0 +1,553 @@
|
||||
/*
|
||||
----------------
|
||||
- Form
|
||||
----------------
|
||||
*/
|
||||
|
||||
.ipsFieldRow{
|
||||
display: grid;
|
||||
gap: .8em;
|
||||
padding: 2em;
|
||||
border-bottom: 1px solid var(--i-background_4);
|
||||
}
|
||||
|
||||
.ipsFieldRow[style*="list-item"]{
|
||||
display: grid !important;
|
||||
}
|
||||
|
||||
:is(.ipsFieldRow:last-child, .ipsFieldRow:has(+ .ipsSubmitRow)){
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
|
||||
.ipsFieldRow ~ li:has(> .ipsHr:only-child){
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Form headers, eg in "Edit Profile" modal */
|
||||
.ipsFieldRow__section{
|
||||
padding: 1em;
|
||||
font-weight: 600;
|
||||
background: var(--i-background_3);
|
||||
position: -webkit-sticky;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
/* Submit row */
|
||||
.ipsSubmitRow{
|
||||
flex: 0 0 auto; /* Useful when in flex-direction:column layouts */
|
||||
background: var(--i-background_2);
|
||||
padding: 1em;
|
||||
border-top: 1px solid var(--i-background_4);
|
||||
border-bottom-left-radius: var(--i-box--bo-ra);
|
||||
border-bottom-right-radius: var(--i-box--bo-ra);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Apply submit row styles to alternate HTML markup */
|
||||
.ipsFieldRow:has(> .ipsFieldRow__content > button:only-child){
|
||||
background: var(--i-background_2);
|
||||
padding: 1em;
|
||||
border-top: 1px solid var(--i-background_4);
|
||||
border-bottom-left-radius: var(--i-box--bo-ra);
|
||||
border-bottom-right-radius: var(--i-box--bo-ra);
|
||||
text-align: center;
|
||||
margin-top: -1px; /* This prevents a double border */
|
||||
}
|
||||
|
||||
|
||||
/* Labels */
|
||||
.ipsFieldRow__label{
|
||||
font-weight: 600;
|
||||
display: block;
|
||||
font-size: 1.1em;
|
||||
color: var(--i-color_hard);
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 0em 2em;
|
||||
}
|
||||
|
||||
/* Hide labels on certain forms */
|
||||
.ipsFieldRow--noLabel .ipsFieldRow__label,
|
||||
.ipsForm--noLabels .ipsFieldRow:not(.ipsFieldRow--checkbox) .ipsFieldRow__label {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* ..or if they're empty */
|
||||
.ipsFieldRow__label:has(span:only-child:empty){
|
||||
display: none;
|
||||
}
|
||||
/* Hide empty labels, but keep parent visible incase it contains "Required". Topic content forms are an example */
|
||||
.ipsFieldRow__label span:empty{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.ipsFieldRow__required {
|
||||
font-size: max(.7em, 10px);
|
||||
text-transform: uppercase;
|
||||
color: #AA1414;
|
||||
margin-inline-start: auto;
|
||||
}
|
||||
|
||||
/* Descriptions */
|
||||
.ipsFieldRow__desc {
|
||||
font-size: 0.9em;
|
||||
margin-top: .75em;
|
||||
color: var(--i-color_soft);
|
||||
}
|
||||
.ipsFieldRow__label ~ .ipsFieldRow__desc{
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
/* Warning */
|
||||
.ipsFieldRow__warning{
|
||||
color: var(--i-color_warning);
|
||||
background: color-mix(in srgb, var(--i-color_warning) 15%, transparent);
|
||||
border: 1px solid color-mix(in srgb, var(--i-color_warning) 40%, transparent);
|
||||
padding: 0.8em 1em;
|
||||
border-radius: 5px;
|
||||
font-weight: 500;
|
||||
margin-top: 1em;
|
||||
font-size: .9em;
|
||||
}
|
||||
|
||||
.ipsFieldRow__warning .fa-circle-exclamation{
|
||||
margin-inline-end: .4em;
|
||||
}
|
||||
|
||||
.ipsFieldRow__warning:empty{
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
.ipsFieldRow__content{
|
||||
flex: 999 1 55%;
|
||||
}
|
||||
|
||||
/* Inline checkboxes */
|
||||
.ipsFieldRow__inlineCheckbox{
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: .5em;
|
||||
}
|
||||
|
||||
/* Stacked form: Used for addresses, poll options, etc */
|
||||
.ipsFieldListParent{
|
||||
display: grid;
|
||||
gap: 2em;
|
||||
}
|
||||
|
||||
.ipsFieldList > *{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: .8em;
|
||||
padding: .4em;
|
||||
}
|
||||
|
||||
.ipsFieldList > li:has([disabled]){
|
||||
opacity: .5;
|
||||
filter: grayscale(1);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.ipsFieldList > input{
|
||||
flex: 0 0 auto;
|
||||
align-self: baseline;
|
||||
margin-top: .2em;
|
||||
}
|
||||
|
||||
.ipsFieldList__content{
|
||||
flex: 1 1 auto;
|
||||
}
|
||||
|
||||
.ipsFieldRow label[for]{
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* Highlight code tags (ACP > Content Discovery > Search) */
|
||||
.ipsFieldList__content code{
|
||||
background: var(--i-background_3);
|
||||
color: var(--i-color_hard);
|
||||
border-radius: 4px;
|
||||
padding: .3em;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/* Select menus: If they're followed by a label, set their width to auto */
|
||||
.ipsFieldRow__content select:has(+ span){
|
||||
width: auto;
|
||||
margin-inline-end: .6em;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* Inputs */
|
||||
input:where(:not([type="checkbox"], [type="radio"])),
|
||||
select,
|
||||
textarea{
|
||||
--i-outline-width: 0px;
|
||||
background-color: var(--i-input--ba-co);
|
||||
border-radius: var(--i-input--bo-ra);
|
||||
border: 1px solid var(--i-input--bo-co);
|
||||
box-shadow: var(--i-input--bo-sh, none);
|
||||
color: var(--i-co);
|
||||
display: inline-flex;
|
||||
padding: var(--i-input--pa-bl) var(--i-input--pa-in);
|
||||
/* width: 100%; */
|
||||
max-width: 100%; /* Necessary if width is overwritten somewhere */
|
||||
justify-self: start; /* Prevent inputs/selects from being 100% due to grid */
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
@media (any-hover:hover){
|
||||
input:where(:not([type="checkbox"], [type="radio"])):where(:not([disabled])):hover,
|
||||
select:where(:not([disabled])):hover,
|
||||
textarea:where(:not([disabled])):hover{
|
||||
border-color: var(--i-input-hover--bo-co);
|
||||
}
|
||||
}
|
||||
|
||||
/* Mobiles/tablets */
|
||||
@media (hover: none) and (max-width: 1024px) {
|
||||
input:where(:not([type="checkbox"], [type="radio"])),
|
||||
select,
|
||||
textarea{
|
||||
font-size: max(16px, 1em);
|
||||
}
|
||||
}
|
||||
|
||||
input:where(:not([type="checkbox"], [type="radio"])):focus,
|
||||
select:focus,
|
||||
textarea:focus{
|
||||
outline: 2px solid var(--i-input-active--bo-co);
|
||||
outline-offset: -1px;
|
||||
}
|
||||
|
||||
input::placeholder,
|
||||
textarea::placeholder{
|
||||
color: inherit;
|
||||
opacity: var(--i-placeholder--op, .75);
|
||||
}
|
||||
|
||||
input:where([type="number"]){
|
||||
width: auto;
|
||||
}
|
||||
|
||||
/* Colors */
|
||||
input:where([type="color"]) {
|
||||
min-width: 50px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Add arrow to select elements */
|
||||
select:where(:not([multiple])){
|
||||
cursor: pointer;
|
||||
padding: var(--i-input--pa-bl) var(--i-input--pa-in);
|
||||
padding-inline-end: calc(var(--i-input--pa-in) * 3);
|
||||
background-image: var(--i-select--dark-arrow);
|
||||
background-size: auto 1em;
|
||||
background-repeat: no-repeat;
|
||||
background-position: calc(100% - 1em) 50%;
|
||||
}
|
||||
|
||||
:where([data-ips-scheme="dark"]) select:where(:not([multiple])){
|
||||
background-image: var(--i-select--light-arrow);
|
||||
}
|
||||
|
||||
[dir="rtl"] select:where(:not([multiple])){
|
||||
background-position: 1em 50%;
|
||||
}
|
||||
|
||||
/* Hide 'x' in search input */
|
||||
input::-webkit-search-cancel-button{
|
||||
display: none;
|
||||
}
|
||||
|
||||
textarea{
|
||||
height: auto;
|
||||
line-height: inherit;
|
||||
padding: var(--i-input--pa-bl) var(--i-input--pa-in);
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
textarea[name="conf_global_error"] {
|
||||
height: 200px;
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
/* Disabled */
|
||||
input:disabled{
|
||||
opacity: .4;
|
||||
font-style: italic;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
----------------
|
||||
- Checkbox and Radio inputs
|
||||
----------------
|
||||
*/
|
||||
|
||||
input:where([type="checkbox"], [type="radio"]){
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: var(--i-input-toggle--size, 1.2em);
|
||||
position: relative;
|
||||
vertical-align: middle;
|
||||
width: var(--i-input-toggle--size, 1.2em);
|
||||
cursor: pointer;
|
||||
background-color: var(--i-input--ba-co);
|
||||
border-width: var(--i-input--bo-wi);
|
||||
border-style: solid;
|
||||
border-color: var(--i-input-toggle--bo-co, var(--i-input--bo-co));
|
||||
box-shadow: var(--i-input--bo-sh, none);
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
/* Hovered and Checked */
|
||||
@media (any-hover:hover){
|
||||
input:where([type="checkbox"], [type="radio"]):hover{
|
||||
border-color: var(--i-input-hover--bo-co);
|
||||
}
|
||||
}
|
||||
|
||||
/* Focus */
|
||||
input:where([type="checkbox"], [type="radio"]):focus-visible{
|
||||
--i-outline-color: var(--i-primary);
|
||||
border-color: var(--i-input-active--bo-co);
|
||||
outline: var(--i-outline-width) var(--i-outline-style) var(--i-outline-color);
|
||||
outline-offset: var(--i-outline-offset);
|
||||
}
|
||||
|
||||
input:where([type="checkbox"], [type="radio"]):checked{
|
||||
background-color: var(--i-primary);
|
||||
color: var(--i-primary-contrast);
|
||||
border-color: transparent;
|
||||
}
|
||||
|
||||
input:where([type="checkbox"], [type="radio"])::before{
|
||||
content: '';
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
input:where([type="checkbox"], [type="radio"]):checked::before{
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
/* Checkbox */
|
||||
input:where([type="checkbox"]){
|
||||
border-radius: var(--i-input-checkbox--bo-ra, max(4px, .2em));
|
||||
}
|
||||
|
||||
/* Checkbox: tick */
|
||||
input:where([type="checkbox"])::before{
|
||||
content: "\f00c";
|
||||
font-family: "Font Awesome 6 Free";
|
||||
font-weight: 900;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
display: block;
|
||||
font-style: normal;
|
||||
font-variant: normal;
|
||||
line-height: 1;
|
||||
text-rendering: auto;
|
||||
font-size: 0.75em;
|
||||
}
|
||||
|
||||
/* Radio */
|
||||
input:where([type="radio"]){
|
||||
border-radius: var(--i-input-radio--bo-ra, 50%);
|
||||
}
|
||||
|
||||
/* Radio: dot */
|
||||
input:where([type="radio"])::before{
|
||||
background: currentColor;
|
||||
border-radius: inherit;
|
||||
width: 40%;
|
||||
height: 40%;
|
||||
}
|
||||
|
||||
/* Improved click/tap area */
|
||||
@media(hover:none) and (pointer:coarse){
|
||||
input:where([type="checkbox"], [type="radio"])::after{
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
height: max(30px, 100%);
|
||||
width: max(30px, 100%);
|
||||
transform: translate(-50%,-50%);
|
||||
cursor: pointer;
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
label[for],
|
||||
label:has(input){
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.ipsFieldRow__content textarea ~ label{
|
||||
margin-top: 1em;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
label input{
|
||||
margin-inline-end: .6em;
|
||||
}
|
||||
|
||||
.ipsFieldRow__warning:empty{
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
----------------
|
||||
- Restyle certain forms/inputs
|
||||
----------------
|
||||
*/
|
||||
|
||||
/* Install: License key */
|
||||
#license_lkey [name="lkey"]{
|
||||
margin-inline-end: 1em;
|
||||
}
|
||||
|
||||
#license_lkey a{
|
||||
justify-self: start;
|
||||
color: var(--i-color_soft);
|
||||
}
|
||||
|
||||
#license_lkey a svg{
|
||||
height: .8em;
|
||||
margin-inline-start: .3em;
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
/* Install: Fix "Send usage and diagnostics" checkbox alignment */
|
||||
#serverdetails_diagnostics_reporting{
|
||||
grid-template-columns: auto 1fr;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#serverdetails_diagnostics_reporting > *{
|
||||
grid-column: 2;
|
||||
}
|
||||
|
||||
#serverdetails_diagnostics_reporting > label{
|
||||
grid-column: 1;
|
||||
order: -1;
|
||||
}
|
||||
|
||||
#serverdetails_diagnostics_reporting label::before{
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
}
|
||||
|
||||
/* Install: Admin username, password, email */
|
||||
.ipsFieldRow[id^="admin_admin_"] input{
|
||||
justify-self: stretch;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@supports(display:ehren){
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.ipsFieldRow:not( :last-child ) {
|
||||
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
/* FIELD LISTS (for stacks of radios/checkboxes) */
|
||||
.ipsFieldList {
|
||||
padding-top: 7px;
|
||||
}
|
||||
|
||||
.ipsFieldList > li {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.ipsFieldList input[type="radio"], .ipsFieldList input[type="checkbox"] {
|
||||
float: left;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.ipsFieldList__content {
|
||||
margin-left: 22px;
|
||||
}
|
||||
|
||||
/* FORM TYPOGRAPHY */
|
||||
.ipsFieldRow__desc {
|
||||
font-size: 12px;
|
||||
color: #adadad;
|
||||
margin-top: 3px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.ipsFieldRow:not( .ipsFieldRow_checkbox ) .ipsFieldRow_label,
|
||||
.ipsFieldRow:not( .ipsFieldRow_checkbox ) .ipsFieldRow_title {
|
||||
font-size: 15px;
|
||||
font-weight: bold;
|
||||
margin-bottom: 5px;
|
||||
display: inline-block;
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
.ipsFieldRow__required {
|
||||
font-size: 10px;
|
||||
text-transform: uppercase;
|
||||
color: #c02222;
|
||||
margin-left: 10px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.ipsFieldRow__content select {
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
.ipsFieldRow_section {
|
||||
background: #f9f9f9;
|
||||
color: #333;
|
||||
padding: 15px;
|
||||
font-size: 16px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,218 @@
|
||||
:root{
|
||||
|
||||
--i-background_1: hsl(215 32% 100%);
|
||||
--i-background_2: hsl(215 32% 98.5%);
|
||||
--i-background_3: hsl(215 32% 95%);
|
||||
--i-background_4: hsl(215 32% 92%);
|
||||
--i-background_5: hsl(215 32% 88%);
|
||||
|
||||
--i-color_root: hsl(215 32% 30%);
|
||||
--i-color_soft: hsl(215 24% 49%);
|
||||
--i-color_hard: hsl(215 60% 5%);
|
||||
--i-color_positive: hsl(129 90% 25%);
|
||||
--i-color_negative: hsl(0 95% 45%);
|
||||
--i-color_warning: hsl(351 63% 40%);
|
||||
|
||||
--i-background_root: hsl(217 40% 96%);
|
||||
--i-link--co: hsl(215 46% 14%);
|
||||
--i-link-hover--co: hsl(215 84% 33%);
|
||||
|
||||
--i-header--ba-co: hsl(215 39% 20%);
|
||||
--i-header--co: hsl(0 0% 100%);
|
||||
|
||||
--i-box--bo-ra: 6px;
|
||||
--i-box--ba-co: hsl(0 0% 100%);
|
||||
--i-box--bo-sh: hsla(215 41% 10% / 0.12) 0px 8px 7px -3px;
|
||||
--i-box--bo-co: hsl(215 60% 30% / .1);
|
||||
|
||||
--i-primary: hsl(215 85% 50%);
|
||||
--i-primary-contrast: hsl(0 0% 100%);
|
||||
|
||||
--i-secondary: hsl(215 48% 13%);
|
||||
--i-secondary-contrast: hsl(0 0% 100%);
|
||||
|
||||
--i-outline-width: 2px;
|
||||
--i-outline-style: solid;
|
||||
--i-outline-color: var(--i-primary);
|
||||
|
||||
--i-input--ba-co: var(--i-background_1);
|
||||
--i-input--pa-bl: .7em;
|
||||
--i-input--pa-in: 1em;
|
||||
--i-input--bo-wi: 1px;
|
||||
--i-input--bo-ra: .4em;
|
||||
--i-input--bo-co: color-mix(in srgb, currentColor 40%, transparent);
|
||||
--i-input--bo-sh: hsl(0 0% 0% / .05) 0px 2px 1px;
|
||||
--i-input-hover--bo-co: color-mix(in srgb, currentColor 40%, transparent);
|
||||
--i-input-active--bo-co: var(--i-primary);
|
||||
--i-placeholder--op: .75;
|
||||
--i-select--dark-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M169.4 342.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 274.7 54.6 137.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z' fill='hsl(0,0%25,0%25,.5)'/%3E%3C/svg%3E");
|
||||
--i-select--light-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M169.4 342.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 274.7 54.6 137.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z' fill='hsl(0,0%25,100%25,.5)'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
|
||||
html {
|
||||
background: var(--i-background_root);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: system-ui, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
font-size: calc(1rem / 16 * 15);
|
||||
line-height: 1.5;
|
||||
color: var(--i-color_root);
|
||||
min-height: 100vh;
|
||||
min-height: 100svh;
|
||||
padding: 50px 0;
|
||||
}
|
||||
|
||||
pre {
|
||||
white-space: pre-wrap;
|
||||
text-align: start;
|
||||
}
|
||||
|
||||
:where(a) {
|
||||
color: var(--i-link--co);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
:where(a:hover) {
|
||||
color: var(--i-link-hover--co);
|
||||
}
|
||||
|
||||
#ipsInstaller {
|
||||
margin: 0 auto;
|
||||
max-width: min(95vw, 1200px);
|
||||
border-radius: var(--i-box--bo-ra);
|
||||
background-color: var(--i-box--ba-co);
|
||||
background-clip: padding-box;
|
||||
border: 1px solid var(--i-box--bo-co);
|
||||
}
|
||||
|
||||
.ipsInstaller__header {
|
||||
background: var(--i-header--ba-co);
|
||||
color: var(--i-header--co);
|
||||
border-radius: var(--i-box--bo-ra) var(--i-box--bo-ra) 0 0;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
gap: 1em;
|
||||
padding: 1.3em;
|
||||
}
|
||||
|
||||
.ipsInstaller__logo{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: .8em;
|
||||
font-size: 22px;
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
.ipsInstaller__logo svg {
|
||||
width: auto;
|
||||
height: 1em;
|
||||
fill: currentColor;
|
||||
}
|
||||
|
||||
/* .ipsInstaller__page-title{
|
||||
padding: 1.4em;
|
||||
background: var(--i-background_3);
|
||||
} */
|
||||
|
||||
.ipsInstaller__padding{
|
||||
padding: 3em;
|
||||
}
|
||||
|
||||
@keyframes progress-bar-stripes {
|
||||
from {
|
||||
background-position: 40px 0;
|
||||
}
|
||||
to {
|
||||
background-position: 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
.ipsProgressBar {
|
||||
margin: auto;
|
||||
height: 30px;
|
||||
overflow: hidden;
|
||||
background: var(--i-background_5);
|
||||
border-radius: 8px;
|
||||
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.ipsProgressBar_animated .ipsProgressBar_progress {
|
||||
background-color: var(--i-primary);
|
||||
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-size: 40px 40px;
|
||||
animation: progress-bar-stripes 2s linear infinite;
|
||||
}
|
||||
|
||||
.ipsProgressBar_progress {
|
||||
float: left;
|
||||
width: 0;
|
||||
height: 100%;
|
||||
font-size: 12px;
|
||||
color: #ffffff;
|
||||
text-align: center;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
background: var(--i-primary);
|
||||
position: relative;
|
||||
padding-left: 6px;
|
||||
}
|
||||
|
||||
.ipsProgressBar_progress[data-progress]:after {
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
top: 0;
|
||||
line-height: 32px;
|
||||
color: #fff;
|
||||
content: attr(data-progress);
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Redirector */
|
||||
.ipsRedirect {
|
||||
text-align: center;
|
||||
}
|
||||
.ipsRedirect_loading {
|
||||
height: 100px;
|
||||
}
|
||||
.ipsRedirect_progress {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.ipsRedirect_message {
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-size: .9em;
|
||||
color: var(--i-color_soft);
|
||||
}
|
||||
|
||||
.ipsRedirect_message.custom_message {
|
||||
text-align: start;
|
||||
color: var(--i-color_root);
|
||||
}
|
||||
|
||||
/* Code */
|
||||
.ipsCode {
|
||||
background: var(--i-background_2);
|
||||
padding: 1em;
|
||||
border: 0;
|
||||
border-inline-start: 4px solid var(--i-color_soft);
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* Multi redirect */
|
||||
.ipsMultipleRedirect{
|
||||
padding: 3em;
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
.ipsInstaller__ip{
|
||||
text-align: center;
|
||||
margin-top: 2em;
|
||||
color: var(--i-color_soft);
|
||||
}
|
||||
Whitespace-only changes.
@@ -0,0 +1,38 @@
|
||||
#elInstaller_steps {
|
||||
font-weight: 500;
|
||||
padding: 3em 2em;
|
||||
padding-inline-end: 0;
|
||||
display: grid;
|
||||
gap: 2em;
|
||||
position: -webkit-sticky;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
#elInstaller_steps li{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: .8em;
|
||||
}
|
||||
|
||||
#elInstaller_steps svg{
|
||||
width: 1em;
|
||||
height: auto;
|
||||
fill: currentColor;
|
||||
}
|
||||
|
||||
.elInstaller_steps__done {
|
||||
color: var(--i-color_positive);
|
||||
}
|
||||
|
||||
.elInstaller_steps__current {
|
||||
color: var(--i-color_hard);
|
||||
}
|
||||
|
||||
.elInstaller_steps__future {
|
||||
color: var(--i-color_soft);
|
||||
}
|
||||
|
||||
.elInstaller_steps__future svg{
|
||||
opacity: .3;
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
/* Fixed column sizing */
|
||||
.ipsColumns {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.ipsColumns__primary{
|
||||
flex: 9999 1 50%;
|
||||
}
|
||||
|
||||
.ipsColumns__secondary{
|
||||
flex: 1 1 18em;
|
||||
background: var(--i-background_2);
|
||||
border-inline-end: 1px solid var(--i-background_4);
|
||||
}
|
||||
|
||||
.ipsColumn_medium {
|
||||
flex: 1 1 200px;
|
||||
}
|
||||
|
||||
.ipsColumn_wide {
|
||||
flex: 1 1 280px;
|
||||
}
|
||||
|
||||
.i-margin-top_1{ margin-top: .5em; }
|
||||
.i-margin-top_2{ margin-top: 1em; }
|
||||
.i-margin-top_3{ margin-top: 2em; }
|
||||
.i-margin-top_4{ margin-top: 3em; }
|
||||
.i-margin-top_5{ margin-top: 4em; }
|
||||
.i-margin-bottom_1{ margin-bottom: .5em; }
|
||||
.i-margin-bottom_2{ margin-bottom: 1em; }
|
||||
.i-margin-bottom_3{ margin-bottom: 2em; }
|
||||
.i-margin-bottom_4{ margin-bottom: 3em; }
|
||||
.i-margin-bottom_5{ margin-bottom: 4em; }
|
||||
|
||||
.i-padding_1{ padding: .5em; }
|
||||
.i-padding_2{ padding: 1em; }
|
||||
.i-padding_3{ padding: 2em; }
|
||||
.i-padding_4{ padding: 3em; }
|
||||
.i-padding_5{ padding: 4em; }
|
||||
@@ -0,0 +1,68 @@
|
||||
.ipsMessage {
|
||||
padding: 1em;
|
||||
padding-inline-start: 3em;
|
||||
border-radius: 5px;
|
||||
position: relative;
|
||||
margin-bottom: 1em;
|
||||
color: #fff;
|
||||
font-weight: 500;
|
||||
font-size: .9em;
|
||||
}
|
||||
|
||||
.ipsMessage::before {
|
||||
font-family: 'Font Awesome 6 Free';
|
||||
font-weight: 900;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: auto;
|
||||
position: absolute;
|
||||
top: 1em;
|
||||
inset-inline-start: 1em;
|
||||
}
|
||||
|
||||
.ipsMessage--form{
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
.ipsMessage--error {
|
||||
background: #b52b38;
|
||||
}
|
||||
|
||||
.ipsMessage--error::before {
|
||||
content: '\f06a';
|
||||
}
|
||||
|
||||
.ipsMessage--success {
|
||||
background: #53902f;
|
||||
}
|
||||
|
||||
.ipsMessage--success::before {
|
||||
content: '\f00c';
|
||||
}
|
||||
|
||||
.ipsMessage--warning {
|
||||
background: #c48712;
|
||||
}
|
||||
|
||||
.ipsMessage--warning::before {
|
||||
content: '\f071';
|
||||
}
|
||||
|
||||
.ipsMessage--info {
|
||||
background: #447a9a;
|
||||
}
|
||||
|
||||
.ipsMessage--info::before {
|
||||
content: '\f05a';
|
||||
}
|
||||
|
||||
.ipsMessage--code {
|
||||
padding: 7px;
|
||||
display: inline-block;
|
||||
background: rgba(0,0,0,0.2);
|
||||
border-radius: 5px;
|
||||
float: right;
|
||||
margin-top: -7px;
|
||||
margin-right: -7px;
|
||||
color: rgba(255,255,255,0.8);
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
/* MISC COLORS */
|
||||
.ipsAreaBackground {
|
||||
background: #ebebeb;
|
||||
}
|
||||
|
||||
.ipsAreaBackground_light {
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
/* MISC */
|
||||
hr.ipsHr {
|
||||
margin: 15px 0;
|
||||
height: 0;
|
||||
padding: 0;
|
||||
border-width: 1px 0 0 0;
|
||||
border-style: solid;
|
||||
border-color: #f0f0f0;
|
||||
}
|
||||
|
||||
@-webkit-keyframes spinner {
|
||||
0% { transform: rotate(0deg); }
|
||||
100% { transform: rotate(359deg); }
|
||||
}
|
||||
@keyframes spinner {
|
||||
0% { transform: rotate(0deg); }
|
||||
100% { transform: rotate(359deg); }
|
||||
}
|
||||
|
||||
.ipsPos_center { margin: 0 auto; }
|
||||
|
||||
.ipsHide { display: none }
|
||||
|
||||
.ipsList_bullets {
|
||||
list-style-type: disc;
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
||||
.ipsList_checks{
|
||||
margin-bottom: 3em;
|
||||
display: grid;
|
||||
gap: 1em;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.ipsList_checks li:not(.ipsMessage) {
|
||||
position: relative;
|
||||
padding-inline-start: 1.6em;
|
||||
}
|
||||
|
||||
.ipsList_checks li:not(.ipsMessage)::before{
|
||||
font-family: 'Font Awesome 6 Free';
|
||||
font-weight: 900;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: auto;
|
||||
position: absolute;
|
||||
inset-inline-start: 0;
|
||||
font-size: .9em;
|
||||
margin-top: .05em;
|
||||
}
|
||||
|
||||
.ipsList_checks .success {
|
||||
color: var(--i-color_positive);
|
||||
}
|
||||
.ipsList_checks .success::before {
|
||||
content: '\f00c';
|
||||
}
|
||||
|
||||
.ipsList_checks .fail {
|
||||
color: var(--i-color_negative);
|
||||
}
|
||||
.ipsList_checks .fail::before {
|
||||
content: '\f057';
|
||||
}
|
||||
|
||||
.ipsList_checks .advisory {
|
||||
color: var(--i-color_soft);
|
||||
}
|
||||
.ipsList_checks .advisory::before {
|
||||
content: '\f05a';
|
||||
}
|
||||
|
||||
.ipsPad { padding: 15px; }
|
||||
.ipsPad_double { padding: 30px; }
|
||||
.ipsPad_half { padding: 7px; }
|
||||
@@ -0,0 +1,92 @@
|
||||
*, *::before, *::after {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
*{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
min-width: 0;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
ul, ol{
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
article, aside, details, figcaption, figure, footer,
|
||||
header, hgroup, nav, section, main {
|
||||
display: block;
|
||||
}
|
||||
|
||||
html {
|
||||
-webkit-text-size-adjust: 100%;
|
||||
accent-color: var(--i-primary);
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizelegibility;
|
||||
}
|
||||
|
||||
:focus{
|
||||
outline-color: transparent;
|
||||
}
|
||||
|
||||
:focus-visible{
|
||||
outline: var(--i-outline-width) var(--i-outline-style) var(--i-outline-color);
|
||||
outline-offset: var(--i-outline-offset);
|
||||
}
|
||||
|
||||
img {
|
||||
vertical-align: middle;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
:where(input, textarea, select, button){
|
||||
background: none;
|
||||
border: 0;
|
||||
color: inherit;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
font-weight: inherit;
|
||||
line-height: inherit;
|
||||
text-align: inherit;
|
||||
}
|
||||
|
||||
textarea, select{
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
textarea{
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
select{
|
||||
cursor: inherit;
|
||||
}
|
||||
|
||||
[type="search"]{
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
button, [type="submit"], summary{
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
font-weight: inherit;
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
svg{
|
||||
height: 1em;
|
||||
width: auto;
|
||||
fill: currentColor;
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
/* HEADINGS */
|
||||
.ipsType_pageTitle {
|
||||
font-size: 1.8em;
|
||||
color: var(--i-color_hard);
|
||||
font-weight: 500;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.ipsType_pageTitle .fa{
|
||||
font-size: .75em;
|
||||
}
|
||||
|
||||
.ipsType_pageTitle a {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.ipsType_pageTitle + p{
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
.ipsType_sectionHead {
|
||||
font-size: 1.3em;
|
||||
color: var(--i-color_hard);
|
||||
font-weight: 500;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.ipsList_checks + .ipsType_sectionHead{
|
||||
margin-top: 3em;
|
||||
}
|
||||
|
||||
/* ALIGNMENT */
|
||||
.i-text-align_center { text-align: center; }
|
||||
|
||||
/* SIZING */
|
||||
.i-font-size_small {
|
||||
font-size: max(11px, .8em);
|
||||
}
|
||||
|
||||
.i-font-size_large {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
/* COLORS */
|
||||
.i-color_soft {
|
||||
color: var(--i-color_soft);
|
||||
}
|
||||
|
||||
.i-color_warning {
|
||||
color: var(--i-color_warning);
|
||||
}
|
||||
Reference in new issue
Block a user