Git Product home page Git Product logo

soujvnunes / virtual-exhibition Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 244.82 MB

Promotion website for UFAL's anniversary campaigns powered with Vite/React/Typescript/Tailwind CSS.

Home Page: https://sites.ufal.br/ufal-60-anos/

TypeScript 97.97% HTML 2.03%
exhibition gallery gallery-images jest react tailwind-css tailwindcss typescript virtual-exhibition-platform vite vitejs vitejs-react

virtual-exhibition's People

Contributors

lyralemos avatar soujvnunes avatar

Stargazers

 avatar  avatar

Watchers

 avatar

virtual-exhibition's Issues

Missing icon handler on Button.

Add those two props:

  • [endIcon]: for adding the Icon at the end of button line with margin-right -12px to equal the viewport safe-area;
  • [startIcon]: for adding the Icon at the start of button line with margin-left -12px to equal the viewport safe-area;

For icon as a Button child with no text:

  • create another extension from Button as ButtoIcon (/button-icon) with padding 0 12px root style to equal the button padding area;

Missing typography component.

Create a functional-atom typography component based on project's prototype.

Must have/provide:

This component has to be extended from Font atom component.

  1. display/importation name: Typography exported from /src/atoms;
  2. variants: variant={title|paragraph|label};
  3. [href] prop to handle link: href="/";
  4. start and end point size:
  • title starts and ends at 40 and 72 pts., respect., for mobile and desktop development with 56 pts. for medium devices;
  • paragraph and label starts and ends at 16 pts.;
  • caption starts and ends at 12 pts.;
  1. main or base family type for specific variants:
  • title and label uses the Georgia serif family type as main;
  • paragraph and caption uses the Lucida Sans Unicode sans-serif family type as base;
    Note both family types was picked for been pre-installed on every existent device, been accessible.
  1. sizes: size={large|medium|small}:
  • large increases in 25% the variant base size;
  • small decreases in 25% the variant base size;
  1. each variant must render a HTML element:
  • title renders <h2 />;
  • paragraph renders <p />;
  • label renders <label />;
  1. colors: color={main|reading|base|disabled};
  2. weights: weight={lighter|normal|bolder};

Missing images group component

  • display and name (images group): /hero-scroll HeroScroll
  • sections (image): /hero Hero
  1. Each image:
  • should be positioned one after another, following the body scroll;
  1. Both Hero (image section) and Container height should be set by the client window innerHeight.

Missing HeroScroll controller

Following the prototype, the explore nav button should disappear and then shown the decades buttons for user navigate between them.

Some styles are not on its proper files

  • Move body {} on index.css to src/app/, rename to .root [} and import as css module { root } and use as app wrapper;
  • Let only :root {} on index.css;
  • remove anothers unnused files.

documentElement (html) not initialized with theme dataset

All css custom properties variables related to palette colors as primary or secondary should be handled by the [data-theme] theme dataset defined on the HTML.

As HTML (so the entire document) theme styles are defined by the [data-theme] attr with "dark" or "light" values, should add that attr before the app component mounts.

Refactor directory

Move:

  • /app files to the source folder;
  • data from provider to App (keep the application logic here);
  • data from /theme to /modules;
  • floating file constants to /constants;

Missing gallery modal item

  • OnClick: should display modal with full screen picture and its figcaption.

The first image should be on Hero section background

GalleryItem hover its causing performance issues

App stylesheet is rerendering unnecessarily, because context is being used incorrectly.

Create a unique context for all global states and do not use useState, but useReducer. Do move all states for a reducer state and use it directly on context provider values (do not desctructure as well).

Source

Missing font component.

Create a functional-atom typography component based on project's prototype.

Must have/provide:

  1. display/importation name: Font exported from /src/atoms;
  2. [component] prop: component={h1|h2|h3|h4|h5|h6|p|label|span|legend};
  3. [weight] prop: variant={lighter|normal|bolder};
  4. [href] prop: href="/";
  5. each component (headings, p, label, span and legend) has to follow its own size according of viewport display described on the guidelines;
  6. main or base family type for specific components:
  • headings and label uses the Georgia serif family type as main;
  • p, span and legend uses the Lucida Sans Unicode sans-serif family type as base;
    Note both family types was picked for been pre-installed on every existent device, been accessible.
  1. sizes: size={large|medium|small}:
  • large increases in 25% the variant base size;
  • medium uses the own base size;
  • small decreases in 25% the variant base size;
  1. colors: color={main|reading|base|disabled};

Missing grid components.

  1. Create <Container /> for columns wrapper;
  • should provide [clone] to control childrens;
  • should provide [component] to handle DOM component rendering;
  • should provide all flex properties as its ones;
  • they define the gaps between columns;
    Note Gutters will be defined by the empty space left by the columns.
  1. Create <Col /> for components wrapper;
  • should provide [clone] to control childrens;
  • should have fixed widths: large screens 92px, medium screens 56px, small screens 20px;
  • [span] should provide a base width multiplied by span amount plus the gap multiplied by its amout in between. i.e.: <Col span={2} /> renders a 48 px (20px * 2 + 8px * 1)

Source folder has uncohersive dependencies

Do move:

  • refactor assigned arrow functions to functions;
  • local styles from /index to /style;
  • declare style directly into classes={{ ... }} for material ui components, instead of className={} (for build-in);

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.