Giter VIP home page Giter VIP logo

leonardo's Introduction

Leonardo logo

npm version Package size Minified size Minified and gzipped size license Pull requests welcome Web UI

Leonardo

Authoring adaptive color palettes for generating color based on a desired contrast ratio.

For a detailed walkthrough of Leonardo, check out this article.

Project Goals

To make it easier for designers and engineers to leverage color science to create custom interpolations for a value scale, and to make it easier for designers and engineers to conform to WCAG minimum contrast standards by using contrast ratio as the starting point, rather than a post-color-selection auditing process.

  1. Leonardo web application
  2. Show me a demo
  3. What is "adaptive color"?
  4. Using Leonardo
  5. Why are not all contrast ratios available?
  6. D3 Color
  7. Contributing
  8. Licensing

Leonardo web application

The Leonardo web application is a tool for designers and engineers to collaboratively build color scales for use in user interfaces. The tool exposes an interface to @adobe/leonardo-contrast-colors's generateContrastColors() function and displays visual aids for modifying the selection of a variable color and the target contrast ratios (swatches) to produce. The URL updates with your parameters for easily sharing links to team mates, and the app displays the specific config parameters when designers send you a version that they approve.

Leonardo web app with color inputs, interpolated gradient, contrast ratio input, and demo of colors applied to text and a button.

Show me a demo

Sometimes it's easier to express what you can do by showing you. Take a look at this demo app and play around with the brightness and contrast controls.

The controls are used to dynamically regenerate the entire UI color palette using generateContrastColors() functions as the end user (you) adjusts their settings. All of the changes to the UI colors are in conformity with the parameters set up by designers in the Leonardo web application ensuring that end users have the flexibility and control that they need while still upholding the design team's color choices.

What is adaptive color?

I've written about this concept in more detail at the following links. The goals of this project are to aid in fulfilling the tooling necessary to make adaptive color palettes available to designers and engineers.

Using Leonardo

See the @adobe/leonardo-contrast-colors README for details on how to use Leonardo in your app.

Why are not all contrast ratios available?

You may notice the tool takes an input (target ratio) but most often outputs a contrast ratio slightly higher. This has to do with the available colors in the RGB color space, and the math associated with calculating these ratios.

For example let's look at blue and white. Blue: rgb(0, 0, 255) White: rgb(255, 255, 255) Contrast ratio: 8.59:1

If we change any one value in the RGB channel for either color, the ratio changes: Blue: rgb(0, 1, 255) White: rgb(255, 255, 255) Contrast ratio: 8.57:1

If 8.58 is input as the target ratio with the starting color of blue, the output will not be exact. This is exaggerated by the various colorspace interpolations.

Since the WCAG requirement is defined as a minimum contrast requirement, it should be fine to generate colors that are a little more accessible than the minimum.

D3 Color

This project is currently built using D3 color. Although functionality is comparable to Chroma.js, the choice of D3 color is based on the additional modules available for state-of-the-art color appearance models, such as CIE CAM02.

The createScale() function is basically a wrapper function for creating a d3 linear scale for colors, with a few enhancements that aid in the generateContrastColors() function.

The Leonardo web app leverages d3 for additional features such as generating 2d and 3d charts.

Contributing

Contributions are welcomed! Read the Contributing Guide for more information.

Development

To get started developing Leonardo UI:

Note: Pnpm must be installed on your machine

# Install dependencies
pnpm install

# Change directory to Leonardo UI
cd docs/ui/

# Run local server
pnpm dev

To get started developing Leonardo contrast-colors package:

# From root, change directory to contrast-colors
cd packages/contrast-colors/

# Run tests and watch for changes
pnpm dev

Then, visit the live reloading web UIs here: http://localhost:1234/index.html http://localhost:1234/demo.html

Licensing

This project is licensed under the Apache V2 License. See LICENSE for more information.

leonardo's People

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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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  avatar

leonardo's Issues

Android site loading

Description

Site does not appear to load on Android. Unclear device details, needs investigation

