Code Monkey home page Code Monkey logo

wrathchaos / react-native-bouncy-checkbox Goto Github PK

View Code? Open in Web Editor NEW
722.0 9.0 57.0 74.92 MB

Fully customizable animated bouncy checkbox for React Native

Home Page: https://freakycoder.com

License: MIT License

JavaScript 5.64% Java 35.77% Ruby 3.48% Objective-C 5.48% Starlark 1.38% TypeScript 20.54% Shell 0.18% C++ 16.71% Objective-C++ 10.19% CMake 0.63%
react reactjs react-native ios android mobile mobile-app customizable-ui javascript checkbox

react-native-bouncy-checkbox's Introduction

React Native Bouncy Checkbox

Battle Tested โœ…

Fully customizable animated bouncy checkbox for React Native

npm version npm Platform - Android and iOS License: MIT styled with prettier

React Native Bouncy Checkbox React Native Bouncy Checkbox

Installation

Add the dependency:

Zero Dependency ๐Ÿฅณ

React Native

npm i react-native-bouncy-checkbox

๐Ÿฅณ Version 4.0.0 is here ๐Ÿš€

  • Complete re-written with Modern Functional Component
  • Fully Refactored with React Hooks
  • Imperative Handle Support
  • Checkbox is controllable with isChecked prop
  • onLongPress support
  • testID support
  • Finally, get rid of disableBuiltInState prop
  • Cool customizable animation options
  • Typescript
  • Community Supported Stable Version

Import

import BouncyCheckbox from "react-native-bouncy-checkbox";

Usage

Basic Usage

<BouncyCheckbox onPress={(isChecked: boolean) => {}} />

Advanced Custom Usage

<BouncyCheckbox
  size={25}
  fillColor="red"
  unFillColor="#FFFFFF"
  text="Custom Checkbox"
  iconStyle={{ borderColor: "red" }}
  innerIconStyle={{ borderWidth: 2 }}
  textStyle={{ fontFamily: "JosefinSans-Regular" }}
  onPress={(isChecked: boolean) => {console.log(isChecked)}}
/>

Configuration - Props

Property Type Default Description
isChecked boolean undefined if you want to control check state yourself, you can use isChecked prop now!
onPress function null set your own onPress functionality after the bounce effect, callback receives the next isChecked boolean if disableBuiltInState is false
onLongPress function null set your own onLongPress functionality after the bounce effect, callback receives the next isChecked boolean if disableBuiltInState is false
text string undefined set the checkbox's text
textComponent component undefined set the checkbox's text by a React Component
disableText boolean false if you want to use checkbox without text, you can enable it
size number 25 size of width and height of the checkbox
style style default set/override the container style
textStyle style default set/override the text style
iconStyle style default set/override the outer icon container style
innerIconStyle style default set/override the inner icon container style
fillColor color #f09f48 change the checkbox's filled color
unfillColor color transparent change the checkbox's un-filled color when it's not checked
iconComponent component Icon set your own icon component
checkIconImageSource image default set your own check icon image
textContainerStyle ViewStyle default set/override the text container style
ImageComponent component Image set your own Image component instead of RN's default Image
TouchableComponent Component Pressable set/override the main TouchableOpacity component with any Touchable Component like Pressable

Animation Configurations

Property Type Default Description
bounceEffectIn number 0.9 change the bounce effect when press in
bounceEffectOut number 1 change the bounce effect when press out
bounceVelocityIn number 0.1 change the bounce velocity when press in
bounceVelocityOut number 0.4 change the bounce velocity when press out
bouncinessIn number 20 change the bounciness when press in
bouncinessOut number 20 change the bounciness when press out

Synthetic Press Functionality with Manual Controlling State

React Native Bouncy Checkbox

Please check the example runnable project to how to make it work on a real project.

  • The onPress callback WILL RECEIVE the next isChecked when using ref is used.
  • You MUST set the isChecked prop to use your own check state manually.

Here is the basic implementation:

import React from "react";
import {
  SafeAreaView,
  StyleSheet,
  Text,
  TouchableOpacity,
  View,
} from "react-native";
import BouncyCheckbox from "./lib/BouncyCheckbox";
import RNBounceable from "@freakycoder/react-native-bounceable";

