@pinfold/css 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +64 -2
- package/dist/accordion.css +455 -0
- package/dist/all.css +1043 -0
- package/dist/core.css +477 -0
- package/dist/packs.css +109 -0
- package/dist/reset.css +110 -0
- package/dist/shadcn.css +51 -0
- package/dist/tailwind.css +87 -0
- package/dist/tokens.css +366 -0
- package/package.json +55 -4
- package/tailwind/preset.cjs +146 -0
- package/tailwind/theme.css +87 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pinfold — Tailwind CSS v3 preset.
|
|
3
|
+
*
|
|
4
|
+
* // tailwind.config.js
|
|
5
|
+
* module.exports = { presets: [require('@pinfold/css/tailwind')] };
|
|
6
|
+
*
|
|
7
|
+
* Every entry points at a `--pinfold-*` custom property rather than a literal, so
|
|
8
|
+
* `bg-primary-600` follows `npx pinfold theme`, dark mode and any runtime
|
|
9
|
+
* override automatically. One palette, two styling systems, no duplication.
|
|
10
|
+
*
|
|
11
|
+
* For Tailwind v4, import `@pinfold/css/tailwind.css` instead.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
const ramp = (role) =>
|
|
15
|
+
Object.fromEntries(
|
|
16
|
+
[50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950].map((step) => [
|
|
17
|
+
step,
|
|
18
|
+
`var(--pinfold-${role}-${step})`,
|
|
19
|
+
]),
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
/** Status ramps ship five steps, not eleven. */
|
|
23
|
+
const statusRamp = (role) =>
|
|
24
|
+
Object.fromEntries([100, 300, 500, 700, 900].map((s) => [s, `var(--pinfold-${role}-${s})`]));
|
|
25
|
+
|
|
26
|
+
module.exports = {
|
|
27
|
+
theme: {
|
|
28
|
+
extend: {
|
|
29
|
+
colors: {
|
|
30
|
+
primary: ramp('primary'),
|
|
31
|
+
neutral: ramp('neutral'),
|
|
32
|
+
accent: {
|
|
33
|
+
300: 'var(--pinfold-accent-300)',
|
|
34
|
+
400: 'var(--pinfold-accent-400)',
|
|
35
|
+
500: 'var(--pinfold-accent-500)',
|
|
36
|
+
600: 'var(--pinfold-accent-600)',
|
|
37
|
+
700: 'var(--pinfold-accent-700)',
|
|
38
|
+
DEFAULT: 'var(--pinfold-color-accent)',
|
|
39
|
+
},
|
|
40
|
+
success: statusRamp('success'),
|
|
41
|
+
warning: statusRamp('warning'),
|
|
42
|
+
danger: statusRamp('danger'),
|
|
43
|
+
info: statusRamp('info'),
|
|
44
|
+
|
|
45
|
+
// Semantic aliases: `bg-surface`, `text-content-muted`, `border-line`.
|
|
46
|
+
bg: { DEFAULT: 'var(--pinfold-color-bg)', subtle: 'var(--pinfold-color-bg-subtle)' },
|
|
47
|
+
surface: {
|
|
48
|
+
DEFAULT: 'var(--pinfold-color-surface)',
|
|
49
|
+
raised: 'var(--pinfold-color-surface-raised)',
|
|
50
|
+
sunken: 'var(--pinfold-color-surface-sunken)',
|
|
51
|
+
hover: 'var(--pinfold-color-surface-hover)',
|
|
52
|
+
active: 'var(--pinfold-color-surface-active)',
|
|
53
|
+
selected: 'var(--pinfold-color-surface-selected)',
|
|
54
|
+
},
|
|
55
|
+
content: {
|
|
56
|
+
DEFAULT: 'var(--pinfold-color-text)',
|
|
57
|
+
muted: 'var(--pinfold-color-text-muted)',
|
|
58
|
+
subtle: 'var(--pinfold-color-text-subtle)',
|
|
59
|
+
disabled: 'var(--pinfold-color-text-disabled)',
|
|
60
|
+
},
|
|
61
|
+
line: {
|
|
62
|
+
DEFAULT: 'var(--pinfold-color-border)',
|
|
63
|
+
strong: 'var(--pinfold-color-border-strong)',
|
|
64
|
+
accent: 'var(--pinfold-color-border-accent)',
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
|
|
68
|
+
borderRadius: {
|
|
69
|
+
xs: 'var(--pinfold-radius-xs)',
|
|
70
|
+
sm: 'var(--pinfold-radius-sm)',
|
|
71
|
+
DEFAULT: 'var(--pinfold-radius-md)',
|
|
72
|
+
md: 'var(--pinfold-radius-md)',
|
|
73
|
+
lg: 'var(--pinfold-radius-lg)',
|
|
74
|
+
xl: 'var(--pinfold-radius-xl)',
|
|
75
|
+
'2xl': 'var(--pinfold-radius-2xl)',
|
|
76
|
+
},
|
|
77
|
+
|
|
78
|
+
spacing: Object.fromEntries(
|
|
79
|
+
[1, 2, 3, 4, 5, 6, 8, 10].map((n) => [n, `var(--pinfold-space-${n})`]),
|
|
80
|
+
),
|
|
81
|
+
|
|
82
|
+
fontFamily: {
|
|
83
|
+
sans: 'var(--pinfold-font-sans)',
|
|
84
|
+
mono: 'var(--pinfold-font-mono)',
|
|
85
|
+
},
|
|
86
|
+
|
|
87
|
+
fontSize: {
|
|
88
|
+
xs: 'var(--pinfold-text-xs)',
|
|
89
|
+
sm: 'var(--pinfold-text-sm)',
|
|
90
|
+
base: 'var(--pinfold-text-md)',
|
|
91
|
+
lg: 'var(--pinfold-text-lg)',
|
|
92
|
+
xl: 'var(--pinfold-text-xl)',
|
|
93
|
+
},
|
|
94
|
+
|
|
95
|
+
boxShadow: {
|
|
96
|
+
xs: 'var(--pinfold-shadow-xs)',
|
|
97
|
+
sm: 'var(--pinfold-shadow-sm)',
|
|
98
|
+
DEFAULT: 'var(--pinfold-shadow-sm)',
|
|
99
|
+
md: 'var(--pinfold-shadow-md)',
|
|
100
|
+
lg: 'var(--pinfold-shadow-lg)',
|
|
101
|
+
xl: 'var(--pinfold-shadow-xl)',
|
|
102
|
+
highlight: 'var(--pinfold-highlight)',
|
|
103
|
+
focus: 'var(--pinfold-focus-ring)',
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
transitionTimingFunction: {
|
|
107
|
+
pinfold: 'var(--pinfold-ease)',
|
|
108
|
+
'pinfold-out': 'var(--pinfold-ease-out)',
|
|
109
|
+
'pinfold-in-out': 'var(--pinfold-ease-in-out)',
|
|
110
|
+
'pinfold-spring': 'var(--pinfold-ease-spring)',
|
|
111
|
+
},
|
|
112
|
+
|
|
113
|
+
transitionDuration: {
|
|
114
|
+
fast: 'var(--pinfold-duration-fast)',
|
|
115
|
+
DEFAULT: 'var(--pinfold-duration-md)',
|
|
116
|
+
slow: 'var(--pinfold-duration-slow)',
|
|
117
|
+
},
|
|
118
|
+
|
|
119
|
+
zIndex: {
|
|
120
|
+
dropdown: 'var(--pinfold-z-dropdown)',
|
|
121
|
+
sticky: 'var(--pinfold-z-sticky)',
|
|
122
|
+
overlay: 'var(--pinfold-z-overlay)',
|
|
123
|
+
modal: 'var(--pinfold-z-modal)',
|
|
124
|
+
toast: 'var(--pinfold-z-toast)',
|
|
125
|
+
tooltip: 'var(--pinfold-z-tooltip)',
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
|
|
130
|
+
plugins: [
|
|
131
|
+
/**
|
|
132
|
+
* Variants for the `data-*` state Pinfold components already expose, so a
|
|
133
|
+
* Tailwind-styled accordion needs no class toggling of its own:
|
|
134
|
+
*
|
|
135
|
+
* <Faq classNames={{ trigger: 'open:text-primary-600 disabled-row:opacity-50' }} />
|
|
136
|
+
*/
|
|
137
|
+
function pinfoldVariants({ addVariant }) {
|
|
138
|
+
addVariant('open', '&[data-state="open"]');
|
|
139
|
+
addVariant('closed', '&[data-state="closed"]');
|
|
140
|
+
addVariant('selected', '&[data-state="selected"]');
|
|
141
|
+
addVariant('disabled-row', '&[data-disabled]');
|
|
142
|
+
addVariant('group-open', ':merge(.group)[data-state="open"] &');
|
|
143
|
+
addVariant('pinfold-dark', ':is([data-pinfold-theme="dark"] &)');
|
|
144
|
+
},
|
|
145
|
+
],
|
|
146
|
+
};
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/* Pinfold — Tailwind CSS v4 theme.
|
|
2
|
+
*
|
|
3
|
+
* @import "tailwindcss";
|
|
4
|
+
* @import "@pinfold/css/core.css";
|
|
5
|
+
* @import "@pinfold/css/tailwind.css";
|
|
6
|
+
*
|
|
7
|
+
* Maps Pinfold tokens onto Tailwind's `--color-*` / `--radius-*` namespaces, so
|
|
8
|
+
* `bg-primary-600` and `rounded-lg` follow `npx pinfold theme`, dark mode and any
|
|
9
|
+
* runtime override. For Tailwind v3, use the preset instead.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
@theme inline {
|
|
13
|
+
--color-primary-50: var(--pinfold-primary-50);
|
|
14
|
+
--color-primary-100: var(--pinfold-primary-100);
|
|
15
|
+
--color-primary-200: var(--pinfold-primary-200);
|
|
16
|
+
--color-primary-300: var(--pinfold-primary-300);
|
|
17
|
+
--color-primary-400: var(--pinfold-primary-400);
|
|
18
|
+
--color-primary-500: var(--pinfold-primary-500);
|
|
19
|
+
--color-primary-600: var(--pinfold-primary-600);
|
|
20
|
+
--color-primary-700: var(--pinfold-primary-700);
|
|
21
|
+
--color-primary-800: var(--pinfold-primary-800);
|
|
22
|
+
--color-primary-900: var(--pinfold-primary-900);
|
|
23
|
+
--color-primary-950: var(--pinfold-primary-950);
|
|
24
|
+
|
|
25
|
+
--color-neutral-50: var(--pinfold-neutral-50);
|
|
26
|
+
--color-neutral-100: var(--pinfold-neutral-100);
|
|
27
|
+
--color-neutral-200: var(--pinfold-neutral-200);
|
|
28
|
+
--color-neutral-300: var(--pinfold-neutral-300);
|
|
29
|
+
--color-neutral-400: var(--pinfold-neutral-400);
|
|
30
|
+
--color-neutral-500: var(--pinfold-neutral-500);
|
|
31
|
+
--color-neutral-600: var(--pinfold-neutral-600);
|
|
32
|
+
--color-neutral-700: var(--pinfold-neutral-700);
|
|
33
|
+
--color-neutral-800: var(--pinfold-neutral-800);
|
|
34
|
+
--color-neutral-900: var(--pinfold-neutral-900);
|
|
35
|
+
--color-neutral-950: var(--pinfold-neutral-950);
|
|
36
|
+
|
|
37
|
+
--color-accent: var(--pinfold-color-accent);
|
|
38
|
+
--color-accent-300: var(--pinfold-accent-300);
|
|
39
|
+
--color-accent-400: var(--pinfold-accent-400);
|
|
40
|
+
--color-accent-500: var(--pinfold-accent-500);
|
|
41
|
+
--color-accent-600: var(--pinfold-accent-600);
|
|
42
|
+
--color-accent-700: var(--pinfold-accent-700);
|
|
43
|
+
|
|
44
|
+
--color-success-500: var(--pinfold-success-500);
|
|
45
|
+
--color-warning-500: var(--pinfold-warning-500);
|
|
46
|
+
--color-danger-500: var(--pinfold-danger-500);
|
|
47
|
+
--color-info-500: var(--pinfold-info-500);
|
|
48
|
+
|
|
49
|
+
--color-bg: var(--pinfold-color-bg);
|
|
50
|
+
--color-bg-subtle: var(--pinfold-color-bg-subtle);
|
|
51
|
+
--color-surface: var(--pinfold-color-surface);
|
|
52
|
+
--color-surface-raised: var(--pinfold-color-surface-raised);
|
|
53
|
+
--color-surface-hover: var(--pinfold-color-surface-hover);
|
|
54
|
+
--color-surface-selected: var(--pinfold-color-surface-selected);
|
|
55
|
+
--color-content: var(--pinfold-color-text);
|
|
56
|
+
--color-content-muted: var(--pinfold-color-text-muted);
|
|
57
|
+
--color-content-subtle: var(--pinfold-color-text-subtle);
|
|
58
|
+
--color-line: var(--pinfold-color-border);
|
|
59
|
+
--color-line-strong: var(--pinfold-color-border-strong);
|
|
60
|
+
|
|
61
|
+
--radius-xs: var(--pinfold-radius-xs);
|
|
62
|
+
--radius-sm: var(--pinfold-radius-sm);
|
|
63
|
+
--radius-md: var(--pinfold-radius-md);
|
|
64
|
+
--radius-lg: var(--pinfold-radius-lg);
|
|
65
|
+
--radius-xl: var(--pinfold-radius-xl);
|
|
66
|
+
--radius-2xl: var(--pinfold-radius-2xl);
|
|
67
|
+
|
|
68
|
+
--font-sans: var(--pinfold-font-sans);
|
|
69
|
+
--font-mono: var(--pinfold-font-mono);
|
|
70
|
+
|
|
71
|
+
--shadow-xs: var(--pinfold-shadow-xs);
|
|
72
|
+
--shadow-sm: var(--pinfold-shadow-sm);
|
|
73
|
+
--shadow-md: var(--pinfold-shadow-md);
|
|
74
|
+
--shadow-lg: var(--pinfold-shadow-lg);
|
|
75
|
+
--shadow-xl: var(--pinfold-shadow-xl);
|
|
76
|
+
|
|
77
|
+
--ease-pinfold: var(--pinfold-ease);
|
|
78
|
+
--ease-pinfold-out: var(--pinfold-ease-out);
|
|
79
|
+
--ease-pinfold-spring: var(--pinfold-ease-spring);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/* Variants matching the `data-*` state Pinfold components expose. */
|
|
83
|
+
@custom-variant open (&[data-state="open"]);
|
|
84
|
+
@custom-variant closed (&[data-state="closed"]);
|
|
85
|
+
@custom-variant selected (&[data-state="selected"]);
|
|
86
|
+
@custom-variant disabled-row (&[data-disabled]);
|
|
87
|
+
@custom-variant pinfold-dark (&:is([data-pinfold-theme="dark"] *));
|