Steps to reproduce

  1. Go to http://leonardocolor.io/
  2. Click on ...
  3. Observe ...

Expected behavior

Site should load

Screenshots

5B3D3F5F-8FFD-472C-BBD9-A3105D07CC5A

Environment

  • Browser(s) and OS(s):

Additional context

Add interactivity for color scale sliders

For each ratio swatch input, needs to integrate with slider.

  • When focused, slider must become visible
  • Slider must be interactive when visible
  • Slider should use previous method of input, where slider represents value of current domain of gradient. This domain value passed from colorArray, calculated ratio returned as input value

This will enable users to move a slider as an alternative to entering numbers into the contrast ratio swatches.

Alternative contrast ratio calculation

The WCAG 2.x contrast ratio calculation is unfortunately not a very accurate metric for text accessibility, especially for non-grayscale backgrounds. It would be great if this tool could bake in some of the calculations proposed for the next version of the standard and let you know if you are hitting the mark in either/both the 2.1 and proposed 3.0 specs.

See discussion here w3c/wcag#695

Curve editing

Users would benefit from having curve editing available for the following items:

  • Colorspace interpolation (each channel of any given colorspace)
  • Contrast ratio distribution

Bezier curve editor would need to have transformations to coordinates (if based on canvas position in a non 0,1 space) and then passed to a b-spline or other polynomial function in order to create an f(x) function.

If used for colorspace interpolation, this editor would need to output a function similar to the spline interpolator used in d3.interpolateRgbBasis.

image
image

Shift + Arrow functionality for ratio inputs

Add shift+arrow functionality to contrast inputs that will jump whole number steps up/down

Without shift, step for number inputs should be 0.01 (current)
With shift, step for number inputs should be either 0.1 or 1

This will aid in keyboard interactivity for modifying target contrast ratio values.

Cross-browser testing

Description

Integrate a test feature to perform cross-browser testing for the Leonardo web UI.

Possible resource: https://github.com/microsoft/playwright/blob/master/README.md

Why do you need this feature?

Currently there is nothing in place for automated browser testing. We are limited to manual testing in supported system browsers and within VM. The process is inefficient, and would be nicer to have some degree of testing to show any bugs.

Additional context

“Next closest accessible color” feature

Description

Feature in npm module and web tool to return next closest accessible color(s)

User inputs color, tool returns 3:1, 4.5:1, and 7:1 variations.

Why do you need this feature?

Simplified use case to support end user theming of white label design systems, as well as providing designers with simplified experience for recommendation of “next best color”

Some assumptions may need to be made, or leaving open the api for interpolation mode/types as not all color recommendations would be best in any specific interpolation mode. My also need exploration if alternative curves or “projections” should be modeled so recommendation can be made based on human aesthetics (although this may be out of scope)

Leonardo package and version

Additional context

Feature Request: manual color additions with locks

While this somewhat flies in the face of the core premise of this tool, I'd like to see if one could define a max dark, max light, and middle color, lock them and then have the tool generate colors between those locked colors that would work with your method. I have some colors that I need to keep the middle tone aligned to a brand color but want to have light and dark steps that are equal in luminance and saturation across the steps.

Site analytics

Description

Integrate basic site analytics

Why do you need this feature?

Tracking usage

Additional context

Slow color update

Description

Using the macOS Color Picker, when using a slider it will change the color on each movement. The app tries to update the browser URL, which causes the app to slow down until the last change is applied.

Steps to reproduce

  1. Go to http://leonardocolor.io/
  2. Click on a color to open the color picker
  3. Use the slider to change the color hue (or other sliders) rapidly.
  4. See the update being applied for each change and slow down the browser.

Expected behavior

When changing a color, it should update the preview in real-time but only update the URL after a certain time to avoid the app from slowing down/freezing upon changing colors.

Screenshots

2019-12-11 16 15 18

Environment

  • Browser(s) and OS(s): Chrome 78.0.3904.108 on macOS Mojave (10.14.5)

Palette creation workflow

Description

Creation of full palettes in Leonardo web app is needed for the updated theme function support in #35

