From 1acbca10b744da242284a70797f32419748a69e7 Mon Sep 17 00:00:00 2001 From: fcablik Date: Tue, 30 Jan 2024 12:03:56 +0100 Subject: [PATCH] contents fixes + logos implementations --- app/components/logos/bootstrap.svg | 28 + app/components/logos/docker.svg | 47 ++ app/components/logos/eslint.svg | 17 + app/components/logos/faker.svg | 736 ++++++++++++++++++ app/components/logos/fly.svg | 1 + app/components/logos/github.svg | 1 + app/components/logos/logos.ts | 179 +++++ app/components/logos/msw.svg | 13 + app/components/logos/playwright.svg | 9 + app/components/logos/prettier.svg | 76 ++ app/components/logos/prisma.svg | 9 + app/components/logos/radix.svg | 1 + app/components/logos/react-email.svg | 1 + app/components/logos/reactjs.svg | 7 + app/components/logos/remix.svg | 25 + app/components/logos/resend.svg | 31 + app/components/logos/sass.svg | 17 + app/components/logos/sentry.svg | 6 + app/components/logos/shadcn-ui.svg | 1 + app/components/logos/sqlite.svg | 67 ++ app/components/logos/tailwind.svg | 1 + app/components/logos/testing-library.png | Bin 0 -> 5803 bytes app/components/logos/typescript.svg | 6 + app/components/logos/vitest.svg | 5 + app/components/logos/wordpress.svg | 1 + app/components/logos/zod.svg | 46 ++ app/routes/portfolio+/forcompanies+/11ts.tsx | 4 +- app/routes/portfolio+/forcompanies+/medi.tsx | 4 +- app/routes/portfolio+/forcompanies+/t4s.tsx | 4 +- app/routes/portfolio+/forcompanies.tsx | 4 +- app/routes/portfolio+/freelance+/reactjs.tsx | 74 ++ app/routes/portfolio+/freelance+/remix-ts.tsx | 38 +- .../portfolio+/freelance+/wp-php-js.tsx | 32 + app/routes/portfolio+/freelance.tsx | 4 +- app/routes/portfolio.tsx | 12 +- 35 files changed, 1492 insertions(+), 15 deletions(-) create mode 100644 app/components/logos/bootstrap.svg create mode 100644 app/components/logos/docker.svg create mode 100644 app/components/logos/eslint.svg create mode 100644 app/components/logos/faker.svg create mode 100644 app/components/logos/fly.svg create mode 100644 app/components/logos/github.svg create mode 100644 app/components/logos/logos.ts create mode 100644 app/components/logos/msw.svg create mode 100644 app/components/logos/playwright.svg create mode 100644 app/components/logos/prettier.svg create mode 100644 app/components/logos/prisma.svg create mode 100644 app/components/logos/radix.svg create mode 100644 app/components/logos/react-email.svg create mode 100644 app/components/logos/reactjs.svg create mode 100644 app/components/logos/remix.svg create mode 100644 app/components/logos/resend.svg create mode 100644 app/components/logos/sass.svg create mode 100644 app/components/logos/sentry.svg create mode 100644 app/components/logos/shadcn-ui.svg create mode 100644 app/components/logos/sqlite.svg create mode 100644 app/components/logos/tailwind.svg create mode 100644 app/components/logos/testing-library.png create mode 100644 app/components/logos/typescript.svg create mode 100644 app/components/logos/vitest.svg create mode 100644 app/components/logos/wordpress.svg create mode 100644 app/components/logos/zod.svg diff --git a/app/components/logos/bootstrap.svg b/app/components/logos/bootstrap.svg new file mode 100644 index 0000000..703c6ef --- /dev/null +++ b/app/components/logos/bootstrap.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/components/logos/docker.svg b/app/components/logos/docker.svg new file mode 100644 index 0000000..b39ecde --- /dev/null +++ b/app/components/logos/docker.svg @@ -0,0 +1,47 @@ + + + + + + diff --git a/app/components/logos/eslint.svg b/app/components/logos/eslint.svg new file mode 100644 index 0000000..dd535a8 --- /dev/null +++ b/app/components/logos/eslint.svg @@ -0,0 +1,17 @@ + + + + + + + + + diff --git a/app/components/logos/faker.svg b/app/components/logos/faker.svg new file mode 100644 index 0000000..e290a83 --- /dev/null +++ b/app/components/logos/faker.svg @@ -0,0 +1,736 @@ + + + + Layer 1 + + Group + + Group + + Shape 272 + + + + + + + + + + Shape 273 + + + + + + + + + + Shape 274 + + + + + + + + + + Shape 275 + + + + + + + + + + Shape 276 + + + + + + + + + + Shape 277 + + + + + + + + + + Shape 278 + + + + + + + + + + Shape 279 + + + + + + + + + + Shape 280 + + + + + + + + + + Shape 281 + + + + + + + + + + Shape 282 + + + + + + + + + + Shape 283 + + + + + + + + + + Shape 284 + + + + + + + + + + Shape 285 + + + + + + + + + + Shape 286 + + + + + + + + + + Shape 287 + + + + + + + + + + Shape 288 + + + + + + + + + + Shape 289 + + + + + + + + + + Shape 290 + + + + + + + + + + Shape 291 + + + + + + + + + + Shape 292 + + + + + + + + + + Shape 293 + + + + + + + + + + Shape 294 + + + + + + + + + + Shape 295 + + + + + + + + + + Shape 296 + + + + + + + + + + Shape 297 + + + + + + + + + + Shape 298 + + + + + + + + + + Shape 299 + + + + + + + + + + Shape 300 + + + + + + + + + + Shape 301 + + + + + + + + + + Shape 302 + + + + + + + + + + Shape 303 + + + + + + + + + + Shape 304 + + + + + + + + + + Shape 305 + + + + + + + + + + Shape 306 + + + + + + + + + + Shape 307 + + + + + + + + + + Shape 308 + + + + + + + + + + Shape 309 + + + + + + + + + + Shape 310 + + + + + + + + + + Shape 311 + + + + + + + + + + Shape 312 + + + + + + + + + + Shape 313 + + + + + + + + + + Shape 314 + + + + + + + + + + Shape 315 + + + + + + + + + + Shape 316 + + + + + + + + + + Shape 317 + + + + + + + + + + Shape 318 + + + + + + + + + + Shape 319 + + + + + + + + + + Shape 320 + + + + + + + + + + Shape 321 + + + + + + + + + + Shape 322 + + + + + + + + + + Shape 323 + + + + + + + + + + Shape 324 + + + + + + + + + + Shape 325 + + + + + + + + + + Shape 326 + + + + + + + + + + Shape 327 + + + + + + + + + + Shape 328 + + + + + + + + + + Shape 329 + + + + + + + + + + Shape 330 + + + + + + + + + + Shape 331 + + + + + + + + + + Shape 332 + + + + + + + + + + Shape 333 + + + + + + + + + + Shape 334 + + + + + + + + + + Shape 335 + + + + + + + + + + Shape 336 + + + + + + + + + + Shape 337 + + + + + + + + + + Shape 338 + + + + + + + + + + + Shape 339 + + + + + + + + + + + Shape 340 + + + + + + + + + + + Shape 341 + + + + + + + + + + + Shape 342 + + + + + + + + + + Shape 343 + + + + + + + + + + + + diff --git a/app/components/logos/fly.svg b/app/components/logos/fly.svg new file mode 100644 index 0000000..9dbf3c7 --- /dev/null +++ b/app/components/logos/fly.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/components/logos/github.svg b/app/components/logos/github.svg new file mode 100644 index 0000000..37fa923 --- /dev/null +++ b/app/components/logos/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/components/logos/logos.ts b/app/components/logos/logos.ts new file mode 100644 index 0000000..a16b4f3 --- /dev/null +++ b/app/components/logos/logos.ts @@ -0,0 +1,179 @@ +import docker from './docker.svg' +import eslint from './eslint.svg' +import fakerJS from './faker.svg' +import fly from './fly.svg' +import github from './github.svg' +import msw from './msw.svg' +import playwright from './playwright.svg' +import prettier from './prettier.svg' +import prisma from './prisma.svg' +import radixUI from './radix.svg' +import reactEmail from './react-email.svg' +import remix from './remix.svg' +import resend from './resend.svg' +import sentry from './sentry.svg' +import sqlite from './sqlite.svg' +import tailwind from './tailwind.svg' +import testingLibrary from './testing-library.png' +import typescript from './typescript.svg' +import vitest from './vitest.svg' +import zod from './zod.svg' +// import reactjs from './reactjs.svg' +// import shadcnUI from './shadcn-ui.svg' + +export const logos = [ + { + src: remix, + alt: 'Remix', + href: 'https://remix.run', + column: 1, + row: 1, + }, + { + src: typescript, + alt: 'TypeScript', + href: 'https://typescriptlang.org', + column: 5, + row: 2, + }, + { + src: fly, + alt: 'Fly.io', + href: 'https://fly.io', + column: 1, + row: 2, + }, + { + src: sqlite, + alt: 'SQLite', + href: 'https://sqlite.org', + column: 1, + row: 3, + }, + { + src: prisma, + alt: 'Prisma', + href: 'https://prisma.io', + column: 2, + row: 2, + }, + { + src: zod, + alt: 'Zod', + href: 'https://zod.dev/', + column: 2, + row: 3, + }, + { + src: github, + alt: 'GitHub', + href: 'https://github.com', + column: 2, + row: 4, + }, + { + src: radixUI, + alt: 'Radix UI', + href: 'https://www.radix-ui.com/', + column: 3, + row: 4, + }, + { + src: tailwind, + alt: 'Tailwind CSS', + href: 'https://tailwindcss.com', + column: 3, + row: 3, + }, + // { + // src: reactjs, + // alt: 'ReactJS', + // href: 'https://react.dev/', + // column: 3, + // row: 3, + // }, + // { + // src: shadcnUI, + // alt: 'shadcn/ui', + // href: 'https://ui.shadcn.com/', + // column: 3, + // row: 5, + // }, + { + src: resend, + alt: 'Resend', + href: 'https://resend.com', + column: 2, + row: 5, + }, + { + src: reactEmail, + alt: 'React Email', + href: 'https://react.email', + column: 2, + row: 6, + }, + { + src: playwright, + alt: 'Playwright', + href: 'https://playwright.dev/', + column: 4, + row: 1, + }, + { + src: msw, + alt: 'MSW', + href: 'https://mswjs.io', + column: 4, + row: 2, + }, + { + src: fakerJS, + alt: 'Faker.js', + href: 'https://fakerjs.dev/', + column: 4, + row: 3, + }, + { + src: vitest, + alt: 'Vitest', + href: 'https://vitest.dev', + column: 4, + row: 4, + }, + { + src: testingLibrary, + alt: 'Testing Library', + href: 'https://testing-library.com', + column: 4, + row: 5, + }, + { + src: docker, + alt: 'Docker', + href: 'https://www.docker.com', + column: 4, + row: 6, + }, + { + src: prettier, + alt: 'Prettier', + href: 'https://prettier.io', + column: 5, + row: 3, + }, + { + src: eslint, + alt: 'ESLint', + href: 'https://eslint.org', + column: 5, + row: 4, + }, + { + src: sentry, + alt: 'Sentry', + href: 'https://sentry.io', + column: 5, + row: 5, + }, +] diff --git a/app/components/logos/msw.svg b/app/components/logos/msw.svg new file mode 100644 index 0000000..f5de6fb --- /dev/null +++ b/app/components/logos/msw.svg @@ -0,0 +1,13 @@ + + + LOGO + + \ No newline at end of file diff --git a/app/components/logos/playwright.svg b/app/components/logos/playwright.svg new file mode 100644 index 0000000..7b3ca7d --- /dev/null +++ b/app/components/logos/playwright.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/app/components/logos/prettier.svg b/app/components/logos/prettier.svg new file mode 100644 index 0000000..f4d0b66 --- /dev/null +++ b/app/components/logos/prettier.svg @@ -0,0 +1,76 @@ + + + + prettier-icon-dark + Created with sketchtool. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/components/logos/prisma.svg b/app/components/logos/prisma.svg new file mode 100644 index 0000000..17a3886 --- /dev/null +++ b/app/components/logos/prisma.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/app/components/logos/radix.svg b/app/components/logos/radix.svg new file mode 100644 index 0000000..a748299 --- /dev/null +++ b/app/components/logos/radix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/components/logos/react-email.svg b/app/components/logos/react-email.svg new file mode 100644 index 0000000..51a2698 --- /dev/null +++ b/app/components/logos/react-email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/components/logos/reactjs.svg b/app/components/logos/reactjs.svg new file mode 100644 index 0000000..e6261cc --- /dev/null +++ b/app/components/logos/reactjs.svg @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/app/components/logos/remix.svg b/app/components/logos/remix.svg new file mode 100644 index 0000000..2f4a5ab --- /dev/null +++ b/app/components/logos/remix.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/components/logos/resend.svg b/app/components/logos/resend.svg new file mode 100644 index 0000000..1227dc5 --- /dev/null +++ b/app/components/logos/resend.svg @@ -0,0 +1,31 @@ + + + + + + + + \ No newline at end of file diff --git a/app/components/logos/sass.svg b/app/components/logos/sass.svg new file mode 100644 index 0000000..527557a --- /dev/null +++ b/app/components/logos/sass.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/components/logos/sentry.svg b/app/components/logos/sentry.svg new file mode 100644 index 0000000..3ebb3bb --- /dev/null +++ b/app/components/logos/sentry.svg @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/app/components/logos/shadcn-ui.svg b/app/components/logos/shadcn-ui.svg new file mode 100644 index 0000000..2780f68 --- /dev/null +++ b/app/components/logos/shadcn-ui.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/components/logos/sqlite.svg b/app/components/logos/sqlite.svg new file mode 100644 index 0000000..424e0ab --- /dev/null +++ b/app/components/logos/sqlite.svg @@ -0,0 +1,67 @@ + + + +SQLiteimage/svg+xmlSQLite \ No newline at end of file diff --git a/app/components/logos/tailwind.svg b/app/components/logos/tailwind.svg new file mode 100644 index 0000000..6a9ab49 --- /dev/null +++ b/app/components/logos/tailwind.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/components/logos/testing-library.png b/app/components/logos/testing-library.png new file mode 100644 index 0000000000000000000000000000000000000000..6febb2a5d8d30c52e04914caba80e407634fe84f GIT binary patch literal 5803 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 p4GMilY;-#+dIMbXU;azI + +TypeScript logo + + + diff --git a/app/components/logos/vitest.svg b/app/components/logos/vitest.svg new file mode 100644 index 0000000..fd9daaf --- /dev/null +++ b/app/components/logos/vitest.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/app/components/logos/wordpress.svg b/app/components/logos/wordpress.svg new file mode 100644 index 0000000..e8eb70d --- /dev/null +++ b/app/components/logos/wordpress.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/components/logos/zod.svg b/app/components/logos/zod.svg new file mode 100644 index 0000000..0595f51 --- /dev/null +++ b/app/components/logos/zod.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/routes/portfolio+/forcompanies+/11ts.tsx b/app/routes/portfolio+/forcompanies+/11ts.tsx index 8ab8dc1..93b9888 100644 --- a/app/routes/portfolio+/forcompanies+/11ts.tsx +++ b/app/routes/portfolio+/forcompanies+/11ts.tsx @@ -1,6 +1,6 @@ export default function PortfolioForCompanies11Ts() { return ( - <> +

