
ossilphant_3.0.0.2.source-code.style-css-gen-untemplate.scala Maven / Gradle / Ivy
// DO NOT HAND EDIT -- Autogenerated from 'style.css.gen.untemplate' at 2023-09-25T05:41:50.536648Z
package com.mchange.fossilphant.theme.tower
import java.io.{Writer,StringWriter}
import scala.collection.*
import com.mchange.fossilphant.*
val Untemplate_style_css_gen = new untemplate.Untemplate[LocatedContext,Nothing]:
val UntemplateFunction : untemplate.Untemplate[LocatedContext,Nothing] = this
val UntemplateName : String = "style_css_gen"
val UntemplatePackage : String = "com.mchange.fossilphant.theme.tower"
val UntemplateInputName : String = "locatedContext"
val UntemplateInputTypeDeclared : String = "LocatedContext"
val UntemplateInputTypeCanonical : Option[String] = untemplate.Macro.nonEmptyStringOption( untemplate.Macro.recursiveCanonicalName[LocatedContext] )
val UntemplateInputDefaultArgument : Option[LocatedContext] = (None : Option[LocatedContext])
val UntemplateOutputMetadataTypeDeclared : String = "Nothing"
val UntemplateOutputMetadataTypeCanonical : Option[String] = untemplate.Macro.nonEmptyStringOption( untemplate.Macro.recursiveCanonicalName[Nothing] )
val UntemplateHeaderNote : String = ""
val UntemplateAttributes : immutable.Map[String,Any] = immutable.Map.empty
def apply(locatedContext : LocatedContext) : untemplate.Result[Nothing] =
val writer : StringWriter = new StringWriter(80200)
val attrs : immutable.Map[String,Any] = UntemplateAttributes
var mbMetadata : Option[Nothing] = None
var outputTransformer : Function1[untemplate.Result[Nothing],untemplate.Result[Nothing]] = identity
val config = locatedContext.context.config
val tc = config.themeConfig
val block0 = new Function0[String]:
def apply() : String =
"\n@font-face {\n font-family: 'Montserrat';\n src: url('font/Montserrat/Montserrat-VariableFont_wght.ttf');\n}\n@font-face {\n font-family: 'Montserrat-Italic';\n src: url('font/Montserrat/Montserrat-Italic-VariableFont_wght.ttf');\n}\n\n:root {\n --page-background-color: " + ( tc.getOrElse( "page.background.color", "#D0D2D1" ) ) +
";\n --post-background-color: " + ( tc.getOrElse( "post.background.color", "#FFFFFF" ) ) +
";\n --post-text-color: " + ( tc.getOrElse( "post.text.color", "black" ) ) +
";\n --outer-text-color: " + ( tc.getOrElse( "outer.text.color", "black" ) ) +
";\n --outer-link-color: " + ( tc.getOrElse( "outer.link.color", "#0000EE" ) ) +
";\n --outer-link-color-visited: " + ( tc.getOrElse( "outer.link.color.visited", "#551A8B" ) ) +
";\n --post-link-color: " + ( tc.getOrElse( "post.link.color", "#0000EE" ) ) +
";\n --post-link-color-visited: " + ( tc.getOrElse( "post.link.color.visited", "#551A8B" ) ) +
";\n --post-border-color: " + ( tc.getOrElse( "post.border.color", "gray" ) ) +
";\n --thread-border-color: " + ( tc.getOrElse( "thread.border.color", "black" ) ) +
";\n\n --avatar-slot: 60px;\n --avatar-padding: 5px;\n --thread-border: 3px solid var( --thread-border-color );\n --outer-text-right-margin: 1rem;\n font-size: 11pt;\n}\n*, *::before, *::after {\n box-sizing: border-box;\n}\nbody {\n display: grid;\n grid-template-columns: 1fr 600px 1fr;\n grid-template-rows: auto auto auto;\n background-color: var( --page-background-color );\n font-family: 'Montserrat', sans-serif;\n font-variation-settings: \"wght\" 400;\n color: var( --outer-text-color );\n border: 0;\n margin: 0;\n padding: 0;\n gap: 0 0;\n overflow-x: clip;\n}\na:link {\n color: var( --outer-link-color );\n text-decoration: none;\n}\na:link:visited {\n color: var( --outer-link-color-visited );\n text-decoration: none;\n}\na:link:hover {\n color: var( --outer-link-color );\n text-decoration: underline;\n}\nem, i {\n font-family: 'Montserrat-Italic', sans-serif;\n}\ndiv {\n margin: 0;\n padding: 0;\n /* border: 1px solid black; */\n}\n#header {\n grid-column: 1 / span 3;\n grid-row: 1;\n}\n#left-sidebar {\n grid-column: 1;\n grid-row: 2;\n}\n#main-content {\n grid-column: 2;\n grid-row: 2;\n}\n#right-sidebar {\n grid-column: 3;\n grid-row: 2;\n}\n#footer {\n grid-column: 1 / span 3;\n grid-row: 3;\n}\n#main-title {\n font-size: 150%;\n font-variation-settings: \"wght\" 600;\n text-align: center;\n margin-bottom: 0.5rem;\n margin-top: 0.75rem;\n}\n#tagline {\n font-family: 'Montserrat-Italic', sans-serif;\n font-variation-settings: \"wght\" 500;\n font-size: 110%;\n padding-left: 3rem;\n padding-right: 3rem;\n padding-bottom: 0.75rem;\n margin-bottom: 0.75rem;\n text-align: center;\n color: #0bb;\n /* border-bottom: 2px solid black; */\n}\n.post {\n padding: 0.5em;\n color: var( --post-text-color );\n background-color: var( --post-background-color );\n border: 1px solid var( --post-border-color );\n margin-bottom: 0.25rem;\n position: relative; /* so we can use absolute positioning within it */\n overflow-x: clip;\n}\n.post a:link {\n color: var( --post-link-color );\n text-decoration: none;\n}\n.post a:link:visited {\n color: var( --post-link-color-visited );\n text-decoration: none;\n}\n.post a:link:hover {\n color: var( --post-link-color );\n text-decoration: underline;\n}\n.avatar-names {\n display: grid;\n grid-template-columns: var( --avatar-slot ) 1fr;\n grid-template-rows: 1fr 1fr;\n width: 100%;\n height: var( --avatar-slot );\n}\n.avatar-names .avatar img {\n width: var( --avatar-slot );\n height: var( --avatar-slot );\n padding: var( --avatar-padding );\n border-radius: 10px;\n}\n.avatar-names .avatar {\n grid-column: 1;\n grid-row: 1 / span 2;\n align-self: center;\n justify-self: center;\n}\n.avatar-names .post-display-name {\n grid-column: 2;\n grid-row: 1;\n font-variation-settings: \"wght\" 700;\n align-self: end;\n justify-self: start;\n margin-left: 0.5rem;\n margin-bottom: 0.1rem;\n}\n.avatar-names .post-user {\n grid-column: 2;\n grid-row: 2;\n align-self: start;\n justify-self: start;\n margin-left: 0.5rem;\n margin-top: 0.1rem;\n}\n.post-timestamp {\n position: absolute;\n top: 0.5rem;\n right: 0.5rem;\n text-align: right;\n font-size: 80%;\n line-height: 120%;\n}\n.post-timestamp a {\n text-decoration: none;\n opacity: 0.5;\n}\n.post-timestamp a:hover {\n text-decoration: none;\n opacity: 1;\n}\n\n.post-content {\n margin-left: 0.5em;\n margin-right: 0.5em;\n line-height: 140%;\n}\n.post-in-reply-to {\n font-family: 'Montserrat-Italic', sans-serif;\n font-variation-settings: \"wght\" 300;\n font-size: 80%;\n width: 100%;\n text-align: right;\n}\n.post-image {\n text-align: center;\n position: relative; /* so tooltips can be positioned absolute */\n}\n.post-image img {\n max-width: 100%;\n max-height: 800px;\n}\n.post-in-reply-to + .post-image {\n margin-top: 0.5em;\n}\n\na.new-self-url:link {\n color: var( --post-text-color );\n text-decoration: none;\n}\na.new-self-url:visited {\n color: var( --post-text-color );\n text-decoration: none;\n}\na.new-self-url:hover {\n color: var( --post-text-color );\n text-decoration: underline;\n}\n\n/* modified from https://blog.hubspot.com/website/html-tooltip */\n.tooltip-text {\n visibility: hidden;\n position: absolute;\n z-index: 1;\n width: 200px;\n color: white;\n font-size: 12px;\n background-color: #192733;\n border-radius: 10px;\n padding: 10px 15px 10px 15px;\n left: 15px;\n top: 15px;\n}\n.post-image:hover .tooltip-text {\n visibility: visible;\n}\n\n.thread {\n border-left: var( --thread-border );\n border-right: var( --thread-border );\n border-top: var( --thread-border );\n}\n.thread .post:not(:last-child) {\n border-bottom: none;\n margin-bottom: 0;\n}\n.thread .post:last-child {\n border-bottom: var( --thread-border );\n}\n\n.poll {\n margin-left: 1rem;\n}\n.poll-item:not(:first-child) {\n margin-top: 0.25rem;\n}\n.poll-item {\n display: grid;\n grid-template-columns: 4rem auto 4rem;\n grid-template-rows: auto;\n grid-column-gap: 0.5rem;\n /* border: 1px solid green; */\n}\n.poll-item-percentage {\n grid-column: 1;\n grid-row: 1;\n justify-self: end;\n /* border: 1px solid red; */\n}\n.poll-item-text {\n grid-column: 2;\n grid-row: 1;\n /* border: 1px solid blue; */\n}\n.poll-item-count {\n grid-column: 3;\n grid-row: 1;\n justify-self: end;\n font-size: 80%;\n}\n.poll-item.winner {\n font-variation-settings: \"wght\" 600;\n align-self: center;\n}\n.poll-item.winner .poll-item-text::after {\n padding-left: 0.25rem;\n color: green;\n content: \"\\2714\";\n}\n.poll-item.winner .poll-item-count {\n font-variation-settings: \"wght\" 400;\n}\n\n\n.tabs {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: auto;\n padding-bottom: 1rem;\n}\n.tabs .tabs-left {\n grid-column: 1;\n grid-row: 1;\n align-self: end;\n justify-self: start;\n margin-left: 1rem;\n}\n.tabs .tabs-right {\n grid-column: 2;\n grid-row: 1;\n align-self: end;\n justify-self: end;\n margin-right: var( --outer-text-right-margin );\n}\n.tab.current {\n font-variation-settings: \"wght\" 600;\n}\n.produced-with {\n margin-top: 1.5rem;\n margin-right: 0.5rem;\n font-variation-settings: \"wght\" 600;\n font-size: 10;\n text-align: right;\n margin-right: var( --outer-text-right-margin );\n}\n@media only screen and (max-width: 650px) {\n body {\n grid-template-columns: 1fr 95% 1fr;\n font-size: 110%;\n }\n .produced-with {\n text-align: center;\n }\n .post-timestamp {\n font-size: 70%;\n line-height: 120%;\n }\n .tabs {\n display: grid;\n grid-template-rows: 1fr 1fr;\n grid-template-columns: auto;\n padding-bottom: 0.5rem;\n }\n .tabs .tabs-left {\n grid-column: 1;\n grid-row: 1;\n align-self: center;\n justify-self: start;\n margin-left: 1rem;\n margin-bottom: 0.125rem;\n }\n .tabs .tabs-right {\n grid-column: 1;\n grid-row: 2;\n align-self: center;\n justify-self: start;\n margin-left: 1rem;\n }\n}\n\n"
writer.write(block0())
outputTransformer( untemplate.Result( mbMetadata, writer.toString ) )
end apply
end Untemplate_style_css_gen
def style_css_gen(locatedContext : LocatedContext) : untemplate.Result[Nothing] = Untemplate_style_css_gen( locatedContext )
© 2015 - 2025 Weber Informatics LLC | Privacy Policy