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 0000000..6febb2a Binary files /dev/null and b/app/components/logos/testing-library.png differ diff --git a/app/components/logos/typescript.svg b/app/components/logos/typescript.svg new file mode 100644 index 0000000..339da0b --- /dev/null +++ b/app/components/logos/typescript.svg @@ -0,0 +1,6 @@ + + +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 + + ) 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
  • + +
    - + ) } 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 + + ) 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 }) => ( )}