Giter VIP home page Giter VIP logo

js-a11y-workshop's Introduction

Accessibility in JavaScript Applications

Learn the necessary techniques and tools for building inclusive web applications with JavaScript from Marcy Sutton.

Presented at Frontend Masters! You can view the videos that go along with the workshop material in the Accessibility in JavaScript Application course.

Some key takeaways:

  • Understand how to incorporate accessibility into your web development workflow.
  • Debug your sites and applications for accessibility using the latest tools.
  • Apply accessibility to React web applications with Gatsby, while learning how accessibility applies to other stacks.
  • Learn the benefits of manual and automated testing to grow web accessibility superpowers!
  • Integrate focus management into your web applications, gracefully handling keyboard and screen reader interactions.
  • Practice announcing view changes with your code and keeping screen reader users up to date.
  • Achieve wins with semantic markup, unobtrusive animation, and progressive enhancement.

App URL: https://marcysutton.github.io/js-a11y-workshop

Workshop slides: https://marcysutton.github.io/js-a11y-workshop/slides/


This project was started with gatsby-starter-mdx-basic and @mdx-deck/theme.

Note: This repo requires Node 12 and npm to be installed.

  1. Create a new Gatsby site and slide deck using this starter
git clone https://github.com/marcysutton/js-a11y-workshop
  1. Go into the directory, install dependencies, and start the development server
cd js-a11y-workshop
npm install
npm start
View in a browser: http://localhost:8000
  1. Edit files:

  2. To look at the answers from the exercises, check out the /examples directory in the master branch

You can also check out the solutions branch to see everything in action: https://github.com/marcysutton/js-a11y-workshop/tree/solutions

Prerequisites

  1. Have a text editor installed, i.e. VSCode
  2. Have the Gatsby CLI (gatsby-cli) installed globally by running npm install -g gatsby-cli
  3. Use Node 12 (nvm or n will help you maintain Node versions)

Troubleshooting

If you run into errors on the install, check your Node version for version 12. Sharp in particular likes to complain a lot.

To get Gatsby to install after errors, try deleting files and doing another reinstall:

rm -rf node_modules && rm package-lock.json
npm install

If you still run into problems, let me know by opening an issue and including details on any errors, Node version, platform, etc.

js-a11y-workshop's People

Contributors

1marc avatar jxnblk avatar kristakoch avatar marcysutton 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

js-a11y-workshop's Issues

Error when installing packages initially

Hello!

I cloned this repo a couple of minutes ago.

My node version is v.14.40 and npm version 6.14.8

For npm i I get this error log:

$ npm i

> [email protected] install /Users/vannsl/projects/frontend-masters/js-a11y-workshop/node_modules/fsevents
> node install

node-pre-gyp WARN Using request for node-pre-gyp https download 
node-pre-gyp WARN Tried to download(404): https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.2.9/fse-v1.2.9-node-v83-darwin-x64.tar.gz 
node-pre-gyp WARN Pre-built binaries not found for [email protected] and [email protected] (node-v83 ABI, unknown) (falling back to source compile with node-gyp) 
  SOLINK_MODULE(target) Release/.node
  CXX(target) Release/obj.target/fse/fsevents.o
In file included from ../fsevents.cc:6:
In file included from ../../nan/nan.h:2884:
../../nan/nan_typedarray_contents.h:34:43: warning: 'GetContents' is deprecated: Use GetBackingStore. See
      http://crbug.com/v8/9908. [-Wdeprecated-declarations]
      data   = static_cast<char*>(buffer->GetContents().Data()) + byte_offset;
                                          ^
/Users/vannsl/Library/Caches/node-gyp/14.4.0/include/node/v8.h:5202:3: note: 'GetContents' has been explicitly marked
      deprecated here
  V8_DEPRECATE_SOON("Use GetBackingStore. See http://crbug.com/v8/9908.")
  ^
/Users/vannsl/Library/Caches/node-gyp/14.4.0/include/node/v8config.h:402:39: note: expanded from macro 'V8_DEPRECATE_SOON'
# define V8_DEPRECATE_SOON(message) [[deprecated(message)]]
                                      ^