What is needed:

  1. User can create multiple color scales
  2. User can select ratio swatches for color scales
  3. User can select a color scale to act as base scale
  4. User can preview brightness slider
  5. User can preview contrast slider
  6. User can set default brightness

Why do you need this feature?

Without updating the web interface to accommodate this workflow, creating a theme will have a disconnected experience, as the current web interface surfaces properties for the generateContrastColors function but not the generateAdaptiveTheme function.

Additional context

Binary search should return closest value larger than search value

Description

Binary search currently returns closest match for a search item. While in other applications this would be fine, in Leonardo we need it to return the next closest value that is larger than the search item.

Example:
Ratio input for 3:1 (search for 3)
Generated colors have close matches of 2.9 and 3.03
Current binary search would return 2.9
Considering the search is typically for a contrast minimum, we need the search to return 3.03

Steps to reproduce

Expected behavior

Screenshots

Leonardo package and version

Environment

  • Browser(s) and OS(s):

Additional context

Cannot paste HEX value into the color picker

Description

I'm trying to paste a color into the color picker's HEX value, but it doesn't work.
The context menu isn't there, keyboard shortcut doesn't do anything. This means I need to remember and retype the value myself, which is obviously not ideal.

Steps to reproduce

  1. Copy a HEX code from somewhere, like here: #ffffff
  2. Go to http://leonardocolor.io/
  3. Click on the Key Color
  4. Click on the color mode switch 2 times to get to the HEX value
  5. Try to paste the value

Expected behavior

It should paste the HEX value. If I can type the value myself, it should accept input from the clipboard too.

Screenshots

image

Environment

  • Chrome 84.0.4147.89 (Official Build) (64-bit)
  • Mac OS 10.14.4

Additional context

On other browsers it's showing a different/native color picker so I'm unable to produce the same results...

Thanks!

Add contrast distribution to your package

Description

You've got a "Distribute" button at leonardocolor.io. However that code isn't available in the package. It'd be nice to add that to auto generate colors for some purposes.

Why do you need this feature?

Pie chart/donut chart color scheme based on number of sectors. If number of sectors reduce or increase the colors still need to cover the pallet of colors to look nice (rather than being skewed towards the first few colors of a static number of colors).

Leonardo package and version

Additional context

I've managed to extract that code from your website to an independent gist -> https://gist.github.com/Munawwar/6df560f2027f5ecb65a4281797e9ab03

My API takes number of colors to generate, a start ratio and end ratio and generates colors (and of course color keys and base color).

I generate a color scheme first using generateContrastColors() and linear ratio distribution from start ratio to end ratio.
Then I take those colors and generate the final distributed colors based on the logic from the website. However this might be inefficient 2 step process.. there might be a 1 step efficient/better way to do this.

Helper functions for using Leonardo for brightness control

Description

Current demo shows possible implementation for Leonardo as a brightness control, however it uses a foundational function createScale that is intended to be a utility wrapper of d3 scale creation, with multiple possible uses. The current implementation using createScale for brightness is unfocused and could be improved.

Proposed enhancement: incorporate a function that will output an array of color values tailored for brightness control.

Why do you need this feature?

To make it easier to incorporate brightness control using Leonardo.

Additional context

Charts displaying incorrect colors and data

Description

  • Colors shown in 3d chart reflect preview mode rather than interpolation mode

Steps to reproduce

  1. Go to http://leonardocolor.io/
  2. Click on model, change interpolation mode for scale and toggle preview mode for model
  3. Observe colors change to different interpolation modes.

Expected behavior

Colors should remain the same based on the interpolation mode and not be affected by the preview mode for either 2d or 3d charts.

Screenshots

Environment

  • Browser(s) and OS(s):

Additional context

Custom names for color swatches

Description

Individual color swatches currently are assigned names automatically. This issue would add an optional API parameter to pass an array of custom names.

Why do you need this feature?

When using Leonardo for a design system, teams will likely have their own unique naming conventions. Even from platform-to-platform, various naming conventions may differ. In the current implementation, such as when generating CSS properties with Leonardo, it's more effort than necessary to change the names of the output colors.