const App = () => {
  let bouncyCheckboxRef: BouncyCheckbox | null = null;
  const [checkboxState, setCheckboxState] = React.useState(false);

  return (
    <SafeAreaView
      style={{
        flex: 1,
        alignItems: "center",
        justifyContent: "center",
      }}
    >
      <View style={styles.checkboxesContainer}>
        <Text style={styles.titleSynthetic}>Synthetic Checkbox</Text>
        <Text style={styles.checkboxSyntheticSubtitle}>
          Control Checkbox with Another Button
        </Text>
        <View style={styles.checkboxSyntheticContainer}>
          <BouncyCheckbox
                  ref={bouncyCheckboxRef}
                  disableText
                  fillColor="#9342f5"
                  size={50}
                  iconImageStyle={styles.iconImageStyle}
                  iconStyle={{borderColor: '#9342f5'}}
                  onPress={isChecked => {
                    Alert.alert(`Checked:: ${isChecked}`);
                  }}
          />
          <RNBounceable
                  style={styles.syntheticButton}
                  onPress={() => {
                    if (bouncyCheckboxRef.current) {
                      bouncyCheckboxRef.current.onCheckboxPress();
                    }
                  }}>
            <Text style={{color: '#fff', fontWeight: '600'}}>
              Change Checkbox
            </Text>
          </RNBounceable>
        </View>
      </View>
    </SafeAreaView>
  );
};

const styles = StyleSheet.create({});

export default App;

Another example with isChecked prop:

import React, {useRef} from 'react';
import {ImageBackground, StyleSheet, Text, View} from 'react-native';
import RNBounceable from '@freakycoder/react-native-bounceable';
import BouncyCheckbox, {BouncyCheckboxHandle} from './build/dist';

const App = () => {
  const bouncyCheckboxRef = useRef<BouncyCheckboxHandle>(null);

  const [checkboxState, setCheckboxState] = React.useState(false);

  return (
    <ImageBackground
      style={styles.container}
      source={require('./assets/bg.jpg')}>
      <View
        style={[
          styles.stateContainer,
          {
            backgroundColor: checkboxState ? '#34eb83' : '#eb4034',
          },
        ]}>
        <Text
          style={
            styles.stateTextStyle
          }>{`Check Status: ${checkboxState.toString()}`}</Text>
      </View>
      <BouncyCheckbox
        size={50}
        textStyle={styles.textStyle}
        style={{marginTop: 16}}
        iconImageStyle={styles.iconImageStyle}
        fillColor={'#00C0EE'}
        unFillColor={'transparent'}
        ref={bouncyCheckboxRef}
        isChecked={checkboxState}
        text="Synthetic Checkbox"
        onPress={() => setCheckboxState(!checkboxState)}
      />
      <RNBounceable
        style={styles.syntheticButton}
        onPress={() => {
          bouncyCheckboxRef.current?.onCheckboxPress();
        }}>
        <Text style={{color: '#fff'}}>Synthetic Checkbox Press</Text>
      </RNBounceable>
    </ImageBackground>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
  },
  stateContainer: {
    height: 45,
    width: 175,
    alignItems: 'center',
    justifyContent: 'center',
    borderRadius: 12,
    marginBottom: 12,
  },
  stateTextStyle: {
    color: '#fff',
    fontWeight: 'bold',
  },
  syntheticButton: {
    height: 50,
    marginTop: 64,
    borderRadius: 12,
    width: '60%',
    alignItems: 'center',
    justifyContent: 'center',
    backgroundColor: '#00C0EE',
  },
  iconImageStyle: {
    width: 20,
    height: 20,
  },
  textStyle: {
    color: '#010101',
    fontWeight: '600',
  },
});

export default App;

React Native Bouncy Checkbox

We have also this library's checkbox group library as well ๐Ÿป Please take a look ๐Ÿ˜

FAQ

How to disable strikethrough?

  • Simply use the textStyle prop and set the textDecorationLine to none
textStyle={{
  textDecorationLine: "none",
}}

How to make square checkbox?

  • Simply use the iconStyle prop and set the borderRadius to 0
innerIconStyle={{
  borderRadius: 0, // to make it a little round increase the value accordingly
}}

How to use multiple checkbox and control all of them with one checkbox?

  • You can use isChecked prop to control all of them one by one and with simple handling function to make them all checked or not
  const data = [
    {
      id: 0,
      isChecked: false,
    },
    {
      id: 1,
      isChecked: false,
    },
    {
      id: 2,
      isChecked: false,
    },
  ]

  const [checkBoxes, setCheckBoxes] = useState(data);


  const handleCheckboxPress = (checked: boolean, id: number) => {
    if (id === 0) {
      setCheckBoxes(
        checkBoxes.map(item => ({
          ...item,
          isChecked: checked,
        })),
      );
      return;
    }

    setCheckBoxes(
      checkBoxes.map(item =>
        item.id === id ? {...item, isChecked: checked} : item,
      ),
    );
  };

