eidotter 0.16.1 → 0.16.2
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 +241 -250
- package/dist/eidotter.css +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.es.js +134 -134
- package/dist/index.umd.js +2 -2
- package/guidelines/README.md +118 -106
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,250 +1,241 @@
|
|
|
1
|
-
# eiDotter - DOS Terminal Design System
|
|
2
|
-
|
|
3
|
-
A DOS-themed React component library with authentic CGA terminal aesthetics.
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install eidotter
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
<div
|
|
199
|
-
|
|
200
|
-
</div>
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
npm install
|
|
221
|
-
|
|
222
|
-
#
|
|
223
|
-
npm run
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
-
|
|
242
|
-
- **Personal Sovereignty** - Your tools, your way
|
|
243
|
-
|
|
244
|
-
Eidotter brings these values to modern interfaces while maintaining accessibility (WCAG AA compliant) and usability standards. The authentic 16-color CGA palette plus amber phosphor variants creates that terminal feel without sacrificing readability.
|
|
245
|
-
|
|
246
|
-
Part of the **Timeline OS** ecosystem - a vision for personal data management along temporal, thematic, and social axes.
|
|
247
|
-
|
|
248
|
-
## License
|
|
249
|
-
|
|
250
|
-
CC-BY-NC-4.0 (Creative Commons Attribution-NonCommercial 4.0 International)
|
|
1
|
+
# eiDotter - DOS Terminal Design System
|
|
2
|
+
|
|
3
|
+
A DOS-themed React component library with authentic CGA terminal aesthetics.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install eidotter
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
import { Terminal, Button, Alert } from 'eidotter';
|
|
15
|
+
import 'eidotter/styles'; // Component CSS (includes Tailwind utilities)
|
|
16
|
+
import 'eidotter/tokens.css'; // Design token CSS variables (required)
|
|
17
|
+
|
|
18
|
+
function App() {
|
|
19
|
+
return (
|
|
20
|
+
<Terminal title="MY-APP.EXE">
|
|
21
|
+
<Alert type="info" title="Welcome">
|
|
22
|
+
DOS interface loaded successfully.
|
|
23
|
+
</Alert>
|
|
24
|
+
<Button variant="primary">Execute</Button>
|
|
25
|
+
</Terminal>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Setup
|
|
31
|
+
|
|
32
|
+
### Basic (no Tailwind needed)
|
|
33
|
+
|
|
34
|
+
Import the styles and tokens. All component styling is pre-compiled — no build tools required.
|
|
35
|
+
|
|
36
|
+
```tsx
|
|
37
|
+
import 'eidotter/styles'; // Component CSS
|
|
38
|
+
import 'eidotter/tokens.css'; // CSS variable definitions
|
|
39
|
+
|
|
40
|
+
// Optional: import a theme
|
|
41
|
+
import 'eidotter/themes/amber-mono.css';
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### With Tailwind CSS
|
|
45
|
+
|
|
46
|
+
Use eidotter's design tokens as Tailwind utility classes in your own code.
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm install tailwindcss
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
```js
|
|
53
|
+
// tailwind.config.js
|
|
54
|
+
module.exports = {
|
|
55
|
+
presets: [require('eidotter/tailwind.preset')],
|
|
56
|
+
content: ['./src/**/*.{js,jsx,ts,tsx}'],
|
|
57
|
+
};
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```tsx
|
|
61
|
+
// Now use eidotter tokens as Tailwind classes
|
|
62
|
+
<div className="bg-dos-bg-primary text-dos-text-accent font-dos">
|
|
63
|
+
DOS terminal content
|
|
64
|
+
</div>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
For React Aria state variants and animations, use the enhanced preset:
|
|
68
|
+
|
|
69
|
+
```js
|
|
70
|
+
presets: [require('eidotter/tailwind.preset.enhanced')],
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Available Components (v0.16.1)
|
|
74
|
+
|
|
75
|
+
| Component | Description |
|
|
76
|
+
|-----------|-------------|
|
|
77
|
+
| Accordion | Collapsible content sections (Section, AccordionFill) |
|
|
78
|
+
| Alert | Dismissible notifications (info, success, warning, error) |
|
|
79
|
+
| Badge | Status indicators with variant support |
|
|
80
|
+
| Breadcrumb | Navigation path display |
|
|
81
|
+
| Button | DOS-style buttons (primary, secondary, ghost, link) |
|
|
82
|
+
| Card | Content container with variants (elevated, bordered, glow, interactive, minimal, callout) |
|
|
83
|
+
| ChatMessage | Chat message with role-based DOS styling and streaming cursor |
|
|
84
|
+
| ChatHistory | Scrollable message list with auto-scroll and `role="log"` |
|
|
85
|
+
| ChatInput | Multiline textarea with Enter-to-send |
|
|
86
|
+
| ChatContainer | Composes ChatHistory + ChatInput — place inside Terminal for DOS chat |
|
|
87
|
+
| Checkbox | DOS-style checkbox with `[X]` bracket indicator |
|
|
88
|
+
| CommandPrompt | Interactive command-line input with blinking cursor |
|
|
89
|
+
| FilterBar | Multi-select toggle group for faceted filtering |
|
|
90
|
+
| Footer | Site footer with legal links (Impressum + Datenschutz) |
|
|
91
|
+
| Icon | SVG icon system with DOS styling |
|
|
92
|
+
| InlineExpand | Inline disclosure widget for expanding text within prose |
|
|
93
|
+
| Input | Text input with DOS styling and error variant |
|
|
94
|
+
| Modal | Dialog overlay with title bar and close button |
|
|
95
|
+
| Nav | Responsive navigation with desktop/mobile variants |
|
|
96
|
+
| Progress | DOS-style progress bar with block characters |
|
|
97
|
+
| RetroEffects | CRT effects (scanlines, noise, phosphor glow) |
|
|
98
|
+
| Separator | Horizontal/vertical divider |
|
|
99
|
+
| Stat | Key-value display for metrics and statistics |
|
|
100
|
+
| Switch | Toggle switch for on/off states |
|
|
101
|
+
| Tabs | Tabbed interface navigation |
|
|
102
|
+
| Tag | Interactive labels for tags, categories, and filter chips |
|
|
103
|
+
| Terminal | DOS window with title bar and content area |
|
|
104
|
+
| TextScramble | DOS text decode/scramble animation effect |
|
|
105
|
+
| TimelineContainer | Multi-zoom timeline with year/month/day/hour views |
|
|
106
|
+
| TimelineNode | Timeline/stepper axis markers with shapes and glow |
|
|
107
|
+
| Tokens | Design token reference display (Storybook only) |
|
|
108
|
+
|
|
109
|
+
## Component Examples
|
|
110
|
+
|
|
111
|
+
### Terminal
|
|
112
|
+
|
|
113
|
+
```tsx
|
|
114
|
+
<Terminal
|
|
115
|
+
title="PROGRAM.EXE"
|
|
116
|
+
size="medium"
|
|
117
|
+
closeable
|
|
118
|
+
onClose={() => console.log('closed')}
|
|
119
|
+
>
|
|
120
|
+
<p>Terminal content here</p>
|
|
121
|
+
</Terminal>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Button
|
|
125
|
+
|
|
126
|
+
```tsx
|
|
127
|
+
<Button variant="primary" size="md">
|
|
128
|
+
Click Me
|
|
129
|
+
</Button>
|
|
130
|
+
|
|
131
|
+
<Button variant="ghost" loading>
|
|
132
|
+
Processing...
|
|
133
|
+
</Button>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Alert
|
|
137
|
+
|
|
138
|
+
```tsx
|
|
139
|
+
<Alert
|
|
140
|
+
type="warning"
|
|
141
|
+
title="Low Disk Space"
|
|
142
|
+
onClose={() => {}}
|
|
143
|
+
>
|
|
144
|
+
Drive C: has only 640KB remaining.
|
|
145
|
+
</Alert>
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Input
|
|
149
|
+
|
|
150
|
+
```tsx
|
|
151
|
+
<Input
|
|
152
|
+
label="Filename"
|
|
153
|
+
placeholder="Enter filename..."
|
|
154
|
+
/>
|
|
155
|
+
|
|
156
|
+
<Input
|
|
157
|
+
variant="error"
|
|
158
|
+
errorMessage="File not found"
|
|
159
|
+
placeholder="Invalid path"
|
|
160
|
+
/>
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Checkbox
|
|
164
|
+
|
|
165
|
+
```tsx
|
|
166
|
+
<Checkbox label="Remember me" />
|
|
167
|
+
<Checkbox label="Accept terms" checked />
|
|
168
|
+
<Checkbox label="Select all" indeterminate />
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### CommandPrompt
|
|
172
|
+
|
|
173
|
+
```tsx
|
|
174
|
+
<CommandPrompt
|
|
175
|
+
prompt="C:\>"
|
|
176
|
+
onCommand={(cmd) => console.log('Executing:', cmd)}
|
|
177
|
+
autoFocus
|
|
178
|
+
/>
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## Design Tokens
|
|
182
|
+
|
|
183
|
+
The library uses authentic CGA colors via CSS custom properties:
|
|
184
|
+
|
|
185
|
+
```css
|
|
186
|
+
--color-cga-amber: #FFB000; /* Primary accent */
|
|
187
|
+
--color-cga-amber-bright: #FDCA9F;
|
|
188
|
+
--color-cga-amber-dim: #9A5700;
|
|
189
|
+
--color-cga-black: #020003; /* Background */
|
|
190
|
+
/* ... full 16-color CGA palette */
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Theming
|
|
194
|
+
|
|
195
|
+
Apply themes via `data-theme` attribute:
|
|
196
|
+
|
|
197
|
+
```html
|
|
198
|
+
<div data-theme="amber-mono">
|
|
199
|
+
<!-- Amber-on-black terminal aesthetic -->
|
|
200
|
+
</div>
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Available themes: `amber-mono`, `cga-amber`, `cga-mode4-p0`, `cga-mode4-p1`, `cga-mode5`.
|
|
204
|
+
|
|
205
|
+
### Tailwind Token Classes
|
|
206
|
+
|
|
207
|
+
**CGA Colors:** `cga-black`, `cga-blue`, `cga-green`, `cga-cyan`, `cga-red`, `cga-magenta`, `cga-brown`, `cga-light-gray`, `cga-dark-gray`, `cga-bright-blue`, `cga-bright-green`, `cga-bright-cyan`, `cga-bright-red`, `cga-bright-magenta`, `cga-yellow`, `cga-white`, `cga-amber`, `cga-amber-bright`, `cga-amber-dim`
|
|
208
|
+
|
|
209
|
+
**Semantic Colors:** `dos-bg-primary`, `dos-bg-secondary`, `dos-text-primary`, `dos-text-accent`, `dos-border-default`, `dos-border-focus`, `dos-success`, `dos-warning`, `dos-error`, `dos-info`
|
|
210
|
+
|
|
211
|
+
**Typography:** `font-dos`, `text-dos-xs` through `text-dos-4xl`, `leading-dos-tight/normal/loose`
|
|
212
|
+
|
|
213
|
+
**Spacing:** `dos-0` through `dos-16` (4px grid)
|
|
214
|
+
|
|
215
|
+
**Border Radius:** `rounded-dos-none` (0), `rounded-dos-sm` (2px), `rounded-dos-base` (4px max)
|
|
216
|
+
|
|
217
|
+
## Development
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
npm install # Install dependencies
|
|
221
|
+
npm run storybook # Launch Storybook on port 6006
|
|
222
|
+
npm run build # Production build
|
|
223
|
+
npm run test # Run test suite
|
|
224
|
+
npm run lint # ESLint
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## Design Philosophy
|
|
228
|
+
|
|
229
|
+
The DOS aesthetic represents values we've lost in modern software:
|
|
230
|
+
|
|
231
|
+
- **Control** - Every command is explicit and intentional
|
|
232
|
+
- **Clarity** - Information presented without distraction
|
|
233
|
+
- **Personal Sovereignty** - Your tools, your way
|
|
234
|
+
|
|
235
|
+
eiDotter brings these values to modern interfaces while maintaining accessibility (WCAG AA) and usability standards. The authentic 16-color CGA palette plus amber phosphor variants creates that terminal feel without sacrificing readability.
|
|
236
|
+
|
|
237
|
+
Part of the **Timeline OS** ecosystem - a vision for personal data management along temporal, thematic, and social axes.
|
|
238
|
+
|
|
239
|
+
## License
|
|
240
|
+
|
|
241
|
+
CC-BY-NC-4.0 (Creative Commons Attribution-NonCommercial 4.0 International)
|