@lumaui/angular 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 ADDED
@@ -0,0 +1,165 @@
1
+ # @lumaui/angular
2
+
3
+ Angular components for **Luma UI** - a Neo-Minimal design system built with calm, intentional simplicity.
4
+
5
+ ## Features
6
+
7
+ - Neo-Minimal design philosophy
8
+ - Dark theme support out of the box
9
+ - Type-safe variants with class-variance-authority
10
+ - Angular 19+ standalone components
11
+ - Tailwind CSS v4 compatible
12
+
13
+ ## Installation
14
+
15
+ ```bash
16
+ npm install @lumaui/angular @lumaui/tokens
17
+ ```
18
+
19
+ ### Peer Dependencies
20
+
21
+ These are automatically installed with Angular projects:
22
+
23
+ ```bash
24
+ npm install class-variance-authority
25
+ ```
26
+
27
+ ## Setup
28
+
29
+ ### 1. Import Styles
30
+
31
+ Add to your `styles.css`:
32
+
33
+ ```css
34
+ @import '@lumaui/tokens/styles.css';
35
+
36
+ /* Optional: Dark theme support */
37
+ @import '@lumaui/tokens/styles/dark.css';
38
+ ```
39
+
40
+ ### 2. Configure Tailwind (Required)
41
+
42
+ Add the library to your Tailwind content paths in `tailwind.config.js`:
43
+
44
+ ```js
45
+ export default {
46
+ content: ['./src/**/*.{html,ts}', './node_modules/@lumaui/**/*.{js,ts,mjs}'],
47
+ };
48
+ ```
49
+
50
+ ## Usage
51
+
52
+ ### Button
53
+
54
+ ```typescript
55
+ import { ButtonDirective } from '@lumaui/angular';
56
+
57
+ @Component({
58
+ imports: [ButtonDirective],
59
+ template: `
60
+ <button lumaButton lmVariant="primary" lmSize="md">Click me</button>
61
+ `,
62
+ })
63
+ export class MyComponent {}
64
+ ```
65
+
66
+ **Variants:** `primary` | `outline` | `ghost` | `danger`
67
+
68
+ **Sizes:** `sm` | `md` | `lg` | `full`
69
+
70
+ **Inputs:**
71
+
72
+ | Input | Type | Default | Description |
73
+ | ------------ | ----------------------------------------------- | ----------- | --------------------- |
74
+ | `lmVariant` | `'primary' \| 'outline' \| 'ghost' \| 'danger'` | `'primary'` | Visual style variant |
75
+ | `lmSize` | `'sm' \| 'md' \| 'lg' \| 'full'` | `'md'` | Size variant |
76
+ | `lmDisabled` | `boolean` | `false` | Disabled state |
77
+ | `lmType` | `'button' \| 'submit' \| 'reset'` | `'button'` | Button type attribute |
78
+
79
+ ### Card
80
+
81
+ ```typescript
82
+ import {
83
+ CardComponent,
84
+ CardHeaderDirective,
85
+ CardTitleDirective,
86
+ CardDescriptionDirective,
87
+ CardContentDirective,
88
+ } from '@lumaui/angular';
89
+
90
+ @Component({
91
+ imports: [
92
+ CardComponent,
93
+ CardHeaderDirective,
94
+ CardTitleDirective,
95
+ CardDescriptionDirective,
96
+ CardContentDirective,
97
+ ],
98
+ template: `
99
+ <luma-card lmVariant="default">
100
+ <div lumaCardHeader>
101
+ <h3 lumaCardTitle lmSize="large">Card Title</h3>
102
+ <p lumaCardDescription>Optional description</p>
103
+ </div>
104
+ <div lumaCardContent>Your content here</div>
105
+ </luma-card>
106
+ `,
107
+ })
108
+ export class MyComponent {}
109
+ ```
110
+
111
+ **Card Variants:** `default` | `shadow` | `nested` | `preview`
112
+
113
+ ## Components Reference
114
+
115
+ | Component | Selector | Description |
116
+ | -------------------------- | ------------------------------------- | -------------------- |
117
+ | `ButtonDirective` | `button[lumaButton]`, `a[lumaButton]` | Styled button/link |
118
+ | `CardComponent` | `luma-card` | Card container |
119
+ | `CardHeaderDirective` | `[lumaCardHeader]` | Card header section |
120
+ | `CardTitleDirective` | `[lumaCardTitle]` | Card title |
121
+ | `CardDescriptionDirective` | `[lumaCardDescription]` | Card description |
122
+ | `CardContentDirective` | `[lumaCardContent]` | Card content section |
123
+
124
+ ## Dark Theme
125
+
126
+ Toggle dark theme by adding the `dark` class to your document:
127
+
128
+ ```typescript
129
+ // Enable dark theme
130
+ document.documentElement.classList.add('dark');
131
+
132
+ // Disable dark theme
133
+ document.documentElement.classList.remove('dark');
134
+ ```
135
+
136
+ ## Input Naming Convention
137
+
138
+ All Luma inputs use the `lm` prefix to avoid conflicts with native HTML attributes:
139
+
140
+ | Input | Type | Default | Description |
141
+ | ------------ | ------- | ---------- | --------------------- |
142
+ | `lmVariant` | string | varies | Visual style variant |
143
+ | `lmSize` | string | `'md'` | Size variant |
144
+ | `lmDisabled` | boolean | `false` | Disabled state |
145
+ | `lmType` | string | `'button'` | Button type attribute |
146
+
147
+ ## Design Philosophy
148
+
149
+ Luma follows **Neo-Minimalism** principles:
150
+
151
+ - **Visual Silence** - Elements don't compete for attention
152
+ - **Functional Whitespace** - Space creates hierarchy
153
+ - **Calm Interactions** - Gentle, natural feedback
154
+ - **Silent Accessibility** - Accessibility is inherent, not an afterthought
155
+
156
+ ## Browser Support
157
+
158
+ - Chrome (latest)
159
+ - Firefox (latest)
160
+ - Safari (latest)
161
+ - Edge (latest)
162
+
163
+ ## License
164
+
165
+ MIT
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@lumaui/angular",
3
+ "version": "0.1.0",
4
+ "description": "Angular components for Luma UI - Neo-Minimal design system",
5
+ "type": "module",
6
+ "main": "./src/index.ts",
7
+ "types": "./src/index.ts",
8
+ "exports": {
9
+ ".": "./src/index.ts",
10
+ "./button": "./src/lib/button/index.ts",
11
+ "./card": "./src/lib/card/index.ts"
12
+ },
13
+ "files": [
14
+ "src/",
15
+ "README.md"
16
+ ],
17
+ "peerDependencies": {
18
+ "@angular/common": ">=19.0.0",
19
+ "@angular/core": ">=19.0.0",
20
+ "@lumaui/core": "^0.1.0",
21
+ "class-variance-authority": "^0.7.1"
22
+ },
23
+ "publishConfig": {
24
+ "access": "public"
25
+ },
26
+ "keywords": [
27
+ "angular",
28
+ "components",
29
+ "design-system",
30
+ "neo-minimal",
31
+ "luma",
32
+ "lumaui",
33
+ "tailwind"
34
+ ],
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "https://github.com/pureartisan/lumo.git",
38
+ "directory": "packages/angular"
39
+ },
40
+ "license": "MIT",
41
+ "author": "Luma UI Team",
42
+ "homepage": "https://github.com/pureartisan/lumo#readme",
43
+ "bugs": {
44
+ "url": "https://github.com/pureartisan/lumo/issues"
45
+ }
46
+ }
package/src/index.ts ADDED
@@ -0,0 +1,9 @@
1
+ // Button exports
2
+ export * from './lib/button/button.directive';
3
+
4
+ // Card exports
5
+ export * from './lib/card/card.component';
6
+ export * from './lib/card/card-title.directive';
7
+ export * from './lib/card/card-description.directive';
8
+ export * from './lib/card/card-header.directive';
9
+ export * from './lib/card/card-content.directive';