Este projeto é uma aplicação web interativa de roda de cores HSV (Hue, Saturation, Value) que permite explorar cores, gerar paletas harmônicas e obter informações detalhadas sobre cores usando a API TheColorAPI.
This project is an interactive HSV (Hue, Saturation, Value) color wheel web application that allows you to explore colors, generate harmonious palettes, and get detailed color information using TheColorAPI.
-
Em português:
app.pyé o servidor Flask que serve a aplicação.- Ele importa
Flask,render_templateejsonifydo Flask, além derequestspara fazer chamadas à API. - Possui uma rota
/que renderiza a página inicial (index.html). - A rota
/color/<hexcolor>recebe um código hexadecimal de cor e consulta a API TheColorAPI para obter informações detalhadas sobre a cor (nome, RGB, HSL, HSV, XYZ). - Retorna os dados em formato JSON para o JavaScript da página.
-
In English:
app.pyis the Flask server that serves the application.- It imports
Flask,render_template, andjsonifyfrom Flask, plusrequestsfor API calls. - It has a
/route that renders the homepage (index.html). - The
/color/<hexcolor>route receives a hexadecimal color code and queries TheColorAPI for detailed color information (name, RGB, HSL, HSV, XYZ). - Returns the data in JSON format for the page's JavaScript.
-
Em português:
index.htmlé o template HTML principal da aplicação.- Contém o canvas da roda de cores HSV, onde o usuário pode clicar para selecionar cores.
- Inclui elementos para exibir informações da cor selecionada (nome, hex, RGB, HSL, HSV, XYZ).
- Possui seções para paletas harmônicas (complementar, análoga, tríade, tetrádica, monocromática).
- O CSS está embutido no
<style>para estilizar a interface com fundo escuro e elementos modernos. - Carrega o arquivo
script.jsque controla a interação com a roda de cores.
-
In English:
index.htmlis the main HTML template of the application.- Contains the HSV color wheel canvas where users can click to select colors.
- Includes elements to display selected color information (name, hex, RGB, HSL, HSV, XYZ).
- Has sections for harmonious palettes (complementary, analogous, triadic, tetradic, monochromatic).
- CSS is embedded in
<style>to style the interface with a dark background and modern elements. - Loads
script.jswhich controls the color wheel interaction.
-
Em português:
script.jscontém toda a lógica JavaScript para a interação com a roda de cores.- Desenha a roda de cores HSV no canvas usando gradientes radiais e cônicos.
- Converte coordenadas do mouse em valores HSV e depois para RGB para exibir as cores.
- Faz requisições AJAX para
/color/<hexcolor>para obter informações detalhadas da cor selecionada. - Gera paletas harmônicas baseadas na cor selecionada (complementar, análoga, etc.).
- Atualiza a interface em tempo real conforme o usuário move o mouse ou clica na roda.
- Inclui tooltips que mostram informações da cor sob o cursor.
-
In English:
script.jscontains all the JavaScript logic for color wheel interaction.- Draws the HSV color wheel on the canvas using radial and conical gradients.
- Converts mouse coordinates to HSV values and then to RGB for color display.
- Makes AJAX requests to
/color/<hexcolor>to get detailed information about the selected color. - Generates harmonious palettes based on the selected color (complementary, analogous, etc.).
- Updates the interface in real-time as the user moves the mouse or clicks on the wheel.
- Includes tooltips that show color information under the cursor.
-
Em português:
- O CSS está embutido no
index.html, mas se houver um arquivo separado, ele define os estilos visuais. - Fundo escuro (#0b0b0b), fonte Inter do Google Fonts.
- Layout flexível com roda de cores e sidebar.
- Estilos para tooltips, paletas, informações de cor e elementos interativos.
- O CSS está embutido no
-
In English:
- CSS is embedded in
index.html, but if there's a separate file, it defines the visual styles. - Dark background (#0b0b0b), Inter font from Google Fonts.
- Flexible layout with color wheel and sidebar.
- Styles for tooltips, palettes, color information, and interactive elements.
- CSS is embedded in
- Hue (Matiz): Representado pelo ângulo na roda (0-360°).
- Saturation (Saturação): Distância do centro (0-100%).
- Value (Valor): Controlado pelo slider separado (0-100%).
- O usuário move o mouse sobre a roda para ver cores em tempo real.
- Clicar seleciona uma cor e carrega suas informações da API.
- Paletas harmônicas são geradas automaticamente baseadas na cor selecionada.
- Complementar: Cor oposta na roda.
- Análoga: Cores adjacentes (±30°).
- Tríade: Três cores equidistantes (120°).
- Tetrádica: Quatro cores em retângulo.
- Monocromática: Variações de saturação e valor da mesma matiz.
-
Em português:
- Abra o terminal na pasta
Color_wheel. - Ative o ambiente virtual:
.\venv\Scripts\Activate.ps1
- Instale dependências se necessário:
pip install flask requests
- Rode:
python app.py
- Abra
http://127.0.0.1:5000no navegador.
- Abra o terminal na pasta
-
In English:
- Open the terminal in the
Color_wheelfolder. - Activate the virtual environment:
.\venv\Scripts\Activate.ps1
- Install dependencies if needed:
pip install flask requests
- Run:
python app.py
- Open
http://127.0.0.1:5000in your browser.
- Open the terminal in the
- Backend: Flask (Python)
- Frontend: HTML, CSS, JavaScript
- API: TheColorAPI (https://www.thecolorapi.com/)
- Banco de dados: Nenhum (apenas API externa)
- Outros: Canvas API para desenhar a roda de cores
-
A aplicação requer conexão com a internet para consultar a API de cores.
-
O canvas da roda é desenhado dinamicamente com gradientes.
-
As paletas são calculadas matematicamente no JavaScript.
-
O design é responsivo e funciona em dispositivos móveis.
-
The application requires internet connection to query the color API.
-
The wheel canvas is drawn dynamically with gradients.
-
Palettes are calculated mathematically in JavaScript.
-
The design is responsive and works on mobile devices.
- Em português: Obrigado por conferir este projeto. Este aplicativo foi feito por Ilkini/Matheus Lino.
- In English: Thank you for reviewing this project. This app was made by Ilkini/Matheus Lino.