mirror of https://gitlab.com/octtspacc/sitoctt
624 lines
14 KiB
JavaScript
624 lines
14 KiB
JavaScript
#!/usr/bin/env node
|
|
require('../../Scripts/Lib/SelfBuild.js').importAll();
|
|
|
|
const DeskModeMinWid = `1024px`;
|
|
const wSectLink = `.staticoso-SectionLink`;
|
|
const wPagesList = `#PageContent .staticoso-TreeList.staticoso-PagesList`
|
|
const IfDeskMode = `#DesktopModeCheck:Checked`;
|
|
const IfDeskMode_Div =`${IfDeskMode} ~ Div`;
|
|
const NoLinkLinkWhere = `.NoLinkLink, ${Where('', '.NoLinkLink, .staticoso-SectionLink, #StatCounter, #RingsDiv', ' a')}`;
|
|
|
|
const RawDataCss = {
|
|
DeskModeMinWid: DeskModeMinWid,
|
|
};
|
|
|
|
Fs.writeFileSync(__filename.split('.SelfBuild.js')[0], `
|
|
/*--------------------------------------------------------*
|
|
* Globale *
|
|
*--------------------------------------------------------*/
|
|
|
|
:Root {
|
|
--ScreenBorderPadding: 4px;
|
|
--ContentPadding: 8px;
|
|
--BorderRad0: 2px;
|
|
|
|
--BodyTextColor: #080810;
|
|
--cPurpleLighter: #D000D0;
|
|
--cBasePinky: #EEDDFF;
|
|
--cBackDark: #300030;
|
|
--cPurpleDarker: #700070;
|
|
|
|
--mDesktopMainWidth: 72.5%;
|
|
--mDesktopSideWidth: 22.5%/*24%*/;
|
|
--mDesktopSideLeft: 12px/*8*/;
|
|
}
|
|
|
|
* {
|
|
Box-Sizing: Border-Box;
|
|
}
|
|
|
|
::Selection {
|
|
Background-Color: RGBA(170, 170, 255, 0.2);
|
|
}
|
|
|
|
Body {
|
|
Margin: 0;
|
|
Box-Sizing: Border-Box;
|
|
Width: 100%;
|
|
Max-Width: 100%;
|
|
Position: Absolute;
|
|
Left: Auto;
|
|
Right: Auto;
|
|
Color: Var(--BodyTextColor);
|
|
Background: Var(--cBasePinky);
|
|
Font-Size: 13pt;
|
|
Padding: Var(--ContentPadding);
|
|
Overflow-Wrap: Break-Word;
|
|
}
|
|
|
|
${Where('', '.staticoso-ContentHeader-CreatedOn, .staticoso-ContentHeader-EditedOn', '> .staticoso-Value')} {
|
|
Font-Weight: Bold;
|
|
}
|
|
|
|
${Unpack('.staticoso-ContentHeader-Index > .staticoso-Value:', ['before { content:"("; }', 'after { content:")"; }'], '')}
|
|
|
|
/*--------------------------------------------------------*/
|
|
|
|
|
|
|
|
/*--------------------------------------------------------*
|
|
* Fritto Misto - Andrebbe ordinato *
|
|
*--------------------------------------------------------*/
|
|
|
|
Details Div {
|
|
Margin: 8px;
|
|
Padding: 4px;
|
|
}
|
|
.BorderBox,
|
|
${Where('.BorderBoxContainer >', ' Div, Details', ':Not(.NoBorderBox)')}
|
|
/*Details Div Details:Not(.NoBorderBox)*/ {
|
|
Border: 2px Solid Purple;
|
|
Margin: 8px;
|
|
Padding: 4px;
|
|
}
|
|
|
|
A { Color: Var(--cPurpleLighter); }
|
|
Code A, .Code A { Color: #60D0D0; }
|
|
|
|
${Where('h', Range(1,6), '')} {
|
|
Color: #503080;
|
|
}
|
|
Ul {
|
|
Padding-Left: 16px;
|
|
Padding-Right: 4px;
|
|
}
|
|
${Where('table', ' td, th, tr', '')} {
|
|
Border: 2px Solid Purple;
|
|
Padding: 4px;
|
|
}
|
|
|
|
Blockquote, .Blockquote {
|
|
Margin-Left: 2em;
|
|
Padding-Left: 1em;
|
|
Border-Left: 3px Solid #85588C;
|
|
}
|
|
|
|
.ScrollBox, .ScrollBorderBox {
|
|
Padding: 8px;
|
|
}
|
|
.Code, Code:Not(.NoCode), Pre Code:Not(.NoCode), Pre.Code, .CodeScroll {
|
|
Color: #FAFAF0;
|
|
Background: Var(--cBackDark);
|
|
}
|
|
.ScrollBox, .ScrollBorderBox, .CodeScroll {
|
|
Overflow-X: Auto;
|
|
}
|
|
.ScrollBorderBox, .CodeScroll {
|
|
Border: 2px Solid Purple;
|
|
}
|
|
Pre.Code, .CodeScroll {
|
|
Padding-Left: 8px;
|
|
Padding-Right: 8px;
|
|
Padding-Top: 8px;
|
|
Padding-Bottom: 16px;
|
|
}
|
|
Code:Not(Pre Code) {
|
|
Padding: 4px 4px 4px 4px;
|
|
}
|
|
|
|
Video.SmallVideoQuote { Float:Left; }
|
|
Video.SmallVideoQuote + Blockquote {
|
|
Display: Inline-Block;
|
|
Margin-Top: 0;
|
|
Margin-Bottom: 0px;
|
|
}
|
|
|
|
#MainBox A:Not(${NoLinkLinkWhere}):Before {
|
|
Content: '🔗 ';
|
|
}
|
|
#MainBox A:Not(${NoLinkLinkWhere}):After {
|
|
Content: '';
|
|
Border-Radius: 0.125em;
|
|
Display: Inline-Block;
|
|
Width: 0.50em;
|
|
Height: 0.50em;
|
|
Margin-Bottom: -0.40em;
|
|
Border-Bottom: 0.20em solid Var(--cPurpleDarker);
|
|
Border-Right: 0.20em solid Var(--cPurpleDarker);
|
|
Margin-Left: -0.40em;
|
|
Opacity: 0.5;
|
|
}
|
|
|
|
Header > P > A > Img {
|
|
Display: Inline !Important;
|
|
}
|
|
|
|
/* Clickable link at the left of every section title */
|
|
#SitesList B:Target,
|
|
.staticoso-SectionTitle:Target {
|
|
Color: Var(--cBasePinky) !Important;
|
|
Background: Var(--cPurpleDarker) !Important;
|
|
Text-Decoration: Underline;
|
|
}
|
|
.staticoso-SectionLink {
|
|
Position: Absolute;
|
|
Left: -1.5em;
|
|
Opacity: 0.08;
|
|
}
|
|
${wSectLink}:Hover { Opacity: 0.8; }
|
|
${wSectLink} > A:Before { Content: '🔗'; }
|
|
${wSectLink} > A { Border-Radius: Var(--BorderRad0); }
|
|
${wSectLink} > A > Span { Font-Size: 0; }
|
|
|
|
A:Hover:Not(
|
|
.NoABigger, .NoHoverLight,
|
|
.NoABigger A, .NoHoverLight A,
|
|
${Where('h', Range(3,6), ' > a')}
|
|
),
|
|
.YesHoverLight:Hover, .YesHoverLight A:Hover {
|
|
Color: Var(--cBasePinky) !Important;
|
|
Background: Var(--cPurpleDarker) !Important;
|
|
}
|
|
|
|
.ImgShiftedH, .ImgShiftedH Img {
|
|
Margin-Top: 4px;
|
|
/* Margin-Bottom: -4px; */
|
|
}
|
|
|
|
H1:hover { Font-Size: 28pt; }
|
|
H2:hover { Font-Size: 21.5pt; }
|
|
H3:hover { Font-Size: 17.5pt; }
|
|
|
|
IFrame {
|
|
Width: 100%;
|
|
Max-Height: 90vh;
|
|
}
|
|
|
|
#Container { Max-Width: 100%; }
|
|
|
|
#LeftBox, #RightBox {
|
|
Max-Width: 90vw;
|
|
Color: #fafaf0;
|
|
Background: Var(--cBackDark);
|
|
Border-Radius: Var(--BorderRad0);
|
|
}
|
|
|
|
#LeftBox A, #RightBox A, #BottomBox A { Color: Var(--cBasePinky); }
|
|
#LeftBox Ul Li /*, #RightBox Ul Li */ { List-Style-Type: None; }
|
|
#LeftBox Ul, #RightBox Ul { Padding-Top: 0px; }
|
|
|
|
#TopBox {
|
|
Width: 100%;
|
|
Padding: Var(--ContentPadding);
|
|
}
|
|
.HeaderElement {
|
|
Border: 2px Solid Purple;
|
|
Padding: 0px 8px 8px 8px;
|
|
}
|
|
|
|
:Where(#TopBox, #BottomBox) :Where(H1, H2, H3, H4, H5, H6) { Display: Inline; }
|
|
#LeftBox, #LeftBoxContainer {
|
|
Float: Left;
|
|
Left: Var(--ContentPadding);
|
|
Padding: Var(--ContentPadding);
|
|
}
|
|
#RightBox, #RightBoxContainer {
|
|
Float: Right;
|
|
Right: Var(--ContentPadding);
|
|
Padding: Var(--ContentPadding);
|
|
}
|
|
#LeftBox { Font-Size: Larger; }
|
|
#RightBox { Float: Right; }
|
|
#RightBoxContainer > Details > Summary { Text-Align: Right; }
|
|
|
|
#MainBox {
|
|
Margin: Auto;
|
|
Position: Absolute;
|
|
Z-Index: -1;
|
|
Left: 0;
|
|
Right: 0;
|
|
Width: 80%;
|
|
Min-Height: 100vh;
|
|
Padding-Left: 2.5%;
|
|
Padding-Right: 2.5%;
|
|
Padding-Top: Calc(Var(--ContentPadding) + 32px);
|
|
Padding-Bottom: Calc(Var(--ContentPadding) + 64px);
|
|
}
|
|
|
|
#MainBox Img, #MainBox Video {
|
|
Max-Width: 90%;
|
|
Max-Height: 80vh;
|
|
}
|
|
#MainBox Img:Hover, #MainBox Video:Hover {
|
|
Max-Width: 100%;
|
|
Max-Height: 90vh;
|
|
}
|
|
|
|
.Img36 Img, .Img36 Video { Max-Height: 36vh !important; }
|
|
.Img36 Img:Hover, .Img36 Video:Hover { Max-Height: 64vh !important; }
|
|
|
|
Img.Center, Video.Center,
|
|
.Center Img, .Center Video,
|
|
#MainBox P Img:Not(.NoImgCenter, .NoImgCenter Img),
|
|
#MainBox P Video:Not(.NoImgCenter, .NoImgCenter Video) {
|
|
Display: Block;
|
|
Margin-Left: Auto;
|
|
Margin-Right: Auto;
|
|
}
|
|
.ImgSidePadding Img,
|
|
.ImgSidePadding Video {
|
|
Padding-Left: 16px;
|
|
Padding-Right: 16px;
|
|
}
|
|
.Pixelated,
|
|
.Pixelated Img {
|
|
Image-Rendering: Pixelated;
|
|
-ms-interpolation-mode: nearest-neighbor;
|
|
}
|
|
|
|
.MediaRow2 { Padding: 0px; }
|
|
.MediaRow2:After {
|
|
Content: "";
|
|
Clear: Both;
|
|
Display: Table;
|
|
}
|
|
.MediaRow2 Img, .MediaRow2 Video {
|
|
Float: Left;
|
|
Width: 50%;
|
|
Padding: 4px;
|
|
}
|
|
|
|
/* Div for custom background crimes */
|
|
#Background {
|
|
Z-Index: -1;
|
|
Position: Fixed;
|
|
Width: 100vw;
|
|
Height: 100vh;
|
|
/* Ignore body padding */
|
|
Top: 0px;
|
|
Left: 0px;
|
|
Background-Size: Cover;
|
|
Background-Position: Center;
|
|
Background-Repeat: No-Repeat;
|
|
}
|
|
|
|
#MainBoxTop, #BuildTimeLine { Color: #505050; }
|
|
#BuildTimeLine > Span { Display: Inline-Block; }
|
|
|
|
#BottomBox {
|
|
Width: 100%;
|
|
Color: #fafaf0;
|
|
Background: RGBA(64, 0, 64, 0.6);
|
|
Text-Align: Right;
|
|
Padding: Var(--ContentPadding);
|
|
Z-Index: -1;
|
|
}
|
|
#LeftBoxContainer, #RightBoxContainer { Position: Absolute; }
|
|
#LeftBoxContainer, #RightBoxContainer, #BottomBoxContainer, #DesktopModeLabel { Color: #808080; }
|
|
#BottomBox, #BottomBoxContainer {
|
|
Box-Sizing: Border-Box;
|
|
Position: Fixed;
|
|
Bottom: 0;
|
|
Left: 0;
|
|
Right: 0;
|
|
Width: 100%;
|
|
Min-Height: 48px;
|
|
}
|
|
#BottomBoxContainer { Padding: Var(--ScreenBorderPadding); }
|
|
#TopBoxLeft {
|
|
Text-Align: Left;
|
|
Display: Inline-Block;
|
|
}
|
|
#TopBoxRight {
|
|
Text-Align: Right;
|
|
Float: Right;
|
|
Clear: Both;
|
|
}
|
|
|
|
/*
|
|
#PrivacyPopup {
|
|
Display: None;
|
|
Visibility: Hidden;
|
|
Position: Fixed;
|
|
Z-Index: 16;
|
|
Color: #fafaf0;
|
|
Background: Var(--cBackDark);
|
|
Max-Width: 60vw;
|
|
Max-Height: 50vh;
|
|
Overflow-Y: Scroll;
|
|
Bottom: 64px;
|
|
Right: Calc(Var(--ContentPadding) * 2);
|
|
Padding: Var(--ContentPadding);
|
|
Padding-Bottom: Calc(Var(--ContentPadding) * 2);
|
|
}
|
|
*/
|
|
|
|
#MainBoxGlobalFooter,
|
|
#StatCounter,
|
|
.Center {
|
|
Text-Align: Center;
|
|
}
|
|
#MainBoxGlobalFooter span { Vertical-Align: Top; }
|
|
|
|
#LeftBoxCheck, #LeftBoxLabel {
|
|
Float: Left;
|
|
Left: 0;
|
|
Margin: Var(--ScreenBorderPadding);
|
|
}
|
|
#RightBoxCheck, #RightBoxLabel {
|
|
Float: Right;
|
|
Right: 0;
|
|
Margin: Var(--ScreenBorderPadding);
|
|
}
|
|
#BottomBoxCheck, #BottomBoxLabel {
|
|
Float: Left;
|
|
Left: 0;
|
|
Margin: Var(--ScreenBorderPadding);
|
|
}
|
|
.ToggleBoxCheck, #DesktopModeCheck {
|
|
Position: Fixed;
|
|
Opacity: 0;
|
|
}
|
|
.ToggleBoxCheck:Checked ~ .ToggleBox {
|
|
Display: None;
|
|
Visibility: Hidden;
|
|
}
|
|
|
|
/* No selezione */
|
|
#LeftBox, #LeftBoxContainer,
|
|
#RightBox, #RightBoxContainer,
|
|
#BottomBoxLabel, #BottomBoxCheck,
|
|
#DesktopModeLabel, #DesktopModeCheck {
|
|
-webkit-touch-callout: none;
|
|
-webkit-user-select: none;
|
|
-khtml-user-select: none;
|
|
-moz-user-select: none;
|
|
-ms-user-select: none;
|
|
User-Select: none;
|
|
}
|
|
|
|
${wPagesList} > Li > .staticoso-List-Title {
|
|
Left: -1em;
|
|
Position: Relative;
|
|
Font-Size: Large;
|
|
}
|
|
|
|
${wPagesList} Li {
|
|
/*background: RGBA(128,128,128,0.5);
|
|
border-radius: 2px;
|
|
box-shadow: 0px 2px 2px pink;
|
|
margin-bottom: 1em;*/
|
|
Display: Block;
|
|
}
|
|
|
|
${wPagesList} Li > Span { Min-Width: Fit-Content; }
|
|
|
|
${wPagesList} > Li > A,
|
|
${wPagesList} Li > Span + A {
|
|
Font-Size: Larger;
|
|
}
|
|
|
|
${wPagesList} Li > Span + A { Margin-Bottom: 1em; }
|
|
|
|
@Media (Max-Width: 750px) {
|
|
${wPagesList} Li > Span + A { Display: Block; }
|
|
}
|
|
|
|
@Media (Min-Width: 750px) {
|
|
${wPagesList} Li { Display: Flex; }
|
|
/*
|
|
${wPagesList} Li:Not(:First-Of-Type) > Span {
|
|
Margin-Left: 16px;
|
|
}
|
|
${wPagesList} Li:Not(:First-Of-Type) > Span:Before {
|
|
background: black;
|
|
content: "";
|
|
min-width: 2px;
|
|
max-width: 2px;
|
|
}
|
|
*/
|
|
}
|
|
|
|
@Media (Max-Width: ${DeskModeMinWid}) {
|
|
Details > Summary:Hover { Font-Size: 15pt; }
|
|
#DesktopModeCheck, #DesktopModeLabel { Display: None; }
|
|
}
|
|
|
|
iframe.Embed-16-9 {
|
|
Height: Calc(75vw / 16 * 9);
|
|
}
|
|
|
|
${IfDeskMode_Div} iframe.Embed-16-9 {
|
|
Height: Calc(67.5vw / 16 * 9);
|
|
}
|
|
|
|
/*--------------------------------------------------------*/
|
|
|
|
|
|
|
|
/*--------------------------------------------------------*
|
|
* Desktop view mode *
|
|
*--------------------------------------------------------*/
|
|
|
|
@Media (Min-Width: ${DeskModeMinWid}) {
|
|
#DesktopModeCheck/*:Unchecked*/ {
|
|
Opacity: 0;
|
|
|
|
/* For position on top screen area:
|
|
Position: Absolute;
|
|
*/
|
|
|
|
/* For position on bottom ribbon: */
|
|
Position: Fixed;
|
|
/* */
|
|
|
|
/* Yeah what? Values below have an unknown relationship *\
|
|
\* to the Top and Left of the label (see below) */
|
|
|
|
/* Button on top (issues, see below):
|
|
Top: 5.0em;
|
|
Left: 7.5em;
|
|
*/
|
|
|
|
/* Button on top of bottom ribbon */
|
|
Bottom: 0.5em;
|
|
Left: 3.5em;
|
|
Z-Index: 4;
|
|
/* */
|
|
}
|
|
/*#DesktopModeCheck:Unchecked ~*/ #DesktopModeLabel {
|
|
/* For position on top screen area:
|
|
Position: Absolute;
|
|
*/
|
|
|
|
/* For position on bottom ribbon: */
|
|
Position: Fixed;
|
|
/* */
|
|
|
|
/* Idk why sometimes with some zoom levels *\
|
|
\* this appears to shift up or down 1-2 pixels */
|
|
|
|
/* Button on top (issues, see below):
|
|
Top: 3.55em;
|
|
Left: 5em;
|
|
*/
|
|
|
|
/* Button on top of bottom ribbon */
|
|
Bottom: 0.5em;
|
|
Left: 3.5em;
|
|
Z-Index: 4;
|
|
/* */
|
|
}
|
|
|
|
/* Nota: Forse dovrebbe stare più in alto, a destra, a fianco del tasto Menu */
|
|
${IfDeskMode} { /* Desktop mode checkbox itself */
|
|
Position: Fixed;
|
|
|
|
/* Button below menu one (issue: gets covered by big menu):
|
|
Top: 5.5em;
|
|
Left: 3.5em;
|
|
*/
|
|
|
|
/* Button right of menu one (issue: looks bad because goes over content):
|
|
Z-Index: 8;
|
|
Top: 1.5em;
|
|
Left: Calc(Var(--mDesktopSideWidth) - Var(--mDesktopSideLeft) + 2em);
|
|
*/
|
|
}
|
|
${IfDeskMode} ~ #DesktopModeLabel {
|
|
Position: Fixed;
|
|
|
|
/* Button below menu one (issue: gets covered by big menu):
|
|
Top: 4em;
|
|
Left: 2em;
|
|
*/
|
|
|
|
/* Button right of menu one (issue: looks bad because goes over content):
|
|
Z-Index: 8;
|
|
Top: 1em;
|
|
Left: Calc(Var(--mDesktopSideWidth) - Var(--mDesktopSideLeft) + 1em);
|
|
*/
|
|
}
|
|
|
|
${IfDeskMode_Div} #MainBox {
|
|
Top: 0px;
|
|
Left: Unset;
|
|
Right: 2%;
|
|
Width: Var(--mDesktopMainWidth);
|
|
}
|
|
/*
|
|
#LeftBoxContainer, #RightBoxContainer {
|
|
Float: None;
|
|
Width: 24%;
|
|
Position: Static;
|
|
}
|
|
#LeftBox, #RightBox {
|
|
Padding: 0px;
|
|
Margin: 0px;
|
|
}
|
|
*/
|
|
${IfDeskMode_Div} #LeftBox { max-height: calc(100vh - 52px - 3.5em); Z-Index: 256; }
|
|
${IfDeskMode_Div} #RightBox { max-height: calc(100vh - 56px - 4em); }
|
|
${Where(IfDeskMode_Div+' ', '#LeftBox, #RightBox', '')} {
|
|
Position: Fixed;
|
|
Bottom: 52px;
|
|
Left: Var(--mDesktopSideLeft)/*8px*/;
|
|
Width: Calc(Var(--mDesktopSideWidth) - Var(--mDesktopSideLeft));
|
|
Overflow: Scroll;
|
|
}
|
|
${IfDeskMode_Div} #LeftBoxContainer > Details > Summary,
|
|
${IfDeskMode_Div} #RightBoxContainer > Details > Summary {
|
|
position: fixed;
|
|
left: Calc(Var(--mDesktopSideWidth) - Var(--mDesktopSideLeft) - 60px);
|
|
}
|
|
${IfDeskMode_Div} #LeftBoxContainer > Details > Summary { Top: 1em; }
|
|
${IfDeskMode_Div} #RightBoxContainer > Details > Summary { Top: 4em; }
|
|
${IfDeskMode_Div} #TopBoxLeft { Position: Fixed; }
|
|
|
|
/* Disable this hover for now: Strange bug with summary button of right sidebar, *\
|
|
\* goes way lower than it should (?) and does glitchy movements */
|
|
${IfDeskMode_Div} Details > Summary:Not(
|
|
#LeftBoxContainer > Details > Summary,
|
|
#RightBoxContainer > Details > Summary
|
|
):Hover { Font-Size: 15pt; }
|
|
}
|
|
|
|
/*--------------------------------------------------------*/
|
|
|
|
|
|
|
|
/*--------------------------------------------------------*
|
|
* Gradienti *
|
|
*--------------------------------------------------------*/
|
|
|
|
.MainIdTextGradientL {
|
|
Background: linear-gradient(to left, #d000d0, #8040d0);
|
|
Color: Transparent;
|
|
-webkit-background-clip: Text;
|
|
Background-Clip: Text;
|
|
}
|
|
.MainIdTextGradientR {
|
|
Background: linear-gradient(to right, #d000d0, #8040d0);
|
|
Color: Transparent;
|
|
-webkit-background-clip: Text;
|
|
Background-Clip: Text;
|
|
}
|
|
|
|
/*--------------------------------------------------------*/
|
|
|
|
|
|
|
|
/*--------------------------------------------------------*
|
|
* Animazioni *
|
|
*--------------------------------------------------------*/
|
|
|
|
H1, H2, H3, A, Img, Video, Summary,
|
|
.YesHoverLight {
|
|
Transition: 0.3s;
|
|
}
|
|
|
|
/*--------------------------------------------------------*/
|
|
|
|
${RawDataCssRule(RawDataCss)}
|
|
`);
|