Giter VIP home page Giter VIP logo

palettepilot's Introduction

Screenshot Capture of Palette Pilot App

Palette Pilot is an open source project built with Nuxt.js that helps you extract the most relevant colors from an image. With Palette Pilot, you can easily drop or upload an image and instantly discover the five most prominent colors within it.

Features

  • Extract the 5 most relevant colors from an image
  • Compare colors to check their contrast ratios
  • Visualize color combinations with UI elements examples
  • Export the generated palette to TailwindCSS
  • Export the generated palette to PNG
  • Share your palette with others via URL

Why Palette Pilot?

  • Simplicity: Palette Pilot offers a user-friendly interface that makes it easy to extract colors and compare them.
  • Efficiency: Save time by quickly identifying the most relevant colors within an image.
  • Design-friendly: Whether you're a designer, developer, or enthusiast, Palette Pilot helps you pick colors that work harmoniously together.

Run locally

  • Clone the repository: git clone https://github.com/linuxmobile/palettePilot.git
  • Navigate to the project directory: cd palettePilot
  • Install dependencies: bun install
  • Start the development server: bun run dev or bun run dev -o to directly visualize the project

Environment variables

This project uses Cloudinary SDK to upload images and Vercel KV to store the uploaded images' URLs as values and their respective generated hashes as keys.

If you want to generate palettes you would need to setup the following environment variables in a .env file located in the root of the project:

KV_URL = url
KV_REST_API_URL= url
KV_REST_API_TOKEN = apitoken
KV_REST_API_READ_ONLY_TOKEN = readonlytoken
CLOUDINARY_CLOUD_NAME = cloudname
CLOUDINARY_API_KEY = apikey
CLOUDINARY_API_SECRET = apisecret
CLOUDINARY_URL = url
NUXT_PUBLIC_APP_URL = http://localhost:3000

You need to create a Cloudinary account and a Vercel account in order to setup a Vercel KV store.

License

Palette Pilot is released under the MIT License.

palettepilot's People

Contributors

camilo-zuluaga avatar ivanatias avatar linuxmobile avatar monoald avatar natprogramer avatar soyluisarrieta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

palettepilot's Issues

Integrate Tips for Enhanced Usage of Generated Color Palettes

Description:

To improve user engagement and provide educational value, we aim to introduce a feature that offers practical tips on how to effectively apply colors from the generated palettes. These tips should guide users in making informed decisions when utilizing their palettes, potentially covering topics such as color theory, contrast ratios, accessibility considerations, and application examples in design projects. The presentation of these tips could be through an interactive sidebar component, a dedicated page, or an interactive guide, leveraging white space effectively to enhance user experience without cluttering the interface.

ToDo List:

  • Brainstorm and compile a list of helpful tips and guidelines related to color usage, including but not limited to color theory, accessibility, and application examples.
  • Decide on the method of presentation (sidebar, new page, interactive guide) based on user interface considerations and potential impact on the user experience.
  • Develop the frontend component(s) for displaying the tips, integrating it seamlessly into the current layout.
  • Implement a backend solution if necessary (for example, to manage and update tips dynamically).
  • Test the feature for usability, ensuring the tips are helpful, accurate, and accessible to all users.
  • Create documentation for the feature, outlining its purpose, how it was implemented, and how it can be maintained or expanded in the future.

Pre-Implementation Discussion Points:

  • Evaluate the pros and cons of different presentation methods (sidebar vs. new page vs. interactive guide) to determine which would be most beneficial for the user experience.
  • Consider how to make the tips dynamic and easily updatable, possibly through a content management system or a simple admin interface.
  • Discuss how to measure the impact of this feature on user engagement and education to guide future enhancements.

Example .env file is missing, unable to run app

The app requires some enviroment variables to run but there isn't any documentation on which variables are needed and where to get them.
image
We can see their names on the nuxt.config.ts file but the KV_* vars are not self explanatory enough to realize where to get them.

Upgrade and Innovate the UI Component Examples

Description:

Acknowledging the rushed development of our initial launch (version 0.1.0), our UI component examples were added hastily and have significant room for improvement. This issue aims to upgrade, add, or enhance these components to ensure they are not only highly functional and accessible but also original and unique, setting our platform apart. The goal is to inspire our users by demonstrating the versatility and creative potential of our color palettes through innovative UI components.

ToDo List:

  • Conduct an audit of the current UI components, noting what works, what doesn’t, and potential areas for innovation.

  • Engage with our user base and the broader design community to gather suggestions and insights on what makes a UI component truly unique and valuable.

  • Research current and emerging UI/UX design trends to guide the creation of original and forward-thinking components.

  • Implement the new or revised components, ensuring they are responsive, accessible, and easily integrable into various projects.

  • Test these components with users, collecting feedback on usability, design, and uniqueness.

  • Refine the components based on feedback, focusing on enhancing their originality and user appeal.

  • Document the design and development process for each component, including the rationale behind design decisions and how user feedback was incorporated.

Pre-Implementation Discussion Points:

  • Define what makes a UI component "original" and "unique" within the context of our platform and the needs of our users.
  • Consider creating a thematic series of components that embody a specific design philosophy or aesthetic unique to our platform.
  • Discuss the balance between innovation in design and maintaining usability standards and accessibility guidelines.

Additional Notes:

  • The update should not just focus on the aesthetic aspect but also consider performance optimization, ensuring the components do not adversely affect load times or user experience.
  • Originality should not come at the expense of user familiarity and intuitive design. Ensure that the components, while unique, are still approachable and understandable to users without a steep learning curve.
  • This initiative could be an opportunity to showcase the potential of our color palettes in dynamic and interactive environments, beyond static design elements.

Implement Suggested Contrast Feature for Low-Contrast Palettes

Description:

Our current system generates a palette of five colors from an uploaded image. However, there are instances where the generated palette does not meet adequate contrast ratios, especially concerning accessibility standards. To address this, we propose adding a feature that automatically suggests alternative contrast colors when the generated palette fails to provide sufficient contrast between the primary and accent colors. This feature will enhance the usability and accessibility of the palettes for all users.

ToDo List:

  • Analyze current contrast ratio algorithms and standards (e.g., WCAG guidelines) to define "sufficient contrast."
  • Develop an algorithm or method to suggest alternative colors that ensure better contrast while staying harmonious with the original palette.
  • Design a user-friendly way to present these contrast suggestions to the user, possibly with an option to automatically adjust the palette or manually select from suggested alternatives.
  • Implement the contrast suggestion feature, integrating it seamlessly into the palette generation process.
  • Conduct tests to ensure the suggested contrasts are accessible and aesthetically pleasing across a variety of palettes.
  • Update the UI/UX to include this new feature, ensuring it's intuitive and enhances the overall user experience.
  • Document the feature's development process, including algorithm design, decision-making rationales, and user interface choices.

Pre-Implementation Discussion Points:

  • Determine the threshold at which a palette is considered to have insufficient contrast, requiring suggestions for improvement.
  • Discuss whether the contrast suggestion feature should be automatic or if users should have the option to invoke it manually.
  • Explore the possibility of allowing users to customize the level of contrast they desire, accommodating different needs and preferences.

Additional Notes:

  • It's crucial to ensure that the feature does not overwhelm or confuse users, particularly those with less experience in color theory or accessibility standards.
  • Consideration should be given to how this feature might be expanded or refined in the future, such as incorporating more advanced color theory algorithms or user feedback mechanisms.

Update and Enhance the "Minimalist Example" Showcase

Description:

In the rush to launch our initial version (0.1.0) of the website, the "minimalist example" was developed under tight deadlines. Recognizing the potential for improvement, this issue aims to revisit and enhance the minimalist example to better showcase the capabilities of our tool and inspire users. The update should focus on both aesthetic and functional enhancements, providing a clearer, more compelling example of minimalist design using our generated color palettes.

ToDo List:

  • Conduct a review of the current minimalist example, identifying areas for aesthetic and functional improvement.

  • Gather feedback from users and designers on what they would like to see in an improved minimalist example.

  • Research current trends in minimalist design to ensure the updated example is modern and relevant.

  • Redesign the example, focusing on simplicity, usability, and the effective use of color.

  • Implement the redesigned example, ensuring it is responsive and accessible across all devices and user groups.

  • Test the updated example with a small group of users for feedback on its appeal and usability.

  • Refine the example based on feedback and conduct final testing across different platforms and devices.

  • Update documentation and promotional materials to highlight the new and improved minimalist example.