1 warning generated.
  SOLINK_MODULE(target) Release/fse.node
  COPY /Users/vannsl/projects/frontend-masters/js-a11y-workshop/node_modules/fsevents/lib/binding/Release/node-v83-darwin-x64/fse.node
  TOUCH Release/obj.target/action_after_build.stamp

> [email protected] install /Users/vannsl/projects/frontend-masters/js-a11y-workshop/node_modules/sharp
> (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)

info sharp Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.7.4/libvips-8.7.4-darwin-x64.tar.gz
prebuild-install WARN install No prebuilt binaries found (target=14.4.0 runtime=node arch=x64 libc= platform=darwin)
  TOUCH Release/obj.target/libvips-cpp.stamp
  CXX(target) Release/obj.target/sharp/src/common.o
  CXX(target) Release/obj.target/sharp/src/metadata.o
  CXX(target) Release/obj.target/sharp/src/stats.o
../src/stats.cc:130:19: error: no matching member function for call to 'Set'
        channels->Set(i, channelStat);
        ~~~~~~~~~~^~~
/Users/vannsl/Library/Caches/node-gyp/14.4.0/include/node/v8.h:3639:37: note: candidate function not viable: requires 3
      arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                    ^
/Users/vannsl/Library/Caches/node-gyp/14.4.0/include/node/v8.h:3642:37: note: candidate function not viable: requires 3
      arguments, but 2 were provided
  V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
                                    ^
1 error generated.
make: *** [Release/obj.target/sharp/src/stats.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12)
gyp ERR! System Darwin 19.6.0
gyp ERR! command "/usr/local/Cellar/node/14.4.0/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/vannsl/projects/frontend-masters/js-a11y-workshop/node_modules/sharp
gyp ERR! node -v v14.4.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `(node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)`
npm ERR! Exit status 1

Is that a known issue?

Cannot run npm install

I tried to remove package-lock.json, do npm install --force and npm install --legacy-peer-deps, but still could not get the node_modules. :(

OS: Windows 10
Npm: 7.18.1
Node: 16.3.0

Here is my log file if it helps:

14953 verbose stack Error: command failed
14953 verbose stack     at ChildProcess.<anonymous> (C:\Users\alin.ciocan\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\promise-spawn\index.js:64:27)
14953 verbose stack     at ChildProcess.emit (node:events:394:28)
14953 verbose stack     at maybeClose (node:internal/child_process:1067:16)
14953 verbose stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5)
14954 verbose pkgid [email protected]
14955 verbose cwd C:\Users\alin.ciocan\Desktop\js-a11y-workshop-master
14956 verbose Windows_NT 10.0.19043
14957 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\alin.ciocan\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js" "i" "--force"
14958 verbose node v16.3.0
14959 verbose npm  v7.18.1
14960 error code 1
14961 error path C:\Users\alin.ciocan\Desktop\js-a11y-workshop-master\node_modules\sharp
14962 error command failed
14963 error command C:\Windows\system32\cmd.exe /d /s /c (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
14964 error info sharp Using cached C:\Users\alin.ciocan\AppData\Local\npm-cache\_libvips\libvips-8.7.4-win32-x64.tar.gz
14964 error info sharp Creating C:\Users\alin.ciocan\Desktop\js-a11y-workshop-master\node_modules\sharp\build\Release
14964 error info sharp Copying DLLs from C:\Users\alin.ciocan\Desktop\js-a11y-workshop-master\node_modules\sharp\vendor\lib to C:\Users\alin.ciocan\Desktop\js-a11y-workshop-master\node_modules\sharp\build\Release
14964 error gyp info it worked if it ends with ok
14964 error gyp info using [email protected]
14964 error gyp info using [email protected] | win32 | x64
14964 error gyp ERR! configure error
14964 error gyp ERR! stack Error: Command failed: C:\Python39\python.EXE -c import sys; print "%s.%s.%s" % sys.version_info[:3];
14964 error gyp ERR! stack   File "<string>", line 1
14964 error gyp ERR! stack     import sys; print "%s.%s.%s" % sys.version_info[:3];
14964 error gyp ERR! stack                       ^
14964 error gyp ERR! stack SyntaxError: invalid syntax
14964 error gyp ERR! stack
14964 error gyp ERR! stack     at ChildProcess.exithandler (node:child_process:326:12)
14964 error gyp ERR! stack     at ChildProcess.emit (node:events:394:28)
14964 error gyp ERR! stack     at maybeClose (node:internal/child_process:1067:16)
14964 error gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5)
14964 error gyp ERR! System Windows_NT 10.0.19043
14964 error gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\alin.ciocan\\Desktop\\js-a11y-workshop-master\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
14964 error gyp ERR! cwd C:\Users\alin.ciocan\Desktop\js-a11y-workshop-master\node_modules\sharp
14964 error gyp ERR! node -v v16.3.0
14964 error gyp ERR! node-gyp -v v3.8.0
14964 error gyp ERR! not ok
14965 verbose exit 1

