ebade 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.
@@ -0,0 +1,616 @@
1
+ :root {
2
+ --bg: #ffffff;
3
+ --text: #111827;
4
+ --text-dim: #6b7280;
5
+ --primary: #4f46e5;
6
+ --primary-glow: rgba(79, 70, 229, 0.15);
7
+ --accent-emerald: #10b981;
8
+ --accent-blue: #3b82f6;
9
+ --border: rgba(0, 0, 0, 0.05);
10
+ --glass: rgba(255, 255, 255, 0.7);
11
+ --font-mono: "JetBrains Mono", monospace;
12
+ --font-sans: "Outfit", sans-serif;
13
+ }
14
+
15
+ * {
16
+ margin: 0;
17
+ padding: 0;
18
+ box-sizing: border-box;
19
+ -webkit-font-smoothing: antialiased;
20
+ }
21
+
22
+ html {
23
+ scroll-behavior: smooth;
24
+ }
25
+
26
+ body {
27
+ background-color: var(--bg);
28
+ color: var(--text);
29
+ font-family: var(--font-sans);
30
+ overflow-x: hidden;
31
+ }
32
+
33
+ /* Three.js Canvas Fix */
34
+ #canvas-container {
35
+ position: fixed;
36
+ top: 0;
37
+ left: 0;
38
+ width: 100vw;
39
+ height: 100vh;
40
+ z-index: -1;
41
+ pointer-events: none;
42
+ }
43
+
44
+ .bg-glow {
45
+ position: fixed;
46
+ top: 0;
47
+ left: 0;
48
+ width: 100%;
49
+ height: 100%;
50
+ background: radial-gradient(
51
+ circle at 50% 50%,
52
+ var(--primary-glow) 0%,
53
+ transparent 70%
54
+ );
55
+ z-index: -2;
56
+ opacity: 0.5;
57
+ }
58
+
59
+ /* Full Width Navbar */
60
+ .full-nav {
61
+ position: fixed;
62
+ top: 0;
63
+ left: 0;
64
+ width: 100%;
65
+ padding: 1.5rem 3rem;
66
+ display: flex;
67
+ justify-content: space-between;
68
+ align-items: center;
69
+ z-index: 100;
70
+ backdrop-filter: blur(10px);
71
+ border-bottom: 1px solid var(--border);
72
+ background: var(--glass);
73
+ }
74
+
75
+ .logo {
76
+ font-size: 1.5rem;
77
+ font-weight: 900;
78
+ letter-spacing: -1.5px;
79
+ }
80
+
81
+ .logo span {
82
+ color: var(--primary);
83
+ font-weight: 500;
84
+ }
85
+
86
+ .nav-links {
87
+ display: flex;
88
+ align-items: center;
89
+ gap: 2.5rem;
90
+ }
91
+
92
+ .nav-links a {
93
+ text-decoration: none;
94
+ color: var(--text-dim);
95
+ font-size: 0.9rem;
96
+ font-weight: 500;
97
+ transition: color 0.3s;
98
+ }
99
+
100
+ .nav-links a:hover {
101
+ color: var(--primary);
102
+ }
103
+
104
+ .nav-cta {
105
+ background: var(--text);
106
+ color: #fff !important;
107
+ padding: 0.6rem 1.2rem;
108
+ border-radius: 8px;
109
+ }
110
+
111
+ .nav-github {
112
+ display: flex;
113
+ align-items: center;
114
+ gap: 0.5rem;
115
+ padding: 0.3rem 0.6rem;
116
+ border-radius: 6px;
117
+ transition: all 0.2s ease;
118
+ border: 1px solid transparent;
119
+ }
120
+
121
+ .nav-github:hover {
122
+ background: rgba(0, 0, 0, 0.03);
123
+ border-color: rgba(0, 0, 0, 0.05);
124
+ }
125
+
126
+ .nav-github i,
127
+ .nav-github svg {
128
+ width: 14px;
129
+ height: 14px;
130
+ }
131
+
132
+ .star-icon-nav {
133
+ color: #f59e0b;
134
+ fill: #f59e0b; /* Solid star */
135
+ }
136
+
137
+ .star-count {
138
+ font-family: var(--mono);
139
+ font-size: 0.8rem;
140
+ color: var(--text-dim);
141
+ font-weight: 600;
142
+ }
143
+
144
+ /* Hero - Cinematic Scale */
145
+ .hero-full {
146
+ height: 100vh;
147
+ width: 100vw;
148
+ display: flex;
149
+ flex-direction: column;
150
+ justify-content: center;
151
+ align-items: center;
152
+ text-align: center;
153
+ padding: 0 2rem;
154
+ position: relative;
155
+ overflow-x: hidden;
156
+ }
157
+
158
+ .hero-content {
159
+ display: flex;
160
+ flex-direction: column;
161
+ align-items: center;
162
+ justify-content: center;
163
+ z-index: 10;
164
+ max-width: 1200px;
165
+ width: 100%;
166
+ text-align: center;
167
+ }
168
+
169
+ .badge-modern {
170
+ font-family: var(--font-mono);
171
+ font-size: 0.75rem;
172
+ letter-spacing: 2px;
173
+ color: var(--primary);
174
+ margin-bottom: 1.5rem;
175
+ text-transform: uppercase;
176
+ display: flex;
177
+ align-items: center;
178
+ gap: 0.5rem;
179
+ background: var(--primary-glow);
180
+ padding: 0.5rem 1rem;
181
+ border-radius: 100px;
182
+ }
183
+
184
+ .icon-small {
185
+ width: 14px;
186
+ height: 14px;
187
+ }
188
+
189
+ h1 {
190
+ font-size: clamp(3rem, 10vw, 8rem);
191
+ font-weight: 950;
192
+ line-height: 0.9;
193
+ letter-spacing: -0.05em;
194
+ margin-bottom: 2rem;
195
+ }
196
+
197
+ h1 span {
198
+ color: var(--primary);
199
+ }
200
+
201
+ .hero-description {
202
+ max-width: 700px;
203
+ width: 100%;
204
+ font-size: 1.25rem;
205
+ color: var(--text-dim);
206
+ line-height: 1.6;
207
+ margin: 0 auto 3.5rem auto;
208
+ }
209
+
210
+ .ebade-brand {
211
+ font-weight: 800;
212
+ color: var(--primary);
213
+ position: relative;
214
+ display: inline-block;
215
+ }
216
+
217
+ .ebade-brand::after {
218
+ content: "";
219
+ position: absolute;
220
+ bottom: 0;
221
+ left: 0;
222
+ width: 100%;
223
+ height: 4px;
224
+ background: var(--primary-glow);
225
+ z-index: -1;
226
+ }
227
+
228
+ .hero-actions {
229
+ display: flex;
230
+ justify-content: center;
231
+ align-items: center;
232
+ gap: 1.5rem;
233
+ width: 100%;
234
+ }
235
+
236
+ .btn-glow {
237
+ background: var(--primary);
238
+ color: #fff;
239
+ text-decoration: none;
240
+ padding: 1.25rem 2.5rem;
241
+ border-radius: 100px;
242
+ font-weight: 600;
243
+ box-shadow: 0 10px 40px var(--primary-glow);
244
+ transition: all 0.3s;
245
+ }
246
+
247
+ .btn-minimal {
248
+ background: rgba(255, 255, 255, 0.8);
249
+ backdrop-filter: blur(10px);
250
+ border: 1px solid var(--border);
251
+ color: var(--text);
252
+ text-decoration: none;
253
+ padding: 1.25rem 2.5rem;
254
+ border-radius: 100px;
255
+ font-family: var(--font-mono);
256
+ font-size: 0.9rem;
257
+ transition: all 0.3s;
258
+ }
259
+
260
+ .btn-minimal:hover {
261
+ background: rgba(255, 255, 255, 1);
262
+ border-color: var(--primary);
263
+ }
264
+
265
+ .btn-glow:hover {
266
+ transform: translateY(-5px);
267
+ box-shadow: 0 20px 60px var(--primary-glow);
268
+ }
269
+
270
+ .scroll-indicator {
271
+ position: absolute;
272
+ bottom: 3rem;
273
+ left: 3rem;
274
+ display: flex;
275
+ align-items: center;
276
+ gap: 1rem;
277
+ font-family: var(--font-mono);
278
+ font-size: 0.7rem;
279
+ letter-spacing: 2px;
280
+ }
281
+
282
+ .scroll-indicator .line {
283
+ width: 40px;
284
+ height: 1px;
285
+ background: var(--text);
286
+ }
287
+
288
+ /* Sections */
289
+ .section-dark {
290
+ background: #000;
291
+ color: #fff;
292
+ border-radius: 60px 60px 0 0;
293
+ position: relative;
294
+ z-index: 10;
295
+ }
296
+
297
+ .section-container {
298
+ max-width: 1400px;
299
+ margin: 0 auto;
300
+ padding: 8rem 2rem;
301
+ }
302
+
303
+ .section-header {
304
+ text-align: center;
305
+ margin-bottom: 6rem;
306
+ }
307
+
308
+ .badge-accent {
309
+ display: inline-block;
310
+ font-family: var(--font-mono);
311
+ font-size: 0.7rem;
312
+ color: var(--accent-emerald);
313
+ border: 1px solid rgba(16, 185, 129, 0.2);
314
+ padding: 0.4rem 0.8rem;
315
+ border-radius: 100px;
316
+ margin-bottom: 1.5rem;
317
+ letter-spacing: 1px;
318
+ background: rgba(16, 185, 129, 0.05);
319
+ }
320
+
321
+ .section-header h2 {
322
+ font-size: 4rem;
323
+ font-weight: 900;
324
+ letter-spacing: -2px;
325
+ margin-bottom: 1.5rem;
326
+ }
327
+
328
+ .section-header p {
329
+ color: rgba(255, 255, 255, 0.5);
330
+ font-size: 1.2rem;
331
+ max-width: 600px;
332
+ margin: 0 auto;
333
+ }
334
+
335
+ /* Comparison Wrapper */
336
+ .comparison-modern {
337
+ display: flex;
338
+ align-items: center;
339
+ gap: 4rem;
340
+ margin-top: 4rem;
341
+ }
342
+
343
+ .code-card {
344
+ flex: 1;
345
+ background: #0d1117;
346
+ padding: 0;
347
+ border-radius: 16px;
348
+ position: relative;
349
+ border: 1px solid rgba(255, 255, 255, 0.1);
350
+ overflow: hidden;
351
+ box-shadow: 0 30px 60px rgba(0, 0, 0, 0.2);
352
+ }
353
+
354
+ .code-card.ebade {
355
+ border-color: rgba(79, 70, 229, 0.3);
356
+ box-shadow: 0 30px 60px rgba(79, 70, 229, 0.1);
357
+ }
358
+
359
+ .card-header {
360
+ display: flex;
361
+ justify-content: space-between;
362
+ align-items: center;
363
+ padding: 1rem 1.5rem;
364
+ background: rgba(255, 255, 255, 0.03);
365
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
366
+ }
367
+
368
+ .window-controls {
369
+ display: flex;
370
+ gap: 8px;
371
+ }
372
+
373
+ .control {
374
+ width: 12px;
375
+ height: 12px;
376
+ border-radius: 50%;
377
+ }
378
+
379
+ .control.close {
380
+ background: #ff5f56;
381
+ }
382
+ .control.minimize {
383
+ background: #ffbd2e;
384
+ }
385
+ .control.maximize {
386
+ background: #27c93f;
387
+ }
388
+
389
+ .card-tag {
390
+ font-family: var(--font-mono);
391
+ font-size: 0.7rem;
392
+ color: rgba(255, 255, 255, 0.4);
393
+ text-transform: none;
394
+ }
395
+
396
+ .code-card pre {
397
+ padding: 2rem;
398
+ margin: 0;
399
+ }
400
+
401
+ /* Syntax Highlighting */
402
+ .keyword {
403
+ color: #ff7b72;
404
+ }
405
+ .string {
406
+ color: #a5d6ff;
407
+ }
408
+ .function {
409
+ color: #d2a8ff;
410
+ }
411
+
412
+ .comparison-modern {
413
+ display: grid;
414
+ grid-template-columns: 1fr auto 1fr;
415
+ align-items: center;
416
+ gap: 2rem;
417
+ margin-top: 4rem;
418
+ }
419
+
420
+ .transform-arrow {
421
+ display: flex;
422
+ justify-content: center;
423
+ align-items: center;
424
+ color: var(--primary);
425
+ flex-shrink: 0;
426
+ position: relative;
427
+ z-index: 5;
428
+ padding: 0 1rem;
429
+ }
430
+
431
+ .transform-arrow i,
432
+ .transform-arrow svg {
433
+ width: 42px;
434
+ height: 42px;
435
+ color: var(--primary);
436
+ display: flex !important;
437
+ justify-content: center;
438
+ align-items: center;
439
+ position: relative;
440
+ z-index: 25;
441
+ animation: pulseZap 3s ease-in-out infinite;
442
+ }
443
+
444
+ .transform-arrow::after {
445
+ content: "";
446
+ position: absolute;
447
+ top: 50%;
448
+ left: -2rem;
449
+ right: -2rem;
450
+ height: 2px;
451
+ background: linear-gradient(
452
+ to right,
453
+ transparent,
454
+ rgba(79, 70, 229, 0.4),
455
+ transparent
456
+ );
457
+ background-size: 200% 100%;
458
+ z-index: 10;
459
+ transform: translateY(-50%);
460
+ animation: boltFlow 4s linear infinite;
461
+ }
462
+
463
+ @keyframes boltFlow {
464
+ 0% {
465
+ background-position: 200% 0;
466
+ }
467
+ 100% {
468
+ background-position: -200% 0;
469
+ }
470
+ }
471
+
472
+ @keyframes pulseZap {
473
+ 0%,
474
+ 100% {
475
+ transform: scale(1);
476
+ filter: drop-shadow(0 0 5px var(--primary-glow));
477
+ }
478
+ 50% {
479
+ transform: scale(1.1);
480
+ filter: drop-shadow(0 0 15px var(--primary-glow));
481
+ }
482
+ }
483
+
484
+ /* Stats Box */
485
+ .stats-box {
486
+ display: flex;
487
+ justify-content: space-between;
488
+ align-items: center;
489
+ background: #fff;
490
+ border: 1px solid var(--border);
491
+ padding: 4rem;
492
+ border-radius: 32px;
493
+ box-shadow: 0 40px 100px rgba(0, 0, 0, 0.05);
494
+ }
495
+
496
+ .stat {
497
+ text-align: center;
498
+ flex: 1;
499
+ }
500
+
501
+ .stat-icon {
502
+ color: var(--accent-emerald);
503
+ margin-bottom: 1rem;
504
+ }
505
+
506
+ .stat-icon svg {
507
+ width: 32px;
508
+ height: 32px;
509
+ }
510
+
511
+ .stat .val {
512
+ display: block;
513
+ font-size: 5rem;
514
+ font-weight: 900;
515
+ letter-spacing: -3px;
516
+ color: var(--text);
517
+ }
518
+
519
+ .stat .label {
520
+ font-size: 0.8rem;
521
+ text-transform: uppercase;
522
+ letter-spacing: 2px;
523
+ color: var(--text-dim);
524
+ font-weight: 600;
525
+ }
526
+
527
+ .stat-divider {
528
+ width: 1px;
529
+ height: 80px;
530
+ background: var(--border);
531
+ }
532
+
533
+ .features-grid-section {
534
+ padding: 8rem 0;
535
+ }
536
+
537
+ .grid-3 {
538
+ display: grid;
539
+ grid-template-columns: repeat(3, 1fr);
540
+ gap: 2rem;
541
+ }
542
+
543
+ .feature-item {
544
+ padding: 3rem;
545
+ background: #fff;
546
+ border: 1px solid var(--border);
547
+ border-radius: 32px;
548
+ transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
549
+ display: flex;
550
+ flex-direction: column;
551
+ }
552
+
553
+ .feature-item:hover {
554
+ transform: translateY(-12px);
555
+ box-shadow: 0 40px 80px rgba(0, 0, 0, 0.06);
556
+ border-color: var(--primary);
557
+ }
558
+
559
+ .feature-item svg {
560
+ color: var(--primary);
561
+ width: 40px;
562
+ height: 40px;
563
+ margin-bottom: 2rem;
564
+ }
565
+
566
+ .feature-item h3 {
567
+ font-size: 1.75rem;
568
+ font-weight: 900;
569
+ margin-bottom: 1.25rem;
570
+ letter-spacing: -1px;
571
+ }
572
+
573
+ .feature-item p {
574
+ color: var(--text-dim);
575
+ line-height: 1.7;
576
+ font-size: 1.1rem;
577
+ }
578
+
579
+ /* Footer */
580
+ .minimal-footer {
581
+ padding: 4rem 3rem;
582
+ border-top: 1px solid var(--border);
583
+ }
584
+
585
+ .footer-content {
586
+ display: flex;
587
+ justify-content: space-between;
588
+ font-family: var(--font-mono);
589
+ font-size: 0.75rem;
590
+ color: var(--text-dim);
591
+ }
592
+
593
+ .socials a {
594
+ margin-left: 2rem;
595
+ text-decoration: none;
596
+ color: var(--text);
597
+ }
598
+
599
+ @media (max-width: 1024px) {
600
+ h1 {
601
+ font-size: 4rem;
602
+ }
603
+ .grid-3 {
604
+ grid-template-columns: 1fr;
605
+ }
606
+ .comparison-modern {
607
+ flex-direction: column;
608
+ }
609
+ .stats-box {
610
+ flex-direction: column;
611
+ gap: 4rem;
612
+ }
613
+ .stat-divider {
614
+ display: none;
615
+ }
616
+ }
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "ebade",
3
+ "version": "0.1.0",
4
+ "description": "ebade - Agent-First Framework. The first framework designed FOR AI agents, readable by humans.",
5
+ "type": "module",
6
+ "main": "cli/scaffold.js",
7
+ "bin": {
8
+ "ebade": "./cli/scaffold.js"
9
+ },
10
+ "scripts": {
11
+ "scaffold": "node cli/scaffold.js",
12
+ "demo": "node cli/scaffold.js examples/ecommerce.ebade.yaml ./output",
13
+ "benchmark": "node benchmarks/token-benchmark.js"
14
+ },
15
+ "keywords": [
16
+ "ai",
17
+ "agent",
18
+ "agent-first",
19
+ "framework",
20
+ "nextjs",
21
+ "scaffold",
22
+ "generator",
23
+ "intent",
24
+ "mcp",
25
+ "llm"
26
+ ],
27
+ "author": "Hasan Kemal Demirci",
28
+ "license": "MIT",
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "git+https://github.com/hasankemaldemirci/ebade.git"
32
+ },
33
+ "homepage": "https://github.com/hasankemaldemirci/ebade#readme",
34
+ "bugs": {
35
+ "url": "https://github.com/hasankemaldemirci/ebade/issues"
36
+ },
37
+ "dependencies": {
38
+ "yaml": "^2.3.4"
39
+ },
40
+ "engines": {
41
+ "node": ">=18.0.0"
42
+ }
43
+ }