35
loading...
This website collects cookies to deliver better user experience
yarn add styled-components
"resolutions": {
"styled-components": "^5"
}
import styled from "styled-components";
export const StyledLink = styled.a`
border: none;
padding: 0.8rem 1.4rem;
margin: 1rem;
cursor: pointer;
background-color: #2b2b2b;
color: white;
border-radius: 2rem;
font-weight: 600;
&:hover {
background-color: #fc4961;
}
`
babel-plugin-styled-components
yarn add --dev @types/styled-components babel-plugin-styled-components
babelrc
in the root of project directory. Then added this code below{
"presets": [
"next/babel"
],
"plugins": [
[
"babel-plugin-styled-components",
{
"fileName": true,
"displayName": true,
"pure": true
}
]
]
}
import { ServerStyleSheet } from 'styled-components';
import { NextPage } from "next";
import Link from "next/link";
const BeerPage: NextPage = () => {
return (
<div>
<h1>Beers Page</h1>
<p>
<Link href="beers/ale">
<a>Ale</a>
</Link>
</p>
<p>
<Link href="beers/stouts">
<a>Stouts</a>
</Link>
</p>
<p>
<Link href="beers/red-ale">
<a>Red Ale</a>
</Link>
</p>
</div>
)
}
import Link from "next/link";
import { StyledLink } from "./styles";
import styled from "styled-components";
const NavLink = ({ href, name }) => {
return (
<Link href={href} passHref>
<StyledLink>{name}</StyledLink>
</Link>
)
}
export default NavLink;
export interface Links {
href: string,
name: string,
}
import Link from "next/link";
import { StyledLink } from "./styles";
import styled from "styled-components";
import { Links } from "../types/Links";
const StyledLink2 = styled(StyledLink)`
&:hover {
background-color: #2b8aff;
}
`
const NavLink = ({ href, name, bgColor }: Links) => {
if (bgColor === "blue") {
return (
<Link href={href} passHref>
<StyledLink2>{name}</StyledLink2>
</Link>
)
}
return (
<Link href={href} passHref>
<StyledLink>{name}</StyledLink>
</Link>
)
}
export default NavLink;
export interface Links {
href: string,
name: string,
bgColor: string | null
}
import { Menu, Container } from "../../components/styles";
import NavLink from "../../components/NavLink";
const BeerPage: NextPage = () => {
return (
<div>
<Menu>Beers🍺</Menu>
<Container>
<NavLink href={"/beers/ale"} name={"Ale"} bgColor="blue" />
<NavLink href={"/beers/stouts"} name={"Stouts"} bgColor="blue" />
<NavLink href={"/beers/red-ale"} name={"Red Ale"} bgColor="blue" />
</Container>
</div >
)
}
export default BeerPage;
import type { NextPage } from "next";
import { Menu, Container } from "../../components/styles";
import NavLink from "../../components/NavLink";
const WinePage: NextPage = () => {
return (
<div>
<Menu>Wines🍷</Menu>
<Container>
<NavLink href={"/wines/port"} name={"Port"} bgColor={null} />
<NavLink href={"/wines/reds"} name={"Reds"} bgColor={null} />
<NavLink href={"/wines/rose"} name={"Rose"} bgColor={null} />
<NavLink href={"/wines/sparkling"} name={"Sparkling"} bgColor={null} />
<NavLink href={"/wines/whites"} name={"White"} bgColor={null} />
<NavLink href={"/wines/dessert"} name={"Dessert"} bgColor={null} />
</Container>
</div >
)
}
export default WinePage;