# buuing/lucky-canvas

🎖🎖🎖 基于 TS + Canvas 开发的【大转盘 / 九宫格 / 老虎机】抽奖插件，🌈 一套源码适配多端框架 JS / Vue / React / Taro / UniApp / 微信小程序等，🎨 奖品 / 文字 / 图片 / 颜色 / 按钮均可配置，支持同步 / 异步抽奖，🎯 概率前 / 后端可控，🚀 自动根据 dpr 调整清晰度适配移动端

Repository: https://github.com/buuing/lucky-canvas
Canonical: https://ross.abutalabs.com/products/lucky-canvas
Homepage: https://100px.net
Language: TypeScript
License: Apache-2.0
License Family: permissive
Topics: vue, lucky-draw, canvas, javascript, react, taro, uni-app
Last push: 2026-07-30T07:38:48+00:00

## Health v2 (maintenance only)
Score: 75/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 95, release rhythm 35, longevity 100
- inputs: {"age_days": 2641, "days_push": 34, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 8750, forks 1032 (observed 2026-08-28T04:10:25.567335+00:00)

## What it is
A TypeScript + Canvas-based lucky draw plugin offering prize wheel, 9-grid, and slot machine components. One codebase adapts to JS, Vue, React, Taro, UniApp, and WeChat Mini Programs with configurable prizes, text, images, colors, and buttons.

## Use cases
- add a spinning prize wheel to a marketing page
- build a 9-grid lucky draw for a WeChat mini program
- implement a slot machine lottery game in React
- create a raffle widget with frontend or backend controlled winning probability
- make a responsive lucky draw component for mobile web
- run async prize draws where results come from an API

## When to choose
- you need a polished lottery/lucky-draw UI across multiple frameworks from one codebase
- you target WeChat mini programs or uni-app/Taro alongside web
- you want configurable prizes, images, fonts, and probability control
- you need responsive canvas rendering with dpr-aware sharpness

## When to avoid
- you need a general-purpose canvas animation or game engine
- you require server-side draw logic only with no UI component
- your project does not use any of the supported frameworks and plain canvas is fine

## Facets
- artifact type: library
- maturity: stable
- function: ui-components, animation, graphics
- domain: web-development, frontend, gaming-tools, cross-platform
- platform: browser, cross-platform
- tags: lucky-draw, canvas, prize-wheel, slot-machine, vue, react, taro, uni-app, wechat-miniprogram, lottery, web-server, javascript

## Member repositories
- buuing/lucky-canvas (main) score 75

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:10:25.567335+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:25:16.502393+00:00, confidence not recorded.
  - readme: https://github.com/buuing/lucky-canvas (fetched 2026-08-28T04:10:25.567335+00:00, sha 3b0739f24d7d)
  - homepage: https://100px.net (fetched 2026-08-29T08:25:48.400716+00:00, sha 2b2ee5324878)
  - site_page: https://100px.net/docs/wheel.html (fetched 2026-08-29T08:25:48.404277+00:00, sha 69492d181ed0)
  - site_page: https://100px.net/docs/grid.html (fetched 2026-08-29T08:25:48.406901+00:00, sha 11b53536d8d2)
  - site_page: https://100px.net/docs/slot.html (fetched 2026-08-29T08:25:48.408916+00:00, sha 721b4e5e0c27)
  - site_page: https://100px.net/faq/responsive.html (fetched 2026-08-29T08:25:48.410699+00:00, sha 518cfb9f8594)
- Data as of 2026-08-30T08:39:29.467469+00:00.
