heraspec 0.1.12 → 0.1.14

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.
Files changed (129) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +188 -103
  3. package/bin/heraspec.js +4805 -1122
  4. package/bin/heraspec.js.map +4 -4
  5. package/dist/core/templates/skills/CHANGELOG.md +117 -117
  6. package/dist/core/templates/skills/README-template.md +58 -58
  7. package/dist/core/templates/skills/README.md +38 -38
  8. package/dist/core/templates/skills/content-optimization-skill.md +104 -104
  9. package/dist/core/templates/skills/data/design-systems.csv +54 -0
  10. package/dist/core/templates/skills/data/pages-proposed.csv +21 -21
  11. package/dist/core/templates/skills/data/pages.csv +9 -9
  12. package/dist/core/templates/skills/data/typography.csv +57 -57
  13. package/dist/core/templates/skills/deploy-documentation-skill.md +408 -0
  14. package/dist/core/templates/skills/design-system-skill.md +176 -0
  15. package/dist/core/templates/skills/documents/templates/documentation-landing-page.html +63 -63
  16. package/dist/core/templates/skills/documents/templates/documentation.html +49 -49
  17. package/dist/core/templates/skills/documents/templates/landing-script.js +38 -38
  18. package/dist/core/templates/skills/documents/templates/landing-style.css +158 -158
  19. package/dist/core/templates/skills/documents/templates/script.js +56 -56
  20. package/dist/core/templates/skills/documents/templates/style.css +155 -155
  21. package/dist/core/templates/skills/documents/templates/technical-doc-template.md +16 -16
  22. package/dist/core/templates/skills/documents/templates/user-guide-template.md +16 -16
  23. package/dist/core/templates/skills/documents-skill.md +104 -104
  24. package/dist/core/templates/skills/e2e-test-skill.md +119 -119
  25. package/dist/core/templates/skills/git-embed-skill.md +57 -0
  26. package/dist/core/templates/skills/integration-test-skill.md +118 -118
  27. package/dist/core/templates/skills/knowledge/README.md +63 -0
  28. package/dist/core/templates/skills/knowledge/design-systems/airbnb/DESIGN.md +246 -0
  29. package/dist/core/templates/skills/knowledge/design-systems/airtable/DESIGN.md +89 -0
  30. package/dist/core/templates/skills/knowledge/design-systems/apple/DESIGN.md +313 -0
  31. package/dist/core/templates/skills/knowledge/design-systems/bmw/DESIGN.md +180 -0
  32. package/dist/core/templates/skills/knowledge/design-systems/cal/DESIGN.md +259 -0
  33. package/dist/core/templates/skills/knowledge/design-systems/claude/DESIGN.md +312 -0
  34. package/dist/core/templates/skills/knowledge/design-systems/clay/DESIGN.md +304 -0
  35. package/dist/core/templates/skills/knowledge/design-systems/clickhouse/DESIGN.md +281 -0
  36. package/dist/core/templates/skills/knowledge/design-systems/cohere/DESIGN.md +266 -0
  37. package/dist/core/templates/skills/knowledge/design-systems/coinbase/DESIGN.md +129 -0
  38. package/dist/core/templates/skills/knowledge/design-systems/composio/DESIGN.md +307 -0
  39. package/dist/core/templates/skills/knowledge/design-systems/cursor/DESIGN.md +309 -0
  40. package/dist/core/templates/skills/knowledge/design-systems/elevenlabs/DESIGN.md +265 -0
  41. package/dist/core/templates/skills/knowledge/design-systems/expo/DESIGN.md +281 -0
  42. package/dist/core/templates/skills/knowledge/design-systems/figma/DESIGN.md +220 -0
  43. package/dist/core/templates/skills/knowledge/design-systems/framer/DESIGN.md +246 -0
  44. package/dist/core/templates/skills/knowledge/design-systems/hashicorp/DESIGN.md +278 -0
  45. package/dist/core/templates/skills/knowledge/design-systems/ibm/DESIGN.md +332 -0
  46. package/dist/core/templates/skills/knowledge/design-systems/index.json +72 -0
  47. package/dist/core/templates/skills/knowledge/design-systems/intercom/DESIGN.md +146 -0
  48. package/dist/core/templates/skills/knowledge/design-systems/kraken/DESIGN.md +125 -0
  49. package/dist/core/templates/skills/knowledge/design-systems/linear.app/DESIGN.md +367 -0
  50. package/dist/core/templates/skills/knowledge/design-systems/lovable/DESIGN.md +298 -0
  51. package/dist/core/templates/skills/knowledge/design-systems/minimax/DESIGN.md +257 -0
  52. package/dist/core/templates/skills/knowledge/design-systems/mintlify/DESIGN.md +326 -0
  53. package/dist/core/templates/skills/knowledge/design-systems/miro/DESIGN.md +108 -0
  54. package/dist/core/templates/skills/knowledge/design-systems/mistral.ai/DESIGN.md +261 -0
  55. package/dist/core/templates/skills/knowledge/design-systems/mongodb/DESIGN.md +266 -0
  56. package/dist/core/templates/skills/knowledge/design-systems/notion/DESIGN.md +309 -0
  57. package/dist/core/templates/skills/knowledge/design-systems/nvidia/DESIGN.md +293 -0
  58. package/dist/core/templates/skills/knowledge/design-systems/ollama/DESIGN.md +267 -0
  59. package/dist/core/templates/skills/knowledge/design-systems/opencode.ai/DESIGN.md +281 -0
  60. package/dist/core/templates/skills/knowledge/design-systems/pinterest/DESIGN.md +230 -0
  61. package/dist/core/templates/skills/knowledge/design-systems/posthog/DESIGN.md +256 -0
  62. package/dist/core/templates/skills/knowledge/design-systems/raycast/DESIGN.md +268 -0
  63. package/dist/core/templates/skills/knowledge/design-systems/replicate/DESIGN.md +261 -0
  64. package/dist/core/templates/skills/knowledge/design-systems/resend/DESIGN.md +303 -0
  65. package/dist/core/templates/skills/knowledge/design-systems/revolut/DESIGN.md +185 -0
  66. package/dist/core/templates/skills/knowledge/design-systems/runwayml/DESIGN.md +244 -0
  67. package/dist/core/templates/skills/knowledge/design-systems/sanity/DESIGN.md +357 -0
  68. package/dist/core/templates/skills/knowledge/design-systems/sentry/DESIGN.md +262 -0
  69. package/dist/core/templates/skills/knowledge/design-systems/spacex/DESIGN.md +194 -0
  70. package/dist/core/templates/skills/knowledge/design-systems/spotify/DESIGN.md +246 -0
  71. package/dist/core/templates/skills/knowledge/design-systems/stripe/DESIGN.md +322 -0
  72. package/dist/core/templates/skills/knowledge/design-systems/supabase/DESIGN.md +255 -0
  73. package/dist/core/templates/skills/knowledge/design-systems/superhuman/DESIGN.md +252 -0
  74. package/dist/core/templates/skills/knowledge/design-systems/together.ai/DESIGN.md +263 -0
  75. package/dist/core/templates/skills/knowledge/design-systems/uber/DESIGN.md +295 -0
  76. package/dist/core/templates/skills/knowledge/design-systems/vercel/DESIGN.md +310 -0
  77. package/dist/core/templates/skills/knowledge/design-systems/voltagent/DESIGN.md +323 -0
  78. package/dist/core/templates/skills/knowledge/design-systems/warp/DESIGN.md +253 -0
  79. package/dist/core/templates/skills/knowledge/design-systems/webflow/DESIGN.md +92 -0
  80. package/dist/core/templates/skills/knowledge/design-systems/wise/DESIGN.md +173 -0
  81. package/dist/core/templates/skills/knowledge/design-systems/x.ai/DESIGN.md +257 -0
  82. package/dist/core/templates/skills/knowledge/design-systems/zapier/DESIGN.md +328 -0
  83. package/dist/core/templates/skills/knowledge/frameworks/php/codeigniter/rise-cms/profile.json +27 -0
  84. package/dist/core/templates/skills/knowledge/frameworks/php/codeigniter/rise-cms/structure.md +137 -0
  85. package/dist/core/templates/skills/knowledge/frameworks/php/laravel/botble/profile.json +39 -0
  86. package/dist/core/templates/skills/knowledge/frameworks/php/laravel/botble/structure.md +208 -0
  87. package/dist/core/templates/skills/knowledge/frameworks/php/wordpress/core/profile.json +51 -0
  88. package/dist/core/templates/skills/knowledge/frameworks/php/wordpress/core/structure.md +369 -0
  89. package/dist/core/templates/skills/knowledge/index.json +65 -0
  90. package/dist/core/templates/skills/module-codebase-skill.md +110 -110
  91. package/dist/core/templates/skills/plugin-directory-skill.md +396 -396
  92. package/dist/core/templates/skills/project-memory-skill.md +222 -0
  93. package/dist/core/templates/skills/project-memory-skill.vi.md +223 -0
  94. package/dist/core/templates/skills/scripts/CODE_EXPLANATION.md +394 -394
  95. package/dist/core/templates/skills/scripts/SEARCH_ALGORITHMS_COMPARISON.md +421 -421
  96. package/dist/core/templates/skills/scripts/SEARCH_MODES_GUIDE.md +238 -238
  97. package/dist/core/templates/skills/scripts/__pycache__/core.cpython-311.pyc +0 -0
  98. package/dist/core/templates/skills/scripts/core.py +391 -385
  99. package/dist/core/templates/skills/scripts/search.py +1 -1
  100. package/dist/core/templates/skills/smart-explore-skill.md +141 -0
  101. package/dist/core/templates/skills/sourcecode-analyzer-skill.md +210 -0
  102. package/dist/core/templates/skills/sourcecode-analyzer-skill.vi.md +210 -0
  103. package/dist/core/templates/skills/suggestion-skill.md +118 -118
  104. package/dist/core/templates/skills/templates/accessibility-checklist.md +40 -40
  105. package/dist/core/templates/skills/templates/example-prompt-full-theme.md +333 -333
  106. package/dist/core/templates/skills/templates/page-types-guide.md +338 -338
  107. package/dist/core/templates/skills/templates/pages-proposed-summary.md +273 -273
  108. package/dist/core/templates/skills/templates/pre-delivery-checklist.md +42 -42
  109. package/dist/core/templates/skills/templates/prompt-template-full-theme.md +313 -313
  110. package/dist/core/templates/skills/templates/responsive-design.md +40 -40
  111. package/dist/core/templates/skills/ui-ux-skill.md +595 -584
  112. package/dist/core/templates/skills/unit-test-skill.md +111 -111
  113. package/dist/core/templates/skills/ux-element/templates/Controller.php +50 -50
  114. package/dist/core/templates/skills/ux-element/templates/Shortcode.php +23 -23
  115. package/dist/core/templates/skills/ux-element/templates/Template.html +20 -20
  116. package/dist/core/templates/skills/ux-element/templates/Thumbnail.svg +8 -8
  117. package/dist/core/templates/skills/ux-element/templates/View.php +21 -21
  118. package/dist/core/templates/skills/ux-element-skill.md +83 -83
  119. package/dist/core/templates/skills/wordpress-plugin-check-skill.md +151 -76
  120. package/dist/core/templates/skills/wordpress-plugin-standard/templates/admin-dashboard.php +47 -47
  121. package/dist/core/templates/skills/wordpress-plugin-standard/templates/admin-settings.php +60 -60
  122. package/dist/core/templates/skills/wordpress-plugin-standard/templates/assets/admin-css.css +22 -22
  123. package/dist/core/templates/skills/wordpress-plugin-standard/templates/assets/admin-js.js +15 -15
  124. package/dist/core/templates/skills/wordpress-plugin-standard/templates/plugin-main.php +169 -169
  125. package/dist/core/templates/skills/wordpress-plugin-standard/templates/readme.txt +41 -41
  126. package/dist/core/templates/skills/wordpress-plugin-standard/templates/uninstall.php +21 -21
  127. package/dist/core/templates/skills/wordpress-plugin-standard-skill.md +100 -100
  128. package/dist/index.js +4068 -278
  129. package/package.json +75 -72