Please check out the example for this: https://github.com/WrathChaos/react-native-bouncy-checkbox-check-all-with-one-checkbox

Future Plans

  • LICENSE
  • Typescript Challange!
  • Version 2.0.0 is alive ๐Ÿฅณ
  • Synthetic Press Functionality
  • Disable built-in check state
  • React Native Bouncy Checkbox Group Library Extension
  • New Animation and More Customizable Animation
  • Version 3.0.0 is alive ๐Ÿš€
  • Better Documentation
  • Version 4.0.0 is alive ๐Ÿš€
  • Get rid of disableBuiltInState prop
  • Write an article about the lib on Medium

Credits

Photo by Milad Fakurian on Unsplash

Author

FreakyCoder, [email protected]

License

React Native Bouncy Checkbox is available under the MIT license. See the LICENSE file for more info.

react-native-bouncy-checkbox's People

Contributors

abdemirza avatar aprilmintacpineda avatar dependabot-preview[bot] avatar dependabot[bot] avatar edsonjuniornarvaes avatar jasurkurbanov avatar mmestiyak avatar nikndr avatar oguzeray avatar wrathchaos 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  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

react-native-bouncy-checkbox's Issues

controlled input

It's better if we get the checked status from props instead of state.

I have a Checkbox that updates to checked or unchecked when certain conditions (coming from the backend) are met, but I can't do that with this library.

Use like radio buttons

Can I use this checkbox like radio buttons? I'm trying to uncheck checkbox when another one is checked. Is it possible?

Nested items

Hey there! Have you thought about implementing nested items?

Adding multicolour text to check box gives warning

I have a requirement to add multicolour text to checkbox. I have achieved the same, but it always shows a warning 'Warning: Each child in a list should have a unique "key" prop.' , which looks annoying. Can there be a feature to add multicolour text as per index? Here is my code for the same

let contentString='By logging into this application you agree to our Terms and Conditions.'
    let index=[9, 10 , 11]
 return (
    <View style={styles.container}>
<BouncyCheckbox
        fillColor="red"
        unfillColor="#FFFFFF"
        iconStyle={{ borderColor: "red" , borderRadius: 2 }}
        style={{ marginTop: 8, marginLeft: 50 }}
        isChecked={isSelectedTerms}
        textStyle={{
          textDecorationLine: "none",
          marginRight: 50,
          fontSize: 14
        }}
        size = {18}
        text={<Text style={{color: 'black'}}>
          {contentString.split(" ").map((x, ind) => <Text style={{color: index.includes(ind)?'red':'black'}} >{x+" "}</Text> )}
          </Text>
        }
        disableBuiltInState
        onPress={() => setSelectionTerms(!isSelectedTerms)}
      />
</View>)

not able to change icon .

really loved your library but i want to change the icon but not able to change. i also used checkIconImageSource , iconComponent also, can you please help.

How to disable checkbox?

Hi WrathChaos,

At first, This is very nice component! After using it kinda like it. But How I can disable the checkbox like others common checkbox library do, like provide disable props?

textColor not working on Android

Hi, great package!

Just thought I'd mention textColor prop doesn't appear to be working on Android

      <BouncyCheckbox
        textColor="red"
        text="Task Completed"
      />

Toggling the checkboxes is not working when calling a function within the handelOnPress function!

Hey @WrathChaos ,

I have a Flatlist that has some BouncyCheckbox components.

 const handelWorkToDo = (service, isChecked) => {
    if (isChecked) {
      console.log('add service');
      setWorkToDo([...workToDo, service]);
    } else {
      console.log('remove service');
      const isAvailable = (item) => item.id === service.id;
      R.filter(isAvailable, workToDo);
    }
  };

const Service = ({ id, title, duration }) => (
    <BouncyCheckbox
      fillColor="red"
      iconStyle={{ borderColor: 'red' }}
      key={id}
      onPress={(isChecked) =>
        handelWorkToDo({ id, title, duration }, isChecked)
      }
      style={{ paddingBottom: 10 }}
      text={`${title} -> ${duration}`}
      textStyle={{
        textDecorationLine: 'none',
      }}
    />
  );

const renderItem = ({ item }) => <Service {...item} />;

<FlatList
        data={DATA}
        renderItem={renderItem}
        keyExtractor={(item) => item.id}
        style={{ padding: 2 }}
/>


Whats happening is that when when I call the setWorkToDo([...workToDo, service]) or R.filter(isAvailable, workToDo) within the handelWorkToDo function, checkbox state is not being changed.

however if I remove/comment out those functions, the checkboxes are being checked without issues.

I would like to know if there is something missing within my code or If you have a fix for that.

Thank you :)

