Inspiration
We decided to make Colorado because we wanted to find the easiest solution to recoloring a webpage before it even loads. Many websites on the web aren't 100% accessible to all people. Some are too bright, while others are too dark. With Colorado, a user can decide what color they want to see from the webpage. Flip between present themes or create your own!
What it does
Colorado manipulates the DOM as it loads into the client's view. By using the Chrome API, Colorado is able to inject custom Javascript code directly into the DOM. This allows Colorado to override all preceding code and recolor the webpage through query selectors.
How we built it
We built Colorado using Typescript and React + Typescript, Chrome Extensions, and the Chrome browser API. There are two main files that run to make Colorado work: popup.js and content.js. Popup.js is what the client sees in the popup menu when they click the Colorado extension icon. Content.js is a file that gets injected into the DOM before webpages load and performs all of the DOM manipulations.
Usually, these two scripts cannot communicate with each other, however, using the Chrome API, we can make this happen through event broadcasting and local storage.
Challenges we ran into
The biggest challenge we ran into was perfecting the DOM manipulations. Sometimes, they were too much, and sometimes they were not enough to make a difference to the client. To solve this, we visited multiple websites and sampled several HTML tags that were used the most in the body. Although this technique still doesn't help solve DOM manipulations for websites that use their own structure, it certainly covers a large majority.
Accomplishments that we're proud of
We are proud of getting the Chrome Extension working and being able to directly communicate with the DOM.
We are also very proud of the UI and we think it turned out very well.
What we learned
We learned that making Chrome Extensions are very fun and they have a lot of potential to change the way we perceive information on the web. If done correctly, we can help solve a lot of problems without investing so much money.
What's next for Colorado
We would like to finish up some of the ideas we had for Colorado that we couldn't finish during the Hackathon because of time constraints. This includes fully finishing the accessibility options. We also would like to have the present themes connected to a web server so that anyone in the world can share their presents with other people.
Log in or sign up for Devpost to join the conversation.