forked from TanStack/tanstack.com
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathranger.tsx
More file actions
106 lines (103 loc) · 2.99 KB
/
ranger.tsx
File metadata and controls
106 lines (103 loc) · 2.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
import {
Book,
MessageCircleQuestionMark,
PlugZap,
RotateCw,
Wallpaper,
} from 'lucide-react'
import { twMerge } from 'tailwind-merge'
import { GithubIcon } from '~/components/icons/GithubIcon'
const repo = 'tanstack/ranger'
const textStyles = 'text-gray-700 dark:text-gray-500'
export const rangerProject = {
id: 'ranger',
name: 'TanStack Ranger',
cardStyles: `shadow-xl shadow-slate-700/20 dark:shadow-lg dark:shadow-slate-500/30 text-slate-500 border-2 border-transparent hover:border-current`,
to: '/ranger',
tagline: `Headless range and multi-range slider utilities.`,
description: `Headless, lightweight, and extensible primitives for building range and multi-range sliders.`,
ogImage: 'https://github.com/tanstack/ranger/raw/main/media/headerv1.png',
badge: undefined,
bgStyle: 'bg-slate-500',
textStyle: 'text-slate-500',
repo,
latestBranch: 'main',
latestVersion: 'v0',
availableVersions: ['v0'],
bgRadial: 'from-gray-500 via-gray-700/50 to-transparent',
colorFrom: 'from-gray-500',
colorTo: 'to-gray-700',
textColor: 'text-gray-700',
frameworks: ['react'],
scarfId: 'dd278e06-bb3f-420c-85c6-6e42d14d8f61',
menu: [
{
icon: <Book />,
label: 'Docs',
to: '/ranger/latest/docs/overview',
},
{
icon: <Wallpaper />,
label: 'Examples',
to: '/ranger/latest/docs/framework/react/examples/basic',
},
{
icon: <GithubIcon />,
label: 'GitHub',
to: `https://github.com/${repo}`,
},
],
featureHighlights: [
{
title: 'Typesafe & powerful, yet familiarly simple',
icon: (
<PlugZap className={twMerge('scale-125 animate-pulse', textStyles)} />
),
description: (
<div>
Hooks for building range and multi-range sliders in React{' '}
<span className={twMerge('font-semibold', textStyles)}>
100% typesafe without compromising on DX
</span>
.
</div>
),
},
{
title: '"Headless" UI library',
icon: (
<RotateCw
className={twMerge('animate-spin', textStyles)}
style={{
animationDuration: '3s',
animationTimingFunction: 'ease-in-out',
}}
/>
),
description: (
<div>
Headless and extensible. Ranger doesn't render or supply any actual UI
elements. It's a{' '}
<span className={twMerge('font-semibold', textStyles)}>
utility for building your own custom-designed UI components
</span>
.
</div>
),
},
{
title: 'Extensible',
icon: <MessageCircleQuestionMark className={twMerge('', textStyles)} />,
description: (
<div>
Designed with maximum inversion of control in mind, Ranger is built to
be{' '}
<span className={twMerge('font-semibold', textStyles)}>
easily extended and customized
</span>{' '}
to fit your needs.
</div>
),
},
],
}