Loading...
Loading...
Create distinctive, production-grade web interfaces with high design quality. Use for components, pages, dashboards, and full applications that need to stand out from generic AI aesthetics.
npx skill4agent add vamseeachanta/workspace-hub frontend-design/* Quick distinctive setup */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;600;700&display=swap');
:root {
--primary: #1a1a2e;
--accent: #e94560;
--text: #eaeaea;
}
body {
font-family: 'Space Grotesk', sans-serif;
background: var(--primary);
color: var(--text);
}/* Good: Distinctive choices */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Crimson+Pro:ital,wght@0,400;0,600;1,400&display=swap');
/* Avoid: Overused defaults */
/* Inter, Roboto, Arial, system fonts */:root {
/* Bold, intentional palette */
--primary: #1a1a2e;
--secondary: #16213e;
--accent: #e94560;
--highlight: #0f3460;
--text: #eaeaea;
/* Not: Generic blue gradients on white */
}/* Subtle entrance */
@keyframes fadeSlideIn {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.card {
animation: fadeSlideIn 0.6s ease-out;
}
/* Micro-interaction */
.button {
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.button:hover {
transform: translateY(-2px);
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('animate-in');
}
});
}, { threshold: 0.1 });
document.querySelectorAll('.animate-on-scroll').forEach(el => {
observer.observe(el);
});.hero {
display: grid;
grid-template-columns: 1fr 1.5fr;
gap: 4rem;
align-items: end; /* Intentional misalignment */
}
.feature-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 2rem;
}
/* Break the grid for emphasis */
.feature-grid .featured {
grid-column: span 2;
grid-row: span 2;
}.overlapping-section {
position: relative;
margin-top: -100px;
z-index: 10;
}
.floating-element {
position: absolute;
transform: translate(-20%, -50%);
}/* Elaborate, intentional complexity */
.hero {
background:
linear-gradient(135deg, rgba(26, 26, 46, 0.9), rgba(22, 33, 62, 0.8)),
url('texture.png'),
radial-gradient(ellipse at 20% 50%, #e94560 0%, transparent 50%);
backdrop-filter: blur(10px);
}/* Restraint and precision */
.hero {
background: #fafafa;
padding: 8rem 2rem;
}
.hero h1 {
font-weight: 300;
letter-spacing: -0.02em;
line-height: 1.1;
}<div class="card">
<div class="card-accent"></div>
<div class="card-content">
<span class="card-tag">Featured</span>
<h3>Card Title</h3>
<p>Description text with purpose.</p>
</div>
</div>
<style>
.card {
position: relative;
background: #1a1a2e;
border-radius: 0; /* Intentional sharp corners */
overflow: hidden;
}
.card-accent {
position: absolute;
top: 0;
left: 0;
width: 4px;
height: 100%;
background: linear-gradient(180deg, #e94560, #0f3460);
}
.card-content {
padding: 2rem;
}
.card-tag {
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.1em;
color: #e94560;
}
</style><nav class="nav">
<a href="/" class="nav-logo">Brand</a>
<div class="nav-links">
<a href="#" class="nav-link active">Home</a>
<a href="#" class="nav-link">Work</a>
<a href="#" class="nav-link">About</a>
<a href="#" class="nav-cta">Contact</a>
</div>
</nav>
<style>
.nav {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1.5rem 4rem;
background: transparent;
position: fixed;
width: 100%;
z-index: 100;
mix-blend-mode: difference;
}
.nav-logo {
font-weight: 700;
font-size: 1.25rem;
color: white;
}
.nav-link {
color: white;
text-decoration: none;
position: relative;
}
.nav-link::after {
content: '';
position: absolute;
bottom: -4px;
left: 0;
width: 0;
height: 2px;
background: #e94560;
transition: width 0.3s ease;
}
.nav-link:hover::after,
.nav-link.active::after {
width: 100%;
}
</style>// tailwind.config.js
module.exports = {
theme: {
extend: {
fontFamily: {
'display': ['Space Grotesk', 'sans-serif'],
'body': ['Spectral', 'serif'],
},
colors: {
'midnight': '#1a1a2e',
'navy': '#16213e',
'coral': '#e94560',
'ocean': '#0f3460',
},
animation: {
'fade-in': 'fadeIn 0.6s ease-out',
'slide-up': 'slideUp 0.6s ease-out',
},
},
},
}const Button = ({ children, variant = 'primary', ...props }) => {
const baseStyles = `
px-6 py-3 font-display font-semibold
transition-all duration-300
focus:outline-none focus:ring-2 focus:ring-offset-2
`;
const variants = {
primary: 'bg-coral text-white hover:bg-opacity-90 focus:ring-coral',
secondary: 'bg-transparent border-2 border-coral text-coral hover:bg-coral hover:text-white',
ghost: 'bg-transparent text-coral hover:underline',
};
return (
<button className={`${baseStyles} ${variants[variant]}`} {...props}>
{children}
</button>
);
};ease-out| Metric | Target | How to Measure |
|---|---|---|
| First Contentful Paint | <1.5s | Lighthouse |
| Cumulative Layout Shift | <0.1 | Lighthouse |
| Accessibility Score | >90 | Lighthouse |
| Color Contrast | WCAG AA | Contrast checker |
| Animation FPS | 60fps | DevTools Performance |