├── .gitignore ├── .nvmrc ├── README.md ├── package-lock.json ├── package.json ├── pages └── index.js ├── public ├── favicon.ico └── vercel.svg └── styles ├── Home.module.css └── global.css /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | 21 | # debug 22 | npm-debug.log* 23 | yarn-debug.log* 24 | yarn-error.log* 25 | 26 | # local env files 27 | .env.local 28 | .env.development.local 29 | .env.test.local 30 | .env.production.local 31 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 18 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This is a starter template for [Learn Next.js](https://nextjs.org/learn). 2 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nextjs-blog", 3 | "lockfileVersion": 3, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "dependencies": { 8 | "next": "latest", 9 | "react": "18.2.0", 10 | "react-dom": "18.2.0" 11 | }, 12 | "engines": { 13 | "node": ">=18" 14 | } 15 | }, 16 | "node_modules/@next/env": { 17 | "version": "13.5.4", 18 | "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.4.tgz", 19 | "integrity": "sha512-LGegJkMvRNw90WWphGJ3RMHMVplYcOfRWf2Be3td3sUa+1AaxmsYyANsA+znrGCBjXJNi4XAQlSoEfUxs/4kIQ==" 20 | }, 21 | "node_modules/@next/swc-darwin-arm64": { 22 | "version": "13.5.4", 23 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.4.tgz", 24 | "integrity": "sha512-Df8SHuXgF1p+aonBMcDPEsaahNo2TCwuie7VXED4FVyECvdXfRT9unapm54NssV9tF3OQFKBFOdlje4T43VO0w==", 25 | "cpu": [ 26 | "arm64" 27 | ], 28 | "optional": true, 29 | "os": [ 30 | "darwin" 31 | ], 32 | "engines": { 33 | "node": ">= 10" 34 | } 35 | }, 36 | "node_modules/@next/swc-darwin-x64": { 37 | "version": "13.5.4", 38 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.5.4.tgz", 39 | "integrity": "sha512-siPuUwO45PnNRMeZnSa8n/Lye5ZX93IJom9wQRB5DEOdFrw0JjOMu1GINB8jAEdwa7Vdyn1oJ2xGNaQpdQQ9Pw==", 40 | "cpu": [ 41 | "x64" 42 | ], 43 | "optional": true, 44 | "os": [ 45 | "darwin" 46 | ], 47 | "engines": { 48 | "node": ">= 10" 49 | } 50 | }, 51 | "node_modules/@next/swc-linux-arm64-gnu": { 52 | "version": "13.5.4", 53 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.5.4.tgz", 54 | "integrity": "sha512-l/k/fvRP/zmB2jkFMfefmFkyZbDkYW0mRM/LB+tH5u9pB98WsHXC0WvDHlGCYp3CH/jlkJPL7gN8nkTQVrQ/2w==", 55 | "cpu": [ 56 | "arm64" 57 | ], 58 | "optional": true, 59 | "os": [ 60 | "linux" 61 | ], 62 | "engines": { 63 | "node": ">= 10" 64 | } 65 | }, 66 | "node_modules/@next/swc-linux-arm64-musl": { 67 | "version": "13.5.4", 68 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.5.4.tgz", 69 | "integrity": "sha512-YYGb7SlLkI+XqfQa8VPErljb7k9nUnhhRrVaOdfJNCaQnHBcvbT7cx/UjDQLdleJcfyg1Hkn5YSSIeVfjgmkTg==", 70 | "cpu": [ 71 | "arm64" 72 | ], 73 | "optional": true, 74 | "os": [ 75 | "linux" 76 | ], 77 | "engines": { 78 | "node": ">= 10" 79 | } 80 | }, 81 | "node_modules/@next/swc-linux-x64-gnu": { 82 | "version": "13.5.4", 83 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.5.4.tgz", 84 | "integrity": "sha512-uE61vyUSClnCH18YHjA8tE1prr/PBFlBFhxBZis4XBRJoR+txAky5d7gGNUIbQ8sZZ7LVkSVgm/5Fc7mwXmRAg==", 85 | "cpu": [ 86 | "x64" 87 | ], 88 | "optional": true, 89 | "os": [ 90 | "linux" 91 | ], 92 | "engines": { 93 | "node": ">= 10" 94 | } 95 | }, 96 | "node_modules/@next/swc-linux-x64-musl": { 97 | "version": "13.5.4", 98 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.5.4.tgz", 99 | "integrity": "sha512-qVEKFYML/GvJSy9CfYqAdUexA6M5AklYcQCW+8JECmkQHGoPxCf04iMh7CPR7wkHyWWK+XLt4Ja7hhsPJtSnhg==", 100 | "cpu": [ 101 | "x64" 102 | ], 103 | "optional": true, 104 | "os": [ 105 | "linux" 106 | ], 107 | "engines": { 108 | "node": ">= 10" 109 | } 110 | }, 111 | "node_modules/@next/swc-win32-arm64-msvc": { 112 | "version": "13.5.4", 113 | "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.5.4.tgz", 114 | "integrity": "sha512-mDSQfqxAlfpeZOLPxLymZkX0hYF3juN57W6vFHTvwKlnHfmh12Pt7hPIRLYIShk8uYRsKPtMTth/EzpwRI+u8w==", 115 | "cpu": [ 116 | "arm64" 117 | ], 118 | "optional": true, 119 | "os": [ 120 | "win32" 121 | ], 122 | "engines": { 123 | "node": ">= 10" 124 | } 125 | }, 126 | "node_modules/@next/swc-win32-ia32-msvc": { 127 | "version": "13.5.4", 128 | "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.5.4.tgz", 129 | "integrity": "sha512-aoqAT2XIekIWoriwzOmGFAvTtVY5O7JjV21giozBTP5c6uZhpvTWRbmHXbmsjZqY4HnEZQRXWkSAppsIBweKqw==", 130 | "cpu": [ 131 | "ia32" 132 | ], 133 | "optional": true, 134 | "os": [ 135 | "win32" 136 | ], 137 | "engines": { 138 | "node": ">= 10" 139 | } 140 | }, 141 | "node_modules/@next/swc-win32-x64-msvc": { 142 | "version": "13.5.4", 143 | "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.4.tgz", 144 | "integrity": "sha512-cyRvlAxwlddlqeB9xtPSfNSCRy8BOa4wtMo0IuI9P7Y0XT2qpDrpFKRyZ7kUngZis59mPVla5k8X1oOJ8RxDYg==", 145 | "cpu": [ 146 | "x64" 147 | ], 148 | "optional": true, 149 | "os": [ 150 | "win32" 151 | ], 152 | "engines": { 153 | "node": ">= 10" 154 | } 155 | }, 156 | "node_modules/@swc/helpers": { 157 | "version": "0.5.2", 158 | "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", 159 | "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", 160 | "dependencies": { 161 | "tslib": "^2.4.0" 162 | } 163 | }, 164 | "node_modules/busboy": { 165 | "version": "1.6.0", 166 | "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", 167 | "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", 168 | "dependencies": { 169 | "streamsearch": "^1.1.0" 170 | }, 171 | "engines": { 172 | "node": ">=10.16.0" 173 | } 174 | }, 175 | "node_modules/caniuse-lite": { 176 | "version": "1.0.30001547", 177 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001547.tgz", 178 | "integrity": "sha512-W7CrtIModMAxobGhz8iXmDfuJiiKg1WADMO/9x7/CLNin5cpSbuBjooyoIUVB5eyCc36QuTVlkVa1iB2S5+/eA==", 179 | "funding": [ 180 | { 181 | "type": "opencollective", 182 | "url": "https://opencollective.com/browserslist" 183 | }, 184 | { 185 | "type": "tidelift", 186 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 187 | }, 188 | { 189 | "type": "github", 190 | "url": "https://github.com/sponsors/ai" 191 | } 192 | ] 193 | }, 194 | "node_modules/client-only": { 195 | "version": "0.0.1", 196 | "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", 197 | "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" 198 | }, 199 | "node_modules/glob-to-regexp": { 200 | "version": "0.4.1", 201 | "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", 202 | "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" 203 | }, 204 | "node_modules/graceful-fs": { 205 | "version": "4.2.11", 206 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 207 | "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" 208 | }, 209 | "node_modules/js-tokens": { 210 | "version": "4.0.0", 211 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 212 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 213 | }, 214 | "node_modules/loose-envify": { 215 | "version": "1.4.0", 216 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 217 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 218 | "dependencies": { 219 | "js-tokens": "^3.0.0 || ^4.0.0" 220 | }, 221 | "bin": { 222 | "loose-envify": "cli.js" 223 | } 224 | }, 225 | "node_modules/nanoid": { 226 | "version": "3.3.6", 227 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", 228 | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", 229 | "funding": [ 230 | { 231 | "type": "github", 232 | "url": "https://github.com/sponsors/ai" 233 | } 234 | ], 235 | "bin": { 236 | "nanoid": "bin/nanoid.cjs" 237 | }, 238 | "engines": { 239 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 240 | } 241 | }, 242 | "node_modules/next": { 243 | "version": "13.5.4", 244 | "resolved": "https://registry.npmjs.org/next/-/next-13.5.4.tgz", 245 | "integrity": "sha512-+93un5S779gho8y9ASQhb/bTkQF17FNQOtXLKAj3lsNgltEcF0C5PMLLncDmH+8X1EnJH1kbqAERa29nRXqhjA==", 246 | "dependencies": { 247 | "@next/env": "13.5.4", 248 | "@swc/helpers": "0.5.2", 249 | "busboy": "1.6.0", 250 | "caniuse-lite": "^1.0.30001406", 251 | "postcss": "8.4.31", 252 | "styled-jsx": "5.1.1", 253 | "watchpack": "2.4.0" 254 | }, 255 | "bin": { 256 | "next": "dist/bin/next" 257 | }, 258 | "engines": { 259 | "node": ">=16.14.0" 260 | }, 261 | "optionalDependencies": { 262 | "@next/swc-darwin-arm64": "13.5.4", 263 | "@next/swc-darwin-x64": "13.5.4", 264 | "@next/swc-linux-arm64-gnu": "13.5.4", 265 | "@next/swc-linux-arm64-musl": "13.5.4", 266 | "@next/swc-linux-x64-gnu": "13.5.4", 267 | "@next/swc-linux-x64-musl": "13.5.4", 268 | "@next/swc-win32-arm64-msvc": "13.5.4", 269 | "@next/swc-win32-ia32-msvc": "13.5.4", 270 | "@next/swc-win32-x64-msvc": "13.5.4" 271 | }, 272 | "peerDependencies": { 273 | "@opentelemetry/api": "^1.1.0", 274 | "react": "^18.2.0", 275 | "react-dom": "^18.2.0", 276 | "sass": "^1.3.0" 277 | }, 278 | "peerDependenciesMeta": { 279 | "@opentelemetry/api": { 280 | "optional": true 281 | }, 282 | "sass": { 283 | "optional": true 284 | } 285 | } 286 | }, 287 | "node_modules/picocolors": { 288 | "version": "1.0.0", 289 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 290 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 291 | }, 292 | "node_modules/postcss": { 293 | "version": "8.4.31", 294 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", 295 | "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", 296 | "funding": [ 297 | { 298 | "type": "opencollective", 299 | "url": "https://opencollective.com/postcss/" 300 | }, 301 | { 302 | "type": "tidelift", 303 | "url": "https://tidelift.com/funding/github/npm/postcss" 304 | }, 305 | { 306 | "type": "github", 307 | "url": "https://github.com/sponsors/ai" 308 | } 309 | ], 310 | "dependencies": { 311 | "nanoid": "^3.3.6", 312 | "picocolors": "^1.0.0", 313 | "source-map-js": "^1.0.2" 314 | }, 315 | "engines": { 316 | "node": "^10 || ^12 || >=14" 317 | } 318 | }, 319 | "node_modules/react": { 320 | "version": "18.2.0", 321 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", 322 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", 323 | "dependencies": { 324 | "loose-envify": "^1.1.0" 325 | }, 326 | "engines": { 327 | "node": ">=0.10.0" 328 | } 329 | }, 330 | "node_modules/react-dom": { 331 | "version": "18.2.0", 332 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", 333 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", 334 | "dependencies": { 335 | "loose-envify": "^1.1.0", 336 | "scheduler": "^0.23.0" 337 | }, 338 | "peerDependencies": { 339 | "react": "^18.2.0" 340 | } 341 | }, 342 | "node_modules/scheduler": { 343 | "version": "0.23.0", 344 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", 345 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", 346 | "dependencies": { 347 | "loose-envify": "^1.1.0" 348 | } 349 | }, 350 | "node_modules/source-map-js": { 351 | "version": "1.0.2", 352 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 353 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 354 | "engines": { 355 | "node": ">=0.10.0" 356 | } 357 | }, 358 | "node_modules/streamsearch": { 359 | "version": "1.1.0", 360 | "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", 361 | "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", 362 | "engines": { 363 | "node": ">=10.0.0" 364 | } 365 | }, 366 | "node_modules/styled-jsx": { 367 | "version": "5.1.1", 368 | "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", 369 | "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", 370 | "dependencies": { 371 | "client-only": "0.0.1" 372 | }, 373 | "engines": { 374 | "node": ">= 12.0.0" 375 | }, 376 | "peerDependencies": { 377 | "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" 378 | }, 379 | "peerDependenciesMeta": { 380 | "@babel/core": { 381 | "optional": true 382 | }, 383 | "babel-plugin-macros": { 384 | "optional": true 385 | } 386 | } 387 | }, 388 | "node_modules/tslib": { 389 | "version": "2.6.2", 390 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", 391 | "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" 392 | }, 393 | "node_modules/watchpack": { 394 | "version": "2.4.0", 395 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", 396 | "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", 397 | "dependencies": { 398 | "glob-to-regexp": "^0.4.1", 399 | "graceful-fs": "^4.1.2" 400 | }, 401 | "engines": { 402 | "node": ">=10.13.0" 403 | } 404 | } 405 | } 406 | } 407 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "build": "next build", 5 | "dev": "next dev", 6 | "start": "next start" 7 | }, 8 | "dependencies": { 9 | "next": "latest", 10 | "react": "18.2.0", 11 | "react-dom": "18.2.0" 12 | }, 13 | "engines": { 14 | "node": ">=18" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /pages/index.js: -------------------------------------------------------------------------------- 1 | import Head from 'next/head'; 2 | import styles from '../styles/Home.module.css'; 3 | 4 | export default function Home() { 5 | return ( 6 |
7 | 8 | Create Next App 9 | 10 | 11 | 12 |
13 |