If padding is used in style, some text seems to be 'squeezed out'

my code:

<ScrollView style={{paddingHorizontal: 30}}>
    /* some code*/
    {this.state.list.map((item, index) => (
        <BouncyCheckbox
            /* something */
            key={index}
            text={some very long text}
        />
    )}
</ScrollView>

If i write paddingHorizontal, the text will be squeezed out.

7LLTS I2E3$}XS)4~5NW1AS

How to solve this problem

Thanks in advance!

Check png is not found

I am using the package with with typescript template and here are is my dependency list:
"@react-navigation/bottom-tabs": "^6.0.7",
"@react-navigation/native": "^6.0.4",
"@react-navigation/native-stack": "^6.2.2",
"expo": "~42.0.1",
"expo-status-bar": "~1.0.4",
"react": "16.13.1",
"react-dom": "16.13.1",
"react-native": "https://github.com/expo/react-native/archive/sdk-42.0.0.tar.gz",
"react-native-big-list": "^1.4.3",
"react-native-bouncy-checkbox": "^2.1.6",
"react-native-gesture-handler": "~1.10.2",
"react-native-google-places-autocomplete": "^2.4.1",
"react-native-safe-area-context": "3.2.0",
"react-native-screens": "~3.4.0",
"react-native-web": "~0.13.12",
"swr": "^1.0.1",
"tslib": "^2.3.1"

However I am getting the following error:
`
iOS Bundling failed 5245ms
Unable to resolve module ./check.png from C:\Users\thesk\Desktop\react-native\cleverProgrammer\ubereats\node_modules\react-native-bouncy-checkbox\build\dist\BouncyCheckbox.js:

None of these files exist:

  • check.png
  • node_modules\react-native-bouncy-checkbox\build\dist\check.png\index(.native|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx|.ios.js|.native.js|.js|.ios.jsx|.native.jsx|.jsx|.ios.json|.native.json|.json)
    5 | const react_native_1 = require("react-native");
    6 | const BouncyCheckbox_style_1 = (0, tslib_1.__importStar)(require("./BouncyCheckbox.style"));

7 | const defaultCheckImage = require("./check.png");
| ^
8 | class BouncyCheckbox extends React.Component {
9 | constructor(props) {
10 | super(props);
`

Missing fonts when using the following package.json settings

"react": "16.8.3",
"react-native": "https://github.com/expo/react-native/archive/sdk-35.0.0.tar.gz",
"react-native-bottom-search-bar": "0.0.24",
"react-native-bouncy-checkbox": "0.0.2",
"react-native-dynamic-vector-icons": "^0.2.1",
"react-native-iphone-x-helper": "^1.2.1",
"react-native-vector-icons": "^6.6.0",

// =================================================================
Also in App.js I had to add:
async function loadResourcesAsync() {
await Promise.all([
Font.loadAsync({
// This is the font that we are using for our Checkboxes
'Entypo': require('./assets/fonts/Entypo/entypo.ttf'),
'JosefinSans-Regular': require('./assets/fonts/JosefinSans/JosefinSans-Regular.ttf'),
}),
]);
}

fonts.zip

Getting Checkmarks to work properly with IconComponents

pngkey com-white-checkmark
I had to use a transparent, white, checkmark png file to get the desired behavior with this code snippet, see attachment:

 <BouncyCheckbox
            isChecked={false}
            textColor="#000"
            fillColor="green"
            unfillColor='white'
            fontFamily="Open Sans"
            iconComponent={ <Image style={styles.bouncyCheckboxImage}
                                   source={require('../assets/images/pngkey.com-white-checkmark.png')}
            />
            }
            text="Investigate low moisture condition. Units 10, 11 & 12. Repair if necessary."
          />

// =========================================================

const styles = StyleSheet.create({
bouncyCheckboxImage: {
    height: 14,
    width: 14
  },
});

pngkey com-white-checkmark

Not toggling after setting disableBuildInState

So I am using react-hook-form for my getting value

 (
        <BouncyCheckbox
          onPress={(value) => {
            Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success);
            onChange(value);
          }}
          disableBuiltInState
          ref={(ref: any) => (bouncyCheckboxRef = ref)}
          fillColor={colors.buttonPrimary}
          size={18}
          unfillColor={colors.background}
          style={{ marginTop: 10, marginLeft: 5 }}
          text={label}
          isChecked={value}
          textStyle={{ fontSize: 18, textDecorationLine: "none" }}
          iconStyle={{ borderColor: colors.buttonPrimary, marginRight: -5 }}
          {...props}
        />
      )

When I enable disableBuiltInState button doesnot toggle. And after resetting it with default value checkedState is showing but when clicked again it does not toggle.

