@lukeashford/aurelius 1.0.0 → 1.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 CHANGED
@@ -1,93 +1,169 @@
1
- # Aurelius Design System
2
-
3
- **A cohesive visual language for creative technologists — combining technical sophistication with an
4
- artistic sensibility.**
5
-
6
- [View the Live Demo](https://aurelius.lukeashford.com/)
7
-
8
- ---
9
-
10
- ## The Philosophy
11
-
12
- Aurelius blends technical precision with a cinematic aesthetic, relying on deep blacks, rich golds,
13
- and refined typography to convey stability, trust, and quiet luxury.
14
-
15
- **Core Principles:**
16
-
17
- 1. **Cinematic:** Strict dark mode. No white backgrounds.
18
- 2. **Refined:** Gold (#c9a227) is reserved for primary actions.
19
- 3. **Grounded:** 1px subtle borders (`border-ash`) replace heavy drop shadows.
20
-
21
- **Implementation Strategy:**
22
- We follow a strict hierarchy:
23
-
24
- 1. **React Components** (`<Button />`) *Always prefer these.*
25
- 2. **Component Classes** (`.btn`) — *Fallback for non-React.*
26
- 3. **Utility Classes** (`bg-obsidian`) *For custom layouts.*
27
- 4. **Design Tokens** — *Last resort.*
28
-
29
- ---
30
-
31
- ## AI Agent Support 🤖
32
-
33
- This package is **AI-Optimized**. It includes a machine-readable manifest file that helps AI coding
34
- assistants understand the design system without hallucinating styles.
35
-
36
- **How to Prompt Your Agent:**
37
- > "I have installed `@lukeashford/aurelius`. Before writing any code, read
38
- `node_modules/@lukeashford/aurelius/dist/llms.md`. This file contains the Design Philosophy (
39
- > which you must strictly follow) and the Component API you have available."
40
-
41
- ---
42
-
43
- ## Installation
44
-
45
- ### 1. Install Package
46
-
47
- ```bash
48
- npm install @lukeashford/aurelius
49
- ```
50
-
51
- ### 2. Configure Tailwind
52
-
53
- ```javascript
54
- // tailwind.config.js
55
- const aureliusPreset = require('@lukeashford/aurelius/tailwind.preset')
56
-
57
- module.exports = {
58
- presets: [aureliusPreset],
59
- content: [
60
- './src/**/*.{js,ts,jsx,tsx}',
61
- './node_modules/@lukeashford/aurelius/dist/**/*.{js,mjs}',
62
- ],
63
- }
64
- ```
65
-
66
- ### 3. Import Styles
67
-
68
- ```css
69
- /* In your global CSS */
70
- @import '@lukeashford/aurelius/styles/base.css';
71
- ```
72
-
73
- ---
74
-
75
- ## Quick Start
76
-
77
- ```tsx
78
- import {Button, Card, Input} from '@lukeashford/aurelius'
79
-
80
- export function LoginForm() {
81
- return (
82
- <Card variant="featured" className="p-8 max-w-sm mx-auto">
83
- <h2 className="text-gold text-2xl mb-6">Sign In</h2>
84
- <div className="space-y-4">
85
- <Input placeholder="email@example.com"/>
86
- <Button variant="primary" className="w-full">
87
- Enter the System
88
- </Button>
89
- </div>
90
- </Card>
91
- )
92
- }
93
- ```
1
+ # Aurelius
2
+
3
+ **A dark-mode design system for creative technologists** — combining technical sophistication with a
4
+ cinematic aesthetic.
5
+
6
+ [Live Demo](https://aurelius.lukeashford.com/)
7
+
8
+ ---
9
+
10
+ ## Philosophy
11
+
12
+ Aurelius relies on deep blacks, rich golds, and refined typography to convey stability, trust, and
13
+ quiet luxury.
14
+
15
+ **Core principles:**
16
+
17
+ - **Cinematic:** Strictly dark mode. No white backgrounds.
18
+ - **Refined:** Gold (`#c9a227`) is reserved for primary actions and key highlights.
19
+ - **Grounded:** Subtle 1px borders over heavy drop shadows.
20
+
21
+ **Usage hierarchy:**
22
+
23
+ 1. **React Components** — Use `<Button />`, `<Card />`, etc. whenever possible
24
+ 2. **Tailwind utilities** Build custom layouts with token-based classes (`bg-obsidian`,
25
+ `text-gold`)
26
+ 3. **Design tokens** — Direct access to values as a last resort
27
+
28
+ ---
29
+
30
+ ## AI Agent Optimization 🤖
31
+
32
+ This package includes a machine-readable manifest and ESLint enforcement for AI coding assistants.
33
+
34
+ **Prompt your agent:**
35
+
36
+ > Use the Aurelius design system for this project.
37
+ >
38
+ > 1. Run `npm install @lukeashford/aurelius`
39
+ > 2. Read `node_modules/@lukeashford/aurelius/llms.md` completely before writing any code
40
+ > 3. Follow its setup instructions (Tailwind config, ESLint, fonts)
41
+ > 4. Use only the components and Tailwind classes listed in that file
42
+
43
+ The manifest provides complete setup instructions, so agents can bootstrap a project from scratch
44
+ while staying within design system constraints.
45
+
46
+ [View the manifest](./llms.md)
47
+
48
+ ---
49
+
50
+ ## Quick Start
51
+
52
+ ### 1. Install
53
+
54
+ ```bash
55
+ npm install @lukeashford/aurelius
56
+ npm install -D eslint eslint-plugin-tailwindcss
57
+ ```
58
+
59
+ ### 2. Configure Tailwind
60
+
61
+ ```javascript
62
+ // tailwind.config.js
63
+ const aureliusPreset = require('@lukeashford/aurelius/tailwind.preset')
64
+
65
+ module.exports = {
66
+ presets: [aureliusPreset],
67
+ content: [
68
+ './src/**/*.{js,ts,jsx,tsx}',
69
+ './node_modules/@lukeashford/aurelius/dist/**/*.{js,mjs}',
70
+ ],
71
+ }
72
+ ```
73
+
74
+ ### 3. Configure ESLint
75
+
76
+ This enforces the design system — agents and developers get errors when using arbitrary values or
77
+ non-Aurelius classes.
78
+
79
+ ```javascript
80
+ // eslint.config.js
81
+ import tailwindcss from 'eslint-plugin-tailwindcss';
82
+
83
+ export default [
84
+ {
85
+ plugins: {tailwindcss},
86
+ rules: {
87
+ 'tailwindcss/no-arbitrary-value': 'error',
88
+ 'tailwindcss/no-custom-classname': 'error',
89
+ },
90
+ settings: {
91
+ tailwindcss: {config: './tailwind.config.js'},
92
+ },
93
+ },
94
+ ];
95
+ ```
96
+
97
+ <details>
98
+ <summary>Legacy .eslintrc.js format</summary>
99
+ ```javascript
100
+ module.exports = {
101
+ plugins: ['tailwindcss'],
102
+ rules: {
103
+ 'tailwindcss/no-arbitrary-value': 'error',
104
+ 'tailwindcss/no-custom-classname': 'error',
105
+ },
106
+ settings: {
107
+ tailwindcss: { config: './tailwind.config.js' },
108
+ },
109
+ }
110
+ ```
111
+ </details>
112
+
113
+ ### 4. Update package.json scripts
114
+
115
+ ```json
116
+ {
117
+ "scripts": {
118
+ "lint": "eslint src --max-warnings 0",
119
+ "dev": "npm run lint && vite",
120
+ "build": "npm run lint && vite build"
121
+ }
122
+ }
123
+ ```
124
+
125
+ ### 5. Import fonts and create index.css
126
+
127
+ ```typescript
128
+ // main.tsx
129
+ import '@lukeashford/aurelius/styles/fonts.css'
130
+ import './index.css'
131
+ ```
132
+
133
+ ```css
134
+ /* index.css */
135
+ @tailwind base;
136
+ @tailwind components;
137
+ @tailwind utilities;
138
+ ```
139
+
140
+ ### 6. Use components
141
+
142
+ ```tsx
143
+ import {Button, Card, Input} from '@lukeashford/aurelius'
144
+
145
+ function LoginForm() {
146
+ return (
147
+ <Card variant="featured" className="p-8 max-w-sm mx-auto">
148
+ <h2 className="text-gold text-2xl mb-6">Sign In</h2>
149
+ <Input placeholder="email@example.com"/>
150
+ <Button variant="primary" className="w-full mt-4">
151
+ Enter
152
+ </Button>
153
+ </Card>
154
+ )
155
+ }
156
+ ```
157
+
158
+ ---
159
+
160
+ ## Non-Tailwind Users
161
+
162
+ Import the precompiled CSS instead:
163
+
164
+ ```typescript
165
+ // main.tsx
166
+ import '@lukeashford/aurelius/styles/base.css'
167
+ ```
168
+
169
+ This includes all base styles, utilities, and fonts. Components work identically.
@@ -0,0 +1,243 @@
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
@@ -0,0 +1 @@
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":[]}
@@ -147,4 +147,4 @@ export {
147
147
  easing,
148
148
  radii
149
149
  };
150
- //# sourceMappingURL=chunk-OPJXDW4C.mjs.map
150
+ //# sourceMappingURL=chunk-MDNHT46W.mjs.map
@@ -0,0 +1 @@
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":";AAAO,IAAM,SAAS;AAAA;AAAA,EAEpB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,OAAO;AAAA,EACP,KAAK;AAAA;AAAA,EAGL,MAAM;AAAA,EACN,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,UAAU;AAAA,EACV,UAAU;AAAA;AAAA,EAGV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,KAAK;AAAA;AAAA,EAGL,SAAS;AAAA,EACT,cAAc;AAAA,EACd,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,cAAc;AAAA,EACd,MAAM;AAAA,EACN,WAAW;AACb;;;AChCO,IAAM,aAAa;AAAA;AAAA,EAExB,aAAa,CAAC,aAAa,OAAO;AAAA;AAAA,EAElC,UAAU,CAAC,WAAW,aAAa,YAAY;AAAA,EAC/C,UAAU,CAAC,kBAAkB,aAAa,WAAW,WAAW;AAAA,EAEhE,UAAU;AAAA,IACR,IAAI,CAAC,WAAW,EAAC,YAAY,OAAM,CAAC;AAAA,IACpC,IAAI,CAAC,YAAY,EAAC,YAAY,UAAS,CAAC;AAAA,IACxC,MAAM,CAAC,QAAQ,EAAC,YAAY,SAAQ,CAAC;AAAA,IACrC,IAAI,CAAC,YAAY,EAAC,YAAY,UAAS,CAAC;AAAA,IACxC,IAAI,CAAC,WAAW,EAAC,YAAY,UAAS,CAAC;AAAA,IACvC,OAAO,CAAC,UAAU,EAAC,YAAY,OAAM,CAAC;AAAA,IACtC,OAAO,CAAC,YAAY,EAAC,YAAY,UAAS,CAAC;AAAA,IAC3C,OAAO,CAAC,WAAW,EAAC,YAAY,SAAQ,CAAC;AAAA,IACzC,OAAO,CAAC,QAAQ,EAAC,YAAY,IAAG,CAAC;AAAA,IACjC,OAAO,CAAC,WAAW,EAAC,YAAY,IAAG,CAAC;AAAA,EACtC;AAAA,EAEA,YAAY;AAAA,IACV,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AAAA,EAEA,YAAY;AAAA,IACV,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,EACT;AAAA,EAEA,eAAe;AAAA,IACb,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AACF;;;AC5CO,IAAM,UAAU;AAAA,EACrB,IAAI;AAAA,EACJ,GAAG;AAAA,EACH,KAAK;AAAA,EACL,GAAG;AAAA,EACH,KAAK;AAAA,EACL,GAAG;AAAA,EACH,KAAK;AAAA,EACL,GAAG;AAAA,EACH,KAAK;AAAA,EACL,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;;;ACzBO,IAAM,UAAU;AAAA,EACrB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,WAAW;AAAA,EACX,WAAW;AAAA,EACX,OAAO;AACT;;;ACVO,IAAM,WAAW;AAAA,EACtB,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,QAAQ;AACV;AAEO,IAAM,SAAS;AAAA,EACpB,QAAQ;AAAA,EACR,MAAM;AACR;;;ACXO,IAAM,QAAQ;AAAA,EACnB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AACR;","names":[]}