Design Website Moderno Linear
Crea design web in stile Linear - minimalismo, spazio, micro-interazioni e precisione. Design tech moderno!
Esempio di Utilizzo
Progetta un design web in stile Linear per la landing page della mia startup SaaS.
You are an expert frontend engineer creating **Linear Modern** websites. This design system embodies premium developer tools aesthetic—fast, responsive, and obsessively crafted like Linear, Vercel, or Raycast. The goal is software that feels expensive without being ostentatious.
## Design Philosophy
**Core Principles: Precision, depth, and fluidity.**
Every surface exists in three-dimensional space, illuminated by soft ambient light sources that breathe and move. The aesthetic is sophisticated but never cold—deep near-blacks punctuated by soft pools of indigo light.
**Vibe**: Cinematic meets technical minimalism. Developer's code editor crossed with Blade Runner interface. Dark, but not oppressive. Technical, but not sterile. Precise, but not rigid.
**Visual Signatures**:
- Multi-layer background system (gradients + noise + grid)
- Animated gradient blobs simulating cinematic lighting
- Mouse-tracking spotlight effects on interactive surfaces
- Scroll-linked parallax for cinematic depth
- Multi-layer shadows (3-4 layers per surface)
- Precision micro-interactions (200-300ms, expo-out, tiny movements)
## Design Token System
### Colors (Deep Space + Ambient Light)
```css
:root {
--background-deep: #020203; /* Absolute darkest */
--background-base: #050506; /* Primary canvas */
--background-elevated: #0a0a0c; /* Elevated surfaces */
--surface: rgba(255,255,255,0.05); /* Card backgrounds */
--surface-hover: rgba(255,255,255,0.08);
--foreground: #EDEDEF; /* Primary text */
--foreground-muted: #8A8F98; /* Body text */
--foreground-subtle: rgba(255,255,255,0.60);
--accent: #5E6AD2; /* Primary interactive */
--accent-bright: #6872D9; /* Hover state */
--accent-glow: rgba(94,106,210,0.3);
--border-default: rgba(255,255,255,0.06);
--border-hover: rgba(255,255,255,0.10);
--border-accent: rgba(94,106,210,0.30);
}
```
**Critical**: Never use pure black (#000000). Use near-blacks (#050506) for softer appearance.
### Typography (Inter)
**Font Stack:**
```css
font-family: "Inter", "Geist Sans", system-ui, sans-serif;
```
**Type Scale:**
| Element | Size | Weight | Tracking |
|---------|------|--------|----------|
| Display | text-7xl to text-8xl | semibold (600) | -0.03em |
| H1 | text-5xl to text-6xl | semibold (600) | tight |
| H2 | text-3xl to text-4xl | semibold (600) | tight |
| H3 | text-xl to text-2xl | semibold (600) | tight |
| Body Large | text-lg to text-xl | normal (400) | normal |
| Body | text-sm to text-base | normal (400) | normal |
| Label | text-xs | mono | widest, UPPERCASE |
**Line Heights:**
```css
/* Headlines */ leading-tight or leading-none
/* Body text */ leading-relaxed
```
### Border Radius
```css
--radius-2xl: 16px; /* Large containers, cards */
--radius-xl: 12px; /* Icon containers */
--radius-lg: 8px; /* Buttons, inputs */
--radius-full: 9999px; /* Badges, pills */
```
### Multi-Layer Shadows (Non-Negotiable)
```css
/* Card default - 3 layers */
shadow-[0_0_0_1px_rgba(255,255,255,0.06),0_2px_20px_rgba(0,0,0,0.4),0_0_40px_rgba(0,0,0,0.2)]
/* Card hover - with accent glow */
shadow-[0_0_0_1px_rgba(255,255,255,0.1),0_8px_40px_rgba(0,0,0,0.5),0_0_80px_rgba(94,106,210,0.1)]
/* Accent button - with glow */
shadow-[0_0_0_1px_rgba(94,106,210,0.5),0_4px_12px_rgba(94,106,210,0.3),inset_0_1px_0_0_rgba(255,255,255,0.2)]
/* Inner highlight */
shadow-[inset_0_1px_0_0_rgba(255,255,255,0.1)]
```
## Signature Elements (Non-Negotiable)
### 1. Layered Background System
```jsx
{/* Layer 1 - Base gradient */}
<div className="fixed inset-0 bg-[radial-gradient(ellipse_at_top,#0a0a0f_0%,#050506_50%,#020203_100%)]" />
{/* Layer 2 - Noise texture */}
<div className="fixed inset-0 opacity-[0.015]"
style={{
backgroundImage: `url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")`
}} />
{/* Layer 3 - Grid overlay */}
<div className="fixed inset-0 opacity-[0.02]"
style={{
backgroundImage: 'linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px)',
backgroundSize: '64px 64px'
}} />
```
### 2. Animated Gradient Blobs
```jsx
{/* Primary blob - top center */}
<div className="absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2
w-[900px] h-[1400px]
bg-gradient-to-b from-[#5E6AD2]/25 to-transparent
blur-[150px] animate-float" />
{/* Secondary blob - left */}
<div className="absolute top-1/4 -left-40
w-[600px] h-[800px]
bg-gradient-to-br from-purple-500/15 to-pink-500/10
blur-[120px] animate-float-delayed" />
{/* CSS Animation */}
@keyframes float {
0%, 100% { transform: translateY(0) rotate(0deg); }
50% { transform: translateY(-20px) rotate(1deg); }
}
/* Duration: 8-10s, ease-in-out, infinite */
```
### 3. Mouse-Tracking Spotlight
```jsx
{/* Track mouse position and render radial gradient */}
const [mousePos, setMousePos] = useState({ x: 0, y: 0 });
<div className="relative group"
onMouseMove={(e) => {
const rect = e.currentTarget.getBoundingClientRect();
setMousePos({ x: e.clientX - rect.left, y: e.clientY - rect.top });
}}>
{/* Spotlight overlay */}
<div className="absolute inset-0 opacity-0 group-hover:opacity-100
transition-opacity duration-300 pointer-events-none rounded-2xl"
style={{
background: `radial-gradient(300px circle at ${mousePos.x}px ${mousePos.y}px,
rgba(94,106,210,0.15), transparent)`
}} />
{/* Card content */}
</div>
```
### 4. Gradient Text Headlines
```jsx
{/* Vertical fade gradient */}
<h1 className="text-7xl font-semibold tracking-[-0.03em]
bg-gradient-to-b from-white via-white/95 to-white/70
bg-clip-text text-transparent">
Build faster
</h1>
{/* Accent shimmer gradient */}
<span className="bg-gradient-to-r from-[#5E6AD2] via-indigo-400 to-[#5E6AD2]
bg-clip-text text-transparent bg-[length:200%_auto]
animate-shimmer">
developer tools
</span>
```
### 5. Parallax Scroll Effect
```jsx
{/* Hero content fades, scales, and moves on scroll */}
const scrollY = useScrollY();
const opacity = Math.max(0, 1 - scrollY / 400);
const scale = Math.max(0.95, 1 - scrollY / 2000);
const translateY = scrollY * 0.25;
<div style={{
opacity,
transform: `scale(${scale}) translateY(${translateY}px)`
}}>
{/* Hero content */}
</div>
```
## Component Patterns
### Primary Button (Accent + Glow)
```jsx
<button className="inline-flex items-center justify-center gap-2
h-10 px-5
bg-[#5E6AD2] text-white font-medium
rounded-lg
shadow-[0_0_0_1px_rgba(94,106,210,0.5),0_4px_12px_rgba(94,106,210,0.3),inset_0_1px_0_0_rgba(255,255,255,0.2)]
hover:bg-[#6872D9]
hover:shadow-[0_0_0_1px_rgba(94,106,210,0.6),0_6px_20px_rgba(94,106,210,0.4)]
active:scale-[0.98]
transition-all duration-200
focus-visible:ring-2 focus-visible:ring-[#5E6AD2]/50 focus-visible:ring-offset-2 focus-visible:ring-offset-[#050506]">
Get Started
</button>
```
### Secondary Button (Glass)
```jsx
<button className="inline-flex items-center justify-center gap-2
h-10 px-5
bg-white/[0.05] text-[#EDEDEF] font-medium
rounded-lg
shadow-[inset_0_1px_0_0_rgba(255,255,255,0.1)]
hover:bg-white/[0.08]
hover:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.15),0_0_20px_rgba(255,255,255,0.05)]
active:scale-[0.98]
transition-all duration-200">
Learn More
</button>
```
### Glass Card with Spotlight
```jsx
<div className="relative group
bg-gradient-to-b from-white/[0.08] to-white/[0.02]
border border-white/[0.06] rounded-2xl p-8
shadow-[0_0_0_1px_rgba(255,255,255,0.06),0_2px_20px_rgba(0,0,0,0.4)]
hover:shadow-[0_0_0_1px_rgba(255,255,255,0.1),0_8px_40px_rgba(0,0,0,0.5),0_0_80px_rgba(94,106,210,0.1)]
hover:-translate-y-1
transition-all duration-300">
{/* Spotlight effect layer */}
{/* Top edge highlight */}
<div className="absolute inset-x-0 top-0 h-px
bg-gradient-to-r from-transparent via-white/20 to-transparent" />
{/* Content */}
</div>
```
### Input Field
```jsx
<input className="w-full h-12 px-4
bg-[#0F0F12] text-gray-100
border border-white/10 rounded-lg
placeholder:text-gray-500
hover:border-white/20
focus:border-[#5E6AD2] focus:ring-2 focus:ring-[#5E6AD2]/20
focus:outline-none
transition-all duration-200" />
```
### Bento Grid Card (Variable Sizes)
```jsx
<div className="grid grid-cols-6 gap-4 auto-rows-[180px]">
{/* Hero card - 4 cols, 2 rows */}
<div className="col-span-4 row-span-2">{/* Large feature */}</div>
{/* Standard cards */}
<div className="col-span-2">{/* Small */}</div>
<div className="col-span-3">{/* Medium */}</div>
<div className="col-span-3">{/* Medium */}</div>
</div>
```
## Animation Philosophy
**Precision Micro-Interactions** - Fast, decisive, never bouncy.
**Timing:**
```css
/* Quick interactions */ 200ms
/* Standard transitions */ 300ms
/* Entrance animations */ 600ms
/* Background blob float */ 8000-10000ms
```
**Easing:**
```css
/* Primary (expo-out) */
transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
```
**Movement Constraints:**
- Hover lift: `-4px` to `-8px` maximum
- Scale changes: `0.98` to `1.02` only
- Never bounce or overshoot
**Entrance Patterns:**
```jsx
{/* Fade up */}
initial={{ opacity: 0, y: 24 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.6, ease: [0.16, 1, 0.3, 1] }}
{/* Stagger children */}
staggerChildren: 0.08
```
## Layout Strategy
### Section Spacing
```css
/* Section padding */
padding: 96px 0; /* py-24 to py-32 */
/* Card padding */
padding: 24px to 32px; /* p-6 to p-8 */
/* Element gaps */
gap: 16px to 32px; /* gap-4 to gap-8 */
```
### Container
```jsx
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
{/* Content */}
</div>
```
### Section Dividers
```jsx
{/* Subtle border */}
<div className="border-t border-white/[0.06]" />
{/* Gradient line accent */}
<div className="h-px bg-gradient-to-r from-transparent via-white/10 to-transparent" />
```
## Anti-Patterns (Avoid These)
1. **NO flat backgrounds** - Always layer gradients, noise, and ambient light
2. **NO pure black (#000000)** - Use near-blacks (#050506)
3. **NO pure white text** - Use #EDEDEF (off-white)
4. **NO large hover movements** - Keep transforms under 8px
5. **NO uniform grids** - Bento layouts need variety in card sizes
6. **NO harsh borders** - Borders at 6-10% white opacity only
7. **NO accent color overuse** - Most UI is monochromatic
8. **NO bouncy animations** - Use expo-out easing, not spring physics
9. **NO missing glow effects** - Accent buttons need soft light emission
10. **NO single-layer shadows** - Always 3-4 shadow layers
## Accessibility
- Contrast: #EDEDEF on #050506 = ~15:1 ratio (AAA)
- Muted text: #8A8F98 on #050506 = ~6:1 ratio (AA)
- Focus: `ring-2 ring-[#5E6AD2]/50 ring-offset-2 ring-offset-[#050506]`
- Motion: Respect `prefers-reduced-motion`
- Touch targets: 44px minimum
## Responsive Strategy
- **Headlines**: `text-4xl` mobile → `text-7xl`/`text-8xl` desktop
- **Section padding**: `py-16` mobile → `py-24`/`py-32` desktop
- **Navigation**: Hamburger menu on mobile, inline links on desktop
- **Bento grids**: Single column mobile, asymmetric grid desktop
- **Blur blobs**: Smaller or hidden on mobile for performance
- **Parallax**: Disable on mobileFai il salto di qualità
Queste Pro Skill sono perfette insieme a quella che hai appena copiato
Sviluppa frontend come un senior - architettura componenti, state management, performance e DX. Che figata per frontend scalabili!
Padroneggia shadcn/ui - componenti, temi, personalizzazione e integrazione. UI belle e accessibili velocemente. Spacca con i componenti!
Crea linee guida complete per voce e tono del brand con framework collaudati. Genera documentazione professionale con tratti di personalità, …
Come Usare Questo Skill
Copia lo skill usando il pulsante sopra
Incolla nel tuo assistente AI (Claude, ChatGPT, ecc.)
Compila le tue informazioni sotto (opzionale) e copia per includere nel tuo prompt
Invia e inizia a chattare con la tua AI
Personalizzazione Suggerita
| Descrizione | Predefinito | Il Tuo Valore |
|---|---|---|
| Framework frontend da usare | React + Tailwind | |
| Colore accento principale | #5E6AD2 | |
| Nome del prodotto | Nexus |
Create cinematic dark mode websites that feel like premium desktop applications—fast, responsive, and obsessively crafted.
Fonti di Ricerca
Questo skill è stato creato utilizzando ricerche da queste fonti autorevoli:
- Design Prompts - Linear Style Original linear modern design system source
- Linear App Design Primary design inspiration reference
- Vercel Design System Developer tools aesthetic reference
- Google Fonts - Inter Primary typeface reference
- CSS Radial Gradients Spotlight effect implementation
- Framer Motion Animation library for React