feat: add footer newsletter and links components to NewsPage; enhance Button with new variant
This commit is contained in:
parent
25f4fd85a6
commit
884e47de01
@ -13,6 +13,7 @@ const buttonVariants = cva(
|
|||||||
variants: {
|
variants: {
|
||||||
variant: {
|
variant: {
|
||||||
newsPrimary: 'bg-[#2E2F7C] text-white text-lg',
|
newsPrimary: 'bg-[#2E2F7C] text-white text-lg',
|
||||||
|
newsPrimaryOutline: 'border-[3px] border-white text-white text-lg',
|
||||||
newsSecondary: 'border-[3px] border-[#2E2F7C] text-[#2E2F7C] text-lg',
|
newsSecondary: 'border-[3px] border-[#2E2F7C] text-[#2E2F7C] text-lg',
|
||||||
icon: '',
|
icon: '',
|
||||||
// destructive:
|
// destructive:
|
||||||
|
|||||||
3
app/pages/news/footer-links.tsx
Normal file
3
app/pages/news/footer-links.tsx
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
export const FooterLinks = () => {
|
||||||
|
return <div className="col-span-3">FooterLinks</div>
|
||||||
|
}
|
||||||
43
app/pages/news/footer-newsletter.tsx
Normal file
43
app/pages/news/footer-newsletter.tsx
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
import { Link } from 'react-router'
|
||||||
|
|
||||||
|
import { Button } from '~/components/ui/button'
|
||||||
|
import { DUMMY } from '~/data/dummy'
|
||||||
|
|
||||||
|
export const FooterNewsletter = () => {
|
||||||
|
return (
|
||||||
|
<div className="col-span-2 grid gap-y-6">
|
||||||
|
<div className="h-[75px] bg-white p-3">
|
||||||
|
<Link
|
||||||
|
to="/news"
|
||||||
|
className="h-full py-[5px]"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src={DUMMY.logo}
|
||||||
|
alt={DUMMY.title}
|
||||||
|
className="h-full w-auto"
|
||||||
|
/>
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
<h2>Join Our Newsletter</h2>
|
||||||
|
<p>
|
||||||
|
Tidak ingin ketinggalan Berita Hukum terhangat? ingin mendapat informasi
|
||||||
|
kajian dan networking terbaru? ikuti Newsletter kami and Stay up to
|
||||||
|
Speed!
|
||||||
|
</p>
|
||||||
|
<form className="grid gap-5">
|
||||||
|
<input
|
||||||
|
placeholder="Daftarkan Email Disini"
|
||||||
|
className="h-[50px] flex-1 bg-white text-center text-lg font-light text-black placeholder:text-[#777777] focus:ring-0 focus:outline-none"
|
||||||
|
size={1}
|
||||||
|
/>
|
||||||
|
<Button
|
||||||
|
type="submit"
|
||||||
|
variant="newsPrimaryOutline"
|
||||||
|
size="block"
|
||||||
|
>
|
||||||
|
Subscribe
|
||||||
|
</Button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
@ -1,16 +1,18 @@
|
|||||||
import React, { type FC, type PropsWithChildren } from 'react'
|
import React, { type FC, type PropsWithChildren } from 'react'
|
||||||
|
|
||||||
|
import { FooterLinks } from './footer-links'
|
||||||
|
import { FooterNewsletter } from './footer-newsletter'
|
||||||
import { HeaderMenu } from './header-menu'
|
import { HeaderMenu } from './header-menu'
|
||||||
import { HeaderTop } from './header-top'
|
import { HeaderTop } from './header-top'
|
||||||
|
|
||||||
export const NewsPage: FC<PropsWithChildren> = ({ children }) => {
|
export const NewsPage: FC<PropsWithChildren> = ({ children }) => {
|
||||||
return (
|
return (
|
||||||
<main className="min-h-dvh bg-[#ECECEC]">
|
<main className="relative min-h-dvh bg-[#ECECEC]">
|
||||||
<header>
|
<header>
|
||||||
<HeaderTop />
|
<HeaderTop />
|
||||||
<HeaderMenu />
|
<HeaderMenu />
|
||||||
</header>
|
</header>
|
||||||
<div className="mx-auto grid w-full max-w-[1340px] gap-y-[25px] bg-[#ECECEC] px-[50px] pt-[25px]">
|
<div className="mx-[50px] my-[25px] grid gap-y-[25px]">
|
||||||
<img
|
<img
|
||||||
src="/images/banner.png"
|
src="/images/banner.png"
|
||||||
alt="banner"
|
alt="banner"
|
||||||
@ -20,6 +22,10 @@ export const NewsPage: FC<PropsWithChildren> = ({ children }) => {
|
|||||||
{children}
|
{children}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<footer className="absolute bottom-0 grid w-full grid-cols-5 gap-32 bg-[#2E2F7C] px-16 py-20 text-white">
|
||||||
|
<FooterNewsletter />
|
||||||
|
<FooterLinks />
|
||||||
|
</footer>
|
||||||
</main>
|
</main>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user