Leonardo package and version

@leonardo-contrast-colors version: 1.0.0-alpha.5

Additional context

Bulk import when comma + space separation

Description

When importing bulk colors with a comma and space delimitation, the last color in the array is given an extra space before the color value.

This input into the bulk import:
ff00ff, ff0000, 0000ff

will assign # to all colors, and the final color will output as:
# 0000ff

This breaks the function and returns only the valid colors into the input.

Steps to reproduce

  1. Go to http://localhost:1234/
  2. Click on bulk import and add "ff00ff, ff0000, 0000ff"
  3. Observe #ff00ff and #ff0000 are added to the UI, the final color is not, and the dialog remains open

Expected behavior

All colors import and dialog dismissed

Screenshots

Environment

  • Browser(s) and OS(s):

Additional context

"Smoothing" control inputs

Description

Add input controls in the UI for selecting "smoothing" for interpolation modes.

This should be exposed in the UI as a boolean option, which should be off by default.

Why do you need this feature?

To support implementation of catmull-rom smoothing curve.

Additional context

Related to #59

"Long" interpolation option

Description

In d3-interpolate, there are options for whether to interpolate the shortest distance between colors (default) or to interpolate the further of the distances (along the color wheel).

Why do you need this feature?

When creating scales that span more than 180 degrees in hue, the "long" option is needed, otherwise interpolation happens on the opposite side of the color wheel.

Leonardo package and version

@leonardo-contrast-colors v1.0.0-alpha3

Additional context

Example color scale:
image

Without "long" interpolation:
image

Same scale using "long" interpolation:
image

JCh conversion

Description

Add JCh conversion to converter. Should include auto detection of JCh input as well.

Why do you need this feature?

Full CIECAM02 support should be included in converters

Additional context

Package name & modules

Description

Evaluate if an umbrella package would be beneficial.

Current plan of functions / packages:

Leonardo-contrast-colors

  • generateContrastColors: generate colors by contrast ratio for a single "color"
  • generateAdaptiveTheme: generate entire color theme (group of colors) by contrast ratio
    (future)
    Leonardo-??
  • generateSequential:
    • generate array of colors appropriate for user-defined interpolations (to be used in charting libraries - only an array is needed)
    • generate function of the color (?) where users can specify n colors of a palette and have it return generated colors
  • generateDiverging:
    • same as sequential

Why do you need this feature?

  • Need to ensure the package name makes sense
  • Need to identify if an umbrella package would be useful (ie leonardo-colors incorporating all packages)

Additional context

Add color converter

Description

Since all the packages in Leonardo enable so many forms of color conversion, might as well add a simple color converter to Leonardo.

Why do you need this feature?

Many existing color converters are either one or just a few various colors that they convert to. If you want to convert to HSLuv, or to Lab, you will have to typically reference different converters.

So much color work relates to comparison of values for a given color across a variety of color spaces, so this naturally fits into the workflow for users engaging with this tool.

Additional context

CIELUV and polar CIELUV support

Description

When this feature is available in D3's upcoming release. Existing hcl arguments should be renamed lch and added spaces and interpolators for LUV need added in.

See:
https://observablehq.com/@mbostock/luv-and-hcl

Should also add LUV and polar LUV into the converter tool

Why do you need this feature?

Support all the color spaces

Leonardo package and version

Additional context

CIECAM02 JCh support

Description

CIECAM02-UCS (Jab) is currently implemented in Leonardo as CIECAM02. Leonardo should also support CIECAM02 (JCh) with proper name. JCh is supported in dependency already: https://github.com/connorgr/d3-cam02

Why do you need this feature?

Polar interpolation of CAM02 should be supported as hue translation will be more chromatically smooth.

Leonardo package and version

Additional context

Webpack build or pre-built minified library

Description

To provide a webpack build or a pre-built minified library

Why do you need this feature?

To be use in static web applications.

Leonardo package and version

Additional context

Performance issues

Description

