Footer
Check out Footers Are Underrated and Footers 101 from Nielsen Norman Group. Footers are awesome. Go wild!
Note: in the examples below the spacing is a little off. This won't happen in practice though if you do something like this:
export default () => {
return (
<>
<Navbar route={route} />
<Container size="xl">
<Component />
</Container>
<Footer />
</>
);
}
Note: check out this CSS Tricks article on how to get a footer that alawys stays at the bottom of the page (something you'll probably want). My preferred approach is to utilize flexbox by wrapping the Navar
, Container
and Footer
in a Stack
like so:
export default () => {
return (
<Stack class="min-h-screen">
<Navbar route={route} />
<Container size="xl" class="grow">
<Component />
</Container>
<Footer />
</Stack>
);
}
import {
Footer,
FooterColumn,
FooterHeading,
FooterItem
} from "rfui";
Basic
<Footer>
<FooterColumn>
<FooterHeading>About</FooterHeading>
<FooterItem href="/about">About</FooterItem>
<FooterItem href="/philosophy">Philosophy</FooterItem>
<FooterItem href="https://github.com/users/adamzerner/projects/2">
Roadmap
</FooterItem>
</FooterColumn>
<FooterColumn>
<FooterHeading>Docs</FooterHeading>
<FooterItem href="/">Components</FooterItem>
<FooterItem href="/getting-started">Getting started</FooterItem>
<FooterItem href="/tutorial">Tutorial</FooterItem>
</FooterColumn>
<FooterColumn>
<FooterHeading>Code</FooterHeading>
<FooterItem href="https://github.com/adamzerner/rfui">
GitHub
</FooterItem>
<FooterItem href="https://github.com/adamzerner/rfui/blob/master/CHANGELOG.md">
Changelog
</FooterItem>
<FooterItem href="https://github.com/adamzerner/rfui/blob/master/CONTRIBUTING.md">
Contributing
</FooterItem>
<FooterItem href="https://github.com/adamzerner/rfui/blob/master/LICENSE">
License
</FooterItem>
</FooterColumn>
<FooterColumn>
<FooterHeading>Help</FooterHeading>
<FooterItem href="mailto:adamzerner@protonmail.com">
Contact
</FooterItem>
<FooterItem href="/faq">FAQ</FooterItem>
</FooterColumn>
</Footer>
Empty background
Set
background
to "none"
.Note: A dark color is often preferred as a way to distinguish the main content from the footer content.
<Footer background="none">
<FooterColumn>
<FooterHeading background="none">About</FooterHeading>
<FooterItem href="/about">About</FooterItem>
<FooterItem href="/philosophy">Philosophy</FooterItem>
<FooterItem href="https://github.com/users/adamzerner/projects/2">
Roadmap
</FooterItem>
</FooterColumn>
<FooterColumn>
<FooterHeading background="none">Docs</FooterHeading>
<FooterItem href="/">Components</FooterItem>
<FooterItem href="/getting-started">Getting started</FooterItem>
<FooterItem href="/tutorial">Tutorial</FooterItem>
</FooterColumn>
<FooterColumn>
<FooterHeading background="none">Code</FooterHeading>
<FooterItem href="https://github.com/adamzerner/rfui">
GitHub
</FooterItem>
<FooterItem href="https://github.com/adamzerner/rfui/blob/master/CHANGELOG.md">
Changelog
</FooterItem>
<FooterItem href="https://github.com/adamzerner/rfui/blob/master/CONTRIBUTING.md">
Contributing
</FooterItem>
<FooterItem href="https://github.com/adamzerner/rfui/blob/master/LICENSE">
License
</FooterItem>
</FooterColumn>
<FooterColumn>
<FooterHeading background="none">Help</FooterHeading>
<FooterItem href="mailto:adamzerner@protonmail.com">
Contact
</FooterItem>
<FooterItem href="/faq">FAQ</FooterItem>
</FooterColumn>
</Footer>
Without default margin
By default, there is a top margin applied to the footer. This is helpful by providing a sensible default. However, you can override this default margin if you'd like as shown below.
The example below uses Tailwind's imporant modifier to make sure that the custom margin takes precedence over the original margin. You may need or want to take a different approach.
<Footer class="!mt-0">
<FooterColumn>
<FooterHeading>About</FooterHeading>
<FooterItem href="/about">About</FooterItem>
<FooterItem href="/philosophy">Philosophy</FooterItem>
<FooterItem href="https://github.com/users/adamzerner/projects/2">
Roadmap
</FooterItem>
</FooterColumn>
<FooterColumn>
<FooterHeading>Docs</FooterHeading>
<FooterItem href="/">Components</FooterItem>
<FooterItem href="/getting-started">Getting started</FooterItem>
<FooterItem href="/tutorial">Tutorial</FooterItem>
</FooterColumn>
<FooterColumn>
<FooterHeading>Code</FooterHeading>
<FooterItem href="https://github.com/adamzerner/rfui">
GitHub
</FooterItem>
<FooterItem href="https://github.com/adamzerner/rfui/blob/master/CHANGELOG.md">
Changelog
</FooterItem>
<FooterItem href="https://github.com/adamzerner/rfui/blob/master/CONTRIBUTING.md">
Contributing
</FooterItem>
<FooterItem href="https://github.com/adamzerner/rfui/blob/master/LICENSE">
License
</FooterItem>
</FooterColumn>
<FooterColumn>
<FooterHeading>Help</FooterHeading>
<FooterItem href="mailto:adamzerner@protonmail.com">
Contact
</FooterItem>
<FooterItem href="/faq">FAQ</FooterItem>
</FooterColumn>
</Footer>
Props
Prop | Required | Default | Type and notes |
---|---|---|---|
size | - | "md" |
Set this to the same value as the Container . |
background | - | "neutral" |
A dark color is often preferred as a way to distinguish the main content from the footer content. |
children | ✔ | - |
|
...rest | - | - |
See the docs for rest parameters. For Footer , you could pass anything you normally would pass to <footer> because the return value looks something like this:
|
FooterColumn
Prop | Required | Default | Type and notes |
---|---|---|---|
children | ✔ | - |
|
FooterHeading
Prop | Required | Default | Type and notes |
---|---|---|---|
background | - | "neutral" |
|
children | ✔ | - |
|
FooterItem
Prop | Required | Default | Type and notes |
---|---|---|---|
href | ✔ | - |
|
children | ✔ | - |
|