Paletti is an intuitive app designed to help you capture and save the colors around you. By simply scanning your surroundings, Paletti allows you to instantly view and save the colors you discover, along with their corresponding names and hex codes. Whether you're a designer or just love colors, Paletti is the perfect tool for exploring the world of color.
- Scan your surroundings to create palettes from colors around you.
- Generate palettes from your saved images.
- Compare two colors using various components such as charts, navbar, cards, and buttons.
- Organize colors by creating multiple palettes
- Sync your palette collection across all your devices using your iCloud account.
- Capture and save screenshots of your palettes and palette collection.
- Share color collection with others on various social media and messaging apps.
- Access Paletti's features through a simple and intuitive interface.
Download the repository and run the following commands to try Paletti for yourself:
yarn setup
This is a bare React Native project, created with npx react-native init
.
- ๐
src
: Contains the actual TypeScript + React (-Native) front-end for the Paletti App.- ๐
src/utils/pixelColor.ts
: This is a JS wrapper for the native iOSPixelColor
module. - ๐
src/utils/getColor.ts
: This exposes a JS function with TypeScript types that utilizes the native iOS frame processor plugin. - ๐
src/App.tsx
: This serves as the primary navigator, directing users to either the Splash Screen (Permissions) or the primary app screen, depending on their permission status. - ๐
src/screens/Splash
: This directory contains the code for the Splash screen, which prompts the user for permission to use their camera. - ๐
src/screens/Eyedropper
: This is the primary app screen where users can use their device's camera to view colors in their surroundings and save them. - ๐
src/screens/Palettes
: Contains the code for the Palettes screen where users can view their collection of saved palettes and perform actions on them such as renaming, deleting, and exporting. - ๐
src/screens/Settings
: Over here, users can customize their experience with their preferred settings such as theme, sound, and more. - ๐
src/screens/Comparator
: This is where users can compare two colors using various components such as charts, navbar, cards, and buttons.
- ๐
- ๐
ios
: Contains the basic skeleton for a React Native iOS app, plus the nativegetColor()
Frame Processor Plugin.- ๐
ios/PixelColor.m
: Exports the native methods of thePixelColor
module to JavaScript. - ๐
ios/PixelColor.swift
: Contains the actual Swift code for the native iOSPixelColor
module. - ๐
ios/PaletteFrameProcessorPlugin.m
: Declares the Swift frame processor plugin "getColor()
". - ๐
ios/PaletteFrameProcessorPlugin.swift
: Contains the actual Swift code for the native iOS frame processor plugin "getColor()
". - ๐
ios/Paletti-Bridging-Header.h
: A Bridging Header to import Objective-C headers into Swift. - ๐
ios/Podfile
: Adds libraries such asUIImageColors
- ๐
- ๐
babel.config.js
: Adds the native frame processor plugingetColor
(called__getColor
) to Reanimated'sglobal
list.
- Dimest and ColorSlurp for design inspirations
- react-native-reanimated for allowing JS code to be dispatched to another Runtime (Worklets)
- Colorwaver mobile app for providing inspiration and guidance in building some of the color-related functionality.
- react-native-vision-camera for allowing you to run JS code on a realtime feed of Camera Frames (Frame Processors)
- You guys for the downloads, ratings and feedbacks.