Usage of React + Gatsby makes this workshop less accessible

Hi. I've got here from your FrontendMasters course.

I tried to run the project but there were an issue while installing sharp from gatsby underlying package. Spent some time but after an hour or so I decided not to use it. It take too much time.

I would prefer to have minimum dependency and knowledge required to work with this workshop.

npm install issue

Heads up that I ran into this npm install issue (although on Mac):
gatsbyjs/gatsby#11026

Fixed by installing sharp first:

rm -rf node_modules
rm package-lock.json
npm install sharp
npm install

Errors when running npm install

Hi,

I followed the instructions on the ReadMe file but I still get errors when I run 'npm i'.
Here are more details:

  1. Node version - 16.16.0
  2. npm version - 8.13.2
  3. Machine - Apple M1 Pro

I would appreciate some help with this.
Please see below the error messages.

Thanks,

Evia

➜ js-a11y-workshop git:(master) ✗ npm i
(##⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂) ⠇ idealTree:@testing-library/react: sill placeDep ROOT @types/[email protected] OK for: @testing-lib
npm WARN deprecated @types/[email protected]: This is a stub types definition. vfile-message provides its own type definitions, so you do not need this installed.
npm WARN deprecated [email protected]: No longer maintained. Use lru-cache version 7.6 or higher, and provide an asynchronous fetchMethod option.
npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated [email protected]: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated [email protected]: request-promise-native has been deprecated because it extends the now deprecated request package, see request/request#3142
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: This loader has been deprecated. Please use eslint-webpack-plugin
npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated [email protected]: use String.prototype.padStart()
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated [email protected]: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
npm WARN deprecated [email protected]: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (debug-js/debug#797)
npm WARN deprecated [email protected]: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
npm WARN deprecated [email protected]: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN deprecated [email protected]: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN deprecated [email protected]: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN deprecated [email protected]: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
npm WARN deprecated [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated [email protected]: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
npm WARN deprecated [email protected]: Deprecated. Please use https://github.com/webpack-contrib/mini-css-extract-plugin
npm WARN deprecated [email protected]: gatsby-image is now gatsby-plugin-image: https://npm.im/gatsby-plugin-image. This package will no longer receive updates.
npm WARN deprecated @hapi/[email protected]: Moved to 'npm install @sideway/address'
npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated [email protected]: request has been deprecated, see request/request#3142
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated [email protected]: The subscriptions-transport-ws package is no longer maintained. We recommend you use graphql-ws instead. For help migrating Apollo software to graphql-ws, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using graphql-ws, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md
npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated @hapi/[email protected]: Switch to 'npm install joi'
npm WARN deprecated [email protected]: This SVGO version is no longer supported. Upgrade to v2.x.x.
npm WARN deprecated [email protected]: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.
npm WARN deprecated [email protected]: Version no longer supported. Upgrade to @latest
npm WARN deprecated [email protected]: Version no longer supported. Upgrade to @latest
npm WARN deprecated [email protected]: gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.
npm WARN deprecated [email protected]: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
npm ERR! code 1
npm ERR! path /Users/evia/Coding/js-a11y-workshop/node_modules/sharp
npm ERR! command failed
npm ERR! command sh -c (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
npm ERR! CC(target) Release/obj.target/nothing/../node-addon-api/nothing.o
npm ERR! LIBTOOL-STATIC Release/nothing.a
npm ERR! TOUCH Release/obj.target/libvips-cpp.stamp
npm ERR! CXX(target) Release/obj.target/sharp/src/common.o
npm ERR! info sharp Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.10.5/libvips-8.10.5-darwin-arm64v8.tar.br
npm ERR! ERR! sharp Prebuilt libvips 8.10.5 binaries are not yet available for darwin-arm64v8
npm ERR! info sharp Attempting to build from source via node-gyp but this may fail due to the above error
npm ERR! info sharp Please see https://sharp.pixelplumbing.com/install for required dependencies
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | darwin | arm64
npm ERR! (node:41017) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
npm ERR! (Use node --trace-deprecation ... to show where the warning was created)
npm ERR! gyp info spawn /usr/bin/python2
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args '/Users/evia/Coding/js-a11y-workshop/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args 'binding.gyp',
npm ERR! gyp info spawn args '-f',
npm ERR! gyp info spawn args 'make',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/Users/evia/Coding/js-a11y-workshop/node_modules/sharp/build/config.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/Users/evia/Coding/js-a11y-workshop/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/Users/evia/.node-gyp/16.16.0/include/node/common.gypi',
npm ERR! gyp info spawn args '-Dlibrary=shared_library',
npm ERR! gyp info spawn args '-Dvisibility=default',
npm ERR! gyp info spawn args '-Dnode_root_dir=/Users/evia/.node-gyp/16.16.0',
npm ERR! gyp info spawn args '-Dnode_gyp_dir=/Users/evia/Coding/js-a11y-workshop/node_modules/node-gyp',
npm ERR! gyp info spawn args '-Dnode_lib_file=/Users/evia/.node-gyp/16.16.0/<(target_arch)/node.lib',
npm ERR! gyp info spawn args '-Dmodule_root_dir=/Users/evia/Coding/js-a11y-workshop/node_modules/sharp',
npm ERR! gyp info spawn args '-Dnode_engine=v8',
npm ERR! gyp info spawn args '--depth=.',
npm ERR! gyp info spawn args '--no-parallel',
npm ERR! gyp info spawn args '--generator-output',
npm ERR! gyp info spawn args 'build',
npm ERR! gyp info spawn args '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp info spawn make
npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
npm ERR! warning: /Library/Developer/CommandLineTools/usr/bin/libtool: archive library: Release/nothing.a the table of contents is empty (no object file members in the library define global symbols)
npm ERR! ../src/common.cc:24:10: fatal error: 'vips/vips8' file not found
npm ERR! #include <vips/vips8>
npm ERR! ^~~~~~~~~~~~
npm ERR! 1 error generated.
npm ERR! make: *** [Release/obj.target/sharp/src/common.o] Error 1
npm ERR! gyp ERR! build error
npm ERR! gyp ERR! stack Error: make failed with exit code: 2
npm ERR! gyp ERR! stack at ChildProcess.onExit (/Users/evia/Coding/js-a11y-workshop/node_modules/node-gyp/lib/build.js:262:23)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:527:28)
npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12)
npm ERR! gyp ERR! System Darwin 21.3.0
npm ERR! gyp ERR! command "/Users/evia/.nvm/versions/node/v16.16.0/bin/node" "/Users/evia/Coding/js-a11y-workshop/node_modules/.bin/node-gyp" "rebuild"
npm ERR! gyp ERR! cwd /Users/evia/Coding/js-a11y-workshop/node_modules/sharp
npm ERR! gyp ERR! node -v v16.16.0
npm ERR! gyp ERR! node-gyp -v v3.8.0
npm ERR! gyp ERR! not ok

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/evia/.npm/_logs/2022-07-13T22_02_43_213Z-debug-0.log

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.