@@ -1,63 +1,63 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>{{title}} - Welcome</title>
7
- <link rel="stylesheet" href="landing-style.css">
8
- <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;800&display=swap" rel="stylesheet">
9
- </head>
10
- <body>
11
- <nav class="navbar">
12
- <div class="container">
13
- <span class="logo">{{title}}</span>
14
- <div class="nav-links">
15
- <a href="#features">Features</a>
16
- <a href="documentation.html" class="btn-primary">View Docs</a>
17
- </div>
18
- </div>
19
- </nav>
20
-
21
- <header class="hero">
22
- <div class="container hero-content">
23
- <!-- AI: Design a unique Hero section with high-impact text -->
24
- <h1 class="fade-in">{{title}}</h1>
25
- <p class="fade-in delay-1">{{description}}</p>
26
- <div class="hero-btns fade-in delay-2">
27
- <a href="documentation.html" class="btn-primary btn-lg">Get Started</a>
28
- <a href="#features" class="btn-outline btn-lg">Learn More</a>
29
- </div>
30
- </div>
31
- </header>
32
-
33
- <!-- AI: Construct a Problem vs Solution / Value Prop section here if needed -->
34
-
35
- <section id="features" class="features">
36
- <div class="container">
37
- <h2 class="section-title">Why Choose {{title}}?</h2>
38
- <!-- AI: Dynamically create feature showcase based on project specs -->
39
- <div class="feature-grid">
40
- {{feature_cards}}
41
- </div>
42
- </div>
43
- </section>
44
-
45
- <!-- AI: Add a 'How it Works' or 'Gallery' section here -->
46
-
47
- <section class="cta">
48
- <div class="container">
49
- <h2>Ready to dive in?</h2>
50
- <p>Explore the full potential and detailed implementation guides.</p>
51
- <a href="documentation.html" class="btn-primary btn-lg">View Detailed Documentation</a>
52
- </div>
53
- </section>
54
-
55
- <footer class="footer">
56
- <div class="container">
57
- <p>&copy; {{year}} {{author|default:"HeraSpec"}}. Built for excellence.</p>
58
- </div>
59
- </footer>
60
-
61
- <script src="landing-script.js"></script>
62
- </body>
63
- </html>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>{{title}} - Welcome</title>
7
+ <link rel="stylesheet" href="landing-style.css">
8
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;800&display=swap" rel="stylesheet">
9
+ </head>
10
+ <body>
11
+ <nav class="navbar">
12
+ <div class="container">
13
+ <span class="logo">{{title}}</span>
14
+ <div class="nav-links">
15
+ <a href="#features">Features</a>
16
+ <a href="documentation.html" class="btn-primary">View Docs</a>
17
+ </div>
18
+ </div>
19
+ </nav>
20
+
21
+ <header class="hero">
22
+ <div class="container hero-content">
23
+ <!-- AI: Design a unique Hero section with high-impact text -->
24
+ <h1 class="fade-in">{{title}}</h1>
25
+ <p class="fade-in delay-1">{{description}}</p>
26
+ <div class="hero-btns fade-in delay-2">
27
+ <a href="documentation.html" class="btn-primary btn-lg">Get Started</a>
28
+ <a href="#features" class="btn-outline btn-lg">Learn More</a>
29
+ </div>
30
+ </div>
31
+ </header>
32
+
33
+ <!-- AI: Construct a Problem vs Solution / Value Prop section here if needed -->
34
+
35
+ <section id="features" class="features">
36
+ <div class="container">
37
+ <h2 class="section-title">Why Choose {{title}}?</h2>
38
+ <!-- AI: Dynamically create feature showcase based on project specs -->
39
+ <div class="feature-grid">
40
+ {{feature_cards}}
41
+ </div>
42
+ </div>
43
+ </section>
44
+
45
+ <!-- AI: Add a 'How it Works' or 'Gallery' section here -->
46
+
47
+ <section class="cta">
48
+ <div class="container">
49
+ <h2>Ready to dive in?</h2>
50
+ <p>Explore the full potential and detailed implementation guides.</p>
51
+ <a href="documentation.html" class="btn-primary btn-lg">View Detailed Documentation</a>
52
+ </div>
53
+ </section>
54
+
55
+ <footer class="footer">
56
+ <div class="container">
57
+ <p>&copy; {{year}} {{author|default:"HeraSpec"}}. Built for excellence.</p>
58
+ </div>
59
+ </footer>
60
+
61
+ <script src="landing-script.js"></script>
62
+ </body>
63
+ </html>
@@ -1,49 +1,49 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>{{title}} - Documentation</title>
7
- <link rel="stylesheet" href="style.css">
8
- </head>
9
- <body>
10
- <div class="wrapper">
11
- <!-- Sidebar -->
12
- <nav id="sidebar" class="sidebar">
13
- <div class="sidebar-header">
14
- <h3>{{title}}</h3>
15
- </div>
16
- <ul class="list-unstyled components">
17
- {{navigation_items}}
18
- </ul>
19
- </nav>
20
-
21
- <!-- Page Content -->
22
- <div id="content" class="content">
23
- <header>
24
- <button type="button" id="sidebarCollapse" class="btn btn-info">
25
- <span>Toggle Sidebar</span>
26
- </button>
27
- </header>
28
-
29
- <div class="main-content">
30
- <!-- AI: Dynamically generate these sections based on heraspec/specs/ -->
31
- <!-- 1. Quick Start -->
32
- <!-- 2. System Requirements -->
33
- <!-- 3. Installation & Setup -->
34
- <!-- 4. Configuration -->
35
- <!-- 5. Core Features Showcase -->
36
- <!-- 6. Technical Reference (API/Hooks) -->
37
- <!-- 7. Troubleshooting & FAQ -->
38
- {{main_content}}
39
- </div>
40
-
41
- <footer>
42
- <p>&copy; {{year}} {{author|default:"HeraSpec"}}. All rights reserved.</p>
43
- </footer>
44
- </div>
45
- </div>
46
-
47
- <script src="script.js"></script>
48
- </body>
49
- </html>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>{{title}} - Documentation</title>
7
+ <link rel="stylesheet" href="style.css">
8
+ </head>
9
+ <body>
10
+ <div class="wrapper">
11
+ <!-- Sidebar -->
12
+ <nav id="sidebar" class="sidebar">
13
+ <div class="sidebar-header">
14
+ <h3>{{title}}</h3>
15
+ </div>
16
+ <ul class="list-unstyled components">
17
+ {{navigation_items}}
18
+ </ul>
19
+ </nav>
20
+
21
+ <!-- Page Content -->
22
+ <div id="content" class="content">
23
+ <header>
24
+ <button type="button" id="sidebarCollapse" class="btn btn-info">
25
+ <span>Toggle Sidebar</span>
26
+ </button>
27
+ </header>
28
+
29
+ <div class="main-content">
30
+ <!-- AI: Dynamically generate these sections based on heraspec/specs/ -->
31
+ <!-- 1. Quick Start -->
32
+ <!-- 2. System Requirements -->
33
+ <!-- 3. Installation & Setup -->
34
+ <!-- 4. Configuration -->
35
+ <!-- 5. Core Features Showcase -->
36
+ <!-- 6. Technical Reference (API/Hooks) -->
37
+ <!-- 7. Troubleshooting & FAQ -->
38
+ {{main_content}}
39
+ </div>
40
+
41
+ <footer>
42
+ <p>&copy; {{year}} {{author|default:"HeraSpec"}}. All rights reserved.</p>
43
+ </footer>
44
+ </div>
45
+ </div>
46
+
47
+ <script src="script.js"></script>
48
+ </body>
49
+ </html>
@@ -1,38 +1,38 @@
1
- document.addEventListener('DOMContentLoaded', () => {
2
- // Smooth scroll for nav links
3
- document.querySelectorAll('a[href^="#"]').forEach(anchor => {
4
- anchor.addEventListener('click', function (e) {
5
- e.preventDefault();
6
- const target = document.querySelector(this.getAttribute('href'));
7
- if (target) {
8
- target.scrollIntoView({
9
- behavior: 'smooth'
10
- });
11
- }
12
- });
13
- });
14
-
15
- // Reveal on scroll
16
- const scrollReveal = () => {
17
- const reveals = document.querySelectorAll('.feature-card');
18
- reveals.forEach(el => {
19
- const windowHeight = window.innerHeight;
20
- const elementTop = el.getBoundingClientRect().top;
21
- const elementVisible = 150;
22
- if (elementTop < windowHeight - elementVisible) {
23
- el.style.opacity = "1";
24
- el.style.transform = "translateY(0)";
25
- }
26
- });
27
- };
28
-
29
- // Initial state for reveal
30
- document.querySelectorAll('.feature-card').forEach(el => {
31
- el.style.opacity = "0";
32
- el.style.transform = "translateY(30px)";
33
- el.style.transition = "all 0.6s ease-out";
34
- });
35
-
36
- window.addEventListener('scroll', scrollReveal);
37
- scrollReveal(); // Run once
38
- });
1
+ document.addEventListener('DOMContentLoaded', () => {
2
+ // Smooth scroll for nav links
3
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
4
+ anchor.addEventListener('click', function (e) {
5
+ e.preventDefault();
6
+ const target = document.querySelector(this.getAttribute('href'));
7
+ if (target) {
8
+ target.scrollIntoView({
9
+ behavior: 'smooth'
10
+ });
11
+ }
12
+ });
13
+ });
14
+
15
+ // Reveal on scroll
16
+ const scrollReveal = () => {
17
+ const reveals = document.querySelectorAll('.feature-card');
18
+ reveals.forEach(el => {
19
+ const windowHeight = window.innerHeight;
20
+ const elementTop = el.getBoundingClientRect().top;
21
+ const elementVisible = 150;
22
+ if (elementTop < windowHeight - elementVisible) {
23
+ el.style.opacity = "1";
24
+ el.style.transform = "translateY(0)";
25
+ }
26
+ });
27
+ };
28
+
29
+ // Initial state for reveal
30
+ document.querySelectorAll('.feature-card').forEach(el => {
31
+ el.style.opacity = "0";
32
+ el.style.transform = "translateY(30px)";
33
+ el.style.transition = "all 0.6s ease-out";
34
+ });
35
+
36
+ window.addEventListener('scroll', scrollReveal);
37
+ scrollReveal(); // Run once
38
+ });
@@ -1,158 +1,158 @@
1
- :root {
2
- --primary: #6366f1;
3
- --primary-hover: #4f46e5;
4
- --text-dark: #111827;
5
- --text-light: #6b7280;
6
- --bg-white: #ffffff;
7
- --bg-gray: #f9fafb;
8
- }
9
-
10
- * { margin: 0; padding: 0; box-sizing: border-box; }
11
-
12
- body {
13
- font-family: 'Inter', sans-serif;
14
- color: var(--text-dark);
15
- line-height: 1.6;
16
- background: var(--bg-white);
17
- overflow-x: hidden;
18
- }
19
-
20
- .container {
21
- max-width: 1200px;
22
- margin: 0 auto;
23
- padding: 0 20px;
24
- }
25
-
26
- /* Navbar */
27
- .navbar {
28
- height: 80px;
29
- display: flex;
30
- align-items: center;
31
- border-bottom: 1px solid #eee;
32
- background: rgba(255,255,255,0.8);
33
- backdrop-filter: blur(10px);
34
- position: sticky;
35
- top: 0;
36
- z-index: 100;
37
- }
38
-
39
- .navbar .container {
40
- display: flex;
41
- justify-content: space-between;
42
- width: 100%;
43
- align-items: center;
44
- }
45
-
46
- .logo { font-weight: 800; font-size: 1.5rem; color: var(--primary); }
47
-
48
- .nav-links a {
49
- text-decoration: none;
50
- color: var(--text-dark);
51
- margin-left: 30px;
52
- font-weight: 600;
53
- transition: 0.3s;
54
- }
55
-
56
- .btn-primary {
57
- background: var(--primary);
58
- color: #fff !important;
59
- padding: 10px 24px;
60
- border-radius: 8px;
61
- }
62
-
63
- .btn-primary:hover { background: var(--primary-hover); }
64
-
65
- /* Hero */
66
- .hero {
67
- padding: 120px 0;
68
- text-align: center;
69
- background: radial-gradient(circle at top right, rgba(99, 102, 241, 0.05), transparent);
70
- }
71
-
72
- .hero h1 {
73
- font-size: 4rem;
74
- font-weight: 800;
75
- margin-bottom: 20px;
76
- letter-spacing: -2px;
77
- }
78
-
79
- .hero p {
80
- font-size: 1.25rem;
81
- color: var(--text-light);
82
- max-width: 700px;
83
- margin: 0 auto 40px;
84
- }
85
-
86
- .hero-btns .btn-lg {
87
- padding: 16px 36px;
88
- font-size: 1.1rem;
89
- display: inline-block;
90
- border-radius: 12px;
91
- text-decoration: none;
92
- margin: 0 10px;
93
- font-weight: 600;
94
- }
95
-
96
- .btn-outline {
97
- border: 2px solid #eee;
98
- color: var(--text-dark);
99
- }
100
-
101
- .btn-outline:hover { border-color: var(--primary); color: var(--primary); }
102
-
103
- /* Features */
104
- .features { padding: 100px 0; background: var(--bg-gray); }
105
-
106
- .section-title {
107
- text-align: center;
108
- font-size: 2.5rem;
109
- margin-bottom: 60px;
110
- }
111
-
112
- .feature-grid {
113
- display: grid;
114
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
115
- gap: 30px;
116
- }
117
-
118
- .feature-card {
119
- background: #fff;
120
- padding: 40px;
121
- border-radius: 20px;
122
- transition: 0.4s;
123
- border: 1px solid #f0f0f0;
124
- }
125
-
126
- .feature-card:hover {
127
- transform: translateY(-10px);
128
- box-shadow: 0 20px 40px rgba(0,0,0,0.05);
129
- }
130
-
131
- .feature-card h3 { margin-bottom: 15px; }
132
-
133
- /* CTA */
134
- .cta {
135
- padding: 100px 0;
136
- text-align: center;
137
- background: var(--text-dark);
138
- color: #fff;
139
- }
140
-
141
- .cta h2 { font-size: 3rem; margin-bottom: 20px; }
142
- .cta p { margin-bottom: 40px; opacity: 0.7; }
143
-
144
- /* Footer */
145
- .footer { padding: 40px 0; border-top: 1px solid #eee; text-align: center; color: var(--text-light); }
146
-
147
- /* Animations */
148
- .fade-in { opacity: 0; transform: translateY(20px); animation: fadeIn 0.8s forwards; }
149
- .delay-1 { animation-delay: 0.2s; }
150
- .delay-2 { animation-delay: 0.4s; }
151
-
152
- @keyframes fadeIn {
153
- to { opacity: 1; transform: translateY(0); }
154
- }
155
-
156
- @media (max-width: 768px) {
157
- .hero h1 { font-size: 2.5rem; }
158
- }
1
+ :root {
2
+ --primary: #6366f1;
3
+ --primary-hover: #4f46e5;
4
+ --text-dark: #111827;
5
+ --text-light: #6b7280;
6
+ --bg-white: #ffffff;
7
+ --bg-gray: #f9fafb;
8
+ }
9
+
10
+ * { margin: 0; padding: 0; box-sizing: border-box; }
11
+
12
+ body {
13
+ font-family: 'Inter', sans-serif;
14
+ color: var(--text-dark);
15
+ line-height: 1.6;
16
+ background: var(--bg-white);
17
+ overflow-x: hidden;
18
+ }
19
+
20
+ .container {
21
+ max-width: 1200px;
22
+ margin: 0 auto;
23
+ padding: 0 20px;
24
+ }
25
+
26
+ /* Navbar */
27
+ .navbar {
28
+ height: 80px;
29
+ display: flex;
30
+ align-items: center;
31
+ border-bottom: 1px solid #eee;
32
+ background: rgba(255,255,255,0.8);
33
+ backdrop-filter: blur(10px);
34
+ position: sticky;
35
+ top: 0;
36
+ z-index: 100;
37
+ }
38
+
39
+ .navbar .container {
40
+ display: flex;
41
+ justify-content: space-between;
42
+ width: 100%;
43
+ align-items: center;
44
+ }
45
+
46
+ .logo { font-weight: 800; font-size: 1.5rem; color: var(--primary); }
47
+
48
+ .nav-links a {
49
+ text-decoration: none;
50
+ color: var(--text-dark);
51
+ margin-left: 30px;
52
+ font-weight: 600;
53
+ transition: 0.3s;
54
+ }
55
+
56
+ .btn-primary {
57
+ background: var(--primary);
58
+ color: #fff !important;
59
+ padding: 10px 24px;
60
+ border-radius: 8px;
61
+ }
62
+
63
+ .btn-primary:hover { background: var(--primary-hover); }
64
+
65
+ /* Hero */
66
+ .hero {
67
+ padding: 120px 0;
68
+ text-align: center;
69
+ background: radial-gradient(circle at top right, rgba(99, 102, 241, 0.05), transparent);
70
+ }
71
+
72
+ .hero h1 {
73
+ font-size: 4rem;
74
+ font-weight: 800;
75
+ margin-bottom: 20px;
76
+ letter-spacing: -2px;
77
+ }
78
+
79
+ .hero p {
80
+ font-size: 1.25rem;
81
+ color: var(--text-light);
82
+ max-width: 700px;
83
+ margin: 0 auto 40px;
84
+ }
85
+
86
+ .hero-btns .btn-lg {
87
+ padding: 16px 36px;
88
+ font-size: 1.1rem;
89
+ display: inline-block;
90
+ border-radius: 12px;
91
+ text-decoration: none;
92
+ margin: 0 10px;
93
+ font-weight: 600;
94
+ }
95
+
96
+ .btn-outline {
97
+ border: 2px solid #eee;
98
+ color: var(--text-dark);
99
+ }
100
+
101
+ .btn-outline:hover { border-color: var(--primary); color: var(--primary); }
102
+
103
+ /* Features */
104
+ .features { padding: 100px 0; background: var(--bg-gray); }
105
+
106
+ .section-title {
107
+ text-align: center;
108
+ font-size: 2.5rem;
109
+ margin-bottom: 60px;
110
+ }
111
+
112
+ .feature-grid {
113
+ display: grid;
114
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
115
+ gap: 30px;
116
+ }
117
+
118
+ .feature-card {
119
+ background: #fff;
120
+ padding: 40px;
121
+ border-radius: 20px;
122
+ transition: 0.4s;
123
+ border: 1px solid #f0f0f0;
124
+ }
125
+
126
+ .feature-card:hover {
127
+ transform: translateY(-10px);
128
+ box-shadow: 0 20px 40px rgba(0,0,0,0.05);
129
+ }
130
+
131
+ .feature-card h3 { margin-bottom: 15px; }
132
+
133
+ /* CTA */
134
+ .cta {
135
+ padding: 100px 0;
136
+ text-align: center;
137
+ background: var(--text-dark);
138
+ color: #fff;
139
+ }
140
+
141
+ .cta h2 { font-size: 3rem; margin-bottom: 20px; }
142
+ .cta p { margin-bottom: 40px; opacity: 0.7; }
143
+
144
+ /* Footer */
145
+ .footer { padding: 40px 0; border-top: 1px solid #eee; text-align: center; color: var(--text-light); }
146
+
147
+ /* Animations */
148
+ .fade-in { opacity: 0; transform: translateY(20px); animation: fadeIn 0.8s forwards; }
149
+ .delay-1 { animation-delay: 0.2s; }
150
+ .delay-2 { animation-delay: 0.4s; }
151
+
152
+ @keyframes fadeIn {
153
+ to { opacity: 1; transform: translateY(0); }
154
+ }
155
+
156
+ @media (max-width: 768px) {
157
+ .hero h1 { font-size: 2.5rem; }
158
+ }