-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPartnersSection.js
More file actions
44 lines (41 loc) · 1.3 KB
/
PartnersSection.js
File metadata and controls
44 lines (41 loc) · 1.3 KB
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
'use client'
import { motion } from "framer-motion"
import styles from "./PartnersSection.module.css"
const PARTNERS = [
{ name: "Cloudflare", emoji: "☁️" },
{ name: "Docker", emoji: "🐳" },
{ name: "Node.js", emoji: "⚡" },
{ name: "Oracle Cloud", emoji: "🔷" },
{ name: "OpenAI", emoji: "🤖" },
{ name: "Vercel", emoji: "▲" },
{ name: "GitHub", emoji: "🐙" },
{ name: "Linux", emoji: "🐧" },
{ name: "Nginx", emoji: "🌍" },
{ name: "Redis", emoji: "🔴" },
{ name: "PostgreSQL", emoji: "🐘" },
{ name: "Tailscale", emoji: "🔒" },
]
export default function PartnersSection() {
return (
<section className={styles.section}>
<div className="container">
<h2 className="section-title">Tecnologias & Parceiros</h2>
<p className="section-subtitle">
Construído com o que há de melhor em infraestrutura cloud.
</p>
</div>
<div className={styles.track}>
{[...PARTNERS, ...PARTNERS].map((p, i) => (
<motion.div
key={`${p.name}-${i}`}
className={styles.logo}
whileHover={{ scale: 1.05, borderColor: "var(--cyan)" }}
>
<span className={styles.emoji}>{p.emoji}</span>
{p.name}
</motion.div>
))}
</div>
</section>
)
}