File size: 3,255 Bytes
b8d13e2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
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
import { Check } from 'lucide-react';

export default function Specifications() {
  const specs = [
    { category: 'Mechanical', items: [
      { label: 'Degrees of Freedom', value: '6 DOF' },
      { label: 'Reach', value: '50 cm' },
      { label: 'Payload', value: 'Up to 1 kg' },
      { label: 'Repeatability', value: '±0.5 mm' },
      { label: 'Weight', value: '3.5 kg' },
    ]},
    { category: 'Electrical', items: [
      { label: 'Voltage', value: '12V DC' },
      { label: 'Power Consumption', value: 'Max 50W' },
      { label: 'Communication', value: 'USB-C, WiFi, Bluetooth' },
      { label: 'Sensors', value: 'Position, Temperature, Current' },
    ]},
    { category: 'Software', items: [
      { label: 'Programming', value: 'Python, ROS, C++' },
      { label: 'Control', value: 'Inverse Kinematics' },
      { label: 'API', value: 'REST, WebSocket' },
      { label: 'Compatibility', value: 'Linux, macOS, Windows' },
    ]},
  ];

  const includes = [
    'Reachy Mini Robotic Arm',
    'Power Supply (12V, 5A)',
    'USB-C Cable',
    'Quick Start Guide',
    'Access to Online Documentation',
    'Community Support Access',
  ];

  return (
    <section id="specs" className="py-24">
      <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
        <div className="text-center mb-16">
          <h2 className="text-4xl font-bold mb-4">
            <span className="text-gradient">Technical Specifications</span>
          </h2>
          <p className="text-gray-400 text-lg max-w-2xl mx-auto">
            Detailed specifications to help you integrate Reachy Mini into your projects
          </p>
        </div>

        <div className="grid lg:grid-cols-3 gap-8 mb-16">
          {specs.map((specGroup, index) => (
            <div key={index} className="bg-gray-800/50 border border-gray-700 rounded-2xl p-8">
              <h3 className="text-xl font-semibold mb-6 text-primary-400">{specGroup.category}</h3>
              <div className="space-y-4">
                {specGroup.items.map((item, itemIndex) => (
                  <div key={itemIndex} className="flex justify-between items-start border-b border-gray-700 pb-3 last:border-0">
                    <span className="text-gray-400">{item.label}</span>
                    <span className="text-white font-medium text-right">{item.value}</span>
                  </div>
                ))}
              </div>
            </div>
          ))}
        </div>

        {/* What's included */}
        <div className="bg-gradient-to-r from-primary-900/20 to-accent-900/20 border border-gray-700 rounded-2xl p-8 lg:p-12">
          <h3 className="text-2xl font-semibold mb-8 text-center">What's in the Box</h3>
          <div className="grid sm:grid-cols-2 lg:grid-cols-3 gap-4">
            {includes.map((item, index) => (
              <div key={index} className="flex items-center space-x-3">
                <div className="w-6 h-6 bg-accent-500 rounded-full flex items-center justify-center flex-shrink-0">
                  <Check className="w-4 h-4 text-white" />
                </div>
                <span className="text-gray-300">{item}</span>
              </div>
            ))}
          </div>
        </div>
      </div>
    </section>
  );
}