Git Product home page Git Product logo

personal-site's People

Contributors

budokans avatar dependabot[bot] avatar

Stargazers

 avatar  avatar

Watchers

 avatar

personal-site's Issues

Metadata and projects data is harder to work with in JSON

I can't remember what the initial reason for storing data in JSON was, but it's safe to say that it's not providing any benefits now and won't in the foreseeable future. Storing it in JavaScript (well, TypeScript) objects would:

  1. Improve type safety
  2. Remove the need for the io-ts dependency as we won't need run-time type-checking

Furthermore, project data doesn't need to be returned in getStaticProps as the Feature components that use it aren't included in the HTML that is rendered at build time.

Fix intermittently-failing integration test

The "clicking a <Portfolio.Item /> renders the relevant <FeatureContainer />" test in the integration directory fails intermittently when expect(el).not.toBeInTheDocument() runs before the DOM element is removed.

The default duration for a Framer Motion transition is 250ms (durations aren't explicitly set in the Variants passed to the Feature component), so this is the likely culprit.

Issues with Feature borders

  1. Feature border isn't showing. A couple of problems: it's not possible to reference a Chakra theme variable in a CSS property. Also, "grey" should be spelled gray. Also, include all style props on the MotionBox and get rid of the redundant child Box.
  2. The CarouselDesktop item borders are an ugly black. Lighten the color.

Feature animation performance is clunky

Two animations are clunky on extralarge viewports and possibly smaller viewports on machines with low RAM:

  1. Feature visible/hidden
  2. Draging of CarouselDesktop and initial hidden -> visible.
  3. The Feature exit animation leaves a little of the Feature component visible at the bottom of the viewport before it's removed from the DOM.

A few things will probably help:

  1. Remove the blur filter on the background. The animation is so fast that there's no real benefit in keeping it.
  2. Ditch the opacity transition on the overlay.
  3. Don't use a spring exit animation for the filter - that's the probable cause of the visible top part of the Feature on exit.

Continuous integration tests need setting up

It would be good if our test suite could be run during a pull request to the main branch and before deploying to a staging environment.

Currently the test suite is small enough (takes ~20s) that we can just run the entire thing.

Rendering of project descriptions inflexible with description data stored in strings

The current method of storing description data leaves much to be desired regarding UI rendering possibilities.

Current issues:

  1. Limited to paragraphs only (no support for lists, code blocks, etc.)
  2. The strings must be parsed as HTML, which adds a dependency

It would be much better if the description field references a React component that renders the description with the appropriate TSX markup.

Readability issues

  1. Font sizes are too small on smaller viewports. A minimum of 16px would work.
  2. The Portfolio subheadings should ideally not be cut off at any viewport size.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.