Pre-Implementation Discussion Points:

  • Define specific goals for the update, such as increasing user engagement, demonstrating the power of minimalist design, or showcasing the versatility of our color palettes.
  • Decide on metrics for evaluating the success of the updated example (e.g., user feedback, engagement metrics, conversion rates).
  • Consider whether additional minimalist examples could be beneficial, offering a range of designs to cater to different tastes and project needs.

Additional Notes:

  • While focusing on minimalist design principles, ensure that the updated example does not compromise on accessibility or user experience.
  • The process of updating the example should be documented in detail, providing insights into design decisions and the rationale behind certain changes. This documentation can be valuable for future updates or similar projects.

Implement CSS Variables Export Feature for Color Palettes

Description:

To enhance the versatility and usability of our color palette tool, we aim to introduce a feature allowing users to export their generated color palettes as CSS variables. This functionality will complement our existing export options (PNG and Tailwind CSS classes) and cater to a broader audience of developers and designers who prefer working directly with CSS custom properties. The exported variables should reflect the full range of shades (50 to 950, with 500 being the primary and accent colors) and be named in a manner that is intuitive and consistent with common naming conventions, similar to Tailwind's (bg-primary-500, text-accent-500, etc.).

ToDo List:

  • Define a standard naming convention for the CSS variables that reflects the palette hierarchy and color shades (e.g., --color-primary-500).
  • Develop a function to automatically generate CSS code snippets from the selected color palette, including all shades from 50 to 950.
  • Design a user-friendly interface within the existing platform for users to initiate the export process and easily copy or download the CSS code snippet.
  • Implement the backend logic to handle the generation and delivery of the CSS variables code snippet based on the user's selected palette.
  • Test the export feature across different browsers and devices to ensure compatibility and user experience consistency.
  • Update the platform's documentation and tutorials to include guidance on how to use the new CSS variables export feature.
  • Gather user feedback on the feature for future improvements and iterations.

Pre-Implementation Discussion Points:

  • Assess the need for additional customization options in the export process, such as including or excluding certain shades or customizing the prefix of the CSS variables.
  • Consider how this feature aligns with our tool's overall mission and how it can be integrated seamlessly with the existing user interface without cluttering it.
  • Discuss potential impacts on the backend infrastructure, especially concerning performance and scalability with the addition of the CSS variables export feature.

Additional Notes:

  • Ensuring the generated CSS code snippet is optimized and clean is crucial for encouraging adoption and positive user feedback.
  • Accessibility considerations should be kept in mind, not only in the design of the user interface for this feature but also in encouraging best practices in the use of color contrast in the exported palettes.
  • This feature opens up opportunities for further integrations and enhancements, such as direct imports into CSS frameworks or design tools, which could be considered based on user demand and feedback.

Implement OpenGraph Tags for Shared Color Palette Links

Description

To enhance the sharing experience of our color palette generator, we need to implement OpenGraph (OG) tags. When a user shares a link to a generated/shared color palette, the share preview should display an OpenGraph image that reflects the colors of the palette. This feature aims to provide a visual preview of the color palette directly in the share snippet on social media platforms and other websites that support OG tags.

ToDo List:

  • Research and select appropriate OG meta tags for implementing custom image previews.
  • Design a template for the OG image that dynamically incorporates the palette colors.
  • Implement backend functionality to generate an OG image based on the current palette's colors.
  • Update the HTML header of the palette share page to include OG meta tags with the generated image.
  • Test sharing functionality across different platforms (Facebook, Twitter, LinkedIn) to ensure the OG image displays correctly.
  • Document the needed process for future reference and maintenance.

Additional Notes:

  • Considerations should be made for palettes with a wide range of colors to ensure the generated OG image accurately represents the palette in a visually appealing way.
  • Performance implications of dynamically generating images should be evaluated to ensure this feature does not significantly impact page load times or server resources.

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.