├── .babelrc ├── .eslintrc.json ├── Imagens ├── autor1.jpg ├── autor2.jpg ├── codigo.jpg ├── react.jpg ├── WebAccessibility.png └── logo.svg ├── public ├── favicon.ico ├── vercel.svg └── logo.svg ├── src ├── UI │ ├── Error │ │ ├── Error.module.scss │ │ └── Error.jsx │ ├── Logo │ │ └── Logo.jsx │ └── Author │ │ ├── Author.module.scss │ │ └── Author.jsx ├── Components │ ├── Bar │ │ ├── Bar.jsx │ │ └── Bar.module.scss │ ├── Heading │ │ ├── Heading.jsx │ │ └── Heading.module.scss │ ├── Footer │ │ ├── Footer.module.scss │ │ └── Footer.jsx │ └── Cardpost │ │ ├── Cardpost.module.scss │ │ └── Cardpost.jsx ├── sanity.js └── Layout │ └── MainLayout.jsx ├── .env ├── schemas ├── index.js ├── author.js ├── post.js └── blockContent.js ├── jsconfig.json ├── next.config.js ├── styles ├── variables.scss ├── Custom404.module.scss ├── Home.module.scss ├── mixins.scss ├── Post.module.scss └── globals.scss ├── pages ├── _app.jsx ├── 404.jsx ├── _document.jsx ├── post │ └── [slug].jsx └── index.jsx ├── .gitignore ├── package.json └── README.md /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["next/babel"], 3 | "plugins": [] 4 | } -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["next/babel","next/core-web-vitals"] 3 | } -------------------------------------------------------------------------------- /Imagens/autor1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canaldofront/minimal-blog/HEAD/Imagens/autor1.jpg -------------------------------------------------------------------------------- /Imagens/autor2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canaldofront/minimal-blog/HEAD/Imagens/autor2.jpg -------------------------------------------------------------------------------- /Imagens/codigo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canaldofront/minimal-blog/HEAD/Imagens/codigo.jpg -------------------------------------------------------------------------------- /Imagens/react.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canaldofront/minimal-blog/HEAD/Imagens/react.jpg -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canaldofront/minimal-blog/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /Imagens/WebAccessibility.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/canaldofront/minimal-blog/HEAD/Imagens/WebAccessibility.png -------------------------------------------------------------------------------- /src/UI/Error/Error.module.scss: -------------------------------------------------------------------------------- 1 | .error { 2 | text-align: center; 3 | 4 | h2 { 5 | margin-bottom: 4rem; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- 1 | NEXT_PUBLIC_PROJECT_ID='3tmy3ohm' 2 | NEXT_PUBLIC_DATASET='production' 3 | NEXT_PUBLIC_API_VERSION='2022-12-14' 4 | NEXT_PUBLIC_USE_CDN=false -------------------------------------------------------------------------------- /schemas/index.js: -------------------------------------------------------------------------------- 1 | import blockContent from './blockContent' 2 | import post from './post' 3 | import author from './author' 4 | 5 | export const schemaTypes = [post, author, blockContent] 6 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "paths": { 5 | "src/*": ["src/*"], 6 | "styles/*": ["styles/*"], 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | reactStrictMode: true, 4 | images: { 5 | domains: ['cdn.sanity.io'], 6 | }, 7 | }; 8 | 9 | module.exports = nextConfig; 10 | -------------------------------------------------------------------------------- /styles/variables.scss: -------------------------------------------------------------------------------- 1 | $primary: #111727; 2 | $secondary: #f9fbfc; 3 | $white: #ffffff; 4 | $gray: #808080; 5 | $black: #000000; 6 | 7 | $titleFontFamily: 'Syne', sans-serif; 8 | $fontFamily: 'Manrope', sans-serif; 9 | 10 | $marginBottom: 8rem; 11 | -------------------------------------------------------------------------------- /src/Components/Bar/Bar.jsx: -------------------------------------------------------------------------------- 1 | import styles from './Bar.module.scss'; 2 | 3 | const Bar = () => { 4 | return ( 5 |
6 | Novos artigos todas as terças! 7 |
8 | ); 9 | }; 10 | 11 | export default Bar; 12 | -------------------------------------------------------------------------------- /src/Components/Bar/Bar.module.scss: -------------------------------------------------------------------------------- 1 | @import 'styles/variables.scss'; 2 | 3 | .bar { 4 | background-color: $primary; 5 | padding: 1.5rem 0; 6 | text-align: center; 7 | margin-bottom: 3rem; 8 | 9 | span { 10 | font-size: 1.4rem; 11 | color: $white; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /styles/Custom404.module.scss: -------------------------------------------------------------------------------- 1 | @import 'styles/mixins.scss'; 2 | 3 | .section { 4 | @include max-width(small); 5 | @include flex-center; 6 | flex-direction: column; 7 | margin: 20rem auto; 8 | 9 | h1 { 10 | font-size: 7rem; 11 | margin-bottom: 4rem; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /pages/_app.jsx: -------------------------------------------------------------------------------- 1 | import MainLayout from 'src/Layout/MainLayout'; 2 | import '../styles/globals.scss'; 3 | 4 | function MyApp({ Component, pageProps }) { 5 | return ( 6 | 7 | 8 | 9 | ); 10 | } 11 | 12 | export default MyApp; 13 | -------------------------------------------------------------------------------- /src/UI/Logo/Logo.jsx: -------------------------------------------------------------------------------- 1 | import Link from 'next/link'; 2 | import Image from 'next/image'; 3 | 4 | const Logo = () => { 5 | return ( 6 | 7 | minimal blog 8 | 9 | ); 10 | }; 11 | 12 | export default Logo; 13 | -------------------------------------------------------------------------------- /src/sanity.js: -------------------------------------------------------------------------------- 1 | import { createClient } from 'next-sanity'; 2 | 3 | const client = createClient({ 4 | projectId: process.env.NEXT_PUBLIC_PROJECT_ID, 5 | dataset: process.env.NEXT_PUBLIC_DATASET, 6 | apiVersion: process.env.NEXT_PUBLIC_API_VERSION, 7 | useCdn: process.env.NEXT_PUBLIC_USE_CDN, 8 | }); 9 | 10 | export default client; 11 | -------------------------------------------------------------------------------- /pages/404.jsx: -------------------------------------------------------------------------------- 1 | import Error from 'src/UI/Error/Error'; 2 | import styles from 'styles/Custom404.module.scss'; 3 | 4 | const Custom404 = () => { 5 | return ( 6 |
7 |

Oops!! Error 404

8 | 9 |
10 | ); 11 | }; 12 | 13 | export default Custom404; 14 | -------------------------------------------------------------------------------- /src/UI/Error/Error.jsx: -------------------------------------------------------------------------------- 1 | import styles from './Error.module.scss'; 2 | import Link from 'next/link'; 3 | 4 | const Error = ({ text }) => { 5 | return ( 6 |
7 |

{text}

8 | 9 | Voltar para artigos 10 | 11 |
12 | ); 13 | }; 14 | 15 | export default Error; 16 | -------------------------------------------------------------------------------- /src/Layout/MainLayout.jsx: -------------------------------------------------------------------------------- 1 | import Footer from 'src/Components/Footer/Footer'; 2 | import Heading from 'src/Components/Heading/Heading'; 3 | import Bar from '../Components/Bar/Bar'; 4 | 5 | const MainLayout = ({ children }) => { 6 | return ( 7 | <> 8 |
9 | 10 | 11 |
12 |
{children}
13 |