@lukeashford/aurelius 1.0.1 → 2.0.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/LICENSE +21 -0
- package/README.md +101 -48
- package/dist/index.d.mts +10 -7
- package/dist/index.d.ts +10 -7
- package/dist/index.js +200 -308
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +203 -54
- package/dist/index.mjs.map +1 -1
- package/dist/styles/base.css +7 -536
- package/dist/styles/fonts.css +31 -2
- package/dist/styles/theme.css +368 -0
- package/llms.md +145 -0
- package/package.json +32 -16
- package/dist/chunk-H4EGEZQH.mjs +0 -136
- package/dist/chunk-H4EGEZQH.mjs.map +0 -1
- package/dist/chunk-MDNHT46W.mjs +0 -150
- package/dist/chunk-MDNHT46W.mjs.map +0 -1
- package/dist/llms.md +0 -325
- package/dist/tailwind.preset.d.mts +0 -5
- package/dist/tailwind.preset.d.ts +0 -5
- package/dist/tailwind.preset.js +0 -288
- package/dist/tailwind.preset.js.map +0 -1
- package/dist/tailwind.preset.mjs +0 -8
- package/dist/tailwind.preset.mjs.map +0 -1
- package/dist/tokens/index.d.mts +0 -156
- package/dist/tokens/index.d.ts +0 -156
- package/dist/tokens/index.js +0 -182
- package/dist/tokens/index.js.map +0 -1
- package/dist/tokens/index.mjs +0 -19
- package/dist/tokens/index.mjs.map +0 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 lukeashford
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,93 +1,146 @@
|
|
|
1
|
-
# Aurelius
|
|
1
|
+
# Aurelius
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/@lukeashford/aurelius)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
**A dark-mode design system for creative technologists** — combining technical sophistication with a
|
|
7
|
+
cinematic aesthetic.
|
|
8
|
+
|
|
9
|
+
[Live Demo](https://aurelius.lukeashford.com/)
|
|
7
10
|
|
|
8
11
|
---
|
|
9
12
|
|
|
10
|
-
##
|
|
13
|
+
## Philosophy
|
|
11
14
|
|
|
12
|
-
Aurelius
|
|
13
|
-
|
|
15
|
+
Aurelius relies on deep blacks, rich golds, and refined typography to convey stability, trust, and
|
|
16
|
+
quiet luxury.
|
|
14
17
|
|
|
15
|
-
**Core
|
|
18
|
+
**Core principles:**
|
|
16
19
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
- **Cinematic:** Strictly dark mode. No white backgrounds.
|
|
21
|
+
- **Refined:** Gold (`#c9a227`) is reserved for primary actions and key highlights.
|
|
22
|
+
- **Grounded:** Subtle 1px borders over heavy drop shadows.
|
|
20
23
|
|
|
21
|
-
**
|
|
22
|
-
We follow a strict hierarchy:
|
|
24
|
+
**Usage hierarchy:**
|
|
23
25
|
|
|
24
|
-
1. **React Components**
|
|
25
|
-
2. **
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
1. **React Components** — Use `<Button />`, `<Card />`, etc. whenever possible
|
|
27
|
+
2. **Tailwind utilities** — Build custom layouts with token-based classes (`bg-obsidian`,
|
|
28
|
+
`text-gold`)
|
|
29
|
+
3. **Design tokens** — Direct access to values as a last resort
|
|
28
30
|
|
|
29
31
|
---
|
|
30
32
|
|
|
31
|
-
## AI Agent
|
|
33
|
+
## AI Agent Optimization 🤖
|
|
34
|
+
|
|
35
|
+
This package includes a machine-readable manifest and ESLint enforcement for AI coding assistants.
|
|
36
|
+
|
|
37
|
+
**Prompt your agent:**
|
|
38
|
+
|
|
39
|
+
> Use the Aurelius design system for this project.
|
|
40
|
+
>
|
|
41
|
+
> 1. Run `npm install @lukeashford/aurelius`
|
|
42
|
+
> 2. Read `node_modules/@lukeashford/aurelius/llms.md` completely before writing any code
|
|
43
|
+
> 3. Follow its setup instructions (Tailwind config, ESLint, fonts)
|
|
44
|
+
> 4. Use only the components and Tailwind classes listed in that file
|
|
32
45
|
|
|
33
|
-
|
|
34
|
-
|
|
46
|
+
The manifest provides complete setup instructions, so agents can bootstrap a project from scratch
|
|
47
|
+
while staying within design system constraints.
|
|
35
48
|
|
|
36
|
-
|
|
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."
|
|
49
|
+
[View the manifest](./llms.md)
|
|
40
50
|
|
|
41
51
|
---
|
|
42
52
|
|
|
43
|
-
##
|
|
53
|
+
## Quick Start
|
|
44
54
|
|
|
45
|
-
### 1. Install
|
|
55
|
+
### 1. Install
|
|
46
56
|
|
|
47
57
|
```bash
|
|
48
58
|
npm install @lukeashford/aurelius
|
|
59
|
+
npm install -D eslint eslint-plugin-tailwindcss
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 2. Import the design system
|
|
63
|
+
|
|
64
|
+
Create or update your `index.css`:
|
|
65
|
+
|
|
66
|
+
```css
|
|
67
|
+
/* Import the complete Aurelius design system (includes Tailwind v4, fonts, and theme) */
|
|
68
|
+
@import '@lukeashford/aurelius/styles/base.css';
|
|
69
|
+
|
|
70
|
+
/* Tell Tailwind to scan the Aurelius package for utility classes */
|
|
71
|
+
@source "../node_modules/@lukeashford/aurelius/dist";
|
|
49
72
|
```
|
|
50
73
|
|
|
51
|
-
|
|
74
|
+
Then import it in your entry file:
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
// main.tsx or index.tsx
|
|
78
|
+
import './index.css'
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 3. Configure ESLint
|
|
82
|
+
|
|
83
|
+
This enforces the design system — agents and developers get errors when using arbitrary values or
|
|
84
|
+
non-Aurelius classes.
|
|
52
85
|
|
|
53
86
|
```javascript
|
|
54
|
-
//
|
|
55
|
-
|
|
87
|
+
// eslint.config.js
|
|
88
|
+
import tailwindcss from 'eslint-plugin-tailwindcss';
|
|
89
|
+
|
|
90
|
+
export default [
|
|
91
|
+
{
|
|
92
|
+
plugins: {tailwindcss},
|
|
93
|
+
rules: {
|
|
94
|
+
'tailwindcss/no-arbitrary-value': 'error',
|
|
95
|
+
'tailwindcss/no-custom-classname': 'error',
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
];
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
<details>
|
|
102
|
+
<summary>Legacy .eslintrc.js format</summary>
|
|
56
103
|
|
|
104
|
+
```javascript
|
|
57
105
|
module.exports = {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
'
|
|
61
|
-
'
|
|
62
|
-
|
|
106
|
+
plugins: ['tailwindcss'],
|
|
107
|
+
rules: {
|
|
108
|
+
'tailwindcss/no-arbitrary-value': 'error',
|
|
109
|
+
'tailwindcss/no-custom-classname': 'error',
|
|
110
|
+
},
|
|
63
111
|
}
|
|
64
112
|
```
|
|
65
113
|
|
|
66
|
-
|
|
114
|
+
</details>
|
|
67
115
|
|
|
68
|
-
|
|
69
|
-
/* In your global CSS */
|
|
70
|
-
@import '@lukeashford/aurelius/styles/base.css';
|
|
71
|
-
```
|
|
116
|
+
### 4. Update package.json scripts
|
|
72
117
|
|
|
73
|
-
|
|
118
|
+
```json
|
|
119
|
+
{
|
|
120
|
+
"scripts": {
|
|
121
|
+
"lint": "eslint src --max-warnings 0",
|
|
122
|
+
"dev": "npm run lint && vite",
|
|
123
|
+
"build": "npm run lint && vite build"
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
```
|
|
74
127
|
|
|
75
|
-
|
|
128
|
+
### 5. Use components
|
|
76
129
|
|
|
77
130
|
```tsx
|
|
78
131
|
import {Button, Card, Input} from '@lukeashford/aurelius'
|
|
79
132
|
|
|
80
|
-
|
|
133
|
+
function LoginForm() {
|
|
81
134
|
return (
|
|
82
135
|
<Card variant="featured" className="p-8 max-w-sm mx-auto">
|
|
83
136
|
<h2 className="text-gold text-2xl mb-6">Sign In</h2>
|
|
84
|
-
<
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
</Button>
|
|
89
|
-
</div>
|
|
137
|
+
<Input placeholder="email@example.com"/>
|
|
138
|
+
<Button variant="primary" className="w-full mt-4">
|
|
139
|
+
Enter
|
|
140
|
+
</Button>
|
|
90
141
|
</Card>
|
|
91
142
|
)
|
|
92
143
|
}
|
|
93
144
|
```
|
|
145
|
+
|
|
146
|
+
---
|
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
export { default as tailwindPreset } from './tailwind.preset.mjs';
|
|
2
|
-
export { ColorToken, DurationToken, EasingToken, RadiusToken, ShadowToken, SpacingToken, TypographyToken, colors, duration, easing, radii, shadows, spacing, typography } from './tokens/index.mjs';
|
|
3
1
|
import React from 'react';
|
|
4
|
-
import 'tailwindcss';
|
|
5
2
|
|
|
6
3
|
type ButtonVariant = 'primary' | 'important' | 'elevated' | 'outlined' | 'featured' | 'ghost' | 'danger';
|
|
7
4
|
type ButtonSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
@@ -27,12 +24,13 @@ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
27
24
|
declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
|
|
28
25
|
|
|
29
26
|
type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
27
|
+
type AvatarStatus = 'online' | 'offline' | 'busy';
|
|
30
28
|
interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
31
29
|
src?: string;
|
|
32
30
|
alt?: string;
|
|
33
31
|
name?: string;
|
|
34
32
|
size?: AvatarSize;
|
|
35
|
-
status?:
|
|
33
|
+
status?: AvatarStatus;
|
|
36
34
|
}
|
|
37
35
|
declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLDivElement>>;
|
|
38
36
|
|
|
@@ -42,11 +40,12 @@ interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
|
42
40
|
}
|
|
43
41
|
declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
|
|
44
42
|
|
|
43
|
+
type TooltipSide = 'top' | 'right' | 'bottom' | 'left';
|
|
45
44
|
interface TooltipProps {
|
|
46
45
|
content: React.ReactNode;
|
|
47
46
|
children: React.ReactElement;
|
|
48
47
|
open?: boolean;
|
|
49
|
-
side?:
|
|
48
|
+
side?: TooltipSide;
|
|
50
49
|
}
|
|
51
50
|
declare const Tooltip: React.FC<TooltipProps>;
|
|
52
51
|
|
|
@@ -100,8 +99,9 @@ interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
100
99
|
}
|
|
101
100
|
declare const Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>;
|
|
102
101
|
|
|
102
|
+
type SpinnerSize = 'sm' | 'md' | 'lg';
|
|
103
103
|
interface SpinnerProps extends React.SVGAttributes<SVGElement> {
|
|
104
|
-
size?:
|
|
104
|
+
size?: SpinnerSize;
|
|
105
105
|
}
|
|
106
106
|
declare const Spinner: {
|
|
107
107
|
({ className, size, ...rest }: SpinnerProps): React.JSX.Element;
|
|
@@ -129,8 +129,11 @@ declare const Modal: {
|
|
|
129
129
|
*
|
|
130
130
|
* A cohesive visual language for creative technologists.
|
|
131
131
|
* Combines technical sophistication with artistic sensibility.
|
|
132
|
+
*
|
|
133
|
+
* CSS-first Tailwind v4 design system.
|
|
134
|
+
* Import '@lukeashford/aurelius/styles/base.css' for complete styling.
|
|
132
135
|
*/
|
|
133
136
|
|
|
134
|
-
declare const version = "
|
|
137
|
+
declare const version = "2.0.0";
|
|
135
138
|
|
|
136
139
|
export { Alert, type AlertProps, type AlertVariant, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeVariant, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardProps, type CardVariant, Checkbox, type CheckboxProps, HelperText, type HelperTextProps, Input, type InputProps, Label, type LabelProps, Modal, type ModalProps, Radio, type RadioProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, Switch, type SwitchProps, Textarea, type TextareaProps, Tooltip, type TooltipProps, version };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
export { default as tailwindPreset } from './tailwind.preset.js';
|
|
2
|
-
export { ColorToken, DurationToken, EasingToken, RadiusToken, ShadowToken, SpacingToken, TypographyToken, colors, duration, easing, radii, shadows, spacing, typography } from './tokens/index.js';
|
|
3
1
|
import React from 'react';
|
|
4
|
-
import 'tailwindcss';
|
|
5
2
|
|
|
6
3
|
type ButtonVariant = 'primary' | 'important' | 'elevated' | 'outlined' | 'featured' | 'ghost' | 'danger';
|
|
7
4
|
type ButtonSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
@@ -27,12 +24,13 @@ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
27
24
|
declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
|
|
28
25
|
|
|
29
26
|
type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
27
|
+
type AvatarStatus = 'online' | 'offline' | 'busy';
|
|
30
28
|
interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
31
29
|
src?: string;
|
|
32
30
|
alt?: string;
|
|
33
31
|
name?: string;
|
|
34
32
|
size?: AvatarSize;
|
|
35
|
-
status?:
|
|
33
|
+
status?: AvatarStatus;
|
|
36
34
|
}
|
|
37
35
|
declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLDivElement>>;
|
|
38
36
|
|
|
@@ -42,11 +40,12 @@ interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
|
42
40
|
}
|
|
43
41
|
declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
|
|
44
42
|
|
|
43
|
+
type TooltipSide = 'top' | 'right' | 'bottom' | 'left';
|
|
45
44
|
interface TooltipProps {
|
|
46
45
|
content: React.ReactNode;
|
|
47
46
|
children: React.ReactElement;
|
|
48
47
|
open?: boolean;
|
|
49
|
-
side?:
|
|
48
|
+
side?: TooltipSide;
|
|
50
49
|
}
|
|
51
50
|
declare const Tooltip: React.FC<TooltipProps>;
|
|
52
51
|
|
|
@@ -100,8 +99,9 @@ interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
100
99
|
}
|
|
101
100
|
declare const Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>;
|
|
102
101
|
|
|
102
|
+
type SpinnerSize = 'sm' | 'md' | 'lg';
|
|
103
103
|
interface SpinnerProps extends React.SVGAttributes<SVGElement> {
|
|
104
|
-
size?:
|
|
104
|
+
size?: SpinnerSize;
|
|
105
105
|
}
|
|
106
106
|
declare const Spinner: {
|
|
107
107
|
({ className, size, ...rest }: SpinnerProps): React.JSX.Element;
|
|
@@ -129,8 +129,11 @@ declare const Modal: {
|
|
|
129
129
|
*
|
|
130
130
|
* A cohesive visual language for creative technologists.
|
|
131
131
|
* Combines technical sophistication with artistic sensibility.
|
|
132
|
+
*
|
|
133
|
+
* CSS-first Tailwind v4 design system.
|
|
134
|
+
* Import '@lukeashford/aurelius/styles/base.css' for complete styling.
|
|
132
135
|
*/
|
|
133
136
|
|
|
134
|
-
declare const version = "
|
|
137
|
+
declare const version = "2.0.0";
|
|
135
138
|
|
|
136
139
|
export { Alert, type AlertProps, type AlertVariant, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeVariant, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardProps, type CardVariant, Checkbox, type CheckboxProps, HelperText, type HelperTextProps, Input, type InputProps, Label, type LabelProps, Modal, type ModalProps, Radio, type RadioProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, Switch, type SwitchProps, Textarea, type TextareaProps, Tooltip, type TooltipProps, version };
|