diff --git a/src/components/AISummary.tsx b/src/components/AISummary.tsx index e544ea3..346efb8 100644 --- a/src/components/AISummary.tsx +++ b/src/components/AISummary.tsx @@ -1,19 +1,32 @@ -import type { FC, PropsWithChildren } from "hono/jsx"; -import type { ReadablePage } from "../types"; +import type { FC } from "hono/jsx"; + +const AISummary: FC<{ url: string; summary?: string }> = ({ url, summary }) => { + const proseClasses = + "prose dark:prose-invert font-humanist mt-2 prose-p:mt-0 prose-headings:font-transitional prose-headings:my-0 prose-h2:text-lg"; + if (summary) { + return ( + + ); + } -const AISummary: FC<{ url: string }> = ({ url }) => { return ( ); diff --git a/src/components/AISummaryError.tsx b/src/components/AISummaryError.tsx index 5980d82..26d80b0 100644 --- a/src/components/AISummaryError.tsx +++ b/src/components/AISummaryError.tsx @@ -1,7 +1,7 @@ import type { FC, PropsWithChildren } from "hono/jsx"; const AISummaryError: FC = ({ children }) => ( -
+

Failed to retrieve AI summary

{children}

diff --git a/src/components/ArticleHeader.tsx b/src/components/ArticleHeader.tsx index e77033e..c9ea463 100644 --- a/src/components/ArticleHeader.tsx +++ b/src/components/ArticleHeader.tsx @@ -19,14 +19,22 @@ const ArticleHeader: FC<{ article: ReadablePage; classes?: string }> = ({ }) => { const metadata = generateMetadataNuggets(article); return ( -
-

+
+

{article.title}

{metadata.join(" ・ ")}

- +
); }; diff --git a/src/components/ArticleMinimap.tsx b/src/components/ArticleMinimap.tsx index b37ea1a..9dd1955 100644 --- a/src/components/ArticleMinimap.tsx +++ b/src/components/ArticleMinimap.tsx @@ -4,7 +4,7 @@ const ArticleMinimap: FC<{ classes?: string; selector: string }> = ({ classes = "", selector, }) => { - return ; + return ; }; export default ArticleMinimap; diff --git a/src/components/Button.tsx b/src/components/Button.tsx index 9da0fa9..5246dc9 100644 --- a/src/components/Button.tsx +++ b/src/components/Button.tsx @@ -18,17 +18,15 @@ function isLink(props: Props): props is LinkProps & CommonProps { } const classes = [ - "border", - "py-1", - "px-2", + "px-2 py-1", "rounded", "transition", "text-center", - "bg-canvas", - "hover:brightness-95", - "dark:hover:brightness-125", - "active:brightness-105", - "dark:active:brightness-90", + "border", + "drop-shadow", + "cursor-pointer", + "bg-paper hover:bg-base-150 active:bg-base-100 border-base-100", + "dark:bg-base-900 hover:dark:bg-base-800 active:dark:bg-base-850 dark:border-base-900", ] as const; const Button: FC> = (props) => { diff --git a/src/components/Input.tsx b/src/components/Input.tsx new file mode 100644 index 0000000..3fc8168 --- /dev/null +++ b/src/components/Input.tsx @@ -0,0 +1,14 @@ +import type { FC } from "hono/jsx"; + +const Input: FC<{ + classes?: string; + [k: string]: string | boolean | undefined; +}> = ({ classes = "", ...props }) => { + const className = [ + "border border-base-100 dark:border-base-900 rounded block w-full py-1 px-4 transition", + classes, + ].join(" "); + return ; +}; + +export default Input; diff --git a/src/components/RecentArticles.tsx b/src/components/RecentArticles.tsx index 5f4e802..3e2feca 100644 --- a/src/components/RecentArticles.tsx +++ b/src/components/RecentArticles.tsx @@ -9,15 +9,13 @@ const RecentArticle: FC<{ article: ReadablePage }> = ({ article }) => { "md:w-60", "flex-auto", "p-2", - "bg-canvas", "overflow-hidden", "transition", "rounded", "border", - "hover:brightness-95", - "dark:hover:brightness-125", - "active:brightness-105", - "dark:active:brightness-90", + "border-base-100 dark:border-base-900", + "bg-paper hover:bg-base-50 ", + "dark:bg-black hover:dark:bg-base-950 ", ].join(" ")} > diff --git a/src/components/Settings.tsx b/src/components/Settings.tsx index 8d0da09..7c15b91 100644 --- a/src/components/Settings.tsx +++ b/src/components/Settings.tsx @@ -1,38 +1,35 @@ -import type { FC, PropsWithChildren } from "hono/jsx"; +import type { FC } from "hono/jsx"; import Button from "../components/Button"; +import Input from "./Input"; const Settings: FC = () => ( -
+ + {/* biome-ignore lint/a11y/noLabelWithoutControl: */}
✔︎ Saved!
- - + +
); diff --git a/src/layouts/BasePage.tsx b/src/layouts/BasePage.tsx index 800af17..4b6cc39 100644 --- a/src/layouts/BasePage.tsx +++ b/src/layouts/BasePage.tsx @@ -1,11 +1,11 @@ -import type { FC, PropsWithChildren } from "hono/jsx"; +import type { Child, FC, PropsWithChildren } from "hono/jsx"; import Button from "../components/Button"; import Settings from "../components/Settings"; interface BasePageProps { title?: string; className?: string; - head?: FC; + head?: Child; } const BasePage: FC> = ({ @@ -22,7 +22,7 @@ const BasePage: FC> = ({ {title} - {Head && } + {Head}