11ts: PHP Nette + Latte + JavaScript + Sass

@@ -45,6 +45,6 @@ export default function PortfolioForCompanies11Ts() {
  • abtesting - firstly with custom solution, later bloomreach
  • {/*
  • (TODO) - shopware, trim, vue?, eslint,
  • */}
    - + ) } diff --git a/app/routes/portfolio+/forcompanies+/medi.tsx b/app/routes/portfolio+/forcompanies+/medi.tsx index 5cb2c17..6fbd202 100644 --- a/app/routes/portfolio+/forcompanies+/medi.tsx +++ b/app/routes/portfolio+/forcompanies+/medi.tsx @@ -1,6 +1,6 @@ export default function PortfolioForCompaniesMedi() { return ( - <> +

    medi: Latte + JavaScript + Sass ( + intro into PHP Nette)

    @@ -45,6 +45,6 @@ export default function PortfolioForCompaniesMedi() {
  • shoptet
  • ajax
  • - + ) } diff --git a/app/routes/portfolio+/forcompanies+/t4s.tsx b/app/routes/portfolio+/forcompanies+/t4s.tsx index d8cbe4b..2a4f98e 100644 --- a/app/routes/portfolio+/forcompanies+/t4s.tsx +++ b/app/routes/portfolio+/forcompanies+/t4s.tsx @@ -1,6 +1,6 @@ export default function PortfolioForCompaniesT4s() { return ( - <> +

    t4s: PHP Nette + Latte + JavaScript + Sass

    @@ -44,6 +44,6 @@ export default function PortfolioForCompaniesT4s() {
  • bloomreach (exponea)
  • abtesting - firstly with custom solution, later bloomreach
  • - + ) } diff --git a/app/routes/portfolio+/forcompanies.tsx b/app/routes/portfolio+/forcompanies.tsx index 64746a4..ad8d16a 100644 --- a/app/routes/portfolio+/forcompanies.tsx +++ b/app/routes/portfolio+/forcompanies.tsx @@ -8,7 +8,7 @@ export default function PortfolioForCompanies() { company projects -
    + <>
    {({ isActive }) => ( @@ -36,7 +36,7 @@ export default function PortfolioForCompanies() {
    -
    + ) } diff --git a/app/routes/portfolio+/freelance+/reactjs.tsx b/app/routes/portfolio+/freelance+/reactjs.tsx index 077daa0..0b6d944 100644 --- a/app/routes/portfolio+/freelance+/reactjs.tsx +++ b/app/routes/portfolio+/freelance+/reactjs.tsx @@ -1,3 +1,13 @@ +import bootstrap from '#app/components/logos/bootstrap.svg' +import reactjs from '#app/components/logos/reactjs.svg' +import sass from '#app/components/logos/sass.svg' +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from '#app/components/ui/tooltip.tsx' + export default function PortfolioFreelanceReactJS() { return ( <> @@ -8,6 +18,70 @@ export default function PortfolioFreelanceReactJS() { custom built applications, both for clients and for services and tools testing + +
      + +
    • + + + + + + + ReactJS + +
    • + +
    • + + + + + + + Sass + +
    • + +
    • + + + + + + + Bootstrap + +
    • +
      +
    ) diff --git a/app/routes/portfolio+/freelance+/remix-ts.tsx b/app/routes/portfolio+/freelance+/remix-ts.tsx index 1fd32a9..2e1a789 100644 --- a/app/routes/portfolio+/freelance+/remix-ts.tsx +++ b/app/routes/portfolio+/freelance+/remix-ts.tsx @@ -1,6 +1,14 @@ +import { logos } from '#app/components/logos/logos.ts' +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from '#app/components/ui/tooltip.tsx' + export default function PortfolioFreelanceRemixTypescript() { return ( - <> +

    Remix.run + TypeScript + Prisma (SQLite) + TailwindCSS + Radix UI

    @@ -12,7 +20,33 @@ export default function PortfolioFreelanceRemixTypescript() { epic-stack by Kent C. Dodds
  • custom components for custom apps
  • + +
      + + {logos.map((logo, i) => ( +
    • + + + + + + + {logo.alt} + +
    • + ))} +
      +
    - + ) } diff --git a/app/routes/portfolio+/freelance+/wp-php-js.tsx b/app/routes/portfolio+/freelance+/wp-php-js.tsx index 48710e9..f4ec1ac 100644 --- a/app/routes/portfolio+/freelance+/wp-php-js.tsx +++ b/app/routes/portfolio+/freelance+/wp-php-js.tsx @@ -1,3 +1,11 @@ +import wordpress from '#app/components/logos/wordpress.svg' +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from '#app/components/ui/tooltip.tsx' + export default function PortfolioFreelanceWordpress() { return ( <> @@ -8,6 +16,30 @@ export default function PortfolioFreelanceWordpress() { custom theme and templates development + custom webs development for clients + +
      + +
    • + + + + + + + WordPress + +
    • +
      +
    ) diff --git a/app/routes/portfolio+/freelance.tsx b/app/routes/portfolio+/freelance.tsx index 5b648ab..5196e8f 100644 --- a/app/routes/portfolio+/freelance.tsx +++ b/app/routes/portfolio+/freelance.tsx @@ -8,7 +8,7 @@ export default function PortfolioFreelance() { personal projects / freelance -
    + <>
    {({ isActive }) => ( @@ -36,7 +36,7 @@ export default function PortfolioFreelance() {
    -
    + ) } diff --git a/app/routes/portfolio.tsx b/app/routes/portfolio.tsx index 3541dd2..268e803 100644 --- a/app/routes/portfolio.tsx +++ b/app/routes/portfolio.tsx @@ -15,6 +15,9 @@ import { innerContentBoxWrapperOfBoxesInBox, mobContentsRouteSelectorCol1, } from '#app/components/classlists.tsx' +import reactjs from '#app/components/logos/reactjs.svg' +import remix from '#app/components/logos/remix.svg' +import wordpress from '#app/components/logos/wordpress.svg' import { MobileModalCaretOpener, ModalCloserIcon, @@ -104,8 +107,9 @@ function RouteSelector({ )} @@ -114,9 +118,10 @@ function RouteSelector({ {({ isActive }) => ( )} @@ -125,9 +130,10 @@ function RouteSelector({ {({ isActive }) => ( )}