14 | Welcome to Next.js! 15 |

16 | 17 |

18 | Get started by editing pages/index.js 19 |

20 | 21 |
22 | 23 |

Documentation →

24 |

Find in-depth information about Next.js features and API.

25 |
26 | 27 | 28 |

Learn →

29 |

Learn about Next.js in an interactive course with quizzes!

30 |
31 | 32 | 36 |

Examples →

37 |

Discover and deploy boilerplate example Next.js projects.

38 |
39 | 40 | 44 |

Deploy →

45 |

46 | Instantly deploy your Next.js site to a public URL with Vercel. 47 |

48 |
49 |
50 |
51 | 52 | 62 | 63 | 106 | 107 | 129 |
130 | ); 131 | } 132 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alinkon0207/nextjs-blog-test/da4e2b4a8ad20573c6f33125e27cd88faa742b06/public/favicon.ico -------------------------------------------------------------------------------- /public/vercel.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /styles/Home.module.css: -------------------------------------------------------------------------------- 1 | .container { 2 | min-height: 100vh; 3 | padding: 0 0.5rem; 4 | display: flex; 5 | flex-direction: column; 6 | justify-content: center; 7 | align-items: center; 8 | } 9 | 10 | .title a { 11 | color: #0070f3; 12 | text-decoration: none; 13 | } 14 | 15 | .title a:hover, 16 | .title a:focus, 17 | .title a:active { 18 | text-decoration: underline; 19 | } 20 | 21 | .title { 22 | margin: 0 0 1rem; 23 | line-height: 1.15; 24 | font-size: 3.6rem; 25 | } 26 | 27 | .title { 28 | text-align: center; 29 | } 30 | 31 | .title, 32 | .description { 33 | text-align: center; 34 | } 35 | 36 | .description { 37 | line-height: 1.5; 38 | font-size: 1.5rem; 39 | } 40 | 41 | .grid { 42 | display: flex; 43 | align-items: center; 44 | justify-content: center; 45 | flex-wrap: wrap; 46 | 47 | max-width: 800px; 48 | margin-top: 3rem; 49 | } 50 | 51 | .card { 52 | margin: 1rem; 53 | flex-basis: 45%; 54 | padding: 1.5rem; 55 | text-align: left; 56 | color: inherit; 57 | text-decoration: none; 58 | border: 1px solid #eaeaea; 59 | border-radius: 10px; 60 | transition: 61 | color 0.15s ease, 62 | border-color 0.15s ease; 63 | } 64 | 65 | .card:hover, 66 | .card:focus, 67 | .card:active { 68 | color: #0070f3; 69 | border-color: #0070f3; 70 | } 71 | 72 | .card h3 { 73 | margin: 0 0 1rem 0; 74 | font-size: 1.5rem; 75 | } 76 | 77 | .card p { 78 | margin: 0; 79 | font-size: 1.25rem; 80 | line-height: 1.5; 81 | } 82 | 83 | .logo { 84 | height: 1em; 85 | } 86 | 87 | @media (max-width: 600px) { 88 | .grid { 89 | width: 100%; 90 | flex-direction: column; 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /styles/global.css: -------------------------------------------------------------------------------- 1 | html, 2 | body { 3 | padding: 0; 4 | margin: 0; 5 | font-family: 6 | Inter, 7 | -apple-system, 8 | BlinkMacSystemFont, 9 | Segoe UI, 10 | Roboto, 11 | Oxygen, 12 | Ubuntu, 13 | Cantarell, 14 | Fira Sans, 15 | Droid Sans, 16 | Helvetica Neue, 17 | sans-serif; 18 | } 19 | 20 | a { 21 | color: inherit; 22 | text-decoration: none; 23 | } 24 | 25 | * { 26 | box-sizing: border-box; 27 | } 28 | 29 | img { 30 | max-width: 100%; 31 | height: auto; 32 | } 33 | --------------------------------------------------------------------------------