大理石印记
随机生成大理石风格的标识.

安装
npm install @basementuniverse/marble-identicons
使用量
API : (英语)
function identicon(
name: string,
settings: Partial<IdenticonSettings>
) => HTMLCanvasElement
见 下级 关于配置设置的更多信息.
在浏览器环境中
在您的页面中包含脚本并调用 identicon 函数。 它会回来
HTMLCanvasElement 可附加到DOM或被拉入另一个帆布的节点.
示例
<script src="build/identicon.js"></script>
<script>
const myIdenticon = identicon('Alan Turing');
document.body.appendChild(myIdenticon);
</script>
在反应中
这个例子显示了一种包装方式 HTMLCanvasElement 在JSX要素内:
import { useRef, useLayoutEffect } from 'react';
import { identicon } from '@basementuniverse/marble-identicons';
export function MarbleIdenticon({ name }: { name: string }) {
const ref = useRef<HTMLDivElement>(null);
useLayoutEffect(() => {
if (ref.current) {
ref.current.innerHTML = '';
ref.current.appendChild(identicon(name));
}
});
return (
<div className="identicon" ref={ref}></div>
);
}
然后可以像这样使用此组件:
ReactDOM.render(
<MarbleIdenticon name="Alan Turing" />,
document.getElementById('root')
);
设置
type IdenticonSettings = {
size: number;
baseSeed: string;
font: string;
fontStyle: FontStyle;
fontSize: number;
backgroundColours: string[];
initialsColours: string[];
initialsOffset: vec;
initialsAlpha: number;
initialsCompositeOperation: CompositeOperation;
stripeColours: string[];
stripeAlpha: number;
stripeCompositeOperation: CompositeOperation;
stripes: [number, number];
stripeWidth: [number, number];
stripeDeviation: [number, number];
curveAmount: [number, number];
curveOffset: [number, number];
startWidthSign: WidthSign[];
endWidthSign: WidthSign[];
};
| 设置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
size | number | 以像素表示的标识大小 | 100 |
baseSeed | string | 种子 RNG 时在名称上被前缀的字符串 | '' |
font | string | 首字母所用的字体家族 | 'Helvetica' |
fontStyle | FontStyle | 首字母所用的字体样式 。 一定是其中一个 '', (中文(简体) ), 'normal', (中文(简体) ), 'bold', (中文(简体) ), 'italic' | 'bold' |
fontSize | number | 首字母所用的字体大小,作为系数 size | 0.4 |
backgroundColours | string[] | 一组背景颜色。 从清单中随机挑选一个. | ['#16a085', '#1abc9c', '#2ecc71', '#3498db', '#1970b9', '#9b59b6', '#e67e22', '#e74c3c', '#e0395b'] |
initialsColours | string[] | 用于首字母的颜色阵列。 随机选择的背景颜色的索引将用来从此列表中选择,并被夹到数组的大小. | ['#ffffff'] |
initialsOffset | vec | 页:1. { x: number, y: number } | { x: 0, y: 0 } |
initialsAlpha | number | 首字母不透明 | 1 |
initialsCompositeOperation | CompositeOperation | 用于首字母的全局复合操作. 一定是其中一个 'source-over', (中文(简体) ), 'lighter', (中文(简体) ), 'multiply', (中文(简体) ), 'screen', (中文(简体) ), 'overlay', (中文(简体) ), 'color-dodge', (中文(简体) ), 'color-burn', (中文(简体) ), 'hard-light', (中文(简体) ), 'soft-light' | 'source-over' |
stripeColours | string[] | 条纹所用的一系列颜色。 随机选择的背景颜色的索引将用来从此列表中选择,并被夹到数组的大小. | ['#f1c40f'] |
stripeAlpha | number | 条纹的α不透明 | 0.15 |
stripeCompositeOperation | CompositeOperation | 用于条纹的全球复合操作. 一定是其中一个 'source-over', (中文(简体) ), 'lighter', (中文(简体) ), 'multiply', (中文(简体) ), 'screen', (中文(简体) ), 'overlay', (中文(简体) ), 'color-dodge', (中文(简体) ), 'color-burn', (中文(简体) ), 'hard-light', (中文(简体) ), 'soft-light' | 'lighter' |
stripes | [number, number] | 包含要绘制的最小和最大条纹数的拖拉 | [3, 8] |
stripeWidth | [number, number] | 用弧度测量的一股包含最小和最大条纹宽度的Tuple. | [0.2, 0.7] |
stripeDeviation | [number, number] | 用弧度测量的连续条纹之间有最小和最大距离的一股扭矩. | [-0.5, 0.5] |
curveAmount | [number, number] | 包含控制点圈最小和最大半径乘数的扭矩. | [0.2, 0.4] |
curveOffset | [number, number] | 包含以弧度测量的控制点最小和最大相抵角的扭矩. | [0, 0.5] |
startWidthSign | WidthSign[] | 一系列标志( A)'positive' 或者说 'negative'用于每个条纹的起始边缘. 若为 startWidthSign 实值 ['positive'] 财务报告和审定财务报表 endWidthSign 实值 ['negative'] (或反之相去相去相去相去相去相去而相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相. | ['positive', 'negative'] |
endWidthSign | WidthSign[] | 一系列标志( A)'positive' 或者说 'negative'每个条纹的末端边缘. | ['positive', 'negative'] |