Hellow UI
Composants prêts à l'emploi, animations et templates SaaS. Chaque élément est conçu dans l'esprit Hellow brut, direct, mémorable. Preview visuelle + code HTML/CSS copié en un clic.
UI Components
Buttons
UINew
button class="btn-primary"Primary/button
.btn-primary {
font-weight: 800; letter-spacing: 1px;
background: #000; color: #fff;
border: 2px solid #000; padding: 12px 28px;
border-radius: 100px; cursor: pointer;
box-shadow: 4px 4px 0 #000;
transition: transform .15s, box-shadow .15s;
}
.btn-primary:hover {
transform: translate(-2px, -2px);
box-shadow: 6px 6px 0 #000;
}
Cards
UI
Projet
Hellow UI
Composants propres, directs, mémorables.
Status
En cours ?
Construction en public, pas à pas.
div class="card"
div class="card-label"Projet/div
div class="card-title"Hellow UI/div
div class="card-body"Description.../div
/div
.card {
border: 2px solid #000;
border-radius: 16px; padding: 20px;
box-shadow: 5px 5px 0 #000;
transition:
transform .2s cubic-bezier(.34,1.56,.64,1),
box-shadow .2s;
}
.card:hover {
transform: translate(-3px, -3px);
box-shadow: 8px 8px 0 #000;
}
Inputs
UI
<input class="input" type="text" placeholder="...">
.input {
font-weight: 600;
background: #fff; color: #000;
border: 2px solid #000; padding: 12px 16px;
border-radius: 10px; outline: none;
box-shadow: 4px 4px 0 #000;
transition: transform .15s, box-shadow .15s;
}
.input:focus {
transform: translate(-2px, -2px);
box-shadow: 6px 6px 0 #000;
}
Badges & Tags
UI
En ligne
En cours
Beta
Nouveau
<span class="badge badge-green">En ligne</span>
.badge {
font-size: 10px; font-weight: 800;
text-transform: uppercase; letter-spacing: 1.5px;
padding: 5px 12px; border-radius: 100px;
border: 2px solid #000;
}
.badge-green { background: #c4e8d5; }
.badge-orange { background: #fde8cc; }
.badge-blue { background: #ccd8fd; }
.badge-dark { background: #000; color: #fff; }
Toggle Switch
UI
Notifications
Mode sombre
<div class="toggle on"
onclick="this.classList.toggle('on')"></div>
.toggle {
width: 52px; height: 28px;
border-radius: 100px; background: #ebebeb;
border: 2px solid #000; cursor: pointer;
position: relative; box-shadow: 3px 3px 0 #000;
}
.toggle::after {
content: ''; position: absolute;
top: 3px; left: 3px; width: 18px; height: 18px;
border-radius: 50%; background: #000;
transition: transform .2s cubic-bezier(.34,1.56,.64,1);
}
.toggle.on { background: #c4e8d5; }
.toggle.on::after { transform: translateX(24px); }
Tooltip
UI
? Composant Hellow
Survoler ici
<div class="tooltip-wrap">
<div class="tooltip-box">Mon texte</div>
<span class="tooltip-trigger">Survole moi</span>
</div>
.tooltip-box {
position: absolute;
bottom: calc(100% + 10px); left: 50%;
transform: translateX(-50%) translateY(4px);
background: #000; color: #fff; font-size: 12px;
padding: 7px 12px; border-radius: 8px;
opacity: 0; pointer-events: none;
transition: opacity .2s, transform .2s;
}
.tooltip-wrap:hover .tooltip-box {
opacity: 1;
transform: translateX(-50%) translateY(0);
}
Avatar Group
UI
M
A
J
L
+9
<div class="avatar-group">
<div class="avatar">M</div>
<div class="avatar">A</div>
<div class="avatar av-more">+9</div>
</div>
.avatar-group { display: flex; }
.avatar {
width: 40px; height: 40px; border-radius: 50%;
border: 3px solid #fff; font-weight: 900; color: #fff;
display: flex; align-items: center; justify-content: center;
margin-left: -10px; box-shadow: 3px 3px 0 #000;
}
.avatar:first-child { margin-left: 0; }
Animations & Effets
Float & Pulse
Anim
?
?
@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-12px); }
}
@keyframes pulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.1); }
}
.float { animation: float 2.5s ease-in-out infinite; }
.pulse { animation: pulse 1.5s ease-in-out infinite; }
Loader / Spinner
Anim
@keyframes spin { to { transform: rotate(360deg); } }
.spinner {
width: 46px; height: 46px; border-radius: 50%;
border: 4px solid #ebebeb;
border-top-color: #000;
animation: spin .8s linear infinite;
}
Shimmer Skeleton
Anim
@keyframes shimmer {
0% { background-position: -200% 0; }
100% { background-position: 200% 0; }
}
.shimmer {
background: linear-gradient(
90deg, #ebebeb 25%, #fff 50%, #ebebeb 75%
);
background-size: 200% 100%;
animation: shimmer 1.5s infinite;
border-radius: 6px;
}
Progress Bars
Anim
Design
85%
Code
62%
SaaS
30%
<div class="progress-track">
<div class="progress-fill" style="width:85%"></div>
</div>
.progress-track {
height: 12px; border-radius: 100px;
background: #ebebeb; border: 2px solid #000;
overflow: hidden; box-shadow: 2px 2px 0 #000;
}
.progress-fill {
height: 100%; background: #000;
border-radius: 100px;
transition: width 1s cubic-bezier(.34,1.56,.64,1);
}
SaaS Templates
Pricing Card
SaaSNew
Pro
29EUR
par mois
? Projets illimités
? Accès API complet
? Support prioritaire
<div class="pricing-card">
<div class="pricing-top">
<div class="plan">Pro</div>
<div class="price">29EUR</div>
<div class="per">par mois</div>
</div>
<div class="pricing-body">
<div class="feature">? Projets illimités</div>
<button class="cta">Commencer</button>
</div>
</div>
.pricing-card {
border: 2px solid #000; border-radius: 18px;
overflow: hidden; box-shadow: 5px 5px 0 #000;
}
.pricing-top {
background: #000; color: #fff; padding: 20px;
}
.pricing-price {
font-size: 38px; font-weight: 900; letter-spacing: -2px;
}
Stats Dashboard
SaaS
Revenus
4.2kEUR
? +12% ce mois
Utilisateurs
843
? +31 cette semaine
<div class="stats-card">
<div class="stats-label">Revenus</div>
<div class="stats-value">4.2kEUR</div>
<div class="delta delta-up">? +12%</div>
</div>
.stats-card {
border: 2px solid #000; border-radius: 16px;
padding: 20px 24px; box-shadow: 5px 5px 0 #000;
}
.stats-value {
font-size: 38px; font-weight: 900;
letter-spacing: -2px; line-height: 1;
}
.delta-up { color: #2ecc71; font-weight: 700; }
.delta-down { color: #e74c3c; font-weight: 700; }
Navbar SaaS
SaaS
<nav class="navbar">
<span class="logo">Hellow</span>
<div class="links">
<a href="#">Produit</a>
<a href="#">Tarifs</a>
</div>
<button class="cta">Démarrer</button>
</nav>
.navbar {
background: #fff; border: 2px solid #000;
border-radius: 100px; padding: 12px 20px;
display: flex; align-items: center;
justify-content: space-between;
box-shadow: 4px 4px 0 #000;
}