a : link {
color : # D7F ;
font-size : 0 . 8em ;
}
a : visited {
color : # D7F ;
font-size : 0 . 8em ;
}
a : hover {
color : white ;
font-size : 0 . 8em ;
}
a . nounderline : link {
text-decoration : none ;
}
a . nounderline : visited {
text-decoration : none ;
}
a . nounderline : hover {
text-decoration : none ;
}
h2 {
font-size : 3em ;
}
. generateTime {
font-size : 10px ;
color : blue ;
}
. codeForeground {
font-family : 'Courier New' , Courier , monospace ;
position : fixed ;
left : -12px ;
top : -8px ;
z-index : -4999 ;
color : rgba ( 0 , 0 , 0 , 0 ) ;
background : linear-gradient ( 90deg , rgba ( 17 , 17 , 17 , 1 ) 0 % , rgba ( 17 , 17 , 17 , 1 ) 42 % , rgba ( 17 , 17 , 17 , 0 . 6825105042016807 ) 44 % , rgba ( 17 , 17 , 17 , 1 ) 46 % , rgba ( 17 , 17 , 17 , 1 ) 100 % ) ;
background-size : 300 % 100 % ;
user-select : none ;
animation-name : backgroundMove ;
animation-duration : 15s ;
animation-iteration-count : infinite ;
font-size : 32px ;
overflow : hidden ;
max-width : 98vw ;
max-height : 90vh ;
}
. codeBackground {
font-family : 'Courier New' , Courier , monospace ;
position : fixed ;
left : -12px ;
top : -8px ;
color : # 44FF44 ;
z-index : -5000 ;
user-select : none ;
font-size : 32px ;
overflow : hidden ;
max-width : 98vw ;
max-height : 90vh ;
}
@ keyframes backgroundMove {
0 % {
background-position : 0 % 50 % ;
}
100 % {
background-position : 100 % 50 % ;
}
}
body {
font-family : 'Trebuchet MS' , Garamond , serif , 'Tahoma' , system-ui , -apple-system , BlinkMacSystemFont , 'Segoe UI' , Roboto , Oxygen , Ubuntu , Cantarell , 'Open Sans' , 'Helvetica Neue' , sans-serif ;
background-color : # 111 ;
}
sub {
font-size : 0 . 65em ;
position : relative ;
bottom : -4px ;
}
sup {
font-size : 0 . 65em ;
position : relative ;
top : -8px ;
}
. contentBody {
backdrop-filter : blur ( 4px ) ;
color : # a985e4 ;
font-weight : 900 ;
text-shadow : 0 . 3px 0 . 3px 3px # 666666 ;
z-index : -1 ;
}
. contentBody . color1 {
color : # a985e4 ;
}
. contentBody . color2 {
color : # 85abe4 ;
}
. contentBody . color3 {
color : # 85e4ad ;
}
. contentBody . color4 {
color : # d3e485 ;
}
. contentBody . color5 {
color : # e4a385 ;
}
. contentBody . color6 {
color : # e485b1 ;
}
. contentBody . contentWrapper {
position : relative ;
border-style : none none outset none ;
border-radius : 0px 0px 12px 0px ;
border-color : rgb ( 17 , 153 , 17 , . 3 ) ;
border-width : 3px ;
margin : 0px 4px 8px 4px ;
min-width : 98vw ;
z-index : 0 ;
}
. contentBody . contentWrapper : hover {
border-color : rgb ( 17 , 153 , 17 , . 8 ) ;
}
. contentBody . contentWrapper h1 {
display : inline-block ;
font-size : 3 . 25em ;
margin : 12px 4px 0px 4px ;
padding : 12px 32px 12px 32px ;
border-bottom-style : outset ;
border-radius : 32px 32px 0px 0px ;
color : # AA77FF ;
background-color : rgba ( 255 , 255 , 255 , . 06 ) ;
z-index : 0 ;
}
. contentBody . contentWrapper . content {
display : inline-block ;
min-width : 97vw ;
font-size : 1 . 15em ;
line-height : 1 . 4 ;
padding : 4px ;
margin : 0px 4px 0px 4px ;
background-color : rgba ( 255 , 255 , 255 , . 06 ) ;
z-index : 0 ;
max-height : 120px ;
overflow : hidden ;
}
. contentBody . contentWrapper . expandedContent {
display : inline-block ;
min-width : 97vw ;
font-size : 1 . 15em ;
line-height : 1 . 4 ;
padding : 4px ;
margin : 0px 4px 0px 4px ;
background-color : rgba ( 255 , 255 , 255 , . 06 ) ;
z-index : 0 ;
}
. contentBody . contentWrapper figure {
border : 2px ridge rgb ( 88 , 35 , 86 ) ;
border-radius : 4px ;
margin : 12px 20px 12px 20px ;
}
. contentBody . contentWrapper figcaption {
font-size : 0 . 85em ;
font-style : italic ;
color : rgb ( 221 , 105 , 217 ) ;
}
. contentBody . contentWrapper . datebar {
font-size : 0 . 75em ;
margin : 0px 4px 0px 4px ;
min-width : 98vw ;
min-height : 1px ;
z-index : 0 ;
background : linear-gradient ( 90deg , rgba ( 255 , 255 , 255 , . 06 ) 0 % , rgba ( 255 , 255 , 255 , . 3 ) 20 % , rgba ( 255 , 255 , 255 , . 06 ) 45 % , rgba ( 255 , 255 , 255 , . 06 ) 0 % ) ;
}
. contentBody . contentWrapper . date {
font-size : 0 . 75em ;
margin : 0px 4px 0px 4px ;
padding : 2px 0px 0px 2px ;
min-width : 98vw ;
z-index : 0 ;
background-color : rgba ( 255 , 255 , 255 , . 06 ) ;
}
. contentBody . contentWrapper . unexpanded {
position : absolute ;
bottom : 0px ;
min-width : 98vw ;
text-align : center ;
font-size : 1 . 75em ;
background : linear-gradient ( 180deg , rgba ( 255 , 255 , 255 , 0 ) 0 % , rgba ( 255 , 255 , 255 , 0 ) 5 % , rgba ( 32 , 32 , 32 , 1 . 0 ) 100 % ) ;
user-select : none ;
}
. contentBody . contentWrapper . unexpanded : hover {
bottom : -8px ;
background : linear-gradient ( 180deg , rgba ( 255 , 255 , 255 , 0 ) 0 % , rgba ( 255 , 255 , 255 , 0 ) 5 % , rgba ( 64 , 64 , 64 , 1 . 0 ) 100 % ) ;
cursor : pointer ;
}
. contentBody . filelisting {
padding : 12px 4px 2px 4px ;
font-size : 1 . 75em ;
}
. contentBody . folderlisting {
padding : 12px 4px 2px 4px ;
font-size : 1 . 75em ;
}
. contentBody . icon : link {
text-decoration : none ;
}
. contentBody . icon : visited {
text-decoration : none ;
}
. contentBody . icon : hover {
text-decoration : none ;
}
pre {
font-family : 'Courier New' , Courier , monospace ;
display : inline-block ;
padding : 3px ;
margin-left : 20px ;
font-size : 0 . 85em ;
position : relative ;
width : 85vw ;
max-height : 480px ;
overflow : scroll ;
inline-size : 85vw ;
color : darkseagreen ;
background : radial-gradient ( farthest-side at 90 % 90 % , rgba ( 0 , 255 , 0 , . 06 ) 0 % , rgba ( 255 , 255 , 255 , . 06 ) 100 % ) ;
}
/* width */
:: -webkit-scrollbar {
width : 8px ;
height : 8px ;
float : right ;
}
:: -webkit-scrollbar : hover {
width : 16px ;
height : 16px ;
}
/* Track */
:: -webkit-scrollbar-track {
background : rgba ( 0 , 0 , 0 , 0 ) ;
}
/* Handle */
:: -webkit-scrollbar-thumb {
background : rgb ( 161 , 46 , 161 ) ;
}
/* Handle on hover */
:: -webkit-scrollbar-thumb : hover {
background : rgb ( 197 , 34 , 189 ) ;
}
:: -webkit-scrollbar-corner {
background : rgba ( 0 , 0 , 0 , 0 ) ;
}
/* width */
pre :: -webkit-scrollbar {
width : 16px ;
height : 16px ;
}
pre . keyword {
color : cornflowerblue ;
}
pre . variable {
color : # AA77FF ;
}
pre . class {
color : rgb ( 216 , 107 , 74 ) ;
}
pre . function {
color : darkgoldenrod ;
}
pre . string {
color : forestgreen ;
}
pre . number {
color : # d8f070 ;
}
pre . comment {
color : # 6b235e ;
}
textarea {
font-family : 'Courier New' , Courier , monospace ;
display : inline-block ;
padding : 3px ;
margin-left : 20px ;
font-size : 0 . 85em ;
position : relative ;
inline-size : 85vw ;
color : darkseagreen ;
background : radial-gradient ( farthest-side at 90 % 90 % , rgba ( 0 , 255 , 0 , . 06 ) 0 % , rgba ( 255 , 255 , 255 , . 06 ) 100 % ) ;
border-radius : 8px ;
font-size : 1 . 4em ;
}
textarea : focus {
outline : none ! important ;
}
h1 {
font-size : 6em ;
}
. commentForm {
padding : 16px ;
line-height : 2 . 2 ;
vertical-align : text-top ;
}
. commentInfo {
padding-left : 24px ;
}
. commentDisplayer {
font-family : 'Courier New' , Courier , monospace ;
border : 1px solid rgb ( 36 , 163 , 36 ) ;
border-radius : 8px ;
margin : 16px ;
padding : 8px ;
line-height : 1 . 4 ;
}
input {
font-family : 'Courier New' , Courier , monospace ;
width : 240px ;
background-color : rgba ( 0 , 0 , 0 , 0 ) ;
border : 1px solid rgb ( 4 , 80 , 4 ) ;
color : lime ;
font-size : 1 . 4em ;
}
input : focus {
outline : none ! important ;
background-color : rgb ( 24 , 24 , 24 ) ;
border : 1px solid rgb ( 10 , 136 , 10 ) ;
}
option {
font-family : 'Courier New' , Courier , monospace ;
width : 240px ;
background-color : rgba ( 0 , 0 , 0 , 0 ) ;
border : 1px solid rgb ( 4 , 80 , 4 ) ;
color : lime ;
font-size : 1 . 4em ;
}
option : focus {
outline : none ! important ;
background-color : rgb ( 24 , 24 , 24 ) ;
border : 1px solid rgb ( 10 , 136 , 10 ) ;
}
select {
font-family : 'Courier New' , Courier , monospace ;
width : 240px ;
background-color : rgba ( 0 , 0 , 0 , 0 ) ;
border : 1px solid rgb ( 4 , 80 , 4 ) ;
color : lime ;
font-size : 1 . 4em ;
}
select : focus {
outline : none ! important ;
background-color : rgb ( 24 , 24 , 24 ) ;
border : 1px solid rgb ( 10 , 136 , 10 ) ;
}
button {
background-color : rgba ( 0 , 0 , 0 , 0 ) ;
border : 1px solid rgb ( 4 , 80 , 4 ) ;
font-size : 2em ;
margin-left : 24px ;
margin-top : 8px ;
color : lime ;
}
button : hover {
background-color : rgb ( 0 , 53 , 3 ) ;
border : 1px solid rgb ( 10 , 136 , 10 ) ;
}
button : disabled {
background-color : rgb ( 0 , 81 , 95 ) ;
}
select : disabled {
background-color : rgb ( 0 , 81 , 95 ) ;
}
input : disabled {
background-color : rgb ( 0 , 81 , 95 ) ;
}
textarea : disabled {
background-color : rgb ( 0 , 81 , 95 ) ;
}
. toolbar {
background-color : # 666666 ;
color : # 000000 ;
font-size : 0 . 75em ;
width : fit-content ;
margin-left : 36px ;
margin-top : 24px ;
}
. toolbarItem : hover {
background-color : # a1a1a1 ;
cursor : pointer ;
}
< hr / >
< script type = "text/javascript" >
function changeColor ( ) {
document . getElementById ( "submit" ) . style . borderColor = document . getElementById ( "msg" ) . style . borderColor = document . getElementById ( "name" ) . style . borderColor = document . getElementById ( "col" ) . style . borderColor = document . getElementById ( "col" ) . options [ document . getElementById ( "col" ) . selectedIndex ] . text
}
function submit ( ) {
document . getElementById ( "submit" ) . disabled =
document . getElementById ( "name" ) . disabled =
document . getElementById ( "col" ) . disabled =
document . getElementById ( "msg" ) . disabled = true ;
fetch ( "/COMMENTS?submit=true&article=sig.css.comment&message=" + encodeURIComponent ( document . getElementById ( "msg" ) . value ) + "&name="
+ encodeURIComponent ( document . getElementById ( "name" ) . value ) + "&color="
+ encodeURIComponent ( document . getElementById ( "col" ) . options [ document . getElementById ( "col" ) . selectedIndex ] . text )
) . then ( ( data ) = > data . text ( ) )
. then ( ( data ) = > {
document . getElementById ( "msg" ) . value = ""
document . getElementById ( "name" ) . value = ""
document . getElementById ( "submit" ) . disabled =
document . getElementById ( "name" ) . disabled =
document . getElementById ( "col" ) . disabled =
document . getElementById ( "msg" ) . disabled = false ;
fetchComments ( )
} )
}
function insert ( c1 , c2 ) {
if ( document . getElementById ( "msg" ) . selectionStart = = document . getElementById ( "msg" ) . selectionEnd ) {
/ / No highlighting . Insert here .
if ( c2 ! = undefined ) {
document . getElementById ( "msg" ) . value = document . getElementById ( "msg" ) . value . substring ( 0 , document . getElementById ( "msg" ) . selectionStart ) + c1 + c2 + document . getElementById ( "msg" ) . value . substring ( document . getElementById ( "msg" ) . selectionStart )
} else {
document . getElementById ( "msg" ) . value = document . getElementById ( "msg" ) . value . substring ( 0 , document . getElementById ( "msg" ) . selectionStart ) + c1 + document . getElementById ( "msg" ) . value . substring ( document . getElementById ( "msg" ) . selectionStart )
}
} else {
if ( c2 ! = undefined ) {
document . getElementById ( "msg" ) . value = document . getElementById ( "msg" ) . value . substring ( 0 , document . getElementById ( "msg" ) . selectionStart ) + c1 + document . getElementById ( "msg" ) . value . substring ( document . getElementById ( "msg" ) . selectionStart , document . getElementById ( "msg" ) . selectionEnd ) + c2 + document . getElementById ( "msg" ) . value . substring ( document . getElementById ( "msg" ) . selectionEnd )
} else {
document . getElementById ( "msg" ) . value = document . getElementById ( "msg" ) . value . substring ( 0 , document . getElementById ( "msg" ) . selectionStart ) + c1 + document . getElementById ( "msg" ) . value . substring ( document . getElementById ( "msg" ) . selectionStart )
}
}
}
< / script >
< div id = "commentForm" >
< b > Leave a comment ! < / b > < br / > < br / >
< label for = "name" > Display Name : < / label > < input id = "name" > < / input > < br / > < br / >
< label for = "col" > Display Color : < / label > < select id = "col" onchange = "changeColor()" >
< option value = "RED" > RED < / option >
< option value = "GREEN" selected > GREEN < / option >
< option value = "YELLOW" > YELLOW < / option >
< option value = "BLUE" > BLUE < / option >
< option value = "MAGENTA" > MAGENTA < / option >
< option value = "CYAN" > CYAN < / option >
< option value = "WHITE" > WHITE < / option >
< / select > < br / > < br / >
< label for = "msg" style = "vertical-align:top;display:inline;" > Message : < / label >
< div >
< div class = "toolbar" >
< span class = "toolbarItem" onclick = "insert('^','^')" title = "Bold" > & nbsp ; < b > B < / b > & nbsp ; < / span >
< span class = "toolbarItem" onclick = "insert('*','*')" title = "Italics" > & nbsp ; < i > I < / i > & nbsp ; < / span >
< span class = "toolbarItem" onclick = "insert('_','_')" title = "Underline" > & nbsp ; < u > U < / u > & nbsp ; < / span >
< span class = "toolbarItem" onclick = "insert('~','~')" title = "Code" > & nbsp ; & lt ; code & gt ; & nbsp ; < / span >
< span class = "toolbarItem" onclick = "insert('[',']')" title = "Link" > & nbsp ; & lt ; http : / / & gt ; & nbsp ; < / span >
< span class = "toolbarItem" onclick = "insert('😊')" title = "Smiley Face Emoji" > & nbsp ; 😊 & nbsp ; < / span >
< span class = "toolbarItem" onclick = "insert('😔')" title = "Sad Face Emoji" > & nbsp ; 😔 & nbsp ; < / span >
< span class = "toolbarItem" onclick = "insert('👍')" title = "Thumbs Up Emoji" > & nbsp ; 👍 & nbsp ; < / span >
< span class = "toolbarItem" onclick = "insert('❤️ ')" title = "Heart Emoji" > & nbsp ; ❤ ️ & nbsp ; < / span >
< span class = "toolbarItem" onclick = "insert('😡')" title = "Pouting Emoji" > & nbsp ; 😡 & nbsp ; < / span >
< / div >
< textarea id = "msg" > < / textarea >
< / div > < br / > < br / >
< button id = "submit" onclick = "submit()" > POST < / button >
< / div > < br / > < br / >
< div id = "commentContainer" style = "visibility:hidden;" >
< h2 > Comments < sub > ( < span class = "commentCounter" id = "commentCounter" > 0 < / span > ) < / sub > < / h2 >
< div class = "comments" id = "comments" > < / div >
< / div >
< script type = "text/javascript" >
function fetchComments ( ) {
fetch ( "/COMMENTS?article=sig.css.comment" ) . then ( ( data ) = > data . text ( ) )
. then ( ( data ) = > {
data = data . split ( "\n" ) ;
document . getElementById ( "comments" ) . innerHTML = "" ;
document . getElementById ( "commentCounter" ) . innerText = data [ 0 ]
for ( var i = data . length-3 ; i > = 1 ; i- = 2 ) {
if ( data [ i ] . trim ( ) . length > 0 & & data [ i + 1 ] . trim ( ) . length > 0 ) {
document . getElementById ( "comments" ) . innerHTML + = "<div id=\"msg" + ( ( i + 1 ) / 2 ) + "\" class=\"commentDisplayer\"><div class=\"commentData\">" + decodeURIComponent ( data [ i ] ) + "</div><br>"
data2 = data [ i + 1 ] . split ( ";" ) ;
document . getElementById ( "msg" + ( ( i + 1 ) / 2 ) ) . style . borderColor = data2 [ 1 ]
document . getElementById ( "comments" ) . innerHTML + = "<div class=\"commentInfo\"><sup>- " + decodeURIComponent ( data2 [ 0 ] ) + "</sup></div></div><br>"
}
}
document . getElementById ( "commentContainer" ) . style . visibility = "visible"
} )
}
fetchComments ( )
changeColor ( )
< / script >