Leonardo interactions lag, especially when creating themes with many color scales.

Steps to reproduce

  1. Go to http://leonardocolor.io/
  2. Click on Theme
  3. Add 8 + color scales
  4. Notice delays and lag in inputs/outputs in the web app

Expected behavior

Screenshots

Environment

  • Browser(s) and OS(s):

Additional context

Charts in Themes tab

Description

Add charts & visualizations to the Themes page.

Why do you need this feature?

This will help designers audit the interpolation paths for all of the colors in their palette in one place. This is especially helpful in ensuring colors appear part of the same family along similar lightnesses.

Additional context

Not responsive / mobile UX

Site needs mobile design and implementation for enhanced UX on mobile devices. Currently does not scale or adapt at all, making tool unusable

70DA267E-C405-46AF-86AD-243B0BAD833F

Disambiguate "adaptive themes" and "themes"

Description

Calling generateAdaptiveTheme returns a function that can be called to generate a theme (set of colors) at a given brightness/contrast. This is a bit confusing, as the word "theme" is overridden.

The documentation shows this here: https://github.com/adobe/leonardo/blob/main/packages/contrast-colors/README.md#pass-your-colors-and-desired-ratios-see-additional-options-below

What is an adaptive theme?

What is a theme?

Those words could be disambiguated.

Why do you need this feature?

Reduce confusion in documentation :D

Leonardo package and version

n/a

Additional context

Writing a postcss plugin to invoke leonardo and struggling with documentation and API naming.

Equidistant lightness distributions for swatches

Description

Allow the user to input a lowest and highest ratio (with additional possible ratios inbetween), and then choose a number of additional swatches to generate that will "fill in" the gaps.

For example: User inputs lightest color, darkest color, and primary color for a given scale. The ratios for these may be 1.2, 4.5, and 7. The user wants a palette of 9 total colors (including the three entered into Leonardo). The system should allow users to change total swatches (9) while retaining original color inputs ("locking" the three hex values/ratios), and adding equally distributed interpolated ratios between. In this example, the ratios (distributed but retaining original inputs) would be 1.2, 1.3, 1.56, 1.94, 2.47, 3.15, 4.5, 5.52, and 7

Why do you need this feature?

Allows user to retain original design starting-point (I want these three colors) and interpolates values in a non-destructive way. Current methods of recreating this workflow result in only retaining the lowest and highest contrast values and redistributing all values inbetween.

Additional context

Current, destructive way to accomplish this returns these colors:
image

When a mid-tone swatch is retained (eg at 4.5 contrast ratio), this would be the expected output:
image

Considerations

This feature would enable designers to create less equally distributed swatches overall. The example above illustrates the use case and expected result, however the output is not as evenly distributed.

Datavis example tab

