From df19e54d9b01327dae34afcc10347d0495aa27f4 Mon Sep 17 00:00:00 2001 From: thislight Date: Sat, 17 Aug 2024 17:16:18 +0800 Subject: [PATCH] RegularToot: added preview cards --- bun.lockb | Bin 238188 -> 238920 bytes package.json | 2 + src/timelines/CompactToot.tsx | 2 +- src/timelines/RegularToot.tsx | 76 +++++++++++++++++++++++++++++++++- src/timelines/toot.module.css | 75 +++++++++++++++++++++++++++++---- 5 files changed, 144 insertions(+), 11 deletions(-) diff --git a/bun.lockb b/bun.lockb index 337f675a2c13b43cf6cecc3ef1c9b22515195d95..faccfb995d372c9d08d083beb9b97969db5fb75b 100755 GIT binary patch delta 41769 zcmeIbd3a4{+djPZl1;XGNF*dg5F{j$5IYfe#5@Ht&qRbILS!PwB!&t##S*uv2sOo2 zEj5%9t=3c(MYTLn(P~jc(>`iy^*hfsB+*>pJi2p2xNJ+SdJ# zE1o)2ajB2z$Mxh-6gR)nolZT|n@wy|_dsUChU+p;fb}5OUR#^kw zhMWtKRYQ`JQ<77tPB%$X6-i2u2UY;KghNH(3Se2_LLD0eE5WV-tO|^Te|cb1d|b?E z@7ScotbC_5Z##_~SXz>t5!f2&0;~h91(bkwfZv%V$rX4OSOfSDkbWzGHGyeBCtxzL z956B|$vZhQDk=;mVj;(mp5Q$?B00ic ps!LMu^uthC>Zqj1h`5N+QSD$eLQ|jv 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 diff --git a/package.json b/package.json index 9cce6a9..7284ff7 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,9 @@ "@suid/icons-material": "^0.7.0", "@suid/material": "^0.16.0", "blurhash": "^2.0.5", + "colorjs.io": "^0.5.2", "date-fns": "^3.6.0", + "fast-average-color": "^9.4.0", "hammerjs": "^2.0.8", "masto": "^6.8.0", "nanostores": "^0.9.5", diff --git a/src/timelines/CompactToot.tsx b/src/timelines/CompactToot.tsx index 7042ad4..eb8a7b7 100644 --- a/src/timelines/CompactToot.tsx +++ b/src/timelines/CompactToot.tsx @@ -18,7 +18,7 @@ const CompactToot: Component = (props) => { const toot = () => props.status; return (
{ + if (!props.src.width) return; + const width = root.getBoundingClientRect().width; + if (width > props.src.width) { + root.classList.add(tootStyle.compact); + } else { + root.classList.remove(tootStyle.compact); + } + }); + + const onImgLoad = (event: Event & { currentTarget: HTMLImageElement }) => { + // TODO: better extraction algorithm + // I'd like to use a pattern panel and match one in the panel from the extracted color + const fac = new FastAverageColor(); + const result = fac.getColor(event.currentTarget); + if (result.error) { + console.error(result.error); + fac.destroy(); + return; + } + root.style.setProperty("--tutu-color-surface", result.hex); + const focusSurface = result.isDark + ? new Color(result.hex).darken(0.2) + : new Color(result.hex).lighten(0.2); + root.style.setProperty("--tutu-color-surface-d", focusSurface.toString()); + const textColor = result.isDark ? "white" : "black"; + const secondaryTextColor = new Color(textColor); + secondaryTextColor.alpha = 0.75; + root.style.setProperty("--tutu-color-on-surface", textColor); + root.style.setProperty( + "--tutu-color-secondary-text-on-surface", + secondaryTextColor.toString(), + ); + fac.destroy(); + }; + + return ( + + + + + {props.src.title} + {props.src.description} + + ); +} + const RegularToot: Component = (props) => { let rootRef: HTMLElement; const [managed, managedActionGroup, rest] = splitProps( @@ -241,6 +312,9 @@ const RegularToot: Component = (props) => { emojis={toot().emojis} class={tootStyle.tootContent} /> + + + 0}> diff --git a/src/timelines/toot.module.css b/src/timelines/toot.module.css index 108cedc..bc82522 100644 --- a/src/timelines/toot.module.css +++ b/src/timelines/toot.module.css @@ -13,7 +13,7 @@ border-radius: 0; } - & > .toot { + &>.toot { box-shadow: none; } @@ -47,7 +47,7 @@ display: grid; grid-template-columns: 1fr auto; - > * { + >* { color: var(--tutu-color-secondary-text-on-surface); } @@ -55,7 +55,7 @@ grid-column: 1 /3; } - > time { + >time { text-align: end; } @@ -104,7 +104,64 @@ } } -.compact { +.previewCard { + composes: cardGutSkip from "../material/cards.module.css"; + display: block; + border: 1px solid #eeeeee; + background-color: var(--tutu-color-surface); + text-decoration: none; + border-radius: 4px; + overflow: hidden; + margin-top: 1em; + margin-bottom: 1.5em; + color: var(--tutu-color-secondary-text-on-surface); + transition: color 220ms var(--tutu-anim-curve-std), background-color 220ms var(--tutu-anim-curve-std); + padding-bottom: 8px; + + >img { + max-width: 100%; + } + + &:hover, + &:focus-visible { + background-color: var(--tutu-color-surface-d); + color: var(--tutu-color-on-surface); + + >h1 { + text-decoration: underline; + } + } + + >h1 { + color: var(--tutu-color-on-surface); + } + + >h1, + >p { + margin-left: 16px; + margin-right: 16px; + } + + &.compact { + display: grid; + grid-template-columns: minmax(10%, 30%) 1fr; + padding-left: 16px; + padding-right: 16px; + + >img:first-child { + grid-row: 1 / 3; + height: 100%; + object-fit: contain; + } + + >h1, + >p { + margin-right: 0; + } + } +} + +.toot.compact { display: grid; grid-template-columns: auto 1fr; gap: 8px; @@ -127,12 +184,12 @@ align-items: center; margin-bottom: 8px; - > .compactAuthorUsername { + >.compactAuthorUsername { color: var(--tutu-color-secondary-text-on-surface); flex-grow: 1; } - > time { + >time { color: var(--tutu-color-secondary-text-on-surface); } } @@ -177,11 +234,11 @@ flex-flow: row wrap; justify-content: space-evenly; - > button { + >button { color: var(--tutu-color-on-surface); padding: 10px 8px; - > svg { + >svg { font-size: 20px; } } @@ -207,4 +264,4 @@ 100% { opacity: 1; } -} +} \ No newline at end of file