From 33f35b4a5a5e5d31b6218a5c4f4dfc7d0b90a98c Mon Sep 17 00:00:00 2001 From: Petri Partio Date: Thu, 30 May 2024 15:25:21 +0300 Subject: [PATCH 1/3] feat: new design for koodiklinikka.fi Co-authored-by: Aarni Koskela --- .eslintrc.js | 36 +- .gitignore | 14 +- .nvmrc | 2 +- LICENSE.md | 1 + README.md | 13 +- app/globals.css | 99 + app/icon.png | Bin 0 -> 7618 bytes app/layout.tsx | 27 + app/opengraph-image.alt.txt | 1 + app/opengraph-image.jpg | Bin 0 -> 71707 bytes app/page.tsx | 105 + app/twitter-image.alt.txt | 1 + app/twitter-image.jpg | Bin 0 -> 71707 bytes assets/banner.png | Bin 0 -> 505917 bytes bun.lockb | Bin 0 -> 145766 bytes components/BottomFade.tsx | 5 + components/ChannelGrid.tsx | 33 + components/ChannelReferenceRenderer.tsx | 32 - components/EmailComponent.tsx | 5 - components/Fader.tsx | 46 - components/FeatureImage.tsx | 27 + components/Feed.tsx | 80 - components/Footer.tsx | 113 +- components/Form.tsx | 138 + components/Hero.tsx | 14 + components/InviteForm.tsx | 141 - components/Loader.tsx | 12 - components/Members.tsx | 51 - components/Nav.tsx | 82 + components/Wrapper.tsx | 5 + components/api.ts | 5 - components/feed-transformers.ts | 70 - components/membership/MembershipForm.tsx | 39 - components/membership/MembershipInfoForm.tsx | 212 -- data/channels.ts | 22 - data/sponsors.ts | 31 - .../logo-new-black.svg => logo-new-black.svg | 0 next.config.mjs | 9 + package.json | 65 +- pages/_app.tsx | 60 - pages/_document.tsx | 48 - pages/index.tsx | 196 - postcss.config.mjs | 8 + public/_redirects | 1 - public/background.webp | Bin 0 -> 510666 bytes public/koodiklinikka.svg | 1 + public/logos/facebook.svg | 1 + public/logos/github.svg | 4 + public/logos/linkedin.svg | 1 + public/logos/slack.svg | 1 + public/logos/x.svg | 4 + public/meetup.webp | Bin 0 -> 93078 bytes public/opensource.webp | Bin 0 -> 89212 bytes .../static/icons/android-chrome-192x192.png | Bin 4352 -> 0 bytes .../static/icons/android-chrome-512x512.png | Bin 18366 -> 0 bytes public/static/icons/apple-touch-icon.png | Bin 3897 -> 0 bytes public/static/icons/favicon-16x16.png | Bin 182 -> 0 bytes public/static/icons/favicon-32x32.png | Bin 340 -> 0 bytes public/static/icons/favicon.ico | Bin 15406 -> 0 bytes public/static/icons/site.webmanifest | 19 - public/static/images/avain.svg | 1 - public/static/images/codestats.png | Bin 18979 -> 0 bytes public/static/images/hp3_bw.jpg | Bin 274851 -> 0 bytes public/static/images/jumbo.jpg | Bin 299976 -> 0 bytes public/static/images/logo-js.png | Bin 1669 -> 0 bytes public/static/images/logo-new.svg | 1 - public/static/images/logo.png | Bin 2463 -> 0 bytes public/static/images/meta.jpg | Bin 31212 -> 0 bytes public/static/images/octocat.png | Bin 4999 -> 0 bytes public/static/images/poster.jpg | Bin 183797 -> 0 bytes public/static/images/reactabular.png | Bin 5046 -> 0 bytes public/static/images/redom.svg | 1 - public/static/images/slack.png | Bin 242313 -> 0 bytes public/static/images/social/facebook.svg | 1 - public/static/images/social/github.svg | 1 - public/static/images/social/linkedin.svg | 1 - public/static/images/social/slack.svg | 1 - public/static/images/social/twitter.svg | 1 - public/static/images/sponsors/futurice.svg | 7 - public/static/images/sponsors/idean.svg | 1 - public/static/images/sponsors/metosin.svg | 1 - public/static/images/sponsors/nordea.svg | 1 - public/static/images/sponsors/rare.svg | 3 - public/static/images/sponsors/solita.svg | 1 - public/static/images/sponsors/wakeone.svg | 1 - public/static/images/symbol-white.svg | 4 - public/static/images/symbol.svg | 4 - public/static/videos/jumbo.mp4 | Bin 245010 -> 0 bytes styles/_button.scss | 10 - styles/_header.scss | 299 -- styles/_input.scss | 39 - styles/_loader.scss | 133 - styles/style.scss | 602 --- tailwind.config.ts | 28 + tsconfig.json | 21 +- types/global.d.ts | 13 + typings/global.d.ts | 3 - yarn.lock | 3335 +++++++++-------- 98 files changed, 2535 insertions(+), 3859 deletions(-) create mode 100644 app/globals.css create mode 100644 app/icon.png create mode 100644 app/layout.tsx create mode 100644 app/opengraph-image.alt.txt create mode 100644 app/opengraph-image.jpg create mode 100644 app/page.tsx create mode 100644 app/twitter-image.alt.txt create mode 100644 app/twitter-image.jpg create mode 100644 assets/banner.png create mode 100755 bun.lockb create mode 100644 components/BottomFade.tsx create mode 100644 components/ChannelGrid.tsx delete mode 100644 components/ChannelReferenceRenderer.tsx delete mode 100644 components/EmailComponent.tsx delete mode 100644 components/Fader.tsx create mode 100644 components/FeatureImage.tsx delete mode 100644 components/Feed.tsx create mode 100644 components/Form.tsx create mode 100644 components/Hero.tsx delete mode 100644 components/InviteForm.tsx delete mode 100644 components/Loader.tsx delete mode 100644 components/Members.tsx create mode 100644 components/Nav.tsx create mode 100644 components/Wrapper.tsx delete mode 100644 components/api.ts delete mode 100644 components/feed-transformers.ts delete mode 100644 components/membership/MembershipForm.tsx delete mode 100644 components/membership/MembershipInfoForm.tsx delete mode 100644 data/channels.ts delete mode 100644 data/sponsors.ts rename public/static/images/logo-new-black.svg => logo-new-black.svg (100%) create mode 100644 next.config.mjs delete mode 100644 pages/_app.tsx delete mode 100644 pages/_document.tsx delete mode 100644 pages/index.tsx create mode 100644 postcss.config.mjs delete mode 100644 public/_redirects create mode 100644 public/background.webp create mode 100644 public/koodiklinikka.svg create mode 100644 public/logos/facebook.svg create mode 100644 public/logos/github.svg create mode 100644 public/logos/linkedin.svg create mode 100644 public/logos/slack.svg create mode 100644 public/logos/x.svg create mode 100644 public/meetup.webp create mode 100644 public/opensource.webp delete mode 100755 public/static/icons/android-chrome-192x192.png delete mode 100755 public/static/icons/android-chrome-512x512.png delete mode 100755 public/static/icons/apple-touch-icon.png delete mode 100755 public/static/icons/favicon-16x16.png delete mode 100755 public/static/icons/favicon-32x32.png delete mode 100755 public/static/icons/favicon.ico delete mode 100755 public/static/icons/site.webmanifest delete mode 100644 public/static/images/avain.svg delete mode 100644 public/static/images/codestats.png delete mode 100644 public/static/images/hp3_bw.jpg delete mode 100644 public/static/images/jumbo.jpg delete mode 100644 public/static/images/logo-js.png delete mode 100644 public/static/images/logo-new.svg delete mode 100644 public/static/images/logo.png delete mode 100644 public/static/images/meta.jpg delete mode 100644 public/static/images/octocat.png delete mode 100644 public/static/images/poster.jpg delete mode 100644 public/static/images/reactabular.png delete mode 100644 public/static/images/redom.svg delete mode 100644 public/static/images/slack.png delete mode 100644 public/static/images/social/facebook.svg delete mode 100644 public/static/images/social/github.svg delete mode 100644 public/static/images/social/linkedin.svg delete mode 100644 public/static/images/social/slack.svg delete mode 100644 public/static/images/social/twitter.svg delete mode 100644 public/static/images/sponsors/futurice.svg delete mode 100644 public/static/images/sponsors/idean.svg delete mode 100644 public/static/images/sponsors/metosin.svg delete mode 100644 public/static/images/sponsors/nordea.svg delete mode 100644 public/static/images/sponsors/rare.svg delete mode 100644 public/static/images/sponsors/solita.svg delete mode 100644 public/static/images/sponsors/wakeone.svg delete mode 100644 public/static/images/symbol-white.svg delete mode 100644 public/static/images/symbol.svg delete mode 100644 public/static/videos/jumbo.mp4 delete mode 100644 styles/_button.scss delete mode 100644 styles/_header.scss delete mode 100644 styles/_input.scss delete mode 100644 styles/_loader.scss delete mode 100644 styles/style.scss create mode 100644 tailwind.config.ts create mode 100644 types/global.d.ts delete mode 100644 typings/global.d.ts diff --git a/.eslintrc.js b/.eslintrc.js index 3725308..0151529 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,37 +1,3 @@ module.exports = { - extends: [ - "plugin:@typescript-eslint/recommended", - "plugin:react-hooks/recommended", - "plugin:react/recommended", - "plugin:jsx-a11y/recommended", - "plugin:@next/next/recommended", - "prettier", - ], - settings: { - react: { - version: "detect", - }, - }, - env: { - browser: true, - node: true, - }, - parser: "@typescript-eslint/parser", - parserOptions: { - ecmaVersion: 2020, - sourceType: "module", - ecmaFeatures: { - jsx: true, - }, - }, - rules: { - "@typescript-eslint/ban-types": "warn", - "no-use-before-define": 0, - "padded-blocks": 0, - "react/jsx-no-target-blank": 0, - "react/jsx-uses-react": 2, - "react/jsx-uses-vars": 2, - "react/prop-types": 0, - "react/react-in-jsx-scope": 2, - }, + extends: 'next/core-web-vitals', }; diff --git a/.gitignore b/.gitignore index e23ed7b..76ac9b9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,17 @@ -*.log +*.log* +*.pem +*.tsbuildinfo .DS_Store +.env*.local .history .next +.pnp.js +.vercel +.yarn +/.pnp +/build +/coverage +next-env.d.ts node_modules out -package-lock.json \ No newline at end of file +package-lock.json diff --git a/.nvmrc b/.nvmrc index b6a7d89..209e3ef 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -16 +20 diff --git a/LICENSE.md b/LICENSE.md index 3a8ee75..2b6f091 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,7 @@ The MIT License (MIT) Copyright (c) 2015 Riku Rouvila +Copyright (c) 2024 Petri Partio Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index ddf37f4..178d110 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![Travis](https://travis-ci.org/koodiklinikka/koodiklinikka.fi.svg?branch=master) -Koodiklinikka-logo +Koodiklinikka-logo **Koodiklinikka.fi lähdekoodi**. [Issueita](https://github.com/koodiklinikka/koodiklinikka.fi/issues) ja [Pull Requestejä](https://github.com/koodiklinikka/koodiklinikka.fi/pulls) otetaan lämpimästi vastaan. Yritämme pitää kynnyksen kontribuoida projektiin alhaisena, jotta mahdollisimman moni pääsisi jättämään siihen jälkensä. Kaikki koodi katselmoidaan läpi ja mergetään projektiin kun näyttää hyvälle. Muutamasta mergetystä Pull Requestista oikeudet ylläpitää projektia. @@ -20,8 +20,7 @@ ### Vaaditut työkalut -- Asenna [Node.js](http://nodejs.org) -- Asenna [Yarn 1.x](https://classic.yarnpkg.com/en/) +- Asenna [Node.js](http://nodejs.org) ja [Yarn 1.x](https://classic.yarnpkg.com/en/) (tai [Bun](https://bun.sh/)) - Asenna [Git](https://git-scm.com/) client lähdekoodin hallintaan ### Kloonaa projekti koneellesi @@ -44,14 +43,14 @@ Avaa selaimessasi: [`http://localhost:3000`](http://localhost:3000) ## Komennot -### `yarn` +### `yarn` (tai `bun i`) Asentaa projektin riippuvuudet -### `yarn start` +### `yarn dev` (tai `bun dev`) -Kääntää lähdetiedostot ja palvelee sovellusta porttiin `3000` +Palvelee sovellusta kehitystilassa porttiin `3000` -### `yarn build` +### `yarn build` (tai `bun run build`) Kääntää lähdetiedostot -> `out/` -hakemistoon diff --git a/app/globals.css b/app/globals.css new file mode 100644 index 0000000..d805cbf --- /dev/null +++ b/app/globals.css @@ -0,0 +1,99 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer utilities { + .text-balance { + text-wrap: balance; + } + + .text-shadow { + text-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + } +} + +.title-highlight { + background: linear-gradient(200deg, #ff0098 20%, #0ef 80%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + filter: drop-shadow(0 0 20px rgba(255, 0, 234, 0.2)); +} + +@supports (color: color(display-p3 1 1 1)) { + .title-highlight { + background: linear-gradient(200deg, oklch(68% 0.5 340) 20%, oklch(90% 0.5 200) 100%); + + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + filter: drop-shadow(0 0 20px oklch(80% 0.41 211 / 20%)); + } +} + +.bg-button { + background: linear-gradient(200deg, #f0f 20%, #ff00c4 100%); +} + +@supports (color: color(display-p3 1 1 1)) { + .bg-button { + background: linear-gradient(200deg, oklch(100% 0.5 340) 20%, oklch(86% 0.5 360) 100%); + } +} + +html { + background: #070b1e url('../public/background.webp'); + background-size: 1024px auto; + background-position: top center; + background-repeat: no-repeat; + scroll-behavior: smooth; +} + +@media (min-width: 1024px) { + html { + background-size: 100% auto; + } +} + +h1, +h2, +h3 { + text-wrap: balance; +} + +.checkbox svg { + display: none; +} + +input[type='checkbox']:checked + .checkbox { + background-color: #ef008e; + border-color: #ff0099; +} + +input[type='checkbox']:checked + .checkbox svg { + display: block; + align-items: center; + justify-items: center; + width: 80%; + height: auto; +} + +input[type='checkbox']:focus + .checkbox { + outline: 2px solid var(--tw-color-red-800); + outline-offset: 2px; +} + +@keyframes fadeInOut { + 0% { + opacity: 20%; + } + 50% { + opacity: 100%; + } + 100% { + opacity: 20%; + } +} + +.fade-in-out { + opacity: 20%; + animation: fadeInOut 4s ease-in-out infinite; +} diff --git a/app/icon.png b/app/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a9901c3ff32a7a538835e4ee2b7fbcdfb2f0ffd6 GIT binary patch literal 7618 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 { + return ( + + + {children} + + + + ); +} diff --git a/app/opengraph-image.alt.txt b/app/opengraph-image.alt.txt new file mode 100644 index 0000000..37f6a87 --- /dev/null +++ b/app/opengraph-image.alt.txt @@ -0,0 +1 @@ +Koodiklinikka on Suomen suurin ohjelmistoalan yhteisö, joka tuo alan ammattilaiset ja harrastajat yhteen diff --git a/app/opengraph-image.jpg b/app/opengraph-image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..94ab1b074a6eeaf2f1b9550e091a0078e56153a8 GIT binary patch literal 71707 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

x^ltk?Yp(Ph$B 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 literal 0 HcmV?d00001 diff --git a/app/page.tsx b/app/page.tsx new file mode 100644 index 0000000..ea62eeb --- /dev/null +++ b/app/page.tsx @@ -0,0 +1,105 @@ +import shuffle from 'lodash.shuffle'; + +import ChannelGrid from '@/components/ChannelGrid'; +import FeatureImage from '@/components/FeatureImage'; +import Footer from '@/components/Footer'; +import Hero from '@/components/Hero'; +import Nav from '@/components/Nav'; +import Wrapper from '@/components/Wrapper'; + +async function getChannels() { + const res = await fetch('https://stats.koodiklinikka.fi/api/channels', { next: { revalidate: 3600 } }); + + if (!res.ok) { + // This will activate the closest `error.js` Error Boundary + throw new Error('Failed to fetch data'); + } + + return res.json(); +} + +export default async function Home() { + let channels: Channel[] = await getChannels(); + channels = channels.sort((a, b) => (a.messages_today > b.messages_today ? -1 : 1)); + + return ( + <> +