diff --git a/components/Button.tsx b/components/Button.tsx index d4c0622..02af311 100644 --- a/components/Button.tsx +++ b/components/Button.tsx @@ -2,7 +2,7 @@ import { ComponentProps } from "preact"; function Button(props: ComponentProps<"button">) { props.className = - "select-none flex nowrap items-center gap-2 cursor-pointer rounded-lg bg-gradient-to-tr from-gray-900 to-gray-800 dark:from-gray-100 dark:to-gray-500 text-center align-middle font-sans text-xs font-bold uppercase text-slate-50 dark:text-slate-950 shadow-md shadow-gray-900/10 transition-all hover:shadow-lg hover:shadow-gray-900/20 active:opacity-[0.85] disabled:pointer-events-none disabled:opacity-50 disabled:shadow-none " + + "select-none flex nowrap items-center gap-2 cursor-pointer rounded-lg bg-gradient-to-tr from-gray-900 to-gray-800 dark:from-gray-100 dark:to-gray-400 text-center align-middle font-sans text-xs font-bold uppercase text-slate-50 dark:text-slate-950 shadow-md shadow-gray-900/10 transition-all hover:shadow-lg hover:shadow-gray-900/20 active:opacity-[0.85] disabled:pointer-events-none disabled:opacity-50 disabled:shadow-none " + (props.className ?? ""); return ; diff --git a/components/BuyMeACoffee.tsx b/components/BuyMeACoffee.tsx new file mode 100644 index 0000000..c60ce66 --- /dev/null +++ b/components/BuyMeACoffee.tsx @@ -0,0 +1,17 @@ +import BuyMeACoffeeIcon from "@/components/BuyMeACoffeeIcon.tsx"; +import Button from "@/components/Button.tsx"; + +function BuyMeACoffee() { + return ( + + + Buy me a coffee + + + ); +} + +export default BuyMeACoffee; diff --git a/components/BuyMeACoffeeIcon.tsx b/components/BuyMeACoffeeIcon.tsx new file mode 100644 index 0000000..9bdc1fd --- /dev/null +++ b/components/BuyMeACoffeeIcon.tsx @@ -0,0 +1,87 @@ +import { ComponentProps } from "preact"; + +function BuyMeACoffeeIcon(props: ComponentProps<"svg">) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default BuyMeACoffeeIcon; diff --git a/islands/home/CompressingPage.tsx b/islands/home/CompressingPage.tsx index 2d260c5..e36877a 100644 --- a/islands/home/CompressingPage.tsx +++ b/islands/home/CompressingPage.tsx @@ -12,6 +12,7 @@ import AlertList from "@/components/AlertList.tsx"; import InformationCircleIcon from "@/components/InformationCircleIcon.tsx"; import OutlinedButton from "@/components/OutlinedButton.tsx"; import Button from "@/components/Button.tsx"; +import BuyMeACoffee from "@/components/BuyMeACoffee.tsx"; function StatsSection({ total }: { total: Omit }) { return ( @@ -275,6 +276,21 @@ function CompressingPage() { ? ( <> + + + It takes time and effort to build a service like this. + + If you like it, consider buying us a coffee :) ! + + + + + + + I don't care, I just want to compress more images! + + + { diff --git a/routes/_app.tsx b/routes/_app.tsx index eb2c55e..ddff207 100644 --- a/routes/_app.tsx +++ b/routes/_app.tsx @@ -77,7 +77,7 @@ export default function App({ Component }: PageProps) { content="Image Compression, JPEG Compression, PNG Compression, Lossy Compression, Web Optimization, File Size Reduction, Fast Image Compression, Online Image Compressor, Free Image Compression, Browser-based Compression, Image Quality Preservation, Efficient Compression Tool, Image File Optimization, Reduce Image Size, Website Performance, Email Attachment Limits, Local Compression, User-friendly Compression, High-Quality Compression, Optimized Images" /> - + diff --git a/routes/index.tsx b/routes/index.tsx index f96589e..383ac6b 100644 --- a/routes/index.tsx +++ b/routes/index.tsx @@ -1,5 +1,6 @@ import HomeIsland from "@/islands/Home.tsx"; import PhotoIcon from "@/components/PhotoIcon.tsx"; +import BuyMeACoffee from "@/components/BuyMeACoffee.tsx"; export default function Home() { return ( @@ -15,14 +16,8 @@ export default function Home() {
+ It takes time and effort to build a service like this. + + If you like it, consider buying us a coffee :) ! +
+ I don't care, I just want to compress more images! +