@lukeashford/aurelius 1.1.0 → 2.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.
@@ -0,0 +1,117 @@
1
+ // scripts/eslint.mjs
2
+ import eslintPluginBetterTailwindcss from 'eslint-plugin-better-tailwindcss';
3
+ import poupeTailwindcss from '@poupe/eslint-plugin-tailwindcss';
4
+ import css from '@eslint/css';
5
+ import { tailwind4 } from 'tailwind-csstree';
6
+ import tsParser from '@typescript-eslint/parser';
7
+
8
+ /**
9
+ * @typedef {Object} AureliusESLintOptions
10
+ * @property {string} [entryPoint] - Path to your CSS entry file that imports Aurelius. Defaults to
11
+ * './src/index.css'
12
+ */
13
+
14
+ /**
15
+ * Creates an ESLint configuration that enforces Aurelius design system constraints.
16
+ *
17
+ * This configuration:
18
+ * - Prevents arbitrary Tailwind values (e.g., bg-[#123])
19
+ * - Enforces only Aurelius-approved Tailwind classes
20
+ * - Validates Tailwind v4 CSS usage
21
+ *
22
+ * @param {AureliusESLintOptions} [options={}] - Configuration options
23
+ * @returns {any[]} ESLint configuration array
24
+ *
25
+ * @example
26
+ * // With default entry point (./src/index.css)
27
+ * import { createAureliusESLintConfig } from '@lukeashford/aurelius/eslint';
28
+ * export default createAureliusESLintConfig();
29
+ *
30
+ * @example
31
+ * // With custom entry point
32
+ * import { createAureliusESLintConfig } from '@lukeashford/aurelius/eslint';
33
+ * export default createAureliusESLintConfig({ entryPoint: './app/styles.css' });
34
+ */
35
+ export function createAureliusESLintConfig(options = {}) {
36
+ const {entryPoint = './src/index.css'} = options;
37
+
38
+ return [
39
+ // Ignore generated files
40
+ {
41
+ ignores: ['**/generated/**'],
42
+ },
43
+
44
+ // JS/TS/React files: enforce allowed Tailwind classes only
45
+ {
46
+ files: ['**/*.{js,jsx,ts,tsx}'],
47
+ languageOptions: {
48
+ parser: tsParser,
49
+ parserOptions: {
50
+ ecmaVersion: 'latest',
51
+ sourceType: 'module',
52
+ ecmaFeatures: {
53
+ jsx: true,
54
+ },
55
+ },
56
+ },
57
+ plugins: {
58
+ 'better-tailwindcss': eslintPluginBetterTailwindcss,
59
+ },
60
+ settings: {
61
+ 'better-tailwindcss': {
62
+ entryPoint,
63
+ },
64
+ },
65
+ rules: {
66
+ // Only Tailwind-known classes (no custom classnames)
67
+ 'better-tailwindcss/no-unknown-classes': [
68
+ 'error',
69
+ {
70
+ // Allow custom classes when they are defined using Aurelius/Tailwind utilities
71
+ // (e.g., `@utility x { @apply bg-obsidian text-white; }`).
72
+ // This still blocks any class that isn't generated from the Aurelius-based
73
+ // Tailwind pipeline, so "a&b"-style composites are fine but "c" isn't if
74
+ // it doesn't come from Aurelius tokens.
75
+ detectComponentClasses: true,
76
+ },
77
+ ],
78
+
79
+ // Block arbitrary value utilities like bg-[...], text-[...], shadow-[...]
80
+ 'better-tailwindcss/no-restricted-classes': [
81
+ 'error',
82
+ {
83
+ restrict: ['\\[.*\\]'],
84
+ },
85
+ ],
86
+ },
87
+ },
88
+
89
+ // CSS files: enforce Tailwind v4 CSS usage and tokens (exclude fonts.css and theme.css)
90
+ {
91
+ files: ['**/*.css'],
92
+ ignores: ['**/fonts.css', '**/theme.css'],
93
+ language: 'css/css',
94
+ languageOptions: {
95
+ customSyntax: tailwind4,
96
+ },
97
+ plugins: {
98
+ css,
99
+ tailwindcss: poupeTailwindcss,
100
+ },
101
+ rules: {
102
+ // Start from the plugin's recommended preset
103
+ ...poupeTailwindcss.configs.recommended.rules,
104
+
105
+ // Make sure these are at least enabled (or stricter if you want):
106
+ 'tailwindcss/no-conflicting-utilities': 'error',
107
+ 'tailwindcss/valid-apply-directive': 'error',
108
+ 'tailwindcss/valid-modifier-syntax': 'error',
109
+ 'tailwindcss/prefer-theme-tokens': 'warn',
110
+ 'tailwindcss/no-arbitrary-value-overuse': 'error',
111
+ },
112
+ },
113
+ ];
114
+ }
115
+
116
+ // Default export with default entry point for convenience
117
+ export default createAureliusESLintConfig();
@@ -1,243 +0,0 @@
1
- import {
2
- colors,
3
- duration,
4
- easing,
5
- radii,
6
- shadows,
7
- spacing,
8
- typography
9
- } from "./chunk-MDNHT46W.mjs";
10
-
11
- // src/tailwind.preset.ts
12
- import plugin from "tailwindcss/plugin";
13
- var aureliusPlugin = plugin(function({ addBase, addUtilities, theme }) {
14
- addBase({
15
- "html": {
16
- fontFamily: theme("fontFamily.body"),
17
- backgroundColor: theme("colors.obsidian"),
18
- color: theme("colors.white"),
19
- "-webkit-font-smoothing": "antialiased",
20
- "-moz-osx-font-smoothing": "grayscale"
21
- },
22
- "body": {
23
- minHeight: "100vh",
24
- lineHeight: "1.5"
25
- },
26
- "table": {
27
- borderCollapse: "collapse",
28
- width: "100%"
29
- },
30
- "table, th, td": {
31
- border: `1px solid ${theme("colors.gold.muted")}`
32
- },
33
- "th, td": {
34
- padding: "0.5rem 0.75rem"
35
- },
36
- "table:hover": {
37
- boxShadow: theme("boxShadow.glow")
38
- },
39
- "progress": {
40
- appearance: "none",
41
- "-webkit-appearance": "none",
42
- border: `1px solid ${theme("colors.gold.muted")}`,
43
- borderRadius: "0",
44
- backgroundColor: theme("colors.charcoal"),
45
- width: "100%",
46
- height: "0.5rem"
47
- },
48
- "progress::-webkit-progress-bar": {
49
- backgroundColor: theme("colors.charcoal")
50
- },
51
- "progress::-webkit-progress-value": {
52
- backgroundColor: theme("colors.gold.DEFAULT")
53
- },
54
- "progress::-moz-progress-bar": {
55
- backgroundColor: theme("colors.gold.DEFAULT")
56
- },
57
- "h1, h2, h3, h4, h5, h6": {
58
- fontFamily: theme("fontFamily.heading"),
59
- fontWeight: "600",
60
- letterSpacing: "-0.025em",
61
- color: theme("colors.white")
62
- },
63
- "h1": { fontSize: "2.25rem", lineHeight: "1.25" },
64
- "h2": { fontSize: "1.875rem", lineHeight: "1.25" },
65
- "h3": { fontSize: "1.5rem", lineHeight: "1.375" },
66
- "h4": { fontSize: "1.25rem", lineHeight: "1.375" },
67
- "h5": { fontSize: "1.125rem", lineHeight: "1.5" },
68
- "h6": { fontSize: "1rem", lineHeight: "1.5" },
69
- "code, pre, kbd, samp": {
70
- fontFamily: theme("fontFamily.mono"),
71
- fontSize: "0.875em"
72
- },
73
- "a": {
74
- color: theme("colors.gold.DEFAULT"),
75
- textDecoration: "none",
76
- transition: `color ${theme("transitionDuration.fast")} ease-out`
77
- },
78
- "a:hover": {
79
- color: theme("colors.gold.light")
80
- },
81
- ":focus-visible": {
82
- outline: `2px solid ${theme("colors.gold.DEFAULT")}`,
83
- outlineOffset: "2px"
84
- },
85
- "::selection": {
86
- backgroundColor: theme("colors.gold.DEFAULT"),
87
- color: theme("colors.obsidian")
88
- },
89
- "::-webkit-scrollbar": { width: "8px", height: "8px" },
90
- "::-webkit-scrollbar-track": { background: theme("colors.charcoal") },
91
- "::-webkit-scrollbar-thumb": {
92
- background: theme("colors.ash"),
93
- borderRadius: theme("borderRadius.full")
94
- },
95
- "::-webkit-scrollbar-thumb:hover": { background: theme("colors.silver") }
96
- });
97
- addUtilities({
98
- ".text-gradient-gold": {
99
- background: `linear-gradient(to right, ${theme("colors.gold.DEFAULT")}, ${theme(
100
- "colors.gold.light"
101
- )}, ${theme("colors.gold.DEFAULT")})`,
102
- "-webkit-background-clip": "text",
103
- "background-clip": "text",
104
- color: "transparent"
105
- },
106
- ".glow": { boxShadow: theme("boxShadow.glow") },
107
- ".glow-sm": { boxShadow: theme("boxShadow.glow-sm") },
108
- ".glow-lg": { boxShadow: theme("boxShadow.glow-lg") },
109
- ".scroll-smooth": {
110
- scrollBehavior: "smooth",
111
- "-webkit-overflow-scrolling": "touch"
112
- },
113
- ".scrollbar-hide": {
114
- "-ms-overflow-style": "none",
115
- "scrollbar-width": "none",
116
- "&::-webkit-scrollbar": { display: "none" }
117
- },
118
- ".backdrop-glass": {
119
- backdropFilter: "blur(12px)",
120
- backgroundColor: "rgba(20, 20, 20, 0.8)"
121
- },
122
- ".focus-ring": {
123
- "&:focus-visible": {
124
- outline: "2px solid #c9a227",
125
- outlineOffset: "2px"
126
- }
127
- },
128
- ".line-clamp-2": {
129
- display: "-webkit-box",
130
- "-webkit-line-clamp": "2",
131
- "-webkit-box-orient": "vertical",
132
- overflow: "hidden"
133
- },
134
- ".line-clamp-3": {
135
- display: "-webkit-box",
136
- "-webkit-line-clamp": "3",
137
- "-webkit-box-orient": "vertical",
138
- overflow: "hidden"
139
- },
140
- ".center-absolute": {
141
- position: "absolute",
142
- top: "50%",
143
- left: "50%",
144
- transform: "translate(-50%, -50%)"
145
- }
146
- });
147
- });
148
- var preset = {
149
- theme: {
150
- extend: {
151
- colors: {
152
- // Black spectrum
153
- void: colors.void,
154
- obsidian: colors.obsidian,
155
- charcoal: colors.charcoal,
156
- graphite: colors.graphite,
157
- slate: colors.slate,
158
- ash: colors.ash,
159
- // Gold spectrum
160
- gold: {
161
- DEFAULT: colors.gold,
162
- light: colors.goldLight,
163
- bright: colors.goldBright,
164
- muted: colors.goldMuted,
165
- pale: colors.goldPale,
166
- glow: colors.goldGlow
167
- },
168
- // Neutrals
169
- white: colors.white,
170
- silver: colors.silver,
171
- zinc: colors.zinc,
172
- dim: colors.dim,
173
- // Semantic
174
- success: {
175
- DEFAULT: colors.success,
176
- muted: colors.successMuted
177
- },
178
- error: {
179
- DEFAULT: colors.error,
180
- muted: colors.errorMuted
181
- },
182
- warning: {
183
- DEFAULT: colors.warning,
184
- muted: colors.warningMuted
185
- },
186
- info: {
187
- DEFAULT: colors.info,
188
- muted: colors.infoMuted
189
- }
190
- },
191
- fontFamily: {
192
- heading: typography.fontHeading,
193
- body: typography.fontBody,
194
- mono: typography.fontMono
195
- },
196
- fontSize: typography.fontSize,
197
- fontWeight: typography.fontWeight,
198
- lineHeight: typography.lineHeight,
199
- letterSpacing: typography.letterSpacing,
200
- spacing,
201
- borderRadius: radii,
202
- boxShadow: shadows,
203
- transitionDuration: duration,
204
- transitionTimingFunction: easing,
205
- animation: {
206
- "fade-in": "fade-in 200ms ease-out",
207
- "fade-out": "fade-out 150ms ease-in",
208
- "slide-in-right": `slide-in-right 300ms ${easing.smooth}`,
209
- "slide-out-right": "slide-out-right 200ms ease-in",
210
- "pulse-glow": "pulse-glow 2s ease-in-out infinite"
211
- },
212
- keyframes: {
213
- "fade-in": {
214
- "0%": { opacity: "0" },
215
- "100%": { opacity: "1" }
216
- },
217
- "fade-out": {
218
- "0%": { opacity: "1" },
219
- "100%": { opacity: "0" }
220
- },
221
- "slide-in-right": {
222
- "0%": { transform: "translateX(100%)", opacity: "0" },
223
- "100%": { transform: "translateX(0)", opacity: "1" }
224
- },
225
- "slide-out-right": {
226
- "0%": { transform: "translateX(0)", opacity: "1" },
227
- "100%": { transform: "translateX(100%)", opacity: "0" }
228
- },
229
- "pulse-glow": {
230
- "0%, 100%": { boxShadow: "0 0 20px rgba(201, 162, 39, 0.3)" },
231
- "50%": { boxShadow: "0 0 30px rgba(201, 162, 39, 0.5)" }
232
- }
233
- }
234
- }
235
- },
236
- plugins: [aureliusPlugin]
237
- };
238
- var tailwind_preset_default = preset;
239
-
240
- export {
241
- tailwind_preset_default
242
- };
243
- //# sourceMappingURL=chunk-MBYGB67D.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/tailwind.preset.ts"],"sourcesContent":["import type {Config} from 'tailwindcss'\nimport plugin from 'tailwindcss/plugin'\nimport {colors, duration, easing, radii, shadows, spacing, typography} from './tokens'\n\nconst aureliusPlugin = plugin(function ({addBase, addUtilities, theme}) {\n // Base styles\n addBase({\n 'html': {\n fontFamily: theme('fontFamily.body'),\n backgroundColor: theme('colors.obsidian'),\n color: theme('colors.white'),\n '-webkit-font-smoothing': 'antialiased',\n '-moz-osx-font-smoothing': 'grayscale',\n },\n 'body': {\n minHeight: '100vh',\n lineHeight: '1.5',\n },\n 'table': {\n borderCollapse: 'collapse',\n width: '100%',\n },\n 'table, th, td': {\n border: `1px solid ${theme('colors.gold.muted')}`,\n },\n 'th, td': {\n padding: '0.5rem 0.75rem',\n },\n 'table:hover': {\n boxShadow: theme('boxShadow.glow'),\n },\n 'progress': {\n appearance: 'none',\n '-webkit-appearance': 'none',\n border: `1px solid ${theme('colors.gold.muted')}`,\n borderRadius: '0',\n backgroundColor: theme('colors.charcoal'),\n width: '100%',\n height: '0.5rem',\n },\n 'progress::-webkit-progress-bar': {\n backgroundColor: theme('colors.charcoal'),\n },\n 'progress::-webkit-progress-value': {\n backgroundColor: theme('colors.gold.DEFAULT'),\n },\n 'progress::-moz-progress-bar': {\n backgroundColor: theme('colors.gold.DEFAULT'),\n },\n 'h1, h2, h3, h4, h5, h6': {\n fontFamily: theme('fontFamily.heading'),\n fontWeight: '600',\n letterSpacing: '-0.025em',\n color: theme('colors.white'),\n },\n 'h1': {fontSize: '2.25rem', lineHeight: '1.25'},\n 'h2': {fontSize: '1.875rem', lineHeight: '1.25'},\n 'h3': {fontSize: '1.5rem', lineHeight: '1.375'},\n 'h4': {fontSize: '1.25rem', lineHeight: '1.375'},\n 'h5': {fontSize: '1.125rem', lineHeight: '1.5'},\n 'h6': {fontSize: '1rem', lineHeight: '1.5'},\n 'code, pre, kbd, samp': {\n fontFamily: theme('fontFamily.mono'),\n fontSize: '0.875em',\n },\n 'a': {\n color: theme('colors.gold.DEFAULT'),\n textDecoration: 'none',\n transition: `color ${theme('transitionDuration.fast')} ease-out`,\n },\n 'a:hover': {\n color: theme('colors.gold.light'),\n },\n ':focus-visible': {\n outline: `2px solid ${theme('colors.gold.DEFAULT')}`,\n outlineOffset: '2px',\n },\n '::selection': {\n backgroundColor: theme('colors.gold.DEFAULT'),\n color: theme('colors.obsidian'),\n },\n '::-webkit-scrollbar': {width: '8px', height: '8px'},\n '::-webkit-scrollbar-track': {background: theme('colors.charcoal')},\n '::-webkit-scrollbar-thumb': {\n background: theme('colors.ash'),\n borderRadius: theme('borderRadius.full')\n },\n '::-webkit-scrollbar-thumb:hover': {background: theme('colors.silver')},\n })\n\n // Utility classes\n addUtilities({\n '.text-gradient-gold': {\n background: `linear-gradient(to right, ${theme('colors.gold.DEFAULT')}, ${theme(\n 'colors.gold.light')}, ${theme('colors.gold.DEFAULT')})`,\n '-webkit-background-clip': 'text',\n 'background-clip': 'text',\n color: 'transparent',\n },\n '.glow': {boxShadow: theme('boxShadow.glow')},\n '.glow-sm': {boxShadow: theme('boxShadow.glow-sm')},\n '.glow-lg': {boxShadow: theme('boxShadow.glow-lg')},\n '.scroll-smooth': {\n scrollBehavior: 'smooth',\n '-webkit-overflow-scrolling': 'touch',\n },\n '.scrollbar-hide': {\n '-ms-overflow-style': 'none',\n 'scrollbar-width': 'none',\n '&::-webkit-scrollbar': {display: 'none'},\n },\n '.backdrop-glass': {\n backdropFilter: 'blur(12px)',\n backgroundColor: 'rgba(20, 20, 20, 0.8)',\n },\n '.focus-ring': {\n '&:focus-visible': {\n outline: '2px solid #c9a227',\n outlineOffset: '2px',\n },\n },\n '.line-clamp-2': {\n display: '-webkit-box',\n '-webkit-line-clamp': '2',\n '-webkit-box-orient': 'vertical',\n overflow: 'hidden',\n },\n '.line-clamp-3': {\n display: '-webkit-box',\n '-webkit-line-clamp': '3',\n '-webkit-box-orient': 'vertical',\n overflow: 'hidden',\n },\n '.center-absolute': {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n },\n })\n})\n\nconst preset: Partial<Config> = {\n theme: {\n extend: {\n colors: {\n // Black spectrum\n void: colors.void,\n obsidian: colors.obsidian,\n charcoal: colors.charcoal,\n graphite: colors.graphite,\n slate: colors.slate,\n ash: colors.ash,\n\n // Gold spectrum\n gold: {\n DEFAULT: colors.gold,\n light: colors.goldLight,\n bright: colors.goldBright,\n muted: colors.goldMuted,\n pale: colors.goldPale,\n glow: colors.goldGlow,\n },\n\n // Neutrals\n white: colors.white,\n silver: colors.silver,\n zinc: colors.zinc,\n dim: colors.dim,\n\n // Semantic\n success: {\n DEFAULT: colors.success,\n muted: colors.successMuted,\n },\n error: {\n DEFAULT: colors.error,\n muted: colors.errorMuted,\n },\n warning: {\n DEFAULT: colors.warning,\n muted: colors.warningMuted,\n },\n info: {\n DEFAULT: colors.info,\n muted: colors.infoMuted,\n },\n },\n\n fontFamily: {\n heading: typography.fontHeading as unknown as string[],\n body: typography.fontBody as unknown as string[],\n mono: typography.fontMono as unknown as string[],\n },\n\n fontSize: typography.fontSize as any,\n fontWeight: typography.fontWeight as any,\n lineHeight: typography.lineHeight as any,\n letterSpacing: typography.letterSpacing as any,\n\n spacing: spacing as any,\n\n borderRadius: radii as any,\n\n boxShadow: shadows as any,\n\n transitionDuration: duration as any,\n\n transitionTimingFunction: easing as any,\n\n animation: {\n 'fade-in': 'fade-in 200ms ease-out',\n 'fade-out': 'fade-out 150ms ease-in',\n 'slide-in-right': `slide-in-right 300ms ${easing.smooth}`,\n 'slide-out-right': 'slide-out-right 200ms ease-in',\n 'pulse-glow': 'pulse-glow 2s ease-in-out infinite',\n },\n\n keyframes: {\n 'fade-in': {\n '0%': {opacity: '0'},\n '100%': {opacity: '1'},\n },\n 'fade-out': {\n '0%': {opacity: '1'},\n '100%': {opacity: '0'},\n },\n 'slide-in-right': {\n '0%': {transform: 'translateX(100%)', opacity: '0'},\n '100%': {transform: 'translateX(0)', opacity: '1'},\n },\n 'slide-out-right': {\n '0%': {transform: 'translateX(0)', opacity: '1'},\n '100%': {transform: 'translateX(100%)', opacity: '0'},\n },\n 'pulse-glow': {\n '0%, 100%': {boxShadow: '0 0 20px rgba(201, 162, 39, 0.3)'},\n '50%': {boxShadow: '0 0 30px rgba(201, 162, 39, 0.5)'},\n },\n },\n },\n },\n plugins: [aureliusPlugin]\n}\n\nexport default preset"],"mappings":"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","names":[]}
@@ -1,150 +0,0 @@
1
- // src/tokens/colors.ts
2
- var colors = {
3
- // Black spectrum
4
- void: "#000000",
5
- obsidian: "#0a0a0a",
6
- charcoal: "#141414",
7
- graphite: "#1f1f1f",
8
- slate: "#2a2a2a",
9
- ash: "#3d3d3d",
10
- // Gold spectrum
11
- gold: "#c9a227",
12
- goldLight: "#d4b84a",
13
- goldBright: "#e5c84d",
14
- goldMuted: "#8b7355",
15
- goldPale: "#d4c4a8",
16
- goldGlow: "rgba(201, 162, 39, 0.15)",
17
- // Neutrals
18
- white: "#ffffff",
19
- silver: "#a3a3a3",
20
- zinc: "#71717a",
21
- dim: "#52525b",
22
- // Semantic
23
- success: "#22c55e",
24
- successMuted: "#166534",
25
- error: "#dc2626",
26
- errorMuted: "#991b1b",
27
- warning: "#d97706",
28
- warningMuted: "#92400e",
29
- info: "#0ea5e9",
30
- infoMuted: "#0369a1"
31
- };
32
-
33
- // src/tokens/typography.ts
34
- var typography = {
35
- // Headings use Marcellus, a classic serif
36
- fontHeading: ["Marcellus", "serif"],
37
- // Body and UI use Raleway
38
- fontBody: ["Raleway", "system-ui", "sans-serif"],
39
- fontMono: ["JetBrains Mono", "Fira Code", "SF Mono", "monospace"],
40
- fontSize: {
41
- xs: ["0.75rem", { lineHeight: "1rem" }],
42
- sm: ["0.875rem", { lineHeight: "1.25rem" }],
43
- base: ["1rem", { lineHeight: "1.5rem" }],
44
- lg: ["1.125rem", { lineHeight: "1.75rem" }],
45
- xl: ["1.25rem", { lineHeight: "1.75rem" }],
46
- "2xl": ["1.5rem", { lineHeight: "2rem" }],
47
- "3xl": ["1.875rem", { lineHeight: "2.25rem" }],
48
- "4xl": ["2.25rem", { lineHeight: "2.5rem" }],
49
- "5xl": ["3rem", { lineHeight: "1" }],
50
- "6xl": ["3.75rem", { lineHeight: "1" }]
51
- },
52
- fontWeight: {
53
- normal: "400",
54
- medium: "500",
55
- semibold: "600",
56
- bold: "700"
57
- },
58
- lineHeight: {
59
- none: "1",
60
- tight: "1.25",
61
- snug: "1.375",
62
- normal: "1.5",
63
- relaxed: "1.625",
64
- loose: "2"
65
- },
66
- letterSpacing: {
67
- tighter: "-0.05em",
68
- tight: "-0.025em",
69
- normal: "0",
70
- wide: "0.025em",
71
- wider: "0.05em",
72
- widest: "0.1em"
73
- }
74
- };
75
-
76
- // src/tokens/spacing.ts
77
- var spacing = {
78
- px: "1px",
79
- 0: "0",
80
- 0.5: "0.125rem",
81
- 1: "0.25rem",
82
- 1.5: "0.375rem",
83
- 2: "0.5rem",
84
- 2.5: "0.625rem",
85
- 3: "0.75rem",
86
- 3.5: "0.875rem",
87
- 4: "1rem",
88
- 5: "1.25rem",
89
- 6: "1.5rem",
90
- 7: "1.75rem",
91
- 8: "2rem",
92
- 9: "2.25rem",
93
- 10: "2.5rem",
94
- 11: "2.75rem",
95
- 12: "3rem",
96
- 14: "3.5rem",
97
- 16: "4rem",
98
- 20: "5rem",
99
- 24: "6rem",
100
- 28: "7rem",
101
- 32: "8rem"
102
- };
103
-
104
- // src/tokens/shadows.ts
105
- var shadows = {
106
- sm: "0 1px 2px 0 rgba(0, 0, 0, 0.4)",
107
- md: "0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -2px rgba(0, 0, 0, 0.3)",
108
- lg: "0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -4px rgba(0, 0, 0, 0.3)",
109
- xl: "0 20px 25px -5px rgba(0, 0, 0, 0.4), 0 8px 10px -6px rgba(0, 0, 0, 0.3)",
110
- "2xl": "0 25px 50px -12px rgba(0, 0, 0, 0.5)",
111
- glow: "0 0 20px rgba(201, 162, 39, 0.3)",
112
- "glow-sm": "0 0 10px rgba(201, 162, 39, 0.2)",
113
- "glow-lg": "0 0 40px rgba(201, 162, 39, 0.4)",
114
- inner: "inset 0 2px 4px 0 rgba(0, 0, 0, 0.3)"
115
- };
116
-
117
- // src/tokens/transitions.ts
118
- var duration = {
119
- instant: "75ms",
120
- fast: "150ms",
121
- normal: "200ms",
122
- slow: "300ms",
123
- slower: "500ms"
124
- };
125
- var easing = {
126
- smooth: "cubic-bezier(0.16, 1, 0.3, 1)",
127
- snap: "cubic-bezier(0.5, 0, 0.1, 1)"
128
- };
129
-
130
- // src/tokens/radii.ts
131
- var radii = {
132
- sm: "0.125rem",
133
- md: "0.25rem",
134
- lg: "0.375rem",
135
- xl: "0.5rem",
136
- "2xl": "0.75rem",
137
- "3xl": "1rem",
138
- full: "9999px"
139
- };
140
-
141
- export {
142
- colors,
143
- typography,
144
- spacing,
145
- shadows,
146
- duration,
147
- easing,
148
- radii
149
- };
150
- //# sourceMappingURL=chunk-MDNHT46W.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/tokens/colors.ts","../src/tokens/typography.ts","../src/tokens/spacing.ts","../src/tokens/shadows.ts","../src/tokens/transitions.ts","../src/tokens/radii.ts"],"sourcesContent":["export const colors = {\n // Black spectrum\n void: '#000000',\n obsidian: '#0a0a0a',\n charcoal: '#141414',\n graphite: '#1f1f1f',\n slate: '#2a2a2a',\n ash: '#3d3d3d',\n\n // Gold spectrum\n gold: '#c9a227',\n goldLight: '#d4b84a',\n goldBright: '#e5c84d',\n goldMuted: '#8b7355',\n goldPale: '#d4c4a8',\n goldGlow: 'rgba(201, 162, 39, 0.15)',\n\n // Neutrals\n white: '#ffffff',\n silver: '#a3a3a3',\n zinc: '#71717a',\n dim: '#52525b',\n\n // Semantic\n success: '#22c55e',\n successMuted: '#166534',\n error: '#dc2626',\n errorMuted: '#991b1b',\n warning: '#d97706',\n warningMuted: '#92400e',\n info: '#0ea5e9',\n infoMuted: '#0369a1',\n} as const\n\nexport type ColorToken = keyof typeof colors\n","export const typography = {\n // Headings use Marcellus, a classic serif\n fontHeading: ['Marcellus', 'serif'],\n // Body and UI use Raleway\n fontBody: ['Raleway', 'system-ui', 'sans-serif'],\n fontMono: ['JetBrains Mono', 'Fira Code', 'SF Mono', 'monospace'],\n\n fontSize: {\n xs: ['0.75rem', {lineHeight: '1rem'}],\n sm: ['0.875rem', {lineHeight: '1.25rem'}],\n base: ['1rem', {lineHeight: '1.5rem'}],\n lg: ['1.125rem', {lineHeight: '1.75rem'}],\n xl: ['1.25rem', {lineHeight: '1.75rem'}],\n '2xl': ['1.5rem', {lineHeight: '2rem'}],\n '3xl': ['1.875rem', {lineHeight: '2.25rem'}],\n '4xl': ['2.25rem', {lineHeight: '2.5rem'}],\n '5xl': ['3rem', {lineHeight: '1'}],\n '6xl': ['3.75rem', {lineHeight: '1'}],\n },\n\n fontWeight: {\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n },\n\n lineHeight: {\n none: '1',\n tight: '1.25',\n snug: '1.375',\n normal: '1.5',\n relaxed: '1.625',\n loose: '2',\n },\n\n letterSpacing: {\n tighter: '-0.05em',\n tight: '-0.025em',\n normal: '0',\n wide: '0.025em',\n wider: '0.05em',\n widest: '0.1em',\n },\n} as const\n\nexport type TypographyToken = keyof typeof typography\n","export const spacing = {\n px: '1px',\n 0: '0',\n 0.5: '0.125rem',\n 1: '0.25rem',\n 1.5: '0.375rem',\n 2: '0.5rem',\n 2.5: '0.625rem',\n 3: '0.75rem',\n 3.5: '0.875rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 7: '1.75rem',\n 8: '2rem',\n 9: '2.25rem',\n 10: '2.5rem',\n 11: '2.75rem',\n 12: '3rem',\n 14: '3.5rem',\n 16: '4rem',\n 20: '5rem',\n 24: '6rem',\n 28: '7rem',\n 32: '8rem',\n} as const\n\nexport type SpacingToken = keyof typeof spacing\n","export const shadows = {\n sm: '0 1px 2px 0 rgba(0, 0, 0, 0.4)',\n md: '0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -2px rgba(0, 0, 0, 0.3)',\n lg: '0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -4px rgba(0, 0, 0, 0.3)',\n xl: '0 20px 25px -5px rgba(0, 0, 0, 0.4), 0 8px 10px -6px rgba(0, 0, 0, 0.3)',\n '2xl': '0 25px 50px -12px rgba(0, 0, 0, 0.5)',\n glow: '0 0 20px rgba(201, 162, 39, 0.3)',\n 'glow-sm': '0 0 10px rgba(201, 162, 39, 0.2)',\n 'glow-lg': '0 0 40px rgba(201, 162, 39, 0.4)',\n inner: 'inset 0 2px 4px 0 rgba(0, 0, 0, 0.3)',\n} as const\n\nexport type ShadowToken = keyof typeof shadows\n","export const duration = {\n instant: '75ms',\n fast: '150ms',\n normal: '200ms',\n slow: '300ms',\n slower: '500ms',\n} as const\n\nexport const easing = {\n smooth: 'cubic-bezier(0.16, 1, 0.3, 1)',\n snap: 'cubic-bezier(0.5, 0, 0.1, 1)',\n} as const\n\nexport type DurationToken = keyof typeof duration\nexport type EasingToken = keyof typeof easing\n","export const radii = {\n sm: '0.125rem',\n md: '0.25rem',\n lg: '0.375rem',\n xl: '0.5rem',\n '2xl': '0.75rem',\n '3xl': '1rem',\n full: '9999px',\n} as const\n\nexport type RadiusToken = keyof typeof radii\n"],"mappings":"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","names":[]}
@@ -1,5 +0,0 @@
1
- import { Config } from 'tailwindcss';
2
-
3
- declare const preset: Partial<Config>;
4
-
5
- export { preset as default };
@@ -1,5 +0,0 @@
1
- import { Config } from 'tailwindcss';
2
-
3
- declare const preset: Partial<Config>;
4
-
5
- export { preset as default };