check icon not rendering on react native web

hey, thanks for this package it looks great! I've added it to a react native web project and the checkbox seems to toggle state correctly but no check icon is shown, so it's just a colour changing box currently...I've tried passing in an iconComponent but when i do that the iconComponent is always rendered, even when the box isn't checked

Checked text

Is it possible to change the color text when it is checked?

Disable checkbox image

Hi WrathChaos,
Is there a way to disable the checkbox image entirely and just have a filled in box when it is "checked"?

Thanks!

Color of checked icon

May I know is there any props for me to change the color of checked icon? This is due to the background color of my checkbox will be white in color

unable to build react-native-vector-icons 9.0.0

error An unexpected error occurred: "could not find a copy of react-native-vector-icons to link in /Users/test/node_modules/react-native-bouncy-checkbox/node_modules".

using "react-native-bouncy-checkbox": "^2.1.7"

problem with "react-native-vector-icons": "9.0.0" works with 8.1.0

Custom styling doesn't work

Hey, a few parameters don't work for me:
borderColor
borderWidth
borderRadius

My code:
<BouncyCheckbox borderColor="red" borderWidth={2} borderRadius={5} fillColor="red" unfillColor="#FFFFFF" iconComponent={<IconDog color={'red'} width={12} strokeWidth={3} />} textColor="#333" size={10} disableTextDecoration={true} fontSize={16} fontFamily="Roboto-Regular" text="asdasd" />

Preview: https://prnt.sc/u44m1v

Why can't I set borderColor for example?

Rtl support

Hi.
it's a great lib. please add rtl languages supports to it.

IMPROVE Add status props

Hi @WrathChaos
Can you add 'status' prop. ฤฐf u can add, we can manage checkbox programmatically and manipulate without touch event is could be very usefull. Also with this prop checkbox can used as radioButton.

Triggering Synthetic onPress

Hey! I'm using your component as a custom react-hook-form connected component and I'm wondering if there's a way that i can trigger the onPress by clicking on label text? The way i have it set up the checkbox color is changing but the animation and checkbox aren't showing.

Thank you! The checkbox is really nice ๐Ÿ’–

Can't show the checkmark

Hi, and thank you for the awesome library! Great work.

I can't seem to make the checkmark appear, I either have an empty round icon or a filled one, but never see the checkmark.

I'm using :
"react-native-bouncy-checkbox": "^2.1.1",
"react-native": "^0.62.2"
Here is my code :

<BouncyCheckbox
	isChecked={isReady}
	textStyle={{
		textDecorationLine: "none",
	}}
	size={25}
	fillColor="#0075FF"
	unfillColor="#FFFFFF"
	text="some text"
	iconStyle={{ borderColor: "#0075FF" }}
	onPress={() => {
		this.setState({
			isReady: !isReady
		})
	}}
/>

Would you have any idea what I'm doing wrong?
Thank you very much for your help !!!

tslib is needed to work with Expo

How to reproduce:

  • Create an expo projects an install the react-native-bouncy-checkbox component.
  • Try to copy the code example to your projects.

Expected Result: You should see a checkbox in your device screen
Actual Result: The console prints an error saying tslib could not be found within the project

Workaround:
Installing the tslib package

npm i tslib 

react-native-bouncy-checkbox fails `tsc --noEmit -p .`

When tsc --noEmit -p . is run react-native-bouncy-checkbox fails with

node_modules/react-native-bouncy-checkbox/build/dist/BouncyCheckbox.d.ts:4:18 - error TS2430: Interface 
'IBouncyCheckboxProps' incorrectly extends interface 'TouchableOpacityProps'.
  Types of property 'onPress' are incompatible.
    Type '(isChecked?: boolean | undefined) => void' is not assignable to type '(event: GestureResponderEvent) => void'.
      Types of parameters 'isChecked' and 'event' are incompatible.
        Type 'GestureResponderEvent' is not assignable to type 'boolean | undefined'.
          Type 'NativeSyntheticEvent<NativeTouchEvent>' is not assignable to type 'true'.

                   ~~~~~~~~~~~~~~~~~~~~


Found 1 error.

I was wondering if this would be addressed so I could use this on typescript projects with no warnings

Hitslop typedef error

Hi!

If I redefine the TouchableComponent property with the Pressable component then I would like to set the hitSlop but I got an error.

Type 'number' is not assignable to type 'Insets | undefined'
When we use Pressable I think the hitSlop can be a number type too.

<BouncyCheckbox 
   onPress={() => {}} 
   disableText={true} 
   TouchableComponent={Pressable}
   hitSlop={12}
/>

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.