diff --git a/app/src/main/java/com/capyreader/app/ui/articles/detail/ArticleTemplateColors.kt b/app/src/main/java/com/capyreader/app/ui/articles/detail/ArticleTemplateColors.kt index 82728e86..4d758ff2 100644 --- a/app/src/main/java/com/capyreader/app/ui/articles/detail/ArticleTemplateColors.kt +++ b/app/src/main/java/com/capyreader/app/ui/articles/detail/ArticleTemplateColors.kt @@ -7,16 +7,18 @@ import androidx.compose.ui.graphics.toArgb import com.jocmp.capy.articles.TemplateColors @Composable -fun articleTemplateColors() = TemplateColors( - onPrimaryContainer = colorScheme.onPrimaryContainer.toHTMLColor(), - onSurface = colorScheme.onSurface.toHTMLColor(), - onSurfaceVariant = colorScheme.onSurfaceVariant.toHTMLColor(), - primary = colorScheme.primary.toHTMLColor(), - primaryContainer = colorScheme.primaryContainer.toHTMLColor(), - surface = colorScheme.surface.toHTMLColor(), - surfaceContainerHighest = colorScheme.surfaceContainerHighest.toHTMLColor(), - surfaceVariant = colorScheme.surfaceVariant.toHTMLColor(), -) +fun articleTemplateColors() = + TemplateColors( + onPrimaryContainer = colorScheme.onPrimaryContainer.toHTMLColor(), + onSurface = colorScheme.onSurface.toHTMLColor(), + onSurfaceVariant = colorScheme.onSurfaceVariant.toHTMLColor(), + primary = colorScheme.primary.toHTMLColor(), + primaryContainer = colorScheme.primaryContainer.toHTMLColor(), + surface = colorScheme.surface.toHTMLColor(), + surfaceContainerHighest = colorScheme.surfaceContainerHighest.toHTMLColor(), + surfaceVariant = colorScheme.surfaceVariant.toHTMLColor(), + surfaceContainer = colorScheme.surfaceContainer.toHTMLColor() + ).asMap() private fun Color.toHTMLColor(): String { diff --git a/app/src/main/java/com/capyreader/app/ui/articles/detail/ArticleView.kt b/app/src/main/java/com/capyreader/app/ui/articles/detail/ArticleView.kt index 90879e75..0933e7ca 100644 --- a/app/src/main/java/com/capyreader/app/ui/articles/detail/ArticleView.kt +++ b/app/src/main/java/com/capyreader/app/ui/articles/detail/ArticleView.kt @@ -55,8 +55,7 @@ fun ArticleView( val snapshotList = articles.collectAsLazyPagingItems().itemSnapshotList val relations = remember(article, snapshotList) { ArticleRelations.from(article, snapshotList) } val articleID = article.id - val templateColors = articleTemplateColors() - val colors = templateColors.asMap() + val colors = articleTemplateColors() val webViewState = rememberSaveableWebViewState(key = articleID) val byline = article.byline(context = LocalContext.current) val showBars = canShowTopBar(webViewState) diff --git a/capy/src/main/assets/stylesheet.css b/capy/src/main/assets/stylesheet.css index 43aea234..bcc97457 100644 --- a/capy/src/main/assets/stylesheet.css +++ b/capy/src/main/assets/stylesheet.css @@ -1 +1 @@ -@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:normal;src:url("/res/font/atkinson_hyperlegible.ttf") format("truetype")}@font-face{font-family:"Poppins";font-style:normal;font-weight:normal;src:url("/res/font/poppins.ttf") format("truetype")}@font-face{font-family:"Vollkorn";font-style:normal;font-weight:normal;src:url("/res/font/vollkorn.ttf") format("truetype")}:root{--corner-radius: 0.1875rem}::selection{background-color:var(--color-primary-container)}body{font-family:sans-serif;word-wrap:break-word;margin:var(--article-top-margin) 0 0 0;padding:2rem 1rem;background-color:var(--color-surface);color:var(--color-on-surface);opacity:0}body.loaded{opacity:1}@media only screen and (min-width: 769px){body{padding:2rem 4rem}}a:link,a:visited{color:var(--color-primary)}code{font-size:.8em}code,pre{background:var(--code-background-color);border-radius:var(--corner-radius)}img,figure,video,div,object{max-width:100%;height:auto !important;margin:0 auto}iframe{max-width:100%;margin:0 auto}table{border-collapse:collapse;width:100%;table-layout:fixed}video{background-color:#000}video::-webkit-media-controls-fullscreen-button{display:none}td,th{border:1px solid #999;padding:.5rem;text-align:left;word-wrap:break-word}.article__header{display:block;margin-bottom:1rem}.article__header:link,.article__header:visited{text-decoration:none}.article__title h1{margin:0}#article-body-content{line-height:1.6em;margin-bottom:20vh}#article-body-content img{background-color:var(--color-surface-container-highest)}.article__body--font-default{font-family:sans-serif}.article__body--font-vollkorn{font-family:"Vollkorn"}.article__body--font-atkinson_hyperlegible{font-family:"Atkinson Hyperlegible"}.article__body--font-poppins{font-family:"Poppins"}.article__body--text-size-small{font-size:small}.article__body--text-size-medium{font-size:medium}.article__body--text-size-large{font-size:large}.article__body--text-size-x-large{font-size:x-large}.article__body--text-size-xx-large{font-size:xx-large} \ No newline at end of file +@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:normal;src:url("/res/font/atkinson_hyperlegible.ttf") format("truetype")}@font-face{font-family:"Poppins";font-style:normal;font-weight:normal;src:url("/res/font/poppins.ttf") format("truetype")}@font-face{font-family:"Vollkorn";font-style:normal;font-weight:normal;src:url("/res/font/vollkorn.ttf") format("truetype")}:root{--corner-radius: 0.1875rem}::selection{background-color:var(--color-primary-container)}body{font-family:sans-serif;word-wrap:break-word;margin:var(--article-top-margin) 0 0 0;padding:2rem 1rem;background-color:var(--color-surface);color:var(--color-on-surface);opacity:0}body.loaded{opacity:1}@media only screen and (min-width: 769px){body{padding:2rem 4rem}}a:link,a:visited{color:var(--color-primary)}code,pre{background:var(--color-surface-container);border-radius:var(--corner-radius)}code{padding:.2em}pre{overflow-x:scroll;padding:1em}img,figure,video,div,object{max-width:100%;height:auto !important;margin:0 auto}iframe{max-width:100%;margin:0 auto}table{border-collapse:collapse;width:100%;table-layout:fixed}video{background-color:#000}video::-webkit-media-controls-fullscreen-button{display:none}td,th{border:1px solid #999;padding:.5rem;text-align:left;word-wrap:break-word}.article__header{display:block;margin-bottom:1rem}.article__header:link,.article__header:visited{text-decoration:none}.article__title h1{margin:0}#article-body-content{line-height:1.6em;margin-bottom:20vh}#article-body-content img{background-color:var(--color-surface-container-highest)}.article__body--font-default{font-family:sans-serif}.article__body--font-vollkorn{font-family:"Vollkorn"}.article__body--font-atkinson_hyperlegible{font-family:"Atkinson Hyperlegible"}.article__body--font-poppins{font-family:"Poppins"}.article__body--text-size-small{font-size:small}.article__body--text-size-medium{font-size:medium}.article__body--text-size-large{font-size:large}.article__body--text-size-x-large{font-size:x-large}.article__body--text-size-xx-large{font-size:xx-large} \ No newline at end of file diff --git a/capy/src/main/java/com/jocmp/capy/articles/TemplateColors.kt b/capy/src/main/java/com/jocmp/capy/articles/TemplateColors.kt index a0ab9e5a..b065a279 100644 --- a/capy/src/main/java/com/jocmp/capy/articles/TemplateColors.kt +++ b/capy/src/main/java/com/jocmp/capy/articles/TemplateColors.kt @@ -1,13 +1,12 @@ package com.jocmp.capy.articles -import org.json.JSONObject - data class TemplateColors( val onPrimaryContainer: String, val onSurface: String, val onSurfaceVariant: String, val primary: String, val primaryContainer: String, + val surfaceContainer: String, val surface: String, val surfaceContainerHighest: String, val surfaceVariant: String, @@ -20,19 +19,7 @@ data class TemplateColors( "color_primary_container" to primaryContainer, "color_surface" to surface, "color_surface_container_highest" to surfaceContainerHighest, + "color_surface_container" to surfaceContainer, "color_surface_variant" to surfaceVariant, ) - - fun toJSON() = JSONObject( - mapOf( - "--color-on-surface" to onSurface, - "--color-on-primary-container" to onPrimaryContainer, - "--color-on-surface-variant" to onSurfaceVariant, - "--color-primary" to primary, - "--color-primary-container" to primaryContainer, - "--color-surface" to surface, - "--color-surface-container-highest" to surfaceContainerHighest, - "--color-surface-variant" to surfaceVariant, - ) - ) } diff --git a/capy/src/main/res/raw/template.html b/capy/src/main/res/raw/template.html index 1fec705c..8c10da52 100644 --- a/capy/src/main/res/raw/template.html +++ b/capy/src/main/res/raw/template.html @@ -12,6 +12,7 @@ --color-surface-variant: {{color_surface_variant}}; --color-primary-container: {{color_primary_container}}; --color-on-primary-container: {{color_on_primary_container}}; + --color-surface-container: {{color_surface_container}}; --article-top-margin: {{top_margin}}; }