Dependant upon Sequential & Diverging palettes (#2 )

Show examples of data visualizations mapped to output colors from color scale.

Output color format options

Description

Offer API for outputting color in various formats other than hex.

For example, it would be nice as:

format = ‘hex’, ‘rgb’, ‘hsl’, ‘hsv’, ‘lch’, ‘lab’

Why do you need this feature?

Allows users to return colors in desired format so that Leonardo output can be directly used in various ways without needing additional color translations

Leonardo package and version

Additional context

Mobile not matching ratios

Mobile device does not return matching ratios. All returned as same values &color which do not match target ratios

1FF24CCC-4DBE-4757-8699-E7AD3A46F7B8

Color picker component

Description

.

Add a component for picking color values, with ability to input hex, RGB, hsl, HSV, HSLuv, Lab, LCH, Jab, JCh color values for input key colors or base color.

Why do you need this feature?

Currently the tool utilizes native color inputs input type=color. This renders a completely different color picking experience depending on the device/OS the user is using. For some devices this renders only a small set of predefined color swatches to choose from. This is insufficient and hinders users on these devices from utilizing Leonardo as intended

This component would need to support pasting values into an input field for easily transferring color values from one tool to another.

Additional context

Function for creating adaptive palette/theme

Description

Create a package that allows for simpler creation of a full contrast-based color palette.
("theme" or "palette" is undecided)

generateContrastTheme() as @adobe/leonardo-contrast-theme

Function would accept destructured parameters for base and palette. The base parameter will accept an object containing the parameters for the generateBaseScale function. The palette parameter will be an array of objects, each containing the parameters for each generateContrastColors function.

// pseudo-code concept
generateContrastTheme({
   base: {},
   palette: []
}) {
   b = generateBaseScale(base)[]; // base parameter to create base scale (0-100)
   for (I=0; i < palette.length; i ++) {
       return generateContrastColors(i, b);
   }
}

Usage:

let myTheme = generateContrastTheme( */ parameters /* );
let lightTheme = myTheme(100);  // returns white theme all colors
let darkTheme = myTheme(0);  // returns white theme all colors

Steps to reproduce

Expected behavior

Screenshots

Environment

  • @leonardo-contrast-colors version:
  • Browser(s) and OS(s):

Additional context

Returning white when darker colors should be returned

Description

On certain hues, Leonardo is returning white as the newColors when it should be returning darker versions of the variable color.

This happens when using a blue variable color with 3:1 and 4.5:1 target ratios on base colors of pink, orange, and blue.

Steps to reproduce

  1. Create blue scale with colorKeys #B5D6FF, #57A5F5, #3D3AB0
  2. Select one of these base colors: #FFA751, #FF84E5, #54B8FF
  3. See returned white colors.

Expected behavior

Expect darker colors to be returned because darker shades of the variable color are still available.

Screenshots

This shot shows a pink hue returning dark blues. They are not yet black, and we see darker shades are still available for this variable color
Screen Shot 2019-12-18 at 8 22 43 AM

This shows the error -- slightly different pink base now returns white colors
Screen Shot 2019-12-18 at 8 22 57 AM

Environment

  • @leonardo-contrast-colors version: 1.0.0-alpha.2
  • Browser(s) and OS(s): Chrome Version 79.0.3945.79 on MacOS Mojave 10.14.6

Additional context

Undeclared dependency on d3

Description

The package depends on d3 to function, but does not declare it as a dependency or peer dependency. As a result, the function does not run and the package does not warn on installation.

Steps to reproduce

  1. Install the package to a fresh node project
  2. Require it in a file
  3. Write a script that runs the generateContrastColors function
  4. Execute the file

Reproduction

Expected behavior

The function should run without error and/or the package manager should warn about an unmet peer dependency.

Environment

  • @leonardo-contrast-colors version: 1.0.0-alpha.1
  • Browser(s) and OS(s): Node v10.17, v10.15

Additional context

While the readme mentions the project's use of d3 and several d3-related dependencies appear in package.json, d3 itself is absent.

PR incoming shortly

Improve on boarding/FTU experience

Description

The tool is difficult to learn without previous knowledge. Even with reading about tool, certain features are not straightforward

Why do you need this feature?

Help retain users and improve experience

Additional context

Support numeric-only hex values in bulk import

Description

Support importing bulk hex values without hash # symbol

Why do you need this feature?

Both Sketch and Figma copy the numeric values only. This would improve the workflow for copying colors from either of these design tools into Leonardo.

Additional context

Referenced here: #82 (comment)

URL update on first load of themes page

Description

Theme page is updating URL parameters with config upon first load of page. This should not happen, as there's nothing to print in the URL parameters.

Steps to reproduce

  1. Go to http://leonardocolor.io/
  2. Click on "themes"
  3. Observe the URL update to https://leonardocolor.io/theme.html?name=&config=%7B%22baseScale%22%3A%22%22%2C%22colorScales%22%3A%5B%5D%2C%22brightness%22%3A%2297%22%2C%22contrast%22%3A%221%22%7D

Expected behavior

URL should remain clear of queries until something is entered into a field, or a color scale has been added

Screenshots

Environment

  • Browser(s) and OS(s):
    Version 80.0.3987.132 (Official Build) (64-bit) on macOS Catalina 10.15.3

Additional context

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.